@@ -167,7 +167,7 @@ private module Cached {
167
167
TLTExpr ( Ruby:: Binary g ) { g instanceof @ruby_binary_langle } or
168
168
TLambda ( Ruby:: Lambda g ) or
169
169
TLeftAssignmentList ( Ruby:: LeftAssignmentList g ) or
170
- TLocalVariableAccessReal ( Ruby:: Identifier g , AST :: LocalVariable v ) {
170
+ TLocalVariableAccessReal ( Ruby:: Identifier g , TLocalVariableReal v ) {
171
171
LocalVariableAccess:: range ( g , v )
172
172
} or
173
173
TLocalVariableAccessSynth ( AST:: AstNode parent , int i , AST:: LocalVariable v ) {
@@ -284,13 +284,55 @@ private module Cached {
284
284
TWhileModifierExpr ( Ruby:: WhileModifier g ) or
285
285
TYieldCall ( Ruby:: Yield g )
286
286
287
+ class TAstNodeReal =
288
+ TAddExprReal or TAliasStmt or TArgumentList or TAssignAddExpr or TAssignBitwiseAndExpr or
289
+ TAssignBitwiseOrExpr or TAssignBitwiseXorExpr or TAssignDivExpr or TAssignExponentExpr or
290
+ TAssignExprReal or TAssignLShiftExpr or TAssignLogicalAndExpr or TAssignLogicalOrExpr or
291
+ TAssignModuloExpr or TAssignMulExpr or TAssignRShiftExpr or TAssignSubExpr or
292
+ TBareStringLiteral or TBareSymbolLiteral or TBeginBlock or TBeginExpr or
293
+ TBitwiseAndExprReal or TBitwiseOrExprReal or TBitwiseXorExprReal or TBlockArgument or
294
+ TBlockParameter or TBraceBlock or TBreakStmt or TCaseEqExpr or TCaseExpr or
295
+ TCharacterLiteral or TClassDeclaration or TClassVariableAccessReal or TComplementExpr or
296
+ TComplexLiteral or TDefinedExpr or TDelimitedSymbolLiteral or TDestructuredLeftAssignment or
297
+ TDivExprReal or TDo or TDoBlock or TElementReference or TElse or TElsif or TEmptyStmt or
298
+ TEndBlock or TEnsure or TEqExpr or TExponentExprReal or TFalseLiteral or TFloatLiteral or
299
+ TForExpr or TForIn or TForwardParameter or TForwardArgument or TGEExpr or TGTExpr or
300
+ TGlobalVariableAccessReal or THashKeySymbolLiteral or THashLiteral or THashSplatExpr or
301
+ THashSplatParameter or THereDoc or TIdentifierMethodCall or TIf or TIfModifierExpr or
302
+ TInstanceVariableAccessReal or TIntegerLiteralReal or TKeywordParameter or TLEExpr or
303
+ TLShiftExprReal or TLTExpr or TLambda or TLeftAssignmentList or TLocalVariableAccessReal or
304
+ TLogicalAndExprReal or TLogicalOrExprReal or TMethod or TModuleDeclaration or
305
+ TModuloExprReal or TMulExprReal or TNEExpr or TNextStmt or TNilLiteral or
306
+ TNoRegExpMatchExpr or TNotExpr or TOptionalParameter or TPair or TParenthesizedExpr or
307
+ TRShiftExprReal or TRangeLiteralReal or TRationalLiteral or TRedoStmt or TRegExpLiteral or
308
+ TRegExpMatchExpr or TRegularArrayLiteral or TRegularMethodCall or TRegularStringLiteral or
309
+ TRegularSuperCall or TRescueClause or TRescueModifierExpr or TRetryStmt or TReturnStmt or
310
+ TScopeResolutionConstantAccess or TScopeResolutionMethodCall or TSelfReal or
311
+ TSimpleParameter or TSimpleSymbolLiteral or TSingletonClass or TSingletonMethod or
312
+ TSpaceshipExpr or TSplatExprReal or TSplatParameter or TStringArrayLiteral or
313
+ TStringConcatenation or TStringEscapeSequenceComponent or TStringInterpolationComponent or
314
+ TStringTextComponent or TSubExprReal or TSubshellLiteral or TSymbolArrayLiteral or
315
+ TTernaryIfExpr or TThen or TTokenConstantAccess or TTokenMethodName or TTokenSuperCall or
316
+ TToplevel or TTrueLiteral or TTuplePatternParameter or TUnaryMinusExpr or TUnaryPlusExpr or
317
+ TUndefStmt or TUnlessExpr or TUnlessModifierExpr or TUntilExpr or TUntilModifierExpr or
318
+ TWhenExpr or TWhileExpr or TWhileModifierExpr or TYieldCall ;
319
+
320
+ class TAstNodeSynth =
321
+ TAddExprSynth or TAssignExprSynth or TBitwiseAndExprSynth or TBitwiseOrExprSynth or
322
+ TBitwiseXorExprSynth or TClassVariableAccessSynth or TConstantReadAccessSynth or
323
+ TDivExprSynth or TExponentExprSynth or TGlobalVariableAccessSynth or
324
+ TInstanceVariableAccessSynth or TIntegerLiteralSynth or TLShiftExprSynth or
325
+ TLocalVariableAccessSynth or TLogicalAndExprSynth or TLogicalOrExprSynth or
326
+ TMethodCallSynth or TModuloExprSynth or TMulExprSynth or TRShiftExprSynth or
327
+ TRangeLiteralSynth or TSelfSynth or TSplatExprSynth or TStmtSequenceSynth or TSubExprSynth ;
328
+
287
329
/**
288
330
* Gets the underlying TreeSitter entity for a given AST node. This does not
289
331
* include synthesized AST nodes, because they are not the primary AST node
290
332
* for any given generated node.
291
333
*/
292
334
cached
293
- Ruby:: AstNode toGenerated ( AST :: AstNode n ) {
335
+ Ruby:: AstNode toGenerated ( TAstNodeReal n ) {
294
336
n = TAddExprReal ( result ) or
295
337
n = TAliasStmt ( result ) or
296
338
n = TArgumentList ( result ) or
@@ -495,7 +537,9 @@ private module Cached {
495
537
predicate synthChild ( AST:: AstNode parent , int i , AST:: AstNode child ) {
496
538
child = getSynthChild ( parent , i )
497
539
or
498
- any ( Synthesis s ) .child ( parent , i , RealChild ( child ) )
540
+ any ( Synthesis s ) .child ( parent , i , RealChildRef ( child ) )
541
+ or
542
+ any ( Synthesis s ) .child ( parent , i , SynthChildRef ( child ) )
499
543
}
500
544
501
545
/**
@@ -527,7 +571,7 @@ private module Cached {
527
571
528
572
import Cached
529
573
530
- TAstNode fromGenerated ( Ruby:: AstNode n ) { n = toGenerated ( result ) }
574
+ TAstNodeReal fromGenerated ( Ruby:: AstNode n ) { n = toGenerated ( result ) }
531
575
532
576
class TCall = TMethodCall or TYieldCall ;
533
577
0 commit comments