class Prism::ConstantPathTargetNode
Stellt das Schreiben auf einen Konstantenpfad in einem Kontext dar, der keinen expliziten Wert hat.
Foo::Foo, Bar::Bar = baz ^^^^^^^^ ^^^^^^^^
Attribute
attr_reader parent: Prism::node?
Öffentliche Klassenmethoden
Source
# File lib/prism/node.rb, line 5439 def initialize(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_loc end
Initialisiert einen neuen ConstantPathTargetNode-Knoten.
Source
# File lib/prism/node.rb, line 5533 def self.type :constant_path_target_node end
Gibt eine symbolische Darstellung dieses Knotentyps zurück. Siehe Node::type.
Öffentliche Instanzmethoden
Source
# File lib/prism/node.rb, line 5539 def ===(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
Implementiert die Fallgleichheit für den Knoten. Dies ist effektiv ==, aber ohne den Wert von Standorten zu vergleichen. Standorte werden nur auf Anwesenheit geprüft.
Source
# File lib/prism/node.rb, line 5451 def accept(visitor) visitor.visit_constant_path_target_node(self) end
def accept: (Visitor visitor) -> void
Source
# File lib/prism/node_ext.rb, line 246 def child deprecated("name", "name_loc") if name ConstantReadNode.new(source, -1, name_loc, 0, name) else MissingNode.new(source, -1, location, 0) end end
Zuvor hatten wir einen Kindknoten in dieser Klasse, der entweder eine Konstantenlesung oder einen fehlenden Knoten enthielt. Um keine brechende Änderung zu verursachen, liefern wir diese API weiterhin.
Source
# File lib/prism/node.rb, line 5456 def child_nodes [parent] end
def child_nodes: () -> Array
Source
# File lib/prism/node.rb, line 5468 def comment_targets [*parent, delimiter_loc, name_loc] #: Array[Prism::node | Location] end
def comment_targets: () -> Array[Node | Location]
Source
# File lib/prism/node.rb, line 5461 def compact_child_nodes compact = [] #: Array[Prism::node] compact << parent if parent compact end
def compact_child_nodes: () -> Array
Source
# File lib/prism/node.rb, line 5473 def copy(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
Source
# File lib/prism/node.rb, line 5481 def deconstruct_keys(keys) { node_id: node_id, location: location, parent: parent, name: name, delimiter_loc: delimiter_loc, name_loc: name_loc } end
def deconstruct_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 5518 def delimiter delimiter_loc.slice end
def delimiter: () -> String
Source
# File lib/prism/node.rb, line 5492 def delimiter_loc location = @delimiter_loc return location if location.is_a?(Location) @delimiter_loc = Location.new(source, location >> 32, location & 0xFFFFFFFF) end
attr_reader delimiter_loc: Location
Source
# File lib/prism/node_ext.rb, line 239 def full_name full_name_parts.join("::") end
Gibt den vollständigen Namen dieses Konstantenpfads zurück. Beispiel: "Foo::Bar"
Source
# File lib/prism/node_ext.rb, line 219 def full_name_parts parts = case parent when ConstantPathNode, ConstantReadNode parent.full_name_parts when nil [:""] else # e.g. self::Foo, (var)::Bar = baz raise ConstantPathNode::DynamicPartsInConstantPathError, "Constant target path contains dynamic parts. Cannot compute full name" end if name.nil? raise ConstantPathNode::MissingNodesInConstantPathError, "Constant target path contains missing nodes. Cannot compute full name" end parts.push(name) end
Gibt die Liste der Teile für den vollständigen Namen dieses Konstantenpfads zurück. Beispiel: [:Foo, :Bar]
Source
# File lib/prism/node.rb, line 5523 def inspect InspectVisitor.compose(self) end
def inspect -> String
Source
# File lib/prism/node.rb, line 5505 def name_loc location = @name_loc return location if location.is_a?(Location) @name_loc = Location.new(source, location >> 32, location & 0xFFFFFFFF) end
Source
# File lib/prism/node.rb, line 5500 def save_delimiter_loc(repository) repository.enter(node_id, :delimiter_loc) end
Speichert den delimiter_loc-Speicherort unter Verwendung der angegebenen gespeicherten Quelle, damit er später abgerufen werden kann.
Source
# File lib/prism/node.rb, line 5513 def save_name_loc(repository) repository.enter(node_id, :name_loc) end
Speichert den name_loc-Speicherort unter Verwendung der angegebenen gespeicherten Quelle, damit er später abgerufen werden kann.