class Prism::PinnedExpressionNode
Represents the use of the^ operator for pinning an expression in a pattern matching expression.
foo in ^(bar) ^^^^^^
Attributes
The expression used in the pinned expression
foo in ^(bar) ^^^
Public Class Methods
Source
# File lib/prism/node.rb, line 15444definitialize(source,node_id,location,flags,expression,operator_loc,lparen_loc,rparen_loc)@source =source@node_id =node_id@location =location@flags =flags@expression =expression@operator_loc =operator_loc@lparen_loc =lparen_loc@rparen_loc =rparen_locend
Initialize a newPinnedExpressionNode node.
Source
# File lib/prism/node.rb, line 15575defself.type:pinned_expression_nodeend
Return a symbol representation of this node type. SeeNode::type.
Public Instance Methods
Source
# File lib/prism/node.rb, line 15581def===(other)other.is_a?(PinnedExpressionNode)&& (expression===other.expression)&& (operator_loc.nil?==other.operator_loc.nil?)&& (lparen_loc.nil?==other.lparen_loc.nil?)&& (rparen_loc.nil?==other.rparen_loc.nil?)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 15456defaccept(visitor)visitor.visit_pinned_expression_node(self)end
def accept: (Visitor visitor) -> void
Source
# File lib/prism/node.rb, line 15461defchild_nodes [expression]end
defchild_nodes: () ->Array
Source
# File lib/prism/node.rb, line 15478defcomment_targets [expression,operator_loc,lparen_loc,rparen_loc]#: Array[Prism::node | Location]end
defcomment_targets: () -> Array[Node | Location]
Source
# File lib/prism/node.rb, line 15473defcompact_child_nodes [expression]end
defcompact_child_nodes: () ->Array
Source
# File lib/prism/node.rb, line 15483defcopy(node_id:self.node_id,location:self.location,flags:self.flags,expression:self.expression,operator_loc:self.operator_loc,lparen_loc:self.lparen_loc,rparen_loc:self.rparen_loc)PinnedExpressionNode.new(source,node_id,location,flags,expression,operator_loc,lparen_loc,rparen_loc)end
Source
# File lib/prism/node.rb, line 15491defdeconstruct_keys(keys) {node_id:node_id,location:location,expression:expression,operator_loc:operator_loc,lparen_loc:lparen_loc,rparen_loc:rparen_loc }end
defdeconstruct_keys: (Array keys) -> { node_id:Integer, location:Location, expression: Prism::node,operator_loc:Location,lparen_loc:Location,rparen_loc:Location }
Source
# File lib/prism/node.rb, line 15466defeach_child_nodereturnto_enum(:each_child_node)unlessblock_given?yieldexpressionend
defeach_child_node: () { (Prism::node) -> void } -> void | () ->Enumerator
Source
# File lib/prism/node.rb, line 15565definspectInspectVisitor.compose(self)end
def inspect ->String
Source
# File lib/prism/node.rb, line 15521deflparen_loclocation =@lparen_locreturnlocationiflocation.is_a?(Location)@lparen_loc =Location.new(source,location>>32,location&0xFFFFFFFF)end
The location of the opening parenthesis.
foo in ^(bar) ^
Source
# File lib/prism/node.rb, line 15505defoperator_loclocation =@operator_locreturnlocationiflocation.is_a?(Location)@operator_loc =Location.new(source,location>>32,location&0xFFFFFFFF)end
The location of the^ operator
foo in ^(bar) ^
Source
# File lib/prism/node.rb, line 15537defrparen_loclocation =@rparen_locreturnlocationiflocation.is_a?(Location)@rparen_loc =Location.new(source,location>>32,location&0xFFFFFFFF)end
The location of the closing parenthesis.
foo in ^(bar) ^
Source
# File lib/prism/node.rb, line 15529defsave_lparen_loc(repository)repository.enter(node_id,:lparen_loc)end
Save thelparen_loc location using the given saved source so that it can be retrieved later.
Source
# File lib/prism/node.rb, line 15513defsave_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 15545defsave_rparen_loc(repository)repository.enter(node_id,:rparen_loc)end
Save therparen_loc location using the given saved source so that it can be retrieved later.