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 11779 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 11852 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 11858 def ===(other) other.is_a?(LocalVariableReadNode) && (name === other.name) && (depth === other.depth) end
def accept: (Visitor
visitor) -> void
# File lib/prism/node.rb, line 11789 def accept(visitor) visitor.visit_local_variable_read_node(self) end
def child_nodes
: () -> Array[nil | Node]
# File lib/prism/node.rb, line 11794 def child_nodes [] end
def comment_targets
: () -> Array[Node | Location]
# File lib/prism/node.rb, line 11804 def comment_targets [] #: Array[Prism::node | Location] end
def compact_child_nodes
: () -> Array
# File lib/prism/node.rb, line 11799 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 11809 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 11817 def deconstruct_keys(keys) { node_id: node_id, location: location, name: name, depth: depth } end
def inspect -> String
# File lib/prism/node.rb, line 11842 def inspect InspectVisitor.compose(self) end
Return a symbol representation of this node type. See Node#type
.
# File lib/prism/node.rb, line 11847 def type :local_variable_read_node end