#[repr(C)]pub struct pm_local_variable_write_node {
pub base: pm_node_t,
pub name: pm_constant_id_t,
pub depth: u32,
pub name_loc: pm_location_t,
pub value: *mut pm_node,
pub operator_loc: pm_location_t,
}
Expand description
LocalVariableWriteNode
Represents writing to a local variable.
foo = 1
^^^^^^^
Type: ::PM_LOCAL_VARIABLE_WRITE_NODE
@extends pm_node_t
Fields§
§base: pm_node_t
The embedded base node.
name: pm_constant_id_t
LocalVariableWriteNode#name
The name of the local variable, which is an identifier.
foo = :bar # name `:foo`
abc = 123 # name `:abc`
depth: u32
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.
name_loc: pm_location_t
LocalVariableWriteNode#name_loc
The location of the variable name.
foo = :bar
^^^
value: *mut pm_node
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
operator_loc: pm_location_t
LocalVariableWriteNode#operator_loc
The location of the =
operator.
x = :y
^
Trait Implementations§
Source§impl Clone for pm_local_variable_write_node
impl Clone for pm_local_variable_write_node
Source§fn clone(&self) -> pm_local_variable_write_node
fn clone(&self) -> pm_local_variable_write_node
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more