From 9cfc08319d1632d0a2f281a924494b3770cd931a Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 9 Feb 2021 19:32:41 +0100 Subject: [PATCH] Use `Generated::AstNode` in `ExprChildMapping` --- ql/src/codeql_ruby/ast/Statement.qll | 2 -- ql/src/codeql_ruby/controlflow/CfgNodes.qll | 6 ++++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ql/src/codeql_ruby/ast/Statement.qll b/ql/src/codeql_ruby/ast/Statement.qll index 7557799e712..b4d7ff892db 100644 --- a/ql/src/codeql_ruby/ast/Statement.qll +++ b/ql/src/codeql_ruby/ast/Statement.qll @@ -11,8 +11,6 @@ private import codeql_ruby.controlflow.internal.ControlFlowGraphImpl class Stmt extends AstNode { override Stmt::Range range; - Stmt() { this = range } - /** Gets a control-flow node for this statement, if any. */ CfgNodes::AstCfgNode getAControlFlowNode() { result.getNode() = this } diff --git a/ql/src/codeql_ruby/controlflow/CfgNodes.qll b/ql/src/codeql_ruby/controlflow/CfgNodes.qll index 9b419871753..4ab22541942 100644 --- a/ql/src/codeql_ruby/controlflow/CfgNodes.qll +++ b/ql/src/codeql_ruby/controlflow/CfgNodes.qll @@ -135,14 +135,16 @@ abstract private class ExprChildMapping extends Expr { */ abstract predicate relevantChild(Expr child); - private AstNode getAChildStar() { + private Generated::AstNode getAChildStar() { result = this or result.(Generated::AstNode).getParent() = this.getAChildStar() } pragma[noinline] - private BasicBlock getABasicBlockInScope() { result.getANode().getNode() = this.getAChildStar() } + private BasicBlock getABasicBlockInScope() { + result.getANode() = TAstNode(this.getAChildStar(), _) + } pragma[nomagic] private predicate reachesBasicBlockBase(Expr child, CfgNode cfn, BasicBlock bb) {