@@ -4,7 +4,7 @@ private import codeql.ruby.ast.internal.Call
4
4
private import codeql.ruby.ast.internal.Parameter
5
5
private import codeql.ruby.ast.internal.Pattern
6
6
private import codeql.ruby.ast.internal.Variable
7
- private import codeql.ruby.AST as AST
7
+ private import codeql.ruby.AST as Ast
8
8
private import Synthesis
9
9
10
10
module MethodName {
@@ -20,7 +20,7 @@ module MethodName {
20
20
@ruby_token_operator;
21
21
}
22
22
23
- private predicate mkSynthChild ( SynthKind kind , AST :: AstNode parent , int i ) {
23
+ private predicate mkSynthChild ( SynthKind kind , Ast :: AstNode parent , int i ) {
24
24
any ( Synthesis s ) .child ( parent , i , SynthChild ( kind ) )
25
25
}
26
26
@@ -29,7 +29,7 @@ private module Cached {
29
29
cached
30
30
newtype TAstNode =
31
31
TAddExprReal ( Ruby:: Binary g ) { g instanceof @ruby_binary_plus } or
32
- TAddExprSynth ( AST :: AstNode parent , int i ) { mkSynthChild ( AddExprKind ( ) , parent , i ) } or
32
+ TAddExprSynth ( Ast :: AstNode parent , int i ) { mkSynthChild ( AddExprKind ( ) , parent , i ) } or
33
33
TAliasStmt ( Ruby:: Alias g ) or
34
34
TAlternativePattern ( Ruby:: AlternativePattern g ) or
35
35
TArgumentList ( Ruby:: AstNode g ) {
@@ -62,7 +62,7 @@ private module Cached {
62
62
g instanceof @ruby_operator_assignment_starstarequal
63
63
} or
64
64
TAssignExprReal ( Ruby:: Assignment g ) or
65
- TAssignExprSynth ( AST :: AstNode parent , int i ) { mkSynthChild ( AssignExprKind ( ) , parent , i ) } or
65
+ TAssignExprSynth ( Ast :: AstNode parent , int i ) { mkSynthChild ( AssignExprKind ( ) , parent , i ) } or
66
66
TAssignLShiftExpr ( Ruby:: OperatorAssignment g ) {
67
67
g instanceof @ruby_operator_assignment_langlelangleequal
68
68
} or
@@ -86,34 +86,34 @@ private module Cached {
86
86
TBeginBlock ( Ruby:: BeginBlock g ) or
87
87
TBeginExpr ( Ruby:: Begin g ) or
88
88
TBitwiseAndExprReal ( Ruby:: Binary g ) { g instanceof @ruby_binary_ampersand } or
89
- TBitwiseAndExprSynth ( AST :: AstNode parent , int i ) {
89
+ TBitwiseAndExprSynth ( Ast :: AstNode parent , int i ) {
90
90
mkSynthChild ( BitwiseAndExprKind ( ) , parent , i )
91
91
} or
92
92
TBitwiseOrExprReal ( Ruby:: Binary g ) { g instanceof @ruby_binary_pipe } or
93
- TBitwiseOrExprSynth ( AST :: AstNode parent , int i ) { mkSynthChild ( BitwiseOrExprKind ( ) , parent , i ) } or
93
+ TBitwiseOrExprSynth ( Ast :: AstNode parent , int i ) { mkSynthChild ( BitwiseOrExprKind ( ) , parent , i ) } or
94
94
TBitwiseXorExprReal ( Ruby:: Binary g ) { g instanceof @ruby_binary_caret } or
95
- TBitwiseXorExprSynth ( AST :: AstNode parent , int i ) {
95
+ TBitwiseXorExprSynth ( Ast :: AstNode parent , int i ) {
96
96
mkSynthChild ( BitwiseXorExprKind ( ) , parent , i )
97
97
} or
98
98
TBlockArgument ( Ruby:: BlockArgument g ) or
99
99
TBlockParameter ( Ruby:: BlockParameter g ) or
100
- TBraceBlockSynth ( AST :: AstNode parent , int i ) { mkSynthChild ( BraceBlockKind ( ) , parent , i ) } or
100
+ TBraceBlockSynth ( Ast :: AstNode parent , int i ) { mkSynthChild ( BraceBlockKind ( ) , parent , i ) } or
101
101
TBraceBlockReal ( Ruby:: Block g ) { not g .getParent ( ) instanceof Ruby:: Lambda } or
102
102
TBreakStmt ( Ruby:: Break g ) or
103
103
TCaseEqExpr ( Ruby:: Binary g ) { g instanceof @ruby_binary_equalequalequal } or
104
104
TCaseExpr ( Ruby:: Case g ) or
105
105
TCaseMatch ( Ruby:: CaseMatch g ) or
106
106
TCharacterLiteral ( Ruby:: Character g ) or
107
107
TClassDeclaration ( Ruby:: Class g ) or
108
- TClassVariableAccessReal ( Ruby:: ClassVariable g , AST :: ClassVariable v ) {
108
+ TClassVariableAccessReal ( Ruby:: ClassVariable g , Ast :: ClassVariable v ) {
109
109
ClassVariableAccess:: range ( g , v )
110
110
} or
111
- TClassVariableAccessSynth ( AST :: AstNode parent , int i , AST :: ClassVariable v ) {
111
+ TClassVariableAccessSynth ( Ast :: AstNode parent , int i , Ast :: ClassVariable v ) {
112
112
mkSynthChild ( ClassVariableAccessKind ( v ) , parent , i )
113
113
} or
114
114
TComplementExpr ( Ruby:: Unary g ) { g instanceof @ruby_unary_tilde } or
115
115
TComplexLiteral ( Ruby:: Complex g ) or
116
- TConstantReadAccessSynth ( AST :: AstNode parent , int i , string value ) {
116
+ TConstantReadAccessSynth ( Ast :: AstNode parent , int i , string value ) {
117
117
mkSynthChild ( ConstantReadAccessKind ( value ) , parent , i )
118
118
} or
119
119
TDefinedExpr ( Ruby:: Unary g ) { g instanceof @ruby_unary_definedquestion } or
@@ -122,7 +122,7 @@ private module Cached {
122
122
not strictcount ( int i | exists ( g .getParent ( ) .( Ruby:: LeftAssignmentList ) .getChild ( i ) ) ) = 1
123
123
} or
124
124
TDivExprReal ( Ruby:: Binary g ) { g instanceof @ruby_binary_slash } or
125
- TDivExprSynth ( AST :: AstNode parent , int i ) { mkSynthChild ( DivExprKind ( ) , parent , i ) } or
125
+ TDivExprSynth ( Ast :: AstNode parent , int i ) { mkSynthChild ( DivExprKind ( ) , parent , i ) } or
126
126
TDo ( Ruby:: Do g ) or
127
127
TDoBlock ( Ruby:: DoBlock g ) { not g .getParent ( ) instanceof Ruby:: Lambda } or
128
128
TElementReference ( Ruby:: ElementReference g ) or
@@ -134,7 +134,7 @@ private module Cached {
134
134
TEnsure ( Ruby:: Ensure g ) or
135
135
TEqExpr ( Ruby:: Binary g ) { g instanceof @ruby_binary_equalequal } or
136
136
TExponentExprReal ( Ruby:: Binary g ) { g instanceof @ruby_binary_starstar } or
137
- TExponentExprSynth ( AST :: AstNode parent , int i ) { mkSynthChild ( ExponentExprKind ( ) , parent , i ) } or
137
+ TExponentExprSynth ( Ast :: AstNode parent , int i ) { mkSynthChild ( ExponentExprKind ( ) , parent , i ) } or
138
138
TFalseLiteral ( Ruby:: False g ) or
139
139
TFile ( Ruby:: File g ) or
140
140
TFindPattern ( Ruby:: FindPattern g ) or
@@ -146,10 +146,10 @@ private module Cached {
146
146
TForwardArgument ( Ruby:: ForwardArgument g ) or
147
147
TGEExpr ( Ruby:: Binary g ) { g instanceof @ruby_binary_rangleequal } or
148
148
TGTExpr ( Ruby:: Binary g ) { g instanceof @ruby_binary_rangle } or
149
- TGlobalVariableAccessReal ( Ruby:: GlobalVariable g , AST :: GlobalVariable v ) {
149
+ TGlobalVariableAccessReal ( Ruby:: GlobalVariable g , Ast :: GlobalVariable v ) {
150
150
GlobalVariableAccess:: range ( g , v )
151
151
} or
152
- TGlobalVariableAccessSynth ( AST :: AstNode parent , int i , AST :: GlobalVariable v ) {
152
+ TGlobalVariableAccessSynth ( Ast :: AstNode parent , int i , Ast :: GlobalVariable v ) {
153
153
mkSynthChild ( GlobalVariableAccessKind ( v ) , parent , i )
154
154
} or
155
155
THashKeySymbolLiteral ( Ruby:: HashKeySymbol g ) or
@@ -163,70 +163,70 @@ private module Cached {
163
163
THereDoc ( Ruby:: HeredocBeginning g ) or
164
164
TIdentifierMethodCall ( Ruby:: Identifier g ) { isIdentifierMethodCall ( g ) } or
165
165
TIfReal ( Ruby:: If g ) or
166
- TIfSynth ( AST :: AstNode parent , int i ) { mkSynthChild ( IfKind ( ) , parent , i ) } or
166
+ TIfSynth ( Ast :: AstNode parent , int i ) { mkSynthChild ( IfKind ( ) , parent , i ) } or
167
167
TIfModifierExpr ( Ruby:: IfModifier g ) or
168
168
TInClause ( Ruby:: InClause g ) or
169
- TInstanceVariableAccessReal ( Ruby:: InstanceVariable g , AST :: InstanceVariable v ) {
169
+ TInstanceVariableAccessReal ( Ruby:: InstanceVariable g , Ast :: InstanceVariable v ) {
170
170
InstanceVariableAccess:: range ( g , v )
171
171
} or
172
- TInstanceVariableAccessSynth ( AST :: AstNode parent , int i , AST :: InstanceVariable v ) {
172
+ TInstanceVariableAccessSynth ( Ast :: AstNode parent , int i , Ast :: InstanceVariable v ) {
173
173
mkSynthChild ( InstanceVariableAccessKind ( v ) , parent , i )
174
174
} or
175
175
TIntegerLiteralReal ( Ruby:: Integer g ) {
176
176
not any ( Ruby:: Complex r ) .getChild ( ) = g and not any ( Ruby:: Rational r ) .getChild ( ) = g
177
177
} or
178
- TIntegerLiteralSynth ( AST :: AstNode parent , int i , int value ) {
178
+ TIntegerLiteralSynth ( Ast :: AstNode parent , int i , int value ) {
179
179
mkSynthChild ( IntegerLiteralKind ( value ) , parent , i )
180
180
} or
181
181
TKeywordParameter ( Ruby:: KeywordParameter g ) or
182
182
TLEExpr ( Ruby:: Binary g ) { g instanceof @ruby_binary_langleequal } or
183
183
TLShiftExprReal ( Ruby:: Binary g ) { g instanceof @ruby_binary_langlelangle } or
184
- TLShiftExprSynth ( AST :: AstNode parent , int i ) { mkSynthChild ( LShiftExprKind ( ) , parent , i ) } or
184
+ TLShiftExprSynth ( Ast :: AstNode parent , int i ) { mkSynthChild ( LShiftExprKind ( ) , parent , i ) } or
185
185
TLTExpr ( Ruby:: Binary g ) { g instanceof @ruby_binary_langle } or
186
186
TLambda ( Ruby:: Lambda g ) or
187
187
TLine ( Ruby:: Line g ) or
188
188
TLeftAssignmentList ( Ruby:: LeftAssignmentList g ) or
189
189
TLocalVariableAccessReal ( Ruby:: Identifier g , TLocalVariableReal v ) {
190
190
LocalVariableAccess:: range ( g , v )
191
191
} or
192
- TLocalVariableAccessSynth ( AST :: AstNode parent , int i , AST :: LocalVariable v ) {
192
+ TLocalVariableAccessSynth ( Ast :: AstNode parent , int i , Ast :: LocalVariable v ) {
193
193
mkSynthChild ( LocalVariableAccessRealKind ( v ) , parent , i )
194
194
or
195
195
mkSynthChild ( LocalVariableAccessSynthKind ( v ) , parent , i )
196
196
} or
197
197
TLogicalAndExprReal ( Ruby:: Binary g ) {
198
198
g instanceof @ruby_binary_and or g instanceof @ruby_binary_ampersandampersand
199
199
} or
200
- TLogicalAndExprSynth ( AST :: AstNode parent , int i ) {
200
+ TLogicalAndExprSynth ( Ast :: AstNode parent , int i ) {
201
201
mkSynthChild ( LogicalAndExprKind ( ) , parent , i )
202
202
} or
203
203
TLogicalOrExprReal ( Ruby:: Binary g ) {
204
204
g instanceof @ruby_binary_or or g instanceof @ruby_binary_pipepipe
205
205
} or
206
- TLogicalOrExprSynth ( AST :: AstNode parent , int i ) { mkSynthChild ( LogicalOrExprKind ( ) , parent , i ) } or
206
+ TLogicalOrExprSynth ( Ast :: AstNode parent , int i ) { mkSynthChild ( LogicalOrExprKind ( ) , parent , i ) } or
207
207
TMethod ( Ruby:: Method g ) or
208
- TMethodCallSynth ( AST :: AstNode parent , int i , string name , boolean setter , int arity ) {
208
+ TMethodCallSynth ( Ast :: AstNode parent , int i , string name , boolean setter , int arity ) {
209
209
mkSynthChild ( MethodCallKind ( name , setter , arity ) , parent , i )
210
210
} or
211
211
TModuleDeclaration ( Ruby:: Module g ) or
212
212
TModuloExprReal ( Ruby:: Binary g ) { g instanceof @ruby_binary_percent } or
213
- TModuloExprSynth ( AST :: AstNode parent , int i ) { mkSynthChild ( ModuloExprKind ( ) , parent , i ) } or
213
+ TModuloExprSynth ( Ast :: AstNode parent , int i ) { mkSynthChild ( ModuloExprKind ( ) , parent , i ) } or
214
214
TMulExprReal ( Ruby:: Binary g ) { g instanceof @ruby_binary_star } or
215
- TMulExprSynth ( AST :: AstNode parent , int i ) { mkSynthChild ( MulExprKind ( ) , parent , i ) } or
215
+ TMulExprSynth ( Ast :: AstNode parent , int i ) { mkSynthChild ( MulExprKind ( ) , parent , i ) } or
216
216
TNEExpr ( Ruby:: Binary g ) { g instanceof @ruby_binary_bangequal } or
217
217
TNextStmt ( Ruby:: Next g ) or
218
218
TNilLiteralReal ( Ruby:: Nil g ) or
219
- TNilLiteralSynth ( AST :: AstNode parent , int i ) { mkSynthChild ( NilLiteralKind ( ) , parent , i ) } or
219
+ TNilLiteralSynth ( Ast :: AstNode parent , int i ) { mkSynthChild ( NilLiteralKind ( ) , parent , i ) } or
220
220
TNoRegExpMatchExpr ( Ruby:: Binary g ) { g instanceof @ruby_binary_bangtilde } or
221
221
TNotExpr ( Ruby:: Unary g ) { g instanceof @ruby_unary_bang or g instanceof @ruby_unary_not } or
222
222
TOptionalParameter ( Ruby:: OptionalParameter g ) or
223
223
TPair ( Ruby:: Pair g ) or
224
224
TParenthesizedExpr ( Ruby:: ParenthesizedStatements g ) or
225
225
TParenthesizedPattern ( Ruby:: ParenthesizedPattern g ) or
226
226
TRShiftExprReal ( Ruby:: Binary g ) { g instanceof @ruby_binary_ranglerangle } or
227
- TRShiftExprSynth ( AST :: AstNode parent , int i ) { mkSynthChild ( RShiftExprKind ( ) , parent , i ) } or
227
+ TRShiftExprSynth ( Ast :: AstNode parent , int i ) { mkSynthChild ( RShiftExprKind ( ) , parent , i ) } or
228
228
TRangeLiteralReal ( Ruby:: Range g ) or
229
- TRangeLiteralSynth ( AST :: AstNode parent , int i , boolean inclusive ) {
229
+ TRangeLiteralSynth ( Ast :: AstNode parent , int i , boolean inclusive ) {
230
230
mkSynthChild ( RangeLiteralKind ( inclusive ) , parent , i )
231
231
} or
232
232
TRationalLiteral ( Ruby:: Rational g ) { not any ( Ruby:: Complex r ) .getChild ( ) = g } or
@@ -255,24 +255,24 @@ private module Cached {
255
255
)
256
256
} or
257
257
TSelfReal ( Ruby:: Self g ) or
258
- TSelfSynth ( AST :: AstNode parent , int i , AST :: SelfVariable v ) {
258
+ TSelfSynth ( Ast :: AstNode parent , int i , Ast :: SelfVariable v ) {
259
259
mkSynthChild ( SelfKind ( v ) , parent , i )
260
260
} or
261
261
TSimpleParameterReal ( Ruby:: Identifier g ) { g instanceof Parameter:: Range } or
262
- TSimpleParameterSynth ( AST :: AstNode parent , int i ) {
262
+ TSimpleParameterSynth ( Ast :: AstNode parent , int i ) {
263
263
mkSynthChild ( SimpleParameterKind ( ) , parent , i )
264
264
} or
265
265
TSimpleSymbolLiteral ( Ruby:: SimpleSymbol g ) or
266
266
TSingletonClass ( Ruby:: SingletonClass g ) or
267
267
TSingletonMethod ( Ruby:: SingletonMethod g ) or
268
268
TSpaceshipExpr ( Ruby:: Binary g ) { g instanceof @ruby_binary_langleequalrangle } or
269
269
TSplatExprReal ( Ruby:: SplatArgument g ) or
270
- TSplatExprSynth ( AST :: AstNode parent , int i ) { mkSynthChild ( SplatExprKind ( ) , parent , i ) } or
270
+ TSplatExprSynth ( Ast :: AstNode parent , int i ) { mkSynthChild ( SplatExprKind ( ) , parent , i ) } or
271
271
TSplatParameter ( Ruby:: SplatParameter g ) {
272
272
not g .getParent ( ) instanceof Ruby:: ArrayPattern and
273
273
not g .getParent ( ) instanceof Ruby:: FindPattern
274
274
} or
275
- TStmtSequenceSynth ( AST :: AstNode parent , int i ) { mkSynthChild ( StmtSequenceKind ( ) , parent , i ) } or
275
+ TStmtSequenceSynth ( Ast :: AstNode parent , int i ) { mkSynthChild ( StmtSequenceKind ( ) , parent , i ) } or
276
276
TStringArrayLiteral ( Ruby:: StringArray g ) or
277
277
TStringConcatenation ( Ruby:: ChainedString g ) or
278
278
TStringEscapeSequenceComponentNonRegexp ( Ruby:: EscapeSequence g ) {
@@ -298,7 +298,7 @@ private module Cached {
298
298
g .getParent ( ) instanceof Ruby:: Regex
299
299
} or
300
300
TSubExprReal ( Ruby:: Binary g ) { g instanceof @ruby_binary_minus } or
301
- TSubExprSynth ( AST :: AstNode parent , int i ) { mkSynthChild ( SubExprKind ( ) , parent , i ) } or
301
+ TSubExprSynth ( Ast :: AstNode parent , int i ) { mkSynthChild ( SubExprKind ( ) , parent , i ) } or
302
302
TSubshellLiteral ( Ruby:: Subshell g ) or
303
303
TSymbolArrayLiteral ( Ruby:: SymbolArray g ) or
304
304
TTernaryIfExpr ( Ruby:: Conditional g ) or
@@ -548,7 +548,7 @@ private module Cached {
548
548
549
549
/** Gets the `i`th synthesized child of `parent`. */
550
550
cached
551
- AST :: AstNode getSynthChild ( AST :: AstNode parent , int i ) {
551
+ Ast :: AstNode getSynthChild ( Ast :: AstNode parent , int i ) {
552
552
result = TAddExprSynth ( parent , i )
553
553
or
554
554
result = TAssignExprSynth ( parent , i )
@@ -613,7 +613,7 @@ private module Cached {
613
613
* `child` (or both) is a synthesized node.
614
614
*/
615
615
cached
616
- predicate synthChild ( AST :: AstNode parent , int i , AST :: AstNode child ) {
616
+ predicate synthChild ( Ast :: AstNode parent , int i , Ast :: AstNode child ) {
617
617
child = getSynthChild ( parent , i )
618
618
or
619
619
any ( Synthesis s ) .child ( parent , i , RealChildRef ( child ) )
@@ -626,18 +626,18 @@ private module Cached {
626
626
* nodes.
627
627
*/
628
628
cached
629
- Ruby:: AstNode toGeneratedInclSynth ( AST :: AstNode n ) {
629
+ Ruby:: AstNode toGeneratedInclSynth ( Ast :: AstNode n ) {
630
630
result = toGenerated ( n )
631
631
or
632
632
not exists ( toGenerated ( n ) ) and
633
- exists ( AST :: AstNode parent |
633
+ exists ( Ast :: AstNode parent |
634
634
synthChild ( parent , _, n ) and
635
635
result = toGeneratedInclSynth ( parent )
636
636
)
637
637
}
638
638
639
639
cached
640
- Location getLocation ( AST :: AstNode n ) {
640
+ Location getLocation ( Ast :: AstNode n ) {
641
641
synthLocation ( n , result )
642
642
or
643
643
n .isSynthesized ( ) and
@@ -648,12 +648,12 @@ private module Cached {
648
648
}
649
649
650
650
cached
651
- predicate lhsExpr ( AST :: Expr e ) {
651
+ predicate lhsExpr ( Ast :: Expr e ) {
652
652
explicitAssignmentNode ( toGenerated ( e ) , _)
653
653
or
654
654
implicitAssignmentNode ( toGenerated ( e ) )
655
655
or
656
- e = getSynthChild ( any ( AST :: AssignExpr ae ) , 0 )
656
+ e = getSynthChild ( any ( Ast :: AssignExpr ae ) , 0 )
657
657
}
658
658
}
659
659
0 commit comments