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 12040 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 12113 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 12119 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 12050 def accept(visitor) visitor.visit_local_variable_read_node(self) end
def accept: (Visitor
visitor) -> void
Source
# File lib/prism/node.rb, line 12055 def child_nodes [] end
def child_nodes
: () -> Array
Source
# File lib/prism/node.rb, line 12065 def comment_targets [] #: Array[Prism::node | Location] end
def comment_targets
: () -> Array[Node | Location]
Source
# File lib/prism/node.rb, line 12060 def compact_child_nodes [] end
def compact_child_nodes
: () -> Array
Source
# File lib/prism/node.rb, line 12070 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
Source
# File lib/prism/node.rb, line 12103 def inspect InspectVisitor.compose(self) end
def inspect -> String