class Prism::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 ^^^
Attributes
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`
Public Class Methods
Source
# File lib/prism/node.rb, line 12882 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.
Source
# File lib/prism/node.rb, line 12961 def self.type :local_variable_read_node end
Return a symbol representation of this node type. See Node::type.
Public Instance Methods
Source
# File lib/prism/node.rb, line 12967 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.
Source
# File lib/prism/node.rb, line 12892 def accept(visitor) visitor.visit_local_variable_read_node(self) end
def accept: (Visitor visitor) -> void
Source
# File lib/prism/node.rb, line 12897 def child_nodes [] end
def child_nodes: () -> Array
Source
# File lib/prism/node.rb, line 12913 def comment_targets [] #: Array[Prism::node | Location] end
def comment_targets: () -> Array[Node | Location]
Source
# File lib/prism/node.rb, line 12908 def compact_child_nodes [] end
def compact_child_nodes: () -> Array
Source
# File lib/prism/node.rb, line 12918 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
def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?depth: Integer) -> LocalVariableReadNode
Source
# File lib/prism/node.rb, line 12926 def deconstruct_keys(keys) { node_id: node_id, location: location, name: name, depth: depth } end
def deconstruct_keys: (Array keys) -> { node_id: Integer, location: Location, name: Symbol, depth: Integer }
Source
# File lib/prism/node.rb, line 12902 def each_child_node return to_enum(:each_child_node) unless block_given? end
def each_child_node: () { (Prism::node) -> void } -> void | () -> Enumerator
Source
# File lib/prism/node.rb, line 12951 def inspect InspectVisitor.compose(self) end
def inspect -> String