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 ^^^
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.
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`
# File tmp/rubies/ruby-4.0.0/lib/prism/node.rb, line 12176
def initialize(source, node_id, location, flags, name, depth)
@source = source
@node_id = node_id
@location = location
@flags = flags
@name = name
@depth = depth
end
Initialize a new LocalVariableReadNode node.
# File tmp/rubies/ruby-4.0.0/lib/prism/node.rb, line 12249
def self.type
:local_variable_read_node
end
Return a symbol representation of this node type. See Node::type.
# File tmp/rubies/ruby-4.0.0/lib/prism/node.rb, line 12255
def ===(other)
other.is_a?(LocalVariableReadNode) &&
(name === other.name) &&
(depth === other.depth)
end
Implements case-equality for the node. This is effectively == but without comparing the value of locations. Locations are checked only for presence.
# File tmp/rubies/ruby-4.0.0/lib/prism/node.rb, line 12186
def accept(visitor)
visitor.visit_local_variable_read_node(self)
end
def accept: (Visitor visitor) -> void
# File tmp/rubies/ruby-4.0.0/lib/prism/node.rb, line 12191
def child_nodes
[]
end
def child_nodes: () -> Array
# File tmp/rubies/ruby-4.0.0/lib/prism/node.rb, line 12201
def comment_targets
[] #: Array[Prism::node | Location]
end
def comment_targets: () -> Array[Node | Location]
# File tmp/rubies/ruby-4.0.0/lib/prism/node.rb, line 12196
def compact_child_nodes
[]
end
def compact_child_nodes: () -> Array
# File tmp/rubies/ruby-4.0.0/lib/prism/node.rb, line 12206
def copy(node_id: self.node_id, location: self.location, flags: self.flags, name: self.name, depth: self.depth)
LocalVariableReadNode.new(source, node_id, location, flags, name, depth)
end
# File tmp/rubies/ruby-4.0.0/lib/prism/node.rb, line 12214
def deconstruct_keys(keys)
{ node_id: node_id, location: location, name: name, depth: depth }
end
# File tmp/rubies/ruby-4.0.0/lib/prism/node.rb, line 12239
def inspect
InspectVisitor.compose(self)
end
def inspect -> String
# File tmp/rubies/ruby-4.0.0/lib/prism/node.rb, line 12244
def type
:local_variable_read_node
end
Return a symbol representation of this node type. See Node#type.