Skip to content

Commit 4f96834

Browse files
committed
Add ConstantAccessCfgNode
1 parent 6bed50a commit 4f96834

1 file changed

Lines changed: 14 additions & 0 deletions

File tree

ql/src/codeql_ruby/controlflow/CfgNodes.qll

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,20 @@ module ExprNodes {
296296
final ExprCfgNode getBranch(boolean cond) { e.hasCfgChild(e.getBranch(cond), this, result) }
297297
}
298298

299+
private class ConstantAccessChildMapping extends ExprChildMapping, ConstantAccess {
300+
override predicate relevantChild(Expr e) { e = this.getScopeExpr() }
301+
}
302+
303+
/** A control-flow node that wraps a `ConditionalExpr` AST expression. */
304+
class ConstantAccessCfgNode extends ExprCfgNode {
305+
override ConstantAccessChildMapping e;
306+
307+
final override ConstantAccess getExpr() { result = ExprCfgNode.super.getExpr() }
308+
309+
/** Gets the scope expression. */
310+
final ExprCfgNode getScopeExpr() { e.hasCfgChild(e.getScopeExpr(), this, result) }
311+
}
312+
299313
private class StmtSequenceChildMapping extends ExprChildMapping, StmtSequence {
300314
override predicate relevantChild(Expr e) { e = this.getLastStmt() }
301315
}

0 commit comments

Comments
 (0)