@@ -100,9 +100,16 @@ private module Cached {
100100 } or
101101 TBlockArgument ( Ruby:: BlockArgument g ) or
102102 TBlockParameter ( Ruby:: BlockParameter g ) or
103+ TBodyStatement ( Ruby:: BodyStatement g ) {
104+ any ( Ruby:: Method m ) .getBody ( ) = g or
105+ any ( Ruby:: SingletonMethod m ) .getBody ( ) = g or
106+ any ( Ruby:: DoBlock b ) .getBody ( ) = g
107+ } or
108+ TBodyStmtSynth ( Ast:: AstNode parent , int i ) { mkSynthChild ( BodyStmtKind ( ) , parent , i ) } or
103109 TBooleanLiteralSynth ( Ast:: AstNode parent , int i , boolean value ) {
104110 mkSynthChild ( BooleanLiteralKind ( value ) , parent , i )
105111 } or
112+ TBraceBlockBody ( Ruby:: BlockBody g ) or
106113 TBraceBlockSynth ( Ast:: AstNode parent , int i ) { mkSynthChild ( BraceBlockKind ( ) , parent , i ) } or
107114 TBraceBlockReal ( Ruby:: Block g ) { not g .getParent ( ) instanceof Ruby:: Lambda } or
108115 TBreakStmt ( Ruby:: Break g ) or
@@ -362,23 +369,24 @@ private module Cached {
362369 TAssignMulExpr or TAssignRShiftExpr or TAssignSubExpr or TBareStringLiteral or
363370 TBareSymbolLiteral or TBeginBlock or TBeginExpr or TBitwiseAndExprReal or
364371 TBitwiseOrExprReal or TBitwiseXorExprReal or TBlockArgument or TBlockParameter or
365- TBraceBlockReal or TBreakStmt or TCaseEqExpr or TCaseExpr or TCaseMatchReal or
366- TCharacterLiteral or TClassDeclaration or TClassVariableAccessReal or TComplementExpr or
367- TComplexLiteral or TDefinedExprReal or TDelimitedSymbolLiteral or
368- TDestructuredLeftAssignment or TDestructuredParameter or TDivExprReal or TDo or TDoBlock or
369- TElementReference or TElseReal or TElsif or TEmptyStmt or TEncoding or TEndBlock or
370- TEnsure or TEqExpr or TExponentExprReal or TFalseLiteral or TFile or TFindPattern or
371- TFloatLiteral or TForExpr or TForwardParameter or TForwardArgument or TGEExpr or TGTExpr or
372- TGlobalVariableAccessReal or THashKeySymbolLiteral or THashLiteral or THashPattern or
373- THashSplatExprReal or THashSplatNilParameter or THashSplatParameter or THereDoc or
374- TIdentifierMethodCall or TIfReal or TIfModifierExpr or TInClauseReal or
375- TInstanceVariableAccessReal or TIntegerLiteralReal or TKeywordParameter or TLEExpr or
376- TLShiftExprReal or TLTExpr or TLambda or TLeftAssignmentList or TLine or
377- TLocalVariableAccessReal or TLogicalAndExprReal or TLogicalOrExprReal or TMethod or
378- TMatchPattern or TModuleDeclaration or TModuloExprReal or TMulExprReal or TNEExpr or
379- TNextStmt or TNilLiteralReal or TNoRegExpMatchExpr or TNotExprReal or TOptionalParameter or
380- TPairReal or TParenthesizedExpr or TParenthesizedPattern or TRShiftExprReal or
381- TRangeLiteralReal or TRationalLiteral or TRedoStmt or TRegExpLiteral or TRegExpMatchExpr or
372+ TBodyStatement or TBraceBlockBody or TBraceBlockReal or TBreakStmt or TCaseEqExpr or
373+ TCaseExpr or TCaseMatchReal or TCharacterLiteral or TClassDeclaration or
374+ TClassVariableAccessReal or TComplementExpr or TComplexLiteral or TDefinedExprReal or
375+ TDelimitedSymbolLiteral or TDestructuredLeftAssignment or TDestructuredParameter or
376+ TDivExprReal or TDo or TDoBlock or TElementReference or TElseReal or TElsif or TEmptyStmt or
377+ TEncoding or TEndBlock or TEnsure or TEqExpr or TExponentExprReal or TFalseLiteral or
378+ TFile or TFindPattern or TFloatLiteral or TForExpr or TForwardParameter or
379+ TForwardArgument or TGEExpr or TGTExpr or TGlobalVariableAccessReal or
380+ THashKeySymbolLiteral or THashLiteral or THashPattern or THashSplatExprReal or
381+ THashSplatNilParameter or THashSplatParameter or THereDoc or TIdentifierMethodCall or
382+ TIfReal or TIfModifierExpr or TInClauseReal or TInstanceVariableAccessReal or
383+ TIntegerLiteralReal or TKeywordParameter or TLEExpr or TLShiftExprReal or TLTExpr or
384+ TLambda or TLeftAssignmentList or TLine or TLocalVariableAccessReal or
385+ TLogicalAndExprReal or TLogicalOrExprReal or TMethod or TMatchPattern or
386+ TModuleDeclaration or TModuloExprReal or TMulExprReal or TNEExpr or TNextStmt or
387+ TNilLiteralReal or TNoRegExpMatchExpr or TNotExprReal or TOptionalParameter or TPairReal or
388+ TParenthesizedExpr or TParenthesizedPattern or TRShiftExprReal or TRangeLiteralReal or
389+ TRationalLiteral or TRedoStmt or TRegExpLiteral or TRegExpMatchExpr or
382390 TRegularArrayLiteral or TRegularMethodCall or TRegularStringLiteral or TRegularSuperCall or
383391 TRescueClause or TRescueModifierExpr or TRetryStmt or TReturnStmt or
384392 TScopeResolutionConstantAccess or TSelfReal or TSimpleParameterReal or
@@ -393,13 +401,13 @@ private module Cached {
393401
394402 class TAstNodeSynth =
395403 TAddExprSynth or TAssignExprSynth or TBitwiseAndExprSynth or TBitwiseOrExprSynth or
396- TBitwiseXorExprSynth or TBraceBlockSynth or TBooleanLiteralSynth or TCaseMatchSynth or
397- TClassVariableAccessSynth or TConstantReadAccessSynth or TConstantWriteAccessSynth or
398- TDivExprSynth or TElseSynth or TExponentExprSynth or TGlobalVariableAccessSynth or
399- TIfSynth or TInClauseSynth or TInstanceVariableAccessSynth or TIntegerLiteralSynth or
400- TLShiftExprSynth or TLocalVariableAccessSynth or TLogicalAndExprSynth or
401- TLogicalOrExprSynth or TMethodCallSynth or TModuloExprSynth or TMulExprSynth or
402- TNilLiteralSynth or TRShiftExprSynth or TRangeLiteralSynth or TSelfSynth or
404+ TBitwiseXorExprSynth or TBraceBlockSynth or TBodyStmtSynth or TBooleanLiteralSynth or
405+ TCaseMatchSynth or TClassVariableAccessSynth or TConstantReadAccessSynth or
406+ TConstantWriteAccessSynth or TDivExprSynth or TElseSynth or TExponentExprSynth or
407+ TGlobalVariableAccessSynth or TIfSynth or TInClauseSynth or TInstanceVariableAccessSynth or
408+ TIntegerLiteralSynth or TLShiftExprSynth or TLocalVariableAccessSynth or
409+ TLogicalAndExprSynth or TLogicalOrExprSynth or TMethodCallSynth or TModuloExprSynth or
410+ TMulExprSynth or TNilLiteralSynth or TRShiftExprSynth or TRangeLiteralSynth or TSelfSynth or
403411 TSimpleParameterSynth or TSplatExprSynth or THashSplatExprSynth or TStmtSequenceSynth or
404412 TSubExprSynth or TPairSynth or TSimpleSymbolLiteralSynth ;
405413
@@ -439,6 +447,8 @@ private module Cached {
439447 n = TBitwiseXorExprReal ( result ) or
440448 n = TBlockArgument ( result ) or
441449 n = TBlockParameter ( result ) or
450+ n = TBodyStatement ( result ) or
451+ n = TBraceBlockBody ( result ) or
442452 n = TBraceBlockReal ( result ) or
443453 n = TBreakStmt ( result ) or
444454 n = TCaseEqExpr ( result ) or
@@ -584,6 +594,8 @@ private module Cached {
584594 or
585595 result = TBitwiseXorExprSynth ( parent , i )
586596 or
597+ result = TBodyStmtSynth ( parent , i )
598+ or
587599 result = TBooleanLiteralSynth ( parent , i , _)
588600 or
589601 result = TBraceBlockSynth ( parent , i )
@@ -757,9 +769,9 @@ class TElse = TElseReal or TElseSynth;
757769
758770class TStmtSequence =
759771 TBeginBlock or TEndBlock or TThen or TElse or TDo or TEnsure or TStringInterpolationComponent or
760- TBlock or TBodyStmt or TParenthesizedExpr or TStmtSequenceSynth ;
772+ TBodyStmt or TParenthesizedExpr or TStmtSequenceSynth ;
761773
762- class TBodyStmt = TBeginExpr or TModuleBase or TMethod or TLambda or TDoBlock or TSingletonMethod ;
774+ class TBodyStmt = TBeginExpr or TModuleBase or TBraceBlockBody or TBodyStatement or TBodyStmtSynth ;
763775
764776class TNilLiteral = TNilLiteralReal or TNilLiteralSynth ;
765777
0 commit comments