class Prism::ForwardingSuperNode
Represents the use of the super keyword without parentheses or arguments, but which might have a block.
super
^^^^^
super { 123 }
^^^^^^^^^^^^^
If it has any other arguments, it would be a SuperNode instead.
Public Class Methods
Source
# File lib/prism/node.rb, line 12598 def initialize(source, node_id, location, flags, block) @source = source @node_id = node_id @location = location @flags = flags @block = block end
Initialize a new ForwardingSuperNode node.
Public Instance Methods
Source
# File lib/prism/node.rb, line 12701 def block @block end
All other arguments are forwarded as normal, except the original block is replaced with the new block.
Node Interface
These methods are present on all subclasses of Node. Read the node interface docs for more information.
Public Class Methods
Public Instance Methods
Source
# File lib/prism/node.rb, line 12620 def accept(visitor) visitor.visit_forwarding_super_node(self) end
See Node.accept.
Source
# File lib/prism/node.rb, line 12627 def child_nodes [block] end
See Node.child_nodes.
Also aliased as: deconstruct
Source
# File lib/prism/node.rb, line 12653 def comment_targets [*block] #: Array[Prism::node | Location] end
See Node.comment_targets.
Source
# File lib/prism/node.rb, line 12644 def compact_child_nodes compact = [] #: Array[Prism::node] if (block = self.block); compact << block; end compact end
Source
# File lib/prism/node.rb, line 12663 def copy(node_id: self.node_id, location: self.location, flags: self.flags, block: self.block) ForwardingSuperNode.new(source, node_id, location, flags, block) end
Creates a copy of self with the given fields, using self as the template.
Source
# File lib/prism/node.rb, line 12635 def each_child_node(&blk) return to_enum(:each_child_node) unless block_given? if (block = self.block); yield block; end end
See Node.each_child_node.
Repository
Methods related to Relocation.