Ruby 3.5.0dev (2025-06-07 revision 20cf46039a90135b3d9efceabc73b0d41ad257b8)
|
LocalVariableReadNode. More...
#include <ast.h>
Data Fields | |
pm_node_t | base |
The embedded base node. | |
pm_constant_id_t | name |
LocalVariableReadNode::name. | |
uint32_t | depth |
LocalVariableReadNode::depth. | |
![]() | |
pm_node_type_t | type |
This represents the type of the node. | |
pm_node_flags_t | flags |
This represents any flags on the node. | |
uint32_t | node_id |
The unique identifier for this node, which is deterministic based on the source. | |
pm_location_t | location |
This is the location of the node in the source. | |
LocalVariableReadNode.
Represents reading a local variable. Note that this requires that a local variable of the same name has already been written to in the same scope, otherwise it is parsed as a method call.
foo ^^^
Type: PM_LOCAL_VARIABLE_READ_NODE
pm_node_t pm_local_variable_read_node::base |
uint32_t pm_local_variable_read_node::depth |
LocalVariableReadNode::depth.
The number of visible scopes that should be searched to find the origin of this local variable.
foo = 1; foo # depth 0 bar = 2; tap { bar } # depth 1
The specific rules for calculating the depth may differ from individual Ruby implementations, as they are not specified by the language. For more information, see the Prism documentation.
Definition at line 5639 of file ast.h.
Referenced by pm_dump_json().
pm_constant_id_t pm_local_variable_read_node::name |
LocalVariableReadNode::name.
The name of the local variable, which is an identifier.
x # name `:x` _Test # name `:_Test`
Note that this can also be an underscore followed by a number for the default block parameters.
_1 # name `:_1`
Definition at line 5626 of file ast.h.
Referenced by pm_dump_json().