Represents writing to a local variable.

foo = 1
^^^^^^^
Attributes
Read

The number of semantic scopes we have to traverse to find the declaration of this variable.

foo = 1         # depth 0

tap { foo = 1 } # 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.

Read

The name of the local variable, which is an identifier.

foo = :bar # name `:foo`

abc = 123  # name `:abc`
Read

The value to write to the local variable. It can be any non-void expression.

foo = :bar
      ^^^^

abc = 1234
      ^^^^

Note that since the name of a local variable is known before the value is parsed, it is valid for a local variable to appear within the value of its own write.

foo = foo
Class Methods

Initialize a new LocalVariableWriteNode node.

Return a symbol representation of this node type. See Node::type.

Instance Methods

Implements case-equality for the node. This is effectively == but without comparing the value of locations. Locations are checked only for presence.

def accept: (Visitor visitor) -> void

def child_nodes: () -> Array

def comment_targets: () -> Array[Node | Location]

def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?depth: Integer, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location) -> LocalVariableWriteNode

def deconstruct_keys: (Array keys) -> { node_id: Integer, location: Location, name: Symbol, depth: Integer, name_loc: Location, value: Prism::node, operator_loc: Location }

def inspect -> String

The location of the variable name.

foo = :bar
^^^

def operator: () -> String

The location of the = operator.

x = :y
  ^

Save the name_loc location using the given saved source so that it can be retrieved later.

Save the operator_loc location using the given saved source so that it can be retrieved later.

Return a symbol representation of this node type. See Node#type.