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
^^^
Attributes
Read

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.

Read

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`
Class Methods

Initialize a new LocalVariableReadNode node.

Return a symbol representation of this node type. See Node::type.

Instance Methods

Implements case-equality for the node. This is effectively == but without comparing the value of locations. Locations are checked only for presence.

def accept: (Visitor visitor) -> void

def child_nodes: () -> Array

def comment_targets: () -> Array[Node | Location]

def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?depth: Integer) -> LocalVariableReadNode

def deconstruct_keys: (Array keys) -> { node_id: Integer, location: Location, name: Symbol, depth: Integer }

def inspect -> String

Return a symbol representation of this node type. See Node#type.