Skip to content

Commit 2d86b13

Browse files
authored
add super nodes
1 parent 5dcc161 commit 2d86b13

2 files changed

Lines changed: 11 additions & 1 deletion

File tree

ql/src/codeql_ql/ast/Ast.qll

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1523,6 +1523,13 @@ class ThisAccess extends Identifier {
15231523
override string getAPrimaryQlClass() { result = "ThisAccess" }
15241524
}
15251525

1526+
/** A use of `super`. */
1527+
class Super extends TSuper, Expr {
1528+
Super() { this = TSuper(_) }
1529+
1530+
override string getAPrimaryQlClass() { result = "SuperAccess" }
1531+
}
1532+
15261533
/** An access to `result`. */
15271534
class ResultAccess extends Identifier {
15281535
ResultAccess() { any(Generated::Result r).getParent() = id }

ql/src/codeql_ql/ast/internal/AstNodes.qll

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ newtype TAstNode =
2424
TExprAggregate(Generated::Aggregate agg) {
2525
agg.getChild(_) instanceof Generated::ExprAggregateBody
2626
} or
27+
TSuper(Generated::SuperRef sup) or
2728
TIdentifier(Generated::Variable var) or
2829
TAsExpr(Generated::AsExpr asExpr) { asExpr.getChild(1) instanceof Generated::VarName } or
2930
TPredicateCall(Generated::CallOrUnqualAggExpr call) or
@@ -63,7 +64,7 @@ class TBinOpExpr = TAddSubExpr or TMulDivModExpr;
6364

6465
class TExpr =
6566
TBinOpExpr or TLiteral or TAggregate or TExprAggregate or TIdentifier or TInlineCast or TCall or
66-
TUnaryExpr or TExprAnnotation or TDontCare or TRange or TSet or TAsExpr;
67+
TUnaryExpr or TExprAnnotation or TDontCare or TRange or TSet or TAsExpr or TSuper;
6768

6869
class TCall = TPredicateCall or TMemberCall or TNoneCall or TAnyCall;
6970

@@ -154,6 +155,8 @@ Generated::AstNode toGenerated(AST::AstNode n) {
154155
n = TNoneCall(result)
155156
or
156157
n = TAnyCall(result)
158+
or
159+
n = TSuper(result)
157160
}
158161

159162
class TPredicate = TCharPred or TClasslessPredicate or TClassPredicate;

0 commit comments

Comments
 (0)