mirror of
https://github.com/github/codeql.git
synced 2026-05-25 00:27:09 +02:00
PS: More AST cleanup.
This commit is contained in:
@@ -5,11 +5,15 @@ class InvokeMemberExpr extends @invoke_member_expression, MemberExprBase {
|
||||
|
||||
Expr getQualifier() { invoke_member_expression(this, result, _) }
|
||||
|
||||
string getName() { result = this.getMember().(StringConstExpr).getValue().getValue() }
|
||||
|
||||
CmdElement getMember() { invoke_member_expression(this, _, result) }
|
||||
|
||||
Expr getArgument(int i) { invoke_member_expression_argument(this, i, result) }
|
||||
|
||||
Expr getAnArgument() { invoke_member_expression_argument(this, _, result) }
|
||||
|
||||
override string toString() { result = "call to " + this.getMember() }
|
||||
override string toString() { result = "call to " + this.getName() }
|
||||
|
||||
override predicate isStatic() { this.getQualifier() instanceof TypeNameExpr }
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ class MemberExpr extends @member_expression, MemberExprBase {
|
||||
|
||||
predicate isNullConditional() { member_expression(this, _, _, true, _) }
|
||||
|
||||
predicate isStatic() { member_expression(this, _, _, _, true) }
|
||||
override predicate isStatic() { member_expression(this, _, _, _, true) }
|
||||
|
||||
final override string toString() { result = this.getMember().toString() }
|
||||
}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import powershell
|
||||
|
||||
class MemberExprBase extends @member_expression_base, Expr { }
|
||||
class MemberExprBase extends @member_expression_base, Expr {
|
||||
predicate isStatic() { none() }
|
||||
}
|
||||
|
||||
@@ -128,6 +128,8 @@ abstract private class NonExprChildMapping extends ChildMapping {
|
||||
abstract private class AbstractCallCfgNode extends AstCfgNode {
|
||||
override string getAPrimaryQlClass() { result = "CfgCall" }
|
||||
|
||||
abstract string getName();
|
||||
|
||||
ExprCfgNode getQualifier() { none() }
|
||||
|
||||
abstract ExprCfgNode getArgument(int i);
|
||||
@@ -137,6 +139,8 @@ abstract private class AbstractCallCfgNode extends AstCfgNode {
|
||||
abstract ExprCfgNode getNamedArgument(string name);
|
||||
|
||||
abstract ExprCfgNode getAnArgument();
|
||||
|
||||
abstract ExprCfgNode getCommand();
|
||||
}
|
||||
|
||||
final class CallCfgNode = AbstractCallCfgNode;
|
||||
@@ -221,6 +225,10 @@ module ExprNodes {
|
||||
final override ExprCfgNode getNamedArgument(string name) { none() }
|
||||
|
||||
final override ExprCfgNode getAnArgument() { e.hasCfgChild(e.getAnArgument(), this, result) }
|
||||
|
||||
final override string getName() { none() }
|
||||
|
||||
final override ExprCfgNode getCommand() { none() }
|
||||
}
|
||||
|
||||
/** A control-flow node that wraps a qualifier expression. */
|
||||
@@ -308,7 +316,9 @@ module StmtNodes {
|
||||
|
||||
override ExprCfgNode getAnArgument() { s.hasCfgChild(s.getAnArgument(), this, result) }
|
||||
|
||||
ExprCfgNode getCommand() { s.hasCfgChild(s.getCommand(), this, result) }
|
||||
final override ExprCfgNode getCommand() { s.hasCfgChild(s.getCommand(), this, result) }
|
||||
|
||||
final override string getName() { result = s.getCmdName().getValue().getValue() }
|
||||
}
|
||||
|
||||
private class AssignStmtChildMapping extends NonExprChildMapping, AssignStmt {
|
||||
|
||||
Reference in New Issue
Block a user