File tree Expand file tree Collapse file tree 1 file changed +10
-4
lines changed
ruby/ql/lib/codeql/ruby/ast/internal Expand file tree Collapse file tree 1 file changed +10
-4
lines changed Original file line number Diff line number Diff line change @@ -952,6 +952,8 @@ private module DestructuredAssignDesugar {
952
952
}
953
953
954
954
abstract private class LhsWithReceiver extends Expr {
955
+ LhsWithReceiver ( ) { this = any ( DestructuredAssignExpr dae ) .getElement ( _) }
956
+
955
957
abstract Expr getReceiver ( ) ;
956
958
957
959
abstract SynthKind getSynthKind ( ) ;
@@ -960,8 +962,14 @@ private module DestructuredAssignDesugar {
960
962
private class LhsCall extends LhsWithReceiver instanceof MethodCall {
961
963
final override Expr getReceiver ( ) { result = MethodCall .super .getReceiver ( ) }
962
964
965
+ pragma [ nomagic]
966
+ private string getMethodName ( int args ) {
967
+ result = super .getMethodName ( ) and
968
+ args = super .getNumberOfArguments ( )
969
+ }
970
+
963
971
final override SynthKind getSynthKind ( ) {
964
- result = MethodCallKind ( super .getMethodName ( ) , false , super . getNumberOfArguments ( ) )
972
+ exists ( int args | result = MethodCallKind ( this .getMethodName ( args ) , false , args ) )
965
973
}
966
974
}
967
975
@@ -1154,9 +1162,7 @@ private module DestructuredAssignDesugar {
1154
1162
)
1155
1163
}
1156
1164
1157
- final override predicate excludeFromControlFlowTree ( AstNode n ) {
1158
- n = any ( DestructuredAssignExpr tae ) .getElement ( _) .( LhsWithReceiver )
1159
- }
1165
+ final override predicate excludeFromControlFlowTree ( AstNode n ) { n instanceof LhsWithReceiver }
1160
1166
}
1161
1167
}
1162
1168
You can’t perform that action at this time.
0 commit comments