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 12037 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 12110 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 12116 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 12047 def accept(visitor) visitor.visit_local_variable_read_node(self) end
def accept: (Visitor
visitor) -> void
Source
# File lib/prism/node.rb, line 12052 def child_nodes [] end
def child_nodes
: () -> Array[nil | Node]
Source
# File lib/prism/node.rb, line 12062 def comment_targets [] #: Array[Prism::node | Location] end
def comment_targets
: () -> Array[Node | Location]
Source
# File lib/prism/node.rb, line 12057 def compact_child_nodes [] end
def compact_child_nodes
: () -> Array
Source
# File lib/prism/node.rb, line 12067 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 12075 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 12100 def inspect InspectVisitor.compose(self) end
def inspect -> String
Source
# File lib/prism/node.rb, line 12105 def type :local_variable_read_node end
Return a symbol representation of this node type. See Node#type
.