From 6aea3eff3e6bc120dcf3546b4c9423a3454539bd Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Mon, 7 Dec 2020 15:30:37 +0100 Subject: [PATCH] CFG: rename getBody{=>Node} and getCondition{=>Node} --- .../controlflow/ControlFlowGraph.qll | 2 +- .../controlflow/internal/AstNodes.qll | 20 ++++++++--------- .../controlflow/internal/Completion.qll | 2 +- .../internal/ControlFlowGraphImpl.qll | 22 +++++++++---------- 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/ql/src/codeql_ruby/controlflow/ControlFlowGraph.qll b/ql/src/codeql_ruby/controlflow/ControlFlowGraph.qll index bf345b3b7ba..d69a65243b8 100644 --- a/ql/src/codeql_ruby/controlflow/ControlFlowGraph.qll +++ b/ql/src/codeql_ruby/controlflow/ControlFlowGraph.qll @@ -223,7 +223,7 @@ module SuccessorTypes { * * ```rb * for arg in args do - * puts arg + * puts arg * end * puts "done"; * ``` diff --git a/ql/src/codeql_ruby/controlflow/internal/AstNodes.qll b/ql/src/codeql_ruby/controlflow/internal/AstNodes.qll index 6451ee330ec..de74a5423ab 100644 --- a/ql/src/codeql_ruby/controlflow/internal/AstNodes.qll +++ b/ql/src/codeql_ruby/controlflow/internal/AstNodes.qll @@ -99,9 +99,9 @@ private class UnlessModifierAstNode extends IfElsifAstNode, UnlessModifier { private class CondLoop = @while or @while_modifier or @until or @until_modifier; class ConditionalLoopAstNode extends AstNode, CondLoop { - AstNode getCondition() { none() } + AstNode getConditionNode() { none() } - AstNode getBody() { none() } + AstNode getBodyNode() { none() } predicate continueLoop(BooleanCompletion c) { c instanceof TrueCompletion } @@ -109,29 +109,29 @@ class ConditionalLoopAstNode extends AstNode, CondLoop { } private class WhileLoop extends ConditionalLoopAstNode, While { - override UnderscoreStatement getCondition() { result = While.super.getCondition() } + override UnderscoreStatement getConditionNode() { result = this.getCondition() } - override Do getBody() { result = While.super.getBody() } + override Do getBodyNode() { result = this.getBody() } } private class WhileModifierLoop extends ConditionalLoopAstNode, WhileModifier { - override AstNode getCondition() { result = WhileModifier.super.getCondition() } + override AstNode getConditionNode() { result = this.getCondition() } - override UnderscoreStatement getBody() { result = WhileModifier.super.getBody() } + override UnderscoreStatement getBodyNode() { result = this.getBody() } } private class UntilLoop extends ConditionalLoopAstNode, Until { - override UnderscoreStatement getCondition() { result = Until.super.getCondition() } + override UnderscoreStatement getConditionNode() { result = this.getCondition() } - override Do getBody() { result = Until.super.getBody() } + override Do getBodyNode() { result = this.getBody() } override predicate continueLoop(BooleanCompletion c) { c instanceof FalseCompletion } } private class UntilModifierLoop extends ConditionalLoopAstNode, UntilModifier { - override AstNode getCondition() { result = UntilModifier.super.getCondition() } + override AstNode getConditionNode() { result = this.getCondition() } - override UnderscoreStatement getBody() { result = UntilModifier.super.getBody() } + override UnderscoreStatement getBodyNode() { result = this.getBody() } override predicate continueLoop(BooleanCompletion c) { c instanceof FalseCompletion } } diff --git a/ql/src/codeql_ruby/controlflow/internal/Completion.qll b/ql/src/codeql_ruby/controlflow/internal/Completion.qll index 0c74e61ef5d..71d09d6e7db 100644 --- a/ql/src/codeql_ruby/controlflow/internal/Completion.qll +++ b/ql/src/codeql_ruby/controlflow/internal/Completion.qll @@ -120,7 +120,7 @@ private predicate mustHaveBooleanCompletion(AstNode n) { private predicate inBooleanContext(AstNode n) { n = any(IfElsifAstNode parent).getConditionNode() or - n = any(ConditionalLoopAstNode parent).getCondition() + n = any(ConditionalLoopAstNode parent).getConditionNode() or exists(LogicalAndAstNode parent | n = parent.getLeft() diff --git a/ql/src/codeql_ruby/controlflow/internal/ControlFlowGraphImpl.qll b/ql/src/codeql_ruby/controlflow/internal/ControlFlowGraphImpl.qll index f3d5427b85f..860485d2677 100644 --- a/ql/src/codeql_ruby/controlflow/internal/ControlFlowGraphImpl.qll +++ b/ql/src/codeql_ruby/controlflow/internal/ControlFlowGraphImpl.qll @@ -979,39 +979,39 @@ private module Trees { } private class ConditionalLoopTree extends PreOrderTree, ConditionalLoopAstNode { - final override predicate propagatesAbnormal(AstNode child) { child = this.getCondition() } + final override predicate propagatesAbnormal(AstNode child) { child = this.getConditionNode() } final override predicate last(AstNode last, Completion c) { - last(this.getCondition(), last, c) and + last(this.getConditionNode(), last, c) and this.endLoop(c) or - last(this.getBody(), last, c) and + last(this.getBodyNode(), last, c) and not c.continuesLoop() and not c instanceof BreakCompletion and not c instanceof RedoCompletion or c = any(NestedCompletion nc | - last(this.getBody(), last, nc.getInnerCompletion().(BreakCompletion)) and + last(this.getBodyNode(), last, nc.getInnerCompletion().(BreakCompletion)) and nc.getOuterCompletion() instanceof SimpleCompletion ) } final override predicate succ(AstNode pred, AstNode succ, Completion c) { pred = this and - first(this.getCondition(), succ) and + first(this.getConditionNode(), succ) and c instanceof SimpleCompletion or - last(this.getCondition(), pred, c) and + last(this.getConditionNode(), pred, c) and this.continueLoop(c) and - first(this.getBody(), succ) + first(this.getBodyNode(), succ) or - last(this.getBody(), pred, c) and - first(this.getCondition(), succ) and + last(this.getBodyNode(), pred, c) and + first(this.getConditionNode(), succ) and c.continuesLoop() or - last(this.getBody(), pred, any(RedoCompletion rc)) and - first(this.getBody(), succ) and + last(this.getBodyNode(), pred, any(RedoCompletion rc)) and + first(this.getBodyNode(), succ) and c instanceof SimpleCompletion } }