Ruby: SimpleParameter is not an Expr

This commit is contained in:
Arthur Baars
2021-12-14 13:33:36 +01:00
parent e9ef53c31b
commit cdbd8b27d3
4 changed files with 9 additions and 6 deletions

View File

@@ -159,7 +159,7 @@ class ErbDirective extends TDirectiveNode, ErbAstNode {
*/
Stmt getAChildStmt() {
this.containsStmtStart(result) and
not this.containsStmtStart(result.getParent())
not this.containsStmtStart(parent*(result).getParent())
}
/**
@@ -183,6 +183,11 @@ class ErbDirective extends TDirectiveNode, ErbAstNode {
override string getAPrimaryQlClass() { result = "ErbDirective" }
}
private AstNode parent(AstNode n) {
result = n.getParent() and
not result instanceof Stmt
}
/**
* A comment directive in an ERB template.
* ```erb

View File

@@ -28,14 +28,12 @@ deprecated class Pattern extends AstNode {
Variable getAVariable() { none() }
}
deprecated private class TVariablePattern = TVariableAccess or TSimpleParameter;
/**
* DEPRECATED
*
* A simple variable pattern.
*/
deprecated class VariablePattern extends Pattern, LhsExpr, TVariablePattern {
deprecated class VariablePattern extends Pattern, LhsExpr, TVariableAccess {
override Variable getAVariable() { result = this.(VariableAccess).getVariable() }
}

View File

@@ -660,7 +660,7 @@ class TExpr =
TSelf or TArgumentList or TInClause or TRescueClause or TRescueModifierExpr or TPair or
TStringConcatenation or TCall or TBlockArgument or TConstantAccess or TControlExpr or
TWhenExpr or TLiteral or TCallable or TVariableAccess or TStmtSequence or TOperation or
TSimpleParameter or TForwardArgument or TDestructuredLhsExpr;
TForwardArgument or TDestructuredLhsExpr;
class TSplatExpr = TSplatExprReal or TSplatExprSynth;

View File

@@ -227,7 +227,7 @@ private module Shared {
isHelperMethod(helperMethod, name, template) and
isMethodCall(helperMethodCall.getExpr(), name, template) and
helperMethodCall.getArgument(pragma[only_bind_into](argIdx)) = node1.asExpr() and
helperMethod.getParameter(pragma[only_bind_into](argIdx)) = node2.asExpr().getExpr()
helperMethod.getParameter(pragma[only_bind_into](argIdx)) = node2.asParameter()
)
}