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
Initialize a new LocalVariableReadNode
node.
# File lib/prism/node.rb, line 10752 def initialize(source, node_id, location, flags, name, depth) @source = source @node_id = node_id @location = location @flags = flags @name = name @depth = depth end
Return a symbol representation of this node type. See Node::type
.
# File lib/prism/node.rb, line 10825 def self.type :local_variable_read_node end
Public Instance Methods
Implements case-equality for the node. This is effectively == but without comparing the value of locations. Locations are checked only for presence.
# File lib/prism/node.rb, line 10831 def ===(other) other.is_a?(LocalVariableReadNode) && (name === other.name) && (depth === other.depth) end
def accept: (Visitor
visitor) -> void
# File lib/prism/node.rb, line 10762 def accept(visitor) visitor.visit_local_variable_read_node(self) end
def child_nodes
: () -> Array[nil | Node]
# File lib/prism/node.rb, line 10767 def child_nodes [] end
def comment_targets
: () -> Array[Node | Location]
# File lib/prism/node.rb, line 10777 def comment_targets [] #: Array[Prism::node | Location] end
def compact_child_nodes
: () -> Array
# File lib/prism/node.rb, line 10772 def compact_child_nodes [] end
def copy: (?node_id: Integer, ?location: Location
, ?flags: Integer, ?name: Symbol, ?depth: Integer) -> LocalVariableReadNode
# File lib/prism/node.rb, line 10782 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 deconstruct_keys
: (Array keys) -> { node_id: Integer, location: Location
, name: Symbol, depth: Integer }
# File lib/prism/node.rb, line 10790 def deconstruct_keys(keys) { node_id: node_id, location: location, name: name, depth: depth } end
def inspect -> String
# File lib/prism/node.rb, line 10815 def inspect InspectVisitor.compose(self) end
Return a symbol representation of this node type. See Node#type
.
# File lib/prism/node.rb, line 10820 def type :local_variable_read_node end