class Prism::CallAndWriteNode
Represents the use of the&&= operator on a call.
foo.bar &&= value^^^^^^^^^^^^^^^^^
Attributes
Represents the name of the method being called.
foo.bar &&= value # read_name `:bar` ^^^
The object that the method is being called on. This can be eithernil or anynon-void expression.
foo.bar &&= value^^^
Represents the value being assigned.
foo.bar &&= value ^^^^^
Represents the name of the method being written to.
foo.bar &&= value # write_name `:bar=` ^^^
Public Class Methods
Source
# File lib/prism/node.rb, line 2388definitialize(source,node_id,location,flags,receiver,call_operator_loc,message_loc,read_name,write_name,operator_loc,value)@source =source@node_id =node_id@location =location@flags =flags@receiver =receiver@call_operator_loc =call_operator_loc@message_loc =message_loc@read_name =read_name@write_name =write_name@operator_loc =operator_loc@value =valueend
Initialize a newCallAndWriteNode node.
Source
# File lib/prism/node.rb, line 2568defself.type:call_and_write_nodeend
Return a symbol representation of this node type. SeeNode::type.
Public Instance Methods
Source
# File lib/prism/node.rb, line 2574def===(other)other.is_a?(CallAndWriteNode)&& (flags===other.flags)&& (receiver===other.receiver)&& (call_operator_loc.nil?==other.call_operator_loc.nil?)&& (message_loc.nil?==other.message_loc.nil?)&& (read_name===other.read_name)&& (write_name===other.write_name)&& (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 2403defaccept(visitor)visitor.visit_call_and_write_node(self)end
def accept: (Visitor visitor) -> void
Source
# File lib/prism/node.rb, line 2449defattribute_write?flags.anybits?(CallNodeFlags::ATTRIBUTE_WRITE)end
def attribute_write?: () -> bool
Source
# File lib/prism/node.rb, line 2543defcall_operatorcall_operator_loc&.sliceend
defcall_operator: () ->String?
Source
# File lib/prism/node.rb, line 2468defcall_operator_loclocation =@call_operator_loccaselocationwhennilnilwhenLocationlocationelse@call_operator_loc =Location.new(source,location>>32,location&0xFFFFFFFF)endend
Represents the location of the call operator.
foo.bar &&= value ^
Source
# File lib/prism/node.rb, line 2408defchild_nodes [receiver,value]end
defchild_nodes: () ->Array
Source
# File lib/prism/node.rb, line 2421defcomment_targets [*receiver,*call_operator_loc,*message_loc,operator_loc,value]#: Array[Prism::node | Location]end
defcomment_targets: () -> Array[Node | Location]
Source
# File lib/prism/node.rb, line 2413defcompact_child_nodescompact = []#: Array[Prism::node]compact<<receiverifreceivercompact<<valuecompactend
defcompact_child_nodes: () ->Array
Source
# File lib/prism/node.rb, line 2426defcopy(node_id:self.node_id,location:self.location,flags:self.flags,receiver:self.receiver,call_operator_loc:self.call_operator_loc,message_loc:self.message_loc,read_name:self.read_name,write_name:self.write_name,operator_loc:self.operator_loc,value:self.value)CallAndWriteNode.new(source,node_id,location,flags,receiver,call_operator_loc,message_loc,read_name,write_name,operator_loc,value)end
def copy: (?node_id:Integer, ?location:Location, ?flags:Integer, ?receiver: Prism::node?, ?call_operator_loc:Location?, ?message_loc:Location?, ?read_name:Symbol, ?write_name:Symbol, ?operator_loc:Location, ?value: Prism::node) ->CallAndWriteNode
Source
# File lib/prism/node.rb, line 2434defdeconstruct_keys(keys) {node_id:node_id,location:location,receiver:receiver,call_operator_loc:call_operator_loc,message_loc:message_loc,read_name:read_name,write_name:write_name,operator_loc:operator_loc,value:value }end
defdeconstruct_keys: (Array keys) -> { node_id:Integer, location:Location, receiver: Prism::node?,call_operator_loc:Location?,message_loc:Location?,read_name:Symbol,write_name:Symbol,operator_loc:Location, value: Prism::node }
Source
# File lib/prism/node.rb, line 2454defignore_visibility?flags.anybits?(CallNodeFlags::IGNORE_VISIBILITY)end
def ignore_visibility?: () -> bool
Source
# File lib/prism/node.rb, line 2558definspectInspectVisitor.compose(self)end
def inspect ->String
Source
# File lib/prism/node.rb, line 2548defmessagemessage_loc&.sliceend
def message: () ->String?
Source
# File lib/prism/node.rb, line 2490defmessage_loclocation =@message_loccaselocationwhennilnilwhenLocationlocationelse@message_loc =Location.new(source,location>>32,location&0xFFFFFFFF)endend
Represents the location of the message.
foo.bar &&= value ^^^
Source
# File lib/prism/node.rb, line 2553defoperatoroperator_loc.sliceend
def operator: () ->String
Source
# File lib/prism/node.rb, line 2524defoperator_loclocation =@operator_locreturnlocationiflocation.is_a?(Location)@operator_loc =Location.new(source,location>>32,location&0xFFFFFFFF)end
Represents the location of the operator.
foo.bar &&= value ^^^
Source
# File lib/prism/node.rb, line 2439defsafe_navigation?flags.anybits?(CallNodeFlags::SAFE_NAVIGATION)end
def safe_navigation?: () -> bool
Source
# File lib/prism/node.rb, line 2482defsave_call_operator_loc(repository)repository.enter(node_id,:call_operator_loc)unless@call_operator_loc.nil?end
Save thecall_operator_loc location using the given saved source so that it can be retrieved later.
Source
# File lib/prism/node.rb, line 2504defsave_message_loc(repository)repository.enter(node_id,:message_loc)unless@message_loc.nil?end
Save themessage_loc location using the given saved source so that it can be retrieved later.
Source
# File lib/prism/node.rb, line 2532defsave_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.
Source
# File lib/prism/node.rb, line 2563deftype:call_and_write_nodeend
Return a symbol representation of this node type. SeeNode#type.
Source
# File lib/prism/node.rb, line 2444defvariable_call?flags.anybits?(CallNodeFlags::VARIABLE_CALL)end
def variable_call?: () -> bool