class Prism::ShareableConstantNode
^^^^^^^^^^^^
C = { a: 1 }
# shareable_constant_value: literal
This node wraps a constant write to indicate that when the value is written, it should have its shareability state modified.
def self.type
def self.type :shareable_constant_node end
def ===(other)
Implements case-equality for the node. This is effectively == but without
def ===(other) other.is_a?(ShareableConstantNode) && (flags === other.flags) && (write === other.write) end
def accept(visitor)
def accept(visitor) visitor.visit_shareable_constant_node(self) end
def child_nodes
def child_nodes [write] end
def comment_targets
def comment_targets [write] #: Array[Prism::node | Location] end
def compact_child_nodes
def compact_child_nodes [write] end
def copy(node_id: self.node_id, location: self.location, flags: self.flags, write: self.write)
def copy(node_id: self.node_id, location: self.location, flags: self.flags, write: self.write) ShareableConstantNode.new(source, node_id, location, flags, write) end
def deconstruct_keys(keys)
def deconstruct_keys(keys) { node_id: node_id, location: location, write: write } end
def experimental_copy?
def experimental_copy? flags.anybits?(ShareableConstantNodeFlags::EXPERIMENTAL_COPY) end
def experimental_everything?
def experimental_everything? flags.anybits?(ShareableConstantNodeFlags::EXPERIMENTAL_EVERYTHING) end
def initialize(source, node_id, location, flags, write)
def initialize(source, node_id, location, flags, write) @source = source @node_id = node_id @location = location @flags = flags @write = write end
def inspect
def inspect InspectVisitor.compose(self) end
def literal?
def literal? flags.anybits?(ShareableConstantNodeFlags::LITERAL) end
def type
def type :shareable_constant_node end