pub type pm_local_variable_write_node_t = pm_local_variable_write_node;Expand description
LocalVariableWriteNode
Represents writing to a local variable.
foo = 1
^^^^^^^Type: ::PM_LOCAL_VARIABLE_WRITE_NODE
@extends pm_node_t
Aliased Type§
#[repr(C)]pub struct pm_local_variable_write_node_t {
pub base: pm_node,
pub name: u32,
pub depth: u32,
pub name_loc: pm_location_t,
pub value: *mut pm_node,
pub operator_loc: pm_location_t,
}Fields§
§base: pm_nodeThe embedded base node.
name: u32LocalVariableWriteNode#name
The name of the local variable, which is an identifier.
foo = :bar # name `:foo` abc = 123 # name `:abc`depth: u32LocalVariableWriteNode#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 1The 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.
name_loc: pm_location_tLocalVariableWriteNode#name_loc
The Location of the variable name.
foo = :bar
^^^value: *mut pm_nodeLocalVariableWriteNode#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 = foooperator_loc: pm_location_tLocalVariableWriteNode#operator_loc
The Location of the = operator.
x = :y
^