From a0084b77325947e050f831a9d65dd501825b2942 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Wed, 5 May 2021 17:18:44 +0100 Subject: [PATCH] Simplify CFG tree classes for calls --- .../controlflow/internal/ControlFlowGraphImpl.qll | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/ql/src/codeql_ruby/controlflow/internal/ControlFlowGraphImpl.qll b/ql/src/codeql_ruby/controlflow/internal/ControlFlowGraphImpl.qll index 77664806c7c..4cb35175592 100644 --- a/ql/src/codeql_ruby/controlflow/internal/ControlFlowGraphImpl.qll +++ b/ql/src/codeql_ruby/controlflow/internal/ControlFlowGraphImpl.qll @@ -555,6 +555,10 @@ module Trees { } } + private class CallTree extends StandardPostOrderTree, Call { + override ControlFlowTree getChildNode(int i) { result = this.getArgument(i) } + } + private class CaseTree extends PreOrderTree, CaseExpr { final override predicate propagatesAbnormal(AstNode child) { child = this.getValue() or child = this.getABranch() @@ -913,7 +917,7 @@ module Trees { } } - private class MethodCallTree extends StandardPostOrderTree, MethodCall { + private class MethodCallTree extends CallTree, MethodCall { final override ControlFlowTree getChildNode(int i) { result = this.getReceiver() and i = 0 or @@ -1222,10 +1226,6 @@ module Trees { final override ControlFlowTree getChildNode(int i) { result = this.getComponent(i) } } - private class SuperCallTree extends StandardPostOrderTree, SuperCall { - final override ControlFlowTree getChildNode(int i) { result = this.getArgument(i) } - } - private class ToplevelTree extends BodyStmtTree, Toplevel { final override AstNode getBodyChild(int i, boolean rescuable) { result = this.getBeginBlock(i) and rescuable = true @@ -1292,10 +1292,6 @@ module Trees { ) } } - - private class YieldCallTree extends StandardPostOrderTree, YieldCall { - final override ControlFlowTree getChildNode(int i) { result = this.getArgument(i) } - } } private Scope parent(Scope n) {