|
Ruby 4.1.0dev (2026-03-05 revision 67d4396dc98d1fd29d4555ac3ce212368eda76de)
|
LocalVariableWriteNode. More...
#include <ast.h>
Data Fields | |
| pm_node_t | base |
| The embedded base node. | |
| pm_constant_id_t | name |
| LocalVariableWriteNode::name. | |
| uint32_t | depth |
| LocalVariableWriteNode::depth. | |
| pm_location_t | name_loc |
| LocalVariableWriteNode::name_loc. | |
| PM_NODE_ALIGNAS struct pm_node * | value |
| LocalVariableWriteNode::value. | |
| pm_location_t | operator_loc |
| LocalVariableWriteNode::operator_loc. | |
Data Fields inherited from pm_node | |
| 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. | |
LocalVariableWriteNode.
Represents writing to a local variable.
foo = 1 ^^^^^^^
Type: PM_LOCAL_VARIABLE_WRITE_NODE
| pm_node_t pm_local_variable_write_node::base |
| uint32_t pm_local_variable_write_node::depth |
LocalVariableWriteNode::depth.
The number of semantic scopes we have to traverse to find the declaration of this variable.
foo = 1 # depth 0
tap { foo = 1 } # 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 5757 of file ast.h.
Referenced by pm_dump_json().
| pm_constant_id_t pm_local_variable_write_node::name |
LocalVariableWriteNode::name.
The name of the local variable, which is an identifier.
foo = :bar # name `:foo` abc = 123 # name `:abc`
Definition at line 5744 of file ast.h.
Referenced by pm_dump_json().
| pm_location_t pm_local_variable_write_node::name_loc |
LocalVariableWriteNode::name_loc.
The Location of the variable name.
foo = :bar ^^^
Definition at line 5767 of file ast.h.
Referenced by pm_dump_json().
| pm_location_t pm_local_variable_write_node::operator_loc |
LocalVariableWriteNode::operator_loc.
The Location of the = operator.
x = :y ^
Definition at line 5794 of file ast.h.
Referenced by pm_dump_json().
| PM_NODE_ALIGNAS struct pm_node* pm_local_variable_write_node::value |
LocalVariableWriteNode::value.
The value to write to the local variable. It can be any non-void expression.
foo = :bar
^^^^
abc = 1234
^^^^
Note that since the name of a local variable is known before the value is parsed, it is valid for a local variable to appear within the value of its own write.
foo = foo
Definition at line 5784 of file ast.h.
Referenced by pm_dump_json(), pm_node_destroy(), and pm_visit_child_nodes().