@@ -167,7 +167,7 @@ private module Cached {
167167 TLTExpr ( Ruby:: Binary g ) { g instanceof @ruby_binary_langle } or
168168 TLambda ( Ruby:: Lambda g ) or
169169 TLeftAssignmentList ( Ruby:: LeftAssignmentList g ) or
170- TLocalVariableAccessReal ( Ruby:: Identifier g , AST :: LocalVariable v ) {
170+ TLocalVariableAccessReal ( Ruby:: Identifier g , TLocalVariableReal v ) {
171171 LocalVariableAccess:: range ( g , v )
172172 } or
173173 TLocalVariableAccessSynth ( AST:: AstNode parent , int i , AST:: LocalVariable v ) {
@@ -284,13 +284,55 @@ private module Cached {
284284 TWhileModifierExpr ( Ruby:: WhileModifier g ) or
285285 TYieldCall ( Ruby:: Yield g )
286286
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+
287329 /**
288330 * Gets the underlying TreeSitter entity for a given AST node. This does not
289331 * include synthesized AST nodes, because they are not the primary AST node
290332 * for any given generated node.
291333 */
292334 cached
293- Ruby:: AstNode toGenerated ( AST :: AstNode n ) {
335+ Ruby:: AstNode toGenerated ( TAstNodeReal n ) {
294336 n = TAddExprReal ( result ) or
295337 n = TAliasStmt ( result ) or
296338 n = TArgumentList ( result ) or
@@ -495,7 +537,9 @@ private module Cached {
495537 predicate synthChild ( AST:: AstNode parent , int i , AST:: AstNode child ) {
496538 child = getSynthChild ( parent , i )
497539 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 ) )
499543 }
500544
501545 /**
@@ -527,7 +571,7 @@ private module Cached {
527571
528572import Cached
529573
530- TAstNode fromGenerated ( Ruby:: AstNode n ) { n = toGenerated ( result ) }
574+ TAstNodeReal fromGenerated ( Ruby:: AstNode n ) { n = toGenerated ( result ) }
531575
532576class TCall = TMethodCall or TYieldCall ;
533577
0 commit comments