class Prism::ClassVariableAndWriteNode
Represents the use of the&&= operator for assignment to a class variable.
@@target &&= value^^^^^^^^^^^^^^^^^^
Attributes
The name of the class variable, which is a@@ followed by anidentifier.
@@target &&= value # name `:@@target`^^^^^^^^
Represents the value being assigned. This can be anynon-void expression.
@@target &&= value ^^^^^
Public Class Methods
Source
# File lib/prism/node.rb, line 4040definitialize(source,node_id,location,flags,name,name_loc,operator_loc,value)@source =source@node_id =node_id@location =location@flags =flags@name =name@name_loc =name_loc@operator_loc =operator_loc@value =valueend
Initialize a newClassVariableAndWriteNode node.
Source
# File lib/prism/node.rb, line 4144defself.type:class_variable_and_write_nodeend
Return a symbol representation of this node type. SeeNode::type.
Public Instance Methods
Source
# File lib/prism/node.rb, line 4150def===(other)other.is_a?(ClassVariableAndWriteNode)&& (name===other.name)&& (name_loc.nil?==other.name_loc.nil?)&& (operator_loc.nil?==other.operator_loc.nil?)&& (value===other.value)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 4052defaccept(visitor)visitor.visit_class_variable_and_write_node(self)end
def accept: (Visitor visitor) -> void
Source
# File lib/prism/node.rb, line 4057defchild_nodes [value]end
defchild_nodes: () ->Array
Source
# File lib/prism/node.rb, line 4067defcomment_targets [name_loc,operator_loc,value]#: Array[Prism::node | Location]end
defcomment_targets: () -> Array[Node | Location]
Source
# File lib/prism/node.rb, line 4062defcompact_child_nodes [value]end
defcompact_child_nodes: () ->Array
Source
# File lib/prism/node.rb, line 4072defcopy(node_id:self.node_id,location:self.location,flags:self.flags,name:self.name,name_loc:self.name_loc,operator_loc:self.operator_loc,value:self.value)ClassVariableAndWriteNode.new(source,node_id,location,flags,name,name_loc,operator_loc,value)end
def copy: (?node_id:Integer, ?location:Location, ?flags:Integer, ?name:Symbol, ?name_loc:Location, ?operator_loc:Location, ?value: Prism::node) ->ClassVariableAndWriteNode
Source
# File lib/prism/node.rb, line 4080defdeconstruct_keys(keys) {node_id:node_id,location:location,name:name,name_loc:name_loc,operator_loc:operator_loc,value:value }end
defdeconstruct_keys: (Array keys) -> { node_id:Integer, location:Location, name:Symbol,name_loc:Location,operator_loc:Location, value: Prism::node }
Source
# File lib/prism/node.rb, line 4134definspectInspectVisitor.compose(self)end
def inspect ->String
Source
# File lib/prism/node.rb, line 4094defname_loclocation =@name_locreturnlocationiflocation.is_a?(Location)@name_loc =Location.new(source,location>>32,location&0xFFFFFFFF)end
Represents the location of the variable name.
@@target &&= value^^^^^^^^
Source
# File lib/prism/node.rb, line 4129defoperatoroperator_loc.sliceend
def operator: () ->String
Source
# File lib/prism/node.rb, line 4110defoperator_loclocation =@operator_locreturnlocationiflocation.is_a?(Location)@operator_loc =Location.new(source,location>>32,location&0xFFFFFFFF)end
Represents the location of the&&= operator.
@@target &&= value ^^^
Source
# File lib/prism/node.rb, line 4102defsave_name_loc(repository)repository.enter(node_id,:name_loc)end
Save thename_loc location using the given saved source so that it can be retrieved later.
Source
# File lib/prism/node.rb, line 4118defsave_operator_loc(repository)repository.enter(node_id,:operator_loc)end
Save theoperator_loc location using the given saved source so that it can be retrieved later.