foo in bar ^^^^^^^^^^
Visit the list of statements of a statements node. We support nil statements in the list. This would normally not be allowed by the structure of the prism parse tree, but we manually add them here so that we can mirror Ripper’s void stmt.
A list of statements.
Visit the interpolated content of the string-like node.
A list of statements.
Pattern
constants get wrapped in another layer of :const.
Foo::Bar &&= baz ^^^^^^^^^^^^^^^^
Foo::Bar ||= baz ^^^^^^^^^^^^^^^^
Foo::Bar &&= baz ^^^^^^^^^^^^^^^^
Foo::Bar ||= baz ^^^^^^^^^^^^^^^^
Compile a InterpolatedMatchLastLineNode
node
Dispatch enter and leave events for InterpolatedMatchLastLineNode
nodes and continue walking the tree.
Inspect a InterpolatedMatchLastLineNode
node.
Copy a InterpolatedMatchLastLineNode
node
The logical inverse of ‘capture_last_end_same_indent`
When there is an invalid block with an ‘end` missing a keyword right after another `end`, it is unclear where which end is missing the keyword.
Take this example:
class Dog # 1 puts "woof" # 2 end # 3 end # 4
the problem line will be identified as:
> end # 4
This happens because lines 1, 2, and 3 are technically valid code and are expanded first, deemed valid, and hidden. We need to un-hide the matching keyword on line 1. Also work backwards and if there’s a mis-matched end, show it too