Ruby 3.5.0dev (2025-02-22 revision 412997300569c1853c09813e4924b6df3d7e8669)
Data Fields
pm_local_variable_read_node Struct Reference

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.
 
- 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.
 

Detailed Description

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

Definition at line 5579 of file ast.h.

Field Documentation

◆ base

pm_node_t pm_local_variable_read_node::base

The embedded base node.

Definition at line 5581 of file ast.h.

Referenced by pm_dump_json().

◆ depth

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 5610 of file ast.h.

Referenced by pm_dump_json().

◆ name

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 5597 of file ast.h.

Referenced by pm_dump_json().


The documentation for this struct was generated from the following file: