1. Prism::
  2. ConstantPathTargetNode

class Prism::ConstantPathTargetNode

Represents writing to a constant path in a context that doesn’t have an explicit value.

Foo::Foo, Bar::Bar = baz^^^^^^^^  ^^^^^^^^

Attributes

name[R]

attr_reader name:Symbol?

parent[R]

attr_reader parent: Prism::node?

Public Class Methods

Source
# File lib/prism/node.rb, line 5439definitialize(source,node_id,location,flags,parent,name,delimiter_loc,name_loc)@source =source@node_id =node_id@location =location@flags =flags@parent =parent@name =name@delimiter_loc =delimiter_loc@name_loc =name_locend

Initialize a newConstantPathTargetNode node.

Source
# File lib/prism/node.rb, line 5533defself.type:constant_path_target_nodeend

Return a symbol representation of this node type. SeeNode::type.

Public Instance Methods

Source
# File lib/prism/node.rb, line 5539def===(other)other.is_a?(ConstantPathTargetNode)&&    (parent===other.parent)&&    (name===other.name)&&    (delimiter_loc.nil?==other.delimiter_loc.nil?)&&    (name_loc.nil?==other.name_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 5451defaccept(visitor)visitor.visit_constant_path_target_node(self)end

def accept: (Visitor visitor) -> void

Source
# File lib/prism/node_ext.rb, line 246defchilddeprecated("name","name_loc")ifnameConstantReadNode.new(source,-1,name_loc,0,name)elseMissingNode.new(source,-1,location,0)endend

Previously, we had a child node on this class that contained either a constant read or a missing node. To not cause a breaking change, we continue to supply that API.

Source
# File lib/prism/node.rb, line 5456defchild_nodes  [parent]end

defchild_nodes: () ->Array

Also aliased as:deconstruct
Source
# File lib/prism/node.rb, line 5468defcomment_targets  [*parent,delimiter_loc,name_loc]#: Array[Prism::node | Location]end

defcomment_targets: () -> Array[Node | Location]

Source
# File lib/prism/node.rb, line 5461defcompact_child_nodescompact = []#: Array[Prism::node]compact<<parentifparentcompactend

defcompact_child_nodes: () ->Array

Source
# File lib/prism/node.rb, line 5473defcopy(node_id:self.node_id,location:self.location,flags:self.flags,parent:self.parent,name:self.name,delimiter_loc:self.delimiter_loc,name_loc:self.name_loc)ConstantPathTargetNode.new(source,node_id,location,flags,parent,name,delimiter_loc,name_loc)end

def copy: (?node_id:Integer, ?location:Location, ?flags:Integer, ?parent: Prism::node?, ?name:Symbol?, ?delimiter_loc:Location, ?name_loc:Location) ->ConstantPathTargetNode

def deconstruct: () ->Array

Alias for:child_nodes
Source
# File lib/prism/node.rb, line 5481defdeconstruct_keys(keys)  {node_id:node_id,location:location,parent:parent,name:name,delimiter_loc:delimiter_loc,name_loc:name_loc }end

defdeconstruct_keys: (Array keys) -> { node_id:Integer, location:Location, parent: Prism::node?, name:Symbol?,delimiter_loc:Location,name_loc:Location }

Source
# File lib/prism/node.rb, line 5518defdelimiterdelimiter_loc.sliceend

def delimiter: () ->String

Source
# File lib/prism/node.rb, line 5492defdelimiter_loclocation =@delimiter_locreturnlocationiflocation.is_a?(Location)@delimiter_loc =Location.new(source,location>>32,location&0xFFFFFFFF)end

attr_readerdelimiter_loc:Location

Source
# File lib/prism/node_ext.rb, line 239deffull_namefull_name_parts.join("::")end

Returns the full name of this constant path. For example: “Foo::Bar”

Source
# File lib/prism/node_ext.rb, line 219deffull_name_partsparts =caseparentwhenConstantPathNode,ConstantReadNodeparent.full_name_partswhennil      [:""]else# e.g. self::Foo, (var)::Bar = bazraiseConstantPathNode::DynamicPartsInConstantPathError,"Constant target path contains dynamic parts. Cannot compute full name"endifname.nil?raiseConstantPathNode::MissingNodesInConstantPathError,"Constant target path contains missing nodes. Cannot compute full name"endparts.push(name)end

Returns the list of parts for the full name of this constant path. For example: [:Foo, :Bar]

Source
# File lib/prism/node.rb, line 5523definspectInspectVisitor.compose(self)end

def inspect ->String

Source
# File lib/prism/node.rb, line 5505defname_loclocation =@name_locreturnlocationiflocation.is_a?(Location)@name_loc =Location.new(source,location>>32,location&0xFFFFFFFF)end

attr_readername_loc:Location

Source
# File lib/prism/node.rb, line 5500defsave_delimiter_loc(repository)repository.enter(node_id,:delimiter_loc)end

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

Source
# File lib/prism/node.rb, line 5513defsave_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 5528deftype:constant_path_target_nodeend

Return a symbol representation of this node type. SeeNode#type.