aboutsummaryrefslogtreecommitdiff
path: root/tools/ruby-tools/sorbet/rbi/gems/prism@1.0.0.rbi
diff options
context:
space:
mode:
Diffstat (limited to 'tools/ruby-tools/sorbet/rbi/gems/prism@1.0.0.rbi')
-rw-r--r--tools/ruby-tools/sorbet/rbi/gems/prism@1.0.0.rbi34144
1 files changed, 34144 insertions, 0 deletions
diff --git a/tools/ruby-tools/sorbet/rbi/gems/prism@1.0.0.rbi b/tools/ruby-tools/sorbet/rbi/gems/prism@1.0.0.rbi
new file mode 100644
index 0000000..2774c45
--- /dev/null
+++ b/tools/ruby-tools/sorbet/rbi/gems/prism@1.0.0.rbi
@@ -0,0 +1,34144 @@
+# typed: true
+
+# DO NOT EDIT MANUALLY
+# This is an autogenerated file for types exported from the `prism` gem.
+# Please instead update this file by running `bin/tapioca gem prism`.
+
+
+# typed: strict
+
+# =begin
+# This file is generated by the templates/template.rb script and should not be
+# modified manually. See templates/rbi/prism/dsl.rbi.erb
+# if you are looking to modify the template
+# =end
+# =begin
+# This file is generated by the templates/template.rb script and should not be
+# modified manually. See templates/rbi/prism/node.rbi.erb
+# if you are looking to modify the template
+# =end
+# =begin
+# This file is generated by the templates/template.rb script and should not be
+# modified manually. See templates/rbi/prism/visitor.rbi.erb
+# if you are looking to modify the template
+# =end
+
+# We keep these shims in here because our client libraries might not have parser
+# in their bundle.
+module Parser; end
+
+class Parser::Base; end
+
+# The Prism Ruby parser.
+#
+# "Parsing Ruby is suddenly manageable!"
+# - You, hopefully
+#
+# source://prism//lib/prism.rb#8
+module Prism
+ class << self
+ # Mirror the Prism.dump API by using the serialization API.
+ def dump(*_arg0); end
+
+ # Mirror the Prism.dump_file API by using the serialization API.
+ def dump_file(*_arg0); end
+
+ # Mirror the Prism.lex API by using the serialization API.
+ def lex(*_arg0); end
+
+ # :call-seq:
+ # Prism::lex_compat(source, **options) -> LexCompat::Result
+ #
+ # Returns a parse result whose value is an array of tokens that closely
+ # resembles the return value of Ripper::lex. The main difference is that the
+ # `:on_sp` token is not emitted.
+ #
+ # For supported options, see Prism::parse.
+ #
+ # source://prism//lib/prism.rb#45
+ sig { params(source: String, options: T::Hash[Symbol, T.untyped]).returns(Prism::LexCompat::Result) }
+ def lex_compat(source, **options); end
+
+ # Mirror the Prism.lex_file API by using the serialization API.
+ def lex_file(*_arg0); end
+
+ # :call-seq:
+ # Prism::lex_ripper(source) -> Array
+ #
+ # This lexes with the Ripper lex. It drops any space events but otherwise
+ # returns the same tokens. Raises SyntaxError if the syntax in source is
+ # invalid.
+ #
+ # source://prism//lib/prism.rb#55
+ sig { params(source: String).returns(T::Array[T.untyped]) }
+ def lex_ripper(source); end
+
+ # :call-seq:
+ # Prism::load(source, serialized) -> ParseResult
+ #
+ # Load the serialized AST using the source as a reference into a tree.
+ #
+ # source://prism//lib/prism.rb#63
+ sig { params(source: String, serialized: String).returns(Prism::ParseResult) }
+ def load(source, serialized); end
+
+ # Mirror the Prism.parse API by using the serialization API.
+ def parse(*_arg0); end
+
+ # Mirror the Prism.parse_comments API by using the serialization API.
+ def parse_comments(*_arg0); end
+
+ # Mirror the Prism.parse_failure? API by using the serialization API.
+ #
+ # @return [Boolean]
+ def parse_failure?(*_arg0); end
+
+ # Mirror the Prism.parse_file API by using the serialization API. This uses
+ # native strings instead of Ruby strings because it allows us to use mmap
+ # when it is available.
+ def parse_file(*_arg0); end
+
+ # Mirror the Prism.parse_file_comments API by using the serialization
+ # API. This uses native strings instead of Ruby strings because it allows us
+ # to use mmap when it is available.
+ def parse_file_comments(*_arg0); end
+
+ # Mirror the Prism.parse_file_failure? API by using the serialization API.
+ #
+ # @return [Boolean]
+ def parse_file_failure?(*_arg0); end
+
+ # Mirror the Prism.parse_file_success? API by using the serialization API.
+ #
+ # @return [Boolean]
+ def parse_file_success?(*_arg0); end
+
+ # Mirror the Prism.parse_lex API by using the serialization API.
+ def parse_lex(*_arg0); end
+
+ # Mirror the Prism.parse_lex_file API by using the serialization API.
+ def parse_lex_file(*_arg0); end
+
+ # Mirror the Prism.parse_stream API by using the serialization API.
+ def parse_stream(*_arg0); end
+
+ # Mirror the Prism.parse_success? API by using the serialization API.
+ #
+ # @return [Boolean]
+ def parse_success?(*_arg0); end
+
+ # Mirror the Prism.profile API by using the serialization API.
+ def profile(*_arg0); end
+
+ # Mirror the Prism.profile_file API by using the serialization API.
+ def profile_file(*_arg0); end
+ end
+end
+
+# Specialized version of Prism::Source for source code that includes ASCII
+# characters only. This class is used to apply performance optimizations that
+# cannot be applied to sources that include multibyte characters. Sources that
+# include multibyte characters are represented by the Prism::Source class.
+#
+# source://prism//lib/prism/parse_result.rb#135
+class Prism::ASCIISource < ::Prism::Source
+ # Return the column number in characters for the given byte offset.
+ #
+ # source://prism//lib/prism/parse_result.rb#142
+ sig { params(byte_offset: Integer).returns(Integer) }
+ def character_column(byte_offset); end
+
+ # Return the character offset for the given byte offset.
+ #
+ # source://prism//lib/prism/parse_result.rb#137
+ sig { params(byte_offset: Integer).returns(Integer) }
+ def character_offset(byte_offset); end
+
+ # Specialized version of `code_units_column` that does not depend on
+ # `code_units_offset`, which is a more expensive operation. This is
+ # essentialy the same as `Prism::Source#column`.
+ #
+ # source://prism//lib/prism/parse_result.rb#159
+ sig { params(byte_offset: Integer, encoding: Encoding).returns(Integer) }
+ def code_units_column(byte_offset, encoding); end
+
+ # Returns the offset from the start of the file for the given byte offset
+ # counting in code units for the given encoding.
+ #
+ # This method is tested with UTF-8, UTF-16, and UTF-32. If there is the
+ # concept of code units that differs from the number of characters in other
+ # encodings, it is not captured here.
+ #
+ # source://prism//lib/prism/parse_result.rb#152
+ sig { params(byte_offset: Integer, encoding: Encoding).returns(Integer) }
+ def code_units_offset(byte_offset, encoding); end
+end
+
+# Represents the use of the `alias` keyword to alias a global variable.
+#
+# alias $foo $bar
+# ^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#227
+class Prism::AliasGlobalVariableNode < ::Prism::Node
+ # Initialize a new AliasGlobalVariableNode node.
+ #
+ # @return [AliasGlobalVariableNode] a new instance of AliasGlobalVariableNode
+ #
+ # source://prism//lib/prism/node.rb#229
+ def initialize(source, node_id, location, flags, new_name, old_name, keyword_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#316
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#240
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#245
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#255
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#250
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?new_name: GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode, ?old_name: GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode | SymbolNode | MissingNode, ?keyword_loc: Location) -> AliasGlobalVariableNode
+ #
+ # source://prism//lib/prism/node.rb#260
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), new_name: T.unsafe(nil), old_name: T.unsafe(nil), keyword_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#245
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, new_name: GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode, old_name: GlobalVariableReadNode | BackReferenceReadNode | NumberedReferenceReadNode | SymbolNode | MissingNode, keyword_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#268
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#300
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#295
+ def keyword; end
+
+ # The location of the `alias` keyword.
+ #
+ # alias $foo $bar
+ # ^^^^^
+ #
+ # source://prism//lib/prism/node.rb#288
+ def keyword_loc; end
+
+ # Represents the new name of the global variable that can be used after aliasing.
+ #
+ # alias $foo $bar
+ # ^^^^
+ #
+ # source://prism//lib/prism/node.rb#276
+ def new_name; end
+
+ # Represents the old name of the global variable that can be used before aliasing.
+ #
+ # alias $foo $bar
+ # ^^^^
+ #
+ # source://prism//lib/prism/node.rb#282
+ def old_name; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#305
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#310
+ def type; end
+ end
+end
+
+# Represents the use of the `alias` keyword to alias a method.
+#
+# alias foo bar
+# ^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#328
+class Prism::AliasMethodNode < ::Prism::Node
+ # Initialize a new AliasMethodNode node.
+ #
+ # @return [AliasMethodNode] a new instance of AliasMethodNode
+ #
+ # source://prism//lib/prism/node.rb#330
+ def initialize(source, node_id, location, flags, new_name, old_name, keyword_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#408
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#341
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#346
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#356
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#351
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?new_name: SymbolNode | InterpolatedSymbolNode, ?old_name: SymbolNode | InterpolatedSymbolNode | GlobalVariableReadNode | MissingNode, ?keyword_loc: Location) -> AliasMethodNode
+ #
+ # source://prism//lib/prism/node.rb#361
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), new_name: T.unsafe(nil), old_name: T.unsafe(nil), keyword_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#346
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, new_name: SymbolNode | InterpolatedSymbolNode, old_name: SymbolNode | InterpolatedSymbolNode | GlobalVariableReadNode | MissingNode, keyword_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#369
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#392
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#387
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#380
+ def keyword_loc; end
+
+ # attr_reader new_name: SymbolNode | InterpolatedSymbolNode
+ #
+ # source://prism//lib/prism/node.rb#374
+ def new_name; end
+
+ # attr_reader old_name: SymbolNode | InterpolatedSymbolNode | GlobalVariableReadNode | MissingNode
+ #
+ # source://prism//lib/prism/node.rb#377
+ def old_name; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#397
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#402
+ def type; end
+ end
+end
+
+# Represents an alternation pattern in pattern matching.
+#
+# foo => bar | baz
+# ^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#420
+class Prism::AlternationPatternNode < ::Prism::Node
+ # Initialize a new AlternationPatternNode node.
+ #
+ # @return [AlternationPatternNode] a new instance of AlternationPatternNode
+ #
+ # source://prism//lib/prism/node.rb#422
+ def initialize(source, node_id, location, flags, left, right, operator_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#500
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#433
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#438
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#448
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#443
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?left: Prism::node, ?right: Prism::node, ?operator_loc: Location) -> AlternationPatternNode
+ #
+ # source://prism//lib/prism/node.rb#453
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), left: T.unsafe(nil), right: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#438
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, left: Prism::node, right: Prism::node, operator_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#461
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#484
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader left: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#466
+ def left; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#479
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#472
+ def operator_loc; end
+
+ # attr_reader right: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#469
+ def right; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#489
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#494
+ def type; end
+ end
+end
+
+# Represents the use of the `&&` operator or the `and` keyword.
+#
+# left and right
+# ^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#512
+class Prism::AndNode < ::Prism::Node
+ # Initialize a new AndNode node.
+ #
+ # @return [AndNode] a new instance of AndNode
+ #
+ # source://prism//lib/prism/node.rb#514
+ def initialize(source, node_id, location, flags, left, right, operator_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#607
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#525
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#530
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#540
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#535
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?left: Prism::node, ?right: Prism::node, ?operator_loc: Location) -> AndNode
+ #
+ # source://prism//lib/prism/node.rb#545
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), left: T.unsafe(nil), right: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#530
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, left: Prism::node, right: Prism::node, operator_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#553
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#591
+ sig { override.returns(String) }
+ def inspect; end
+
+ # Represents the left side of the expression. It can be any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
+ #
+ # left and right
+ # ^^^^
+ #
+ # 1 && 2
+ # ^
+ #
+ # source://prism//lib/prism/node.rb#564
+ def left; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#586
+ def operator; end
+
+ # The location of the `and` keyword or the `&&` operator.
+ #
+ # left and right
+ # ^^^
+ #
+ # source://prism//lib/prism/node.rb#579
+ def operator_loc; end
+
+ # Represents the right side of the expression. It can be any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
+ #
+ # left && right
+ # ^^^^^
+ #
+ # 1 and 2
+ # ^
+ #
+ # source://prism//lib/prism/node.rb#573
+ def right; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#596
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#601
+ def type; end
+ end
+end
+
+# Represents a set of arguments to a method or a keyword.
+#
+# return foo, bar, baz
+# ^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#619
+class Prism::ArgumentsNode < ::Prism::Node
+ # Initialize a new ArgumentsNode node.
+ #
+ # @return [ArgumentsNode] a new instance of ArgumentsNode
+ #
+ # source://prism//lib/prism/node.rb#621
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ arguments: T::Array[Prism::Node]
+ ).void
+ end
+ def initialize(source, node_id, location, flags, arguments); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#697
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#630
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # attr_reader arguments: Array[Prism::node]
+ #
+ # source://prism//lib/prism/node.rb#678
+ sig { returns(T::Array[Prism::Node]) }
+ def arguments; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#635
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#645
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#640
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def contains_keyword_splat?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#668
+ sig { returns(T::Boolean) }
+ def contains_keyword_splat?; end
+
+ # def contains_keywords?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#663
+ sig { returns(T::Boolean) }
+ def contains_keywords?; end
+
+ # def contains_splat?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#673
+ sig { returns(T::Boolean) }
+ def contains_splat?; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?arguments: Array[Prism::node]) -> ArgumentsNode
+ #
+ # source://prism//lib/prism/node.rb#650
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ arguments: T::Array[Prism::Node]
+ ).returns(Prism::ArgumentsNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), arguments: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#635
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, arguments: Array[Prism::node] }
+ #
+ # source://prism//lib/prism/node.rb#658
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#681
+ sig { override.returns(String) }
+ def inspect; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#686
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#691
+ def type; end
+ end
+end
+
+# Flags for arguments nodes.
+#
+# source://prism//lib/prism/node.rb#16647
+module Prism::ArgumentsNodeFlags; end
+
+# if arguments contain keywords
+#
+# source://prism//lib/prism/node.rb#16649
+Prism::ArgumentsNodeFlags::CONTAINS_KEYWORDS = T.let(T.unsafe(nil), Integer)
+
+# if arguments contain keyword splat
+#
+# source://prism//lib/prism/node.rb#16652
+Prism::ArgumentsNodeFlags::CONTAINS_KEYWORD_SPLAT = T.let(T.unsafe(nil), Integer)
+
+# if arguments contain splat
+#
+# source://prism//lib/prism/node.rb#16655
+Prism::ArgumentsNodeFlags::CONTAINS_SPLAT = T.let(T.unsafe(nil), Integer)
+
+# Represents an array literal. This can be a regular array using brackets or a special array using % like %w or %i.
+#
+# [1, 2, 3]
+# ^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#709
+class Prism::ArrayNode < ::Prism::Node
+ # Initialize a new ArrayNode node.
+ #
+ # @return [ArrayNode] a new instance of ArrayNode
+ #
+ # source://prism//lib/prism/node.rb#711
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ elements: T::Array[Prism::Node],
+ opening_loc: T.nilable(Prism::Location),
+ closing_loc: T.nilable(Prism::Location)
+ ).void
+ end
+ def initialize(source, node_id, location, flags, elements, opening_loc, closing_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#825
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#722
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#727
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#804
+ sig { returns(T.nilable(String)) }
+ def closing; end
+
+ # Represents the optional source location for the closing token.
+ #
+ # [1,2,3] # "]"
+ # %w[foo bar baz] # "]"
+ # %I(apple orange banana) # ")"
+ # foo = 1, 2, 3 # nil
+ #
+ # source://prism//lib/prism/node.rb#786
+ sig { returns(T.nilable(Prism::Location)) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#737
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#732
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def contains_splat?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#755
+ sig { returns(T::Boolean) }
+ def contains_splat?; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?elements: Array[Prism::node], ?opening_loc: Location?, ?closing_loc: Location?) -> ArrayNode
+ #
+ # source://prism//lib/prism/node.rb#742
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ elements: T::Array[Prism::Node],
+ opening_loc: T.nilable(Prism::Location),
+ closing_loc: T.nilable(Prism::Location)
+ ).returns(Prism::ArrayNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), elements: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#727
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, elements: Array[Prism::node], opening_loc: Location?, closing_loc: Location? }
+ #
+ # source://prism//lib/prism/node.rb#750
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ # Represent the list of zero or more [non-void expressions](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression) within the array.
+ #
+ # source://prism//lib/prism/node.rb#760
+ sig { returns(T::Array[Prism::Node]) }
+ def elements; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#809
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def opening: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#799
+ sig { returns(T.nilable(String)) }
+ def opening; end
+
+ # Represents the optional source location for the opening token.
+ #
+ # [1,2,3] # "["
+ # %w[foo bar baz] # "%w["
+ # %I(apple orange banana) # "%I("
+ # foo = 1, 2, 3 # nil
+ #
+ # source://prism//lib/prism/node.rb#768
+ sig { returns(T.nilable(Prism::Location)) }
+ def opening_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#814
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#819
+ def type; end
+ end
+end
+
+# Flags for array nodes.
+#
+# source://prism//lib/prism/node.rb#16659
+module Prism::ArrayNodeFlags; end
+
+# if array contains splat nodes
+#
+# source://prism//lib/prism/node.rb#16661
+Prism::ArrayNodeFlags::CONTAINS_SPLAT = T.let(T.unsafe(nil), Integer)
+
+# Represents an array pattern in pattern matching.
+#
+# foo in 1, 2
+# ^^^^^^^^^^^
+#
+# foo in [1, 2]
+# ^^^^^^^^^^^^^
+#
+# foo in *1
+# ^^^^^^^^^
+#
+# foo in Bar[]
+# ^^^^^^^^^^^^
+#
+# foo in Bar[1, 2, 3]
+# ^^^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#851
+class Prism::ArrayPatternNode < ::Prism::Node
+ # Initialize a new ArrayPatternNode node.
+ #
+ # @return [ArrayPatternNode] a new instance of ArrayPatternNode
+ #
+ # source://prism//lib/prism/node.rb#853
+ def initialize(source, node_id, location, flags, constant, requireds, rest, posts, opening_loc, closing_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#969
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#867
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#872
+ def child_nodes; end
+
+ # def closing: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#948
+ def closing; end
+
+ # attr_reader closing_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#930
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#887
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#877
+ def compact_child_nodes; end
+
+ # attr_reader constant: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#905
+ def constant; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?constant: Prism::node?, ?requireds: Array[Prism::node], ?rest: Prism::node?, ?posts: Array[Prism::node], ?opening_loc: Location?, ?closing_loc: Location?) -> ArrayPatternNode
+ #
+ # source://prism//lib/prism/node.rb#892
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), constant: T.unsafe(nil), requireds: T.unsafe(nil), rest: T.unsafe(nil), posts: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#872
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, constant: Prism::node?, requireds: Array[Prism::node], rest: Prism::node?, posts: Array[Prism::node], opening_loc: Location?, closing_loc: Location? }
+ #
+ # source://prism//lib/prism/node.rb#900
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#953
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def opening: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#943
+ def opening; end
+
+ # attr_reader opening_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#917
+ def opening_loc; end
+
+ # attr_reader posts: Array[Prism::node]
+ #
+ # source://prism//lib/prism/node.rb#914
+ def posts; end
+
+ # attr_reader requireds: Array[Prism::node]
+ #
+ # source://prism//lib/prism/node.rb#908
+ def requireds; end
+
+ # attr_reader rest: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#911
+ def rest; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#958
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#963
+ def type; end
+ end
+end
+
+# Represents a hash key/value pair.
+#
+# { a => b }
+# ^^^^^^
+#
+# source://prism//lib/prism/node.rb#986
+class Prism::AssocNode < ::Prism::Node
+ # Initialize a new AssocNode node.
+ #
+ # @return [AssocNode] a new instance of AssocNode
+ #
+ # source://prism//lib/prism/node.rb#988
+ def initialize(source, node_id, location, flags, key, value, operator_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#1090
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#999
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#1004
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#1014
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#1009
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?key: Prism::node, ?value: Prism::node, ?operator_loc: Location?) -> AssocNode
+ #
+ # source://prism//lib/prism/node.rb#1019
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), key: T.unsafe(nil), value: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#1004
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, key: Prism::node, value: Prism::node, operator_loc: Location? }
+ #
+ # source://prism//lib/prism/node.rb#1027
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#1074
+ sig { override.returns(String) }
+ def inspect; end
+
+ # The key of the association. This can be any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
+ #
+ # { a: b }
+ # ^
+ #
+ # { foo => bar }
+ # ^^^
+ #
+ # { def a; end => 1 }
+ # ^^^^^^^^^^
+ #
+ # source://prism//lib/prism/node.rb#1041
+ def key; end
+
+ # def operator: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#1069
+ def operator; end
+
+ # The location of the `=>` operator, if present.
+ #
+ # { foo => bar }
+ # ^^
+ #
+ # source://prism//lib/prism/node.rb#1056
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#1079
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # The value of the association, if present. This can be any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
+ #
+ # { foo => bar }
+ # ^^^
+ #
+ # { x: 1 }
+ # ^
+ #
+ # source://prism//lib/prism/node.rb#1050
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#1084
+ def type; end
+ end
+end
+
+# Represents a splat in a hash literal.
+#
+# { **foo }
+# ^^^^^
+#
+# source://prism//lib/prism/node.rb#1102
+class Prism::AssocSplatNode < ::Prism::Node
+ # Initialize a new AssocSplatNode node.
+ #
+ # @return [AssocSplatNode] a new instance of AssocSplatNode
+ #
+ # source://prism//lib/prism/node.rb#1104
+ def initialize(source, node_id, location, flags, value, operator_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#1186
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#1114
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#1119
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#1131
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#1124
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?value: Prism::node?, ?operator_loc: Location) -> AssocSplatNode
+ #
+ # source://prism//lib/prism/node.rb#1136
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), value: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#1119
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, value: Prism::node?, operator_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#1144
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#1170
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#1165
+ def operator; end
+
+ # The location of the `**` operator.
+ #
+ # { **x }
+ # ^^
+ #
+ # source://prism//lib/prism/node.rb#1158
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#1175
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # The value to be splatted, if present. Will be missing when keyword rest argument forwarding is used.
+ #
+ # { **foo }
+ # ^^^
+ #
+ # source://prism//lib/prism/node.rb#1152
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#1180
+ def type; end
+ end
+end
+
+# The FFI backend is used on other Ruby implementations.
+#
+# source://prism//lib/prism.rb#81
+Prism::BACKEND = T.let(T.unsafe(nil), Symbol)
+
+# Represents reading a reference to a field in the previous match.
+#
+# $'
+# ^^
+#
+# source://prism//lib/prism/node.rb#1197
+class Prism::BackReferenceReadNode < ::Prism::Node
+ # Initialize a new BackReferenceReadNode node.
+ #
+ # @return [BackReferenceReadNode] a new instance of BackReferenceReadNode
+ #
+ # source://prism//lib/prism/node.rb#1199
+ def initialize(source, node_id, location, flags, name); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#1264
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#1208
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#1213
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#1223
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#1218
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> BackReferenceReadNode
+ #
+ # source://prism//lib/prism/node.rb#1228
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#1213
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
+ #
+ # source://prism//lib/prism/node.rb#1236
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#1248
+ sig { override.returns(String) }
+ def inspect; end
+
+ # The name of the back-reference variable, including the leading `$`.
+ #
+ # $& # name `:$&`
+ #
+ # $+ # name `:$+`
+ #
+ # source://prism//lib/prism/node.rb#1245
+ def name; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#1253
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#1258
+ def type; end
+ end
+end
+
+# A class that knows how to walk down the tree. None of the individual visit
+# methods are implemented on this visitor, so it forces the consumer to
+# implement each one that they need. For a default implementation that
+# continues walking the tree, see the Visitor class.
+#
+# source://prism//lib/prism/visitor.rb#14
+class Prism::BasicVisitor
+ # Calls `accept` on the given node if it is not `nil`, which in turn should
+ # call back into this visitor by calling the appropriate `visit_*` method.
+ #
+ # source://prism//lib/prism/visitor.rb#17
+ sig { params(node: T.nilable(Prism::Node)).void }
+ def visit(node); end
+
+ # Visits each node in `nodes` by calling `accept` on each one.
+ #
+ # source://prism//lib/prism/visitor.rb#23
+ sig { params(nodes: T::Array[T.nilable(Prism::Node)]).void }
+ def visit_all(nodes); end
+
+ # Visits the child nodes of `node` by calling `accept` on each one.
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::Node).void }
+ def visit_child_nodes(node); end
+end
+
+# Represents a begin statement.
+#
+# begin
+# foo
+# end
+# ^^^^^
+#
+# source://prism//lib/prism/node.rb#1276
+class Prism::BeginNode < ::Prism::Node
+ # Initialize a new BeginNode node.
+ #
+ # @return [BeginNode] a new instance of BeginNode
+ #
+ # source://prism//lib/prism/node.rb#1278
+ def initialize(source, node_id, location, flags, begin_keyword_loc, statements, rescue_clause, else_clause, ensure_clause, end_keyword_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#1394
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#1292
+ def accept(visitor); end
+
+ # def begin_keyword: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#1368
+ def begin_keyword; end
+
+ # attr_reader begin_keyword_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#1330
+ def begin_keyword_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#1297
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#1312
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#1302
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?begin_keyword_loc: Location?, ?statements: StatementsNode?, ?rescue_clause: RescueNode?, ?else_clause: ElseNode?, ?ensure_clause: EnsureNode?, ?end_keyword_loc: Location?) -> BeginNode
+ #
+ # source://prism//lib/prism/node.rb#1317
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), begin_keyword_loc: T.unsafe(nil), statements: T.unsafe(nil), rescue_clause: T.unsafe(nil), else_clause: T.unsafe(nil), ensure_clause: T.unsafe(nil), end_keyword_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#1297
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, begin_keyword_loc: Location?, statements: StatementsNode?, rescue_clause: RescueNode?, else_clause: ElseNode?, ensure_clause: EnsureNode?, end_keyword_loc: Location? }
+ #
+ # source://prism//lib/prism/node.rb#1325
+ def deconstruct_keys(keys); end
+
+ # attr_reader else_clause: ElseNode?
+ #
+ # source://prism//lib/prism/node.rb#1349
+ def else_clause; end
+
+ # def end_keyword: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#1373
+ def end_keyword; end
+
+ # attr_reader end_keyword_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#1355
+ def end_keyword_loc; end
+
+ # attr_reader ensure_clause: EnsureNode?
+ #
+ # source://prism//lib/prism/node.rb#1352
+ def ensure_clause; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#1378
+ sig { override.returns(String) }
+ def inspect; end
+
+ # source://prism//lib/prism/parse_result/newlines.rb#79
+ def newline_flag!(lines); end
+
+ # attr_reader rescue_clause: RescueNode?
+ #
+ # source://prism//lib/prism/node.rb#1346
+ def rescue_clause; end
+
+ # attr_reader statements: StatementsNode?
+ #
+ # source://prism//lib/prism/node.rb#1343
+ def statements; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#1383
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#1388
+ def type; end
+ end
+end
+
+# Represents a block argument using `&`.
+#
+# bar(&args)
+# ^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#1409
+class Prism::BlockArgumentNode < ::Prism::Node
+ # Initialize a new BlockArgumentNode node.
+ #
+ # @return [BlockArgumentNode] a new instance of BlockArgumentNode
+ #
+ # source://prism//lib/prism/node.rb#1411
+ def initialize(source, node_id, location, flags, expression, operator_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#1487
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#1421
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#1426
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#1438
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#1431
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?expression: Prism::node?, ?operator_loc: Location) -> BlockArgumentNode
+ #
+ # source://prism//lib/prism/node.rb#1443
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), expression: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#1426
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, expression: Prism::node?, operator_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#1451
+ def deconstruct_keys(keys); end
+
+ # attr_reader expression: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#1456
+ def expression; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#1471
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#1466
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#1459
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#1476
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#1481
+ def type; end
+ end
+end
+
+# Represents a block local variable.
+#
+# a { |; b| }
+# ^
+#
+# source://prism//lib/prism/node.rb#1498
+class Prism::BlockLocalVariableNode < ::Prism::Node
+ # Initialize a new BlockLocalVariableNode node.
+ #
+ # @return [BlockLocalVariableNode] a new instance of BlockLocalVariableNode
+ #
+ # source://prism//lib/prism/node.rb#1500
+ sig { params(source: Prism::Source, node_id: Integer, location: Prism::Location, flags: Integer, name: Symbol).void }
+ def initialize(source, node_id, location, flags, name); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#1566
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#1509
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#1514
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#1524
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#1519
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> BlockLocalVariableNode
+ #
+ # source://prism//lib/prism/node.rb#1529
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol
+ ).returns(Prism::BlockLocalVariableNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#1514
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
+ #
+ # source://prism//lib/prism/node.rb#1537
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#1550
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#1547
+ sig { returns(Symbol) }
+ def name; end
+
+ # def repeated_parameter?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#1542
+ sig { returns(T::Boolean) }
+ def repeated_parameter?; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#1555
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#1560
+ def type; end
+ end
+end
+
+# Represents a block of ruby code.
+#
+# [1, 2, 3].each { |i| puts x }
+# ^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#1577
+class Prism::BlockNode < ::Prism::Node
+ # Initialize a new BlockNode node.
+ #
+ # @return [BlockNode] a new instance of BlockNode
+ #
+ # source://prism//lib/prism/node.rb#1579
+ def initialize(source, node_id, location, flags, locals, parameters, body, opening_loc, closing_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#1677
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#1592
+ def accept(visitor); end
+
+ # attr_reader body: StatementsNode | BeginNode | nil
+ #
+ # source://prism//lib/prism/node.rb#1634
+ def body; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#1597
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism//lib/prism/node.rb#1656
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#1644
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#1610
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#1602
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?locals: Array[Symbol], ?parameters: BlockParametersNode | NumberedParametersNode | ItParametersNode | nil, ?body: StatementsNode | BeginNode | nil, ?opening_loc: Location, ?closing_loc: Location) -> BlockNode
+ #
+ # source://prism//lib/prism/node.rb#1615
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), locals: T.unsafe(nil), parameters: T.unsafe(nil), body: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#1597
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, locals: Array[Symbol], parameters: BlockParametersNode | NumberedParametersNode | ItParametersNode | nil, body: StatementsNode | BeginNode | nil, opening_loc: Location, closing_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#1623
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#1661
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader locals: Array[Symbol]
+ #
+ # source://prism//lib/prism/node.rb#1628
+ def locals; end
+
+ # def opening: () -> String
+ #
+ # source://prism//lib/prism/node.rb#1651
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#1637
+ def opening_loc; end
+
+ # attr_reader parameters: BlockParametersNode | NumberedParametersNode | ItParametersNode | nil
+ #
+ # source://prism//lib/prism/node.rb#1631
+ def parameters; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#1666
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#1671
+ def type; end
+ end
+end
+
+# Represents a block parameter of a method, block, or lambda definition.
+#
+# def a(&b)
+# ^^
+# end
+#
+# source://prism//lib/prism/node.rb#1693
+class Prism::BlockParameterNode < ::Prism::Node
+ # Initialize a new BlockParameterNode node.
+ #
+ # @return [BlockParameterNode] a new instance of BlockParameterNode
+ #
+ # source://prism//lib/prism/node.rb#1695
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: T.nilable(Symbol),
+ name_loc: T.nilable(Prism::Location),
+ operator_loc: Prism::Location
+ ).void
+ end
+ def initialize(source, node_id, location, flags, name, name_loc, operator_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#1788
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#1706
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#1711
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#1721
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#1716
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol?, ?name_loc: Location?, ?operator_loc: Location) -> BlockParameterNode
+ #
+ # source://prism//lib/prism/node.rb#1726
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: T.nilable(Symbol),
+ name_loc: T.nilable(Prism::Location),
+ operator_loc: Prism::Location
+ ).returns(Prism::BlockParameterNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#1711
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol?, name_loc: Location?, operator_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#1734
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#1772
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol?
+ #
+ # source://prism//lib/prism/node.rb#1744
+ sig { returns(T.nilable(Symbol)) }
+ def name; end
+
+ # attr_reader name_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#1747
+ sig { returns(T.nilable(Prism::Location)) }
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#1767
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#1760
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # def repeated_parameter?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#1739
+ sig { returns(T::Boolean) }
+ def repeated_parameter?; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#1777
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#1782
+ def type; end
+ end
+end
+
+# Represents a block's parameters declaration.
+#
+# -> (a, b = 1; local) { }
+# ^^^^^^^^^^^^^^^^^
+#
+# foo do |a, b = 1; local|
+# ^^^^^^^^^^^^^^^^^
+# end
+#
+# source://prism//lib/prism/node.rb#1805
+class Prism::BlockParametersNode < ::Prism::Node
+ # Initialize a new BlockParametersNode node.
+ #
+ # @return [BlockParametersNode] a new instance of BlockParametersNode
+ #
+ # source://prism//lib/prism/node.rb#1807
+ def initialize(source, node_id, location, flags, parameters, locals, opening_loc, closing_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#1913
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#1819
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#1824
+ def child_nodes; end
+
+ # def closing: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#1892
+ def closing; end
+
+ # attr_reader closing_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#1874
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#1837
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#1829
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?parameters: ParametersNode?, ?locals: Array[BlockLocalVariableNode], ?opening_loc: Location?, ?closing_loc: Location?) -> BlockParametersNode
+ #
+ # source://prism//lib/prism/node.rb#1842
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), parameters: T.unsafe(nil), locals: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#1824
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, parameters: ParametersNode?, locals: Array[BlockLocalVariableNode], opening_loc: Location?, closing_loc: Location? }
+ #
+ # source://prism//lib/prism/node.rb#1850
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#1897
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader locals: Array[BlockLocalVariableNode]
+ #
+ # source://prism//lib/prism/node.rb#1858
+ def locals; end
+
+ # def opening: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#1887
+ def opening; end
+
+ # attr_reader opening_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#1861
+ def opening_loc; end
+
+ # attr_reader parameters: ParametersNode?
+ #
+ # source://prism//lib/prism/node.rb#1855
+ def parameters; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#1902
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#1907
+ def type; end
+ end
+end
+
+# Represents the use of the `break` keyword.
+#
+# break foo
+# ^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#1927
+class Prism::BreakNode < ::Prism::Node
+ # Initialize a new BreakNode node.
+ #
+ # @return [BreakNode] a new instance of BreakNode
+ #
+ # source://prism//lib/prism/node.rb#1929
+ def initialize(source, node_id, location, flags, arguments, keyword_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#2011
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#1939
+ def accept(visitor); end
+
+ # The arguments to the break statement, if present. These can be any [non-void expressions](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
+ #
+ # break foo
+ # ^^^
+ #
+ # source://prism//lib/prism/node.rb#1977
+ def arguments; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#1944
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#1956
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#1949
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?arguments: ArgumentsNode?, ?keyword_loc: Location) -> BreakNode
+ #
+ # source://prism//lib/prism/node.rb#1961
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), arguments: T.unsafe(nil), keyword_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#1944
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, arguments: ArgumentsNode?, keyword_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#1969
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#1995
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#1990
+ def keyword; end
+
+ # The location of the `break` keyword.
+ #
+ # break foo
+ # ^^^^^
+ #
+ # source://prism//lib/prism/node.rb#1983
+ def keyword_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#2000
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#2005
+ def type; end
+ end
+end
+
+# Represents the use of the `&&=` operator on a call.
+#
+# foo.bar &&= value
+# ^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#2022
+class Prism::CallAndWriteNode < ::Prism::Node
+ # Initialize a new CallAndWriteNode node.
+ #
+ # @return [CallAndWriteNode] a new instance of CallAndWriteNode
+ #
+ # source://prism//lib/prism/node.rb#2024
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: T.nilable(Prism::Node),
+ call_operator_loc: T.nilable(Prism::Location),
+ message_loc: T.nilable(Prism::Location),
+ read_name: Symbol,
+ write_name: Symbol,
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).void
+ end
+ def initialize(source, node_id, location, flags, receiver, call_operator_loc, message_loc, read_name, write_name, operator_loc, value); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#2171
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#2039
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def attribute_write?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#2085
+ sig { returns(T::Boolean) }
+ def attribute_write?; end
+
+ # def call_operator: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#2140
+ sig { returns(T.nilable(String)) }
+ def call_operator; end
+
+ # attr_reader call_operator_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#2098
+ sig { returns(T.nilable(Prism::Location)) }
+ def call_operator_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#2044
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#2057
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#2049
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?message_loc: Location?, ?read_name: Symbol, ?write_name: Symbol, ?operator_loc: Location, ?value: Prism::node) -> CallAndWriteNode
+ #
+ # source://prism//lib/prism/node.rb#2062
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: T.nilable(Prism::Node),
+ call_operator_loc: T.nilable(Prism::Location),
+ message_loc: T.nilable(Prism::Location),
+ read_name: Symbol,
+ write_name: Symbol,
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::CallAndWriteNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), receiver: T.unsafe(nil), call_operator_loc: T.unsafe(nil), message_loc: T.unsafe(nil), read_name: T.unsafe(nil), write_name: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#2044
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, receiver: Prism::node?, call_operator_loc: Location?, message_loc: Location?, read_name: Symbol, write_name: Symbol, operator_loc: Location, value: Prism::node }
+ #
+ # source://prism//lib/prism/node.rb#2070
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def ignore_visibility?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#2090
+ sig { returns(T::Boolean) }
+ def ignore_visibility?; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#2155
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def message: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#2145
+ sig { returns(T.nilable(String)) }
+ def message; end
+
+ # attr_reader message_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#2111
+ sig { returns(T.nilable(Prism::Location)) }
+ def message_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#2150
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#2130
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # attr_reader read_name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#2124
+ sig { returns(Symbol) }
+ def read_name; end
+
+ # attr_reader receiver: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#2095
+ sig { returns(T.nilable(Prism::Node)) }
+ def receiver; end
+
+ # def safe_navigation?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#2075
+ sig { returns(T::Boolean) }
+ def safe_navigation?; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#2160
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#2137
+ sig { returns(Prism::Node) }
+ def value; end
+
+ # def variable_call?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#2080
+ sig { returns(T::Boolean) }
+ def variable_call?; end
+
+ # attr_reader write_name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#2127
+ sig { returns(Symbol) }
+ def write_name; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#2165
+ def type; end
+ end
+end
+
+# Represents a method call, in all of the various forms that can take.
+#
+# foo
+# ^^^
+#
+# foo()
+# ^^^^^
+#
+# +foo
+# ^^^^
+#
+# foo + bar
+# ^^^^^^^^^
+#
+# foo.bar
+# ^^^^^^^
+#
+# foo&.bar
+# ^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#2203
+class Prism::CallNode < ::Prism::Node
+ # Initialize a new CallNode node.
+ #
+ # @return [CallNode] a new instance of CallNode
+ #
+ # source://prism//lib/prism/node.rb#2205
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: T.nilable(Prism::Node),
+ call_operator_loc: T.nilable(Prism::Location),
+ name: Symbol,
+ message_loc: T.nilable(Prism::Location),
+ opening_loc: T.nilable(Prism::Location),
+ arguments: T.nilable(Prism::ArgumentsNode),
+ closing_loc: T.nilable(Prism::Location),
+ block: T.nilable(Prism::Node)
+ ).void
+ end
+ def initialize(source, node_id, location, flags, receiver, call_operator_loc, name, message_loc, opening_loc, arguments, closing_loc, block); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#2387
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#2221
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # attr_reader arguments: ArgumentsNode?
+ #
+ # source://prism//lib/prism/node.rb#2332
+ sig { returns(T.nilable(Prism::ArgumentsNode)) }
+ def arguments; end
+
+ # def attribute_write?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#2268
+ sig { returns(T::Boolean) }
+ def attribute_write?; end
+
+ # attr_reader block: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#2348
+ sig { returns(T.nilable(Prism::Node)) }
+ def block; end
+
+ # def call_operator: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#2351
+ sig { returns(T.nilable(String)) }
+ def call_operator; end
+
+ # attr_reader call_operator_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#2290
+ sig { returns(T.nilable(Prism::Location)) }
+ def call_operator_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#2226
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#2366
+ sig { returns(T.nilable(String)) }
+ def closing; end
+
+ # attr_reader closing_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#2335
+ sig { returns(T.nilable(Prism::Location)) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#2240
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#2231
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?name: Symbol, ?message_loc: Location?, ?opening_loc: Location?, ?arguments: ArgumentsNode?, ?closing_loc: Location?, ?block: Prism::node?) -> CallNode
+ #
+ # source://prism//lib/prism/node.rb#2245
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: T.nilable(Prism::Node),
+ call_operator_loc: T.nilable(Prism::Location),
+ name: Symbol,
+ message_loc: T.nilable(Prism::Location),
+ opening_loc: T.nilable(Prism::Location),
+ arguments: T.nilable(Prism::ArgumentsNode),
+ closing_loc: T.nilable(Prism::Location),
+ block: T.nilable(Prism::Node)
+ ).returns(Prism::CallNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), receiver: T.unsafe(nil), call_operator_loc: T.unsafe(nil), name: T.unsafe(nil), message_loc: T.unsafe(nil), opening_loc: T.unsafe(nil), arguments: T.unsafe(nil), closing_loc: T.unsafe(nil), block: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#2226
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, receiver: Prism::node?, call_operator_loc: Location?, name: Symbol, message_loc: Location?, opening_loc: Location?, arguments: ArgumentsNode?, closing_loc: Location?, block: Prism::node? }
+ #
+ # source://prism//lib/prism/node.rb#2253
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # When a call node has the attribute_write flag set, it means that the call
+ # is using the attribute write syntax. This is either a method call to []=
+ # or a method call to a method that ends with =. Either way, the = sign is
+ # present in the source.
+ #
+ # Prism returns the message_loc _without_ the = sign attached, because there
+ # can be any amount of space between the message and the = sign. However,
+ # sometimes you want the location of the full message including the inner
+ # space and the = sign. This method provides that.
+ #
+ # source://prism//lib/prism/node_ext.rb#331
+ sig { returns(T.nilable(Prism::Location)) }
+ def full_message_loc; end
+
+ # def ignore_visibility?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#2273
+ sig { returns(T::Boolean) }
+ def ignore_visibility?; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#2371
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def message: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#2356
+ sig { returns(T.nilable(String)) }
+ def message; end
+
+ # attr_reader message_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#2306
+ sig { returns(T.nilable(Prism::Location)) }
+ def message_loc; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#2303
+ sig { returns(Symbol) }
+ def name; end
+
+ # def opening: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#2361
+ sig { returns(T.nilable(String)) }
+ def opening; end
+
+ # attr_reader opening_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#2319
+ sig { returns(T.nilable(Prism::Location)) }
+ def opening_loc; end
+
+ # The object that the method is being called on. This can be either `nil` or any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
+ #
+ # foo.bar
+ # ^^^
+ #
+ # +foo
+ # ^^^
+ #
+ # foo + bar
+ # ^^^
+ #
+ # source://prism//lib/prism/node.rb#2287
+ sig { returns(T.nilable(Prism::Node)) }
+ def receiver; end
+
+ # def safe_navigation?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#2258
+ sig { returns(T::Boolean) }
+ def safe_navigation?; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#2376
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # def variable_call?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#2263
+ sig { returns(T::Boolean) }
+ def variable_call?; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#2381
+ def type; end
+ end
+end
+
+# Flags for call nodes.
+#
+# source://prism//lib/prism/node.rb#16665
+module Prism::CallNodeFlags; end
+
+# a call that is an attribute write, so the value being written should be returned
+#
+# source://prism//lib/prism/node.rb#16673
+Prism::CallNodeFlags::ATTRIBUTE_WRITE = T.let(T.unsafe(nil), Integer)
+
+# a call that ignores method visibility
+#
+# source://prism//lib/prism/node.rb#16676
+Prism::CallNodeFlags::IGNORE_VISIBILITY = T.let(T.unsafe(nil), Integer)
+
+# &. operator
+#
+# source://prism//lib/prism/node.rb#16667
+Prism::CallNodeFlags::SAFE_NAVIGATION = T.let(T.unsafe(nil), Integer)
+
+# a call that could have been a local variable
+#
+# source://prism//lib/prism/node.rb#16670
+Prism::CallNodeFlags::VARIABLE_CALL = T.let(T.unsafe(nil), Integer)
+
+# Represents the use of an assignment operator on a call.
+#
+# foo.bar += baz
+# ^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#2405
+class Prism::CallOperatorWriteNode < ::Prism::Node
+ # Initialize a new CallOperatorWriteNode node.
+ #
+ # @return [CallOperatorWriteNode] a new instance of CallOperatorWriteNode
+ #
+ # source://prism//lib/prism/node.rb#2407
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: T.nilable(Prism::Node),
+ call_operator_loc: T.nilable(Prism::Location),
+ message_loc: T.nilable(Prism::Location),
+ read_name: Symbol,
+ write_name: Symbol,
+ binary_operator: Symbol,
+ binary_operator_loc: Prism::Location,
+ value: Prism::Node
+ ).void
+ end
+ def initialize(source, node_id, location, flags, receiver, call_operator_loc, message_loc, read_name, write_name, binary_operator, binary_operator_loc, value); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#2553
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#2423
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def attribute_write?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#2469
+ sig { returns(T::Boolean) }
+ def attribute_write?; end
+
+ # attr_reader binary_operator: Symbol
+ #
+ # source://prism//lib/prism/node.rb#2514
+ sig { returns(Symbol) }
+ def binary_operator; end
+
+ # attr_reader binary_operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#2517
+ sig { returns(Prism::Location) }
+ def binary_operator_loc; end
+
+ # def call_operator: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#2527
+ sig { returns(T.nilable(String)) }
+ def call_operator; end
+
+ # attr_reader call_operator_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#2482
+ sig { returns(T.nilable(Prism::Location)) }
+ def call_operator_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#2428
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#2441
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#2433
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?message_loc: Location?, ?read_name: Symbol, ?write_name: Symbol, ?binary_operator: Symbol, ?binary_operator_loc: Location, ?value: Prism::node) -> CallOperatorWriteNode
+ #
+ # source://prism//lib/prism/node.rb#2446
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: T.nilable(Prism::Node),
+ call_operator_loc: T.nilable(Prism::Location),
+ message_loc: T.nilable(Prism::Location),
+ read_name: Symbol,
+ write_name: Symbol,
+ binary_operator: Symbol,
+ binary_operator_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::CallOperatorWriteNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), receiver: T.unsafe(nil), call_operator_loc: T.unsafe(nil), message_loc: T.unsafe(nil), read_name: T.unsafe(nil), write_name: T.unsafe(nil), binary_operator: T.unsafe(nil), binary_operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#2428
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, receiver: Prism::node?, call_operator_loc: Location?, message_loc: Location?, read_name: Symbol, write_name: Symbol, binary_operator: Symbol, binary_operator_loc: Location, value: Prism::node }
+ #
+ # source://prism//lib/prism/node.rb#2454
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def ignore_visibility?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#2474
+ sig { returns(T::Boolean) }
+ def ignore_visibility?; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#2537
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def message: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#2532
+ sig { returns(T.nilable(String)) }
+ def message; end
+
+ # attr_reader message_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#2495
+ sig { returns(T.nilable(Prism::Location)) }
+ def message_loc; end
+
+ # Returns the binary operator used to modify the receiver. This method is
+ # deprecated in favor of #binary_operator.
+ #
+ # source://prism//lib/prism/node_ext.rb#339
+ def operator; end
+
+ # Returns the location of the binary operator used to modify the receiver.
+ # This method is deprecated in favor of #binary_operator_loc.
+ #
+ # source://prism//lib/prism/node_ext.rb#346
+ def operator_loc; end
+
+ # attr_reader read_name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#2508
+ sig { returns(Symbol) }
+ def read_name; end
+
+ # attr_reader receiver: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#2479
+ sig { returns(T.nilable(Prism::Node)) }
+ def receiver; end
+
+ # def safe_navigation?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#2459
+ sig { returns(T::Boolean) }
+ def safe_navigation?; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#2542
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#2524
+ sig { returns(Prism::Node) }
+ def value; end
+
+ # def variable_call?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#2464
+ sig { returns(T::Boolean) }
+ def variable_call?; end
+
+ # attr_reader write_name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#2511
+ sig { returns(Symbol) }
+ def write_name; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#2547
+ def type; end
+ end
+end
+
+# Represents the use of the `||=` operator on a call.
+#
+# foo.bar ||= value
+# ^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#2571
+class Prism::CallOrWriteNode < ::Prism::Node
+ # Initialize a new CallOrWriteNode node.
+ #
+ # @return [CallOrWriteNode] a new instance of CallOrWriteNode
+ #
+ # source://prism//lib/prism/node.rb#2573
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: T.nilable(Prism::Node),
+ call_operator_loc: T.nilable(Prism::Location),
+ message_loc: T.nilable(Prism::Location),
+ read_name: Symbol,
+ write_name: Symbol,
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).void
+ end
+ def initialize(source, node_id, location, flags, receiver, call_operator_loc, message_loc, read_name, write_name, operator_loc, value); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#2720
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#2588
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def attribute_write?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#2634
+ sig { returns(T::Boolean) }
+ def attribute_write?; end
+
+ # def call_operator: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#2689
+ sig { returns(T.nilable(String)) }
+ def call_operator; end
+
+ # attr_reader call_operator_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#2647
+ sig { returns(T.nilable(Prism::Location)) }
+ def call_operator_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#2593
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#2606
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#2598
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?message_loc: Location?, ?read_name: Symbol, ?write_name: Symbol, ?operator_loc: Location, ?value: Prism::node) -> CallOrWriteNode
+ #
+ # source://prism//lib/prism/node.rb#2611
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: T.nilable(Prism::Node),
+ call_operator_loc: T.nilable(Prism::Location),
+ message_loc: T.nilable(Prism::Location),
+ read_name: Symbol,
+ write_name: Symbol,
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::CallOrWriteNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), receiver: T.unsafe(nil), call_operator_loc: T.unsafe(nil), message_loc: T.unsafe(nil), read_name: T.unsafe(nil), write_name: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#2593
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, receiver: Prism::node?, call_operator_loc: Location?, message_loc: Location?, read_name: Symbol, write_name: Symbol, operator_loc: Location, value: Prism::node }
+ #
+ # source://prism//lib/prism/node.rb#2619
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def ignore_visibility?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#2639
+ sig { returns(T::Boolean) }
+ def ignore_visibility?; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#2704
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def message: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#2694
+ sig { returns(T.nilable(String)) }
+ def message; end
+
+ # attr_reader message_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#2660
+ sig { returns(T.nilable(Prism::Location)) }
+ def message_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#2699
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#2679
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # attr_reader read_name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#2673
+ sig { returns(Symbol) }
+ def read_name; end
+
+ # attr_reader receiver: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#2644
+ sig { returns(T.nilable(Prism::Node)) }
+ def receiver; end
+
+ # def safe_navigation?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#2624
+ sig { returns(T::Boolean) }
+ def safe_navigation?; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#2709
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#2686
+ sig { returns(Prism::Node) }
+ def value; end
+
+ # def variable_call?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#2629
+ sig { returns(T::Boolean) }
+ def variable_call?; end
+
+ # attr_reader write_name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#2676
+ sig { returns(Symbol) }
+ def write_name; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#2714
+ def type; end
+ end
+end
+
+# Represents assigning to a method call.
+#
+# foo.bar, = 1
+# ^^^^^^^
+#
+# begin
+# rescue => foo.bar
+# ^^^^^^^
+# end
+#
+# for foo.bar in baz do end
+# ^^^^^^^
+#
+# source://prism//lib/prism/node.rb#2745
+class Prism::CallTargetNode < ::Prism::Node
+ # Initialize a new CallTargetNode node.
+ #
+ # @return [CallTargetNode] a new instance of CallTargetNode
+ #
+ # source://prism//lib/prism/node.rb#2747
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: Prism::Node,
+ call_operator_loc: Prism::Location,
+ name: Symbol,
+ message_loc: Prism::Location
+ ).void
+ end
+ def initialize(source, node_id, location, flags, receiver, call_operator_loc, name, message_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#2858
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#2759
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def attribute_write?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#2802
+ sig { returns(T::Boolean) }
+ def attribute_write?; end
+
+ # def call_operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#2832
+ sig { returns(String) }
+ def call_operator; end
+
+ # attr_reader call_operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#2815
+ sig { returns(Prism::Location) }
+ def call_operator_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#2764
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#2774
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#2769
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node, ?call_operator_loc: Location, ?name: Symbol, ?message_loc: Location) -> CallTargetNode
+ #
+ # source://prism//lib/prism/node.rb#2779
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: Prism::Node,
+ call_operator_loc: Prism::Location,
+ name: Symbol,
+ message_loc: Prism::Location
+ ).returns(Prism::CallTargetNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), receiver: T.unsafe(nil), call_operator_loc: T.unsafe(nil), name: T.unsafe(nil), message_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#2764
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, receiver: Prism::node, call_operator_loc: Location, name: Symbol, message_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#2787
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def ignore_visibility?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#2807
+ sig { returns(T::Boolean) }
+ def ignore_visibility?; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#2842
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def message: () -> String
+ #
+ # source://prism//lib/prism/node.rb#2837
+ sig { returns(String) }
+ def message; end
+
+ # attr_reader message_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#2825
+ sig { returns(Prism::Location) }
+ def message_loc; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#2822
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader receiver: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#2812
+ sig { returns(Prism::Node) }
+ def receiver; end
+
+ # def safe_navigation?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#2792
+ sig { returns(T::Boolean) }
+ def safe_navigation?; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#2847
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # def variable_call?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#2797
+ sig { returns(T::Boolean) }
+ def variable_call?; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#2852
+ def type; end
+ end
+end
+
+# Represents assigning to a local variable in pattern matching.
+#
+# foo => [bar => baz]
+# ^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#2872
+class Prism::CapturePatternNode < ::Prism::Node
+ # Initialize a new CapturePatternNode node.
+ #
+ # @return [CapturePatternNode] a new instance of CapturePatternNode
+ #
+ # source://prism//lib/prism/node.rb#2874
+ def initialize(source, node_id, location, flags, value, target, operator_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#2952
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#2885
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#2890
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#2900
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#2895
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?value: Prism::node, ?target: Prism::node, ?operator_loc: Location) -> CapturePatternNode
+ #
+ # source://prism//lib/prism/node.rb#2905
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), value: T.unsafe(nil), target: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#2890
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, value: Prism::node, target: Prism::node, operator_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#2913
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#2936
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#2931
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#2924
+ def operator_loc; end
+
+ # attr_reader target: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#2921
+ def target; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#2941
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#2918
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#2946
+ def type; end
+ end
+end
+
+# Represents the use of a case statement for pattern matching.
+#
+# case true
+# in false
+# end
+# ^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#2966
+class Prism::CaseMatchNode < ::Prism::Node
+ # Initialize a new CaseMatchNode node.
+ #
+ # @return [CaseMatchNode] a new instance of CaseMatchNode
+ #
+ # source://prism//lib/prism/node.rb#2968
+ def initialize(source, node_id, location, flags, predicate, conditions, else_clause, case_keyword_loc, end_keyword_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#3067
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#2981
+ def accept(visitor); end
+
+ # def case_keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#3041
+ def case_keyword; end
+
+ # attr_reader case_keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#3027
+ def case_keyword_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#2986
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#3000
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#2991
+ def compact_child_nodes; end
+
+ # attr_reader conditions: Array[Prism::node]
+ #
+ # source://prism//lib/prism/node.rb#3021
+ def conditions; end
+
+ # Returns the else clause of the case match node. This method is deprecated
+ # in favor of #else_clause.
+ #
+ # source://prism//lib/prism/node_ext.rb#467
+ def consequent; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?predicate: Prism::node?, ?conditions: Array[Prism::node], ?else_clause: ElseNode?, ?case_keyword_loc: Location, ?end_keyword_loc: Location) -> CaseMatchNode
+ #
+ # source://prism//lib/prism/node.rb#3005
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), predicate: T.unsafe(nil), conditions: T.unsafe(nil), else_clause: T.unsafe(nil), case_keyword_loc: T.unsafe(nil), end_keyword_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#2986
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, predicate: Prism::node?, conditions: Array[Prism::node], else_clause: ElseNode?, case_keyword_loc: Location, end_keyword_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#3013
+ def deconstruct_keys(keys); end
+
+ # attr_reader else_clause: ElseNode?
+ #
+ # source://prism//lib/prism/node.rb#3024
+ def else_clause; end
+
+ # def end_keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#3046
+ def end_keyword; end
+
+ # attr_reader end_keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#3034
+ def end_keyword_loc; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#3051
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader predicate: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#3018
+ def predicate; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#3056
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#3061
+ def type; end
+ end
+end
+
+# Represents the use of a case statement.
+#
+# case true
+# when false
+# end
+# ^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#3084
+class Prism::CaseNode < ::Prism::Node
+ # Initialize a new CaseNode node.
+ #
+ # @return [CaseNode] a new instance of CaseNode
+ #
+ # source://prism//lib/prism/node.rb#3086
+ def initialize(source, node_id, location, flags, predicate, conditions, else_clause, case_keyword_loc, end_keyword_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#3185
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#3099
+ def accept(visitor); end
+
+ # def case_keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#3159
+ def case_keyword; end
+
+ # attr_reader case_keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#3145
+ def case_keyword_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#3104
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#3118
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#3109
+ def compact_child_nodes; end
+
+ # attr_reader conditions: Array[Prism::node]
+ #
+ # source://prism//lib/prism/node.rb#3139
+ def conditions; end
+
+ # Returns the else clause of the case node. This method is deprecated in
+ # favor of #else_clause.
+ #
+ # source://prism//lib/prism/node_ext.rb#476
+ def consequent; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?predicate: Prism::node?, ?conditions: Array[Prism::node], ?else_clause: ElseNode?, ?case_keyword_loc: Location, ?end_keyword_loc: Location) -> CaseNode
+ #
+ # source://prism//lib/prism/node.rb#3123
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), predicate: T.unsafe(nil), conditions: T.unsafe(nil), else_clause: T.unsafe(nil), case_keyword_loc: T.unsafe(nil), end_keyword_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#3104
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, predicate: Prism::node?, conditions: Array[Prism::node], else_clause: ElseNode?, case_keyword_loc: Location, end_keyword_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#3131
+ def deconstruct_keys(keys); end
+
+ # attr_reader else_clause: ElseNode?
+ #
+ # source://prism//lib/prism/node.rb#3142
+ def else_clause; end
+
+ # def end_keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#3164
+ def end_keyword; end
+
+ # attr_reader end_keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#3152
+ def end_keyword_loc; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#3169
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader predicate: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#3136
+ def predicate; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#3174
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#3179
+ def type; end
+ end
+end
+
+# Represents a class declaration involving the `class` keyword.
+#
+# class Foo end
+# ^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#3200
+class Prism::ClassNode < ::Prism::Node
+ # Initialize a new ClassNode node.
+ #
+ # @return [ClassNode] a new instance of ClassNode
+ #
+ # source://prism//lib/prism/node.rb#3202
+ def initialize(source, node_id, location, flags, locals, class_keyword_loc, constant_path, inheritance_operator_loc, superclass, body, end_keyword_loc, name); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#3328
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#3218
+ def accept(visitor); end
+
+ # attr_reader body: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#3284
+ def body; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#3223
+ def child_nodes; end
+
+ # def class_keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#3297
+ def class_keyword; end
+
+ # attr_reader class_keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#3258
+ def class_keyword_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#3237
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#3228
+ def compact_child_nodes; end
+
+ # attr_reader constant_path: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#3265
+ def constant_path; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?locals: Array[Symbol], ?class_keyword_loc: Location, ?constant_path: Prism::node, ?inheritance_operator_loc: Location?, ?superclass: Prism::node?, ?body: Prism::node?, ?end_keyword_loc: Location, ?name: Symbol) -> ClassNode
+ #
+ # source://prism//lib/prism/node.rb#3242
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), locals: T.unsafe(nil), class_keyword_loc: T.unsafe(nil), constant_path: T.unsafe(nil), inheritance_operator_loc: T.unsafe(nil), superclass: T.unsafe(nil), body: T.unsafe(nil), end_keyword_loc: T.unsafe(nil), name: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#3223
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, locals: Array[Symbol], class_keyword_loc: Location, constant_path: Prism::node, inheritance_operator_loc: Location?, superclass: Prism::node?, body: Prism::node?, end_keyword_loc: Location, name: Symbol }
+ #
+ # source://prism//lib/prism/node.rb#3250
+ def deconstruct_keys(keys); end
+
+ # def end_keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#3307
+ def end_keyword; end
+
+ # attr_reader end_keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#3287
+ def end_keyword_loc; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inheritance_operator: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#3302
+ def inheritance_operator; end
+
+ # attr_reader inheritance_operator_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#3268
+ def inheritance_operator_loc; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#3312
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader locals: Array[Symbol]
+ #
+ # source://prism//lib/prism/node.rb#3255
+ def locals; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#3294
+ def name; end
+
+ # attr_reader superclass: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#3281
+ def superclass; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#3317
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#3322
+ def type; end
+ end
+end
+
+# Represents the use of the `&&=` operator for assignment to a class variable.
+#
+# @@target &&= value
+# ^^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#3346
+class Prism::ClassVariableAndWriteNode < ::Prism::Node
+ # Initialize a new ClassVariableAndWriteNode node.
+ #
+ # @return [ClassVariableAndWriteNode] a new instance of ClassVariableAndWriteNode
+ #
+ # source://prism//lib/prism/node.rb#3348
+ def initialize(source, node_id, location, flags, name, name_loc, operator_loc, value); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#3434
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#3360
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#3365
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#3375
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#3370
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> ClassVariableAndWriteNode
+ #
+ # source://prism//lib/prism/node.rb#3380
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#3365
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
+ #
+ # source://prism//lib/prism/node.rb#3388
+ def deconstruct_keys(keys); end
+
+ # source://prism//lib/prism/desugar_compiler.rb#164
+ def desugar; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#3418
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#3393
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#3396
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#3413
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#3403
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#3423
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#3410
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#3428
+ def type; end
+ end
+end
+
+# Represents assigning to a class variable using an operator that isn't `=`.
+#
+# @@target += value
+# ^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#3447
+class Prism::ClassVariableOperatorWriteNode < ::Prism::Node
+ # Initialize a new ClassVariableOperatorWriteNode node.
+ #
+ # @return [ClassVariableOperatorWriteNode] a new instance of ClassVariableOperatorWriteNode
+ #
+ # source://prism//lib/prism/node.rb#3449
+ def initialize(source, node_id, location, flags, name, name_loc, binary_operator_loc, value, binary_operator); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#3534
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#3462
+ def accept(visitor); end
+
+ # attr_reader binary_operator: Symbol
+ #
+ # source://prism//lib/prism/node.rb#3515
+ def binary_operator; end
+
+ # attr_reader binary_operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#3505
+ def binary_operator_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#3467
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#3477
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#3472
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?binary_operator_loc: Location, ?value: Prism::node, ?binary_operator: Symbol) -> ClassVariableOperatorWriteNode
+ #
+ # source://prism//lib/prism/node.rb#3482
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), binary_operator_loc: T.unsafe(nil), value: T.unsafe(nil), binary_operator: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#3467
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, binary_operator_loc: Location, value: Prism::node, binary_operator: Symbol }
+ #
+ # source://prism//lib/prism/node.rb#3490
+ def deconstruct_keys(keys); end
+
+ # source://prism//lib/prism/desugar_compiler.rb#176
+ def desugar; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#3518
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#3495
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#3498
+ def name_loc; end
+
+ # Returns the binary operator used to modify the receiver. This method is
+ # deprecated in favor of #binary_operator.
+ #
+ # source://prism//lib/prism/node_ext.rb#355
+ def operator; end
+
+ # Returns the location of the binary operator used to modify the receiver.
+ # This method is deprecated in favor of #binary_operator_loc.
+ #
+ # source://prism//lib/prism/node_ext.rb#362
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#3523
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#3512
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#3528
+ def type; end
+ end
+end
+
+# Represents the use of the `||=` operator for assignment to a class variable.
+#
+# @@target ||= value
+# ^^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#3548
+class Prism::ClassVariableOrWriteNode < ::Prism::Node
+ # Initialize a new ClassVariableOrWriteNode node.
+ #
+ # @return [ClassVariableOrWriteNode] a new instance of ClassVariableOrWriteNode
+ #
+ # source://prism//lib/prism/node.rb#3550
+ def initialize(source, node_id, location, flags, name, name_loc, operator_loc, value); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#3636
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#3562
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#3567
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#3577
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#3572
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> ClassVariableOrWriteNode
+ #
+ # source://prism//lib/prism/node.rb#3582
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#3567
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
+ #
+ # source://prism//lib/prism/node.rb#3590
+ def deconstruct_keys(keys); end
+
+ # source://prism//lib/prism/desugar_compiler.rb#170
+ def desugar; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#3620
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#3595
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#3598
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#3615
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#3605
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#3625
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#3612
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#3630
+ def type; end
+ end
+end
+
+# Represents referencing a class variable.
+#
+# @@foo
+# ^^^^^
+#
+# source://prism//lib/prism/node.rb#3649
+class Prism::ClassVariableReadNode < ::Prism::Node
+ # Initialize a new ClassVariableReadNode node.
+ #
+ # @return [ClassVariableReadNode] a new instance of ClassVariableReadNode
+ #
+ # source://prism//lib/prism/node.rb#3651
+ def initialize(source, node_id, location, flags, name); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#3716
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#3660
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#3665
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#3675
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#3670
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> ClassVariableReadNode
+ #
+ # source://prism//lib/prism/node.rb#3680
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#3665
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
+ #
+ # source://prism//lib/prism/node.rb#3688
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#3700
+ sig { override.returns(String) }
+ def inspect; end
+
+ # The name of the class variable, which is a `@@` followed by an [identifier](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#identifiers).
+ #
+ # @@abc # name `:@@abc`
+ #
+ # @@_test # name `:@@_test`
+ #
+ # source://prism//lib/prism/node.rb#3697
+ def name; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#3705
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#3710
+ def type; end
+ end
+end
+
+# Represents writing to a class variable in a context that doesn't have an explicit value.
+#
+# @@foo, @@bar = baz
+# ^^^^^ ^^^^^
+#
+# source://prism//lib/prism/node.rb#3726
+class Prism::ClassVariableTargetNode < ::Prism::Node
+ # Initialize a new ClassVariableTargetNode node.
+ #
+ # @return [ClassVariableTargetNode] a new instance of ClassVariableTargetNode
+ #
+ # source://prism//lib/prism/node.rb#3728
+ def initialize(source, node_id, location, flags, name); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#3789
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#3737
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#3742
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#3752
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#3747
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> ClassVariableTargetNode
+ #
+ # source://prism//lib/prism/node.rb#3757
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#3742
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
+ #
+ # source://prism//lib/prism/node.rb#3765
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#3773
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#3770
+ def name; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#3778
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#3783
+ def type; end
+ end
+end
+
+# Represents writing to a class variable.
+#
+# @@foo = 1
+# ^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#3799
+class Prism::ClassVariableWriteNode < ::Prism::Node
+ # Initialize a new ClassVariableWriteNode node.
+ #
+ # @return [ClassVariableWriteNode] a new instance of ClassVariableWriteNode
+ #
+ # source://prism//lib/prism/node.rb#3801
+ def initialize(source, node_id, location, flags, name, name_loc, value, operator_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#3903
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#3813
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#3818
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#3828
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#3823
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location) -> ClassVariableWriteNode
+ #
+ # source://prism//lib/prism/node.rb#3833
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), value: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#3818
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, value: Prism::node, operator_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#3841
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#3887
+ sig { override.returns(String) }
+ def inspect; end
+
+ # The name of the class variable, which is a `@@` followed by an [identifier](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#identifiers).
+ #
+ # @@abc = 123 # name `@@abc`
+ #
+ # @@_test = :test # name `@@_test`
+ #
+ # source://prism//lib/prism/node.rb#3850
+ def name; end
+
+ # The location of the variable name.
+ #
+ # @@foo = :bar
+ # ^^^^^
+ #
+ # source://prism//lib/prism/node.rb#3856
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#3882
+ def operator; end
+
+ # The location of the `=` operator.
+ #
+ # @@foo = :bar
+ # ^
+ #
+ # source://prism//lib/prism/node.rb#3875
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#3892
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # The value to write to the class variable. This can be any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
+ #
+ # @@foo = :bar
+ # ^^^^
+ #
+ # @@_xyz = 123
+ # ^^^
+ #
+ # source://prism//lib/prism/node.rb#3869
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#3897
+ def type; end
+ end
+end
+
+# This represents a comment that was encountered during parsing. It is the
+# base class for all comment types.
+#
+# source://prism//lib/prism/parse_result.rb#375
+class Prism::Comment
+ abstract!
+
+ # Create a new comment object with the given location.
+ #
+ # @return [Comment] a new instance of Comment
+ #
+ # source://prism//lib/prism/parse_result.rb#380
+ sig { params(location: Prism::Location).void }
+ def initialize(location); end
+
+ # Implement the hash pattern matching interface for Comment.
+ #
+ # source://prism//lib/prism/parse_result.rb#385
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ # The location of this comment in the source.
+ #
+ # source://prism//lib/prism/parse_result.rb#377
+ sig { returns(Prism::Location) }
+ def location; end
+
+ # Returns the content of the comment by slicing it from the source code.
+ #
+ # source://prism//lib/prism/parse_result.rb#390
+ sig { returns(String) }
+ def slice; end
+
+ sig { abstract.returns(T::Boolean) }
+ def trailing?; end
+end
+
+# A compiler is a visitor that returns the value of each node as it visits.
+# This is as opposed to a visitor which will only walk the tree. This can be
+# useful when you are trying to compile a tree into a different format.
+#
+# For example, to build a representation of the tree as s-expressions, you
+# could write:
+#
+# class SExpressions < Prism::Compiler
+# def visit_arguments_node(node) = [:arguments, super]
+# def visit_call_node(node) = [:call, super]
+# def visit_integer_node(node) = [:integer]
+# def visit_program_node(node) = [:program, super]
+# end
+#
+# Prism.parse("1 + 2").value.accept(SExpressions.new)
+# # => [:program, [[[:call, [[:integer], [:arguments, [[:integer]]]]]]]]
+#
+# source://prism//lib/prism/compiler.rb#27
+class Prism::Compiler < ::Prism::Visitor
+ # Visit an individual node.
+ #
+ # source://prism//lib/prism/compiler.rb#29
+ sig { params(node: T.nilable(Prism::Node)).returns(T.untyped) }
+ def visit(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a AliasGlobalVariableNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_alias_global_variable_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a AliasMethodNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_alias_method_node(node); end
+
+ # Visit a list of nodes.
+ #
+ # source://prism//lib/prism/compiler.rb#34
+ sig { params(nodes: T::Array[T.nilable(Prism::Node)]).returns(T::Array[T.untyped]) }
+ def visit_all(nodes); end
+
+ # Visit the child nodes of the given node.
+ # Compile a AlternationPatternNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_alternation_pattern_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a AndNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_and_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ArgumentsNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_arguments_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ArrayNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_array_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ArrayPatternNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_array_pattern_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a AssocNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_assoc_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a AssocSplatNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_assoc_splat_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a BackReferenceReadNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_back_reference_read_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a BeginNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_begin_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a BlockArgumentNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_block_argument_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a BlockLocalVariableNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_block_local_variable_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a BlockNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_block_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a BlockParameterNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_block_parameter_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a BlockParametersNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_block_parameters_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a BreakNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_break_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a CallAndWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_call_and_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a CallNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_call_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a CallOperatorWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_call_operator_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a CallOrWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_call_or_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a CallTargetNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_call_target_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a CapturePatternNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_capture_pattern_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a CaseMatchNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_case_match_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a CaseNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_case_node(node); end
+
+ # Visit the child nodes of the given node.
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ sig { params(node: Prism::Node).returns(T::Array[T.untyped]) }
+ def visit_child_nodes(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ClassNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_class_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ClassVariableAndWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_class_variable_and_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ClassVariableOperatorWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_class_variable_operator_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ClassVariableOrWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_class_variable_or_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ClassVariableReadNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_class_variable_read_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ClassVariableTargetNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_class_variable_target_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ClassVariableWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_class_variable_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ConstantAndWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_constant_and_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ConstantOperatorWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_constant_operator_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ConstantOrWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_constant_or_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ConstantPathAndWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_constant_path_and_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ConstantPathNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_constant_path_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ConstantPathOperatorWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_constant_path_operator_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ConstantPathOrWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_constant_path_or_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ConstantPathTargetNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_constant_path_target_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ConstantPathWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_constant_path_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ConstantReadNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_constant_read_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ConstantTargetNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_constant_target_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ConstantWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_constant_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a DefNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_def_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a DefinedNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_defined_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ElseNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_else_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a EmbeddedStatementsNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_embedded_statements_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a EmbeddedVariableNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_embedded_variable_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a EnsureNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_ensure_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a FalseNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_false_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a FindPatternNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_find_pattern_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a FlipFlopNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_flip_flop_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a FloatNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_float_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ForNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_for_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ForwardingArgumentsNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_forwarding_arguments_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ForwardingParameterNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_forwarding_parameter_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ForwardingSuperNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_forwarding_super_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a GlobalVariableAndWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_global_variable_and_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a GlobalVariableOperatorWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_global_variable_operator_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a GlobalVariableOrWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_global_variable_or_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a GlobalVariableReadNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_global_variable_read_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a GlobalVariableTargetNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_global_variable_target_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a GlobalVariableWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_global_variable_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a HashNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_hash_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a HashPatternNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_hash_pattern_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a IfNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_if_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ImaginaryNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_imaginary_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ImplicitNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_implicit_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ImplicitRestNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_implicit_rest_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a InNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_in_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a IndexAndWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_index_and_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a IndexOperatorWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_index_operator_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a IndexOrWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_index_or_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a IndexTargetNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_index_target_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a InstanceVariableAndWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_instance_variable_and_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a InstanceVariableOperatorWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_instance_variable_operator_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a InstanceVariableOrWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_instance_variable_or_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a InstanceVariableReadNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_instance_variable_read_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a InstanceVariableTargetNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_instance_variable_target_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a InstanceVariableWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_instance_variable_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a IntegerNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_integer_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a InterpolatedMatchLastLineNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_interpolated_match_last_line_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a InterpolatedRegularExpressionNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_interpolated_regular_expression_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a InterpolatedStringNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_interpolated_string_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a InterpolatedSymbolNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_interpolated_symbol_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a InterpolatedXStringNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_interpolated_x_string_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ItLocalVariableReadNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_it_local_variable_read_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ItParametersNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_it_parameters_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a KeywordHashNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_keyword_hash_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a KeywordRestParameterNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_keyword_rest_parameter_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a LambdaNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_lambda_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a LocalVariableAndWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_local_variable_and_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a LocalVariableOperatorWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_local_variable_operator_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a LocalVariableOrWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_local_variable_or_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a LocalVariableReadNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_local_variable_read_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a LocalVariableTargetNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_local_variable_target_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a LocalVariableWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_local_variable_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a MatchLastLineNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_match_last_line_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a MatchPredicateNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_match_predicate_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a MatchRequiredNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_match_required_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a MatchWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_match_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a MissingNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_missing_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ModuleNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_module_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a MultiTargetNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_multi_target_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a MultiWriteNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_multi_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a NextNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_next_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a NilNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_nil_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a NoKeywordsParameterNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_no_keywords_parameter_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a NumberedParametersNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_numbered_parameters_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a NumberedReferenceReadNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_numbered_reference_read_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a OptionalKeywordParameterNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_optional_keyword_parameter_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a OptionalParameterNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_optional_parameter_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a OrNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_or_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ParametersNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_parameters_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ParenthesesNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_parentheses_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a PinnedExpressionNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_pinned_expression_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a PinnedVariableNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_pinned_variable_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a PostExecutionNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_post_execution_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a PreExecutionNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_pre_execution_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ProgramNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_program_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a RangeNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_range_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a RationalNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_rational_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a RedoNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_redo_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a RegularExpressionNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_regular_expression_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a RequiredKeywordParameterNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_required_keyword_parameter_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a RequiredParameterNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_required_parameter_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a RescueModifierNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_rescue_modifier_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a RescueNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_rescue_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a RestParameterNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_rest_parameter_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a RetryNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_retry_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ReturnNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_return_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a SelfNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_self_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ShareableConstantNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_shareable_constant_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a SingletonClassNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_singleton_class_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a SourceEncodingNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_source_encoding_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a SourceFileNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_source_file_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a SourceLineNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_source_line_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a SplatNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_splat_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a StatementsNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_statements_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a StringNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_string_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a SuperNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_super_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a SymbolNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_symbol_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a TrueNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_true_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a UndefNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_undef_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a UnlessNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_unless_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a UntilNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_until_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a WhenNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_when_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a WhileNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_while_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a XStringNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_x_string_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a YieldNode node
+ #
+ # source://prism//lib/prism/compiler.rb#39
+ def visit_yield_node(node); end
+end
+
+# Represents the use of the `&&=` operator for assignment to a constant.
+#
+# Target &&= value
+# ^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#3916
+class Prism::ConstantAndWriteNode < ::Prism::Node
+ # Initialize a new ConstantAndWriteNode node.
+ #
+ # @return [ConstantAndWriteNode] a new instance of ConstantAndWriteNode
+ #
+ # source://prism//lib/prism/node.rb#3918
+ def initialize(source, node_id, location, flags, name, name_loc, operator_loc, value); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#4004
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#3930
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#3935
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#3945
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#3940
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> ConstantAndWriteNode
+ #
+ # source://prism//lib/prism/node.rb#3950
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#3935
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
+ #
+ # source://prism//lib/prism/node.rb#3958
+ def deconstruct_keys(keys); end
+
+ # source://prism//lib/prism/desugar_compiler.rb#182
+ def desugar; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#3988
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#3963
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#3966
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#3983
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#3973
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#3993
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#3980
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#3998
+ def type; end
+ end
+end
+
+# Represents assigning to a constant using an operator that isn't `=`.
+#
+# Target += value
+# ^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#4017
+class Prism::ConstantOperatorWriteNode < ::Prism::Node
+ # Initialize a new ConstantOperatorWriteNode node.
+ #
+ # @return [ConstantOperatorWriteNode] a new instance of ConstantOperatorWriteNode
+ #
+ # source://prism//lib/prism/node.rb#4019
+ def initialize(source, node_id, location, flags, name, name_loc, binary_operator_loc, value, binary_operator); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#4104
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#4032
+ def accept(visitor); end
+
+ # attr_reader binary_operator: Symbol
+ #
+ # source://prism//lib/prism/node.rb#4085
+ def binary_operator; end
+
+ # attr_reader binary_operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#4075
+ def binary_operator_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#4037
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#4047
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#4042
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?binary_operator_loc: Location, ?value: Prism::node, ?binary_operator: Symbol) -> ConstantOperatorWriteNode
+ #
+ # source://prism//lib/prism/node.rb#4052
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), binary_operator_loc: T.unsafe(nil), value: T.unsafe(nil), binary_operator: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#4037
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, binary_operator_loc: Location, value: Prism::node, binary_operator: Symbol }
+ #
+ # source://prism//lib/prism/node.rb#4060
+ def deconstruct_keys(keys); end
+
+ # source://prism//lib/prism/desugar_compiler.rb#194
+ def desugar; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#4088
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#4065
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#4068
+ def name_loc; end
+
+ # Returns the binary operator used to modify the receiver. This method is
+ # deprecated in favor of #binary_operator.
+ #
+ # source://prism//lib/prism/node_ext.rb#371
+ def operator; end
+
+ # Returns the location of the binary operator used to modify the receiver.
+ # This method is deprecated in favor of #binary_operator_loc.
+ #
+ # source://prism//lib/prism/node_ext.rb#378
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#4093
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#4082
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#4098
+ def type; end
+ end
+end
+
+# Represents the use of the `||=` operator for assignment to a constant.
+#
+# Target ||= value
+# ^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#4118
+class Prism::ConstantOrWriteNode < ::Prism::Node
+ # Initialize a new ConstantOrWriteNode node.
+ #
+ # @return [ConstantOrWriteNode] a new instance of ConstantOrWriteNode
+ #
+ # source://prism//lib/prism/node.rb#4120
+ def initialize(source, node_id, location, flags, name, name_loc, operator_loc, value); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#4206
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#4132
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#4137
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#4147
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#4142
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> ConstantOrWriteNode
+ #
+ # source://prism//lib/prism/node.rb#4152
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#4137
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
+ #
+ # source://prism//lib/prism/node.rb#4160
+ def deconstruct_keys(keys); end
+
+ # source://prism//lib/prism/desugar_compiler.rb#188
+ def desugar; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#4190
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#4165
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#4168
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#4185
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#4175
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#4195
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#4182
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#4200
+ def type; end
+ end
+end
+
+# Represents the use of the `&&=` operator for assignment to a constant path.
+#
+# Parent::Child &&= value
+# ^^^^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#4219
+class Prism::ConstantPathAndWriteNode < ::Prism::Node
+ # Initialize a new ConstantPathAndWriteNode node.
+ #
+ # @return [ConstantPathAndWriteNode] a new instance of ConstantPathAndWriteNode
+ #
+ # source://prism//lib/prism/node.rb#4221
+ def initialize(source, node_id, location, flags, target, operator_loc, value); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#4299
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#4232
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#4237
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#4247
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#4242
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?target: ConstantPathNode, ?operator_loc: Location, ?value: Prism::node) -> ConstantPathAndWriteNode
+ #
+ # source://prism//lib/prism/node.rb#4252
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), target: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#4237
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, target: ConstantPathNode, operator_loc: Location, value: Prism::node }
+ #
+ # source://prism//lib/prism/node.rb#4260
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#4283
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#4278
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#4268
+ def operator_loc; end
+
+ # attr_reader target: ConstantPathNode
+ #
+ # source://prism//lib/prism/node.rb#4265
+ def target; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#4288
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#4275
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#4293
+ def type; end
+ end
+end
+
+# Represents accessing a constant through a path of `::` operators.
+#
+# Foo::Bar
+# ^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#4311
+class Prism::ConstantPathNode < ::Prism::Node
+ # Initialize a new ConstantPathNode node.
+ #
+ # @return [ConstantPathNode] a new instance of ConstantPathNode
+ #
+ # source://prism//lib/prism/node.rb#4313
+ def initialize(source, node_id, location, flags, parent, name, delimiter_loc, name_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#4422
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#4325
+ def accept(visitor); end
+
+ # 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://prism//lib/prism/node_ext.rb#202
+ def child; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#4330
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#4342
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#4335
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?parent: Prism::node?, ?name: Symbol?, ?delimiter_loc: Location, ?name_loc: Location) -> ConstantPathNode
+ #
+ # source://prism//lib/prism/node.rb#4347
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), parent: T.unsafe(nil), name: T.unsafe(nil), delimiter_loc: T.unsafe(nil), name_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#4330
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, parent: Prism::node?, name: Symbol?, delimiter_loc: Location, name_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#4355
+ def deconstruct_keys(keys); end
+
+ # def delimiter: () -> String
+ #
+ # source://prism//lib/prism/node.rb#4401
+ def delimiter; end
+
+ # The location of the `::` delimiter.
+ #
+ # ::Foo
+ # ^^
+ #
+ # One::Two
+ # ^^
+ #
+ # source://prism//lib/prism/node.rb#4381
+ def delimiter_loc; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # Returns the full name of this constant path. For example: "Foo::Bar"
+ #
+ # source://prism//lib/prism/node_ext.rb#195
+ sig { returns(String) }
+ def full_name; end
+
+ # Returns the list of parts for the full name of this constant path.
+ # For example: [:Foo, :Bar]
+ #
+ # source://prism//lib/prism/node_ext.rb#173
+ sig { returns(T::Array[Symbol]) }
+ def full_name_parts; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#4406
+ sig { override.returns(String) }
+ def inspect; end
+
+ # The name of the constant being accessed. This could be `nil` in the event of a syntax error.
+ #
+ # source://prism//lib/prism/node.rb#4372
+ def name; end
+
+ # The location of the name of the constant.
+ #
+ # ::Foo
+ # ^^^
+ #
+ # One::Two
+ # ^^^
+ #
+ # source://prism//lib/prism/node.rb#4394
+ def name_loc; end
+
+ # The left-hand node of the path, if present. It can be `nil` or any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression). It will be `nil` when the constant lookup is at the root of the module tree.
+ #
+ # Foo::Bar
+ # ^^^
+ #
+ # self::Test
+ # ^^^^
+ #
+ # a.b::C
+ # ^^^
+ #
+ # source://prism//lib/prism/node.rb#4369
+ def parent; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#4411
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#4416
+ def type; end
+ end
+end
+
+# An error class raised when dynamic parts are found while computing a
+# constant path's full name. For example:
+# Foo::Bar::Baz -> does not raise because all parts of the constant path are
+# simple constants
+# var::Bar::Baz -> raises because the first part of the constant path is a
+# local variable
+#
+# source://prism//lib/prism/node_ext.rb#164
+class Prism::ConstantPathNode::DynamicPartsInConstantPathError < ::StandardError; end
+
+# An error class raised when missing nodes are found while computing a
+# constant path's full name. For example:
+# Foo:: -> raises because the constant path is missing the last part
+#
+# source://prism//lib/prism/node_ext.rb#169
+class Prism::ConstantPathNode::MissingNodesInConstantPathError < ::StandardError; end
+
+# Represents assigning to a constant path using an operator that isn't `=`.
+#
+# Parent::Child += value
+# ^^^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#4435
+class Prism::ConstantPathOperatorWriteNode < ::Prism::Node
+ # Initialize a new ConstantPathOperatorWriteNode node.
+ #
+ # @return [ConstantPathOperatorWriteNode] a new instance of ConstantPathOperatorWriteNode
+ #
+ # source://prism//lib/prism/node.rb#4437
+ def initialize(source, node_id, location, flags, target, binary_operator_loc, value, binary_operator); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#4514
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#4449
+ def accept(visitor); end
+
+ # attr_reader binary_operator: Symbol
+ #
+ # source://prism//lib/prism/node.rb#4495
+ def binary_operator; end
+
+ # attr_reader binary_operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#4485
+ def binary_operator_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#4454
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#4464
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#4459
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?target: ConstantPathNode, ?binary_operator_loc: Location, ?value: Prism::node, ?binary_operator: Symbol) -> ConstantPathOperatorWriteNode
+ #
+ # source://prism//lib/prism/node.rb#4469
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), target: T.unsafe(nil), binary_operator_loc: T.unsafe(nil), value: T.unsafe(nil), binary_operator: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#4454
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, target: ConstantPathNode, binary_operator_loc: Location, value: Prism::node, binary_operator: Symbol }
+ #
+ # source://prism//lib/prism/node.rb#4477
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#4498
+ sig { override.returns(String) }
+ def inspect; end
+
+ # Returns the binary operator used to modify the receiver. This method is
+ # deprecated in favor of #binary_operator.
+ #
+ # source://prism//lib/prism/node_ext.rb#387
+ def operator; end
+
+ # Returns the location of the binary operator used to modify the receiver.
+ # This method is deprecated in favor of #binary_operator_loc.
+ #
+ # source://prism//lib/prism/node_ext.rb#394
+ def operator_loc; end
+
+ # attr_reader target: ConstantPathNode
+ #
+ # source://prism//lib/prism/node.rb#4482
+ def target; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#4503
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#4492
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#4508
+ def type; end
+ end
+end
+
+# Represents the use of the `||=` operator for assignment to a constant path.
+#
+# Parent::Child ||= value
+# ^^^^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#4527
+class Prism::ConstantPathOrWriteNode < ::Prism::Node
+ # Initialize a new ConstantPathOrWriteNode node.
+ #
+ # @return [ConstantPathOrWriteNode] a new instance of ConstantPathOrWriteNode
+ #
+ # source://prism//lib/prism/node.rb#4529
+ def initialize(source, node_id, location, flags, target, operator_loc, value); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#4607
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#4540
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#4545
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#4555
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#4550
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?target: ConstantPathNode, ?operator_loc: Location, ?value: Prism::node) -> ConstantPathOrWriteNode
+ #
+ # source://prism//lib/prism/node.rb#4560
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), target: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#4545
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, target: ConstantPathNode, operator_loc: Location, value: Prism::node }
+ #
+ # source://prism//lib/prism/node.rb#4568
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#4591
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#4586
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#4576
+ def operator_loc; end
+
+ # attr_reader target: ConstantPathNode
+ #
+ # source://prism//lib/prism/node.rb#4573
+ def target; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#4596
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#4583
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#4601
+ def type; end
+ end
+end
+
+# Represents writing to a constant path in a context that doesn't have an explicit value.
+#
+# Foo::Foo, Bar::Bar = baz
+# ^^^^^^^^ ^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#4619
+class Prism::ConstantPathTargetNode < ::Prism::Node
+ # Initialize a new ConstantPathTargetNode node.
+ #
+ # @return [ConstantPathTargetNode] a new instance of ConstantPathTargetNode
+ #
+ # source://prism//lib/prism/node.rb#4621
+ def initialize(source, node_id, location, flags, parent, name, delimiter_loc, name_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#4709
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#4633
+ def accept(visitor); end
+
+ # 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://prism//lib/prism/node_ext.rb#243
+ def child; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#4638
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#4650
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#4643
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?parent: Prism::node?, ?name: Symbol?, ?delimiter_loc: Location, ?name_loc: Location) -> ConstantPathTargetNode
+ #
+ # source://prism//lib/prism/node.rb#4655
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), parent: T.unsafe(nil), name: T.unsafe(nil), delimiter_loc: T.unsafe(nil), name_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#4638
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, parent: Prism::node?, name: Symbol?, delimiter_loc: Location, name_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#4663
+ def deconstruct_keys(keys); end
+
+ # def delimiter: () -> String
+ #
+ # source://prism//lib/prism/node.rb#4688
+ def delimiter; end
+
+ # attr_reader delimiter_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#4674
+ def delimiter_loc; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # Returns the full name of this constant path. For example: "Foo::Bar"
+ #
+ # source://prism//lib/prism/node_ext.rb#236
+ sig { returns(String) }
+ def full_name; end
+
+ # Returns the list of parts for the full name of this constant path.
+ # For example: [:Foo, :Bar]
+ #
+ # source://prism//lib/prism/node_ext.rb#216
+ sig { returns(T::Array[Symbol]) }
+ def full_name_parts; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#4693
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol?
+ #
+ # source://prism//lib/prism/node.rb#4671
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#4681
+ def name_loc; end
+
+ # attr_reader parent: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#4668
+ def parent; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#4698
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#4703
+ def type; end
+ end
+end
+
+# Represents writing to a constant path.
+#
+# ::Foo = 1
+# ^^^^^^^^^
+#
+# Foo::Bar = 1
+# ^^^^^^^^^^^^
+#
+# ::Foo::Bar = 1
+# ^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#4728
+class Prism::ConstantPathWriteNode < ::Prism::Node
+ # Initialize a new ConstantPathWriteNode node.
+ #
+ # @return [ConstantPathWriteNode] a new instance of ConstantPathWriteNode
+ #
+ # source://prism//lib/prism/node.rb#4730
+ def initialize(source, node_id, location, flags, target, operator_loc, value); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#4820
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#4741
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#4746
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#4756
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#4751
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?target: ConstantPathNode, ?operator_loc: Location, ?value: Prism::node) -> ConstantPathWriteNode
+ #
+ # source://prism//lib/prism/node.rb#4761
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), target: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#4746
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, target: ConstantPathNode, operator_loc: Location, value: Prism::node }
+ #
+ # source://prism//lib/prism/node.rb#4769
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#4804
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#4799
+ def operator; end
+
+ # The location of the `=` operator.
+ #
+ # ::ABC = 123
+ # ^
+ #
+ # source://prism//lib/prism/node.rb#4786
+ def operator_loc; end
+
+ # A node representing the constant path being written to.
+ #
+ # Foo::Bar = 1
+ # ^^^^^^^^
+ #
+ # ::Foo = :abc
+ # ^^^^^
+ #
+ # source://prism//lib/prism/node.rb#4780
+ def target; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#4809
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # The value to write to the constant path. It can be any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
+ #
+ # FOO::BAR = :abc
+ # ^^^^
+ #
+ # source://prism//lib/prism/node.rb#4796
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#4814
+ def type; end
+ end
+end
+
+# Represents referencing a constant.
+#
+# Foo
+# ^^^
+#
+# source://prism//lib/prism/node.rb#4832
+class Prism::ConstantReadNode < ::Prism::Node
+ # Initialize a new ConstantReadNode node.
+ #
+ # @return [ConstantReadNode] a new instance of ConstantReadNode
+ #
+ # source://prism//lib/prism/node.rb#4834
+ def initialize(source, node_id, location, flags, name); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#4899
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#4843
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#4848
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#4858
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#4853
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> ConstantReadNode
+ #
+ # source://prism//lib/prism/node.rb#4863
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#4848
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
+ #
+ # source://prism//lib/prism/node.rb#4871
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # Returns the full name of this constant. For example: "Foo"
+ #
+ # source://prism//lib/prism/node_ext.rb#139
+ sig { returns(String) }
+ def full_name; end
+
+ # Returns the list of parts for the full name of this constant.
+ # For example: [:Foo]
+ #
+ # source://prism//lib/prism/node_ext.rb#134
+ sig { returns(T::Array[Symbol]) }
+ def full_name_parts; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#4883
+ sig { override.returns(String) }
+ def inspect; end
+
+ # The name of the [constant](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#constants).
+ #
+ # X # name `:X`
+ #
+ # SOME_CONSTANT # name `:SOME_CONSTANT`
+ #
+ # source://prism//lib/prism/node.rb#4880
+ def name; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#4888
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#4893
+ def type; end
+ end
+end
+
+# Represents writing to a constant in a context that doesn't have an explicit value.
+#
+# Foo, Bar = baz
+# ^^^ ^^^
+#
+# source://prism//lib/prism/node.rb#4909
+class Prism::ConstantTargetNode < ::Prism::Node
+ # Initialize a new ConstantTargetNode node.
+ #
+ # @return [ConstantTargetNode] a new instance of ConstantTargetNode
+ #
+ # source://prism//lib/prism/node.rb#4911
+ def initialize(source, node_id, location, flags, name); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#4972
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#4920
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#4925
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#4935
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#4930
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> ConstantTargetNode
+ #
+ # source://prism//lib/prism/node.rb#4940
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#4925
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
+ #
+ # source://prism//lib/prism/node.rb#4948
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # Returns the full name of this constant. For example: "Foo"
+ #
+ # source://prism//lib/prism/node_ext.rb#262
+ sig { returns(String) }
+ def full_name; end
+
+ # Returns the list of parts for the full name of this constant.
+ # For example: [:Foo]
+ #
+ # source://prism//lib/prism/node_ext.rb#257
+ sig { returns(T::Array[Symbol]) }
+ def full_name_parts; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#4956
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#4953
+ def name; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#4961
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#4966
+ def type; end
+ end
+end
+
+# Represents writing to a constant.
+#
+# Foo = 1
+# ^^^^^^^
+#
+# source://prism//lib/prism/node.rb#4982
+class Prism::ConstantWriteNode < ::Prism::Node
+ # Initialize a new ConstantWriteNode node.
+ #
+ # @return [ConstantWriteNode] a new instance of ConstantWriteNode
+ #
+ # source://prism//lib/prism/node.rb#4984
+ def initialize(source, node_id, location, flags, name, name_loc, value, operator_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#5086
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#4996
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#5001
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#5011
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#5006
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location) -> ConstantWriteNode
+ #
+ # source://prism//lib/prism/node.rb#5016
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), value: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#5001
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, value: Prism::node, operator_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#5024
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # Returns the full name of this constant. For example: "Foo"
+ #
+ # source://prism//lib/prism/node_ext.rb#152
+ sig { returns(String) }
+ def full_name; end
+
+ # Returns the list of parts for the full name of this constant.
+ # For example: [:Foo]
+ #
+ # source://prism//lib/prism/node_ext.rb#147
+ sig { returns(T::Array[Symbol]) }
+ def full_name_parts; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#5070
+ sig { override.returns(String) }
+ def inspect; end
+
+ # The name of the [constant](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#constants).
+ #
+ # Foo = :bar # name `:Foo`
+ #
+ # XYZ = 1 # name `:XYZ`
+ #
+ # source://prism//lib/prism/node.rb#5033
+ def name; end
+
+ # The location of the constant name.
+ #
+ # FOO = 1
+ # ^^^
+ #
+ # source://prism//lib/prism/node.rb#5039
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#5065
+ def operator; end
+
+ # The location of the `=` operator.
+ #
+ # FOO = :bar
+ # ^
+ #
+ # source://prism//lib/prism/node.rb#5058
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#5075
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # The value to write to the constant. It can be any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
+ #
+ # FOO = :bar
+ # ^^^^
+ #
+ # MyClass = Class.new
+ # ^^^^^^^^^
+ #
+ # source://prism//lib/prism/node.rb#5052
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#5080
+ def type; end
+ end
+end
+
+# The DSL module provides a set of methods that can be used to create prism
+# nodes in a more concise manner. For example, instead of writing:
+#
+# source = Prism::Source.for("[1]")
+#
+# Prism::ArrayNode.new(
+# source,
+# 0,
+# Prism::Location.new(source, 0, 3),
+# 0,
+# [
+# Prism::IntegerNode.new(
+# source,
+# 0,
+# Prism::Location.new(source, 1, 1),
+# Prism::IntegerBaseFlags::DECIMAL,
+# 1
+# )
+# ],
+# Prism::Location.new(source, 0, 1),
+# Prism::Location.new(source, 2, 1)
+# )
+#
+# you could instead write:
+#
+# class Builder
+# include Prism::DSL
+#
+# attr_reader :default_source
+#
+# def initialize
+# @default_source = source("[1]")
+# end
+#
+# def build
+# array_node(
+# location: location(start_offset: 0, length: 3),
+# elements: [
+# integer_node(
+# location: location(start_offset: 1, length: 1),
+# flags: integer_base_flag(:decimal),
+# value: 1
+# )
+# ],
+# opening_loc: location(start_offset: 0, length: 1),
+# closing_loc: location(start_offset: 2, length: 1)
+# )
+# end
+# end
+#
+# This is mostly helpful in the context of generating trees programmatically.
+#
+# source://prism//lib/prism/dsl.rb#61
+module Prism::DSL
+ extend ::Prism::DSL
+
+ # Create a new AliasGlobalVariableNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#77
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ new_name: T.any(Prism::GlobalVariableReadNode, Prism::BackReferenceReadNode, Prism::NumberedReferenceReadNode),
+ old_name: T.any(Prism::GlobalVariableReadNode, Prism::BackReferenceReadNode, Prism::NumberedReferenceReadNode, Prism::SymbolNode, Prism::MissingNode),
+ keyword_loc: Prism::Location
+ ).returns(Prism::AliasGlobalVariableNode)
+ end
+ def alias_global_variable_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), new_name: T.unsafe(nil), old_name: T.unsafe(nil), keyword_loc: T.unsafe(nil)); end
+
+ # Create a new AliasMethodNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#82
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ new_name: T.any(Prism::SymbolNode, Prism::InterpolatedSymbolNode),
+ old_name: T.any(Prism::SymbolNode, Prism::InterpolatedSymbolNode, Prism::GlobalVariableReadNode, Prism::MissingNode),
+ keyword_loc: Prism::Location
+ ).returns(Prism::AliasMethodNode)
+ end
+ def alias_method_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), new_name: T.unsafe(nil), old_name: T.unsafe(nil), keyword_loc: T.unsafe(nil)); end
+
+ # Create a new AlternationPatternNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#87
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ left: Prism::Node,
+ right: Prism::Node,
+ operator_loc: Prism::Location
+ ).returns(Prism::AlternationPatternNode)
+ end
+ def alternation_pattern_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), left: T.unsafe(nil), right: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # Create a new AndNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#92
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ left: Prism::Node,
+ right: Prism::Node,
+ operator_loc: Prism::Location
+ ).returns(Prism::AndNode)
+ end
+ def and_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), left: T.unsafe(nil), right: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # Create a new ArgumentsNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#97
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ arguments: T::Array[Prism::Node]
+ ).returns(Prism::ArgumentsNode)
+ end
+ def arguments_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), arguments: T.unsafe(nil)); end
+
+ # Retrieve the value of one of the ArgumentsNodeFlags flags.
+ #
+ # source://prism//lib/prism/dsl.rb#832
+ sig { params(name: Symbol).returns(Integer) }
+ def arguments_node_flag(name); end
+
+ # Create a new ArrayNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#102
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ elements: T::Array[Prism::Node],
+ opening_loc: T.nilable(Prism::Location),
+ closing_loc: T.nilable(Prism::Location)
+ ).returns(Prism::ArrayNode)
+ end
+ def array_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), elements: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # Retrieve the value of one of the ArrayNodeFlags flags.
+ #
+ # source://prism//lib/prism/dsl.rb#842
+ sig { params(name: Symbol).returns(Integer) }
+ def array_node_flag(name); end
+
+ # Create a new ArrayPatternNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#107
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ constant: T.nilable(Prism::Node),
+ requireds: T::Array[Prism::Node],
+ rest: T.nilable(Prism::Node),
+ posts: T::Array[Prism::Node],
+ opening_loc: T.nilable(Prism::Location),
+ closing_loc: T.nilable(Prism::Location)
+ ).returns(Prism::ArrayPatternNode)
+ end
+ def array_pattern_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), constant: T.unsafe(nil), requireds: T.unsafe(nil), rest: T.unsafe(nil), posts: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # Create a new AssocNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#112
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ key: Prism::Node,
+ value: Prism::Node,
+ operator_loc: T.nilable(Prism::Location)
+ ).returns(Prism::AssocNode)
+ end
+ def assoc_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), key: T.unsafe(nil), value: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # Create a new AssocSplatNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#117
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ value: T.nilable(Prism::Node),
+ operator_loc: Prism::Location
+ ).returns(Prism::AssocSplatNode)
+ end
+ def assoc_splat_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), value: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # Create a new BackReferenceReadNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#122
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol
+ ).returns(Prism::BackReferenceReadNode)
+ end
+ def back_reference_read_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil)); end
+
+ # Create a new BeginNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#127
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ begin_keyword_loc: T.nilable(Prism::Location),
+ statements: T.nilable(Prism::StatementsNode),
+ rescue_clause: T.nilable(Prism::RescueNode),
+ else_clause: T.nilable(Prism::ElseNode),
+ ensure_clause: T.nilable(Prism::EnsureNode),
+ end_keyword_loc: T.nilable(Prism::Location)
+ ).returns(Prism::BeginNode)
+ end
+ def begin_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), begin_keyword_loc: T.unsafe(nil), statements: T.unsafe(nil), rescue_clause: T.unsafe(nil), else_clause: T.unsafe(nil), ensure_clause: T.unsafe(nil), end_keyword_loc: T.unsafe(nil)); end
+
+ # Create a new BlockArgumentNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#132
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ expression: T.nilable(Prism::Node),
+ operator_loc: Prism::Location
+ ).returns(Prism::BlockArgumentNode)
+ end
+ def block_argument_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), expression: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # Create a new BlockLocalVariableNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#137
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol
+ ).returns(Prism::BlockLocalVariableNode)
+ end
+ def block_local_variable_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil)); end
+
+ # Create a new BlockNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#142
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ locals: T::Array[Symbol],
+ parameters: T.nilable(T.any(Prism::BlockParametersNode, Prism::NumberedParametersNode, Prism::ItParametersNode)),
+ body: T.nilable(T.any(Prism::StatementsNode, Prism::BeginNode)),
+ opening_loc: Prism::Location,
+ closing_loc: Prism::Location
+ ).returns(Prism::BlockNode)
+ end
+ def block_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), locals: T.unsafe(nil), parameters: T.unsafe(nil), body: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # Create a new BlockParameterNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#147
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: T.nilable(Symbol),
+ name_loc: T.nilable(Prism::Location),
+ operator_loc: Prism::Location
+ ).returns(Prism::BlockParameterNode)
+ end
+ def block_parameter_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # Create a new BlockParametersNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#152
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ parameters: T.nilable(Prism::ParametersNode),
+ locals: T::Array[Prism::BlockLocalVariableNode],
+ opening_loc: T.nilable(Prism::Location),
+ closing_loc: T.nilable(Prism::Location)
+ ).returns(Prism::BlockParametersNode)
+ end
+ def block_parameters_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), parameters: T.unsafe(nil), locals: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # Create a new BreakNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#157
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ arguments: T.nilable(Prism::ArgumentsNode),
+ keyword_loc: Prism::Location
+ ).returns(Prism::BreakNode)
+ end
+ def break_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), arguments: T.unsafe(nil), keyword_loc: T.unsafe(nil)); end
+
+ # Create a new CallAndWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#162
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: T.nilable(Prism::Node),
+ call_operator_loc: T.nilable(Prism::Location),
+ message_loc: T.nilable(Prism::Location),
+ read_name: Symbol,
+ write_name: Symbol,
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::CallAndWriteNode)
+ end
+ def call_and_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), receiver: T.unsafe(nil), call_operator_loc: T.unsafe(nil), message_loc: T.unsafe(nil), read_name: T.unsafe(nil), write_name: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # Create a new CallNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#167
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: T.nilable(Prism::Node),
+ call_operator_loc: T.nilable(Prism::Location),
+ name: Symbol,
+ message_loc: T.nilable(Prism::Location),
+ opening_loc: T.nilable(Prism::Location),
+ arguments: T.nilable(Prism::ArgumentsNode),
+ closing_loc: T.nilable(Prism::Location),
+ block: T.nilable(Prism::Node)
+ ).returns(Prism::CallNode)
+ end
+ def call_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), receiver: T.unsafe(nil), call_operator_loc: T.unsafe(nil), name: T.unsafe(nil), message_loc: T.unsafe(nil), opening_loc: T.unsafe(nil), arguments: T.unsafe(nil), closing_loc: T.unsafe(nil), block: T.unsafe(nil)); end
+
+ # Retrieve the value of one of the CallNodeFlags flags.
+ #
+ # source://prism//lib/prism/dsl.rb#850
+ sig { params(name: Symbol).returns(Integer) }
+ def call_node_flag(name); end
+
+ # Create a new CallOperatorWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#172
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: T.nilable(Prism::Node),
+ call_operator_loc: T.nilable(Prism::Location),
+ message_loc: T.nilable(Prism::Location),
+ read_name: Symbol,
+ write_name: Symbol,
+ binary_operator: Symbol,
+ binary_operator_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::CallOperatorWriteNode)
+ end
+ def call_operator_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), receiver: T.unsafe(nil), call_operator_loc: T.unsafe(nil), message_loc: T.unsafe(nil), read_name: T.unsafe(nil), write_name: T.unsafe(nil), binary_operator: T.unsafe(nil), binary_operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # Create a new CallOrWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#177
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: T.nilable(Prism::Node),
+ call_operator_loc: T.nilable(Prism::Location),
+ message_loc: T.nilable(Prism::Location),
+ read_name: Symbol,
+ write_name: Symbol,
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::CallOrWriteNode)
+ end
+ def call_or_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), receiver: T.unsafe(nil), call_operator_loc: T.unsafe(nil), message_loc: T.unsafe(nil), read_name: T.unsafe(nil), write_name: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # Create a new CallTargetNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#182
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: Prism::Node,
+ call_operator_loc: Prism::Location,
+ name: Symbol,
+ message_loc: Prism::Location
+ ).returns(Prism::CallTargetNode)
+ end
+ def call_target_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), receiver: T.unsafe(nil), call_operator_loc: T.unsafe(nil), name: T.unsafe(nil), message_loc: T.unsafe(nil)); end
+
+ # Create a new CapturePatternNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#187
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ value: Prism::Node,
+ target: Prism::Node,
+ operator_loc: Prism::Location
+ ).returns(Prism::CapturePatternNode)
+ end
+ def capture_pattern_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), value: T.unsafe(nil), target: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # Create a new CaseMatchNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#192
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ predicate: T.nilable(Prism::Node),
+ conditions: T::Array[Prism::Node],
+ else_clause: T.nilable(Prism::ElseNode),
+ case_keyword_loc: Prism::Location,
+ end_keyword_loc: Prism::Location
+ ).returns(Prism::CaseMatchNode)
+ end
+ def case_match_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), predicate: T.unsafe(nil), conditions: T.unsafe(nil), else_clause: T.unsafe(nil), case_keyword_loc: T.unsafe(nil), end_keyword_loc: T.unsafe(nil)); end
+
+ # Create a new CaseNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#197
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ predicate: T.nilable(Prism::Node),
+ conditions: T::Array[Prism::Node],
+ else_clause: T.nilable(Prism::ElseNode),
+ case_keyword_loc: Prism::Location,
+ end_keyword_loc: Prism::Location
+ ).returns(Prism::CaseNode)
+ end
+ def case_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), predicate: T.unsafe(nil), conditions: T.unsafe(nil), else_clause: T.unsafe(nil), case_keyword_loc: T.unsafe(nil), end_keyword_loc: T.unsafe(nil)); end
+
+ # Create a new ClassNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#202
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ locals: T::Array[Symbol],
+ class_keyword_loc: Prism::Location,
+ constant_path: Prism::Node,
+ inheritance_operator_loc: T.nilable(Prism::Location),
+ superclass: T.nilable(Prism::Node),
+ body: T.nilable(Prism::Node),
+ end_keyword_loc: Prism::Location,
+ name: Symbol
+ ).returns(Prism::ClassNode)
+ end
+ def class_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), locals: T.unsafe(nil), class_keyword_loc: T.unsafe(nil), constant_path: T.unsafe(nil), inheritance_operator_loc: T.unsafe(nil), superclass: T.unsafe(nil), body: T.unsafe(nil), end_keyword_loc: T.unsafe(nil), name: T.unsafe(nil)); end
+
+ # Create a new ClassVariableAndWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#207
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ name_loc: Prism::Location,
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::ClassVariableAndWriteNode)
+ end
+ def class_variable_and_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # Create a new ClassVariableOperatorWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#212
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ name_loc: Prism::Location,
+ binary_operator_loc: Prism::Location,
+ value: Prism::Node,
+ binary_operator: Symbol
+ ).returns(Prism::ClassVariableOperatorWriteNode)
+ end
+ def class_variable_operator_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), binary_operator_loc: T.unsafe(nil), value: T.unsafe(nil), binary_operator: T.unsafe(nil)); end
+
+ # Create a new ClassVariableOrWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#217
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ name_loc: Prism::Location,
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::ClassVariableOrWriteNode)
+ end
+ def class_variable_or_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # Create a new ClassVariableReadNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#222
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol
+ ).returns(Prism::ClassVariableReadNode)
+ end
+ def class_variable_read_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil)); end
+
+ # Create a new ClassVariableTargetNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#227
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol
+ ).returns(Prism::ClassVariableTargetNode)
+ end
+ def class_variable_target_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil)); end
+
+ # Create a new ClassVariableWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#232
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ name_loc: Prism::Location,
+ value: Prism::Node,
+ operator_loc: Prism::Location
+ ).returns(Prism::ClassVariableWriteNode)
+ end
+ def class_variable_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), value: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # Create a new ConstantAndWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#237
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ name_loc: Prism::Location,
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::ConstantAndWriteNode)
+ end
+ def constant_and_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # Create a new ConstantOperatorWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#242
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ name_loc: Prism::Location,
+ binary_operator_loc: Prism::Location,
+ value: Prism::Node,
+ binary_operator: Symbol
+ ).returns(Prism::ConstantOperatorWriteNode)
+ end
+ def constant_operator_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), binary_operator_loc: T.unsafe(nil), value: T.unsafe(nil), binary_operator: T.unsafe(nil)); end
+
+ # Create a new ConstantOrWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#247
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ name_loc: Prism::Location,
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::ConstantOrWriteNode)
+ end
+ def constant_or_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # Create a new ConstantPathAndWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#252
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ target: Prism::ConstantPathNode,
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::ConstantPathAndWriteNode)
+ end
+ def constant_path_and_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), target: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # Create a new ConstantPathNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#257
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ parent: T.nilable(Prism::Node),
+ name: T.nilable(Symbol),
+ delimiter_loc: Prism::Location,
+ name_loc: Prism::Location
+ ).returns(Prism::ConstantPathNode)
+ end
+ def constant_path_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), parent: T.unsafe(nil), name: T.unsafe(nil), delimiter_loc: T.unsafe(nil), name_loc: T.unsafe(nil)); end
+
+ # Create a new ConstantPathOperatorWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#262
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ target: Prism::ConstantPathNode,
+ binary_operator_loc: Prism::Location,
+ value: Prism::Node,
+ binary_operator: Symbol
+ ).returns(Prism::ConstantPathOperatorWriteNode)
+ end
+ def constant_path_operator_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), target: T.unsafe(nil), binary_operator_loc: T.unsafe(nil), value: T.unsafe(nil), binary_operator: T.unsafe(nil)); end
+
+ # Create a new ConstantPathOrWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#267
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ target: Prism::ConstantPathNode,
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::ConstantPathOrWriteNode)
+ end
+ def constant_path_or_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), target: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # Create a new ConstantPathTargetNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#272
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ parent: T.nilable(Prism::Node),
+ name: T.nilable(Symbol),
+ delimiter_loc: Prism::Location,
+ name_loc: Prism::Location
+ ).returns(Prism::ConstantPathTargetNode)
+ end
+ def constant_path_target_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), parent: T.unsafe(nil), name: T.unsafe(nil), delimiter_loc: T.unsafe(nil), name_loc: T.unsafe(nil)); end
+
+ # Create a new ConstantPathWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#277
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ target: Prism::ConstantPathNode,
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::ConstantPathWriteNode)
+ end
+ def constant_path_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), target: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # Create a new ConstantReadNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#282
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol
+ ).returns(Prism::ConstantReadNode)
+ end
+ def constant_read_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil)); end
+
+ # Create a new ConstantTargetNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#287
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol
+ ).returns(Prism::ConstantTargetNode)
+ end
+ def constant_target_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil)); end
+
+ # Create a new ConstantWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#292
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ name_loc: Prism::Location,
+ value: Prism::Node,
+ operator_loc: Prism::Location
+ ).returns(Prism::ConstantWriteNode)
+ end
+ def constant_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), value: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # Create a new DefNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#297
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ name_loc: Prism::Location,
+ receiver: T.nilable(Prism::Node),
+ parameters: T.nilable(Prism::ParametersNode),
+ body: T.nilable(Prism::Node),
+ locals: T::Array[Symbol],
+ def_keyword_loc: Prism::Location,
+ operator_loc: T.nilable(Prism::Location),
+ lparen_loc: T.nilable(Prism::Location),
+ rparen_loc: T.nilable(Prism::Location),
+ equal_loc: T.nilable(Prism::Location),
+ end_keyword_loc: T.nilable(Prism::Location)
+ ).returns(Prism::DefNode)
+ end
+ def def_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), receiver: T.unsafe(nil), parameters: T.unsafe(nil), body: T.unsafe(nil), locals: T.unsafe(nil), def_keyword_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), lparen_loc: T.unsafe(nil), rparen_loc: T.unsafe(nil), equal_loc: T.unsafe(nil), end_keyword_loc: T.unsafe(nil)); end
+
+ # Create a new DefinedNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#302
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ lparen_loc: T.nilable(Prism::Location),
+ value: Prism::Node,
+ rparen_loc: T.nilable(Prism::Location),
+ keyword_loc: Prism::Location
+ ).returns(Prism::DefinedNode)
+ end
+ def defined_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), lparen_loc: T.unsafe(nil), value: T.unsafe(nil), rparen_loc: T.unsafe(nil), keyword_loc: T.unsafe(nil)); end
+
+ # Create a new ElseNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#307
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ else_keyword_loc: Prism::Location,
+ statements: T.nilable(Prism::StatementsNode),
+ end_keyword_loc: T.nilable(Prism::Location)
+ ).returns(Prism::ElseNode)
+ end
+ def else_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), else_keyword_loc: T.unsafe(nil), statements: T.unsafe(nil), end_keyword_loc: T.unsafe(nil)); end
+
+ # Create a new EmbeddedStatementsNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#312
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: Prism::Location,
+ statements: T.nilable(Prism::StatementsNode),
+ closing_loc: Prism::Location
+ ).returns(Prism::EmbeddedStatementsNode)
+ end
+ def embedded_statements_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), opening_loc: T.unsafe(nil), statements: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # Create a new EmbeddedVariableNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#317
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ operator_loc: Prism::Location,
+ variable: Prism::Node
+ ).returns(Prism::EmbeddedVariableNode)
+ end
+ def embedded_variable_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), operator_loc: T.unsafe(nil), variable: T.unsafe(nil)); end
+
+ # Retrieve the value of one of the EncodingFlags flags.
+ #
+ # source://prism//lib/prism/dsl.rb#861
+ sig { params(name: Symbol).returns(Integer) }
+ def encoding_flag(name); end
+
+ # Create a new EnsureNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#322
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ ensure_keyword_loc: Prism::Location,
+ statements: T.nilable(Prism::StatementsNode),
+ end_keyword_loc: Prism::Location
+ ).returns(Prism::EnsureNode)
+ end
+ def ensure_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), ensure_keyword_loc: T.unsafe(nil), statements: T.unsafe(nil), end_keyword_loc: T.unsafe(nil)); end
+
+ # Create a new FalseNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#327
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer
+ ).returns(Prism::FalseNode)
+ end
+ def false_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # Create a new FindPatternNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#332
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ constant: T.nilable(Prism::Node),
+ left: Prism::Node,
+ requireds: T::Array[Prism::Node],
+ right: Prism::Node,
+ opening_loc: T.nilable(Prism::Location),
+ closing_loc: T.nilable(Prism::Location)
+ ).returns(Prism::FindPatternNode)
+ end
+ def find_pattern_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), constant: T.unsafe(nil), left: T.unsafe(nil), requireds: T.unsafe(nil), right: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # Create a new FlipFlopNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#337
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ left: T.nilable(Prism::Node),
+ right: T.nilable(Prism::Node),
+ operator_loc: Prism::Location
+ ).returns(Prism::FlipFlopNode)
+ end
+ def flip_flop_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), left: T.unsafe(nil), right: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # Create a new FloatNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#342
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ value: Float
+ ).returns(Prism::FloatNode)
+ end
+ def float_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # Create a new ForNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#347
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ index: Prism::Node,
+ collection: Prism::Node,
+ statements: T.nilable(Prism::StatementsNode),
+ for_keyword_loc: Prism::Location,
+ in_keyword_loc: Prism::Location,
+ do_keyword_loc: T.nilable(Prism::Location),
+ end_keyword_loc: Prism::Location
+ ).returns(Prism::ForNode)
+ end
+ def for_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), index: T.unsafe(nil), collection: T.unsafe(nil), statements: T.unsafe(nil), for_keyword_loc: T.unsafe(nil), in_keyword_loc: T.unsafe(nil), do_keyword_loc: T.unsafe(nil), end_keyword_loc: T.unsafe(nil)); end
+
+ # Create a new ForwardingArgumentsNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#352
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer
+ ).returns(Prism::ForwardingArgumentsNode)
+ end
+ def forwarding_arguments_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # Create a new ForwardingParameterNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#357
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer
+ ).returns(Prism::ForwardingParameterNode)
+ end
+ def forwarding_parameter_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # Create a new ForwardingSuperNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#362
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ block: T.nilable(Prism::BlockNode)
+ ).returns(Prism::ForwardingSuperNode)
+ end
+ def forwarding_super_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), block: T.unsafe(nil)); end
+
+ # Create a new GlobalVariableAndWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#367
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ name_loc: Prism::Location,
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::GlobalVariableAndWriteNode)
+ end
+ def global_variable_and_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # Create a new GlobalVariableOperatorWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#372
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ name_loc: Prism::Location,
+ binary_operator_loc: Prism::Location,
+ value: Prism::Node,
+ binary_operator: Symbol
+ ).returns(Prism::GlobalVariableOperatorWriteNode)
+ end
+ def global_variable_operator_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), binary_operator_loc: T.unsafe(nil), value: T.unsafe(nil), binary_operator: T.unsafe(nil)); end
+
+ # Create a new GlobalVariableOrWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#377
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ name_loc: Prism::Location,
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::GlobalVariableOrWriteNode)
+ end
+ def global_variable_or_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # Create a new GlobalVariableReadNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#382
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol
+ ).returns(Prism::GlobalVariableReadNode)
+ end
+ def global_variable_read_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil)); end
+
+ # Create a new GlobalVariableTargetNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#387
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol
+ ).returns(Prism::GlobalVariableTargetNode)
+ end
+ def global_variable_target_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil)); end
+
+ # Create a new GlobalVariableWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#392
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ name_loc: Prism::Location,
+ value: Prism::Node,
+ operator_loc: Prism::Location
+ ).returns(Prism::GlobalVariableWriteNode)
+ end
+ def global_variable_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), value: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # Create a new HashNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#397
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: Prism::Location,
+ elements: T::Array[T.any(Prism::AssocNode, Prism::AssocSplatNode)],
+ closing_loc: Prism::Location
+ ).returns(Prism::HashNode)
+ end
+ def hash_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), opening_loc: T.unsafe(nil), elements: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # Create a new HashPatternNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#402
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ constant: T.nilable(Prism::Node),
+ elements: T::Array[Prism::AssocNode],
+ rest: T.nilable(T.any(Prism::AssocSplatNode, Prism::NoKeywordsParameterNode)),
+ opening_loc: T.nilable(Prism::Location),
+ closing_loc: T.nilable(Prism::Location)
+ ).returns(Prism::HashPatternNode)
+ end
+ def hash_pattern_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), constant: T.unsafe(nil), elements: T.unsafe(nil), rest: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # Create a new IfNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#407
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ if_keyword_loc: T.nilable(Prism::Location),
+ predicate: Prism::Node,
+ then_keyword_loc: T.nilable(Prism::Location),
+ statements: T.nilable(Prism::StatementsNode),
+ subsequent: T.nilable(T.any(Prism::ElseNode, Prism::IfNode)),
+ end_keyword_loc: T.nilable(Prism::Location)
+ ).returns(Prism::IfNode)
+ end
+ def if_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), if_keyword_loc: T.unsafe(nil), predicate: T.unsafe(nil), then_keyword_loc: T.unsafe(nil), statements: T.unsafe(nil), subsequent: T.unsafe(nil), end_keyword_loc: T.unsafe(nil)); end
+
+ # Create a new ImaginaryNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#412
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ numeric: T.any(Prism::FloatNode, Prism::IntegerNode, Prism::RationalNode)
+ ).returns(Prism::ImaginaryNode)
+ end
+ def imaginary_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), numeric: T.unsafe(nil)); end
+
+ # Create a new ImplicitNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#417
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ value: Prism::Node
+ ).returns(Prism::ImplicitNode)
+ end
+ def implicit_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # Create a new ImplicitRestNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#422
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer
+ ).returns(Prism::ImplicitRestNode)
+ end
+ def implicit_rest_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # Create a new InNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#427
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ pattern: Prism::Node,
+ statements: T.nilable(Prism::StatementsNode),
+ in_loc: Prism::Location,
+ then_loc: T.nilable(Prism::Location)
+ ).returns(Prism::InNode)
+ end
+ def in_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), pattern: T.unsafe(nil), statements: T.unsafe(nil), in_loc: T.unsafe(nil), then_loc: T.unsafe(nil)); end
+
+ # Create a new IndexAndWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#432
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: T.nilable(Prism::Node),
+ call_operator_loc: T.nilable(Prism::Location),
+ opening_loc: Prism::Location,
+ arguments: T.nilable(Prism::ArgumentsNode),
+ closing_loc: Prism::Location,
+ block: T.nilable(Prism::Node),
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::IndexAndWriteNode)
+ end
+ def index_and_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), receiver: T.unsafe(nil), call_operator_loc: T.unsafe(nil), opening_loc: T.unsafe(nil), arguments: T.unsafe(nil), closing_loc: T.unsafe(nil), block: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # Create a new IndexOperatorWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#437
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: T.nilable(Prism::Node),
+ call_operator_loc: T.nilable(Prism::Location),
+ opening_loc: Prism::Location,
+ arguments: T.nilable(Prism::ArgumentsNode),
+ closing_loc: Prism::Location,
+ block: T.nilable(Prism::Node),
+ binary_operator: Symbol,
+ binary_operator_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::IndexOperatorWriteNode)
+ end
+ def index_operator_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), receiver: T.unsafe(nil), call_operator_loc: T.unsafe(nil), opening_loc: T.unsafe(nil), arguments: T.unsafe(nil), closing_loc: T.unsafe(nil), block: T.unsafe(nil), binary_operator: T.unsafe(nil), binary_operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # Create a new IndexOrWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#442
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: T.nilable(Prism::Node),
+ call_operator_loc: T.nilable(Prism::Location),
+ opening_loc: Prism::Location,
+ arguments: T.nilable(Prism::ArgumentsNode),
+ closing_loc: Prism::Location,
+ block: T.nilable(Prism::Node),
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::IndexOrWriteNode)
+ end
+ def index_or_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), receiver: T.unsafe(nil), call_operator_loc: T.unsafe(nil), opening_loc: T.unsafe(nil), arguments: T.unsafe(nil), closing_loc: T.unsafe(nil), block: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # Create a new IndexTargetNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#447
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: Prism::Node,
+ opening_loc: Prism::Location,
+ arguments: T.nilable(Prism::ArgumentsNode),
+ closing_loc: Prism::Location,
+ block: T.nilable(Prism::Node)
+ ).returns(Prism::IndexTargetNode)
+ end
+ def index_target_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), receiver: T.unsafe(nil), opening_loc: T.unsafe(nil), arguments: T.unsafe(nil), closing_loc: T.unsafe(nil), block: T.unsafe(nil)); end
+
+ # Create a new InstanceVariableAndWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#452
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ name_loc: Prism::Location,
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::InstanceVariableAndWriteNode)
+ end
+ def instance_variable_and_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # Create a new InstanceVariableOperatorWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#457
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ name_loc: Prism::Location,
+ binary_operator_loc: Prism::Location,
+ value: Prism::Node,
+ binary_operator: Symbol
+ ).returns(Prism::InstanceVariableOperatorWriteNode)
+ end
+ def instance_variable_operator_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), binary_operator_loc: T.unsafe(nil), value: T.unsafe(nil), binary_operator: T.unsafe(nil)); end
+
+ # Create a new InstanceVariableOrWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#462
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ name_loc: Prism::Location,
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::InstanceVariableOrWriteNode)
+ end
+ def instance_variable_or_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # Create a new InstanceVariableReadNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#467
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol
+ ).returns(Prism::InstanceVariableReadNode)
+ end
+ def instance_variable_read_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil)); end
+
+ # Create a new InstanceVariableTargetNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#472
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol
+ ).returns(Prism::InstanceVariableTargetNode)
+ end
+ def instance_variable_target_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil)); end
+
+ # Create a new InstanceVariableWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#477
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ name_loc: Prism::Location,
+ value: Prism::Node,
+ operator_loc: Prism::Location
+ ).returns(Prism::InstanceVariableWriteNode)
+ end
+ def instance_variable_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), value: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # Retrieve the value of one of the IntegerBaseFlags flags.
+ #
+ # source://prism//lib/prism/dsl.rb#870
+ sig { params(name: Symbol).returns(Integer) }
+ def integer_base_flag(name); end
+
+ # Create a new IntegerNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#482
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ value: Integer
+ ).returns(Prism::IntegerNode)
+ end
+ def integer_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # Create a new InterpolatedMatchLastLineNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#487
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: Prism::Location,
+ parts: T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode)],
+ closing_loc: Prism::Location
+ ).returns(Prism::InterpolatedMatchLastLineNode)
+ end
+ def interpolated_match_last_line_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), opening_loc: T.unsafe(nil), parts: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # Create a new InterpolatedRegularExpressionNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#492
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: Prism::Location,
+ parts: T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode)],
+ closing_loc: Prism::Location
+ ).returns(Prism::InterpolatedRegularExpressionNode)
+ end
+ def interpolated_regular_expression_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), opening_loc: T.unsafe(nil), parts: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # Create a new InterpolatedStringNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#497
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: T.nilable(Prism::Location),
+ parts: T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode, Prism::InterpolatedStringNode)],
+ closing_loc: T.nilable(Prism::Location)
+ ).returns(Prism::InterpolatedStringNode)
+ end
+ def interpolated_string_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), opening_loc: T.unsafe(nil), parts: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # Retrieve the value of one of the InterpolatedStringNodeFlags flags.
+ #
+ # source://prism//lib/prism/dsl.rb#881
+ sig { params(name: Symbol).returns(Integer) }
+ def interpolated_string_node_flag(name); end
+
+ # Create a new InterpolatedSymbolNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#502
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: T.nilable(Prism::Location),
+ parts: T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode)],
+ closing_loc: T.nilable(Prism::Location)
+ ).returns(Prism::InterpolatedSymbolNode)
+ end
+ def interpolated_symbol_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), opening_loc: T.unsafe(nil), parts: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # Create a new InterpolatedXStringNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#507
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: Prism::Location,
+ parts: T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode)],
+ closing_loc: Prism::Location
+ ).returns(Prism::InterpolatedXStringNode)
+ end
+ def interpolated_x_string_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), opening_loc: T.unsafe(nil), parts: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # Create a new ItLocalVariableReadNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#512
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer
+ ).returns(Prism::ItLocalVariableReadNode)
+ end
+ def it_local_variable_read_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # Create a new ItParametersNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#517
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer
+ ).returns(Prism::ItParametersNode)
+ end
+ def it_parameters_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # Create a new KeywordHashNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#522
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ elements: T::Array[T.any(Prism::AssocNode, Prism::AssocSplatNode)]
+ ).returns(Prism::KeywordHashNode)
+ end
+ def keyword_hash_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), elements: T.unsafe(nil)); end
+
+ # Retrieve the value of one of the KeywordHashNodeFlags flags.
+ #
+ # source://prism//lib/prism/dsl.rb#890
+ sig { params(name: Symbol).returns(Integer) }
+ def keyword_hash_node_flag(name); end
+
+ # Create a new KeywordRestParameterNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#527
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: T.nilable(Symbol),
+ name_loc: T.nilable(Prism::Location),
+ operator_loc: Prism::Location
+ ).returns(Prism::KeywordRestParameterNode)
+ end
+ def keyword_rest_parameter_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # Create a new LambdaNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#532
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ locals: T::Array[Symbol],
+ operator_loc: Prism::Location,
+ opening_loc: Prism::Location,
+ closing_loc: Prism::Location,
+ parameters: T.nilable(Prism::Node),
+ body: T.nilable(Prism::Node)
+ ).returns(Prism::LambdaNode)
+ end
+ def lambda_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), locals: T.unsafe(nil), operator_loc: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), parameters: T.unsafe(nil), body: T.unsafe(nil)); end
+
+ # Create a new LocalVariableAndWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#537
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name_loc: Prism::Location,
+ operator_loc: Prism::Location,
+ value: Prism::Node,
+ name: Symbol,
+ depth: Integer
+ ).returns(Prism::LocalVariableAndWriteNode)
+ end
+ def local_variable_and_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil), name: T.unsafe(nil), depth: T.unsafe(nil)); end
+
+ # Create a new LocalVariableOperatorWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#542
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name_loc: Prism::Location,
+ binary_operator_loc: Prism::Location,
+ value: Prism::Node,
+ name: Symbol,
+ binary_operator: Symbol,
+ depth: Integer
+ ).returns(Prism::LocalVariableOperatorWriteNode)
+ end
+ def local_variable_operator_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name_loc: T.unsafe(nil), binary_operator_loc: T.unsafe(nil), value: T.unsafe(nil), name: T.unsafe(nil), binary_operator: T.unsafe(nil), depth: T.unsafe(nil)); end
+
+ # Create a new LocalVariableOrWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#547
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name_loc: Prism::Location,
+ operator_loc: Prism::Location,
+ value: Prism::Node,
+ name: Symbol,
+ depth: Integer
+ ).returns(Prism::LocalVariableOrWriteNode)
+ end
+ def local_variable_or_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil), name: T.unsafe(nil), depth: T.unsafe(nil)); end
+
+ # Create a new LocalVariableReadNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#552
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ depth: Integer
+ ).returns(Prism::LocalVariableReadNode)
+ end
+ def local_variable_read_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), depth: T.unsafe(nil)); end
+
+ # Create a new LocalVariableTargetNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#557
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ depth: Integer
+ ).returns(Prism::LocalVariableTargetNode)
+ end
+ def local_variable_target_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), depth: T.unsafe(nil)); end
+
+ # Create a new LocalVariableWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#562
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ depth: Integer,
+ name_loc: Prism::Location,
+ value: Prism::Node,
+ operator_loc: Prism::Location
+ ).returns(Prism::LocalVariableWriteNode)
+ end
+ def local_variable_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), depth: T.unsafe(nil), name_loc: T.unsafe(nil), value: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # Create a new Location object.
+ #
+ # source://prism//lib/prism/dsl.rb#72
+ sig { params(source: Prism::Source, start_offset: Integer, length: Integer).returns(Prism::Location) }
+ def location(source: T.unsafe(nil), start_offset: T.unsafe(nil), length: T.unsafe(nil)); end
+
+ # Retrieve the value of one of the LoopFlags flags.
+ #
+ # source://prism//lib/prism/dsl.rb#898
+ sig { params(name: Symbol).returns(Integer) }
+ def loop_flag(name); end
+
+ # Create a new MatchLastLineNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#567
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: Prism::Location,
+ content_loc: Prism::Location,
+ closing_loc: Prism::Location,
+ unescaped: String
+ ).returns(Prism::MatchLastLineNode)
+ end
+ def match_last_line_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), opening_loc: T.unsafe(nil), content_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), unescaped: T.unsafe(nil)); end
+
+ # Create a new MatchPredicateNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#572
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ value: Prism::Node,
+ pattern: Prism::Node,
+ operator_loc: Prism::Location
+ ).returns(Prism::MatchPredicateNode)
+ end
+ def match_predicate_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), value: T.unsafe(nil), pattern: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # Create a new MatchRequiredNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#577
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ value: Prism::Node,
+ pattern: Prism::Node,
+ operator_loc: Prism::Location
+ ).returns(Prism::MatchRequiredNode)
+ end
+ def match_required_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), value: T.unsafe(nil), pattern: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # Create a new MatchWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#582
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ call: Prism::CallNode,
+ targets: T::Array[Prism::LocalVariableTargetNode]
+ ).returns(Prism::MatchWriteNode)
+ end
+ def match_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), call: T.unsafe(nil), targets: T.unsafe(nil)); end
+
+ # Create a new MissingNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#587
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer
+ ).returns(Prism::MissingNode)
+ end
+ def missing_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # Create a new ModuleNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#592
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ locals: T::Array[Symbol],
+ module_keyword_loc: Prism::Location,
+ constant_path: Prism::Node,
+ body: T.nilable(Prism::Node),
+ end_keyword_loc: Prism::Location,
+ name: Symbol
+ ).returns(Prism::ModuleNode)
+ end
+ def module_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), locals: T.unsafe(nil), module_keyword_loc: T.unsafe(nil), constant_path: T.unsafe(nil), body: T.unsafe(nil), end_keyword_loc: T.unsafe(nil), name: T.unsafe(nil)); end
+
+ # Create a new MultiTargetNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#597
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ lefts: T::Array[T.any(Prism::LocalVariableTargetNode, Prism::InstanceVariableTargetNode, Prism::ClassVariableTargetNode, Prism::GlobalVariableTargetNode, Prism::ConstantTargetNode, Prism::ConstantPathTargetNode, Prism::CallTargetNode, Prism::IndexTargetNode, Prism::MultiTargetNode, Prism::RequiredParameterNode, Prism::BackReferenceReadNode, Prism::NumberedReferenceReadNode)],
+ rest: T.nilable(T.any(Prism::ImplicitRestNode, Prism::SplatNode)),
+ rights: T::Array[T.any(Prism::LocalVariableTargetNode, Prism::InstanceVariableTargetNode, Prism::ClassVariableTargetNode, Prism::GlobalVariableTargetNode, Prism::ConstantTargetNode, Prism::ConstantPathTargetNode, Prism::CallTargetNode, Prism::IndexTargetNode, Prism::MultiTargetNode, Prism::RequiredParameterNode, Prism::BackReferenceReadNode)],
+ lparen_loc: T.nilable(Prism::Location),
+ rparen_loc: T.nilable(Prism::Location)
+ ).returns(Prism::MultiTargetNode)
+ end
+ def multi_target_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), lefts: T.unsafe(nil), rest: T.unsafe(nil), rights: T.unsafe(nil), lparen_loc: T.unsafe(nil), rparen_loc: T.unsafe(nil)); end
+
+ # Create a new MultiWriteNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#602
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ lefts: T::Array[T.any(Prism::LocalVariableTargetNode, Prism::InstanceVariableTargetNode, Prism::ClassVariableTargetNode, Prism::GlobalVariableTargetNode, Prism::ConstantTargetNode, Prism::ConstantPathTargetNode, Prism::CallTargetNode, Prism::IndexTargetNode, Prism::MultiTargetNode)],
+ rest: T.nilable(T.any(Prism::ImplicitRestNode, Prism::SplatNode)),
+ rights: T::Array[T.any(Prism::LocalVariableTargetNode, Prism::InstanceVariableTargetNode, Prism::ClassVariableTargetNode, Prism::GlobalVariableTargetNode, Prism::ConstantTargetNode, Prism::ConstantPathTargetNode, Prism::CallTargetNode, Prism::IndexTargetNode, Prism::MultiTargetNode)],
+ lparen_loc: T.nilable(Prism::Location),
+ rparen_loc: T.nilable(Prism::Location),
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::MultiWriteNode)
+ end
+ def multi_write_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), lefts: T.unsafe(nil), rest: T.unsafe(nil), rights: T.unsafe(nil), lparen_loc: T.unsafe(nil), rparen_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # Create a new NextNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#607
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ arguments: T.nilable(Prism::ArgumentsNode),
+ keyword_loc: Prism::Location
+ ).returns(Prism::NextNode)
+ end
+ def next_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), arguments: T.unsafe(nil), keyword_loc: T.unsafe(nil)); end
+
+ # Create a new NilNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#612
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer
+ ).returns(Prism::NilNode)
+ end
+ def nil_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # Create a new NoKeywordsParameterNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#617
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ operator_loc: Prism::Location,
+ keyword_loc: Prism::Location
+ ).returns(Prism::NoKeywordsParameterNode)
+ end
+ def no_keywords_parameter_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), operator_loc: T.unsafe(nil), keyword_loc: T.unsafe(nil)); end
+
+ # Create a new NumberedParametersNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#622
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ maximum: Integer
+ ).returns(Prism::NumberedParametersNode)
+ end
+ def numbered_parameters_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), maximum: T.unsafe(nil)); end
+
+ # Create a new NumberedReferenceReadNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#627
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ number: Integer
+ ).returns(Prism::NumberedReferenceReadNode)
+ end
+ def numbered_reference_read_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), number: T.unsafe(nil)); end
+
+ # Create a new OptionalKeywordParameterNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#632
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ name_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::OptionalKeywordParameterNode)
+ end
+ def optional_keyword_parameter_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # Create a new OptionalParameterNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#637
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ name_loc: Prism::Location,
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::OptionalParameterNode)
+ end
+ def optional_parameter_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # Create a new OrNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#642
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ left: Prism::Node,
+ right: Prism::Node,
+ operator_loc: Prism::Location
+ ).returns(Prism::OrNode)
+ end
+ def or_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), left: T.unsafe(nil), right: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # Retrieve the value of one of the ParameterFlags flags.
+ #
+ # source://prism//lib/prism/dsl.rb#906
+ sig { params(name: Symbol).returns(Integer) }
+ def parameter_flag(name); end
+
+ # Create a new ParametersNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#647
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ requireds: T::Array[T.any(Prism::RequiredParameterNode, Prism::MultiTargetNode)],
+ optionals: T::Array[Prism::OptionalParameterNode],
+ rest: T.nilable(T.any(Prism::RestParameterNode, Prism::ImplicitRestNode)),
+ posts: T::Array[T.any(Prism::RequiredParameterNode, Prism::MultiTargetNode, Prism::KeywordRestParameterNode, Prism::NoKeywordsParameterNode, Prism::ForwardingParameterNode)],
+ keywords: T::Array[T.any(Prism::RequiredKeywordParameterNode, Prism::OptionalKeywordParameterNode)],
+ keyword_rest: T.nilable(T.any(Prism::KeywordRestParameterNode, Prism::ForwardingParameterNode, Prism::NoKeywordsParameterNode)),
+ block: T.nilable(Prism::BlockParameterNode)
+ ).returns(Prism::ParametersNode)
+ end
+ def parameters_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), requireds: T.unsafe(nil), optionals: T.unsafe(nil), rest: T.unsafe(nil), posts: T.unsafe(nil), keywords: T.unsafe(nil), keyword_rest: T.unsafe(nil), block: T.unsafe(nil)); end
+
+ # Create a new ParenthesesNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#652
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ body: T.nilable(Prism::Node),
+ opening_loc: Prism::Location,
+ closing_loc: Prism::Location
+ ).returns(Prism::ParenthesesNode)
+ end
+ def parentheses_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), body: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # Create a new PinnedExpressionNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#657
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ expression: Prism::Node,
+ operator_loc: Prism::Location,
+ lparen_loc: Prism::Location,
+ rparen_loc: Prism::Location
+ ).returns(Prism::PinnedExpressionNode)
+ end
+ def pinned_expression_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), expression: T.unsafe(nil), operator_loc: T.unsafe(nil), lparen_loc: T.unsafe(nil), rparen_loc: T.unsafe(nil)); end
+
+ # Create a new PinnedVariableNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#662
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ variable: Prism::Node,
+ operator_loc: Prism::Location
+ ).returns(Prism::PinnedVariableNode)
+ end
+ def pinned_variable_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), variable: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # Create a new PostExecutionNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#667
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ statements: T.nilable(Prism::StatementsNode),
+ keyword_loc: Prism::Location,
+ opening_loc: Prism::Location,
+ closing_loc: Prism::Location
+ ).returns(Prism::PostExecutionNode)
+ end
+ def post_execution_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), statements: T.unsafe(nil), keyword_loc: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # Create a new PreExecutionNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#672
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ statements: T.nilable(Prism::StatementsNode),
+ keyword_loc: Prism::Location,
+ opening_loc: Prism::Location,
+ closing_loc: Prism::Location
+ ).returns(Prism::PreExecutionNode)
+ end
+ def pre_execution_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), statements: T.unsafe(nil), keyword_loc: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # Create a new ProgramNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#677
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ locals: T::Array[Symbol],
+ statements: Prism::StatementsNode
+ ).returns(Prism::ProgramNode)
+ end
+ def program_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), locals: T.unsafe(nil), statements: T.unsafe(nil)); end
+
+ # Retrieve the value of one of the RangeFlags flags.
+ #
+ # source://prism//lib/prism/dsl.rb#914
+ sig { params(name: Symbol).returns(Integer) }
+ def range_flag(name); end
+
+ # Create a new RangeNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#682
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ left: T.nilable(Prism::Node),
+ right: T.nilable(Prism::Node),
+ operator_loc: Prism::Location
+ ).returns(Prism::RangeNode)
+ end
+ def range_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), left: T.unsafe(nil), right: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # Create a new RationalNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#687
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ numerator: Integer,
+ denominator: Integer
+ ).returns(Prism::RationalNode)
+ end
+ def rational_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), numerator: T.unsafe(nil), denominator: T.unsafe(nil)); end
+
+ # Create a new RedoNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#692
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer
+ ).returns(Prism::RedoNode)
+ end
+ def redo_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # Retrieve the value of one of the RegularExpressionFlags flags.
+ #
+ # source://prism//lib/prism/dsl.rb#922
+ sig { params(name: Symbol).returns(Integer) }
+ def regular_expression_flag(name); end
+
+ # Create a new RegularExpressionNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#697
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: Prism::Location,
+ content_loc: Prism::Location,
+ closing_loc: Prism::Location,
+ unescaped: String
+ ).returns(Prism::RegularExpressionNode)
+ end
+ def regular_expression_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), opening_loc: T.unsafe(nil), content_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), unescaped: T.unsafe(nil)); end
+
+ # Create a new RequiredKeywordParameterNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#702
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ name_loc: Prism::Location
+ ).returns(Prism::RequiredKeywordParameterNode)
+ end
+ def required_keyword_parameter_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil)); end
+
+ # Create a new RequiredParameterNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#707
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol
+ ).returns(Prism::RequiredParameterNode)
+ end
+ def required_parameter_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil)); end
+
+ # Create a new RescueModifierNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#712
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ expression: Prism::Node,
+ keyword_loc: Prism::Location,
+ rescue_expression: Prism::Node
+ ).returns(Prism::RescueModifierNode)
+ end
+ def rescue_modifier_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), expression: T.unsafe(nil), keyword_loc: T.unsafe(nil), rescue_expression: T.unsafe(nil)); end
+
+ # Create a new RescueNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#717
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ keyword_loc: Prism::Location,
+ exceptions: T::Array[Prism::Node],
+ operator_loc: T.nilable(Prism::Location),
+ reference: T.nilable(Prism::Node),
+ statements: T.nilable(Prism::StatementsNode),
+ subsequent: T.nilable(Prism::RescueNode)
+ ).returns(Prism::RescueNode)
+ end
+ def rescue_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), keyword_loc: T.unsafe(nil), exceptions: T.unsafe(nil), operator_loc: T.unsafe(nil), reference: T.unsafe(nil), statements: T.unsafe(nil), subsequent: T.unsafe(nil)); end
+
+ # Create a new RestParameterNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#722
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: T.nilable(Symbol),
+ name_loc: T.nilable(Prism::Location),
+ operator_loc: Prism::Location
+ ).returns(Prism::RestParameterNode)
+ end
+ def rest_parameter_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # Create a new RetryNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#727
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer
+ ).returns(Prism::RetryNode)
+ end
+ def retry_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # Create a new ReturnNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#732
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ keyword_loc: Prism::Location,
+ arguments: T.nilable(Prism::ArgumentsNode)
+ ).returns(Prism::ReturnNode)
+ end
+ def return_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), keyword_loc: T.unsafe(nil), arguments: T.unsafe(nil)); end
+
+ # Create a new SelfNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#737
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer
+ ).returns(Prism::SelfNode)
+ end
+ def self_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # Create a new ShareableConstantNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#742
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ write: T.any(Prism::ConstantWriteNode, Prism::ConstantAndWriteNode, Prism::ConstantOrWriteNode, Prism::ConstantOperatorWriteNode, Prism::ConstantPathWriteNode, Prism::ConstantPathAndWriteNode, Prism::ConstantPathOrWriteNode, Prism::ConstantPathOperatorWriteNode)
+ ).returns(Prism::ShareableConstantNode)
+ end
+ def shareable_constant_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), write: T.unsafe(nil)); end
+
+ # Retrieve the value of one of the ShareableConstantNodeFlags flags.
+ #
+ # source://prism//lib/prism/dsl.rb#940
+ sig { params(name: Symbol).returns(Integer) }
+ def shareable_constant_node_flag(name); end
+
+ # Create a new SingletonClassNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#747
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ locals: T::Array[Symbol],
+ class_keyword_loc: Prism::Location,
+ operator_loc: Prism::Location,
+ expression: Prism::Node,
+ body: T.nilable(Prism::Node),
+ end_keyword_loc: Prism::Location
+ ).returns(Prism::SingletonClassNode)
+ end
+ def singleton_class_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), locals: T.unsafe(nil), class_keyword_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), expression: T.unsafe(nil), body: T.unsafe(nil), end_keyword_loc: T.unsafe(nil)); end
+
+ # Create a new Source object.
+ #
+ # source://prism//lib/prism/dsl.rb#67
+ sig { params(string: String).returns(Prism::Source) }
+ def source(string); end
+
+ # Create a new SourceEncodingNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#752
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer
+ ).returns(Prism::SourceEncodingNode)
+ end
+ def source_encoding_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # Create a new SourceFileNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#757
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ filepath: String
+ ).returns(Prism::SourceFileNode)
+ end
+ def source_file_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), filepath: T.unsafe(nil)); end
+
+ # Create a new SourceLineNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#762
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer
+ ).returns(Prism::SourceLineNode)
+ end
+ def source_line_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # Create a new SplatNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#767
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ operator_loc: Prism::Location,
+ expression: T.nilable(Prism::Node)
+ ).returns(Prism::SplatNode)
+ end
+ def splat_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), operator_loc: T.unsafe(nil), expression: T.unsafe(nil)); end
+
+ # Create a new StatementsNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#772
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ body: T::Array[Prism::Node]
+ ).returns(Prism::StatementsNode)
+ end
+ def statements_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), body: T.unsafe(nil)); end
+
+ # Retrieve the value of one of the StringFlags flags.
+ #
+ # source://prism//lib/prism/dsl.rb#950
+ sig { params(name: Symbol).returns(Integer) }
+ def string_flag(name); end
+
+ # Create a new StringNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#777
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: T.nilable(Prism::Location),
+ content_loc: Prism::Location,
+ closing_loc: T.nilable(Prism::Location),
+ unescaped: String
+ ).returns(Prism::StringNode)
+ end
+ def string_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), opening_loc: T.unsafe(nil), content_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), unescaped: T.unsafe(nil)); end
+
+ # Create a new SuperNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#782
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ keyword_loc: Prism::Location,
+ lparen_loc: T.nilable(Prism::Location),
+ arguments: T.nilable(Prism::ArgumentsNode),
+ rparen_loc: T.nilable(Prism::Location),
+ block: T.nilable(Prism::Node)
+ ).returns(Prism::SuperNode)
+ end
+ def super_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), keyword_loc: T.unsafe(nil), lparen_loc: T.unsafe(nil), arguments: T.unsafe(nil), rparen_loc: T.unsafe(nil), block: T.unsafe(nil)); end
+
+ # Retrieve the value of one of the SymbolFlags flags.
+ #
+ # source://prism//lib/prism/dsl.rb#961
+ sig { params(name: Symbol).returns(Integer) }
+ def symbol_flag(name); end
+
+ # Create a new SymbolNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#787
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: T.nilable(Prism::Location),
+ value_loc: T.nilable(Prism::Location),
+ closing_loc: T.nilable(Prism::Location),
+ unescaped: String
+ ).returns(Prism::SymbolNode)
+ end
+ def symbol_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), opening_loc: T.unsafe(nil), value_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), unescaped: T.unsafe(nil)); end
+
+ # Create a new TrueNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#792
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer
+ ).returns(Prism::TrueNode)
+ end
+ def true_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # Create a new UndefNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#797
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ names: T::Array[T.any(Prism::SymbolNode, Prism::InterpolatedSymbolNode)],
+ keyword_loc: Prism::Location
+ ).returns(Prism::UndefNode)
+ end
+ def undef_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), names: T.unsafe(nil), keyword_loc: T.unsafe(nil)); end
+
+ # Create a new UnlessNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#802
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ keyword_loc: Prism::Location,
+ predicate: Prism::Node,
+ then_keyword_loc: T.nilable(Prism::Location),
+ statements: T.nilable(Prism::StatementsNode),
+ else_clause: T.nilable(Prism::ElseNode),
+ end_keyword_loc: T.nilable(Prism::Location)
+ ).returns(Prism::UnlessNode)
+ end
+ def unless_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), keyword_loc: T.unsafe(nil), predicate: T.unsafe(nil), then_keyword_loc: T.unsafe(nil), statements: T.unsafe(nil), else_clause: T.unsafe(nil), end_keyword_loc: T.unsafe(nil)); end
+
+ # Create a new UntilNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#807
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ keyword_loc: Prism::Location,
+ closing_loc: T.nilable(Prism::Location),
+ predicate: Prism::Node,
+ statements: T.nilable(Prism::StatementsNode)
+ ).returns(Prism::UntilNode)
+ end
+ def until_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), keyword_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), predicate: T.unsafe(nil), statements: T.unsafe(nil)); end
+
+ # Create a new WhenNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#812
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ keyword_loc: Prism::Location,
+ conditions: T::Array[Prism::Node],
+ then_keyword_loc: T.nilable(Prism::Location),
+ statements: T.nilable(Prism::StatementsNode)
+ ).returns(Prism::WhenNode)
+ end
+ def when_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), keyword_loc: T.unsafe(nil), conditions: T.unsafe(nil), then_keyword_loc: T.unsafe(nil), statements: T.unsafe(nil)); end
+
+ # Create a new WhileNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#817
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ keyword_loc: Prism::Location,
+ closing_loc: T.nilable(Prism::Location),
+ predicate: Prism::Node,
+ statements: T.nilable(Prism::StatementsNode)
+ ).returns(Prism::WhileNode)
+ end
+ def while_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), keyword_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), predicate: T.unsafe(nil), statements: T.unsafe(nil)); end
+
+ # Create a new XStringNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#822
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: Prism::Location,
+ content_loc: Prism::Location,
+ closing_loc: Prism::Location,
+ unescaped: String
+ ).returns(Prism::XStringNode)
+ end
+ def x_string_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), opening_loc: T.unsafe(nil), content_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), unescaped: T.unsafe(nil)); end
+
+ # Create a new YieldNode node.
+ #
+ # source://prism//lib/prism/dsl.rb#827
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ keyword_loc: Prism::Location,
+ lparen_loc: T.nilable(Prism::Location),
+ arguments: T.nilable(Prism::ArgumentsNode),
+ rparen_loc: T.nilable(Prism::Location)
+ ).returns(Prism::YieldNode)
+ end
+ def yield_node(source: T.unsafe(nil), node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), keyword_loc: T.unsafe(nil), lparen_loc: T.unsafe(nil), arguments: T.unsafe(nil), rparen_loc: T.unsafe(nil)); end
+
+ private
+
+ # The default location object that gets attached to nodes if no location is
+ # specified, which uses the given source.
+ #
+ # source://prism//lib/prism/dsl.rb#980
+ sig { returns(Prism::Location) }
+ def default_location; end
+
+ # The default node that gets attached to nodes if no node is specified for a
+ # required node field.
+ #
+ # source://prism//lib/prism/dsl.rb#986
+ sig { params(source: Prism::Source, location: Prism::Location).returns(Prism::Node) }
+ def default_node(source, location); end
+
+ # The default source object that gets attached to nodes and locations if no
+ # source is specified.
+ #
+ # source://prism//lib/prism/dsl.rb#974
+ sig { returns(Prism::Source) }
+ def default_source; end
+end
+
+# Represents a method definition.
+#
+# def method
+# end
+# ^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#5100
+class Prism::DefNode < ::Prism::Node
+ # Initialize a new DefNode node.
+ #
+ # @return [DefNode] a new instance of DefNode
+ #
+ # source://prism//lib/prism/node.rb#5102
+ def initialize(source, node_id, location, flags, name, name_loc, receiver, parameters, body, locals, def_keyword_loc, operator_loc, lparen_loc, rparen_loc, equal_loc, end_keyword_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#5299
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#5122
+ def accept(visitor); end
+
+ # attr_reader body: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#5175
+ def body; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#5127
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#5141
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#5132
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?receiver: Prism::node?, ?parameters: ParametersNode?, ?body: Prism::node?, ?locals: Array[Symbol], ?def_keyword_loc: Location, ?operator_loc: Location?, ?lparen_loc: Location?, ?rparen_loc: Location?, ?equal_loc: Location?, ?end_keyword_loc: Location?) -> DefNode
+ #
+ # source://prism//lib/prism/node.rb#5146
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), receiver: T.unsafe(nil), parameters: T.unsafe(nil), body: T.unsafe(nil), locals: T.unsafe(nil), def_keyword_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), lparen_loc: T.unsafe(nil), rparen_loc: T.unsafe(nil), equal_loc: T.unsafe(nil), end_keyword_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#5127
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, receiver: Prism::node?, parameters: ParametersNode?, body: Prism::node?, locals: Array[Symbol], def_keyword_loc: Location, operator_loc: Location?, lparen_loc: Location?, rparen_loc: Location?, equal_loc: Location?, end_keyword_loc: Location? }
+ #
+ # source://prism//lib/prism/node.rb#5154
+ def deconstruct_keys(keys); end
+
+ # def def_keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#5253
+ def def_keyword; end
+
+ # attr_reader def_keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#5181
+ def def_keyword_loc; end
+
+ # def end_keyword: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#5278
+ def end_keyword; end
+
+ # attr_reader end_keyword_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#5240
+ def end_keyword_loc; end
+
+ # def equal: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#5273
+ def equal; end
+
+ # attr_reader equal_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#5227
+ def equal_loc; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#5283
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader locals: Array[Symbol]
+ #
+ # source://prism//lib/prism/node.rb#5178
+ def locals; end
+
+ # def lparen: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#5263
+ def lparen; end
+
+ # attr_reader lparen_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#5201
+ def lparen_loc; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#5159
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#5162
+ def name_loc; end
+
+ # def operator: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#5258
+ def operator; end
+
+ # attr_reader operator_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#5188
+ def operator_loc; end
+
+ # attr_reader parameters: ParametersNode?
+ #
+ # source://prism//lib/prism/node.rb#5172
+ def parameters; end
+
+ # attr_reader receiver: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#5169
+ def receiver; end
+
+ # def rparen: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#5268
+ def rparen; end
+
+ # attr_reader rparen_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#5214
+ def rparen_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#5288
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#5293
+ def type; end
+ end
+end
+
+# Represents the use of the `defined?` keyword.
+#
+# defined?(a)
+# ^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#5321
+class Prism::DefinedNode < ::Prism::Node
+ # Initialize a new DefinedNode node.
+ #
+ # @return [DefinedNode] a new instance of DefinedNode
+ #
+ # source://prism//lib/prism/node.rb#5323
+ def initialize(source, node_id, location, flags, lparen_loc, value, rparen_loc, keyword_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#5435
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#5335
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#5340
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#5350
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#5345
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?lparen_loc: Location?, ?value: Prism::node, ?rparen_loc: Location?, ?keyword_loc: Location) -> DefinedNode
+ #
+ # source://prism//lib/prism/node.rb#5355
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), lparen_loc: T.unsafe(nil), value: T.unsafe(nil), rparen_loc: T.unsafe(nil), keyword_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#5340
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, lparen_loc: Location?, value: Prism::node, rparen_loc: Location?, keyword_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#5363
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#5419
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#5414
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#5397
+ def keyword_loc; end
+
+ # def lparen: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#5404
+ def lparen; end
+
+ # attr_reader lparen_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#5368
+ def lparen_loc; end
+
+ # def rparen: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#5409
+ def rparen; end
+
+ # attr_reader rparen_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#5384
+ def rparen_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#5424
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#5381
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#5429
+ def type; end
+ end
+end
+
+# source://prism//lib/prism/desugar_compiler.rb#4
+class Prism::DesugarAndWriteNode
+ include ::Prism::DSL
+
+ # @return [DesugarAndWriteNode] a new instance of DesugarAndWriteNode
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#9
+ def initialize(node, default_source, read_class, write_class, **arguments); end
+
+ # Returns the value of attribute arguments.
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#7
+ def arguments; end
+
+ # Desugar `x &&= y` to `x && x = y`
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#18
+ def compile; end
+
+ # Returns the value of attribute default_source.
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#7
+ def default_source; end
+
+ # Returns the value of attribute node.
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#7
+ def node; end
+
+ # Returns the value of attribute read_class.
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#7
+ def read_class; end
+
+ # Returns the value of attribute write_class.
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#7
+ def write_class; end
+end
+
+# DesugarCompiler is a compiler that desugars Ruby code into a more primitive
+# form. This is useful for consumers that want to deal with fewer node types.
+#
+# source://prism//lib/prism/desugar_compiler.rb#255
+class Prism::DesugarCompiler < ::Prism::MutationCompiler
+ # @@foo &&= bar
+ #
+ # becomes
+ #
+ # @@foo && @@foo = bar
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#261
+ def visit_class_variable_and_write_node(node); end
+
+ # @@foo += bar
+ #
+ # becomes
+ #
+ # @@foo = @@foo + bar
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#279
+ def visit_class_variable_operator_write_node(node); end
+
+ # @@foo ||= bar
+ #
+ # becomes
+ #
+ # defined?(@@foo) ? @@foo : @@foo = bar
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#270
+ def visit_class_variable_or_write_node(node); end
+
+ # Foo &&= bar
+ #
+ # becomes
+ #
+ # Foo && Foo = bar
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#288
+ def visit_constant_and_write_node(node); end
+
+ # Foo += bar
+ #
+ # becomes
+ #
+ # Foo = Foo + bar
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#306
+ def visit_constant_operator_write_node(node); end
+
+ # Foo ||= bar
+ #
+ # becomes
+ #
+ # defined?(Foo) ? Foo : Foo = bar
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#297
+ def visit_constant_or_write_node(node); end
+
+ # $foo &&= bar
+ #
+ # becomes
+ #
+ # $foo && $foo = bar
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#315
+ def visit_global_variable_and_write_node(node); end
+
+ # $foo += bar
+ #
+ # becomes
+ #
+ # $foo = $foo + bar
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#333
+ def visit_global_variable_operator_write_node(node); end
+
+ # $foo ||= bar
+ #
+ # becomes
+ #
+ # defined?($foo) ? $foo : $foo = bar
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#324
+ def visit_global_variable_or_write_node(node); end
+
+ # becomes
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#342
+ def visit_instance_variable_and_write_node(node); end
+
+ # becomes
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#360
+ def visit_instance_variable_operator_write_node(node); end
+
+ # becomes
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#351
+ def visit_instance_variable_or_write_node(node); end
+
+ # foo &&= bar
+ #
+ # becomes
+ #
+ # foo && foo = bar
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#369
+ def visit_local_variable_and_write_node(node); end
+
+ # foo += bar
+ #
+ # becomes
+ #
+ # foo = foo + bar
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#387
+ def visit_local_variable_operator_write_node(node); end
+
+ # foo ||= bar
+ #
+ # becomes
+ #
+ # foo || foo = bar
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#378
+ def visit_local_variable_or_write_node(node); end
+end
+
+# source://prism//lib/prism/desugar_compiler.rb#86
+class Prism::DesugarOperatorWriteNode
+ include ::Prism::DSL
+
+ # @return [DesugarOperatorWriteNode] a new instance of DesugarOperatorWriteNode
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#91
+ def initialize(node, default_source, read_class, write_class, **arguments); end
+
+ # Returns the value of attribute arguments.
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#89
+ def arguments; end
+
+ # Desugar `x += y` to `x = x + y`
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#100
+ def compile; end
+
+ # Returns the value of attribute default_source.
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#89
+ def default_source; end
+
+ # Returns the value of attribute node.
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#89
+ def node; end
+
+ # Returns the value of attribute read_class.
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#89
+ def read_class; end
+
+ # Returns the value of attribute write_class.
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#89
+ def write_class; end
+end
+
+# source://prism//lib/prism/desugar_compiler.rb#35
+class Prism::DesugarOrWriteDefinedNode
+ include ::Prism::DSL
+
+ # @return [DesugarOrWriteDefinedNode] a new instance of DesugarOrWriteDefinedNode
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#40
+ def initialize(node, default_source, read_class, write_class, **arguments); end
+
+ # Returns the value of attribute arguments.
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#38
+ def arguments; end
+
+ # Desugar `x ||= y` to `defined?(x) ? x : x = y`
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#49
+ def compile; end
+
+ # Returns the value of attribute default_source.
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#38
+ def default_source; end
+
+ # Returns the value of attribute node.
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#38
+ def node; end
+
+ # Returns the value of attribute read_class.
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#38
+ def read_class; end
+
+ # Returns the value of attribute write_class.
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#38
+ def write_class; end
+end
+
+# source://prism//lib/prism/desugar_compiler.rb#130
+class Prism::DesugarOrWriteNode
+ include ::Prism::DSL
+
+ # @return [DesugarOrWriteNode] a new instance of DesugarOrWriteNode
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#135
+ def initialize(node, default_source, read_class, write_class, **arguments); end
+
+ # Returns the value of attribute arguments.
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#133
+ def arguments; end
+
+ # Desugar `x ||= y` to `x || x = y`
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#144
+ def compile; end
+
+ # Returns the value of attribute default_source.
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#133
+ def default_source; end
+
+ # Returns the value of attribute node.
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#133
+ def node; end
+
+ # Returns the value of attribute read_class.
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#133
+ def read_class; end
+
+ # Returns the value of attribute write_class.
+ #
+ # source://prism//lib/prism/desugar_compiler.rb#133
+ def write_class; end
+end
+
+# The dispatcher class fires events for nodes that are found while walking an
+# AST to all registered listeners. It's useful for performing different types
+# of analysis on the AST while only having to walk the tree once.
+#
+# To use the dispatcher, you would first instantiate it and register listeners
+# for the events you're interested in:
+#
+# class OctalListener
+# def on_integer_node_enter(node)
+# if node.octal? && !node.slice.start_with?("0o")
+# warn("Octal integers should be written with the 0o prefix")
+# end
+# end
+# end
+#
+# listener = OctalListener.new
+# dispatcher = Prism::Dispatcher.new
+# dispatcher.register(listener, :on_integer_node_enter)
+#
+# Then, you can walk any number of trees and dispatch events to the listeners:
+#
+# result = Prism.parse("001 + 002 + 003")
+# dispatcher.dispatch(result.value)
+#
+# Optionally, you can also use `#dispatch_once` to dispatch enter and leave
+# events for a single node without recursing further down the tree. This can
+# be useful in circumstances where you want to reuse the listeners you already
+# have registers but want to stop walking the tree at a certain point.
+#
+# integer = result.value.statements.body.first.receiver.receiver
+# dispatcher.dispatch_once(integer)
+#
+# source://prism//lib/prism/dispatcher.rb#42
+class Prism::Dispatcher < ::Prism::Visitor
+ # Initialize a new dispatcher.
+ #
+ # @return [Dispatcher] a new instance of Dispatcher
+ #
+ # source://prism//lib/prism/dispatcher.rb#47
+ def initialize; end
+
+ # Walks `root` dispatching events to all registered listeners.
+ #
+ # def dispatch: (Node) -> void
+ #
+ # source://prism//lib/prism/visitor.rb#17
+ def dispatch(node); end
+
+ # Dispatches a single event for `node` to all registered listeners.
+ #
+ # def dispatch_once: (Node) -> void
+ #
+ # source://prism//lib/prism/dispatcher.rb#66
+ def dispatch_once(node); end
+
+ # attr_reader listeners: Hash[Symbol, Array[Listener]]
+ #
+ # source://prism//lib/prism/dispatcher.rb#44
+ def listeners; end
+
+ # Register a listener for one or more events.
+ #
+ # def register: (Listener, *Symbol) -> void
+ #
+ # source://prism//lib/prism/dispatcher.rb#54
+ def register(listener, *events); end
+
+ # Dispatch enter and leave events for AliasGlobalVariableNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#72
+ def visit_alias_global_variable_node(node); end
+
+ # Dispatch enter and leave events for AliasMethodNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#80
+ def visit_alias_method_node(node); end
+
+ # Dispatch enter and leave events for AlternationPatternNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#88
+ def visit_alternation_pattern_node(node); end
+
+ # Dispatch enter and leave events for AndNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#96
+ def visit_and_node(node); end
+
+ # Dispatch enter and leave events for ArgumentsNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#104
+ def visit_arguments_node(node); end
+
+ # Dispatch enter and leave events for ArrayNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#112
+ def visit_array_node(node); end
+
+ # Dispatch enter and leave events for ArrayPatternNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#120
+ def visit_array_pattern_node(node); end
+
+ # Dispatch enter and leave events for AssocNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#128
+ def visit_assoc_node(node); end
+
+ # Dispatch enter and leave events for AssocSplatNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#136
+ def visit_assoc_splat_node(node); end
+
+ # Dispatch enter and leave events for BackReferenceReadNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#144
+ def visit_back_reference_read_node(node); end
+
+ # Dispatch enter and leave events for BeginNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#152
+ def visit_begin_node(node); end
+
+ # Dispatch enter and leave events for BlockArgumentNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#160
+ def visit_block_argument_node(node); end
+
+ # Dispatch enter and leave events for BlockLocalVariableNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#168
+ def visit_block_local_variable_node(node); end
+
+ # Dispatch enter and leave events for BlockNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#176
+ def visit_block_node(node); end
+
+ # Dispatch enter and leave events for BlockParameterNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#184
+ def visit_block_parameter_node(node); end
+
+ # Dispatch enter and leave events for BlockParametersNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#192
+ def visit_block_parameters_node(node); end
+
+ # Dispatch enter and leave events for BreakNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#200
+ def visit_break_node(node); end
+
+ # Dispatch enter and leave events for CallAndWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#208
+ def visit_call_and_write_node(node); end
+
+ # Dispatch enter and leave events for CallNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#216
+ def visit_call_node(node); end
+
+ # Dispatch enter and leave events for CallOperatorWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#224
+ def visit_call_operator_write_node(node); end
+
+ # Dispatch enter and leave events for CallOrWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#232
+ def visit_call_or_write_node(node); end
+
+ # Dispatch enter and leave events for CallTargetNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#240
+ def visit_call_target_node(node); end
+
+ # Dispatch enter and leave events for CapturePatternNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#248
+ def visit_capture_pattern_node(node); end
+
+ # Dispatch enter and leave events for CaseMatchNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#256
+ def visit_case_match_node(node); end
+
+ # Dispatch enter and leave events for CaseNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#264
+ def visit_case_node(node); end
+
+ # Dispatch enter and leave events for ClassNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#272
+ def visit_class_node(node); end
+
+ # Dispatch enter and leave events for ClassVariableAndWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#280
+ def visit_class_variable_and_write_node(node); end
+
+ # Dispatch enter and leave events for ClassVariableOperatorWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#288
+ def visit_class_variable_operator_write_node(node); end
+
+ # Dispatch enter and leave events for ClassVariableOrWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#296
+ def visit_class_variable_or_write_node(node); end
+
+ # Dispatch enter and leave events for ClassVariableReadNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#304
+ def visit_class_variable_read_node(node); end
+
+ # Dispatch enter and leave events for ClassVariableTargetNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#312
+ def visit_class_variable_target_node(node); end
+
+ # Dispatch enter and leave events for ClassVariableWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#320
+ def visit_class_variable_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantAndWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#328
+ def visit_constant_and_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantOperatorWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#336
+ def visit_constant_operator_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantOrWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#344
+ def visit_constant_or_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantPathAndWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#352
+ def visit_constant_path_and_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantPathNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#360
+ def visit_constant_path_node(node); end
+
+ # Dispatch enter and leave events for ConstantPathOperatorWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#368
+ def visit_constant_path_operator_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantPathOrWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#376
+ def visit_constant_path_or_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantPathTargetNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#384
+ def visit_constant_path_target_node(node); end
+
+ # Dispatch enter and leave events for ConstantPathWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#392
+ def visit_constant_path_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantReadNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#400
+ def visit_constant_read_node(node); end
+
+ # Dispatch enter and leave events for ConstantTargetNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#408
+ def visit_constant_target_node(node); end
+
+ # Dispatch enter and leave events for ConstantWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#416
+ def visit_constant_write_node(node); end
+
+ # Dispatch enter and leave events for DefNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#424
+ def visit_def_node(node); end
+
+ # Dispatch enter and leave events for DefinedNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#432
+ def visit_defined_node(node); end
+
+ # Dispatch enter and leave events for ElseNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#440
+ def visit_else_node(node); end
+
+ # Dispatch enter and leave events for EmbeddedStatementsNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#448
+ def visit_embedded_statements_node(node); end
+
+ # Dispatch enter and leave events for EmbeddedVariableNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#456
+ def visit_embedded_variable_node(node); end
+
+ # Dispatch enter and leave events for EnsureNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#464
+ def visit_ensure_node(node); end
+
+ # Dispatch enter and leave events for FalseNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#472
+ def visit_false_node(node); end
+
+ # Dispatch enter and leave events for FindPatternNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#480
+ def visit_find_pattern_node(node); end
+
+ # Dispatch enter and leave events for FlipFlopNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#488
+ def visit_flip_flop_node(node); end
+
+ # Dispatch enter and leave events for FloatNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#496
+ def visit_float_node(node); end
+
+ # Dispatch enter and leave events for ForNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#504
+ def visit_for_node(node); end
+
+ # Dispatch enter and leave events for ForwardingArgumentsNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#512
+ def visit_forwarding_arguments_node(node); end
+
+ # Dispatch enter and leave events for ForwardingParameterNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#520
+ def visit_forwarding_parameter_node(node); end
+
+ # Dispatch enter and leave events for ForwardingSuperNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#528
+ def visit_forwarding_super_node(node); end
+
+ # Dispatch enter and leave events for GlobalVariableAndWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#536
+ def visit_global_variable_and_write_node(node); end
+
+ # Dispatch enter and leave events for GlobalVariableOperatorWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#544
+ def visit_global_variable_operator_write_node(node); end
+
+ # Dispatch enter and leave events for GlobalVariableOrWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#552
+ def visit_global_variable_or_write_node(node); end
+
+ # Dispatch enter and leave events for GlobalVariableReadNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#560
+ def visit_global_variable_read_node(node); end
+
+ # Dispatch enter and leave events for GlobalVariableTargetNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#568
+ def visit_global_variable_target_node(node); end
+
+ # Dispatch enter and leave events for GlobalVariableWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#576
+ def visit_global_variable_write_node(node); end
+
+ # Dispatch enter and leave events for HashNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#584
+ def visit_hash_node(node); end
+
+ # Dispatch enter and leave events for HashPatternNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#592
+ def visit_hash_pattern_node(node); end
+
+ # Dispatch enter and leave events for IfNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#600
+ def visit_if_node(node); end
+
+ # Dispatch enter and leave events for ImaginaryNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#608
+ def visit_imaginary_node(node); end
+
+ # Dispatch enter and leave events for ImplicitNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#616
+ def visit_implicit_node(node); end
+
+ # Dispatch enter and leave events for ImplicitRestNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#624
+ def visit_implicit_rest_node(node); end
+
+ # Dispatch enter and leave events for InNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#632
+ def visit_in_node(node); end
+
+ # Dispatch enter and leave events for IndexAndWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#640
+ def visit_index_and_write_node(node); end
+
+ # Dispatch enter and leave events for IndexOperatorWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#648
+ def visit_index_operator_write_node(node); end
+
+ # Dispatch enter and leave events for IndexOrWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#656
+ def visit_index_or_write_node(node); end
+
+ # Dispatch enter and leave events for IndexTargetNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#664
+ def visit_index_target_node(node); end
+
+ # Dispatch enter and leave events for InstanceVariableAndWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#672
+ def visit_instance_variable_and_write_node(node); end
+
+ # Dispatch enter and leave events for InstanceVariableOperatorWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#680
+ def visit_instance_variable_operator_write_node(node); end
+
+ # Dispatch enter and leave events for InstanceVariableOrWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#688
+ def visit_instance_variable_or_write_node(node); end
+
+ # Dispatch enter and leave events for InstanceVariableReadNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#696
+ def visit_instance_variable_read_node(node); end
+
+ # Dispatch enter and leave events for InstanceVariableTargetNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#704
+ def visit_instance_variable_target_node(node); end
+
+ # Dispatch enter and leave events for InstanceVariableWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#712
+ def visit_instance_variable_write_node(node); end
+
+ # Dispatch enter and leave events for IntegerNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#720
+ def visit_integer_node(node); end
+
+ # Dispatch enter and leave events for InterpolatedMatchLastLineNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#728
+ def visit_interpolated_match_last_line_node(node); end
+
+ # Dispatch enter and leave events for InterpolatedRegularExpressionNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#736
+ def visit_interpolated_regular_expression_node(node); end
+
+ # Dispatch enter and leave events for InterpolatedStringNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#744
+ def visit_interpolated_string_node(node); end
+
+ # Dispatch enter and leave events for InterpolatedSymbolNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#752
+ def visit_interpolated_symbol_node(node); end
+
+ # Dispatch enter and leave events for InterpolatedXStringNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#760
+ def visit_interpolated_x_string_node(node); end
+
+ # Dispatch enter and leave events for ItLocalVariableReadNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#768
+ def visit_it_local_variable_read_node(node); end
+
+ # Dispatch enter and leave events for ItParametersNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#776
+ def visit_it_parameters_node(node); end
+
+ # Dispatch enter and leave events for KeywordHashNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#784
+ def visit_keyword_hash_node(node); end
+
+ # Dispatch enter and leave events for KeywordRestParameterNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#792
+ def visit_keyword_rest_parameter_node(node); end
+
+ # Dispatch enter and leave events for LambdaNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#800
+ def visit_lambda_node(node); end
+
+ # Dispatch enter and leave events for LocalVariableAndWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#808
+ def visit_local_variable_and_write_node(node); end
+
+ # Dispatch enter and leave events for LocalVariableOperatorWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#816
+ def visit_local_variable_operator_write_node(node); end
+
+ # Dispatch enter and leave events for LocalVariableOrWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#824
+ def visit_local_variable_or_write_node(node); end
+
+ # Dispatch enter and leave events for LocalVariableReadNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#832
+ def visit_local_variable_read_node(node); end
+
+ # Dispatch enter and leave events for LocalVariableTargetNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#840
+ def visit_local_variable_target_node(node); end
+
+ # Dispatch enter and leave events for LocalVariableWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#848
+ def visit_local_variable_write_node(node); end
+
+ # Dispatch enter and leave events for MatchLastLineNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#856
+ def visit_match_last_line_node(node); end
+
+ # Dispatch enter and leave events for MatchPredicateNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#864
+ def visit_match_predicate_node(node); end
+
+ # Dispatch enter and leave events for MatchRequiredNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#872
+ def visit_match_required_node(node); end
+
+ # Dispatch enter and leave events for MatchWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#880
+ def visit_match_write_node(node); end
+
+ # Dispatch enter and leave events for MissingNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#888
+ def visit_missing_node(node); end
+
+ # Dispatch enter and leave events for ModuleNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#896
+ def visit_module_node(node); end
+
+ # Dispatch enter and leave events for MultiTargetNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#904
+ def visit_multi_target_node(node); end
+
+ # Dispatch enter and leave events for MultiWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#912
+ def visit_multi_write_node(node); end
+
+ # Dispatch enter and leave events for NextNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#920
+ def visit_next_node(node); end
+
+ # Dispatch enter and leave events for NilNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#928
+ def visit_nil_node(node); end
+
+ # Dispatch enter and leave events for NoKeywordsParameterNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#936
+ def visit_no_keywords_parameter_node(node); end
+
+ # Dispatch enter and leave events for NumberedParametersNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#944
+ def visit_numbered_parameters_node(node); end
+
+ # Dispatch enter and leave events for NumberedReferenceReadNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#952
+ def visit_numbered_reference_read_node(node); end
+
+ # Dispatch enter and leave events for OptionalKeywordParameterNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#960
+ def visit_optional_keyword_parameter_node(node); end
+
+ # Dispatch enter and leave events for OptionalParameterNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#968
+ def visit_optional_parameter_node(node); end
+
+ # Dispatch enter and leave events for OrNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#976
+ def visit_or_node(node); end
+
+ # Dispatch enter and leave events for ParametersNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#984
+ def visit_parameters_node(node); end
+
+ # Dispatch enter and leave events for ParenthesesNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#992
+ def visit_parentheses_node(node); end
+
+ # Dispatch enter and leave events for PinnedExpressionNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1000
+ def visit_pinned_expression_node(node); end
+
+ # Dispatch enter and leave events for PinnedVariableNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1008
+ def visit_pinned_variable_node(node); end
+
+ # Dispatch enter and leave events for PostExecutionNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1016
+ def visit_post_execution_node(node); end
+
+ # Dispatch enter and leave events for PreExecutionNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1024
+ def visit_pre_execution_node(node); end
+
+ # Dispatch enter and leave events for ProgramNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1032
+ def visit_program_node(node); end
+
+ # Dispatch enter and leave events for RangeNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1040
+ def visit_range_node(node); end
+
+ # Dispatch enter and leave events for RationalNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1048
+ def visit_rational_node(node); end
+
+ # Dispatch enter and leave events for RedoNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1056
+ def visit_redo_node(node); end
+
+ # Dispatch enter and leave events for RegularExpressionNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1064
+ def visit_regular_expression_node(node); end
+
+ # Dispatch enter and leave events for RequiredKeywordParameterNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1072
+ def visit_required_keyword_parameter_node(node); end
+
+ # Dispatch enter and leave events for RequiredParameterNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1080
+ def visit_required_parameter_node(node); end
+
+ # Dispatch enter and leave events for RescueModifierNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1088
+ def visit_rescue_modifier_node(node); end
+
+ # Dispatch enter and leave events for RescueNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1096
+ def visit_rescue_node(node); end
+
+ # Dispatch enter and leave events for RestParameterNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1104
+ def visit_rest_parameter_node(node); end
+
+ # Dispatch enter and leave events for RetryNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1112
+ def visit_retry_node(node); end
+
+ # Dispatch enter and leave events for ReturnNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1120
+ def visit_return_node(node); end
+
+ # Dispatch enter and leave events for SelfNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1128
+ def visit_self_node(node); end
+
+ # Dispatch enter and leave events for ShareableConstantNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1136
+ def visit_shareable_constant_node(node); end
+
+ # Dispatch enter and leave events for SingletonClassNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1144
+ def visit_singleton_class_node(node); end
+
+ # Dispatch enter and leave events for SourceEncodingNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1152
+ def visit_source_encoding_node(node); end
+
+ # Dispatch enter and leave events for SourceFileNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1160
+ def visit_source_file_node(node); end
+
+ # Dispatch enter and leave events for SourceLineNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1168
+ def visit_source_line_node(node); end
+
+ # Dispatch enter and leave events for SplatNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1176
+ def visit_splat_node(node); end
+
+ # Dispatch enter and leave events for StatementsNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1184
+ def visit_statements_node(node); end
+
+ # Dispatch enter and leave events for StringNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1192
+ def visit_string_node(node); end
+
+ # Dispatch enter and leave events for SuperNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1200
+ def visit_super_node(node); end
+
+ # Dispatch enter and leave events for SymbolNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1208
+ def visit_symbol_node(node); end
+
+ # Dispatch enter and leave events for TrueNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1216
+ def visit_true_node(node); end
+
+ # Dispatch enter and leave events for UndefNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1224
+ def visit_undef_node(node); end
+
+ # Dispatch enter and leave events for UnlessNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1232
+ def visit_unless_node(node); end
+
+ # Dispatch enter and leave events for UntilNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1240
+ def visit_until_node(node); end
+
+ # Dispatch enter and leave events for WhenNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1248
+ def visit_when_node(node); end
+
+ # Dispatch enter and leave events for WhileNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1256
+ def visit_while_node(node); end
+
+ # Dispatch enter and leave events for XStringNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1264
+ def visit_x_string_node(node); end
+
+ # Dispatch enter and leave events for YieldNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1272
+ def visit_yield_node(node); end
+end
+
+# source://prism//lib/prism/dispatcher.rb#1278
+class Prism::Dispatcher::DispatchOnce < ::Prism::Visitor
+ # @return [DispatchOnce] a new instance of DispatchOnce
+ #
+ # source://prism//lib/prism/dispatcher.rb#1281
+ def initialize(listeners); end
+
+ # Returns the value of attribute listeners.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1279
+ def listeners; end
+
+ # Dispatch enter and leave events for AliasGlobalVariableNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1286
+ def visit_alias_global_variable_node(node); end
+
+ # Dispatch enter and leave events for AliasMethodNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1292
+ def visit_alias_method_node(node); end
+
+ # Dispatch enter and leave events for AlternationPatternNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1298
+ def visit_alternation_pattern_node(node); end
+
+ # Dispatch enter and leave events for AndNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1304
+ def visit_and_node(node); end
+
+ # Dispatch enter and leave events for ArgumentsNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1310
+ def visit_arguments_node(node); end
+
+ # Dispatch enter and leave events for ArrayNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1316
+ def visit_array_node(node); end
+
+ # Dispatch enter and leave events for ArrayPatternNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1322
+ def visit_array_pattern_node(node); end
+
+ # Dispatch enter and leave events for AssocNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1328
+ def visit_assoc_node(node); end
+
+ # Dispatch enter and leave events for AssocSplatNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1334
+ def visit_assoc_splat_node(node); end
+
+ # Dispatch enter and leave events for BackReferenceReadNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1340
+ def visit_back_reference_read_node(node); end
+
+ # Dispatch enter and leave events for BeginNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1346
+ def visit_begin_node(node); end
+
+ # Dispatch enter and leave events for BlockArgumentNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1352
+ def visit_block_argument_node(node); end
+
+ # Dispatch enter and leave events for BlockLocalVariableNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1358
+ def visit_block_local_variable_node(node); end
+
+ # Dispatch enter and leave events for BlockNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1364
+ def visit_block_node(node); end
+
+ # Dispatch enter and leave events for BlockParameterNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1370
+ def visit_block_parameter_node(node); end
+
+ # Dispatch enter and leave events for BlockParametersNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1376
+ def visit_block_parameters_node(node); end
+
+ # Dispatch enter and leave events for BreakNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1382
+ def visit_break_node(node); end
+
+ # Dispatch enter and leave events for CallAndWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1388
+ def visit_call_and_write_node(node); end
+
+ # Dispatch enter and leave events for CallNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1394
+ def visit_call_node(node); end
+
+ # Dispatch enter and leave events for CallOperatorWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1400
+ def visit_call_operator_write_node(node); end
+
+ # Dispatch enter and leave events for CallOrWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1406
+ def visit_call_or_write_node(node); end
+
+ # Dispatch enter and leave events for CallTargetNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1412
+ def visit_call_target_node(node); end
+
+ # Dispatch enter and leave events for CapturePatternNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1418
+ def visit_capture_pattern_node(node); end
+
+ # Dispatch enter and leave events for CaseMatchNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1424
+ def visit_case_match_node(node); end
+
+ # Dispatch enter and leave events for CaseNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1430
+ def visit_case_node(node); end
+
+ # Dispatch enter and leave events for ClassNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1436
+ def visit_class_node(node); end
+
+ # Dispatch enter and leave events for ClassVariableAndWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1442
+ def visit_class_variable_and_write_node(node); end
+
+ # Dispatch enter and leave events for ClassVariableOperatorWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1448
+ def visit_class_variable_operator_write_node(node); end
+
+ # Dispatch enter and leave events for ClassVariableOrWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1454
+ def visit_class_variable_or_write_node(node); end
+
+ # Dispatch enter and leave events for ClassVariableReadNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1460
+ def visit_class_variable_read_node(node); end
+
+ # Dispatch enter and leave events for ClassVariableTargetNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1466
+ def visit_class_variable_target_node(node); end
+
+ # Dispatch enter and leave events for ClassVariableWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1472
+ def visit_class_variable_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantAndWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1478
+ def visit_constant_and_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantOperatorWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1484
+ def visit_constant_operator_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantOrWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1490
+ def visit_constant_or_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantPathAndWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1496
+ def visit_constant_path_and_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantPathNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1502
+ def visit_constant_path_node(node); end
+
+ # Dispatch enter and leave events for ConstantPathOperatorWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1508
+ def visit_constant_path_operator_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantPathOrWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1514
+ def visit_constant_path_or_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantPathTargetNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1520
+ def visit_constant_path_target_node(node); end
+
+ # Dispatch enter and leave events for ConstantPathWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1526
+ def visit_constant_path_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantReadNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1532
+ def visit_constant_read_node(node); end
+
+ # Dispatch enter and leave events for ConstantTargetNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1538
+ def visit_constant_target_node(node); end
+
+ # Dispatch enter and leave events for ConstantWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1544
+ def visit_constant_write_node(node); end
+
+ # Dispatch enter and leave events for DefNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1550
+ def visit_def_node(node); end
+
+ # Dispatch enter and leave events for DefinedNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1556
+ def visit_defined_node(node); end
+
+ # Dispatch enter and leave events for ElseNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1562
+ def visit_else_node(node); end
+
+ # Dispatch enter and leave events for EmbeddedStatementsNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1568
+ def visit_embedded_statements_node(node); end
+
+ # Dispatch enter and leave events for EmbeddedVariableNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1574
+ def visit_embedded_variable_node(node); end
+
+ # Dispatch enter and leave events for EnsureNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1580
+ def visit_ensure_node(node); end
+
+ # Dispatch enter and leave events for FalseNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1586
+ def visit_false_node(node); end
+
+ # Dispatch enter and leave events for FindPatternNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1592
+ def visit_find_pattern_node(node); end
+
+ # Dispatch enter and leave events for FlipFlopNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1598
+ def visit_flip_flop_node(node); end
+
+ # Dispatch enter and leave events for FloatNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1604
+ def visit_float_node(node); end
+
+ # Dispatch enter and leave events for ForNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1610
+ def visit_for_node(node); end
+
+ # Dispatch enter and leave events for ForwardingArgumentsNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1616
+ def visit_forwarding_arguments_node(node); end
+
+ # Dispatch enter and leave events for ForwardingParameterNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1622
+ def visit_forwarding_parameter_node(node); end
+
+ # Dispatch enter and leave events for ForwardingSuperNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1628
+ def visit_forwarding_super_node(node); end
+
+ # Dispatch enter and leave events for GlobalVariableAndWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1634
+ def visit_global_variable_and_write_node(node); end
+
+ # Dispatch enter and leave events for GlobalVariableOperatorWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1640
+ def visit_global_variable_operator_write_node(node); end
+
+ # Dispatch enter and leave events for GlobalVariableOrWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1646
+ def visit_global_variable_or_write_node(node); end
+
+ # Dispatch enter and leave events for GlobalVariableReadNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1652
+ def visit_global_variable_read_node(node); end
+
+ # Dispatch enter and leave events for GlobalVariableTargetNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1658
+ def visit_global_variable_target_node(node); end
+
+ # Dispatch enter and leave events for GlobalVariableWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1664
+ def visit_global_variable_write_node(node); end
+
+ # Dispatch enter and leave events for HashNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1670
+ def visit_hash_node(node); end
+
+ # Dispatch enter and leave events for HashPatternNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1676
+ def visit_hash_pattern_node(node); end
+
+ # Dispatch enter and leave events for IfNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1682
+ def visit_if_node(node); end
+
+ # Dispatch enter and leave events for ImaginaryNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1688
+ def visit_imaginary_node(node); end
+
+ # Dispatch enter and leave events for ImplicitNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1694
+ def visit_implicit_node(node); end
+
+ # Dispatch enter and leave events for ImplicitRestNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1700
+ def visit_implicit_rest_node(node); end
+
+ # Dispatch enter and leave events for InNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1706
+ def visit_in_node(node); end
+
+ # Dispatch enter and leave events for IndexAndWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1712
+ def visit_index_and_write_node(node); end
+
+ # Dispatch enter and leave events for IndexOperatorWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1718
+ def visit_index_operator_write_node(node); end
+
+ # Dispatch enter and leave events for IndexOrWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1724
+ def visit_index_or_write_node(node); end
+
+ # Dispatch enter and leave events for IndexTargetNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1730
+ def visit_index_target_node(node); end
+
+ # Dispatch enter and leave events for InstanceVariableAndWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1736
+ def visit_instance_variable_and_write_node(node); end
+
+ # Dispatch enter and leave events for InstanceVariableOperatorWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1742
+ def visit_instance_variable_operator_write_node(node); end
+
+ # Dispatch enter and leave events for InstanceVariableOrWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1748
+ def visit_instance_variable_or_write_node(node); end
+
+ # Dispatch enter and leave events for InstanceVariableReadNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1754
+ def visit_instance_variable_read_node(node); end
+
+ # Dispatch enter and leave events for InstanceVariableTargetNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1760
+ def visit_instance_variable_target_node(node); end
+
+ # Dispatch enter and leave events for InstanceVariableWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1766
+ def visit_instance_variable_write_node(node); end
+
+ # Dispatch enter and leave events for IntegerNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1772
+ def visit_integer_node(node); end
+
+ # Dispatch enter and leave events for InterpolatedMatchLastLineNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1778
+ def visit_interpolated_match_last_line_node(node); end
+
+ # Dispatch enter and leave events for InterpolatedRegularExpressionNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1784
+ def visit_interpolated_regular_expression_node(node); end
+
+ # Dispatch enter and leave events for InterpolatedStringNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1790
+ def visit_interpolated_string_node(node); end
+
+ # Dispatch enter and leave events for InterpolatedSymbolNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1796
+ def visit_interpolated_symbol_node(node); end
+
+ # Dispatch enter and leave events for InterpolatedXStringNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1802
+ def visit_interpolated_x_string_node(node); end
+
+ # Dispatch enter and leave events for ItLocalVariableReadNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1808
+ def visit_it_local_variable_read_node(node); end
+
+ # Dispatch enter and leave events for ItParametersNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1814
+ def visit_it_parameters_node(node); end
+
+ # Dispatch enter and leave events for KeywordHashNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1820
+ def visit_keyword_hash_node(node); end
+
+ # Dispatch enter and leave events for KeywordRestParameterNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1826
+ def visit_keyword_rest_parameter_node(node); end
+
+ # Dispatch enter and leave events for LambdaNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1832
+ def visit_lambda_node(node); end
+
+ # Dispatch enter and leave events for LocalVariableAndWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1838
+ def visit_local_variable_and_write_node(node); end
+
+ # Dispatch enter and leave events for LocalVariableOperatorWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1844
+ def visit_local_variable_operator_write_node(node); end
+
+ # Dispatch enter and leave events for LocalVariableOrWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1850
+ def visit_local_variable_or_write_node(node); end
+
+ # Dispatch enter and leave events for LocalVariableReadNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1856
+ def visit_local_variable_read_node(node); end
+
+ # Dispatch enter and leave events for LocalVariableTargetNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1862
+ def visit_local_variable_target_node(node); end
+
+ # Dispatch enter and leave events for LocalVariableWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1868
+ def visit_local_variable_write_node(node); end
+
+ # Dispatch enter and leave events for MatchLastLineNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1874
+ def visit_match_last_line_node(node); end
+
+ # Dispatch enter and leave events for MatchPredicateNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1880
+ def visit_match_predicate_node(node); end
+
+ # Dispatch enter and leave events for MatchRequiredNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1886
+ def visit_match_required_node(node); end
+
+ # Dispatch enter and leave events for MatchWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1892
+ def visit_match_write_node(node); end
+
+ # Dispatch enter and leave events for MissingNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1898
+ def visit_missing_node(node); end
+
+ # Dispatch enter and leave events for ModuleNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1904
+ def visit_module_node(node); end
+
+ # Dispatch enter and leave events for MultiTargetNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1910
+ def visit_multi_target_node(node); end
+
+ # Dispatch enter and leave events for MultiWriteNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1916
+ def visit_multi_write_node(node); end
+
+ # Dispatch enter and leave events for NextNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1922
+ def visit_next_node(node); end
+
+ # Dispatch enter and leave events for NilNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1928
+ def visit_nil_node(node); end
+
+ # Dispatch enter and leave events for NoKeywordsParameterNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1934
+ def visit_no_keywords_parameter_node(node); end
+
+ # Dispatch enter and leave events for NumberedParametersNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1940
+ def visit_numbered_parameters_node(node); end
+
+ # Dispatch enter and leave events for NumberedReferenceReadNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1946
+ def visit_numbered_reference_read_node(node); end
+
+ # Dispatch enter and leave events for OptionalKeywordParameterNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1952
+ def visit_optional_keyword_parameter_node(node); end
+
+ # Dispatch enter and leave events for OptionalParameterNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1958
+ def visit_optional_parameter_node(node); end
+
+ # Dispatch enter and leave events for OrNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1964
+ def visit_or_node(node); end
+
+ # Dispatch enter and leave events for ParametersNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1970
+ def visit_parameters_node(node); end
+
+ # Dispatch enter and leave events for ParenthesesNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1976
+ def visit_parentheses_node(node); end
+
+ # Dispatch enter and leave events for PinnedExpressionNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1982
+ def visit_pinned_expression_node(node); end
+
+ # Dispatch enter and leave events for PinnedVariableNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1988
+ def visit_pinned_variable_node(node); end
+
+ # Dispatch enter and leave events for PostExecutionNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#1994
+ def visit_post_execution_node(node); end
+
+ # Dispatch enter and leave events for PreExecutionNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2000
+ def visit_pre_execution_node(node); end
+
+ # Dispatch enter and leave events for ProgramNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2006
+ def visit_program_node(node); end
+
+ # Dispatch enter and leave events for RangeNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2012
+ def visit_range_node(node); end
+
+ # Dispatch enter and leave events for RationalNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2018
+ def visit_rational_node(node); end
+
+ # Dispatch enter and leave events for RedoNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2024
+ def visit_redo_node(node); end
+
+ # Dispatch enter and leave events for RegularExpressionNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2030
+ def visit_regular_expression_node(node); end
+
+ # Dispatch enter and leave events for RequiredKeywordParameterNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2036
+ def visit_required_keyword_parameter_node(node); end
+
+ # Dispatch enter and leave events for RequiredParameterNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2042
+ def visit_required_parameter_node(node); end
+
+ # Dispatch enter and leave events for RescueModifierNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2048
+ def visit_rescue_modifier_node(node); end
+
+ # Dispatch enter and leave events for RescueNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2054
+ def visit_rescue_node(node); end
+
+ # Dispatch enter and leave events for RestParameterNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2060
+ def visit_rest_parameter_node(node); end
+
+ # Dispatch enter and leave events for RetryNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2066
+ def visit_retry_node(node); end
+
+ # Dispatch enter and leave events for ReturnNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2072
+ def visit_return_node(node); end
+
+ # Dispatch enter and leave events for SelfNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2078
+ def visit_self_node(node); end
+
+ # Dispatch enter and leave events for ShareableConstantNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2084
+ def visit_shareable_constant_node(node); end
+
+ # Dispatch enter and leave events for SingletonClassNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2090
+ def visit_singleton_class_node(node); end
+
+ # Dispatch enter and leave events for SourceEncodingNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2096
+ def visit_source_encoding_node(node); end
+
+ # Dispatch enter and leave events for SourceFileNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2102
+ def visit_source_file_node(node); end
+
+ # Dispatch enter and leave events for SourceLineNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2108
+ def visit_source_line_node(node); end
+
+ # Dispatch enter and leave events for SplatNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2114
+ def visit_splat_node(node); end
+
+ # Dispatch enter and leave events for StatementsNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2120
+ def visit_statements_node(node); end
+
+ # Dispatch enter and leave events for StringNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2126
+ def visit_string_node(node); end
+
+ # Dispatch enter and leave events for SuperNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2132
+ def visit_super_node(node); end
+
+ # Dispatch enter and leave events for SymbolNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2138
+ def visit_symbol_node(node); end
+
+ # Dispatch enter and leave events for TrueNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2144
+ def visit_true_node(node); end
+
+ # Dispatch enter and leave events for UndefNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2150
+ def visit_undef_node(node); end
+
+ # Dispatch enter and leave events for UnlessNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2156
+ def visit_unless_node(node); end
+
+ # Dispatch enter and leave events for UntilNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2162
+ def visit_until_node(node); end
+
+ # Dispatch enter and leave events for WhenNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2168
+ def visit_when_node(node); end
+
+ # Dispatch enter and leave events for WhileNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2174
+ def visit_while_node(node); end
+
+ # Dispatch enter and leave events for XStringNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2180
+ def visit_x_string_node(node); end
+
+ # Dispatch enter and leave events for YieldNode nodes.
+ #
+ # source://prism//lib/prism/dispatcher.rb#2186
+ def visit_yield_node(node); end
+end
+
+# This visitor provides the ability to call Node#to_dot, which converts a
+# subtree into a graphviz dot graph.
+#
+# source://prism//lib/prism/dot_visitor.rb#14
+class Prism::DotVisitor < ::Prism::Visitor
+ # Initialize a new dot visitor.
+ #
+ # @return [DotVisitor] a new instance of DotVisitor
+ #
+ # source://prism//lib/prism/dot_visitor.rb#106
+ def initialize; end
+
+ # The digraph that is being built.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#103
+ def digraph; end
+
+ # Convert this visitor into a graphviz dot graph string.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#111
+ def to_dot; end
+
+ # Visit a AliasGlobalVariableNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#116
+ def visit_alias_global_variable_node(node); end
+
+ # Visit a AliasMethodNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#141
+ def visit_alias_method_node(node); end
+
+ # Visit a AlternationPatternNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#166
+ def visit_alternation_pattern_node(node); end
+
+ # Visit a AndNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#191
+ def visit_and_node(node); end
+
+ # Visit a ArgumentsNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#216
+ def visit_arguments_node(node); end
+
+ # Visit a ArrayNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#246
+ def visit_array_node(node); end
+
+ # Visit a ArrayPatternNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#286
+ def visit_array_pattern_node(node); end
+
+ # Visit a AssocNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#348
+ def visit_assoc_node(node); end
+
+ # Visit a AssocSplatNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#375
+ def visit_assoc_splat_node(node); end
+
+ # Visit a BackReferenceReadNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#398
+ def visit_back_reference_read_node(node); end
+
+ # Visit a BeginNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#415
+ def visit_begin_node(node); end
+
+ # Visit a BlockArgumentNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#463
+ def visit_block_argument_node(node); end
+
+ # Visit a BlockLocalVariableNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#486
+ def visit_block_local_variable_node(node); end
+
+ # Visit a BlockNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#506
+ def visit_block_node(node); end
+
+ # Visit a BlockParameterNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#541
+ def visit_block_parameter_node(node); end
+
+ # Visit a BlockParametersNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#569
+ def visit_block_parameters_node(node); end
+
+ # Visit a BreakNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#612
+ def visit_break_node(node); end
+
+ # Visit a CallAndWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#635
+ def visit_call_and_write_node(node); end
+
+ # Visit a CallNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#681
+ def visit_call_node(node); end
+
+ # Visit a CallOperatorWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#739
+ def visit_call_operator_write_node(node); end
+
+ # Visit a CallOrWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#788
+ def visit_call_or_write_node(node); end
+
+ # Visit a CallTargetNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#834
+ def visit_call_target_node(node); end
+
+ # Visit a CapturePatternNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#864
+ def visit_capture_pattern_node(node); end
+
+ # Visit a CaseMatchNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#889
+ def visit_case_match_node(node); end
+
+ # Visit a CaseNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#934
+ def visit_case_node(node); end
+
+ # Visit a ClassNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#979
+ def visit_class_node(node); end
+
+ # Visit a ClassVariableAndWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1026
+ def visit_class_variable_and_write_node(node); end
+
+ # Visit a ClassVariableOperatorWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1053
+ def visit_class_variable_operator_write_node(node); end
+
+ # Visit a ClassVariableOrWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1083
+ def visit_class_variable_or_write_node(node); end
+
+ # Visit a ClassVariableReadNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1110
+ def visit_class_variable_read_node(node); end
+
+ # Visit a ClassVariableTargetNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1127
+ def visit_class_variable_target_node(node); end
+
+ # Visit a ClassVariableWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1144
+ def visit_class_variable_write_node(node); end
+
+ # Visit a ConstantAndWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1171
+ def visit_constant_and_write_node(node); end
+
+ # Visit a ConstantOperatorWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1198
+ def visit_constant_operator_write_node(node); end
+
+ # Visit a ConstantOrWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1228
+ def visit_constant_or_write_node(node); end
+
+ # Visit a ConstantPathAndWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1255
+ def visit_constant_path_and_write_node(node); end
+
+ # Visit a ConstantPathNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1280
+ def visit_constant_path_node(node); end
+
+ # Visit a ConstantPathOperatorWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1309
+ def visit_constant_path_operator_write_node(node); end
+
+ # Visit a ConstantPathOrWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1337
+ def visit_constant_path_or_write_node(node); end
+
+ # Visit a ConstantPathTargetNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1362
+ def visit_constant_path_target_node(node); end
+
+ # Visit a ConstantPathWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1391
+ def visit_constant_path_write_node(node); end
+
+ # Visit a ConstantReadNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1416
+ def visit_constant_read_node(node); end
+
+ # Visit a ConstantTargetNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1433
+ def visit_constant_target_node(node); end
+
+ # Visit a ConstantWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1450
+ def visit_constant_write_node(node); end
+
+ # Visit a DefNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1477
+ def visit_def_node(node); end
+
+ # Visit a DefinedNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1546
+ def visit_defined_node(node); end
+
+ # Visit a ElseNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1577
+ def visit_else_node(node); end
+
+ # Visit a EmbeddedStatementsNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1605
+ def visit_embedded_statements_node(node); end
+
+ # Visit a EmbeddedVariableNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1631
+ def visit_embedded_variable_node(node); end
+
+ # Visit a EnsureNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1652
+ def visit_ensure_node(node); end
+
+ # Visit a FalseNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1678
+ def visit_false_node(node); end
+
+ # Visit a FindPatternNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1692
+ def visit_find_pattern_node(node); end
+
+ # Visit a FlipFlopNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1743
+ def visit_flip_flop_node(node); end
+
+ # Visit a FloatNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1775
+ def visit_float_node(node); end
+
+ # Visit a ForNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1792
+ def visit_for_node(node); end
+
+ # Visit a ForwardingArgumentsNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1834
+ def visit_forwarding_arguments_node(node); end
+
+ # Visit a ForwardingParameterNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1848
+ def visit_forwarding_parameter_node(node); end
+
+ # Visit a ForwardingSuperNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1862
+ def visit_forwarding_super_node(node); end
+
+ # Visit a GlobalVariableAndWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1882
+ def visit_global_variable_and_write_node(node); end
+
+ # Visit a GlobalVariableOperatorWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1909
+ def visit_global_variable_operator_write_node(node); end
+
+ # Visit a GlobalVariableOrWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1939
+ def visit_global_variable_or_write_node(node); end
+
+ # Visit a GlobalVariableReadNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1966
+ def visit_global_variable_read_node(node); end
+
+ # Visit a GlobalVariableTargetNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#1983
+ def visit_global_variable_target_node(node); end
+
+ # Visit a GlobalVariableWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2000
+ def visit_global_variable_write_node(node); end
+
+ # Visit a HashNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2027
+ def visit_hash_node(node); end
+
+ # Visit a HashPatternNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2060
+ def visit_hash_pattern_node(node); end
+
+ # Visit a IfNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2109
+ def visit_if_node(node); end
+
+ # Visit a ImaginaryNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2154
+ def visit_imaginary_node(node); end
+
+ # Visit a ImplicitNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2172
+ def visit_implicit_node(node); end
+
+ # Visit a ImplicitRestNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2190
+ def visit_implicit_rest_node(node); end
+
+ # Visit a InNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2204
+ def visit_in_node(node); end
+
+ # Visit a IndexAndWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2236
+ def visit_index_and_write_node(node); end
+
+ # Visit a IndexOperatorWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2289
+ def visit_index_operator_write_node(node); end
+
+ # Visit a IndexOrWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2345
+ def visit_index_or_write_node(node); end
+
+ # Visit a IndexTargetNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2398
+ def visit_index_target_node(node); end
+
+ # Visit a InstanceVariableAndWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2437
+ def visit_instance_variable_and_write_node(node); end
+
+ # Visit a InstanceVariableOperatorWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2464
+ def visit_instance_variable_operator_write_node(node); end
+
+ # Visit a InstanceVariableOrWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2494
+ def visit_instance_variable_or_write_node(node); end
+
+ # Visit a InstanceVariableReadNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2521
+ def visit_instance_variable_read_node(node); end
+
+ # Visit a InstanceVariableTargetNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2538
+ def visit_instance_variable_target_node(node); end
+
+ # Visit a InstanceVariableWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2555
+ def visit_instance_variable_write_node(node); end
+
+ # Visit a IntegerNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2582
+ def visit_integer_node(node); end
+
+ # Visit a InterpolatedMatchLastLineNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2602
+ def visit_interpolated_match_last_line_node(node); end
+
+ # Visit a InterpolatedRegularExpressionNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2638
+ def visit_interpolated_regular_expression_node(node); end
+
+ # Visit a InterpolatedStringNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2674
+ def visit_interpolated_string_node(node); end
+
+ # Visit a InterpolatedSymbolNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2714
+ def visit_interpolated_symbol_node(node); end
+
+ # Visit a InterpolatedXStringNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2751
+ def visit_interpolated_x_string_node(node); end
+
+ # Visit a ItLocalVariableReadNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2784
+ def visit_it_local_variable_read_node(node); end
+
+ # Visit a ItParametersNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2798
+ def visit_it_parameters_node(node); end
+
+ # Visit a KeywordHashNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2812
+ def visit_keyword_hash_node(node); end
+
+ # Visit a KeywordRestParameterNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2842
+ def visit_keyword_rest_parameter_node(node); end
+
+ # Visit a LambdaNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2870
+ def visit_lambda_node(node); end
+
+ # Visit a LocalVariableAndWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2908
+ def visit_local_variable_and_write_node(node); end
+
+ # Visit a LocalVariableOperatorWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2938
+ def visit_local_variable_operator_write_node(node); end
+
+ # Visit a LocalVariableOrWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#2971
+ def visit_local_variable_or_write_node(node); end
+
+ # Visit a LocalVariableReadNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3001
+ def visit_local_variable_read_node(node); end
+
+ # Visit a LocalVariableTargetNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3021
+ def visit_local_variable_target_node(node); end
+
+ # Visit a LocalVariableWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3041
+ def visit_local_variable_write_node(node); end
+
+ # Visit a MatchLastLineNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3071
+ def visit_match_last_line_node(node); end
+
+ # Visit a MatchPredicateNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3100
+ def visit_match_predicate_node(node); end
+
+ # Visit a MatchRequiredNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3125
+ def visit_match_required_node(node); end
+
+ # Visit a MatchWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3150
+ def visit_match_write_node(node); end
+
+ # Visit a MissingNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3181
+ def visit_missing_node(node); end
+
+ # Visit a ModuleNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3195
+ def visit_module_node(node); end
+
+ # Visit a MultiTargetNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3231
+ def visit_multi_target_node(node); end
+
+ # Visit a MultiWriteNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3287
+ def visit_multi_write_node(node); end
+
+ # Visit a NextNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3350
+ def visit_next_node(node); end
+
+ # Visit a NilNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3373
+ def visit_nil_node(node); end
+
+ # Visit a NoKeywordsParameterNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3387
+ def visit_no_keywords_parameter_node(node); end
+
+ # Visit a NumberedParametersNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3407
+ def visit_numbered_parameters_node(node); end
+
+ # Visit a NumberedReferenceReadNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3424
+ def visit_numbered_reference_read_node(node); end
+
+ # Visit a OptionalKeywordParameterNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3441
+ def visit_optional_keyword_parameter_node(node); end
+
+ # Visit a OptionalParameterNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3468
+ def visit_optional_parameter_node(node); end
+
+ # Visit a OrNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3498
+ def visit_or_node(node); end
+
+ # Visit a ParametersNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3523
+ def visit_parameters_node(node); end
+
+ # Visit a ParenthesesNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3607
+ def visit_parentheses_node(node); end
+
+ # Visit a PinnedExpressionNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3633
+ def visit_pinned_expression_node(node); end
+
+ # Visit a PinnedVariableNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3660
+ def visit_pinned_variable_node(node); end
+
+ # Visit a PostExecutionNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3681
+ def visit_post_execution_node(node); end
+
+ # Visit a PreExecutionNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3710
+ def visit_pre_execution_node(node); end
+
+ # Visit a ProgramNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3739
+ def visit_program_node(node); end
+
+ # Visit a RangeNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3760
+ def visit_range_node(node); end
+
+ # Visit a RationalNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3792
+ def visit_rational_node(node); end
+
+ # Visit a RedoNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3815
+ def visit_redo_node(node); end
+
+ # Visit a RegularExpressionNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3829
+ def visit_regular_expression_node(node); end
+
+ # Visit a RequiredKeywordParameterNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3858
+ def visit_required_keyword_parameter_node(node); end
+
+ # Visit a RequiredParameterNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3881
+ def visit_required_parameter_node(node); end
+
+ # Visit a RescueModifierNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3901
+ def visit_rescue_modifier_node(node); end
+
+ # Visit a RescueNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3926
+ def visit_rescue_node(node); end
+
+ # Visit a RestParameterNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#3979
+ def visit_rest_parameter_node(node); end
+
+ # Visit a RetryNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4007
+ def visit_retry_node(node); end
+
+ # Visit a ReturnNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4021
+ def visit_return_node(node); end
+
+ # Visit a SelfNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4044
+ def visit_self_node(node); end
+
+ # Visit a ShareableConstantNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4058
+ def visit_shareable_constant_node(node); end
+
+ # Visit a SingletonClassNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4079
+ def visit_singleton_class_node(node); end
+
+ # Visit a SourceEncodingNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4115
+ def visit_source_encoding_node(node); end
+
+ # Visit a SourceFileNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4129
+ def visit_source_file_node(node); end
+
+ # Visit a SourceLineNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4149
+ def visit_source_line_node(node); end
+
+ # Visit a SplatNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4163
+ def visit_splat_node(node); end
+
+ # Visit a StatementsNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4186
+ def visit_statements_node(node); end
+
+ # Visit a StringNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4213
+ def visit_string_node(node); end
+
+ # Visit a SuperNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4246
+ def visit_super_node(node); end
+
+ # Visit a SymbolNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4285
+ def visit_symbol_node(node); end
+
+ # Visit a TrueNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4320
+ def visit_true_node(node); end
+
+ # Visit a UndefNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4334
+ def visit_undef_node(node); end
+
+ # Visit a UnlessNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4364
+ def visit_unless_node(node); end
+
+ # Visit a UntilNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4407
+ def visit_until_node(node); end
+
+ # Visit a WhenNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4442
+ def visit_when_node(node); end
+
+ # Visit a WhileNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4483
+ def visit_while_node(node); end
+
+ # Visit a XStringNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4518
+ def visit_x_string_node(node); end
+
+ # Visit a YieldNode node.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4547
+ def visit_yield_node(node); end
+
+ private
+
+ # Inspect a node that has arguments_node_flags flags to display the flags as a
+ # comma-separated list.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4593
+ def arguments_node_flags_inspect(node); end
+
+ # Inspect a node that has array_node_flags flags to display the flags as a
+ # comma-separated list.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4603
+ def array_node_flags_inspect(node); end
+
+ # Inspect a node that has call_node_flags flags to display the flags as a
+ # comma-separated list.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4611
+ def call_node_flags_inspect(node); end
+
+ # Inspect a node that has encoding_flags flags to display the flags as a
+ # comma-separated list.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4622
+ def encoding_flags_inspect(node); end
+
+ # Inspect a node that has integer_base_flags flags to display the flags as a
+ # comma-separated list.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4631
+ def integer_base_flags_inspect(node); end
+
+ # Inspect a node that has interpolated_string_node_flags flags to display the flags as a
+ # comma-separated list.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4642
+ def interpolated_string_node_flags_inspect(node); end
+
+ # Inspect a node that has keyword_hash_node_flags flags to display the flags as a
+ # comma-separated list.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4651
+ def keyword_hash_node_flags_inspect(node); end
+
+ # Inspect a location to display the start and end line and column numbers.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4587
+ def location_inspect(location); end
+
+ # Inspect a node that has loop_flags flags to display the flags as a
+ # comma-separated list.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4659
+ def loop_flags_inspect(node); end
+
+ # Generate a unique node ID for a node throughout the digraph.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4582
+ def node_id(node); end
+
+ # Inspect a node that has parameter_flags flags to display the flags as a
+ # comma-separated list.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4667
+ def parameter_flags_inspect(node); end
+
+ # Inspect a node that has range_flags flags to display the flags as a
+ # comma-separated list.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4675
+ def range_flags_inspect(node); end
+
+ # Inspect a node that has regular_expression_flags flags to display the flags as a
+ # comma-separated list.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4683
+ def regular_expression_flags_inspect(node); end
+
+ # Inspect a node that has shareable_constant_node_flags flags to display the flags as a
+ # comma-separated list.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4701
+ def shareable_constant_node_flags_inspect(node); end
+
+ # Inspect a node that has string_flags flags to display the flags as a
+ # comma-separated list.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4711
+ def string_flags_inspect(node); end
+
+ # Inspect a node that has symbol_flags flags to display the flags as a
+ # comma-separated list.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#4722
+ def symbol_flags_inspect(node); end
+end
+
+# source://prism//lib/prism/dot_visitor.rb#59
+class Prism::DotVisitor::Digraph
+ # @return [Digraph] a new instance of Digraph
+ #
+ # source://prism//lib/prism/dot_visitor.rb#62
+ def initialize; end
+
+ # source://prism//lib/prism/dot_visitor.rb#76
+ def edge(value); end
+
+ # Returns the value of attribute edges.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#60
+ def edges; end
+
+ # source://prism//lib/prism/dot_visitor.rb#68
+ def node(value); end
+
+ # Returns the value of attribute nodes.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#60
+ def nodes; end
+
+ # source://prism//lib/prism/dot_visitor.rb#80
+ def to_dot; end
+
+ # source://prism//lib/prism/dot_visitor.rb#72
+ def waypoint(value); end
+
+ # Returns the value of attribute waypoints.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#60
+ def waypoints; end
+end
+
+# source://prism//lib/prism/dot_visitor.rb#15
+class Prism::DotVisitor::Field
+ # @return [Field] a new instance of Field
+ #
+ # source://prism//lib/prism/dot_visitor.rb#18
+ def initialize(name, value, port); end
+
+ # Returns the value of attribute name.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#16
+ def name; end
+
+ # Returns the value of attribute port.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#16
+ def port; end
+
+ # source://prism//lib/prism/dot_visitor.rb#24
+ def to_dot; end
+
+ # Returns the value of attribute value.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#16
+ def value; end
+end
+
+# source://prism//lib/prism/dot_visitor.rb#33
+class Prism::DotVisitor::Table
+ # @return [Table] a new instance of Table
+ #
+ # source://prism//lib/prism/dot_visitor.rb#36
+ def initialize(name); end
+
+ # source://prism//lib/prism/dot_visitor.rb#41
+ def field(name, value = T.unsafe(nil), port: T.unsafe(nil)); end
+
+ # Returns the value of attribute fields.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#34
+ def fields; end
+
+ # Returns the value of attribute name.
+ #
+ # source://prism//lib/prism/dot_visitor.rb#34
+ def name; end
+
+ # source://prism//lib/prism/dot_visitor.rb#45
+ def to_dot; end
+end
+
+# Represents an `else` clause in a `case`, `if`, or `unless` statement.
+#
+# if a then b else c end
+# ^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#5448
+class Prism::ElseNode < ::Prism::Node
+ # Initialize a new ElseNode node.
+ #
+ # @return [ElseNode] a new instance of ElseNode
+ #
+ # source://prism//lib/prism/node.rb#5450
+ def initialize(source, node_id, location, flags, else_keyword_loc, statements, end_keyword_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#5545
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#5461
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#5466
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#5478
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#5471
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?else_keyword_loc: Location, ?statements: StatementsNode?, ?end_keyword_loc: Location?) -> ElseNode
+ #
+ # source://prism//lib/prism/node.rb#5483
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), else_keyword_loc: T.unsafe(nil), statements: T.unsafe(nil), end_keyword_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#5466
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, else_keyword_loc: Location, statements: StatementsNode?, end_keyword_loc: Location? }
+ #
+ # source://prism//lib/prism/node.rb#5491
+ def deconstruct_keys(keys); end
+
+ # def else_keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#5519
+ def else_keyword; end
+
+ # attr_reader else_keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#5496
+ def else_keyword_loc; end
+
+ # def end_keyword: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#5524
+ def end_keyword; end
+
+ # attr_reader end_keyword_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#5506
+ def end_keyword_loc; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#5529
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader statements: StatementsNode?
+ #
+ # source://prism//lib/prism/node.rb#5503
+ def statements; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#5534
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#5539
+ def type; end
+ end
+end
+
+# EmbDocComment objects correspond to comments that are surrounded by =begin
+# and =end.
+#
+# source://prism//lib/prism/parse_result.rb#412
+class Prism::EmbDocComment < ::Prism::Comment
+ # Returns a string representation of this comment.
+ #
+ # source://prism//lib/prism/parse_result.rb#419
+ sig { returns(String) }
+ def inspect; end
+
+ # This can only be true for inline comments.
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/parse_result.rb#414
+ sig { override.returns(T::Boolean) }
+ def trailing?; end
+end
+
+# Represents an interpolated set of statements.
+#
+# "foo #{bar}"
+# ^^^^^^
+#
+# source://prism//lib/prism/node.rb#5557
+class Prism::EmbeddedStatementsNode < ::Prism::Node
+ # Initialize a new EmbeddedStatementsNode node.
+ #
+ # @return [EmbeddedStatementsNode] a new instance of EmbeddedStatementsNode
+ #
+ # source://prism//lib/prism/node.rb#5559
+ def initialize(source, node_id, location, flags, opening_loc, statements, closing_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#5648
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#5570
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#5575
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism//lib/prism/node.rb#5627
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#5615
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#5587
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#5580
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?statements: StatementsNode?, ?closing_loc: Location) -> EmbeddedStatementsNode
+ #
+ # source://prism//lib/prism/node.rb#5592
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), opening_loc: T.unsafe(nil), statements: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#5575
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location, statements: StatementsNode?, closing_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#5600
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#5632
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def opening: () -> String
+ #
+ # source://prism//lib/prism/node.rb#5622
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#5605
+ def opening_loc; end
+
+ # attr_reader statements: StatementsNode?
+ #
+ # source://prism//lib/prism/node.rb#5612
+ def statements; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#5637
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#5642
+ def type; end
+ end
+end
+
+# Represents an interpolated variable.
+#
+# "foo #@bar"
+# ^^^^^
+#
+# source://prism//lib/prism/node.rb#5660
+class Prism::EmbeddedVariableNode < ::Prism::Node
+ # Initialize a new EmbeddedVariableNode node.
+ #
+ # @return [EmbeddedVariableNode] a new instance of EmbeddedVariableNode
+ #
+ # source://prism//lib/prism/node.rb#5662
+ def initialize(source, node_id, location, flags, operator_loc, variable); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#5736
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#5672
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#5677
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#5687
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#5682
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?operator_loc: Location, ?variable: Prism::node) -> EmbeddedVariableNode
+ #
+ # source://prism//lib/prism/node.rb#5692
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), operator_loc: T.unsafe(nil), variable: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#5677
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, operator_loc: Location, variable: Prism::node }
+ #
+ # source://prism//lib/prism/node.rb#5700
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#5720
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#5715
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#5705
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#5725
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader variable: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#5712
+ def variable; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#5730
+ def type; end
+ end
+end
+
+# Flags for nodes that have unescaped content.
+#
+# source://prism//lib/prism/node.rb#16680
+module Prism::EncodingFlags; end
+
+# internal bytes forced the encoding to binary
+#
+# source://prism//lib/prism/node.rb#16685
+Prism::EncodingFlags::FORCED_BINARY_ENCODING = T.let(T.unsafe(nil), Integer)
+
+# internal bytes forced the encoding to UTF-8
+#
+# source://prism//lib/prism/node.rb#16682
+Prism::EncodingFlags::FORCED_UTF8_ENCODING = T.let(T.unsafe(nil), Integer)
+
+# Represents an `ensure` clause in a `begin` statement.
+#
+# begin
+# foo
+# ensure
+# ^^^^^^
+# bar
+# end
+#
+# source://prism//lib/prism/node.rb#5751
+class Prism::EnsureNode < ::Prism::Node
+ # Initialize a new EnsureNode node.
+ #
+ # @return [EnsureNode] a new instance of EnsureNode
+ #
+ # source://prism//lib/prism/node.rb#5753
+ def initialize(source, node_id, location, flags, ensure_keyword_loc, statements, end_keyword_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#5842
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#5764
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#5769
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#5781
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#5774
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?ensure_keyword_loc: Location, ?statements: StatementsNode?, ?end_keyword_loc: Location) -> EnsureNode
+ #
+ # source://prism//lib/prism/node.rb#5786
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), ensure_keyword_loc: T.unsafe(nil), statements: T.unsafe(nil), end_keyword_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#5769
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, ensure_keyword_loc: Location, statements: StatementsNode?, end_keyword_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#5794
+ def deconstruct_keys(keys); end
+
+ # def end_keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#5821
+ def end_keyword; end
+
+ # attr_reader end_keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#5809
+ def end_keyword_loc; end
+
+ # def ensure_keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#5816
+ def ensure_keyword; end
+
+ # attr_reader ensure_keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#5799
+ def ensure_keyword_loc; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#5826
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader statements: StatementsNode?
+ #
+ # source://prism//lib/prism/node.rb#5806
+ def statements; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#5831
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#5836
+ def type; end
+ end
+end
+
+# Represents the use of the literal `false` keyword.
+#
+# false
+# ^^^^^
+#
+# source://prism//lib/prism/node.rb#5854
+class Prism::FalseNode < ::Prism::Node
+ # Initialize a new FalseNode node.
+ #
+ # @return [FalseNode] a new instance of FalseNode
+ #
+ # source://prism//lib/prism/node.rb#5856
+ def initialize(source, node_id, location, flags); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#5913
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#5864
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#5869
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#5879
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#5874
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> FalseNode
+ #
+ # source://prism//lib/prism/node.rb#5884
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#5869
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
+ #
+ # source://prism//lib/prism/node.rb#5892
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#5897
+ sig { override.returns(String) }
+ def inspect; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#5902
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#5907
+ def type; end
+ end
+end
+
+# Represents a find pattern in pattern matching.
+#
+# foo in *bar, baz, *qux
+# ^^^^^^^^^^^^^^^
+#
+# foo in [*bar, baz, *qux]
+# ^^^^^^^^^^^^^^^^^
+#
+# foo in Foo(*bar, baz, *qux)
+# ^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#5928
+class Prism::FindPatternNode < ::Prism::Node
+ # Initialize a new FindPatternNode node.
+ #
+ # @return [FindPatternNode] a new instance of FindPatternNode
+ #
+ # source://prism//lib/prism/node.rb#5930
+ def initialize(source, node_id, location, flags, constant, left, requireds, right, opening_loc, closing_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#6046
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#5944
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#5949
+ def child_nodes; end
+
+ # def closing: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#6025
+ def closing; end
+
+ # attr_reader closing_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#6007
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#5964
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#5954
+ def compact_child_nodes; end
+
+ # attr_reader constant: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#5982
+ def constant; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?constant: Prism::node?, ?left: Prism::node, ?requireds: Array[Prism::node], ?right: Prism::node, ?opening_loc: Location?, ?closing_loc: Location?) -> FindPatternNode
+ #
+ # source://prism//lib/prism/node.rb#5969
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), constant: T.unsafe(nil), left: T.unsafe(nil), requireds: T.unsafe(nil), right: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#5949
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, constant: Prism::node?, left: Prism::node, requireds: Array[Prism::node], right: Prism::node, opening_loc: Location?, closing_loc: Location? }
+ #
+ # source://prism//lib/prism/node.rb#5977
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#6030
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader left: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#5985
+ def left; end
+
+ # def opening: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#6020
+ def opening; end
+
+ # attr_reader opening_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#5994
+ def opening_loc; end
+
+ # attr_reader requireds: Array[Prism::node]
+ #
+ # source://prism//lib/prism/node.rb#5988
+ def requireds; end
+
+ # attr_reader right: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#5991
+ def right; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#6035
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#6040
+ def type; end
+ end
+end
+
+# Represents the use of the `..` or `...` operators to create flip flops.
+#
+# baz if foo .. bar
+# ^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#6062
+class Prism::FlipFlopNode < ::Prism::Node
+ # Initialize a new FlipFlopNode node.
+ #
+ # @return [FlipFlopNode] a new instance of FlipFlopNode
+ #
+ # source://prism//lib/prism/node.rb#6064
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ left: T.nilable(Prism::Node),
+ right: T.nilable(Prism::Node),
+ operator_loc: Prism::Location
+ ).void
+ end
+ def initialize(source, node_id, location, flags, left, right, operator_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#6150
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#6075
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#6080
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#6093
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#6085
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?left: Prism::node?, ?right: Prism::node?, ?operator_loc: Location) -> FlipFlopNode
+ #
+ # source://prism//lib/prism/node.rb#6098
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ left: T.nilable(Prism::Node),
+ right: T.nilable(Prism::Node),
+ operator_loc: Prism::Location
+ ).returns(Prism::FlipFlopNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), left: T.unsafe(nil), right: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#6080
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, left: Prism::node?, right: Prism::node?, operator_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#6106
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ # def exclude_end?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#6111
+ sig { returns(T::Boolean) }
+ def exclude_end?; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#6134
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader left: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#6116
+ sig { returns(T.nilable(Prism::Node)) }
+ def left; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#6129
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#6122
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # attr_reader right: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#6119
+ sig { returns(T.nilable(Prism::Node)) }
+ def right; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#6139
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#6144
+ def type; end
+ end
+end
+
+# Represents a floating point number literal.
+#
+# 1.0
+# ^^^
+#
+# source://prism//lib/prism/node.rb#6163
+class Prism::FloatNode < ::Prism::Node
+ # Initialize a new FloatNode node.
+ #
+ # @return [FloatNode] a new instance of FloatNode
+ #
+ # source://prism//lib/prism/node.rb#6165
+ def initialize(source, node_id, location, flags, value); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#6226
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#6174
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#6179
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#6189
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#6184
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?value: Float) -> FloatNode
+ #
+ # source://prism//lib/prism/node.rb#6194
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#6179
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, value: Float }
+ #
+ # source://prism//lib/prism/node.rb#6202
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#6210
+ sig { override.returns(String) }
+ def inspect; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#6215
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # The value of the floating point number as a Float.
+ #
+ # source://prism//lib/prism/node.rb#6207
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#6220
+ def type; end
+ end
+end
+
+# Represents the use of the `for` keyword.
+#
+# for i in a end
+# ^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#6236
+class Prism::ForNode < ::Prism::Node
+ # Initialize a new ForNode node.
+ #
+ # @return [ForNode] a new instance of ForNode
+ #
+ # source://prism//lib/prism/node.rb#6238
+ def initialize(source, node_id, location, flags, index, collection, statements, for_keyword_loc, in_keyword_loc, do_keyword_loc, end_keyword_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#6392
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#6253
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#6258
+ def child_nodes; end
+
+ # The collection to iterate over.
+ #
+ # for i in a end
+ # ^
+ #
+ # source://prism//lib/prism/node.rb#6299
+ def collection; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#6272
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#6263
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?index: Prism::node, ?collection: Prism::node, ?statements: StatementsNode?, ?for_keyword_loc: Location, ?in_keyword_loc: Location, ?do_keyword_loc: Location?, ?end_keyword_loc: Location) -> ForNode
+ #
+ # source://prism//lib/prism/node.rb#6277
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), index: T.unsafe(nil), collection: T.unsafe(nil), statements: T.unsafe(nil), for_keyword_loc: T.unsafe(nil), in_keyword_loc: T.unsafe(nil), do_keyword_loc: T.unsafe(nil), end_keyword_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#6258
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, index: Prism::node, collection: Prism::node, statements: StatementsNode?, for_keyword_loc: Location, in_keyword_loc: Location, do_keyword_loc: Location?, end_keyword_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#6285
+ def deconstruct_keys(keys); end
+
+ # def do_keyword: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#6366
+ def do_keyword; end
+
+ # The location of the `do` keyword, if present.
+ #
+ # for i in a do end
+ # ^^
+ #
+ # source://prism//lib/prism/node.rb#6333
+ def do_keyword_loc; end
+
+ # def end_keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#6371
+ def end_keyword; end
+
+ # The location of the `end` keyword.
+ #
+ # for i in a end
+ # ^^^
+ #
+ # source://prism//lib/prism/node.rb#6349
+ def end_keyword_loc; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def for_keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#6356
+ def for_keyword; end
+
+ # The location of the `for` keyword.
+ #
+ # for i in a end
+ # ^^^
+ #
+ # source://prism//lib/prism/node.rb#6313
+ def for_keyword_loc; end
+
+ # def in_keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#6361
+ def in_keyword; end
+
+ # The location of the `in` keyword.
+ #
+ # for i in a end
+ # ^^
+ #
+ # source://prism//lib/prism/node.rb#6323
+ def in_keyword_loc; end
+
+ # The index expression for `for` loops.
+ #
+ # for i in a end
+ # ^
+ #
+ # source://prism//lib/prism/node.rb#6293
+ def index; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#6376
+ sig { override.returns(String) }
+ def inspect; end
+
+ # Represents the body of statements to execute for each iteration of the loop.
+ #
+ # for i in a
+ # foo(i)
+ # ^^^^^^
+ # end
+ #
+ # source://prism//lib/prism/node.rb#6307
+ def statements; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#6381
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#6386
+ def type; end
+ end
+end
+
+# Represents forwarding all arguments to this method to another method.
+#
+# def foo(...)
+# bar(...)
+# ^^^
+# end
+#
+# source://prism//lib/prism/node.rb#6410
+class Prism::ForwardingArgumentsNode < ::Prism::Node
+ # Initialize a new ForwardingArgumentsNode node.
+ #
+ # @return [ForwardingArgumentsNode] a new instance of ForwardingArgumentsNode
+ #
+ # source://prism//lib/prism/node.rb#6412
+ def initialize(source, node_id, location, flags); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#6469
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#6420
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#6425
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#6435
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#6430
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> ForwardingArgumentsNode
+ #
+ # source://prism//lib/prism/node.rb#6440
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#6425
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
+ #
+ # source://prism//lib/prism/node.rb#6448
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#6453
+ sig { override.returns(String) }
+ def inspect; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#6458
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#6463
+ def type; end
+ end
+end
+
+# Represents the use of the forwarding parameter in a method, block, or lambda declaration.
+#
+# def foo(...)
+# ^^^
+# end
+#
+# source://prism//lib/prism/node.rb#6479
+class Prism::ForwardingParameterNode < ::Prism::Node
+ # Initialize a new ForwardingParameterNode node.
+ #
+ # @return [ForwardingParameterNode] a new instance of ForwardingParameterNode
+ #
+ # source://prism//lib/prism/node.rb#6481
+ def initialize(source, node_id, location, flags); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#6538
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#6489
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#6494
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#6504
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#6499
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> ForwardingParameterNode
+ #
+ # source://prism//lib/prism/node.rb#6509
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#6494
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
+ #
+ # source://prism//lib/prism/node.rb#6517
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#6522
+ sig { override.returns(String) }
+ def inspect; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#6527
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#6532
+ def type; end
+ end
+end
+
+# Represents the use of the `super` keyword without parentheses or arguments.
+#
+# super
+# ^^^^^
+#
+# source://prism//lib/prism/node.rb#6547
+class Prism::ForwardingSuperNode < ::Prism::Node
+ # Initialize a new ForwardingSuperNode node.
+ #
+ # @return [ForwardingSuperNode] a new instance of ForwardingSuperNode
+ #
+ # source://prism//lib/prism/node.rb#6549
+ def initialize(source, node_id, location, flags, block); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#6612
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#6558
+ def accept(visitor); end
+
+ # attr_reader block: BlockNode?
+ #
+ # source://prism//lib/prism/node.rb#6593
+ def block; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#6563
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#6575
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#6568
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?block: BlockNode?) -> ForwardingSuperNode
+ #
+ # source://prism//lib/prism/node.rb#6580
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), block: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#6563
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, block: BlockNode? }
+ #
+ # source://prism//lib/prism/node.rb#6588
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#6596
+ sig { override.returns(String) }
+ def inspect; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#6601
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#6606
+ def type; end
+ end
+end
+
+# Represents the use of the `&&=` operator for assignment to a global variable.
+#
+# $target &&= value
+# ^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#6622
+class Prism::GlobalVariableAndWriteNode < ::Prism::Node
+ # Initialize a new GlobalVariableAndWriteNode node.
+ #
+ # @return [GlobalVariableAndWriteNode] a new instance of GlobalVariableAndWriteNode
+ #
+ # source://prism//lib/prism/node.rb#6624
+ def initialize(source, node_id, location, flags, name, name_loc, operator_loc, value); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#6710
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#6636
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#6641
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#6651
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#6646
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> GlobalVariableAndWriteNode
+ #
+ # source://prism//lib/prism/node.rb#6656
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#6641
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
+ #
+ # source://prism//lib/prism/node.rb#6664
+ def deconstruct_keys(keys); end
+
+ # source://prism//lib/prism/desugar_compiler.rb#200
+ def desugar; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#6694
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#6669
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#6672
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#6689
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#6679
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#6699
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#6686
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#6704
+ def type; end
+ end
+end
+
+# Represents assigning to a global variable using an operator that isn't `=`.
+#
+# $target += value
+# ^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#6723
+class Prism::GlobalVariableOperatorWriteNode < ::Prism::Node
+ # Initialize a new GlobalVariableOperatorWriteNode node.
+ #
+ # @return [GlobalVariableOperatorWriteNode] a new instance of GlobalVariableOperatorWriteNode
+ #
+ # source://prism//lib/prism/node.rb#6725
+ def initialize(source, node_id, location, flags, name, name_loc, binary_operator_loc, value, binary_operator); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#6810
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#6738
+ def accept(visitor); end
+
+ # attr_reader binary_operator: Symbol
+ #
+ # source://prism//lib/prism/node.rb#6791
+ def binary_operator; end
+
+ # attr_reader binary_operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#6781
+ def binary_operator_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#6743
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#6753
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#6748
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?binary_operator_loc: Location, ?value: Prism::node, ?binary_operator: Symbol) -> GlobalVariableOperatorWriteNode
+ #
+ # source://prism//lib/prism/node.rb#6758
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), binary_operator_loc: T.unsafe(nil), value: T.unsafe(nil), binary_operator: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#6743
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, binary_operator_loc: Location, value: Prism::node, binary_operator: Symbol }
+ #
+ # source://prism//lib/prism/node.rb#6766
+ def deconstruct_keys(keys); end
+
+ # source://prism//lib/prism/desugar_compiler.rb#212
+ def desugar; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#6794
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#6771
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#6774
+ def name_loc; end
+
+ # Returns the binary operator used to modify the receiver. This method is
+ # deprecated in favor of #binary_operator.
+ #
+ # source://prism//lib/prism/node_ext.rb#403
+ def operator; end
+
+ # Returns the location of the binary operator used to modify the receiver.
+ # This method is deprecated in favor of #binary_operator_loc.
+ #
+ # source://prism//lib/prism/node_ext.rb#410
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#6799
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#6788
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#6804
+ def type; end
+ end
+end
+
+# Represents the use of the `||=` operator for assignment to a global variable.
+#
+# $target ||= value
+# ^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#6824
+class Prism::GlobalVariableOrWriteNode < ::Prism::Node
+ # Initialize a new GlobalVariableOrWriteNode node.
+ #
+ # @return [GlobalVariableOrWriteNode] a new instance of GlobalVariableOrWriteNode
+ #
+ # source://prism//lib/prism/node.rb#6826
+ def initialize(source, node_id, location, flags, name, name_loc, operator_loc, value); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#6912
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#6838
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#6843
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#6853
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#6848
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> GlobalVariableOrWriteNode
+ #
+ # source://prism//lib/prism/node.rb#6858
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#6843
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
+ #
+ # source://prism//lib/prism/node.rb#6866
+ def deconstruct_keys(keys); end
+
+ # source://prism//lib/prism/desugar_compiler.rb#206
+ def desugar; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#6896
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#6871
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#6874
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#6891
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#6881
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#6901
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#6888
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#6906
+ def type; end
+ end
+end
+
+# Represents referencing a global variable.
+#
+# $foo
+# ^^^^
+#
+# source://prism//lib/prism/node.rb#6925
+class Prism::GlobalVariableReadNode < ::Prism::Node
+ # Initialize a new GlobalVariableReadNode node.
+ #
+ # @return [GlobalVariableReadNode] a new instance of GlobalVariableReadNode
+ #
+ # source://prism//lib/prism/node.rb#6927
+ def initialize(source, node_id, location, flags, name); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#6992
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#6936
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#6941
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#6951
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#6946
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> GlobalVariableReadNode
+ #
+ # source://prism//lib/prism/node.rb#6956
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#6941
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
+ #
+ # source://prism//lib/prism/node.rb#6964
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#6976
+ sig { override.returns(String) }
+ def inspect; end
+
+ # The name of the global variable, which is a `$` followed by an [identifier](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#identifier). Alternatively, it can be one of the special global variables designated by a symbol.
+ #
+ # $foo # name `:$foo`
+ #
+ # $_Test # name `:$_Test`
+ #
+ # source://prism//lib/prism/node.rb#6973
+ def name; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#6981
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#6986
+ def type; end
+ end
+end
+
+# Represents writing to a global variable in a context that doesn't have an explicit value.
+#
+# $foo, $bar = baz
+# ^^^^ ^^^^
+#
+# source://prism//lib/prism/node.rb#7002
+class Prism::GlobalVariableTargetNode < ::Prism::Node
+ # Initialize a new GlobalVariableTargetNode node.
+ #
+ # @return [GlobalVariableTargetNode] a new instance of GlobalVariableTargetNode
+ #
+ # source://prism//lib/prism/node.rb#7004
+ def initialize(source, node_id, location, flags, name); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#7065
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#7013
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#7018
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#7028
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#7023
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> GlobalVariableTargetNode
+ #
+ # source://prism//lib/prism/node.rb#7033
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#7018
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
+ #
+ # source://prism//lib/prism/node.rb#7041
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#7049
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#7046
+ def name; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#7054
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#7059
+ def type; end
+ end
+end
+
+# Represents writing to a global variable.
+#
+# $foo = 1
+# ^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#7075
+class Prism::GlobalVariableWriteNode < ::Prism::Node
+ # Initialize a new GlobalVariableWriteNode node.
+ #
+ # @return [GlobalVariableWriteNode] a new instance of GlobalVariableWriteNode
+ #
+ # source://prism//lib/prism/node.rb#7077
+ def initialize(source, node_id, location, flags, name, name_loc, value, operator_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#7179
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#7089
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#7094
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#7104
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#7099
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location) -> GlobalVariableWriteNode
+ #
+ # source://prism//lib/prism/node.rb#7109
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), value: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#7094
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, value: Prism::node, operator_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#7117
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#7163
+ sig { override.returns(String) }
+ def inspect; end
+
+ # The name of the global variable, which is a `$` followed by an [identifier](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#identifier). Alternatively, it can be one of the special global variables designated by a symbol.
+ #
+ # $foo = :bar # name `:$foo`
+ #
+ # $_Test = 123 # name `:$_Test`
+ #
+ # source://prism//lib/prism/node.rb#7126
+ def name; end
+
+ # The location of the global variable's name.
+ #
+ # $foo = :bar
+ # ^^^^
+ #
+ # source://prism//lib/prism/node.rb#7132
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#7158
+ def operator; end
+
+ # The location of the `=` operator.
+ #
+ # $foo = :bar
+ # ^
+ #
+ # source://prism//lib/prism/node.rb#7151
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#7168
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # The value to write to the global variable. It can be any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
+ #
+ # $foo = :bar
+ # ^^^^
+ #
+ # $-xyz = 123
+ # ^^^
+ #
+ # source://prism//lib/prism/node.rb#7145
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#7173
+ def type; end
+ end
+end
+
+# Represents a hash literal.
+#
+# { a => b }
+# ^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#7192
+class Prism::HashNode < ::Prism::Node
+ # Initialize a new HashNode node.
+ #
+ # @return [HashNode] a new instance of HashNode
+ #
+ # source://prism//lib/prism/node.rb#7194
+ def initialize(source, node_id, location, flags, opening_loc, elements, closing_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#7293
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#7205
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#7210
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism//lib/prism/node.rb#7272
+ def closing; end
+
+ # The location of the closing brace.
+ #
+ # { a => b }
+ # ^
+ #
+ # source://prism//lib/prism/node.rb#7260
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#7220
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#7215
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?elements: Array[AssocNode | AssocSplatNode], ?closing_loc: Location) -> HashNode
+ #
+ # source://prism//lib/prism/node.rb#7225
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), opening_loc: T.unsafe(nil), elements: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#7210
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location, elements: Array[AssocNode | AssocSplatNode], closing_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#7233
+ def deconstruct_keys(keys); end
+
+ # The elements of the hash. These can be either `AssocNode`s or `AssocSplatNode`s.
+ #
+ # { a: b }
+ # ^^^^
+ #
+ # { **foo }
+ # ^^^^^
+ #
+ # source://prism//lib/prism/node.rb#7254
+ def elements; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#7277
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def opening: () -> String
+ #
+ # source://prism//lib/prism/node.rb#7267
+ def opening; end
+
+ # The location of the opening brace.
+ #
+ # { a => b }
+ # ^
+ #
+ # source://prism//lib/prism/node.rb#7241
+ def opening_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#7282
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#7287
+ def type; end
+ end
+end
+
+# Represents a hash pattern in pattern matching.
+#
+# foo => { a: 1, b: 2 }
+# ^^^^^^^^^^^^^^
+#
+# foo => { a: 1, b: 2, **c }
+# ^^^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#7309
+class Prism::HashPatternNode < ::Prism::Node
+ # Initialize a new HashPatternNode node.
+ #
+ # @return [HashPatternNode] a new instance of HashPatternNode
+ #
+ # source://prism//lib/prism/node.rb#7311
+ def initialize(source, node_id, location, flags, constant, elements, rest, opening_loc, closing_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#7422
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#7324
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#7329
+ def child_nodes; end
+
+ # def closing: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#7401
+ def closing; end
+
+ # attr_reader closing_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#7383
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#7343
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#7334
+ def compact_child_nodes; end
+
+ # attr_reader constant: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#7361
+ def constant; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?constant: Prism::node?, ?elements: Array[AssocNode], ?rest: AssocSplatNode | NoKeywordsParameterNode | nil, ?opening_loc: Location?, ?closing_loc: Location?) -> HashPatternNode
+ #
+ # source://prism//lib/prism/node.rb#7348
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), constant: T.unsafe(nil), elements: T.unsafe(nil), rest: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#7329
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, constant: Prism::node?, elements: Array[AssocNode], rest: AssocSplatNode | NoKeywordsParameterNode | nil, opening_loc: Location?, closing_loc: Location? }
+ #
+ # source://prism//lib/prism/node.rb#7356
+ def deconstruct_keys(keys); end
+
+ # attr_reader elements: Array[AssocNode]
+ #
+ # source://prism//lib/prism/node.rb#7364
+ def elements; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#7406
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def opening: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#7396
+ def opening; end
+
+ # attr_reader opening_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#7370
+ def opening_loc; end
+
+ # attr_reader rest: AssocSplatNode | NoKeywordsParameterNode | nil
+ #
+ # source://prism//lib/prism/node.rb#7367
+ def rest; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#7411
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#7416
+ def type; end
+ end
+end
+
+# source://prism//lib/prism/node_ext.rb#52
+module Prism::HeredocQuery
+ # Returns true if this node was represented as a heredoc in the source code.
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node_ext.rb#54
+ def heredoc?; end
+end
+
+# Represents the use of the `if` keyword, either in the block form or the modifier form, or a ternary expression.
+#
+# bar if foo
+# ^^^^^^^^^^
+#
+# if foo then bar end
+# ^^^^^^^^^^^^^^^^^^^
+#
+# foo ? bar : baz
+# ^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#7443
+class Prism::IfNode < ::Prism::Node
+ # Initialize a new IfNode node.
+ #
+ # @return [IfNode] a new instance of IfNode
+ #
+ # source://prism//lib/prism/node.rb#7445
+ def initialize(source, node_id, location, flags, if_keyword_loc, predicate, then_keyword_loc, statements, subsequent, end_keyword_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#7621
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#7459
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#7464
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#7478
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#7469
+ def compact_child_nodes; end
+
+ # Returns the subsequent if/elsif/else clause of the if node. This method is
+ # deprecated in favor of #subsequent.
+ #
+ # source://prism//lib/prism/node_ext.rb#485
+ def consequent; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?if_keyword_loc: Location?, ?predicate: Prism::node, ?then_keyword_loc: Location?, ?statements: StatementsNode?, ?subsequent: ElseNode | IfNode | nil, ?end_keyword_loc: Location?) -> IfNode
+ #
+ # source://prism//lib/prism/node.rb#7483
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), if_keyword_loc: T.unsafe(nil), predicate: T.unsafe(nil), then_keyword_loc: T.unsafe(nil), statements: T.unsafe(nil), subsequent: T.unsafe(nil), end_keyword_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#7464
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, if_keyword_loc: Location?, predicate: Prism::node, then_keyword_loc: Location?, statements: StatementsNode?, subsequent: ElseNode | IfNode | nil, end_keyword_loc: Location? }
+ #
+ # source://prism//lib/prism/node.rb#7491
+ def deconstruct_keys(keys); end
+
+ # def end_keyword: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#7600
+ def end_keyword; end
+
+ # The location of the `end` keyword if present, `nil` otherwise.
+ #
+ # if foo
+ # bar
+ # end
+ # ^^^
+ #
+ # source://prism//lib/prism/node.rb#7577
+ def end_keyword_loc; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def if_keyword: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#7590
+ def if_keyword; end
+
+ # The location of the `if` keyword if present.
+ #
+ # bar if foo
+ # ^^
+ #
+ # The `if_keyword_loc` field will be `nil` when the `IfNode` represents a ternary expression.
+ #
+ # source://prism//lib/prism/node.rb#7501
+ def if_keyword_loc; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#7605
+ sig { override.returns(String) }
+ def inspect; end
+
+ # source://prism//lib/prism/parse_result/newlines.rb#91
+ def newline_flag!(lines); end
+
+ # The node for the condition the `IfNode` is testing.
+ #
+ # if foo
+ # ^^^
+ # bar
+ # end
+ #
+ # bar if foo
+ # ^^^
+ #
+ # foo ? bar : baz
+ # ^^^
+ #
+ # source://prism//lib/prism/node.rb#7525
+ def predicate; end
+
+ # Represents the body of statements that will be executed when the predicate is evaluated as truthy. Will be `nil` when no body is provided.
+ #
+ # if foo
+ # bar
+ # ^^^
+ # baz
+ # ^^^
+ # end
+ #
+ # source://prism//lib/prism/node.rb#7554
+ def statements; end
+
+ # Represents an `ElseNode` or an `IfNode` when there is an `else` or an `elsif` in the `if` statement.
+ #
+ # if foo
+ # bar
+ # elsif baz
+ # ^^^^^^^^^
+ # qux
+ # ^^^
+ # end
+ # ^^^
+ #
+ # if foo then bar else baz end
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/node.rb#7569
+ def subsequent; end
+
+ # def then_keyword: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#7595
+ def then_keyword; end
+
+ # The location of the `then` keyword (if present) or the `?` in a ternary expression, `nil` otherwise.
+ #
+ # if foo then bar end
+ # ^^^^
+ #
+ # a ? b : c
+ # ^
+ #
+ # source://prism//lib/prism/node.rb#7534
+ def then_keyword_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#7610
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#7615
+ def type; end
+ end
+end
+
+# Represents an imaginary number literal.
+#
+# 1.0i
+# ^^^^
+#
+# source://prism//lib/prism/node.rb#7636
+class Prism::ImaginaryNode < ::Prism::Node
+ # Initialize a new ImaginaryNode node.
+ #
+ # @return [ImaginaryNode] a new instance of ImaginaryNode
+ #
+ # source://prism//lib/prism/node.rb#7638
+ def initialize(source, node_id, location, flags, numeric); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#7699
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#7647
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#7652
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#7662
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#7657
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?numeric: FloatNode | IntegerNode | RationalNode) -> ImaginaryNode
+ #
+ # source://prism//lib/prism/node.rb#7667
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), numeric: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#7652
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, numeric: FloatNode | IntegerNode | RationalNode }
+ #
+ # source://prism//lib/prism/node.rb#7675
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#7683
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader numeric: FloatNode | IntegerNode | RationalNode
+ #
+ # source://prism//lib/prism/node.rb#7680
+ def numeric; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#7688
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # Returns the value of the node as a Ruby Complex.
+ #
+ # source://prism//lib/prism/node_ext.rb#107
+ sig { returns(Complex) }
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#7693
+ def type; end
+ end
+end
+
+# Represents a node that is implicitly being added to the tree but doesn't correspond directly to a node in the source.
+#
+# { foo: }
+# ^^^^
+#
+# { Foo: }
+# ^^^^
+#
+# foo in { bar: }
+# ^^^^
+#
+# source://prism//lib/prism/node.rb#7715
+class Prism::ImplicitNode < ::Prism::Node
+ # Initialize a new ImplicitNode node.
+ #
+ # @return [ImplicitNode] a new instance of ImplicitNode
+ #
+ # source://prism//lib/prism/node.rb#7717
+ def initialize(source, node_id, location, flags, value); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#7778
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#7726
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#7731
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#7741
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#7736
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?value: Prism::node) -> ImplicitNode
+ #
+ # source://prism//lib/prism/node.rb#7746
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#7731
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, value: Prism::node }
+ #
+ # source://prism//lib/prism/node.rb#7754
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#7762
+ sig { override.returns(String) }
+ def inspect; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#7767
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#7759
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#7772
+ def type; end
+ end
+end
+
+# Represents using a trailing comma to indicate an implicit rest parameter.
+#
+# foo { |bar,| }
+# ^
+#
+# foo in [bar,]
+# ^
+#
+# for foo, in bar do end
+# ^
+#
+# foo, = bar
+# ^
+#
+# source://prism//lib/prism/node.rb#7797
+class Prism::ImplicitRestNode < ::Prism::Node
+ # Initialize a new ImplicitRestNode node.
+ #
+ # @return [ImplicitRestNode] a new instance of ImplicitRestNode
+ #
+ # source://prism//lib/prism/node.rb#7799
+ def initialize(source, node_id, location, flags); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#7856
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#7807
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#7812
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#7822
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#7817
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> ImplicitRestNode
+ #
+ # source://prism//lib/prism/node.rb#7827
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#7812
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
+ #
+ # source://prism//lib/prism/node.rb#7835
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#7840
+ sig { override.returns(String) }
+ def inspect; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#7845
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#7850
+ def type; end
+ end
+end
+
+# Represents the use of the `in` keyword in a case statement.
+#
+# case a; in b then c end
+# ^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#7865
+class Prism::InNode < ::Prism::Node
+ # Initialize a new InNode node.
+ #
+ # @return [InNode] a new instance of InNode
+ #
+ # source://prism//lib/prism/node.rb#7867
+ def initialize(source, node_id, location, flags, pattern, statements, in_loc, then_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#7967
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#7879
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#7884
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#7897
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#7889
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?pattern: Prism::node, ?statements: StatementsNode?, ?in_loc: Location, ?then_loc: Location?) -> InNode
+ #
+ # source://prism//lib/prism/node.rb#7902
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), pattern: T.unsafe(nil), statements: T.unsafe(nil), in_loc: T.unsafe(nil), then_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#7884
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, pattern: Prism::node, statements: StatementsNode?, in_loc: Location, then_loc: Location? }
+ #
+ # source://prism//lib/prism/node.rb#7910
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def in: () -> String
+ #
+ # source://prism//lib/prism/node.rb#7941
+ def in; end
+
+ # attr_reader in_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#7921
+ def in_loc; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#7951
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader pattern: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#7915
+ def pattern; end
+
+ # attr_reader statements: StatementsNode?
+ #
+ # source://prism//lib/prism/node.rb#7918
+ def statements; end
+
+ # def then: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#7946
+ def then; end
+
+ # attr_reader then_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#7928
+ def then_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#7956
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#7961
+ def type; end
+ end
+end
+
+# Represents the use of the `&&=` operator on a call to the `[]` method.
+#
+# foo.bar[baz] &&= value
+# ^^^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#7980
+class Prism::IndexAndWriteNode < ::Prism::Node
+ # Initialize a new IndexAndWriteNode node.
+ #
+ # @return [IndexAndWriteNode] a new instance of IndexAndWriteNode
+ #
+ # source://prism//lib/prism/node.rb#7982
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: T.nilable(Prism::Node),
+ call_operator_loc: T.nilable(Prism::Location),
+ opening_loc: Prism::Location,
+ arguments: T.nilable(Prism::ArgumentsNode),
+ closing_loc: Prism::Location,
+ block: T.nilable(Prism::Node),
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).void
+ end
+ def initialize(source, node_id, location, flags, receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, operator_loc, value); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#8138
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#7998
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # attr_reader arguments: ArgumentsNode?
+ #
+ # source://prism//lib/prism/node.rb#8079
+ sig { returns(T.nilable(Prism::ArgumentsNode)) }
+ def arguments; end
+
+ # def attribute_write?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#8046
+ sig { returns(T::Boolean) }
+ def attribute_write?; end
+
+ # attr_reader block: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#8089
+ sig { returns(T.nilable(Prism::Node)) }
+ def block; end
+
+ # def call_operator: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#8102
+ sig { returns(T.nilable(String)) }
+ def call_operator; end
+
+ # attr_reader call_operator_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#8059
+ sig { returns(T.nilable(Prism::Location)) }
+ def call_operator_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#8003
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism//lib/prism/node.rb#8112
+ sig { returns(String) }
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#8082
+ sig { returns(Prism::Location) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#8018
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#8008
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?opening_loc: Location, ?arguments: ArgumentsNode?, ?closing_loc: Location, ?block: Prism::node?, ?operator_loc: Location, ?value: Prism::node) -> IndexAndWriteNode
+ #
+ # source://prism//lib/prism/node.rb#8023
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: T.nilable(Prism::Node),
+ call_operator_loc: T.nilable(Prism::Location),
+ opening_loc: Prism::Location,
+ arguments: T.nilable(Prism::ArgumentsNode),
+ closing_loc: Prism::Location,
+ block: T.nilable(Prism::Node),
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::IndexAndWriteNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), receiver: T.unsafe(nil), call_operator_loc: T.unsafe(nil), opening_loc: T.unsafe(nil), arguments: T.unsafe(nil), closing_loc: T.unsafe(nil), block: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#8003
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, receiver: Prism::node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Prism::node?, operator_loc: Location, value: Prism::node }
+ #
+ # source://prism//lib/prism/node.rb#8031
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def ignore_visibility?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#8051
+ sig { returns(T::Boolean) }
+ def ignore_visibility?; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#8122
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def opening: () -> String
+ #
+ # source://prism//lib/prism/node.rb#8107
+ sig { returns(String) }
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#8072
+ sig { returns(Prism::Location) }
+ def opening_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#8117
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#8092
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # attr_reader receiver: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#8056
+ sig { returns(T.nilable(Prism::Node)) }
+ def receiver; end
+
+ # def safe_navigation?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#8036
+ sig { returns(T::Boolean) }
+ def safe_navigation?; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#8127
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#8099
+ sig { returns(Prism::Node) }
+ def value; end
+
+ # def variable_call?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#8041
+ sig { returns(T::Boolean) }
+ def variable_call?; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#8132
+ def type; end
+ end
+end
+
+# Represents the use of an assignment operator on a call to `[]`.
+#
+# foo.bar[baz] += value
+# ^^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#8156
+class Prism::IndexOperatorWriteNode < ::Prism::Node
+ # Initialize a new IndexOperatorWriteNode node.
+ #
+ # @return [IndexOperatorWriteNode] a new instance of IndexOperatorWriteNode
+ #
+ # source://prism//lib/prism/node.rb#8158
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: T.nilable(Prism::Node),
+ call_operator_loc: T.nilable(Prism::Location),
+ opening_loc: Prism::Location,
+ arguments: T.nilable(Prism::ArgumentsNode),
+ closing_loc: Prism::Location,
+ block: T.nilable(Prism::Node),
+ binary_operator: Symbol,
+ binary_operator_loc: Prism::Location,
+ value: Prism::Node
+ ).void
+ end
+ def initialize(source, node_id, location, flags, receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, binary_operator, binary_operator_loc, value); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#8313
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#8175
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # attr_reader arguments: ArgumentsNode?
+ #
+ # source://prism//lib/prism/node.rb#8256
+ sig { returns(T.nilable(Prism::ArgumentsNode)) }
+ def arguments; end
+
+ # def attribute_write?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#8223
+ sig { returns(T::Boolean) }
+ def attribute_write?; end
+
+ # attr_reader binary_operator: Symbol
+ #
+ # source://prism//lib/prism/node.rb#8269
+ sig { returns(Symbol) }
+ def binary_operator; end
+
+ # attr_reader binary_operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#8272
+ sig { returns(Prism::Location) }
+ def binary_operator_loc; end
+
+ # attr_reader block: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#8266
+ sig { returns(T.nilable(Prism::Node)) }
+ def block; end
+
+ # def call_operator: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#8282
+ sig { returns(T.nilable(String)) }
+ def call_operator; end
+
+ # attr_reader call_operator_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#8236
+ sig { returns(T.nilable(Prism::Location)) }
+ def call_operator_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#8180
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism//lib/prism/node.rb#8292
+ sig { returns(String) }
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#8259
+ sig { returns(Prism::Location) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#8195
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#8185
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?opening_loc: Location, ?arguments: ArgumentsNode?, ?closing_loc: Location, ?block: Prism::node?, ?binary_operator: Symbol, ?binary_operator_loc: Location, ?value: Prism::node) -> IndexOperatorWriteNode
+ #
+ # source://prism//lib/prism/node.rb#8200
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: T.nilable(Prism::Node),
+ call_operator_loc: T.nilable(Prism::Location),
+ opening_loc: Prism::Location,
+ arguments: T.nilable(Prism::ArgumentsNode),
+ closing_loc: Prism::Location,
+ block: T.nilable(Prism::Node),
+ binary_operator: Symbol,
+ binary_operator_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::IndexOperatorWriteNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), receiver: T.unsafe(nil), call_operator_loc: T.unsafe(nil), opening_loc: T.unsafe(nil), arguments: T.unsafe(nil), closing_loc: T.unsafe(nil), block: T.unsafe(nil), binary_operator: T.unsafe(nil), binary_operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#8180
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, receiver: Prism::node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Prism::node?, binary_operator: Symbol, binary_operator_loc: Location, value: Prism::node }
+ #
+ # source://prism//lib/prism/node.rb#8208
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def ignore_visibility?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#8228
+ sig { returns(T::Boolean) }
+ def ignore_visibility?; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#8297
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def opening: () -> String
+ #
+ # source://prism//lib/prism/node.rb#8287
+ sig { returns(String) }
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#8249
+ sig { returns(Prism::Location) }
+ def opening_loc; end
+
+ # Returns the binary operator used to modify the receiver. This method is
+ # deprecated in favor of #binary_operator.
+ #
+ # source://prism//lib/prism/node_ext.rb#419
+ def operator; end
+
+ # Returns the location of the binary operator used to modify the receiver.
+ # This method is deprecated in favor of #binary_operator_loc.
+ #
+ # source://prism//lib/prism/node_ext.rb#426
+ def operator_loc; end
+
+ # attr_reader receiver: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#8233
+ sig { returns(T.nilable(Prism::Node)) }
+ def receiver; end
+
+ # def safe_navigation?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#8213
+ sig { returns(T::Boolean) }
+ def safe_navigation?; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#8302
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#8279
+ sig { returns(Prism::Node) }
+ def value; end
+
+ # def variable_call?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#8218
+ sig { returns(T::Boolean) }
+ def variable_call?; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#8307
+ def type; end
+ end
+end
+
+# Represents the use of the `||=` operator on a call to `[]`.
+#
+# foo.bar[baz] ||= value
+# ^^^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#8332
+class Prism::IndexOrWriteNode < ::Prism::Node
+ # Initialize a new IndexOrWriteNode node.
+ #
+ # @return [IndexOrWriteNode] a new instance of IndexOrWriteNode
+ #
+ # source://prism//lib/prism/node.rb#8334
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: T.nilable(Prism::Node),
+ call_operator_loc: T.nilable(Prism::Location),
+ opening_loc: Prism::Location,
+ arguments: T.nilable(Prism::ArgumentsNode),
+ closing_loc: Prism::Location,
+ block: T.nilable(Prism::Node),
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).void
+ end
+ def initialize(source, node_id, location, flags, receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, operator_loc, value); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#8490
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#8350
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # attr_reader arguments: ArgumentsNode?
+ #
+ # source://prism//lib/prism/node.rb#8431
+ sig { returns(T.nilable(Prism::ArgumentsNode)) }
+ def arguments; end
+
+ # def attribute_write?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#8398
+ sig { returns(T::Boolean) }
+ def attribute_write?; end
+
+ # attr_reader block: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#8441
+ sig { returns(T.nilable(Prism::Node)) }
+ def block; end
+
+ # def call_operator: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#8454
+ sig { returns(T.nilable(String)) }
+ def call_operator; end
+
+ # attr_reader call_operator_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#8411
+ sig { returns(T.nilable(Prism::Location)) }
+ def call_operator_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#8355
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism//lib/prism/node.rb#8464
+ sig { returns(String) }
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#8434
+ sig { returns(Prism::Location) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#8370
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#8360
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?opening_loc: Location, ?arguments: ArgumentsNode?, ?closing_loc: Location, ?block: Prism::node?, ?operator_loc: Location, ?value: Prism::node) -> IndexOrWriteNode
+ #
+ # source://prism//lib/prism/node.rb#8375
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: T.nilable(Prism::Node),
+ call_operator_loc: T.nilable(Prism::Location),
+ opening_loc: Prism::Location,
+ arguments: T.nilable(Prism::ArgumentsNode),
+ closing_loc: Prism::Location,
+ block: T.nilable(Prism::Node),
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::IndexOrWriteNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), receiver: T.unsafe(nil), call_operator_loc: T.unsafe(nil), opening_loc: T.unsafe(nil), arguments: T.unsafe(nil), closing_loc: T.unsafe(nil), block: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#8355
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, receiver: Prism::node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Prism::node?, operator_loc: Location, value: Prism::node }
+ #
+ # source://prism//lib/prism/node.rb#8383
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def ignore_visibility?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#8403
+ sig { returns(T::Boolean) }
+ def ignore_visibility?; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#8474
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def opening: () -> String
+ #
+ # source://prism//lib/prism/node.rb#8459
+ sig { returns(String) }
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#8424
+ sig { returns(Prism::Location) }
+ def opening_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#8469
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#8444
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # attr_reader receiver: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#8408
+ sig { returns(T.nilable(Prism::Node)) }
+ def receiver; end
+
+ # def safe_navigation?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#8388
+ sig { returns(T::Boolean) }
+ def safe_navigation?; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#8479
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#8451
+ sig { returns(Prism::Node) }
+ def value; end
+
+ # def variable_call?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#8393
+ sig { returns(T::Boolean) }
+ def variable_call?; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#8484
+ def type; end
+ end
+end
+
+# Represents assigning to an index.
+#
+# foo[bar], = 1
+# ^^^^^^^^
+#
+# begin
+# rescue => foo[bar]
+# ^^^^^^^^
+# end
+#
+# for foo[bar] in baz do end
+# ^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#8516
+class Prism::IndexTargetNode < ::Prism::Node
+ # Initialize a new IndexTargetNode node.
+ #
+ # @return [IndexTargetNode] a new instance of IndexTargetNode
+ #
+ # source://prism//lib/prism/node.rb#8518
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: Prism::Node,
+ opening_loc: Prism::Location,
+ arguments: T.nilable(Prism::ArgumentsNode),
+ closing_loc: Prism::Location,
+ block: T.nilable(Prism::Node)
+ ).void
+ end
+ def initialize(source, node_id, location, flags, receiver, opening_loc, arguments, closing_loc, block); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#8637
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#8531
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # attr_reader arguments: ArgumentsNode?
+ #
+ # source://prism//lib/prism/node.rb#8598
+ sig { returns(T.nilable(Prism::ArgumentsNode)) }
+ def arguments; end
+
+ # def attribute_write?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#8578
+ sig { returns(T::Boolean) }
+ def attribute_write?; end
+
+ # attr_reader block: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#8608
+ sig { returns(T.nilable(Prism::Node)) }
+ def block; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#8536
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism//lib/prism/node.rb#8616
+ sig { returns(String) }
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#8601
+ sig { returns(Prism::Location) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#8550
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#8541
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?receiver: Prism::node, ?opening_loc: Location, ?arguments: ArgumentsNode?, ?closing_loc: Location, ?block: Prism::node?) -> IndexTargetNode
+ #
+ # source://prism//lib/prism/node.rb#8555
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ receiver: Prism::Node,
+ opening_loc: Prism::Location,
+ arguments: T.nilable(Prism::ArgumentsNode),
+ closing_loc: Prism::Location,
+ block: T.nilable(Prism::Node)
+ ).returns(Prism::IndexTargetNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), receiver: T.unsafe(nil), opening_loc: T.unsafe(nil), arguments: T.unsafe(nil), closing_loc: T.unsafe(nil), block: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#8536
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, receiver: Prism::node, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Prism::node? }
+ #
+ # source://prism//lib/prism/node.rb#8563
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def ignore_visibility?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#8583
+ sig { returns(T::Boolean) }
+ def ignore_visibility?; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#8621
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def opening: () -> String
+ #
+ # source://prism//lib/prism/node.rb#8611
+ sig { returns(String) }
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#8591
+ sig { returns(Prism::Location) }
+ def opening_loc; end
+
+ # attr_reader receiver: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#8588
+ sig { returns(Prism::Node) }
+ def receiver; end
+
+ # def safe_navigation?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#8568
+ sig { returns(T::Boolean) }
+ def safe_navigation?; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#8626
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # def variable_call?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#8573
+ sig { returns(T::Boolean) }
+ def variable_call?; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#8631
+ def type; end
+ end
+end
+
+# InlineComment objects are the most common. They correspond to comments in
+# the source file like this one that start with #.
+#
+# source://prism//lib/prism/parse_result.rb#397
+class Prism::InlineComment < ::Prism::Comment
+ # Returns a string representation of this comment.
+ #
+ # source://prism//lib/prism/parse_result.rb#405
+ sig { returns(String) }
+ def inspect; end
+
+ # Returns true if this comment happens on the same line as other code and
+ # false if the comment is by itself.
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/parse_result.rb#400
+ sig { override.returns(T::Boolean) }
+ def trailing?; end
+end
+
+# This visitor is responsible for composing the strings that get returned by
+# the various #inspect methods defined on each of the nodes.
+#
+# source://prism//lib/prism/inspect_visitor.rb#12
+class Prism::InspectVisitor < ::Prism::Visitor
+ # Initializes a new instance of the InspectVisitor.
+ #
+ # @return [InspectVisitor] a new instance of InspectVisitor
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#35
+ sig { params(indent: String).void }
+ def initialize(indent = T.unsafe(nil)); end
+
+ # The list of commands that we need to execute in order to compose the
+ # final string.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#32
+ def commands; end
+
+ # Compose the final string.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#48
+ sig { returns(String) }
+ def compose; end
+
+ # The current prefix string.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#28
+ def indent; end
+
+ # Inspect a AliasGlobalVariableNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#77
+ def visit_alias_global_variable_node(node); end
+
+ # Inspect a AliasMethodNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#89
+ def visit_alias_method_node(node); end
+
+ # Inspect a AlternationPatternNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#101
+ def visit_alternation_pattern_node(node); end
+
+ # Inspect a AndNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#113
+ def visit_and_node(node); end
+
+ # Inspect a ArgumentsNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#125
+ def visit_arguments_node(node); end
+
+ # Inspect a ArrayNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#141
+ def visit_array_node(node); end
+
+ # Inspect a ArrayPatternNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#159
+ def visit_array_pattern_node(node); end
+
+ # Inspect a AssocNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#198
+ def visit_assoc_node(node); end
+
+ # Inspect a AssocSplatNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#210
+ def visit_assoc_splat_node(node); end
+
+ # Inspect a BackReferenceReadNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#224
+ def visit_back_reference_read_node(node); end
+
+ # Inspect a BeginNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#232
+ def visit_begin_node(node); end
+
+ # Inspect a BlockArgumentNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#265
+ def visit_block_argument_node(node); end
+
+ # Inspect a BlockLocalVariableNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#279
+ def visit_block_local_variable_node(node); end
+
+ # Inspect a BlockNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#287
+ def visit_block_node(node); end
+
+ # Inspect a BlockParameterNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#309
+ def visit_block_parameter_node(node); end
+
+ # Inspect a BlockParametersNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#323
+ def visit_block_parameters_node(node); end
+
+ # Inspect a BreakNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#347
+ def visit_break_node(node); end
+
+ # Inspect a CallAndWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#361
+ def visit_call_and_write_node(node); end
+
+ # Inspect a CallNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#381
+ def visit_call_node(node); end
+
+ # Inspect a CallOperatorWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#411
+ def visit_call_operator_write_node(node); end
+
+ # Inspect a CallOrWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#432
+ def visit_call_or_write_node(node); end
+
+ # Inspect a CallTargetNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#452
+ def visit_call_target_node(node); end
+
+ # Inspect a CapturePatternNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#464
+ def visit_capture_pattern_node(node); end
+
+ # Inspect a CaseMatchNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#476
+ def visit_case_match_node(node); end
+
+ # Inspect a CaseNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#506
+ def visit_case_node(node); end
+
+ # Inspect a ClassNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#536
+ def visit_class_node(node); end
+
+ # Inspect a ClassVariableAndWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#562
+ def visit_class_variable_and_write_node(node); end
+
+ # Inspect a ClassVariableOperatorWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#574
+ def visit_class_variable_operator_write_node(node); end
+
+ # Inspect a ClassVariableOrWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#587
+ def visit_class_variable_or_write_node(node); end
+
+ # Inspect a ClassVariableReadNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#599
+ def visit_class_variable_read_node(node); end
+
+ # Inspect a ClassVariableTargetNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#607
+ def visit_class_variable_target_node(node); end
+
+ # Inspect a ClassVariableWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#615
+ def visit_class_variable_write_node(node); end
+
+ # Inspect a ConstantAndWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#627
+ def visit_constant_and_write_node(node); end
+
+ # Inspect a ConstantOperatorWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#639
+ def visit_constant_operator_write_node(node); end
+
+ # Inspect a ConstantOrWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#652
+ def visit_constant_or_write_node(node); end
+
+ # Inspect a ConstantPathAndWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#664
+ def visit_constant_path_and_write_node(node); end
+
+ # Inspect a ConstantPathNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#676
+ def visit_constant_path_node(node); end
+
+ # Inspect a ConstantPathOperatorWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#696
+ def visit_constant_path_operator_write_node(node); end
+
+ # Inspect a ConstantPathOrWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#709
+ def visit_constant_path_or_write_node(node); end
+
+ # Inspect a ConstantPathTargetNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#721
+ def visit_constant_path_target_node(node); end
+
+ # Inspect a ConstantPathWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#741
+ def visit_constant_path_write_node(node); end
+
+ # Inspect a ConstantReadNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#753
+ def visit_constant_read_node(node); end
+
+ # Inspect a ConstantTargetNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#761
+ def visit_constant_target_node(node); end
+
+ # Inspect a ConstantWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#769
+ def visit_constant_write_node(node); end
+
+ # Inspect a DefNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#781
+ def visit_def_node(node); end
+
+ # Inspect a DefinedNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#815
+ def visit_defined_node(node); end
+
+ # Inspect a ElseNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#827
+ def visit_else_node(node); end
+
+ # Inspect a EmbeddedStatementsNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#842
+ def visit_embedded_statements_node(node); end
+
+ # Inspect a EmbeddedVariableNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#857
+ def visit_embedded_variable_node(node); end
+
+ # Inspect a EnsureNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#867
+ def visit_ensure_node(node); end
+
+ # Inspect a FalseNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#882
+ def visit_false_node(node); end
+
+ # Inspect a FindPatternNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#889
+ def visit_find_pattern_node(node); end
+
+ # Inspect a FlipFlopNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#917
+ def visit_flip_flop_node(node); end
+
+ # Inspect a FloatNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#937
+ def visit_float_node(node); end
+
+ # Inspect a ForNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#945
+ def visit_for_node(node); end
+
+ # Inspect a ForwardingArgumentsNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#966
+ def visit_forwarding_arguments_node(node); end
+
+ # Inspect a ForwardingParameterNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#973
+ def visit_forwarding_parameter_node(node); end
+
+ # Inspect a ForwardingSuperNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#980
+ def visit_forwarding_super_node(node); end
+
+ # Inspect a GlobalVariableAndWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#993
+ def visit_global_variable_and_write_node(node); end
+
+ # Inspect a GlobalVariableOperatorWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1005
+ def visit_global_variable_operator_write_node(node); end
+
+ # Inspect a GlobalVariableOrWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1018
+ def visit_global_variable_or_write_node(node); end
+
+ # Inspect a GlobalVariableReadNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1030
+ def visit_global_variable_read_node(node); end
+
+ # Inspect a GlobalVariableTargetNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1038
+ def visit_global_variable_target_node(node); end
+
+ # Inspect a GlobalVariableWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1046
+ def visit_global_variable_write_node(node); end
+
+ # Inspect a HashNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1058
+ def visit_hash_node(node); end
+
+ # Inspect a HashPatternNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1076
+ def visit_hash_pattern_node(node); end
+
+ # Inspect a IfNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1106
+ def visit_if_node(node); end
+
+ # Inspect a ImaginaryNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1130
+ def visit_imaginary_node(node); end
+
+ # Inspect a ImplicitNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1139
+ def visit_implicit_node(node); end
+
+ # Inspect a ImplicitRestNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1148
+ def visit_implicit_rest_node(node); end
+
+ # Inspect a InNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1155
+ def visit_in_node(node); end
+
+ # Inspect a IndexAndWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1172
+ def visit_index_and_write_node(node); end
+
+ # Inspect a IndexOperatorWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1203
+ def visit_index_operator_write_node(node); end
+
+ # Inspect a IndexOrWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1235
+ def visit_index_or_write_node(node); end
+
+ # Inspect a IndexTargetNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1266
+ def visit_index_target_node(node); end
+
+ # Inspect a InstanceVariableAndWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1289
+ def visit_instance_variable_and_write_node(node); end
+
+ # Inspect a InstanceVariableOperatorWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1301
+ def visit_instance_variable_operator_write_node(node); end
+
+ # Inspect a InstanceVariableOrWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1314
+ def visit_instance_variable_or_write_node(node); end
+
+ # Inspect a InstanceVariableReadNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1326
+ def visit_instance_variable_read_node(node); end
+
+ # Inspect a InstanceVariableTargetNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1334
+ def visit_instance_variable_target_node(node); end
+
+ # Inspect a InstanceVariableWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1342
+ def visit_instance_variable_write_node(node); end
+
+ # Inspect a IntegerNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1354
+ def visit_integer_node(node); end
+
+ # Inspect a InterpolatedMatchLastLineNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1362
+ def visit_interpolated_match_last_line_node(node); end
+
+ # Inspect a InterpolatedRegularExpressionNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1380
+ def visit_interpolated_regular_expression_node(node); end
+
+ # Inspect a InterpolatedStringNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1398
+ def visit_interpolated_string_node(node); end
+
+ # Inspect a InterpolatedSymbolNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1416
+ def visit_interpolated_symbol_node(node); end
+
+ # Inspect a InterpolatedXStringNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1434
+ def visit_interpolated_x_string_node(node); end
+
+ # Inspect a ItLocalVariableReadNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1452
+ def visit_it_local_variable_read_node(node); end
+
+ # Inspect a ItParametersNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1459
+ def visit_it_parameters_node(node); end
+
+ # Inspect a KeywordHashNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1466
+ def visit_keyword_hash_node(node); end
+
+ # Inspect a KeywordRestParameterNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1482
+ def visit_keyword_rest_parameter_node(node); end
+
+ # Inspect a LambdaNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1496
+ def visit_lambda_node(node); end
+
+ # Inspect a LocalVariableAndWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1519
+ def visit_local_variable_and_write_node(node); end
+
+ # Inspect a LocalVariableOperatorWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1532
+ def visit_local_variable_operator_write_node(node); end
+
+ # Inspect a LocalVariableOrWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1546
+ def visit_local_variable_or_write_node(node); end
+
+ # Inspect a LocalVariableReadNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1559
+ def visit_local_variable_read_node(node); end
+
+ # Inspect a LocalVariableTargetNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1568
+ def visit_local_variable_target_node(node); end
+
+ # Inspect a LocalVariableWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1577
+ def visit_local_variable_write_node(node); end
+
+ # Inspect a MatchLastLineNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1590
+ def visit_match_last_line_node(node); end
+
+ # Inspect a MatchPredicateNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1601
+ def visit_match_predicate_node(node); end
+
+ # Inspect a MatchRequiredNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1613
+ def visit_match_required_node(node); end
+
+ # Inspect a MatchWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1625
+ def visit_match_write_node(node); end
+
+ # Inspect a MissingNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1643
+ def visit_missing_node(node); end
+
+ # Inspect a ModuleNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1650
+ def visit_module_node(node); end
+
+ # Inspect a MultiTargetNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1669
+ def visit_multi_target_node(node); end
+
+ # Inspect a MultiWriteNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1702
+ def visit_multi_write_node(node); end
+
+ # Inspect a NextNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1738
+ def visit_next_node(node); end
+
+ # Inspect a NilNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1752
+ def visit_nil_node(node); end
+
+ # Inspect a NoKeywordsParameterNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1759
+ def visit_no_keywords_parameter_node(node); end
+
+ # Inspect a NumberedParametersNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1768
+ def visit_numbered_parameters_node(node); end
+
+ # Inspect a NumberedReferenceReadNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1776
+ def visit_numbered_reference_read_node(node); end
+
+ # Inspect a OptionalKeywordParameterNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1784
+ def visit_optional_keyword_parameter_node(node); end
+
+ # Inspect a OptionalParameterNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1795
+ def visit_optional_parameter_node(node); end
+
+ # Inspect a OrNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1807
+ def visit_or_node(node); end
+
+ # Inspect a ParametersNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1819
+ def visit_parameters_node(node); end
+
+ # Inspect a ParenthesesNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1880
+ def visit_parentheses_node(node); end
+
+ # Inspect a PinnedExpressionNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1895
+ def visit_pinned_expression_node(node); end
+
+ # Inspect a PinnedVariableNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1907
+ def visit_pinned_variable_node(node); end
+
+ # Inspect a PostExecutionNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1917
+ def visit_post_execution_node(node); end
+
+ # Inspect a PreExecutionNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1933
+ def visit_pre_execution_node(node); end
+
+ # Inspect a ProgramNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1949
+ def visit_program_node(node); end
+
+ # Inspect a RangeNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1959
+ def visit_range_node(node); end
+
+ # Inspect a RationalNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1979
+ def visit_rational_node(node); end
+
+ # Inspect a RedoNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1988
+ def visit_redo_node(node); end
+
+ # Inspect a RegularExpressionNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#1995
+ def visit_regular_expression_node(node); end
+
+ # Inspect a RequiredKeywordParameterNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2006
+ def visit_required_keyword_parameter_node(node); end
+
+ # Inspect a RequiredParameterNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2015
+ def visit_required_parameter_node(node); end
+
+ # Inspect a RescueModifierNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2023
+ def visit_rescue_modifier_node(node); end
+
+ # Inspect a RescueNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2035
+ def visit_rescue_node(node); end
+
+ # Inspect a RestParameterNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2071
+ def visit_rest_parameter_node(node); end
+
+ # Inspect a RetryNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2085
+ def visit_retry_node(node); end
+
+ # Inspect a ReturnNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2092
+ def visit_return_node(node); end
+
+ # Inspect a SelfNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2106
+ def visit_self_node(node); end
+
+ # Inspect a ShareableConstantNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2113
+ def visit_shareable_constant_node(node); end
+
+ # Inspect a SingletonClassNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2122
+ def visit_singleton_class_node(node); end
+
+ # Inspect a SourceEncodingNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2141
+ def visit_source_encoding_node(node); end
+
+ # Inspect a SourceFileNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2148
+ def visit_source_file_node(node); end
+
+ # Inspect a SourceLineNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2156
+ def visit_source_line_node(node); end
+
+ # Inspect a SplatNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2163
+ def visit_splat_node(node); end
+
+ # Inspect a StatementsNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2177
+ def visit_statements_node(node); end
+
+ # Inspect a StringNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2193
+ def visit_string_node(node); end
+
+ # Inspect a SuperNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2204
+ def visit_super_node(node); end
+
+ # Inspect a SymbolNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2226
+ def visit_symbol_node(node); end
+
+ # Inspect a TrueNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2237
+ def visit_true_node(node); end
+
+ # Inspect a UndefNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2244
+ def visit_undef_node(node); end
+
+ # Inspect a UnlessNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2261
+ def visit_unless_node(node); end
+
+ # Inspect a UntilNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2285
+ def visit_until_node(node); end
+
+ # Inspect a WhenNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2302
+ def visit_when_node(node); end
+
+ # Inspect a WhileNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2326
+ def visit_while_node(node); end
+
+ # Inspect a XStringNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2343
+ def visit_x_string_node(node); end
+
+ # Inspect a YieldNode node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2354
+ def visit_yield_node(node); end
+
+ private
+
+ # Compose a string representing the given inner location field.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2378
+ def inspect_location(location); end
+
+ # Compose a header for the given node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#2372
+ def inspect_node(name, node); end
+
+ class << self
+ # Compose an inspect string for the given node.
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#41
+ sig { params(node: Prism::Node).returns(String) }
+ def compose(node); end
+ end
+end
+
+# Most of the time, we can simply pass down the indent to the next node.
+# However, when we are inside a list we want some extra special formatting
+# when we hit an element in that list. In this case, we have a special
+# command that replaces the subsequent indent with the given value.
+#
+# source://prism//lib/prism/inspect_visitor.rb#17
+class Prism::InspectVisitor::Replace
+ # @return [Replace] a new instance of Replace
+ #
+ # source://prism//lib/prism/inspect_visitor.rb#20
+ def initialize(value); end
+
+ # source://prism//lib/prism/inspect_visitor.rb#18
+ def value; end
+end
+
+# Represents the use of the `&&=` operator for assignment to an instance variable.
+#
+# @target &&= value
+# ^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#8652
+class Prism::InstanceVariableAndWriteNode < ::Prism::Node
+ # Initialize a new InstanceVariableAndWriteNode node.
+ #
+ # @return [InstanceVariableAndWriteNode] a new instance of InstanceVariableAndWriteNode
+ #
+ # source://prism//lib/prism/node.rb#8654
+ def initialize(source, node_id, location, flags, name, name_loc, operator_loc, value); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#8740
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#8666
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#8671
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#8681
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#8676
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> InstanceVariableAndWriteNode
+ #
+ # source://prism//lib/prism/node.rb#8686
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#8671
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
+ #
+ # source://prism//lib/prism/node.rb#8694
+ def deconstruct_keys(keys); end
+
+ # source://prism//lib/prism/desugar_compiler.rb#218
+ def desugar; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#8724
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#8699
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#8702
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#8719
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#8709
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#8729
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#8716
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#8734
+ def type; end
+ end
+end
+
+# Represents assigning to an instance variable using an operator that isn't `=`.
+#
+# @target += value
+# ^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#8753
+class Prism::InstanceVariableOperatorWriteNode < ::Prism::Node
+ # Initialize a new InstanceVariableOperatorWriteNode node.
+ #
+ # @return [InstanceVariableOperatorWriteNode] a new instance of InstanceVariableOperatorWriteNode
+ #
+ # source://prism//lib/prism/node.rb#8755
+ def initialize(source, node_id, location, flags, name, name_loc, binary_operator_loc, value, binary_operator); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#8840
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#8768
+ def accept(visitor); end
+
+ # attr_reader binary_operator: Symbol
+ #
+ # source://prism//lib/prism/node.rb#8821
+ def binary_operator; end
+
+ # attr_reader binary_operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#8811
+ def binary_operator_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#8773
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#8783
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#8778
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?binary_operator_loc: Location, ?value: Prism::node, ?binary_operator: Symbol) -> InstanceVariableOperatorWriteNode
+ #
+ # source://prism//lib/prism/node.rb#8788
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), binary_operator_loc: T.unsafe(nil), value: T.unsafe(nil), binary_operator: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#8773
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, binary_operator_loc: Location, value: Prism::node, binary_operator: Symbol }
+ #
+ # source://prism//lib/prism/node.rb#8796
+ def deconstruct_keys(keys); end
+
+ # source://prism//lib/prism/desugar_compiler.rb#230
+ def desugar; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#8824
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#8801
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#8804
+ def name_loc; end
+
+ # Returns the binary operator used to modify the receiver. This method is
+ # deprecated in favor of #binary_operator.
+ #
+ # source://prism//lib/prism/node_ext.rb#435
+ def operator; end
+
+ # Returns the location of the binary operator used to modify the receiver.
+ # This method is deprecated in favor of #binary_operator_loc.
+ #
+ # source://prism//lib/prism/node_ext.rb#442
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#8829
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#8818
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#8834
+ def type; end
+ end
+end
+
+# Represents the use of the `||=` operator for assignment to an instance variable.
+#
+# @target ||= value
+# ^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#8854
+class Prism::InstanceVariableOrWriteNode < ::Prism::Node
+ # Initialize a new InstanceVariableOrWriteNode node.
+ #
+ # @return [InstanceVariableOrWriteNode] a new instance of InstanceVariableOrWriteNode
+ #
+ # source://prism//lib/prism/node.rb#8856
+ def initialize(source, node_id, location, flags, name, name_loc, operator_loc, value); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#8942
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#8868
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#8873
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#8883
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#8878
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> InstanceVariableOrWriteNode
+ #
+ # source://prism//lib/prism/node.rb#8888
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#8873
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
+ #
+ # source://prism//lib/prism/node.rb#8896
+ def deconstruct_keys(keys); end
+
+ # source://prism//lib/prism/desugar_compiler.rb#224
+ def desugar; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#8926
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#8901
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#8904
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#8921
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#8911
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#8931
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#8918
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#8936
+ def type; end
+ end
+end
+
+# Represents referencing an instance variable.
+#
+# @foo
+# ^^^^
+#
+# source://prism//lib/prism/node.rb#8955
+class Prism::InstanceVariableReadNode < ::Prism::Node
+ # Initialize a new InstanceVariableReadNode node.
+ #
+ # @return [InstanceVariableReadNode] a new instance of InstanceVariableReadNode
+ #
+ # source://prism//lib/prism/node.rb#8957
+ def initialize(source, node_id, location, flags, name); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#9022
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#8966
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#8971
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#8981
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#8976
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> InstanceVariableReadNode
+ #
+ # source://prism//lib/prism/node.rb#8986
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#8971
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
+ #
+ # source://prism//lib/prism/node.rb#8994
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#9006
+ sig { override.returns(String) }
+ def inspect; end
+
+ # The name of the instance variable, which is a `@` followed by an [identifier](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#identifiers).
+ #
+ # @x # name `:@x`
+ #
+ # @_test # name `:@_test`
+ #
+ # source://prism//lib/prism/node.rb#9003
+ def name; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#9011
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#9016
+ def type; end
+ end
+end
+
+# Represents writing to an instance variable in a context that doesn't have an explicit value.
+#
+# @foo, @bar = baz
+# ^^^^ ^^^^
+#
+# source://prism//lib/prism/node.rb#9032
+class Prism::InstanceVariableTargetNode < ::Prism::Node
+ # Initialize a new InstanceVariableTargetNode node.
+ #
+ # @return [InstanceVariableTargetNode] a new instance of InstanceVariableTargetNode
+ #
+ # source://prism//lib/prism/node.rb#9034
+ def initialize(source, node_id, location, flags, name); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#9095
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#9043
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#9048
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#9058
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#9053
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> InstanceVariableTargetNode
+ #
+ # source://prism//lib/prism/node.rb#9063
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#9048
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
+ #
+ # source://prism//lib/prism/node.rb#9071
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#9079
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#9076
+ def name; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#9084
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#9089
+ def type; end
+ end
+end
+
+# Represents writing to an instance variable.
+#
+# @foo = 1
+# ^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#9105
+class Prism::InstanceVariableWriteNode < ::Prism::Node
+ # Initialize a new InstanceVariableWriteNode node.
+ #
+ # @return [InstanceVariableWriteNode] a new instance of InstanceVariableWriteNode
+ #
+ # source://prism//lib/prism/node.rb#9107
+ def initialize(source, node_id, location, flags, name, name_loc, value, operator_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#9209
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#9119
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#9124
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#9134
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#9129
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location) -> InstanceVariableWriteNode
+ #
+ # source://prism//lib/prism/node.rb#9139
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), value: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#9124
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, value: Prism::node, operator_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#9147
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#9193
+ sig { override.returns(String) }
+ def inspect; end
+
+ # The name of the instance variable, which is a `@` followed by an [identifier](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#identifiers).
+ #
+ # @x = :y # name `:@x`
+ #
+ # @_foo = "bar" # name `@_foo`
+ #
+ # source://prism//lib/prism/node.rb#9156
+ def name; end
+
+ # The location of the variable name.
+ #
+ # @_x = 1
+ # ^^^
+ #
+ # source://prism//lib/prism/node.rb#9162
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#9188
+ def operator; end
+
+ # The location of the `=` operator.
+ #
+ # @x = y
+ # ^
+ #
+ # source://prism//lib/prism/node.rb#9181
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#9198
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # The value to write to the instance variable. It can be any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
+ #
+ # @foo = :bar
+ # ^^^^
+ #
+ # @_x = 1234
+ # ^^^^
+ #
+ # source://prism//lib/prism/node.rb#9175
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#9203
+ def type; end
+ end
+end
+
+# Flags for integer nodes that correspond to the base of the integer.
+#
+# source://prism//lib/prism/node.rb#16689
+module Prism::IntegerBaseFlags; end
+
+# 0b prefix
+#
+# source://prism//lib/prism/node.rb#16691
+Prism::IntegerBaseFlags::BINARY = T.let(T.unsafe(nil), Integer)
+
+# 0d or no prefix
+#
+# source://prism//lib/prism/node.rb#16694
+Prism::IntegerBaseFlags::DECIMAL = T.let(T.unsafe(nil), Integer)
+
+# 0x prefix
+#
+# source://prism//lib/prism/node.rb#16700
+Prism::IntegerBaseFlags::HEXADECIMAL = T.let(T.unsafe(nil), Integer)
+
+# 0o or 0 prefix
+#
+# source://prism//lib/prism/node.rb#16697
+Prism::IntegerBaseFlags::OCTAL = T.let(T.unsafe(nil), Integer)
+
+# Represents an integer number literal.
+#
+# 1
+# ^
+#
+# source://prism//lib/prism/node.rb#9222
+class Prism::IntegerNode < ::Prism::Node
+ # Initialize a new IntegerNode node.
+ #
+ # @return [IntegerNode] a new instance of IntegerNode
+ #
+ # source://prism//lib/prism/node.rb#9224
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ value: Integer
+ ).void
+ end
+ def initialize(source, node_id, location, flags, value); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#9305
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#9233
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def binary?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9266
+ sig { returns(T::Boolean) }
+ def binary?; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#9238
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#9248
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#9243
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?value: Integer) -> IntegerNode
+ #
+ # source://prism//lib/prism/node.rb#9253
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ value: Integer
+ ).returns(Prism::IntegerNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # def decimal?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9271
+ sig { returns(T::Boolean) }
+ def decimal?; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#9238
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, value: Integer }
+ #
+ # source://prism//lib/prism/node.rb#9261
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def hexadecimal?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9281
+ sig { returns(T::Boolean) }
+ def hexadecimal?; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#9289
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def octal?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9276
+ sig { returns(T::Boolean) }
+ def octal?; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#9294
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # The value of the integer literal as a number.
+ #
+ # source://prism//lib/prism/node.rb#9286
+ sig { returns(Integer) }
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#9299
+ def type; end
+ end
+end
+
+# Represents a regular expression literal that contains interpolation that is being used in the predicate of a conditional to implicitly match against the last line read by an IO object.
+#
+# if /foo #{bar} baz/ then end
+# ^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#9316
+class Prism::InterpolatedMatchLastLineNode < ::Prism::Node
+ include ::Prism::RegularExpressionOptions
+
+ # Initialize a new InterpolatedMatchLastLineNode node.
+ #
+ # @return [InterpolatedMatchLastLineNode] a new instance of InterpolatedMatchLastLineNode
+ #
+ # source://prism//lib/prism/node.rb#9318
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: Prism::Location,
+ parts: T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode)],
+ closing_loc: Prism::Location
+ ).void
+ end
+ def initialize(source, node_id, location, flags, opening_loc, parts, closing_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#9460
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#9329
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def ascii_8bit?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9387
+ sig { returns(T::Boolean) }
+ def ascii_8bit?; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#9334
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism//lib/prism/node.rb#9439
+ sig { returns(String) }
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#9427
+ sig { returns(Prism::Location) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#9344
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#9339
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], ?closing_loc: Location) -> InterpolatedMatchLastLineNode
+ #
+ # source://prism//lib/prism/node.rb#9349
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: Prism::Location,
+ parts: T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode)],
+ closing_loc: Prism::Location
+ ).returns(Prism::InterpolatedMatchLastLineNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), opening_loc: T.unsafe(nil), parts: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#9334
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], closing_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#9357
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ # def euc_jp?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9382
+ sig { returns(T::Boolean) }
+ def euc_jp?; end
+
+ # def extended?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9367
+ sig { returns(T::Boolean) }
+ def extended?; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def forced_binary_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9407
+ sig { returns(T::Boolean) }
+ def forced_binary_encoding?; end
+
+ # def forced_us_ascii_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9412
+ sig { returns(T::Boolean) }
+ def forced_us_ascii_encoding?; end
+
+ # def forced_utf8_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9402
+ sig { returns(T::Boolean) }
+ def forced_utf8_encoding?; end
+
+ # def ignore_case?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9362
+ sig { returns(T::Boolean) }
+ def ignore_case?; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#9444
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def multi_line?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9372
+ sig { returns(T::Boolean) }
+ def multi_line?; end
+
+ # source://prism//lib/prism/parse_result/newlines.rb#121
+ def newline_flag!(lines); end
+
+ # def once?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9377
+ sig { returns(T::Boolean) }
+ def once?; end
+
+ # def opening: () -> String
+ #
+ # source://prism//lib/prism/node.rb#9434
+ sig { returns(String) }
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#9417
+ sig { returns(Prism::Location) }
+ def opening_loc; end
+
+ sig { returns(Integer) }
+ def options; end
+
+ # attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode]
+ #
+ # source://prism//lib/prism/node.rb#9424
+ sig { returns(T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode)]) }
+ def parts; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#9449
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # def utf_8?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9397
+ sig { returns(T::Boolean) }
+ def utf_8?; end
+
+ # def windows_31j?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9392
+ sig { returns(T::Boolean) }
+ def windows_31j?; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#9454
+ def type; end
+ end
+end
+
+# Represents a regular expression literal that contains interpolation.
+#
+# /foo #{bar} baz/
+# ^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#9474
+class Prism::InterpolatedRegularExpressionNode < ::Prism::Node
+ include ::Prism::RegularExpressionOptions
+
+ # Initialize a new InterpolatedRegularExpressionNode node.
+ #
+ # @return [InterpolatedRegularExpressionNode] a new instance of InterpolatedRegularExpressionNode
+ #
+ # source://prism//lib/prism/node.rb#9476
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: Prism::Location,
+ parts: T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode)],
+ closing_loc: Prism::Location
+ ).void
+ end
+ def initialize(source, node_id, location, flags, opening_loc, parts, closing_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#9618
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#9487
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def ascii_8bit?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9545
+ sig { returns(T::Boolean) }
+ def ascii_8bit?; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#9492
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism//lib/prism/node.rb#9597
+ sig { returns(String) }
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#9585
+ sig { returns(Prism::Location) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#9502
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#9497
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], ?closing_loc: Location) -> InterpolatedRegularExpressionNode
+ #
+ # source://prism//lib/prism/node.rb#9507
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: Prism::Location,
+ parts: T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode)],
+ closing_loc: Prism::Location
+ ).returns(Prism::InterpolatedRegularExpressionNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), opening_loc: T.unsafe(nil), parts: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#9492
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], closing_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#9515
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ # def euc_jp?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9540
+ sig { returns(T::Boolean) }
+ def euc_jp?; end
+
+ # def extended?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9525
+ sig { returns(T::Boolean) }
+ def extended?; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def forced_binary_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9565
+ sig { returns(T::Boolean) }
+ def forced_binary_encoding?; end
+
+ # def forced_us_ascii_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9570
+ sig { returns(T::Boolean) }
+ def forced_us_ascii_encoding?; end
+
+ # def forced_utf8_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9560
+ sig { returns(T::Boolean) }
+ def forced_utf8_encoding?; end
+
+ # def ignore_case?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9520
+ sig { returns(T::Boolean) }
+ def ignore_case?; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#9602
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def multi_line?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9530
+ sig { returns(T::Boolean) }
+ def multi_line?; end
+
+ # source://prism//lib/prism/parse_result/newlines.rb#128
+ def newline_flag!(lines); end
+
+ # def once?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9535
+ sig { returns(T::Boolean) }
+ def once?; end
+
+ # def opening: () -> String
+ #
+ # source://prism//lib/prism/node.rb#9592
+ sig { returns(String) }
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#9575
+ sig { returns(Prism::Location) }
+ def opening_loc; end
+
+ sig { returns(Integer) }
+ def options; end
+
+ # attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode]
+ #
+ # source://prism//lib/prism/node.rb#9582
+ sig { returns(T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode)]) }
+ def parts; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#9607
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # def utf_8?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9555
+ sig { returns(T::Boolean) }
+ def utf_8?; end
+
+ # def windows_31j?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9550
+ sig { returns(T::Boolean) }
+ def windows_31j?; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#9612
+ def type; end
+ end
+end
+
+# Represents a string literal that contains interpolation.
+#
+# "foo #{bar} baz"
+# ^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#9632
+class Prism::InterpolatedStringNode < ::Prism::Node
+ include ::Prism::HeredocQuery
+
+ # Initialize a new InterpolatedStringNode node.
+ #
+ # @return [InterpolatedStringNode] a new instance of InterpolatedStringNode
+ #
+ # source://prism//lib/prism/node.rb#9634
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: T.nilable(Prism::Location),
+ parts: T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode, Prism::InterpolatedStringNode)],
+ closing_loc: T.nilable(Prism::Location)
+ ).void
+ end
+ def initialize(source, node_id, location, flags, opening_loc, parts, closing_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#9743
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#9645
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#9650
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#9722
+ sig { returns(T.nilable(String)) }
+ def closing; end
+
+ # attr_reader closing_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#9704
+ sig { returns(T.nilable(Prism::Location)) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#9660
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#9655
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location?, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode], ?closing_loc: Location?) -> InterpolatedStringNode
+ #
+ # source://prism//lib/prism/node.rb#9665
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: T.nilable(Prism::Location),
+ parts: T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode, Prism::InterpolatedStringNode)],
+ closing_loc: T.nilable(Prism::Location)
+ ).returns(Prism::InterpolatedStringNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), opening_loc: T.unsafe(nil), parts: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#9650
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location?, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode], closing_loc: Location? }
+ #
+ # source://prism//lib/prism/node.rb#9673
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def frozen?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9678
+ sig { returns(T::Boolean) }
+ def frozen?; end
+
+ sig { returns(T::Boolean) }
+ def heredoc?; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#9727
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def mutable?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#9683
+ sig { returns(T::Boolean) }
+ def mutable?; end
+
+ # source://prism//lib/prism/parse_result/newlines.rb#135
+ def newline_flag!(lines); end
+
+ # def opening: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#9717
+ sig { returns(T.nilable(String)) }
+ def opening; end
+
+ # attr_reader opening_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#9688
+ sig { returns(T.nilable(Prism::Location)) }
+ def opening_loc; end
+
+ # attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode]
+ #
+ # source://prism//lib/prism/node.rb#9701
+ sig do
+ returns(T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode, Prism::InterpolatedStringNode)])
+ end
+ def parts; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#9732
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#9737
+ def type; end
+ end
+end
+
+# Flags for interpolated string nodes that indicated mutability if they are also marked as literals.
+#
+# source://prism//lib/prism/node.rb#16704
+module Prism::InterpolatedStringNodeFlags; end
+
+# source://prism//lib/prism/node.rb#16706
+Prism::InterpolatedStringNodeFlags::FROZEN = T.let(T.unsafe(nil), Integer)
+
+# source://prism//lib/prism/node.rb#16709
+Prism::InterpolatedStringNodeFlags::MUTABLE = T.let(T.unsafe(nil), Integer)
+
+# Represents a symbol literal that contains interpolation.
+#
+# :"foo #{bar} baz"
+# ^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#9757
+class Prism::InterpolatedSymbolNode < ::Prism::Node
+ # Initialize a new InterpolatedSymbolNode node.
+ #
+ # @return [InterpolatedSymbolNode] a new instance of InterpolatedSymbolNode
+ #
+ # source://prism//lib/prism/node.rb#9759
+ def initialize(source, node_id, location, flags, opening_loc, parts, closing_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#9858
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#9770
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#9775
+ def child_nodes; end
+
+ # def closing: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#9837
+ def closing; end
+
+ # attr_reader closing_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#9819
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#9785
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#9780
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location?, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], ?closing_loc: Location?) -> InterpolatedSymbolNode
+ #
+ # source://prism//lib/prism/node.rb#9790
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), opening_loc: T.unsafe(nil), parts: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#9775
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location?, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], closing_loc: Location? }
+ #
+ # source://prism//lib/prism/node.rb#9798
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#9842
+ sig { override.returns(String) }
+ def inspect; end
+
+ # source://prism//lib/prism/parse_result/newlines.rb#142
+ def newline_flag!(lines); end
+
+ # def opening: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#9832
+ def opening; end
+
+ # attr_reader opening_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#9803
+ def opening_loc; end
+
+ # attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode]
+ #
+ # source://prism//lib/prism/node.rb#9816
+ def parts; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#9847
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#9852
+ def type; end
+ end
+end
+
+# Represents an xstring literal that contains interpolation.
+#
+# `foo #{bar} baz`
+# ^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#9871
+class Prism::InterpolatedXStringNode < ::Prism::Node
+ include ::Prism::HeredocQuery
+
+ # Initialize a new InterpolatedXStringNode node.
+ #
+ # @return [InterpolatedXStringNode] a new instance of InterpolatedXStringNode
+ #
+ # source://prism//lib/prism/node.rb#9873
+ def initialize(source, node_id, location, flags, opening_loc, parts, closing_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#9960
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#9884
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#9889
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism//lib/prism/node.rb#9939
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#9927
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#9899
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#9894
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], ?closing_loc: Location) -> InterpolatedXStringNode
+ #
+ # source://prism//lib/prism/node.rb#9904
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), opening_loc: T.unsafe(nil), parts: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#9889
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], closing_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#9912
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ sig { returns(T::Boolean) }
+ def heredoc?; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#9944
+ sig { override.returns(String) }
+ def inspect; end
+
+ # source://prism//lib/prism/parse_result/newlines.rb#149
+ def newline_flag!(lines); end
+
+ # def opening: () -> String
+ #
+ # source://prism//lib/prism/node.rb#9934
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#9917
+ def opening_loc; end
+
+ # attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode]
+ #
+ # source://prism//lib/prism/node.rb#9924
+ def parts; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#9949
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#9954
+ def type; end
+ end
+end
+
+# Represents reading from the implicit `it` local variable.
+#
+# -> { it }
+# ^^
+#
+# source://prism//lib/prism/node.rb#9973
+class Prism::ItLocalVariableReadNode < ::Prism::Node
+ # Initialize a new ItLocalVariableReadNode node.
+ #
+ # @return [ItLocalVariableReadNode] a new instance of ItLocalVariableReadNode
+ #
+ # source://prism//lib/prism/node.rb#9975
+ def initialize(source, node_id, location, flags); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#10032
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#9983
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#9988
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#9998
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#9993
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> ItLocalVariableReadNode
+ #
+ # source://prism//lib/prism/node.rb#10003
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#9988
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
+ #
+ # source://prism//lib/prism/node.rb#10011
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#10016
+ sig { override.returns(String) }
+ def inspect; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#10021
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#10026
+ def type; end
+ end
+end
+
+# Represents an implicit set of parameters through the use of the `it` keyword within a block or lambda.
+#
+# -> { it + it }
+# ^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#10041
+class Prism::ItParametersNode < ::Prism::Node
+ # Initialize a new ItParametersNode node.
+ #
+ # @return [ItParametersNode] a new instance of ItParametersNode
+ #
+ # source://prism//lib/prism/node.rb#10043
+ def initialize(source, node_id, location, flags); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#10100
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#10051
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#10056
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#10066
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#10061
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> ItParametersNode
+ #
+ # source://prism//lib/prism/node.rb#10071
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#10056
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
+ #
+ # source://prism//lib/prism/node.rb#10079
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#10084
+ sig { override.returns(String) }
+ def inspect; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#10089
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#10094
+ def type; end
+ end
+end
+
+# Represents a hash literal without opening and closing braces.
+#
+# foo(a: b)
+# ^^^^
+#
+# source://prism//lib/prism/node.rb#10109
+class Prism::KeywordHashNode < ::Prism::Node
+ # Initialize a new KeywordHashNode node.
+ #
+ # @return [KeywordHashNode] a new instance of KeywordHashNode
+ #
+ # source://prism//lib/prism/node.rb#10111
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ elements: T::Array[T.any(Prism::AssocNode, Prism::AssocSplatNode)]
+ ).void
+ end
+ def initialize(source, node_id, location, flags, elements); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#10177
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#10120
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#10125
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#10135
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#10130
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?elements: Array[AssocNode | AssocSplatNode]) -> KeywordHashNode
+ #
+ # source://prism//lib/prism/node.rb#10140
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ elements: T::Array[T.any(Prism::AssocNode, Prism::AssocSplatNode)]
+ ).returns(Prism::KeywordHashNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), elements: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#10125
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, elements: Array[AssocNode | AssocSplatNode] }
+ #
+ # source://prism//lib/prism/node.rb#10148
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ # attr_reader elements: Array[AssocNode | AssocSplatNode]
+ #
+ # source://prism//lib/prism/node.rb#10158
+ sig { returns(T::Array[T.any(Prism::AssocNode, Prism::AssocSplatNode)]) }
+ def elements; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#10161
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def symbol_keys?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#10153
+ sig { returns(T::Boolean) }
+ def symbol_keys?; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#10166
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#10171
+ def type; end
+ end
+end
+
+# Flags for keyword hash nodes.
+#
+# source://prism//lib/prism/node.rb#16713
+module Prism::KeywordHashNodeFlags; end
+
+# a keyword hash which only has `AssocNode` elements all with symbol keys, which means the elements can be treated as keyword arguments
+#
+# source://prism//lib/prism/node.rb#16715
+Prism::KeywordHashNodeFlags::SYMBOL_KEYS = T.let(T.unsafe(nil), Integer)
+
+# Represents a keyword rest parameter to a method, block, or lambda definition.
+#
+# def a(**b)
+# ^^^
+# end
+#
+# source://prism//lib/prism/node.rb#10190
+class Prism::KeywordRestParameterNode < ::Prism::Node
+ # Initialize a new KeywordRestParameterNode node.
+ #
+ # @return [KeywordRestParameterNode] a new instance of KeywordRestParameterNode
+ #
+ # source://prism//lib/prism/node.rb#10192
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: T.nilable(Symbol),
+ name_loc: T.nilable(Prism::Location),
+ operator_loc: Prism::Location
+ ).void
+ end
+ def initialize(source, node_id, location, flags, name, name_loc, operator_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#10285
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#10203
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#10208
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#10218
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#10213
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol?, ?name_loc: Location?, ?operator_loc: Location) -> KeywordRestParameterNode
+ #
+ # source://prism//lib/prism/node.rb#10223
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: T.nilable(Symbol),
+ name_loc: T.nilable(Prism::Location),
+ operator_loc: Prism::Location
+ ).returns(Prism::KeywordRestParameterNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#10208
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol?, name_loc: Location?, operator_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#10231
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#10269
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol?
+ #
+ # source://prism//lib/prism/node.rb#10241
+ sig { returns(T.nilable(Symbol)) }
+ def name; end
+
+ # attr_reader name_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#10244
+ sig { returns(T.nilable(Prism::Location)) }
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#10264
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#10257
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # def repeated_parameter?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#10236
+ sig { returns(T::Boolean) }
+ def repeated_parameter?; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#10274
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#10279
+ def type; end
+ end
+end
+
+# Represents using a lambda literal (not the lambda method call).
+#
+# ->(value) { value * 2 }
+# ^^^^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#10298
+class Prism::LambdaNode < ::Prism::Node
+ # Initialize a new LambdaNode node.
+ #
+ # @return [LambdaNode] a new instance of LambdaNode
+ #
+ # source://prism//lib/prism/node.rb#10300
+ def initialize(source, node_id, location, flags, locals, operator_loc, opening_loc, closing_loc, parameters, body); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#10411
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#10314
+ def accept(visitor); end
+
+ # attr_reader body: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#10377
+ def body; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#10319
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism//lib/prism/node.rb#10390
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#10367
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#10332
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#10324
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?locals: Array[Symbol], ?operator_loc: Location, ?opening_loc: Location, ?closing_loc: Location, ?parameters: Prism::node?, ?body: Prism::node?) -> LambdaNode
+ #
+ # source://prism//lib/prism/node.rb#10337
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), locals: T.unsafe(nil), operator_loc: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), parameters: T.unsafe(nil), body: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#10319
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, locals: Array[Symbol], operator_loc: Location, opening_loc: Location, closing_loc: Location, parameters: Prism::node?, body: Prism::node? }
+ #
+ # source://prism//lib/prism/node.rb#10345
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#10395
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader locals: Array[Symbol]
+ #
+ # source://prism//lib/prism/node.rb#10350
+ def locals; end
+
+ # def opening: () -> String
+ #
+ # source://prism//lib/prism/node.rb#10385
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#10360
+ def opening_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#10380
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#10353
+ def operator_loc; end
+
+ # attr_reader parameters: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#10374
+ def parameters; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#10400
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#10405
+ def type; end
+ end
+end
+
+# This class is responsible for lexing the source using prism and then
+# converting those tokens to be compatible with Ripper. In the vast majority
+# of cases, this is a one-to-one mapping of the token type. Everything else
+# generally lines up. However, there are a few cases that require special
+# handling.
+#
+# source://prism//lib/prism/lex_compat.rb#12
+class Prism::LexCompat
+ # @return [LexCompat] a new instance of LexCompat
+ #
+ # source://prism//lib/prism/lex_compat.rb#619
+ def initialize(source, **options); end
+
+ # Returns the value of attribute options.
+ #
+ # source://prism//lib/prism/lex_compat.rb#617
+ def options; end
+
+ # source://prism//lib/prism/lex_compat.rb#624
+ def result; end
+
+ # Returns the value of attribute source.
+ #
+ # source://prism//lib/prism/lex_compat.rb#617
+ def source; end
+end
+
+# Ripper doesn't include the rest of the token in the event, so we need to
+# trim it down to just the content on the first line when comparing.
+#
+# source://prism//lib/prism/lex_compat.rb#230
+class Prism::LexCompat::EndContentToken < ::Prism::LexCompat::Token
+ # source://prism//lib/prism/lex_compat.rb#231
+ def ==(other); end
+end
+
+# A heredoc in this case is a list of tokens that belong to the body of the
+# heredoc that should be appended onto the list of tokens when the heredoc
+# closes.
+#
+# source://prism//lib/prism/lex_compat.rb#291
+module Prism::LexCompat::Heredoc
+ class << self
+ # Here we will split between the two types of heredocs and return the
+ # object that will store their tokens.
+ #
+ # source://prism//lib/prism/lex_compat.rb#603
+ def build(opening); end
+ end
+end
+
+# Dash heredocs are a little more complicated. They are a list of tokens
+# that need to be split on "\\\n" to mimic Ripper's behavior. We also need
+# to keep track of the state that the heredoc was opened in.
+#
+# source://prism//lib/prism/lex_compat.rb#315
+class Prism::LexCompat::Heredoc::DashHeredoc
+ # @return [DashHeredoc] a new instance of DashHeredoc
+ #
+ # source://prism//lib/prism/lex_compat.rb#318
+ def initialize(split); end
+
+ # source://prism//lib/prism/lex_compat.rb#323
+ def <<(token); end
+
+ # source://prism//lib/prism/lex_compat.rb#316
+ def split; end
+
+ # source://prism//lib/prism/lex_compat.rb#327
+ def to_a; end
+
+ # source://prism//lib/prism/lex_compat.rb#316
+ def tokens; end
+end
+
+# Heredocs that are dedenting heredocs are a little more complicated.
+# Ripper outputs on_ignored_sp tokens for the whitespace that is being
+# removed from the output. prism only modifies the node itself and keeps
+# the token the same. This simplifies prism, but makes comparing against
+# Ripper much harder because there is a length mismatch.
+#
+# Fortunately, we already have to pull out the heredoc tokens in order to
+# insert them into the stream in the correct order. As such, we can do
+# some extra manipulation on the tokens to make them match Ripper's
+# output by mirroring the dedent logic that Ripper uses.
+#
+# source://prism//lib/prism/lex_compat.rb#374
+class Prism::LexCompat::Heredoc::DedentingHeredoc
+ # @return [DedentingHeredoc] a new instance of DedentingHeredoc
+ #
+ # source://prism//lib/prism/lex_compat.rb#379
+ def initialize; end
+
+ # As tokens are coming in, we track the minimum amount of common leading
+ # whitespace on plain string content tokens. This allows us to later
+ # remove that amount of whitespace from the beginning of each line.
+ #
+ # source://prism//lib/prism/lex_compat.rb#390
+ def <<(token); end
+
+ # Returns the value of attribute dedent.
+ #
+ # source://prism//lib/prism/lex_compat.rb#377
+ def dedent; end
+
+ # Returns the value of attribute dedent_next.
+ #
+ # source://prism//lib/prism/lex_compat.rb#377
+ def dedent_next; end
+
+ # Returns the value of attribute embexpr_balance.
+ #
+ # source://prism//lib/prism/lex_compat.rb#377
+ def embexpr_balance; end
+
+ # source://prism//lib/prism/lex_compat.rb#427
+ def to_a; end
+
+ # Returns the value of attribute tokens.
+ #
+ # source://prism//lib/prism/lex_compat.rb#377
+ def tokens; end
+end
+
+# source://prism//lib/prism/lex_compat.rb#375
+Prism::LexCompat::Heredoc::DedentingHeredoc::TAB_WIDTH = T.let(T.unsafe(nil), Integer)
+
+# Heredocs that are no dash or tilde heredocs are just a list of tokens.
+# We need to keep them around so that we can insert them in the correct
+# order back into the token stream and set the state of the last token to
+# the state that the heredoc was opened in.
+#
+# source://prism//lib/prism/lex_compat.rb#296
+class Prism::LexCompat::Heredoc::PlainHeredoc
+ # @return [PlainHeredoc] a new instance of PlainHeredoc
+ #
+ # source://prism//lib/prism/lex_compat.rb#299
+ def initialize; end
+
+ # source://prism//lib/prism/lex_compat.rb#303
+ def <<(token); end
+
+ # source://prism//lib/prism/lex_compat.rb#307
+ def to_a; end
+
+ # source://prism//lib/prism/lex_compat.rb#297
+ def tokens; end
+end
+
+# Ident tokens for the most part are exactly the same, except sometimes we
+# know an ident is a local when ripper doesn't (when they are introduced
+# through named captures in regular expressions). In that case we don't
+# compare the state.
+#
+# source://prism//lib/prism/lex_compat.rb#248
+class Prism::LexCompat::IdentToken < ::Prism::LexCompat::Token
+ # source://prism//lib/prism/lex_compat.rb#249
+ def ==(other); end
+end
+
+# Tokens where state should be ignored
+# used for :on_comment, :on_heredoc_end, :on_embexpr_end
+#
+# source://prism//lib/prism/lex_compat.rb#238
+class Prism::LexCompat::IgnoreStateToken < ::Prism::LexCompat::Token
+ # source://prism//lib/prism/lex_compat.rb#239
+ def ==(other); end
+end
+
+# Ignored newlines can occasionally have a LABEL state attached to them, so
+# we compare the state differently here.
+#
+# source://prism//lib/prism/lex_compat.rb#259
+class Prism::LexCompat::IgnoredNewlineToken < ::Prism::LexCompat::Token
+ # source://prism//lib/prism/lex_compat.rb#260
+ def ==(other); end
+end
+
+# If we have an identifier that follows a method name like:
+#
+# def foo bar
+#
+# then Ripper will mark bar as END|LABEL if there is a local in a parent
+# scope named bar because it hasn't pushed the local table yet. We do this
+# more accurately, so we need to allow comparing against both END and
+# END|LABEL.
+#
+# source://prism//lib/prism/lex_compat.rb#279
+class Prism::LexCompat::ParamToken < ::Prism::LexCompat::Token
+ # source://prism//lib/prism/lex_compat.rb#280
+ def ==(other); end
+end
+
+# This is a mapping of prism token types to Ripper token types. This is a
+# many-to-one mapping because we split up our token types, whereas Ripper
+# tends to group them.
+#
+# source://prism//lib/prism/lex_compat.rb#33
+Prism::LexCompat::RIPPER = T.let(T.unsafe(nil), Hash)
+
+# A result class specialized for holding tokens produced by the lexer.
+#
+# source://prism//lib/prism/lex_compat.rb#14
+class Prism::LexCompat::Result < ::Prism::Result
+ # Create a new lex compat result object with the given values.
+ #
+ # @return [Result] a new instance of Result
+ #
+ # source://prism//lib/prism/lex_compat.rb#19
+ def initialize(value, comments, magic_comments, data_loc, errors, warnings, source); end
+
+ # Implement the hash pattern matching interface for Result.
+ #
+ # source://prism//lib/prism/lex_compat.rb#25
+ def deconstruct_keys(keys); end
+
+ # The list of tokens that were produced by the lexer.
+ #
+ # source://prism//lib/prism/lex_compat.rb#16
+ def value; end
+end
+
+# When we produce tokens, we produce the same arrays that Ripper does.
+# However, we add a couple of convenience methods onto them to make them a
+# little easier to work with. We delegate all other methods to the array.
+#
+# source://prism//lib/prism/lex_compat.rb#204
+class Prism::LexCompat::Token < ::SimpleDelegator
+ # The type of the token.
+ #
+ # source://prism//lib/prism/lex_compat.rb#213
+ def event; end
+
+ # The location of the token in the source.
+ #
+ # source://prism//lib/prism/lex_compat.rb#208
+ def location; end
+
+ # The state of the lexer when this token was produced.
+ #
+ # source://prism//lib/prism/lex_compat.rb#223
+ def state; end
+
+ # The slice of the source that this token represents.
+ #
+ # source://prism//lib/prism/lex_compat.rb#218
+ def value; end
+end
+
+# This is a result specific to the `lex` and `lex_file` methods.
+#
+# source://prism//lib/prism/parse_result.rb#627
+class Prism::LexResult < ::Prism::Result
+ # Create a new lex result object with the given values.
+ #
+ # @return [LexResult] a new instance of LexResult
+ #
+ # source://prism//lib/prism/parse_result.rb#632
+ sig do
+ params(
+ value: T::Array[T.untyped],
+ comments: T::Array[Prism::Comment],
+ magic_comments: T::Array[Prism::MagicComment],
+ data_loc: T.nilable(Prism::Location),
+ errors: T::Array[Prism::ParseError],
+ warnings: T::Array[Prism::ParseWarning],
+ source: Prism::Source
+ ).void
+ end
+ def initialize(value, comments, magic_comments, data_loc, errors, warnings, source); end
+
+ # Implement the hash pattern matching interface for LexResult.
+ #
+ # source://prism//lib/prism/parse_result.rb#638
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ # The list of tokens that were parsed from the source code.
+ #
+ # source://prism//lib/prism/parse_result.rb#629
+ sig { returns(T::Array[T.untyped]) }
+ def value; end
+end
+
+# This is a class that wraps the Ripper lexer to produce almost exactly the
+# same tokens.
+#
+# source://prism//lib/prism/lex_compat.rb#872
+class Prism::LexRipper
+ # @return [LexRipper] a new instance of LexRipper
+ #
+ # source://prism//lib/prism/lex_compat.rb#875
+ def initialize(source); end
+
+ # source://prism//lib/prism/lex_compat.rb#879
+ def result; end
+
+ # source://prism//lib/prism/lex_compat.rb#873
+ def source; end
+
+ private
+
+ # source://prism//lib/prism/lex_compat.rb#913
+ def lex(source); end
+end
+
+# Represents the use of the `&&=` operator for assignment to a local variable.
+#
+# target &&= value
+# ^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#10427
+class Prism::LocalVariableAndWriteNode < ::Prism::Node
+ # Initialize a new LocalVariableAndWriteNode node.
+ #
+ # @return [LocalVariableAndWriteNode] a new instance of LocalVariableAndWriteNode
+ #
+ # source://prism//lib/prism/node.rb#10429
+ def initialize(source, node_id, location, flags, name_loc, operator_loc, value, name, depth); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#10519
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#10442
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#10447
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#10457
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#10452
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?name: Symbol, ?depth: Integer) -> LocalVariableAndWriteNode
+ #
+ # source://prism//lib/prism/node.rb#10462
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil), name: T.unsafe(nil), depth: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#10447
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name_loc: Location, operator_loc: Location, value: Prism::node, name: Symbol, depth: Integer }
+ #
+ # source://prism//lib/prism/node.rb#10470
+ def deconstruct_keys(keys); end
+
+ # attr_reader depth: Integer
+ #
+ # source://prism//lib/prism/node.rb#10495
+ def depth; end
+
+ # source://prism//lib/prism/desugar_compiler.rb#236
+ def desugar; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#10503
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#10492
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#10475
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#10498
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#10482
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#10508
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#10489
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#10513
+ def type; end
+ end
+end
+
+# Represents assigning to a local variable using an operator that isn't `=`.
+#
+# target += value
+# ^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#10533
+class Prism::LocalVariableOperatorWriteNode < ::Prism::Node
+ # Initialize a new LocalVariableOperatorWriteNode node.
+ #
+ # @return [LocalVariableOperatorWriteNode] a new instance of LocalVariableOperatorWriteNode
+ #
+ # source://prism//lib/prism/node.rb#10535
+ def initialize(source, node_id, location, flags, name_loc, binary_operator_loc, value, name, binary_operator, depth); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#10624
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#10549
+ def accept(visitor); end
+
+ # attr_reader binary_operator: Symbol
+ #
+ # source://prism//lib/prism/node.rb#10602
+ def binary_operator; end
+
+ # attr_reader binary_operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#10589
+ def binary_operator_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#10554
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#10564
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#10559
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name_loc: Location, ?binary_operator_loc: Location, ?value: Prism::node, ?name: Symbol, ?binary_operator: Symbol, ?depth: Integer) -> LocalVariableOperatorWriteNode
+ #
+ # source://prism//lib/prism/node.rb#10569
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name_loc: T.unsafe(nil), binary_operator_loc: T.unsafe(nil), value: T.unsafe(nil), name: T.unsafe(nil), binary_operator: T.unsafe(nil), depth: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#10554
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name_loc: Location, binary_operator_loc: Location, value: Prism::node, name: Symbol, binary_operator: Symbol, depth: Integer }
+ #
+ # source://prism//lib/prism/node.rb#10577
+ def deconstruct_keys(keys); end
+
+ # attr_reader depth: Integer
+ #
+ # source://prism//lib/prism/node.rb#10605
+ def depth; end
+
+ # source://prism//lib/prism/desugar_compiler.rb#248
+ def desugar; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#10608
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#10599
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#10582
+ def name_loc; end
+
+ # Returns the binary operator used to modify the receiver. This method is
+ # deprecated in favor of #binary_operator.
+ #
+ # source://prism//lib/prism/node_ext.rb#451
+ def operator; end
+
+ # Returns the location of the binary operator used to modify the receiver.
+ # This method is deprecated in favor of #binary_operator_loc.
+ #
+ # source://prism//lib/prism/node_ext.rb#458
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#10613
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#10596
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#10618
+ def type; end
+ end
+end
+
+# Represents the use of the `||=` operator for assignment to a local variable.
+#
+# target ||= value
+# ^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#10639
+class Prism::LocalVariableOrWriteNode < ::Prism::Node
+ # Initialize a new LocalVariableOrWriteNode node.
+ #
+ # @return [LocalVariableOrWriteNode] a new instance of LocalVariableOrWriteNode
+ #
+ # source://prism//lib/prism/node.rb#10641
+ def initialize(source, node_id, location, flags, name_loc, operator_loc, value, name, depth); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#10731
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#10654
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#10659
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#10669
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#10664
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?name: Symbol, ?depth: Integer) -> LocalVariableOrWriteNode
+ #
+ # source://prism//lib/prism/node.rb#10674
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil), name: T.unsafe(nil), depth: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#10659
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name_loc: Location, operator_loc: Location, value: Prism::node, name: Symbol, depth: Integer }
+ #
+ # source://prism//lib/prism/node.rb#10682
+ def deconstruct_keys(keys); end
+
+ # attr_reader depth: Integer
+ #
+ # source://prism//lib/prism/node.rb#10707
+ def depth; end
+
+ # source://prism//lib/prism/desugar_compiler.rb#242
+ def desugar; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#10715
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#10704
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#10687
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#10710
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#10694
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#10720
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#10701
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#10725
+ def type; end
+ end
+end
+
+# Represents reading a local variable. Note that this requires that a local variable of the same name has already been written to in the same scope, otherwise it is parsed as a method call.
+#
+# foo
+# ^^^
+#
+# source://prism//lib/prism/node.rb#10745
+class Prism::LocalVariableReadNode < ::Prism::Node
+ # Initialize a new LocalVariableReadNode node.
+ #
+ # @return [LocalVariableReadNode] a new instance of LocalVariableReadNode
+ #
+ # source://prism//lib/prism/node.rb#10747
+ def initialize(source, node_id, location, flags, name, depth); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#10826
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#10757
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#10762
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#10772
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#10767
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?depth: Integer) -> LocalVariableReadNode
+ #
+ # source://prism//lib/prism/node.rb#10777
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), depth: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#10762
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, depth: Integer }
+ #
+ # source://prism//lib/prism/node.rb#10785
+ def deconstruct_keys(keys); end
+
+ # The number of visible scopes that should be searched to find the origin of this local variable.
+ #
+ # foo = 1; foo # depth 0
+ #
+ # bar = 2; tap { bar } # depth 1
+ #
+ # The specific rules for calculating the depth may differ from individual Ruby implementations, as they are not specified by the language. For more information, see [the Prism documentation](https://github.com/ruby/prism/blob/main/docs/local_variable_depth.md).
+ #
+ # source://prism//lib/prism/node.rb#10807
+ def depth; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#10810
+ sig { override.returns(String) }
+ def inspect; end
+
+ # The name of the local variable, which is an [identifier](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#identifiers).
+ #
+ # x # name `:x`
+ #
+ # _Test # name `:_Test`
+ #
+ # Note that this can also be an underscore followed by a number for the default block parameters.
+ #
+ # _1 # name `:_1`
+ #
+ # source://prism//lib/prism/node.rb#10798
+ def name; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#10815
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#10820
+ def type; end
+ end
+end
+
+# Represents writing to a local variable in a context that doesn't have an explicit value.
+#
+# foo, bar = baz
+# ^^^ ^^^
+#
+# source://prism//lib/prism/node.rb#10837
+class Prism::LocalVariableTargetNode < ::Prism::Node
+ # Initialize a new LocalVariableTargetNode node.
+ #
+ # @return [LocalVariableTargetNode] a new instance of LocalVariableTargetNode
+ #
+ # source://prism//lib/prism/node.rb#10839
+ def initialize(source, node_id, location, flags, name, depth); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#10904
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#10849
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#10854
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#10864
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#10859
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?depth: Integer) -> LocalVariableTargetNode
+ #
+ # source://prism//lib/prism/node.rb#10869
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), depth: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#10854
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, depth: Integer }
+ #
+ # source://prism//lib/prism/node.rb#10877
+ def deconstruct_keys(keys); end
+
+ # attr_reader depth: Integer
+ #
+ # source://prism//lib/prism/node.rb#10885
+ def depth; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#10888
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#10882
+ def name; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#10893
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#10898
+ def type; end
+ end
+end
+
+# Represents writing to a local variable.
+#
+# foo = 1
+# ^^^^^^^
+#
+# source://prism//lib/prism/node.rb#10915
+class Prism::LocalVariableWriteNode < ::Prism::Node
+ # Initialize a new LocalVariableWriteNode node.
+ #
+ # @return [LocalVariableWriteNode] a new instance of LocalVariableWriteNode
+ #
+ # source://prism//lib/prism/node.rb#10917
+ def initialize(source, node_id, location, flags, name, depth, name_loc, value, operator_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#11033
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#10930
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#10935
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#10945
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#10940
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?depth: Integer, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location) -> LocalVariableWriteNode
+ #
+ # source://prism//lib/prism/node.rb#10950
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), depth: T.unsafe(nil), name_loc: T.unsafe(nil), value: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#10935
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, depth: Integer, name_loc: Location, value: Prism::node, operator_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#10958
+ def deconstruct_keys(keys); end
+
+ # The number of semantic scopes we have to traverse to find the declaration of this variable.
+ #
+ # foo = 1 # depth 0
+ #
+ # tap { foo = 1 } # depth 1
+ #
+ # The specific rules for calculating the depth may differ from individual Ruby implementations, as they are not specified by the language. For more information, see [the Prism documentation](https://github.com/ruby/prism/blob/main/docs/local_variable_depth.md).
+ #
+ # source://prism//lib/prism/node.rb#10976
+ def depth; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#11017
+ sig { override.returns(String) }
+ def inspect; end
+
+ # The name of the local variable, which is an [identifier](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#identifiers).
+ #
+ # foo = :bar # name `:foo`
+ #
+ # abc = 123 # name `:abc`
+ #
+ # source://prism//lib/prism/node.rb#10967
+ def name; end
+
+ # The location of the variable name.
+ #
+ # foo = :bar
+ # ^^^
+ #
+ # source://prism//lib/prism/node.rb#10982
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#11012
+ def operator; end
+
+ # The location of the `=` operator.
+ #
+ # x = :y
+ # ^
+ #
+ # source://prism//lib/prism/node.rb#11005
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#11022
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # The value to write to the local variable. It can be any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
+ #
+ # foo = :bar
+ # ^^^^
+ #
+ # abc = 1234
+ # ^^^^
+ #
+ # Note that since the name of a local variable is known before the value is parsed, it is valid for a local variable to appear within the value of its own write.
+ #
+ # foo = foo
+ #
+ # source://prism//lib/prism/node.rb#10999
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#11027
+ def type; end
+ end
+end
+
+# This represents a location in the source.
+#
+# source://prism//lib/prism/parse_result.rb#165
+class Prism::Location
+ # Create a new location object with the given source, start byte offset, and
+ # byte length.
+ #
+ # @return [Location] a new instance of Location
+ #
+ # source://prism//lib/prism/parse_result.rb#180
+ sig { params(source: Prism::Source, start_offset: Integer, length: Integer).void }
+ def initialize(source, start_offset, length); end
+
+ # Returns true if the given other location is equal to this location.
+ #
+ # source://prism//lib/prism/parse_result.rb#344
+ sig { params(other: T.untyped).returns(T::Boolean) }
+ def ==(other); end
+
+ # Join this location with the first occurrence of the string in the source
+ # that occurs after this location on the same line, and return the new
+ # location. This will raise an error if the string does not exist.
+ #
+ # source://prism//lib/prism/parse_result.rb#363
+ sig { params(string: String).returns(Prism::Location) }
+ def adjoin(string); end
+
+ # Returns a new location that is the result of chopping off the last byte.
+ #
+ # source://prism//lib/prism/parse_result.rb#226
+ sig { returns(Prism::Location) }
+ def chop; end
+
+ # Returns all comments that are associated with this location (both leading
+ # and trailing comments).
+ #
+ # source://prism//lib/prism/parse_result.rb#216
+ sig { returns(T::Array[Prism::Comment]) }
+ def comments; end
+
+ # Create a new location object with the given options.
+ #
+ # source://prism//lib/prism/parse_result.rb#221
+ sig { params(source: Prism::Source, start_offset: Integer, length: Integer).returns(Prism::Location) }
+ def copy(source: T.unsafe(nil), start_offset: T.unsafe(nil), length: T.unsafe(nil)); end
+
+ # Implement the hash pattern matching interface for Location.
+ #
+ # source://prism//lib/prism/parse_result.rb#334
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ # The column number in characters where this location ends from the start of
+ # the line.
+ #
+ # source://prism//lib/prism/parse_result.rb#323
+ sig { returns(Integer) }
+ def end_character_column; end
+
+ # The character offset from the beginning of the source where this location
+ # ends.
+ #
+ # source://prism//lib/prism/parse_result.rb#272
+ sig { returns(Integer) }
+ def end_character_offset; end
+
+ # The column number in code units of the given encoding where this location
+ # ends from the start of the line.
+ #
+ # source://prism//lib/prism/parse_result.rb#329
+ sig { params(encoding: Encoding).returns(Integer) }
+ def end_code_units_column(encoding = T.unsafe(nil)); end
+
+ # The offset from the start of the file in code units of the given encoding.
+ #
+ # source://prism//lib/prism/parse_result.rb#277
+ sig { params(encoding: Encoding).returns(Integer) }
+ def end_code_units_offset(encoding = T.unsafe(nil)); end
+
+ # The column number in bytes where this location ends from the start of the
+ # line.
+ #
+ # source://prism//lib/prism/parse_result.rb#317
+ sig { returns(Integer) }
+ def end_column; end
+
+ # The line number where this location ends.
+ #
+ # source://prism//lib/prism/parse_result.rb#293
+ sig { returns(Integer) }
+ def end_line; end
+
+ # The byte offset from the beginning of the source where this location ends.
+ #
+ # source://prism//lib/prism/parse_result.rb#266
+ sig { returns(Integer) }
+ def end_offset; end
+
+ # Returns a string representation of this location.
+ #
+ # source://prism//lib/prism/parse_result.rb#231
+ sig { returns(String) }
+ def inspect; end
+
+ # Returns a new location that stretches from this location to the given
+ # other location. Raises an error if this location is not before the other
+ # location or if they don't share the same source.
+ #
+ # source://prism//lib/prism/parse_result.rb#353
+ sig { params(other: Prism::Location).returns(Prism::Location) }
+ def join(other); end
+
+ # Attach a comment to the leading comments of this location.
+ #
+ # source://prism//lib/prism/parse_result.rb#199
+ sig { params(comment: Prism::Comment).void }
+ def leading_comment(comment); end
+
+ # These are the comments that are associated with this location that exist
+ # before the start of this location.
+ #
+ # source://prism//lib/prism/parse_result.rb#194
+ sig { returns(T::Array[Prism::Comment]) }
+ def leading_comments; end
+
+ # The length of this location in bytes.
+ #
+ # source://prism//lib/prism/parse_result.rb#176
+ sig { returns(Integer) }
+ def length; end
+
+ # Implement the pretty print interface for Location.
+ #
+ # source://prism//lib/prism/parse_result.rb#339
+ sig { params(q: T.untyped).void }
+ def pretty_print(q); end
+
+ # The source code that this location represents.
+ #
+ # source://prism//lib/prism/parse_result.rb#241
+ sig { returns(String) }
+ def slice; end
+
+ # The source code that this location represents starting from the beginning
+ # of the line that this location starts on to the end of the line that this
+ # location ends on.
+ #
+ # source://prism//lib/prism/parse_result.rb#248
+ def slice_lines; end
+
+ # Returns all of the lines of the source code associated with this location.
+ #
+ # source://prism//lib/prism/parse_result.rb#236
+ sig { returns(T::Array[String]) }
+ def source_lines; end
+
+ # The column number in characters where this location ends from the start of
+ # the line.
+ #
+ # source://prism//lib/prism/parse_result.rb#305
+ sig { returns(Integer) }
+ def start_character_column; end
+
+ # The character offset from the beginning of the source where this location
+ # starts.
+ #
+ # source://prism//lib/prism/parse_result.rb#256
+ sig { returns(Integer) }
+ def start_character_offset; end
+
+ # The column number in code units of the given encoding where this location
+ # starts from the start of the line.
+ #
+ # source://prism//lib/prism/parse_result.rb#311
+ sig { params(encoding: Encoding).returns(Integer) }
+ def start_code_units_column(encoding = T.unsafe(nil)); end
+
+ # The offset from the start of the file in code units of the given encoding.
+ #
+ # source://prism//lib/prism/parse_result.rb#261
+ sig { params(encoding: Encoding).returns(Integer) }
+ def start_code_units_offset(encoding = T.unsafe(nil)); end
+
+ # The column number in bytes where this location starts from the start of
+ # the line.
+ #
+ # source://prism//lib/prism/parse_result.rb#299
+ sig { returns(Integer) }
+ def start_column; end
+
+ # The line number where this location starts.
+ #
+ # source://prism//lib/prism/parse_result.rb#282
+ sig { returns(Integer) }
+ def start_line; end
+
+ # The content of the line where this location starts before this location.
+ #
+ # source://prism//lib/prism/parse_result.rb#287
+ sig { returns(String) }
+ def start_line_slice; end
+
+ # The byte offset from the beginning of the source where this location
+ # starts.
+ #
+ # source://prism//lib/prism/parse_result.rb#173
+ sig { returns(Integer) }
+ def start_offset; end
+
+ # Attach a comment to the trailing comments of this location.
+ #
+ # source://prism//lib/prism/parse_result.rb#210
+ sig { params(comment: Prism::Comment).void }
+ def trailing_comment(comment); end
+
+ # These are the comments that are associated with this location that exist
+ # after the end of this location.
+ #
+ # source://prism//lib/prism/parse_result.rb#205
+ sig { returns(T::Array[Prism::Comment]) }
+ def trailing_comments; end
+
+ protected
+
+ # A Source object that is used to determine more information from the given
+ # offset and length.
+ #
+ # source://prism//lib/prism/parse_result.rb#168
+ sig { returns(Prism::Source) }
+ def source; end
+end
+
+# Flags for while and until loop nodes.
+#
+# source://prism//lib/prism/node.rb#16719
+module Prism::LoopFlags; end
+
+# a loop after a begin statement, so the body is executed first before the condition
+#
+# source://prism//lib/prism/node.rb#16721
+Prism::LoopFlags::BEGIN_MODIFIER = T.let(T.unsafe(nil), Integer)
+
+# This represents a magic comment that was encountered during parsing.
+#
+# source://prism//lib/prism/parse_result.rb#425
+class Prism::MagicComment
+ # Create a new magic comment object with the given key and value locations.
+ #
+ # @return [MagicComment] a new instance of MagicComment
+ #
+ # source://prism//lib/prism/parse_result.rb#433
+ sig { params(key_loc: Prism::Location, value_loc: Prism::Location).void }
+ def initialize(key_loc, value_loc); end
+
+ # Implement the hash pattern matching interface for MagicComment.
+ #
+ # source://prism//lib/prism/parse_result.rb#449
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ # Returns a string representation of this magic comment.
+ #
+ # source://prism//lib/prism/parse_result.rb#454
+ sig { returns(String) }
+ def inspect; end
+
+ # Returns the key of the magic comment by slicing it from the source code.
+ #
+ # source://prism//lib/prism/parse_result.rb#439
+ sig { returns(String) }
+ def key; end
+
+ # A Location object representing the location of the key in the source.
+ #
+ # source://prism//lib/prism/parse_result.rb#427
+ sig { returns(Prism::Location) }
+ def key_loc; end
+
+ # Returns the value of the magic comment by slicing it from the source code.
+ #
+ # source://prism//lib/prism/parse_result.rb#444
+ sig { returns(String) }
+ def value; end
+
+ # A Location object representing the location of the value in the source.
+ #
+ # source://prism//lib/prism/parse_result.rb#430
+ sig { returns(Prism::Location) }
+ def value_loc; end
+end
+
+# Represents a regular expression literal used in the predicate of a conditional to implicitly match against the last line read by an IO object.
+#
+# if /foo/i then end
+# ^^^^^^
+#
+# source://prism//lib/prism/node.rb#11047
+class Prism::MatchLastLineNode < ::Prism::Node
+ include ::Prism::RegularExpressionOptions
+
+ # Initialize a new MatchLastLineNode node.
+ #
+ # @return [MatchLastLineNode] a new instance of MatchLastLineNode
+ #
+ # source://prism//lib/prism/node.rb#11049
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: Prism::Location,
+ content_loc: Prism::Location,
+ closing_loc: Prism::Location,
+ unescaped: String
+ ).void
+ end
+ def initialize(source, node_id, location, flags, opening_loc, content_loc, closing_loc, unescaped); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#11204
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#11061
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def ascii_8bit?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#11119
+ sig { returns(T::Boolean) }
+ def ascii_8bit?; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#11066
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism//lib/prism/node.rb#11183
+ sig { returns(String) }
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#11163
+ sig { returns(Prism::Location) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#11076
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#11071
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def content: () -> String
+ #
+ # source://prism//lib/prism/node.rb#11178
+ sig { returns(String) }
+ def content; end
+
+ # attr_reader content_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#11156
+ sig { returns(Prism::Location) }
+ def content_loc; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?content_loc: Location, ?closing_loc: Location, ?unescaped: String) -> MatchLastLineNode
+ #
+ # source://prism//lib/prism/node.rb#11081
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: Prism::Location,
+ content_loc: Prism::Location,
+ closing_loc: Prism::Location,
+ unescaped: String
+ ).returns(Prism::MatchLastLineNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), opening_loc: T.unsafe(nil), content_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), unescaped: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#11066
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String }
+ #
+ # source://prism//lib/prism/node.rb#11089
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ # def euc_jp?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#11114
+ sig { returns(T::Boolean) }
+ def euc_jp?; end
+
+ # def extended?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#11099
+ sig { returns(T::Boolean) }
+ def extended?; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def forced_binary_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#11139
+ sig { returns(T::Boolean) }
+ def forced_binary_encoding?; end
+
+ # def forced_us_ascii_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#11144
+ sig { returns(T::Boolean) }
+ def forced_us_ascii_encoding?; end
+
+ # def forced_utf8_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#11134
+ sig { returns(T::Boolean) }
+ def forced_utf8_encoding?; end
+
+ # def ignore_case?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#11094
+ sig { returns(T::Boolean) }
+ def ignore_case?; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#11188
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def multi_line?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#11104
+ sig { returns(T::Boolean) }
+ def multi_line?; end
+
+ # def once?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#11109
+ sig { returns(T::Boolean) }
+ def once?; end
+
+ # def opening: () -> String
+ #
+ # source://prism//lib/prism/node.rb#11173
+ sig { returns(String) }
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#11149
+ sig { returns(Prism::Location) }
+ def opening_loc; end
+
+ sig { returns(Integer) }
+ def options; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#11193
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader unescaped: String
+ #
+ # source://prism//lib/prism/node.rb#11170
+ sig { returns(String) }
+ def unescaped; end
+
+ # def utf_8?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#11129
+ sig { returns(T::Boolean) }
+ def utf_8?; end
+
+ # def windows_31j?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#11124
+ sig { returns(T::Boolean) }
+ def windows_31j?; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#11198
+ def type; end
+ end
+end
+
+# Represents the use of the modifier `in` operator.
+#
+# foo in bar
+# ^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#11218
+class Prism::MatchPredicateNode < ::Prism::Node
+ # Initialize a new MatchPredicateNode node.
+ #
+ # @return [MatchPredicateNode] a new instance of MatchPredicateNode
+ #
+ # source://prism//lib/prism/node.rb#11220
+ def initialize(source, node_id, location, flags, value, pattern, operator_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#11298
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#11231
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#11236
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#11246
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#11241
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?value: Prism::node, ?pattern: Prism::node, ?operator_loc: Location) -> MatchPredicateNode
+ #
+ # source://prism//lib/prism/node.rb#11251
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), value: T.unsafe(nil), pattern: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#11236
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, value: Prism::node, pattern: Prism::node, operator_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#11259
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#11282
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#11277
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#11270
+ def operator_loc; end
+
+ # attr_reader pattern: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#11267
+ def pattern; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#11287
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#11264
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#11292
+ def type; end
+ end
+end
+
+# Represents the use of the `=>` operator.
+#
+# foo => bar
+# ^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#11310
+class Prism::MatchRequiredNode < ::Prism::Node
+ # Initialize a new MatchRequiredNode node.
+ #
+ # @return [MatchRequiredNode] a new instance of MatchRequiredNode
+ #
+ # source://prism//lib/prism/node.rb#11312
+ def initialize(source, node_id, location, flags, value, pattern, operator_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#11390
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#11323
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#11328
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#11338
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#11333
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?value: Prism::node, ?pattern: Prism::node, ?operator_loc: Location) -> MatchRequiredNode
+ #
+ # source://prism//lib/prism/node.rb#11343
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), value: T.unsafe(nil), pattern: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#11328
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, value: Prism::node, pattern: Prism::node, operator_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#11351
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#11374
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#11369
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#11362
+ def operator_loc; end
+
+ # attr_reader pattern: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#11359
+ def pattern; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#11379
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#11356
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#11384
+ def type; end
+ end
+end
+
+# Represents writing local variables using a regular expression match with named capture groups.
+#
+# /(?<foo>bar)/ =~ baz
+# ^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#11402
+class Prism::MatchWriteNode < ::Prism::Node
+ # Initialize a new MatchWriteNode node.
+ #
+ # @return [MatchWriteNode] a new instance of MatchWriteNode
+ #
+ # source://prism//lib/prism/node.rb#11404
+ def initialize(source, node_id, location, flags, call, targets); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#11469
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#11414
+ def accept(visitor); end
+
+ # attr_reader call: CallNode
+ #
+ # source://prism//lib/prism/node.rb#11447
+ def call; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#11419
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#11429
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#11424
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?call: CallNode, ?targets: Array[LocalVariableTargetNode]) -> MatchWriteNode
+ #
+ # source://prism//lib/prism/node.rb#11434
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), call: T.unsafe(nil), targets: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#11419
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, call: CallNode, targets: Array[LocalVariableTargetNode] }
+ #
+ # source://prism//lib/prism/node.rb#11442
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#11453
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader targets: Array[LocalVariableTargetNode]
+ #
+ # source://prism//lib/prism/node.rb#11450
+ def targets; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#11458
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#11463
+ def type; end
+ end
+end
+
+# Represents a node that is missing from the source and results in a syntax error.
+#
+# source://prism//lib/prism/node.rb#11478
+class Prism::MissingNode < ::Prism::Node
+ # Initialize a new MissingNode node.
+ #
+ # @return [MissingNode] a new instance of MissingNode
+ #
+ # source://prism//lib/prism/node.rb#11480
+ def initialize(source, node_id, location, flags); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#11537
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#11488
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#11493
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#11503
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#11498
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> MissingNode
+ #
+ # source://prism//lib/prism/node.rb#11508
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#11493
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
+ #
+ # source://prism//lib/prism/node.rb#11516
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#11521
+ sig { override.returns(String) }
+ def inspect; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#11526
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#11531
+ def type; end
+ end
+end
+
+# Represents a module declaration involving the `module` keyword.
+#
+# module Foo end
+# ^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#11546
+class Prism::ModuleNode < ::Prism::Node
+ # Initialize a new ModuleNode node.
+ #
+ # @return [ModuleNode] a new instance of ModuleNode
+ #
+ # source://prism//lib/prism/node.rb#11548
+ def initialize(source, node_id, location, flags, locals, module_keyword_loc, constant_path, body, end_keyword_loc, name); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#11650
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#11562
+ def accept(visitor); end
+
+ # attr_reader body: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#11611
+ def body; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#11567
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#11580
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#11572
+ def compact_child_nodes; end
+
+ # attr_reader constant_path: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#11608
+ def constant_path; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?locals: Array[Symbol], ?module_keyword_loc: Location, ?constant_path: Prism::node, ?body: Prism::node?, ?end_keyword_loc: Location, ?name: Symbol) -> ModuleNode
+ #
+ # source://prism//lib/prism/node.rb#11585
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), locals: T.unsafe(nil), module_keyword_loc: T.unsafe(nil), constant_path: T.unsafe(nil), body: T.unsafe(nil), end_keyword_loc: T.unsafe(nil), name: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#11567
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, locals: Array[Symbol], module_keyword_loc: Location, constant_path: Prism::node, body: Prism::node?, end_keyword_loc: Location, name: Symbol }
+ #
+ # source://prism//lib/prism/node.rb#11593
+ def deconstruct_keys(keys); end
+
+ # def end_keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#11629
+ def end_keyword; end
+
+ # attr_reader end_keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#11614
+ def end_keyword_loc; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#11634
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader locals: Array[Symbol]
+ #
+ # source://prism//lib/prism/node.rb#11598
+ def locals; end
+
+ # def module_keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#11624
+ def module_keyword; end
+
+ # attr_reader module_keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#11601
+ def module_keyword_loc; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#11621
+ def name; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#11639
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#11644
+ def type; end
+ end
+end
+
+# Represents a multi-target expression.
+#
+# a, (b, c) = 1, 2, 3
+# ^^^^^^
+#
+# This can be a part of `MultiWriteNode` as above, or the target of a `for` loop
+#
+# for a, b in [[1, 2], [3, 4]]
+# ^^^^
+#
+# source://prism//lib/prism/node.rb#11671
+class Prism::MultiTargetNode < ::Prism::Node
+ # Initialize a new MultiTargetNode node.
+ #
+ # @return [MultiTargetNode] a new instance of MultiTargetNode
+ #
+ # source://prism//lib/prism/node.rb#11673
+ def initialize(source, node_id, location, flags, lefts, rest, rights, lparen_loc, rparen_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#11814
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#11686
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#11691
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#11705
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#11696
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?lefts: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode | NumberedReferenceReadNode], ?rest: ImplicitRestNode | SplatNode | nil, ?rights: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode], ?lparen_loc: Location?, ?rparen_loc: Location?) -> MultiTargetNode
+ #
+ # source://prism//lib/prism/node.rb#11710
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), lefts: T.unsafe(nil), rest: T.unsafe(nil), rights: T.unsafe(nil), lparen_loc: T.unsafe(nil), rparen_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#11691
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, lefts: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode | NumberedReferenceReadNode], rest: ImplicitRestNode | SplatNode | nil, rights: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode], lparen_loc: Location?, rparen_loc: Location? }
+ #
+ # source://prism//lib/prism/node.rb#11718
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#11798
+ sig { override.returns(String) }
+ def inspect; end
+
+ # Represents the targets expressions before a splat node.
+ #
+ # a, (b, c, *) = 1, 2, 3, 4, 5
+ # ^^^^
+ #
+ # The splat node can be absent, in that case all target expressions are in the left field.
+ #
+ # a, (b, c) = 1, 2, 3, 4, 5
+ # ^^^^
+ #
+ # source://prism//lib/prism/node.rb#11731
+ def lefts; end
+
+ # def lparen: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#11788
+ def lparen; end
+
+ # The location of the opening parenthesis.
+ #
+ # a, (b, c) = 1, 2, 3
+ # ^
+ #
+ # source://prism//lib/prism/node.rb#11759
+ def lparen_loc; end
+
+ # Represents a splat node in the target expression.
+ #
+ # a, (b, *c) = 1, 2, 3, 4
+ # ^^
+ #
+ # The variable can be empty, this results in a `SplatNode` with a `nil` expression field.
+ #
+ # a, (b, *) = 1, 2, 3, 4
+ # ^
+ #
+ # If the `*` is omitted, the field will containt an `ImplicitRestNode`
+ #
+ # a, (b,) = 1, 2, 3, 4
+ # ^
+ #
+ # source://prism//lib/prism/node.rb#11747
+ def rest; end
+
+ # Represents the targets expressions after a splat node.
+ #
+ # a, (*, b, c) = 1, 2, 3, 4, 5
+ # ^^^^
+ #
+ # source://prism//lib/prism/node.rb#11753
+ def rights; end
+
+ # def rparen: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#11793
+ def rparen; end
+
+ # The location of the closing parenthesis.
+ #
+ # a, (b, c) = 1, 2, 3
+ # ^
+ #
+ # source://prism//lib/prism/node.rb#11775
+ def rparen_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#11803
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#11808
+ def type; end
+ end
+end
+
+# Represents a write to a multi-target expression.
+#
+# a, b, c = 1, 2, 3
+# ^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#11830
+class Prism::MultiWriteNode < ::Prism::Node
+ # Initialize a new MultiWriteNode node.
+ #
+ # @return [MultiWriteNode] a new instance of MultiWriteNode
+ #
+ # source://prism//lib/prism/node.rb#11832
+ def initialize(source, node_id, location, flags, lefts, rest, rights, lparen_loc, rparen_loc, operator_loc, value); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#11997
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#11847
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#11852
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#11867
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#11857
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?lefts: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode], ?rest: ImplicitRestNode | SplatNode | nil, ?rights: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode], ?lparen_loc: Location?, ?rparen_loc: Location?, ?operator_loc: Location, ?value: Prism::node) -> MultiWriteNode
+ #
+ # source://prism//lib/prism/node.rb#11872
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), lefts: T.unsafe(nil), rest: T.unsafe(nil), rights: T.unsafe(nil), lparen_loc: T.unsafe(nil), rparen_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#11852
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, lefts: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode], rest: ImplicitRestNode | SplatNode | nil, rights: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode], lparen_loc: Location?, rparen_loc: Location?, operator_loc: Location, value: Prism::node }
+ #
+ # source://prism//lib/prism/node.rb#11880
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#11981
+ sig { override.returns(String) }
+ def inspect; end
+
+ # Represents the targets expressions before a splat node.
+ #
+ # a, b, * = 1, 2, 3, 4, 5
+ # ^^^^
+ #
+ # The splat node can be absent, in that case all target expressions are in the left field.
+ #
+ # a, b, c = 1, 2, 3, 4, 5
+ # ^^^^^^^
+ #
+ # source://prism//lib/prism/node.rb#11893
+ def lefts; end
+
+ # def lparen: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#11966
+ def lparen; end
+
+ # The location of the opening parenthesis.
+ #
+ # (a, b, c) = 1, 2, 3
+ # ^
+ #
+ # source://prism//lib/prism/node.rb#11921
+ def lparen_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#11976
+ def operator; end
+
+ # The location of the operator.
+ #
+ # a, b, c = 1, 2, 3
+ # ^
+ #
+ # source://prism//lib/prism/node.rb#11953
+ def operator_loc; end
+
+ # Represents a splat node in the target expression.
+ #
+ # a, b, *c = 1, 2, 3, 4
+ # ^^
+ #
+ # The variable can be empty, this results in a `SplatNode` with a `nil` expression field.
+ #
+ # a, b, * = 1, 2, 3, 4
+ # ^
+ #
+ # If the `*` is omitted, the field will containt an `ImplicitRestNode`
+ #
+ # a, b, = 1, 2, 3, 4
+ # ^
+ #
+ # source://prism//lib/prism/node.rb#11909
+ def rest; end
+
+ # Represents the targets expressions after a splat node.
+ #
+ # a, *, b, c = 1, 2, 3, 4, 5
+ # ^^^^
+ #
+ # source://prism//lib/prism/node.rb#11915
+ def rights; end
+
+ # def rparen: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#11971
+ def rparen; end
+
+ # The location of the closing parenthesis.
+ #
+ # (a, b, c) = 1, 2, 3
+ # ^
+ #
+ # source://prism//lib/prism/node.rb#11937
+ def rparen_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#11986
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # The value to write to the targets. It can be any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
+ #
+ # a, b, c = 1, 2, 3
+ # ^^^^^^^
+ #
+ # source://prism//lib/prism/node.rb#11963
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#11991
+ def type; end
+ end
+end
+
+# This visitor walks through the tree and copies each node as it is being
+# visited. This is useful for consumers that want to mutate the tree, as you
+# can change subtrees in place without effecting the rest of the tree.
+#
+# source://prism//lib/prism/mutation_compiler.rb#13
+class Prism::MutationCompiler < ::Prism::Compiler
+ # Copy a AliasGlobalVariableNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#15
+ def visit_alias_global_variable_node(node); end
+
+ # Copy a AliasMethodNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#20
+ def visit_alias_method_node(node); end
+
+ # Copy a AlternationPatternNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#25
+ def visit_alternation_pattern_node(node); end
+
+ # Copy a AndNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#30
+ def visit_and_node(node); end
+
+ # Copy a ArgumentsNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#35
+ def visit_arguments_node(node); end
+
+ # Copy a ArrayNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#40
+ def visit_array_node(node); end
+
+ # Copy a ArrayPatternNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#45
+ def visit_array_pattern_node(node); end
+
+ # Copy a AssocNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#50
+ def visit_assoc_node(node); end
+
+ # Copy a AssocSplatNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#55
+ def visit_assoc_splat_node(node); end
+
+ # Copy a BackReferenceReadNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#60
+ def visit_back_reference_read_node(node); end
+
+ # Copy a BeginNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#65
+ def visit_begin_node(node); end
+
+ # Copy a BlockArgumentNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#70
+ def visit_block_argument_node(node); end
+
+ # Copy a BlockLocalVariableNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#75
+ def visit_block_local_variable_node(node); end
+
+ # Copy a BlockNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#80
+ def visit_block_node(node); end
+
+ # Copy a BlockParameterNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#85
+ def visit_block_parameter_node(node); end
+
+ # Copy a BlockParametersNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#90
+ def visit_block_parameters_node(node); end
+
+ # Copy a BreakNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#95
+ def visit_break_node(node); end
+
+ # Copy a CallAndWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#100
+ def visit_call_and_write_node(node); end
+
+ # Copy a CallNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#105
+ def visit_call_node(node); end
+
+ # Copy a CallOperatorWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#110
+ def visit_call_operator_write_node(node); end
+
+ # Copy a CallOrWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#115
+ def visit_call_or_write_node(node); end
+
+ # Copy a CallTargetNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#120
+ def visit_call_target_node(node); end
+
+ # Copy a CapturePatternNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#125
+ def visit_capture_pattern_node(node); end
+
+ # Copy a CaseMatchNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#130
+ def visit_case_match_node(node); end
+
+ # Copy a CaseNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#135
+ def visit_case_node(node); end
+
+ # Copy a ClassNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#140
+ def visit_class_node(node); end
+
+ # Copy a ClassVariableAndWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#145
+ def visit_class_variable_and_write_node(node); end
+
+ # Copy a ClassVariableOperatorWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#150
+ def visit_class_variable_operator_write_node(node); end
+
+ # Copy a ClassVariableOrWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#155
+ def visit_class_variable_or_write_node(node); end
+
+ # Copy a ClassVariableReadNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#160
+ def visit_class_variable_read_node(node); end
+
+ # Copy a ClassVariableTargetNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#165
+ def visit_class_variable_target_node(node); end
+
+ # Copy a ClassVariableWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#170
+ def visit_class_variable_write_node(node); end
+
+ # Copy a ConstantAndWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#175
+ def visit_constant_and_write_node(node); end
+
+ # Copy a ConstantOperatorWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#180
+ def visit_constant_operator_write_node(node); end
+
+ # Copy a ConstantOrWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#185
+ def visit_constant_or_write_node(node); end
+
+ # Copy a ConstantPathAndWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#190
+ def visit_constant_path_and_write_node(node); end
+
+ # Copy a ConstantPathNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#195
+ def visit_constant_path_node(node); end
+
+ # Copy a ConstantPathOperatorWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#200
+ def visit_constant_path_operator_write_node(node); end
+
+ # Copy a ConstantPathOrWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#205
+ def visit_constant_path_or_write_node(node); end
+
+ # Copy a ConstantPathTargetNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#210
+ def visit_constant_path_target_node(node); end
+
+ # Copy a ConstantPathWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#215
+ def visit_constant_path_write_node(node); end
+
+ # Copy a ConstantReadNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#220
+ def visit_constant_read_node(node); end
+
+ # Copy a ConstantTargetNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#225
+ def visit_constant_target_node(node); end
+
+ # Copy a ConstantWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#230
+ def visit_constant_write_node(node); end
+
+ # Copy a DefNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#235
+ def visit_def_node(node); end
+
+ # Copy a DefinedNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#240
+ def visit_defined_node(node); end
+
+ # Copy a ElseNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#245
+ def visit_else_node(node); end
+
+ # Copy a EmbeddedStatementsNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#250
+ def visit_embedded_statements_node(node); end
+
+ # Copy a EmbeddedVariableNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#255
+ def visit_embedded_variable_node(node); end
+
+ # Copy a EnsureNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#260
+ def visit_ensure_node(node); end
+
+ # Copy a FalseNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#265
+ def visit_false_node(node); end
+
+ # Copy a FindPatternNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#270
+ def visit_find_pattern_node(node); end
+
+ # Copy a FlipFlopNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#275
+ def visit_flip_flop_node(node); end
+
+ # Copy a FloatNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#280
+ def visit_float_node(node); end
+
+ # Copy a ForNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#285
+ def visit_for_node(node); end
+
+ # Copy a ForwardingArgumentsNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#290
+ def visit_forwarding_arguments_node(node); end
+
+ # Copy a ForwardingParameterNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#295
+ def visit_forwarding_parameter_node(node); end
+
+ # Copy a ForwardingSuperNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#300
+ def visit_forwarding_super_node(node); end
+
+ # Copy a GlobalVariableAndWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#305
+ def visit_global_variable_and_write_node(node); end
+
+ # Copy a GlobalVariableOperatorWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#310
+ def visit_global_variable_operator_write_node(node); end
+
+ # Copy a GlobalVariableOrWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#315
+ def visit_global_variable_or_write_node(node); end
+
+ # Copy a GlobalVariableReadNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#320
+ def visit_global_variable_read_node(node); end
+
+ # Copy a GlobalVariableTargetNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#325
+ def visit_global_variable_target_node(node); end
+
+ # Copy a GlobalVariableWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#330
+ def visit_global_variable_write_node(node); end
+
+ # Copy a HashNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#335
+ def visit_hash_node(node); end
+
+ # Copy a HashPatternNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#340
+ def visit_hash_pattern_node(node); end
+
+ # Copy a IfNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#345
+ def visit_if_node(node); end
+
+ # Copy a ImaginaryNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#350
+ def visit_imaginary_node(node); end
+
+ # Copy a ImplicitNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#355
+ def visit_implicit_node(node); end
+
+ # Copy a ImplicitRestNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#360
+ def visit_implicit_rest_node(node); end
+
+ # Copy a InNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#365
+ def visit_in_node(node); end
+
+ # Copy a IndexAndWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#370
+ def visit_index_and_write_node(node); end
+
+ # Copy a IndexOperatorWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#375
+ def visit_index_operator_write_node(node); end
+
+ # Copy a IndexOrWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#380
+ def visit_index_or_write_node(node); end
+
+ # Copy a IndexTargetNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#385
+ def visit_index_target_node(node); end
+
+ # Copy a InstanceVariableAndWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#390
+ def visit_instance_variable_and_write_node(node); end
+
+ # Copy a InstanceVariableOperatorWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#395
+ def visit_instance_variable_operator_write_node(node); end
+
+ # Copy a InstanceVariableOrWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#400
+ def visit_instance_variable_or_write_node(node); end
+
+ # Copy a InstanceVariableReadNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#405
+ def visit_instance_variable_read_node(node); end
+
+ # Copy a InstanceVariableTargetNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#410
+ def visit_instance_variable_target_node(node); end
+
+ # Copy a InstanceVariableWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#415
+ def visit_instance_variable_write_node(node); end
+
+ # Copy a IntegerNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#420
+ def visit_integer_node(node); end
+
+ # Copy a InterpolatedMatchLastLineNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#425
+ def visit_interpolated_match_last_line_node(node); end
+
+ # Copy a InterpolatedRegularExpressionNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#430
+ def visit_interpolated_regular_expression_node(node); end
+
+ # Copy a InterpolatedStringNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#435
+ def visit_interpolated_string_node(node); end
+
+ # Copy a InterpolatedSymbolNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#440
+ def visit_interpolated_symbol_node(node); end
+
+ # Copy a InterpolatedXStringNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#445
+ def visit_interpolated_x_string_node(node); end
+
+ # Copy a ItLocalVariableReadNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#450
+ def visit_it_local_variable_read_node(node); end
+
+ # Copy a ItParametersNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#455
+ def visit_it_parameters_node(node); end
+
+ # Copy a KeywordHashNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#460
+ def visit_keyword_hash_node(node); end
+
+ # Copy a KeywordRestParameterNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#465
+ def visit_keyword_rest_parameter_node(node); end
+
+ # Copy a LambdaNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#470
+ def visit_lambda_node(node); end
+
+ # Copy a LocalVariableAndWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#475
+ def visit_local_variable_and_write_node(node); end
+
+ # Copy a LocalVariableOperatorWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#480
+ def visit_local_variable_operator_write_node(node); end
+
+ # Copy a LocalVariableOrWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#485
+ def visit_local_variable_or_write_node(node); end
+
+ # Copy a LocalVariableReadNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#490
+ def visit_local_variable_read_node(node); end
+
+ # Copy a LocalVariableTargetNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#495
+ def visit_local_variable_target_node(node); end
+
+ # Copy a LocalVariableWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#500
+ def visit_local_variable_write_node(node); end
+
+ # Copy a MatchLastLineNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#505
+ def visit_match_last_line_node(node); end
+
+ # Copy a MatchPredicateNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#510
+ def visit_match_predicate_node(node); end
+
+ # Copy a MatchRequiredNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#515
+ def visit_match_required_node(node); end
+
+ # Copy a MatchWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#520
+ def visit_match_write_node(node); end
+
+ # Copy a MissingNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#525
+ def visit_missing_node(node); end
+
+ # Copy a ModuleNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#530
+ def visit_module_node(node); end
+
+ # Copy a MultiTargetNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#535
+ def visit_multi_target_node(node); end
+
+ # Copy a MultiWriteNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#540
+ def visit_multi_write_node(node); end
+
+ # Copy a NextNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#545
+ def visit_next_node(node); end
+
+ # Copy a NilNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#550
+ def visit_nil_node(node); end
+
+ # Copy a NoKeywordsParameterNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#555
+ def visit_no_keywords_parameter_node(node); end
+
+ # Copy a NumberedParametersNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#560
+ def visit_numbered_parameters_node(node); end
+
+ # Copy a NumberedReferenceReadNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#565
+ def visit_numbered_reference_read_node(node); end
+
+ # Copy a OptionalKeywordParameterNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#570
+ def visit_optional_keyword_parameter_node(node); end
+
+ # Copy a OptionalParameterNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#575
+ def visit_optional_parameter_node(node); end
+
+ # Copy a OrNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#580
+ def visit_or_node(node); end
+
+ # Copy a ParametersNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#585
+ def visit_parameters_node(node); end
+
+ # Copy a ParenthesesNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#590
+ def visit_parentheses_node(node); end
+
+ # Copy a PinnedExpressionNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#595
+ def visit_pinned_expression_node(node); end
+
+ # Copy a PinnedVariableNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#600
+ def visit_pinned_variable_node(node); end
+
+ # Copy a PostExecutionNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#605
+ def visit_post_execution_node(node); end
+
+ # Copy a PreExecutionNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#610
+ def visit_pre_execution_node(node); end
+
+ # Copy a ProgramNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#615
+ def visit_program_node(node); end
+
+ # Copy a RangeNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#620
+ def visit_range_node(node); end
+
+ # Copy a RationalNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#625
+ def visit_rational_node(node); end
+
+ # Copy a RedoNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#630
+ def visit_redo_node(node); end
+
+ # Copy a RegularExpressionNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#635
+ def visit_regular_expression_node(node); end
+
+ # Copy a RequiredKeywordParameterNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#640
+ def visit_required_keyword_parameter_node(node); end
+
+ # Copy a RequiredParameterNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#645
+ def visit_required_parameter_node(node); end
+
+ # Copy a RescueModifierNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#650
+ def visit_rescue_modifier_node(node); end
+
+ # Copy a RescueNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#655
+ def visit_rescue_node(node); end
+
+ # Copy a RestParameterNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#660
+ def visit_rest_parameter_node(node); end
+
+ # Copy a RetryNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#665
+ def visit_retry_node(node); end
+
+ # Copy a ReturnNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#670
+ def visit_return_node(node); end
+
+ # Copy a SelfNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#675
+ def visit_self_node(node); end
+
+ # Copy a ShareableConstantNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#680
+ def visit_shareable_constant_node(node); end
+
+ # Copy a SingletonClassNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#685
+ def visit_singleton_class_node(node); end
+
+ # Copy a SourceEncodingNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#690
+ def visit_source_encoding_node(node); end
+
+ # Copy a SourceFileNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#695
+ def visit_source_file_node(node); end
+
+ # Copy a SourceLineNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#700
+ def visit_source_line_node(node); end
+
+ # Copy a SplatNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#705
+ def visit_splat_node(node); end
+
+ # Copy a StatementsNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#710
+ def visit_statements_node(node); end
+
+ # Copy a StringNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#715
+ def visit_string_node(node); end
+
+ # Copy a SuperNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#720
+ def visit_super_node(node); end
+
+ # Copy a SymbolNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#725
+ def visit_symbol_node(node); end
+
+ # Copy a TrueNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#730
+ def visit_true_node(node); end
+
+ # Copy a UndefNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#735
+ def visit_undef_node(node); end
+
+ # Copy a UnlessNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#740
+ def visit_unless_node(node); end
+
+ # Copy a UntilNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#745
+ def visit_until_node(node); end
+
+ # Copy a WhenNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#750
+ def visit_when_node(node); end
+
+ # Copy a WhileNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#755
+ def visit_while_node(node); end
+
+ # Copy a XStringNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#760
+ def visit_x_string_node(node); end
+
+ # Copy a YieldNode node
+ #
+ # source://prism//lib/prism/mutation_compiler.rb#765
+ def visit_yield_node(node); end
+end
+
+# Represents the use of the `next` keyword.
+#
+# next 1
+# ^^^^^^
+#
+# source://prism//lib/prism/node.rb#12015
+class Prism::NextNode < ::Prism::Node
+ # Initialize a new NextNode node.
+ #
+ # @return [NextNode] a new instance of NextNode
+ #
+ # source://prism//lib/prism/node.rb#12017
+ def initialize(source, node_id, location, flags, arguments, keyword_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#12093
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#12027
+ def accept(visitor); end
+
+ # attr_reader arguments: ArgumentsNode?
+ #
+ # source://prism//lib/prism/node.rb#12062
+ def arguments; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#12032
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#12044
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#12037
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?arguments: ArgumentsNode?, ?keyword_loc: Location) -> NextNode
+ #
+ # source://prism//lib/prism/node.rb#12049
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), arguments: T.unsafe(nil), keyword_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#12032
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, arguments: ArgumentsNode?, keyword_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#12057
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#12077
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#12072
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#12065
+ def keyword_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#12082
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#12087
+ def type; end
+ end
+end
+
+# Represents the use of the `nil` keyword.
+#
+# nil
+# ^^^
+#
+# source://prism//lib/prism/node.rb#12104
+class Prism::NilNode < ::Prism::Node
+ # Initialize a new NilNode node.
+ #
+ # @return [NilNode] a new instance of NilNode
+ #
+ # source://prism//lib/prism/node.rb#12106
+ def initialize(source, node_id, location, flags); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#12163
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#12114
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#12119
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#12129
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#12124
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> NilNode
+ #
+ # source://prism//lib/prism/node.rb#12134
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#12119
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
+ #
+ # source://prism//lib/prism/node.rb#12142
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#12147
+ sig { override.returns(String) }
+ def inspect; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#12152
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#12157
+ def type; end
+ end
+end
+
+# Represents the use of `**nil` inside method arguments.
+#
+# def a(**nil)
+# ^^^^^
+# end
+#
+# source://prism//lib/prism/node.rb#12173
+class Prism::NoKeywordsParameterNode < ::Prism::Node
+ # Initialize a new NoKeywordsParameterNode node.
+ #
+ # @return [NoKeywordsParameterNode] a new instance of NoKeywordsParameterNode
+ #
+ # source://prism//lib/prism/node.rb#12175
+ def initialize(source, node_id, location, flags, operator_loc, keyword_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#12258
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#12185
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#12190
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#12200
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#12195
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?operator_loc: Location, ?keyword_loc: Location) -> NoKeywordsParameterNode
+ #
+ # source://prism//lib/prism/node.rb#12205
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), operator_loc: T.unsafe(nil), keyword_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#12190
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, operator_loc: Location, keyword_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#12213
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#12242
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#12237
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#12225
+ def keyword_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#12232
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#12218
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#12247
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#12252
+ def type; end
+ end
+end
+
+# This represents a node in the tree. It is the parent class of all of the
+# various node types.
+#
+# source://prism//lib/prism/node.rb#12
+class Prism::Node
+ abstract!
+
+ # Accepts a visitor and calls back into the specialized visit function.
+ #
+ # @raise [NoMethodError]
+ #
+ # source://prism//lib/prism/node.rb#169
+ sig { abstract.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # Returns the first node that matches the given block when visited in a
+ # depth-first search. This is useful for finding a node that matches a
+ # particular condition.
+ #
+ # node.breadth_first_search { |node| node.node_id == node_id }
+ #
+ # source://prism//lib/prism/node.rb#139
+ sig { params(block: T.proc.params(node: Prism::Node).returns(T::Boolean)).returns(T.nilable(Prism::Node)) }
+ def breadth_first_search(&block); end
+
+ # Returns an array of child nodes, including `nil`s in the place of optional
+ # nodes that were not present.
+ #
+ # @raise [NoMethodError]
+ #
+ # source://prism//lib/prism/node.rb#175
+ sig { abstract.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # Returns an array of child nodes and locations that could potentially have
+ # comments attached to them.
+ #
+ # @raise [NoMethodError]
+ #
+ # source://prism//lib/prism/node.rb#189
+ sig { abstract.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # Returns an array of child nodes, excluding any `nil`s in the place of
+ # optional nodes that were not present.
+ #
+ # @raise [NoMethodError]
+ #
+ # source://prism//lib/prism/node.rb#183
+ sig { abstract.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # Returns an array of child nodes, including `nil`s in the place of optional
+ # nodes that were not present.
+ #
+ # @raise [NoMethodError]
+ #
+ # source://prism//lib/prism/node.rb#175
+ sig { abstract.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # source://prism//lib/prism/node_ext.rb#7
+ def deprecated(*replacements); end
+
+ # The end offset of the node in the source. This method is effectively a
+ # delegate method to the location object.
+ #
+ # source://prism//lib/prism/node.rb#40
+ sig { returns(Integer) }
+ def end_offset; end
+
+ sig { abstract.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # Returns a string representation of the node.
+ #
+ # @raise [NoMethodError]
+ #
+ # source://prism//lib/prism/node.rb#194
+ sig { abstract.returns(String) }
+ def inspect; end
+
+ # A Location instance that represents the location of this node in the
+ # source.
+ #
+ # source://prism//lib/prism/node.rb#25
+ sig { returns(Prism::Location) }
+ def location; end
+
+ # Returns true if the node has the newline flag set.
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#72
+ sig { returns(T::Boolean) }
+ def newline?; end
+
+ # source://prism//lib/prism/parse_result/newlines.rb#69
+ def newline_flag!(lines); end
+
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/parse_result/newlines.rb#65
+ def newline_flag?; end
+
+ # A unique identifier for this node. This is used in a very specific
+ # use case where you want to keep around a reference to a node without
+ # having to keep around the syntax tree in memory. This unique identifier
+ # will be consistent across multiple parses of the same source code.
+ #
+ # source://prism//lib/prism/node.rb#21
+ sig { returns(Integer) }
+ def node_id; end
+
+ # Similar to inspect, but respects the current level of indentation given by
+ # the pretty print object.
+ #
+ # source://prism//lib/prism/node.rb#83
+ sig { params(q: T.untyped).void }
+ def pretty_print(q); end
+
+ # Returns all of the lines of the source code associated with this node.
+ # An alias for source_lines, used to mimic the API from
+ # RubyVM::AbstractSyntaxTree to make it easier to migrate.
+ #
+ # source://prism//lib/prism/node.rb#46
+ sig { returns(T::Array[String]) }
+ def script_lines; end
+
+ # Slice the location of the node from the source.
+ #
+ # source://prism//lib/prism/node.rb#55
+ sig { returns(String) }
+ def slice; end
+
+ # Slice the location of the node from the source, starting at the beginning
+ # of the line that the location starts on, ending at the end of the line
+ # that the location ends on.
+ #
+ # source://prism//lib/prism/node.rb#62
+ sig { returns(String) }
+ def slice_lines; end
+
+ # Returns all of the lines of the source code associated with this node.
+ #
+ # source://prism//lib/prism/node.rb#46
+ sig { returns(T::Array[String]) }
+ def source_lines; end
+
+ # The start offset of the node in the source. This method is effectively a
+ # delegate method to the location object.
+ #
+ # source://prism//lib/prism/node.rb#33
+ sig { returns(Integer) }
+ def start_offset; end
+
+ # Returns true if the node has the static literal flag set.
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#77
+ sig { returns(T::Boolean) }
+ def static_literal?; end
+
+ # Convert this node into a graphviz dot graph string.
+ #
+ # source://prism//lib/prism/node.rb#91
+ sig { returns(String) }
+ def to_dot; end
+
+ # Returns a list of nodes that are descendants of this node that contain the
+ # given line and column. This is useful for locating a node that is selected
+ # based on the line and column of the source code.
+ #
+ # Important to note is that the column given to this method should be in
+ # bytes, as opposed to characters or code units.
+ #
+ # source://prism//lib/prism/node.rb#102
+ sig { params(line: Integer, column: Integer).returns(T::Array[Prism::Node]) }
+ def tunnel(line, column); end
+
+ # Sometimes you want to check an instance of a node against a list of
+ # classes to see what kind of behavior to perform. Usually this is done by
+ # calling `[cls1, cls2].include?(node.class)` or putting the node into a
+ # case statement and doing `case node; when cls1; when cls2; end`. Both of
+ # these approaches are relatively slow because of the constant lookups,
+ # method calls, and/or array allocations.
+ #
+ # Instead, you can call #type, which will return to you a symbol that you
+ # can use for comparison. This is faster than the other approaches because
+ # it uses a single integer comparison, but also because if you're on CRuby
+ # you can take advantage of the fact that case statements with all symbol
+ # keys will use a jump table.
+ #
+ # @raise [NoMethodError]
+ #
+ # source://prism//lib/prism/node.rb#210
+ sig { abstract.returns(Symbol) }
+ def type; end
+
+ protected
+
+ # An bitset of flags for this node. There are certain flags that are common
+ # for all nodes, and then some nodes have specific flags.
+ #
+ # source://prism//lib/prism/node.rb#68
+ sig { returns(Integer) }
+ def flags; end
+
+ private
+
+ # A pointer to the source that this node was created from.
+ #
+ # source://prism//lib/prism/node.rb#14
+ sig { returns(Prism::Source) }
+ def source; end
+
+ class << self
+ # Returns a list of the fields that exist for this node class. Fields
+ # describe the structure of the node. This kind of reflection is useful for
+ # things like recursively visiting each node _and_ field in the tree.
+ #
+ # @raise [NoMethodError]
+ #
+ # source://prism//lib/prism/node.rb#153
+ def fields; end
+
+ # Similar to #type, this method returns a symbol that you can use for
+ # splitting on the type of the node without having to do a long === chain.
+ # Note that like #type, it will still be slower than using == for a single
+ # class, but should be faster in a case statement or an array comparison.
+ #
+ # @raise [NoMethodError]
+ #
+ # source://prism//lib/prism/node.rb#218
+ def type; end
+ end
+end
+
+# The flags that are common to all nodes.
+#
+# source://prism//lib/prism/node.rb#16812
+module Prism::NodeFlags; end
+
+# A flag to indicate that the node is a candidate to emit a :line event
+# through tracepoint when compiled.
+#
+# source://prism//lib/prism/node.rb#16815
+Prism::NodeFlags::NEWLINE = T.let(T.unsafe(nil), Integer)
+
+# A flag to indicate that the value that the node represents is a value that
+# can be determined at parse-time.
+#
+# source://prism//lib/prism/node.rb#16819
+Prism::NodeFlags::STATIC_LITERAL = T.let(T.unsafe(nil), Integer)
+
+# Represents an implicit set of parameters through the use of numbered parameters within a block or lambda.
+#
+# -> { _1 + _2 }
+# ^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#12269
+class Prism::NumberedParametersNode < ::Prism::Node
+ # Initialize a new NumberedParametersNode node.
+ #
+ # @return [NumberedParametersNode] a new instance of NumberedParametersNode
+ #
+ # source://prism//lib/prism/node.rb#12271
+ def initialize(source, node_id, location, flags, maximum); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#12332
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#12280
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#12285
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#12295
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#12290
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?maximum: Integer) -> NumberedParametersNode
+ #
+ # source://prism//lib/prism/node.rb#12300
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), maximum: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#12285
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, maximum: Integer }
+ #
+ # source://prism//lib/prism/node.rb#12308
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#12316
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader maximum: Integer
+ #
+ # source://prism//lib/prism/node.rb#12313
+ def maximum; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#12321
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#12326
+ def type; end
+ end
+end
+
+# Represents reading a numbered reference to a capture in the previous match.
+#
+# $1
+# ^^
+#
+# source://prism//lib/prism/node.rb#12342
+class Prism::NumberedReferenceReadNode < ::Prism::Node
+ # Initialize a new NumberedReferenceReadNode node.
+ #
+ # @return [NumberedReferenceReadNode] a new instance of NumberedReferenceReadNode
+ #
+ # source://prism//lib/prism/node.rb#12344
+ def initialize(source, node_id, location, flags, number); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#12411
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#12353
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#12358
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#12368
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#12363
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?number: Integer) -> NumberedReferenceReadNode
+ #
+ # source://prism//lib/prism/node.rb#12373
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), number: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#12358
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, number: Integer }
+ #
+ # source://prism//lib/prism/node.rb#12381
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#12395
+ sig { override.returns(String) }
+ def inspect; end
+
+ # The (1-indexed, from the left) number of the capture group. Numbered references that are too large result in this value being `0`.
+ #
+ # $1 # number `1`
+ #
+ # $5432 # number `5432`
+ #
+ # $4294967296 # number `0`
+ #
+ # source://prism//lib/prism/node.rb#12392
+ def number; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#12400
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#12405
+ def type; end
+ end
+end
+
+# Represents an optional keyword parameter to a method, block, or lambda definition.
+#
+# def a(b: 1)
+# ^^^^
+# end
+#
+# source://prism//lib/prism/node.rb#12422
+class Prism::OptionalKeywordParameterNode < ::Prism::Node
+ # Initialize a new OptionalKeywordParameterNode node.
+ #
+ # @return [OptionalKeywordParameterNode] a new instance of OptionalKeywordParameterNode
+ #
+ # source://prism//lib/prism/node.rb#12424
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ name_loc: Prism::Location,
+ value: Prism::Node
+ ).void
+ end
+ def initialize(source, node_id, location, flags, name, name_loc, value); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#12502
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#12435
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#12440
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#12450
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#12445
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?value: Prism::node) -> OptionalKeywordParameterNode
+ #
+ # source://prism//lib/prism/node.rb#12455
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ name_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::OptionalKeywordParameterNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#12440
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, value: Prism::node }
+ #
+ # source://prism//lib/prism/node.rb#12463
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#12486
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#12473
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#12476
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # def repeated_parameter?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#12468
+ sig { returns(T::Boolean) }
+ def repeated_parameter?; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#12491
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#12483
+ sig { returns(Prism::Node) }
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#12496
+ def type; end
+ end
+end
+
+# Represents an optional parameter to a method, block, or lambda definition.
+#
+# def a(b = 1)
+# ^^^^^
+# end
+#
+# source://prism//lib/prism/node.rb#12516
+class Prism::OptionalParameterNode < ::Prism::Node
+ # Initialize a new OptionalParameterNode node.
+ #
+ # @return [OptionalParameterNode] a new instance of OptionalParameterNode
+ #
+ # source://prism//lib/prism/node.rb#12518
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ name_loc: Prism::Location,
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).void
+ end
+ def initialize(source, node_id, location, flags, name, name_loc, operator_loc, value); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#12609
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#12530
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#12535
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#12545
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#12540
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node) -> OptionalParameterNode
+ #
+ # source://prism//lib/prism/node.rb#12550
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ name_loc: Prism::Location,
+ operator_loc: Prism::Location,
+ value: Prism::Node
+ ).returns(Prism::OptionalParameterNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#12535
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node }
+ #
+ # source://prism//lib/prism/node.rb#12558
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#12593
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#12568
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#12571
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#12588
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#12578
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # def repeated_parameter?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#12563
+ sig { returns(T::Boolean) }
+ def repeated_parameter?; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#12598
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader value: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#12585
+ sig { returns(Prism::Node) }
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#12603
+ def type; end
+ end
+end
+
+# Represents the use of the `||` operator or the `or` keyword.
+#
+# left or right
+# ^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#12623
+class Prism::OrNode < ::Prism::Node
+ # Initialize a new OrNode node.
+ #
+ # @return [OrNode] a new instance of OrNode
+ #
+ # source://prism//lib/prism/node.rb#12625
+ def initialize(source, node_id, location, flags, left, right, operator_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#12718
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#12636
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#12641
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#12651
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#12646
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?left: Prism::node, ?right: Prism::node, ?operator_loc: Location) -> OrNode
+ #
+ # source://prism//lib/prism/node.rb#12656
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), left: T.unsafe(nil), right: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#12641
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, left: Prism::node, right: Prism::node, operator_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#12664
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#12702
+ sig { override.returns(String) }
+ def inspect; end
+
+ # Represents the left side of the expression. It can be any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
+ #
+ # left or right
+ # ^^^^
+ #
+ # 1 || 2
+ # ^
+ #
+ # source://prism//lib/prism/node.rb#12675
+ def left; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#12697
+ def operator; end
+
+ # The location of the `or` keyword or the `||` operator.
+ #
+ # left or right
+ # ^^
+ #
+ # source://prism//lib/prism/node.rb#12690
+ def operator_loc; end
+
+ # Represents the right side of the expression. It can be any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
+ #
+ # left || right
+ # ^^^^^
+ #
+ # 1 or 2
+ # ^
+ #
+ # source://prism//lib/prism/node.rb#12684
+ def right; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#12707
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#12712
+ def type; end
+ end
+end
+
+# A parser for the pack template language.
+#
+# source://prism//lib/prism/pack.rb#6
+module Prism::Pack
+ class << self
+ def parse(_arg0, _arg1, _arg2); end
+ end
+end
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::AGNOSTIC_ENDIAN = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::BACK = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::BER = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::BIG_ENDIAN = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::COMMENT = T.let(T.unsafe(nil), Symbol)
+
+# A directive in the pack template language.
+#
+# source://prism//lib/prism/pack.rb#60
+class Prism::Pack::Directive
+ # Initialize a new directive with the given values.
+ #
+ # @return [Directive] a new instance of Directive
+ #
+ # source://prism//lib/prism/pack.rb#89
+ def initialize(version, variant, source, type, signed, endian, size, length_type, length); end
+
+ # Provide a human-readable description of the directive.
+ #
+ # source://prism//lib/prism/pack.rb#131
+ def describe; end
+
+ # The type of endianness of the directive.
+ #
+ # source://prism//lib/prism/pack.rb#77
+ def endian; end
+
+ # The length of this directive (used for integers).
+ #
+ # source://prism//lib/prism/pack.rb#86
+ def length; end
+
+ # The length type of this directive (used for integers).
+ #
+ # source://prism//lib/prism/pack.rb#83
+ def length_type; end
+
+ # The type of signedness of the directive.
+ #
+ # source://prism//lib/prism/pack.rb#74
+ def signed; end
+
+ # The size of the directive.
+ #
+ # source://prism//lib/prism/pack.rb#80
+ def size; end
+
+ # A byteslice of the source string that this directive represents.
+ #
+ # source://prism//lib/prism/pack.rb#68
+ def source; end
+
+ # The type of the directive.
+ #
+ # source://prism//lib/prism/pack.rb#71
+ def type; end
+
+ # A symbol representing whether or not we are packing or unpacking.
+ #
+ # source://prism//lib/prism/pack.rb#65
+ def variant; end
+
+ # A symbol representing the version of Ruby.
+ #
+ # source://prism//lib/prism/pack.rb#62
+ def version; end
+end
+
+# The descriptions of the various types of endianness.
+#
+# source://prism//lib/prism/pack.rb#102
+Prism::Pack::Directive::ENDIAN_DESCRIPTIONS = T.let(T.unsafe(nil), Hash)
+
+# The descriptions of the various types of signedness.
+#
+# source://prism//lib/prism/pack.rb#111
+Prism::Pack::Directive::SIGNED_DESCRIPTIONS = T.let(T.unsafe(nil), Hash)
+
+# The descriptions of the various types of sizes.
+#
+# source://prism//lib/prism/pack.rb#118
+Prism::Pack::Directive::SIZE_DESCRIPTIONS = T.let(T.unsafe(nil), Hash)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::ENDIAN_NA = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::FLOAT = T.let(T.unsafe(nil), Symbol)
+
+# The result of parsing a pack template.
+#
+# source://prism//lib/prism/pack.rb#198
+class Prism::Pack::Format
+ # Create a new Format with the given directives and encoding.
+ #
+ # @return [Format] a new instance of Format
+ #
+ # source://prism//lib/prism/pack.rb#206
+ def initialize(directives, encoding); end
+
+ # Provide a human-readable description of the format.
+ #
+ # source://prism//lib/prism/pack.rb#212
+ def describe; end
+
+ # A list of the directives in the template.
+ #
+ # source://prism//lib/prism/pack.rb#200
+ def directives; end
+
+ # The encoding of the template.
+ #
+ # source://prism//lib/prism/pack.rb#203
+ def encoding; end
+end
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::INTEGER = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::LENGTH_FIXED = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::LENGTH_MAX = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::LENGTH_NA = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::LENGTH_RELATIVE = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::LITTLE_ENDIAN = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::MOVE = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::NATIVE_ENDIAN = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::NULL = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::SIGNED = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::SIGNED_NA = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::SIZE_16 = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::SIZE_32 = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::SIZE_64 = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::SIZE_8 = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::SIZE_INT = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::SIZE_LONG = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::SIZE_LONG_LONG = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::SIZE_NA = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::SIZE_P = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::SIZE_SHORT = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::SPACE = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::STRING_BASE64 = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::STRING_FIXED = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::STRING_HEX_HIGH = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::STRING_HEX_LOW = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::STRING_LSB = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::STRING_MIME = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::STRING_MSB = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::STRING_NULL_PADDED = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::STRING_NULL_TERMINATED = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::STRING_POINTER = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::STRING_SPACE_PADDED = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::STRING_UU = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::UNSIGNED = T.let(T.unsafe(nil), Symbol)
+
+# source://prism//lib/prism/pack.rb#56
+Prism::Pack::UTF8 = T.let(T.unsafe(nil), Symbol)
+
+# Flags for parameter nodes.
+#
+# source://prism//lib/prism/node.rb#16725
+module Prism::ParameterFlags; end
+
+# a parameter name that has been repeated in the method signature
+#
+# source://prism//lib/prism/node.rb#16727
+Prism::ParameterFlags::REPEATED_PARAMETER = T.let(T.unsafe(nil), Integer)
+
+# Represents the list of parameters on a method, block, or lambda definition.
+#
+# def a(b, c, d)
+# ^^^^^^^
+# end
+#
+# source://prism//lib/prism/node.rb#12731
+class Prism::ParametersNode < ::Prism::Node
+ # Initialize a new ParametersNode node.
+ #
+ # @return [ParametersNode] a new instance of ParametersNode
+ #
+ # source://prism//lib/prism/node.rb#12733
+ def initialize(source, node_id, location, flags, requireds, optionals, rest, posts, keywords, keyword_rest, block); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#12826
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#12748
+ def accept(visitor); end
+
+ # attr_reader block: BlockParameterNode?
+ #
+ # source://prism//lib/prism/node.rb#12807
+ def block; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#12753
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#12771
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#12758
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?requireds: Array[RequiredParameterNode | MultiTargetNode], ?optionals: Array[OptionalParameterNode], ?rest: RestParameterNode | ImplicitRestNode | nil, ?posts: Array[RequiredParameterNode | MultiTargetNode | KeywordRestParameterNode | NoKeywordsParameterNode | ForwardingParameterNode], ?keywords: Array[RequiredKeywordParameterNode | OptionalKeywordParameterNode], ?keyword_rest: KeywordRestParameterNode | ForwardingParameterNode | NoKeywordsParameterNode | nil, ?block: BlockParameterNode?) -> ParametersNode
+ #
+ # source://prism//lib/prism/node.rb#12776
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), requireds: T.unsafe(nil), optionals: T.unsafe(nil), rest: T.unsafe(nil), posts: T.unsafe(nil), keywords: T.unsafe(nil), keyword_rest: T.unsafe(nil), block: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#12753
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, requireds: Array[RequiredParameterNode | MultiTargetNode], optionals: Array[OptionalParameterNode], rest: RestParameterNode | ImplicitRestNode | nil, posts: Array[RequiredParameterNode | MultiTargetNode | KeywordRestParameterNode | NoKeywordsParameterNode | ForwardingParameterNode], keywords: Array[RequiredKeywordParameterNode | OptionalKeywordParameterNode], keyword_rest: KeywordRestParameterNode | ForwardingParameterNode | NoKeywordsParameterNode | nil, block: BlockParameterNode? }
+ #
+ # source://prism//lib/prism/node.rb#12784
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#12810
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader keyword_rest: KeywordRestParameterNode | ForwardingParameterNode | NoKeywordsParameterNode | nil
+ #
+ # source://prism//lib/prism/node.rb#12804
+ def keyword_rest; end
+
+ # attr_reader keywords: Array[RequiredKeywordParameterNode | OptionalKeywordParameterNode]
+ #
+ # source://prism//lib/prism/node.rb#12801
+ def keywords; end
+
+ # attr_reader optionals: Array[OptionalParameterNode]
+ #
+ # source://prism//lib/prism/node.rb#12792
+ def optionals; end
+
+ # attr_reader posts: Array[RequiredParameterNode | MultiTargetNode | KeywordRestParameterNode | NoKeywordsParameterNode | ForwardingParameterNode]
+ #
+ # source://prism//lib/prism/node.rb#12798
+ def posts; end
+
+ # attr_reader requireds: Array[RequiredParameterNode | MultiTargetNode]
+ #
+ # source://prism//lib/prism/node.rb#12789
+ def requireds; end
+
+ # attr_reader rest: RestParameterNode | ImplicitRestNode | nil
+ #
+ # source://prism//lib/prism/node.rb#12795
+ def rest; end
+
+ # Mirrors the Method#parameters method.
+ #
+ # source://prism//lib/prism/node_ext.rb#269
+ sig { returns(T::Array[T.any([Symbol, Symbol], [Symbol])]) }
+ def signature; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#12815
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#12820
+ def type; end
+ end
+end
+
+# Represents a parenthesized expression
+#
+# (10 + 34)
+# ^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#12846
+class Prism::ParenthesesNode < ::Prism::Node
+ # Initialize a new ParenthesesNode node.
+ #
+ # @return [ParenthesesNode] a new instance of ParenthesesNode
+ #
+ # source://prism//lib/prism/node.rb#12848
+ def initialize(source, node_id, location, flags, body, opening_loc, closing_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#12937
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#12859
+ def accept(visitor); end
+
+ # attr_reader body: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#12894
+ def body; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#12864
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism//lib/prism/node.rb#12916
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#12904
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#12876
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#12869
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?body: Prism::node?, ?opening_loc: Location, ?closing_loc: Location) -> ParenthesesNode
+ #
+ # source://prism//lib/prism/node.rb#12881
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), body: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#12864
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, body: Prism::node?, opening_loc: Location, closing_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#12889
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#12921
+ sig { override.returns(String) }
+ def inspect; end
+
+ # source://prism//lib/prism/parse_result/newlines.rb#85
+ def newline_flag!(lines); end
+
+ # def opening: () -> String
+ #
+ # source://prism//lib/prism/node.rb#12911
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#12897
+ def opening_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#12926
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#12931
+ def type; end
+ end
+end
+
+# This represents an error that was encountered during parsing.
+#
+# source://prism//lib/prism/parse_result.rb#460
+class Prism::ParseError
+ # Create a new error object with the given message and location.
+ #
+ # @return [ParseError] a new instance of ParseError
+ #
+ # source://prism//lib/prism/parse_result.rb#475
+ sig { params(type: Symbol, message: String, location: Prism::Location, level: Symbol).void }
+ def initialize(type, message, location, level); end
+
+ # Implement the hash pattern matching interface for ParseError.
+ #
+ # source://prism//lib/prism/parse_result.rb#483
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ # Returns a string representation of this error.
+ #
+ # source://prism//lib/prism/parse_result.rb#488
+ sig { returns(String) }
+ def inspect; end
+
+ # The level of this error.
+ #
+ # source://prism//lib/prism/parse_result.rb#472
+ sig { returns(Symbol) }
+ def level; end
+
+ # A Location object representing the location of this error in the source.
+ #
+ # source://prism//lib/prism/parse_result.rb#469
+ sig { returns(Prism::Location) }
+ def location; end
+
+ # The message associated with this error.
+ #
+ # source://prism//lib/prism/parse_result.rb#466
+ sig { returns(String) }
+ def message; end
+
+ # The type of error. This is an _internal_ symbol that is used for
+ # communicating with translation layers. It is not meant to be public API.
+ #
+ # source://prism//lib/prism/parse_result.rb#463
+ sig { returns(Symbol) }
+ def type; end
+end
+
+# This is a result specific to the `parse_lex` and `parse_lex_file` methods.
+#
+# source://prism//lib/prism/parse_result.rb#644
+class Prism::ParseLexResult < ::Prism::Result
+ # Create a new parse lex result object with the given values.
+ #
+ # @return [ParseLexResult] a new instance of ParseLexResult
+ #
+ # source://prism//lib/prism/parse_result.rb#650
+ sig do
+ params(
+ value: [Prism::ProgramNode, T::Array[T.untyped]],
+ comments: T::Array[Prism::Comment],
+ magic_comments: T::Array[Prism::MagicComment],
+ data_loc: T.nilable(Prism::Location),
+ errors: T::Array[Prism::ParseError],
+ warnings: T::Array[Prism::ParseWarning],
+ source: Prism::Source
+ ).void
+ end
+ def initialize(value, comments, magic_comments, data_loc, errors, warnings, source); end
+
+ # Implement the hash pattern matching interface for ParseLexResult.
+ #
+ # source://prism//lib/prism/parse_result.rb#656
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ # A tuple of the syntax tree and the list of tokens that were parsed from
+ # the source code.
+ #
+ # source://prism//lib/prism/parse_result.rb#647
+ sig { returns([Prism::ProgramNode, T::Array[T.untyped]]) }
+ def value; end
+end
+
+# This is a result specific to the `parse` and `parse_file` methods.
+#
+# source://prism//lib/prism/parse_result.rb#585
+class Prism::ParseResult < ::Prism::Result
+ # Create a new parse result object with the given values.
+ #
+ # @return [ParseResult] a new instance of ParseResult
+ #
+ # source://prism//lib/prism/parse_result.rb#598
+ sig do
+ params(
+ value: Prism::ProgramNode,
+ comments: T::Array[Prism::Comment],
+ magic_comments: T::Array[Prism::MagicComment],
+ data_loc: T.nilable(Prism::Location),
+ errors: T::Array[Prism::ParseError],
+ warnings: T::Array[Prism::ParseWarning],
+ source: Prism::Source
+ ).void
+ end
+ def initialize(value, comments, magic_comments, data_loc, errors, warnings, source); end
+
+ # Attach the list of comments to their respective locations in the tree.
+ #
+ # source://prism//lib/prism/parse_result.rb#609
+ def attach_comments!; end
+
+ # Implement the hash pattern matching interface for ParseResult.
+ #
+ # source://prism//lib/prism/parse_result.rb#604
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ # Returns a string representation of the syntax tree with the errors
+ # displayed inline.
+ #
+ # source://prism//lib/prism/parse_result.rb#621
+ def errors_format; end
+
+ # Walk the tree and mark nodes that are on a new line, loosely emulating
+ # the behavior of CRuby's `:line` tracepoint event.
+ #
+ # source://prism//lib/prism/parse_result.rb#615
+ def mark_newlines!; end
+
+ # The syntax tree that was parsed from the source code.
+ #
+ # source://prism//lib/prism/parse_result.rb#595
+ sig { returns(Prism::ProgramNode) }
+ def value; end
+end
+
+# When we've parsed the source, we have both the syntax tree and the list of
+# comments that we found in the source. This class is responsible for
+# walking the tree and finding the nearest location to attach each comment.
+#
+# It does this by first finding the nearest locations to each comment.
+# Locations can either come from nodes directly or from location fields on
+# nodes. For example, a `ClassNode` has an overall location encompassing the
+# entire class, but it also has a location for the `class` keyword.
+#
+# Once the nearest locations are found, it determines which one to attach
+# to. If it's a trailing comment (a comment on the same line as other source
+# code), it will favor attaching to the nearest location that occurs before
+# the comment. Otherwise it will favor attaching to the nearest location
+# that is after the comment.
+#
+# source://prism//lib/prism/parse_result/comments.rb#19
+class Prism::ParseResult::Comments
+ # Create a new Comments object that will attach comments to the given
+ # parse result.
+ #
+ # @return [Comments] a new instance of Comments
+ #
+ # source://prism//lib/prism/parse_result/comments.rb#86
+ def initialize(parse_result); end
+
+ # Attach the comments to their respective locations in the tree by
+ # mutating the parse result.
+ #
+ # source://prism//lib/prism/parse_result/comments.rb#92
+ def attach!; end
+
+ # The parse result that we are attaching comments to.
+ #
+ # source://prism//lib/prism/parse_result/comments.rb#82
+ def parse_result; end
+
+ private
+
+ # Responsible for finding the nearest targets to the given comment within
+ # the context of the given encapsulating node.
+ #
+ # source://prism//lib/prism/parse_result/comments.rb#119
+ def nearest_targets(node, comment); end
+end
+
+# A target for attaching comments that is based on a location field on a
+# node. For example, the `end` token of a ClassNode.
+#
+# source://prism//lib/prism/parse_result/comments.rb#53
+class Prism::ParseResult::Comments::LocationTarget
+ # @return [LocationTarget] a new instance of LocationTarget
+ #
+ # source://prism//lib/prism/parse_result/comments.rb#56
+ def initialize(location); end
+
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/parse_result/comments.rb#68
+ def encloses?(comment); end
+
+ # source://prism//lib/prism/parse_result/comments.rb#64
+ def end_offset; end
+
+ # source://prism//lib/prism/parse_result/comments.rb#72
+ def leading_comment(comment); end
+
+ # source://prism//lib/prism/parse_result/comments.rb#54
+ def location; end
+
+ # source://prism//lib/prism/parse_result/comments.rb#60
+ def start_offset; end
+
+ # source://prism//lib/prism/parse_result/comments.rb#76
+ def trailing_comment(comment); end
+end
+
+# A target for attaching comments that is based on a specific node's
+# location.
+#
+# source://prism//lib/prism/parse_result/comments.rb#22
+class Prism::ParseResult::Comments::NodeTarget
+ # @return [NodeTarget] a new instance of NodeTarget
+ #
+ # source://prism//lib/prism/parse_result/comments.rb#25
+ def initialize(node); end
+
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/parse_result/comments.rb#37
+ def encloses?(comment); end
+
+ # source://prism//lib/prism/parse_result/comments.rb#33
+ def end_offset; end
+
+ # source://prism//lib/prism/parse_result/comments.rb#42
+ def leading_comment(comment); end
+
+ # source://prism//lib/prism/parse_result/comments.rb#23
+ def node; end
+
+ # source://prism//lib/prism/parse_result/comments.rb#29
+ def start_offset; end
+
+ # source://prism//lib/prism/parse_result/comments.rb#46
+ def trailing_comment(comment); end
+end
+
+# An object to represent the set of errors on a parse result. This object
+# can be used to format the errors in a human-readable way.
+#
+# source://prism//lib/prism/parse_result/errors.rb#9
+class Prism::ParseResult::Errors
+ # Initialize a new set of errors from the given parse result.
+ #
+ # @return [Errors] a new instance of Errors
+ #
+ # source://prism//lib/prism/parse_result/errors.rb#14
+ def initialize(parse_result); end
+
+ # Formats the errors in a human-readable way and return them as a string.
+ #
+ # source://prism//lib/prism/parse_result/errors.rb#19
+ def format; end
+
+ # The parse result that contains the errors.
+ #
+ # source://prism//lib/prism/parse_result/errors.rb#11
+ def parse_result; end
+end
+
+# The :line tracepoint event gets fired whenever the Ruby VM encounters an
+# expression on a new line. The types of expressions that can trigger this
+# event are:
+#
+# * if statements
+# * unless statements
+# * nodes that are children of statements lists
+#
+# In order to keep track of the newlines, we have a list of offsets that
+# come back from the parser. We assign these offsets to the first nodes that
+# we find in the tree that are on those lines.
+#
+# Note that the logic in this file should be kept in sync with the Java
+# MarkNewlinesVisitor, since that visitor is responsible for marking the
+# newlines for JRuby/TruffleRuby.
+#
+# This file is autoloaded only when `mark_newlines!` is called, so the
+# re-opening of the various nodes in this file will only be performed in
+# that case. We do that to avoid storing the extra `@newline` instance
+# variable on every node if we don't need it.
+#
+# source://prism//lib/prism/parse_result/newlines.rb#25
+class Prism::ParseResult::Newlines < ::Prism::Visitor
+ # Create a new Newlines visitor with the given newline offsets.
+ #
+ # @return [Newlines] a new instance of Newlines
+ #
+ # source://prism//lib/prism/parse_result/newlines.rb#27
+ def initialize(lines); end
+
+ # Permit block/lambda nodes to mark newlines within themselves.
+ #
+ # source://prism//lib/prism/parse_result/newlines.rb#33
+ def visit_block_node(node); end
+
+ # Mark if/unless nodes as newlines.
+ #
+ # source://prism//lib/prism/parse_result/newlines.rb#47
+ def visit_if_node(node); end
+
+ # Permit block/lambda nodes to mark newlines within themselves.
+ #
+ # source://prism//lib/prism/parse_result/newlines.rb#33
+ def visit_lambda_node(node); end
+
+ # Permit statements lists to mark newlines within themselves.
+ #
+ # source://prism//lib/prism/parse_result/newlines.rb#55
+ def visit_statements_node(node); end
+
+ # Mark if/unless nodes as newlines.
+ #
+ # source://prism//lib/prism/parse_result/newlines.rb#47
+ def visit_unless_node(node); end
+end
+
+# This represents a warning that was encountered during parsing.
+#
+# source://prism//lib/prism/parse_result.rb#494
+class Prism::ParseWarning
+ # Create a new warning object with the given message and location.
+ #
+ # @return [ParseWarning] a new instance of ParseWarning
+ #
+ # source://prism//lib/prism/parse_result.rb#509
+ sig { params(type: Symbol, message: String, location: Prism::Location, level: Symbol).void }
+ def initialize(type, message, location, level); end
+
+ # Implement the hash pattern matching interface for ParseWarning.
+ #
+ # source://prism//lib/prism/parse_result.rb#517
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ # Returns a string representation of this warning.
+ #
+ # source://prism//lib/prism/parse_result.rb#522
+ sig { returns(String) }
+ def inspect; end
+
+ # The level of this warning.
+ #
+ # source://prism//lib/prism/parse_result.rb#506
+ sig { returns(Symbol) }
+ def level; end
+
+ # A Location object representing the location of this warning in the source.
+ #
+ # source://prism//lib/prism/parse_result.rb#503
+ sig { returns(Prism::Location) }
+ def location; end
+
+ # The message associated with this warning.
+ #
+ # source://prism//lib/prism/parse_result.rb#500
+ sig { returns(String) }
+ def message; end
+
+ # The type of warning. This is an _internal_ symbol that is used for
+ # communicating with translation layers. It is not meant to be public API.
+ #
+ # source://prism//lib/prism/parse_result.rb#497
+ sig { returns(Symbol) }
+ def type; end
+end
+
+# A pattern is an object that wraps a Ruby pattern matching expression. The
+# expression would normally be passed to an `in` clause within a `case`
+# expression or a rightward assignment expression. For example, in the
+# following snippet:
+#
+# case node
+# in ConstantPathNode[ConstantReadNode[name: :Prism], ConstantReadNode[name: :Pattern]]
+# end
+#
+# the pattern is the <tt>ConstantPathNode[...]</tt> expression.
+#
+# The pattern gets compiled into an object that responds to #call by running
+# the #compile method. This method itself will run back through Prism to
+# parse the expression into a tree, then walk the tree to generate the
+# necessary callable objects. For example, if you wanted to compile the
+# expression above into a callable, you would:
+#
+# callable = Prism::Pattern.new("ConstantPathNode[ConstantReadNode[name: :Prism], ConstantReadNode[name: :Pattern]]").compile
+# callable.call(node)
+#
+# The callable object returned by #compile is guaranteed to respond to #call
+# with a single argument, which is the node to match against. It also is
+# guaranteed to respond to #===, which means it itself can be used in a `case`
+# expression, as in:
+#
+# case node
+# when callable
+# end
+#
+# If the query given to the initializer cannot be compiled into a valid
+# matcher (either because of a syntax error or because it is using syntax we
+# do not yet support) then a Prism::Pattern::CompilationError will be
+# raised.
+#
+# source://prism//lib/prism/pattern.rb#37
+class Prism::Pattern
+ # Create a new pattern with the given query. The query should be a string
+ # containing a Ruby pattern matching expression.
+ #
+ # @return [Pattern] a new instance of Pattern
+ #
+ # source://prism//lib/prism/pattern.rb#63
+ def initialize(query); end
+
+ # Compile the query into a callable object that can be used to match against
+ # nodes.
+ #
+ # @raise [CompilationError]
+ #
+ # source://prism//lib/prism/pattern.rb#70
+ def compile; end
+
+ # The query that this pattern was initialized with.
+ #
+ # source://prism//lib/prism/pattern.rb#59
+ def query; end
+
+ # Scan the given node and all of its children for nodes that match the
+ # pattern. If a block is given, it will be called with each node that
+ # matches the pattern. If no block is given, an enumerator will be returned
+ # that will yield each node that matches the pattern.
+ #
+ # source://prism//lib/prism/pattern.rb#86
+ def scan(root); end
+
+ private
+
+ # Shortcut for combining two procs into one that returns true if both return
+ # true.
+ #
+ # source://prism//lib/prism/pattern.rb#102
+ def combine_and(left, right); end
+
+ # Shortcut for combining two procs into one that returns true if either
+ # returns true.
+ #
+ # source://prism//lib/prism/pattern.rb#108
+ def combine_or(left, right); end
+
+ # in foo | bar
+ #
+ # source://prism//lib/prism/pattern.rb#143
+ def compile_alternation_pattern_node(node); end
+
+ # in [foo, bar, baz]
+ #
+ # source://prism//lib/prism/pattern.rb#118
+ def compile_array_pattern_node(node); end
+
+ # Compile a name associated with a constant.
+ #
+ # source://prism//lib/prism/pattern.rb#168
+ def compile_constant_name(node, name); end
+
+ # in Prism::ConstantReadNode
+ #
+ # source://prism//lib/prism/pattern.rb#148
+ def compile_constant_path_node(node); end
+
+ # in ConstantReadNode
+ # in String
+ #
+ # source://prism//lib/prism/pattern.rb#163
+ def compile_constant_read_node(node); end
+
+ # Raise an error because the given node is not supported.
+ #
+ # @raise [CompilationError]
+ #
+ # source://prism//lib/prism/pattern.rb#113
+ def compile_error(node); end
+
+ # in InstanceVariableReadNode[name: Symbol]
+ # in { name: Symbol }
+ #
+ # source://prism//lib/prism/pattern.rb#184
+ def compile_hash_pattern_node(node); end
+
+ # in nil
+ #
+ # source://prism//lib/prism/pattern.rb#214
+ def compile_nil_node(node); end
+
+ # Compile any kind of node. Dispatch out to the individual compilation
+ # methods based on the type of node.
+ #
+ # source://prism//lib/prism/pattern.rb#243
+ def compile_node(node); end
+
+ # in /foo/
+ #
+ # source://prism//lib/prism/pattern.rb#219
+ def compile_regular_expression_node(node); end
+
+ # in ""
+ # in "foo"
+ #
+ # source://prism//lib/prism/pattern.rb#227
+ def compile_string_node(node); end
+
+ # in :+
+ # in :foo
+ #
+ # source://prism//lib/prism/pattern.rb#235
+ def compile_symbol_node(node); end
+end
+
+# Raised when the query given to a pattern is either invalid Ruby syntax or
+# is using syntax that we don't yet support.
+#
+# source://prism//lib/prism/pattern.rb#40
+class Prism::Pattern::CompilationError < ::StandardError
+ # Create a new CompilationError with the given representation of the node
+ # that caused the error.
+ #
+ # @return [CompilationError] a new instance of CompilationError
+ #
+ # source://prism//lib/prism/pattern.rb#43
+ def initialize(repr); end
+end
+
+# Represents the use of the `^` operator for pinning an expression in a pattern matching expression.
+#
+# foo in ^(bar)
+# ^^^^^^
+#
+# source://prism//lib/prism/node.rb#12949
+class Prism::PinnedExpressionNode < ::Prism::Node
+ # Initialize a new PinnedExpressionNode node.
+ #
+ # @return [PinnedExpressionNode] a new instance of PinnedExpressionNode
+ #
+ # source://prism//lib/prism/node.rb#12951
+ def initialize(source, node_id, location, flags, expression, operator_loc, lparen_loc, rparen_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#13051
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#12963
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#12968
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#12978
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#12973
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?expression: Prism::node, ?operator_loc: Location, ?lparen_loc: Location, ?rparen_loc: Location) -> PinnedExpressionNode
+ #
+ # source://prism//lib/prism/node.rb#12983
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), expression: T.unsafe(nil), operator_loc: T.unsafe(nil), lparen_loc: T.unsafe(nil), rparen_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#12968
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, expression: Prism::node, operator_loc: Location, lparen_loc: Location, rparen_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#12991
+ def deconstruct_keys(keys); end
+
+ # attr_reader expression: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#12996
+ def expression; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#13035
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def lparen: () -> String
+ #
+ # source://prism//lib/prism/node.rb#13025
+ def lparen; end
+
+ # attr_reader lparen_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#13006
+ def lparen_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#13020
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#12999
+ def operator_loc; end
+
+ # def rparen: () -> String
+ #
+ # source://prism//lib/prism/node.rb#13030
+ def rparen; end
+
+ # attr_reader rparen_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#13013
+ def rparen_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#13040
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#13045
+ def type; end
+ end
+end
+
+# Represents the use of the `^` operator for pinning a variable in a pattern matching expression.
+#
+# foo in ^bar
+# ^^^^
+#
+# source://prism//lib/prism/node.rb#13064
+class Prism::PinnedVariableNode < ::Prism::Node
+ # Initialize a new PinnedVariableNode node.
+ #
+ # @return [PinnedVariableNode] a new instance of PinnedVariableNode
+ #
+ # source://prism//lib/prism/node.rb#13066
+ def initialize(source, node_id, location, flags, variable, operator_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#13140
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#13076
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#13081
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#13091
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#13086
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?variable: Prism::node, ?operator_loc: Location) -> PinnedVariableNode
+ #
+ # source://prism//lib/prism/node.rb#13096
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), variable: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#13081
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, variable: Prism::node, operator_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#13104
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#13124
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#13119
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#13112
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#13129
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader variable: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#13109
+ def variable; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#13134
+ def type; end
+ end
+end
+
+# Represents the use of the `END` keyword.
+#
+# END { foo }
+# ^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#13151
+class Prism::PostExecutionNode < ::Prism::Node
+ # Initialize a new PostExecutionNode node.
+ #
+ # @return [PostExecutionNode] a new instance of PostExecutionNode
+ #
+ # source://prism//lib/prism/node.rb#13153
+ def initialize(source, node_id, location, flags, statements, keyword_loc, opening_loc, closing_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#13255
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#13165
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#13170
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism//lib/prism/node.rb#13234
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#13217
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#13182
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#13175
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?statements: StatementsNode?, ?keyword_loc: Location, ?opening_loc: Location, ?closing_loc: Location) -> PostExecutionNode
+ #
+ # source://prism//lib/prism/node.rb#13187
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), statements: T.unsafe(nil), keyword_loc: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#13170
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, statements: StatementsNode?, keyword_loc: Location, opening_loc: Location, closing_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#13195
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#13239
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#13224
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#13203
+ def keyword_loc; end
+
+ # def opening: () -> String
+ #
+ # source://prism//lib/prism/node.rb#13229
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#13210
+ def opening_loc; end
+
+ # attr_reader statements: StatementsNode?
+ #
+ # source://prism//lib/prism/node.rb#13200
+ def statements; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#13244
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#13249
+ def type; end
+ end
+end
+
+# Represents the use of the `BEGIN` keyword.
+#
+# BEGIN { foo }
+# ^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#13268
+class Prism::PreExecutionNode < ::Prism::Node
+ # Initialize a new PreExecutionNode node.
+ #
+ # @return [PreExecutionNode] a new instance of PreExecutionNode
+ #
+ # source://prism//lib/prism/node.rb#13270
+ def initialize(source, node_id, location, flags, statements, keyword_loc, opening_loc, closing_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#13372
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#13282
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#13287
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism//lib/prism/node.rb#13351
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#13334
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#13299
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#13292
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?statements: StatementsNode?, ?keyword_loc: Location, ?opening_loc: Location, ?closing_loc: Location) -> PreExecutionNode
+ #
+ # source://prism//lib/prism/node.rb#13304
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), statements: T.unsafe(nil), keyword_loc: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#13287
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, statements: StatementsNode?, keyword_loc: Location, opening_loc: Location, closing_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#13312
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#13356
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#13341
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#13320
+ def keyword_loc; end
+
+ # def opening: () -> String
+ #
+ # source://prism//lib/prism/node.rb#13346
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#13327
+ def opening_loc; end
+
+ # attr_reader statements: StatementsNode?
+ #
+ # source://prism//lib/prism/node.rb#13317
+ def statements; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#13361
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#13366
+ def type; end
+ end
+end
+
+# The top level node of any parse tree.
+#
+# source://prism//lib/prism/node.rb#13382
+class Prism::ProgramNode < ::Prism::Node
+ # Initialize a new ProgramNode node.
+ #
+ # @return [ProgramNode] a new instance of ProgramNode
+ #
+ # source://prism//lib/prism/node.rb#13384
+ def initialize(source, node_id, location, flags, locals, statements); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#13449
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#13394
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#13399
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#13409
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#13404
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?locals: Array[Symbol], ?statements: StatementsNode) -> ProgramNode
+ #
+ # source://prism//lib/prism/node.rb#13414
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), locals: T.unsafe(nil), statements: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#13399
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, locals: Array[Symbol], statements: StatementsNode }
+ #
+ # source://prism//lib/prism/node.rb#13422
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#13433
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader locals: Array[Symbol]
+ #
+ # source://prism//lib/prism/node.rb#13427
+ def locals; end
+
+ # attr_reader statements: StatementsNode
+ #
+ # source://prism//lib/prism/node.rb#13430
+ def statements; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#13438
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#13443
+ def type; end
+ end
+end
+
+# Flags for range and flip-flop nodes.
+#
+# source://prism//lib/prism/node.rb#16731
+module Prism::RangeFlags; end
+
+# ... operator
+#
+# source://prism//lib/prism/node.rb#16733
+Prism::RangeFlags::EXCLUDE_END = T.let(T.unsafe(nil), Integer)
+
+# Represents the use of the `..` or `...` operators.
+#
+# 1..2
+# ^^^^
+#
+# c if a =~ /left/ ... b =~ /right/
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#13464
+class Prism::RangeNode < ::Prism::Node
+ # Initialize a new RangeNode node.
+ #
+ # @return [RangeNode] a new instance of RangeNode
+ #
+ # source://prism//lib/prism/node.rb#13466
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ left: T.nilable(Prism::Node),
+ right: T.nilable(Prism::Node),
+ operator_loc: Prism::Location
+ ).void
+ end
+ def initialize(source, node_id, location, flags, left, right, operator_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#13565
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#13477
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#13482
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#13495
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#13487
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?left: Prism::node?, ?right: Prism::node?, ?operator_loc: Location) -> RangeNode
+ #
+ # source://prism//lib/prism/node.rb#13500
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ left: T.nilable(Prism::Node),
+ right: T.nilable(Prism::Node),
+ operator_loc: Prism::Location
+ ).returns(Prism::RangeNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), left: T.unsafe(nil), right: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#13482
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, left: Prism::node?, right: Prism::node?, operator_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#13508
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ # def exclude_end?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#13513
+ sig { returns(T::Boolean) }
+ def exclude_end?; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#13549
+ sig { override.returns(String) }
+ def inspect; end
+
+ # The left-hand side of the range, if present. It can be either `nil` or any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
+ #
+ # 1...
+ # ^
+ #
+ # hello...goodbye
+ # ^^^^^
+ #
+ # source://prism//lib/prism/node.rb#13524
+ sig { returns(T.nilable(Prism::Node)) }
+ def left; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#13544
+ sig { returns(String) }
+ def operator; end
+
+ # The location of the `..` or `...` operator.
+ #
+ # source://prism//lib/prism/node.rb#13537
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # The right-hand side of the range, if present. It can be either `nil` or any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
+ #
+ # ..5
+ # ^
+ #
+ # 1...foo
+ # ^^^
+ # If neither right-hand or left-hand side was included, this will be a MissingNode.
+ #
+ # source://prism//lib/prism/node.rb#13534
+ sig { returns(T.nilable(Prism::Node)) }
+ def right; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#13554
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#13559
+ def type; end
+ end
+end
+
+# Represents a rational number literal.
+#
+# 1.0r
+# ^^^^
+#
+# source://prism//lib/prism/node.rb#13578
+class Prism::RationalNode < ::Prism::Node
+ # Initialize a new RationalNode node.
+ #
+ # @return [RationalNode] a new instance of RationalNode
+ #
+ # source://prism//lib/prism/node.rb#13580
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ numerator: Integer,
+ denominator: Integer
+ ).void
+ end
+ def initialize(source, node_id, location, flags, numerator, denominator); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#13669
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#13590
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def binary?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#13623
+ sig { returns(T::Boolean) }
+ def binary?; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#13595
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#13605
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#13600
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?numerator: Integer, ?denominator: Integer) -> RationalNode
+ #
+ # source://prism//lib/prism/node.rb#13610
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ numerator: Integer,
+ denominator: Integer
+ ).returns(Prism::RationalNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), numerator: T.unsafe(nil), denominator: T.unsafe(nil)); end
+
+ # def decimal?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#13628
+ sig { returns(T::Boolean) }
+ def decimal?; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#13595
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, numerator: Integer, denominator: Integer }
+ #
+ # source://prism//lib/prism/node.rb#13618
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ # The denominator of the rational number.
+ #
+ # 1.5r # denominator 2
+ #
+ # source://prism//lib/prism/node.rb#13650
+ sig { returns(Integer) }
+ def denominator; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def hexadecimal?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#13638
+ sig { returns(T::Boolean) }
+ def hexadecimal?; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#13653
+ sig { override.returns(String) }
+ def inspect; end
+
+ # The numerator of the rational number.
+ #
+ # 1.5r # numerator 3
+ #
+ # source://prism//lib/prism/node.rb#13645
+ sig { returns(Integer) }
+ def numerator; end
+
+ # Returns the value of the node as an IntegerNode or a FloatNode. This
+ # method is deprecated in favor of #value or #numerator/#denominator.
+ #
+ # source://prism//lib/prism/node_ext.rb#120
+ def numeric; end
+
+ # def octal?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#13633
+ sig { returns(T::Boolean) }
+ def octal?; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#13658
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # Returns the value of the node as a Ruby Rational.
+ #
+ # source://prism//lib/prism/node_ext.rb#114
+ sig { returns(Rational) }
+ def value; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#13663
+ def type; end
+ end
+end
+
+# Represents the use of the `redo` keyword.
+#
+# redo
+# ^^^^
+#
+# source://prism//lib/prism/node.rb#13681
+class Prism::RedoNode < ::Prism::Node
+ # Initialize a new RedoNode node.
+ #
+ # @return [RedoNode] a new instance of RedoNode
+ #
+ # source://prism//lib/prism/node.rb#13683
+ def initialize(source, node_id, location, flags); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#13740
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#13691
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#13696
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#13706
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#13701
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> RedoNode
+ #
+ # source://prism//lib/prism/node.rb#13711
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#13696
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
+ #
+ # source://prism//lib/prism/node.rb#13719
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#13724
+ sig { override.returns(String) }
+ def inspect; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#13729
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#13734
+ def type; end
+ end
+end
+
+# The Reflection module provides the ability to reflect on the structure of
+# the syntax tree itself, as opposed to looking at a single syntax tree. This
+# is useful in metaprogramming contexts.
+#
+# source://prism//lib/prism/reflection.rb#13
+module Prism::Reflection
+ class << self
+ # Returns the fields for the given node.
+ #
+ # source://prism//lib/prism/reflection.rb#104
+ sig { params(node: T.class_of(Prism::Node)).returns(T::Array[Prism::Reflection::Field]) }
+ def fields_for(node); end
+ end
+end
+
+# A constant field represents a constant value on a node. Effectively, it
+# represents an identifier found within the source. It resolves to a symbol
+# in Ruby.
+#
+# source://prism//lib/prism/reflection.rb#45
+class Prism::Reflection::ConstantField < ::Prism::Reflection::Field; end
+
+# A constant list field represents a list of constant values on a node. It
+# resolves to an array of symbols in Ruby.
+#
+# source://prism//lib/prism/reflection.rb#55
+class Prism::Reflection::ConstantListField < ::Prism::Reflection::Field; end
+
+# A field represents a single piece of data on a node. It is the base class
+# for all other field types.
+#
+# source://prism//lib/prism/reflection.rb#16
+class Prism::Reflection::Field
+ # Initializes the field with the given name.
+ #
+ # @return [Field] a new instance of Field
+ #
+ # source://prism//lib/prism/reflection.rb#21
+ sig { params(name: Symbol).void }
+ def initialize(name); end
+
+ # The name of the field.
+ #
+ # source://prism//lib/prism/reflection.rb#18
+ sig { returns(Symbol) }
+ def name; end
+end
+
+# A flags field represents a bitset of flags on a node. It resolves to an
+# integer in Ruby. Note that the flags cannot be accessed directly on the
+# node because the integer is kept private. Instead, the various flags in
+# the bitset should be accessed through their query methods.
+#
+# source://prism//lib/prism/reflection.rb#92
+class Prism::Reflection::FlagsField < ::Prism::Reflection::Field
+ # Initializes the flags field with the given name and flags.
+ #
+ # @return [FlagsField] a new instance of FlagsField
+ #
+ # source://prism//lib/prism/reflection.rb#97
+ sig { params(name: Symbol, flags: T::Array[Symbol]).void }
+ def initialize(name, flags); end
+
+ # The names of the flags in the bitset.
+ #
+ # source://prism//lib/prism/reflection.rb#94
+ sig { returns(T::Array[Symbol]) }
+ def flags; end
+end
+
+# A float field represents a double-precision floating point value. It is
+# used exclusively to represent the value of a floating point literal. It
+# resolves to a Float in Ruby.
+#
+# source://prism//lib/prism/reflection.rb#85
+class Prism::Reflection::FloatField < ::Prism::Reflection::Field; end
+
+# An integer field represents an integer value. It is used to represent the
+# value of an integer literal, the depth of local variables, and the number
+# of a numbered reference. It resolves to an Integer in Ruby.
+#
+# source://prism//lib/prism/reflection.rb#79
+class Prism::Reflection::IntegerField < ::Prism::Reflection::Field; end
+
+# A location field represents the location of some part of the node in the
+# source code. For example, the location of a keyword or an operator. It
+# resolves to a Prism::Location in Ruby.
+#
+# source://prism//lib/prism/reflection.rb#67
+class Prism::Reflection::LocationField < ::Prism::Reflection::Field; end
+
+# A node field represents a single child node in the syntax tree. It
+# resolves to a Prism::Node in Ruby.
+#
+# source://prism//lib/prism/reflection.rb#28
+class Prism::Reflection::NodeField < ::Prism::Reflection::Field; end
+
+# A node list field represents a list of child nodes in the syntax tree. It
+# resolves to an array of Prism::Node instances in Ruby.
+#
+# source://prism//lib/prism/reflection.rb#39
+class Prism::Reflection::NodeListField < ::Prism::Reflection::Field; end
+
+# An optional constant field represents a constant value on a node that may
+# or may not be present. It resolves to either a symbol or nil in Ruby.
+#
+# source://prism//lib/prism/reflection.rb#50
+class Prism::Reflection::OptionalConstantField < ::Prism::Reflection::Field; end
+
+# An optional location field represents the location of some part of the
+# node in the source code that may or may not be present. It resolves to
+# either a Prism::Location or nil in Ruby.
+#
+# source://prism//lib/prism/reflection.rb#73
+class Prism::Reflection::OptionalLocationField < ::Prism::Reflection::Field; end
+
+# An optional node field represents a single child node in the syntax tree
+# that may or may not be present. It resolves to either a Prism::Node or nil
+# in Ruby.
+#
+# source://prism//lib/prism/reflection.rb#34
+class Prism::Reflection::OptionalNodeField < ::Prism::Reflection::Field; end
+
+# A string field represents a string value on a node. It almost always
+# represents the unescaped value of a string-like literal. It resolves to a
+# string in Ruby.
+#
+# source://prism//lib/prism/reflection.rb#61
+class Prism::Reflection::StringField < ::Prism::Reflection::Field; end
+
+# Flags for regular expression and match last line nodes.
+#
+# source://prism//lib/prism/node.rb#16737
+module Prism::RegularExpressionFlags; end
+
+# n - forces the ASCII-8BIT encoding
+#
+# source://prism//lib/prism/node.rb#16754
+Prism::RegularExpressionFlags::ASCII_8BIT = T.let(T.unsafe(nil), Integer)
+
+# e - forces the EUC-JP encoding
+#
+# source://prism//lib/prism/node.rb#16751
+Prism::RegularExpressionFlags::EUC_JP = T.let(T.unsafe(nil), Integer)
+
+# x - ignores whitespace and allows comments in regular expressions
+#
+# source://prism//lib/prism/node.rb#16742
+Prism::RegularExpressionFlags::EXTENDED = T.let(T.unsafe(nil), Integer)
+
+# internal bytes forced the encoding to binary
+#
+# source://prism//lib/prism/node.rb#16766
+Prism::RegularExpressionFlags::FORCED_BINARY_ENCODING = T.let(T.unsafe(nil), Integer)
+
+# internal bytes forced the encoding to US-ASCII
+#
+# source://prism//lib/prism/node.rb#16769
+Prism::RegularExpressionFlags::FORCED_US_ASCII_ENCODING = T.let(T.unsafe(nil), Integer)
+
+# internal bytes forced the encoding to UTF-8
+#
+# source://prism//lib/prism/node.rb#16763
+Prism::RegularExpressionFlags::FORCED_UTF8_ENCODING = T.let(T.unsafe(nil), Integer)
+
+# i - ignores the case of characters when matching
+#
+# source://prism//lib/prism/node.rb#16739
+Prism::RegularExpressionFlags::IGNORE_CASE = T.let(T.unsafe(nil), Integer)
+
+# m - allows $ to match the end of lines within strings
+#
+# source://prism//lib/prism/node.rb#16745
+Prism::RegularExpressionFlags::MULTI_LINE = T.let(T.unsafe(nil), Integer)
+
+# o - only interpolates values into the regular expression once
+#
+# source://prism//lib/prism/node.rb#16748
+Prism::RegularExpressionFlags::ONCE = T.let(T.unsafe(nil), Integer)
+
+# u - forces the UTF-8 encoding
+#
+# source://prism//lib/prism/node.rb#16760
+Prism::RegularExpressionFlags::UTF_8 = T.let(T.unsafe(nil), Integer)
+
+# s - forces the Windows-31J encoding
+#
+# source://prism//lib/prism/node.rb#16757
+Prism::RegularExpressionFlags::WINDOWS_31J = T.let(T.unsafe(nil), Integer)
+
+# Represents a regular expression literal with no interpolation.
+#
+# /foo/i
+# ^^^^^^
+#
+# source://prism//lib/prism/node.rb#13749
+class Prism::RegularExpressionNode < ::Prism::Node
+ include ::Prism::RegularExpressionOptions
+
+ # Initialize a new RegularExpressionNode node.
+ #
+ # @return [RegularExpressionNode] a new instance of RegularExpressionNode
+ #
+ # source://prism//lib/prism/node.rb#13751
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: Prism::Location,
+ content_loc: Prism::Location,
+ closing_loc: Prism::Location,
+ unescaped: String
+ ).void
+ end
+ def initialize(source, node_id, location, flags, opening_loc, content_loc, closing_loc, unescaped); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#13906
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#13763
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def ascii_8bit?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#13821
+ sig { returns(T::Boolean) }
+ def ascii_8bit?; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#13768
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism//lib/prism/node.rb#13885
+ sig { returns(String) }
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#13865
+ sig { returns(Prism::Location) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#13778
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#13773
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def content: () -> String
+ #
+ # source://prism//lib/prism/node.rb#13880
+ sig { returns(String) }
+ def content; end
+
+ # attr_reader content_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#13858
+ sig { returns(Prism::Location) }
+ def content_loc; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?content_loc: Location, ?closing_loc: Location, ?unescaped: String) -> RegularExpressionNode
+ #
+ # source://prism//lib/prism/node.rb#13783
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: Prism::Location,
+ content_loc: Prism::Location,
+ closing_loc: Prism::Location,
+ unescaped: String
+ ).returns(Prism::RegularExpressionNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), opening_loc: T.unsafe(nil), content_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), unescaped: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#13768
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String }
+ #
+ # source://prism//lib/prism/node.rb#13791
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ # def euc_jp?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#13816
+ sig { returns(T::Boolean) }
+ def euc_jp?; end
+
+ # def extended?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#13801
+ sig { returns(T::Boolean) }
+ def extended?; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def forced_binary_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#13841
+ sig { returns(T::Boolean) }
+ def forced_binary_encoding?; end
+
+ # def forced_us_ascii_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#13846
+ sig { returns(T::Boolean) }
+ def forced_us_ascii_encoding?; end
+
+ # def forced_utf8_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#13836
+ sig { returns(T::Boolean) }
+ def forced_utf8_encoding?; end
+
+ # def ignore_case?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#13796
+ sig { returns(T::Boolean) }
+ def ignore_case?; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#13890
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def multi_line?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#13806
+ sig { returns(T::Boolean) }
+ def multi_line?; end
+
+ # def once?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#13811
+ sig { returns(T::Boolean) }
+ def once?; end
+
+ # def opening: () -> String
+ #
+ # source://prism//lib/prism/node.rb#13875
+ sig { returns(String) }
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#13851
+ sig { returns(Prism::Location) }
+ def opening_loc; end
+
+ sig { returns(Integer) }
+ def options; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#13895
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader unescaped: String
+ #
+ # source://prism//lib/prism/node.rb#13872
+ sig { returns(String) }
+ def unescaped; end
+
+ # def utf_8?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#13831
+ sig { returns(T::Boolean) }
+ def utf_8?; end
+
+ # def windows_31j?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#13826
+ sig { returns(T::Boolean) }
+ def windows_31j?; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#13900
+ def type; end
+ end
+end
+
+# source://prism//lib/prism/node_ext.rb#20
+module Prism::RegularExpressionOptions
+ # Returns a numeric value that represents the flags that were used to create
+ # the regular expression.
+ #
+ # source://prism//lib/prism/node_ext.rb#23
+ def options; end
+end
+
+# Represents a required keyword parameter to a method, block, or lambda definition.
+#
+# def a(b: )
+# ^^
+# end
+#
+# source://prism//lib/prism/node.rb#13921
+class Prism::RequiredKeywordParameterNode < ::Prism::Node
+ # Initialize a new RequiredKeywordParameterNode node.
+ #
+ # @return [RequiredKeywordParameterNode] a new instance of RequiredKeywordParameterNode
+ #
+ # source://prism//lib/prism/node.rb#13923
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ name_loc: Prism::Location
+ ).void
+ end
+ def initialize(source, node_id, location, flags, name, name_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#13997
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#13933
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#13938
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#13948
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#13943
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol, ?name_loc: Location) -> RequiredKeywordParameterNode
+ #
+ # source://prism//lib/prism/node.rb#13953
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol,
+ name_loc: Prism::Location
+ ).returns(Prism::RequiredKeywordParameterNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#13938
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol, name_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#13961
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#13981
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#13971
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#13974
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # def repeated_parameter?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#13966
+ sig { returns(T::Boolean) }
+ def repeated_parameter?; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#13986
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#13991
+ def type; end
+ end
+end
+
+# Represents a required parameter to a method, block, or lambda definition.
+#
+# def a(b)
+# ^
+# end
+#
+# source://prism//lib/prism/node.rb#14010
+class Prism::RequiredParameterNode < ::Prism::Node
+ # Initialize a new RequiredParameterNode node.
+ #
+ # @return [RequiredParameterNode] a new instance of RequiredParameterNode
+ #
+ # source://prism//lib/prism/node.rb#14012
+ sig { params(source: Prism::Source, node_id: Integer, location: Prism::Location, flags: Integer, name: Symbol).void }
+ def initialize(source, node_id, location, flags, name); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#14078
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#14021
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#14026
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#14036
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#14031
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol) -> RequiredParameterNode
+ #
+ # source://prism//lib/prism/node.rb#14041
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: Symbol
+ ).returns(Prism::RequiredParameterNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#14026
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol }
+ #
+ # source://prism//lib/prism/node.rb#14049
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#14062
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism//lib/prism/node.rb#14059
+ sig { returns(Symbol) }
+ def name; end
+
+ # def repeated_parameter?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#14054
+ sig { returns(T::Boolean) }
+ def repeated_parameter?; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#14067
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#14072
+ def type; end
+ end
+end
+
+# Represents an expression modified with a rescue.
+#
+# foo rescue nil
+# ^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#14089
+class Prism::RescueModifierNode < ::Prism::Node
+ # Initialize a new RescueModifierNode node.
+ #
+ # @return [RescueModifierNode] a new instance of RescueModifierNode
+ #
+ # source://prism//lib/prism/node.rb#14091
+ def initialize(source, node_id, location, flags, expression, keyword_loc, rescue_expression); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#14169
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#14102
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#14107
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#14117
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#14112
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?expression: Prism::node, ?keyword_loc: Location, ?rescue_expression: Prism::node) -> RescueModifierNode
+ #
+ # source://prism//lib/prism/node.rb#14122
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), expression: T.unsafe(nil), keyword_loc: T.unsafe(nil), rescue_expression: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#14107
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, expression: Prism::node, keyword_loc: Location, rescue_expression: Prism::node }
+ #
+ # source://prism//lib/prism/node.rb#14130
+ def deconstruct_keys(keys); end
+
+ # attr_reader expression: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#14135
+ def expression; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#14153
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#14148
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#14138
+ def keyword_loc; end
+
+ # source://prism//lib/prism/parse_result/newlines.rb#115
+ def newline_flag!(lines); end
+
+ # attr_reader rescue_expression: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#14145
+ def rescue_expression; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#14158
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#14163
+ def type; end
+ end
+end
+
+# Represents a rescue statement.
+#
+# begin
+# rescue Foo, *splat, Bar => ex
+# foo
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+# end
+#
+# `Foo, *splat, Bar` are in the `exceptions` field. `ex` is in the `exception` field.
+#
+# source://prism//lib/prism/node.rb#14186
+class Prism::RescueNode < ::Prism::Node
+ # Initialize a new RescueNode node.
+ #
+ # @return [RescueNode] a new instance of RescueNode
+ #
+ # source://prism//lib/prism/node.rb#14188
+ def initialize(source, node_id, location, flags, keyword_loc, exceptions, operator_loc, reference, statements, subsequent); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#14298
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#14202
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#14207
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#14222
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#14212
+ def compact_child_nodes; end
+
+ # Returns the subsequent rescue clause of the rescue node. This method is
+ # deprecated in favor of #subsequent.
+ #
+ # source://prism//lib/prism/node_ext.rb#494
+ def consequent; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?exceptions: Array[Prism::node], ?operator_loc: Location?, ?reference: Prism::node?, ?statements: StatementsNode?, ?subsequent: RescueNode?) -> RescueNode
+ #
+ # source://prism//lib/prism/node.rb#14227
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), keyword_loc: T.unsafe(nil), exceptions: T.unsafe(nil), operator_loc: T.unsafe(nil), reference: T.unsafe(nil), statements: T.unsafe(nil), subsequent: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#14207
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, keyword_loc: Location, exceptions: Array[Prism::node], operator_loc: Location?, reference: Prism::node?, statements: StatementsNode?, subsequent: RescueNode? }
+ #
+ # source://prism//lib/prism/node.rb#14235
+ def deconstruct_keys(keys); end
+
+ # attr_reader exceptions: Array[Prism::node]
+ #
+ # source://prism//lib/prism/node.rb#14247
+ def exceptions; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#14282
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#14272
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#14240
+ def keyword_loc; end
+
+ # def operator: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#14277
+ def operator; end
+
+ # attr_reader operator_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#14250
+ def operator_loc; end
+
+ # attr_reader reference: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#14263
+ def reference; end
+
+ # attr_reader statements: StatementsNode?
+ #
+ # source://prism//lib/prism/node.rb#14266
+ def statements; end
+
+ # attr_reader subsequent: RescueNode?
+ #
+ # source://prism//lib/prism/node.rb#14269
+ def subsequent; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#14287
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#14292
+ def type; end
+ end
+end
+
+# Represents a rest parameter to a method, block, or lambda definition.
+#
+# def a(*b)
+# ^^
+# end
+#
+# source://prism//lib/prism/node.rb#14315
+class Prism::RestParameterNode < ::Prism::Node
+ # Initialize a new RestParameterNode node.
+ #
+ # @return [RestParameterNode] a new instance of RestParameterNode
+ #
+ # source://prism//lib/prism/node.rb#14317
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: T.nilable(Symbol),
+ name_loc: T.nilable(Prism::Location),
+ operator_loc: Prism::Location
+ ).void
+ end
+ def initialize(source, node_id, location, flags, name, name_loc, operator_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#14410
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#14328
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#14333
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#14343
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#14338
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?name: Symbol?, ?name_loc: Location?, ?operator_loc: Location) -> RestParameterNode
+ #
+ # source://prism//lib/prism/node.rb#14348
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ name: T.nilable(Symbol),
+ name_loc: T.nilable(Prism::Location),
+ operator_loc: Prism::Location
+ ).returns(Prism::RestParameterNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#14333
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, name: Symbol?, name_loc: Location?, operator_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#14356
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#14394
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader name: Symbol?
+ #
+ # source://prism//lib/prism/node.rb#14366
+ sig { returns(T.nilable(Symbol)) }
+ def name; end
+
+ # attr_reader name_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#14369
+ sig { returns(T.nilable(Prism::Location)) }
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#14389
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#14382
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # def repeated_parameter?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#14361
+ sig { returns(T::Boolean) }
+ def repeated_parameter?; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#14399
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#14404
+ def type; end
+ end
+end
+
+# This represents the result of a call to ::parse or ::parse_file. It contains
+# the requested structure, any comments that were encounters, and any errors
+# that were encountered.
+#
+# source://prism//lib/prism/parse_result.rb#530
+class Prism::Result
+ # Create a new result object with the given values.
+ #
+ # @return [Result] a new instance of Result
+ #
+ # source://prism//lib/prism/parse_result.rb#552
+ sig do
+ params(
+ comments: T::Array[Prism::Comment],
+ magic_comments: T::Array[Prism::MagicComment],
+ data_loc: T.nilable(Prism::Location),
+ errors: T::Array[Prism::ParseError],
+ warnings: T::Array[Prism::ParseWarning],
+ source: Prism::Source
+ ).void
+ end
+ def initialize(comments, magic_comments, data_loc, errors, warnings, source); end
+
+ # The list of comments that were encountered during parsing.
+ #
+ # source://prism//lib/prism/parse_result.rb#532
+ sig { returns(T::Array[Prism::Comment]) }
+ def comments; end
+
+ # An optional location that represents the location of the __END__ marker
+ # and the rest of the content of the file. This content is loaded into the
+ # DATA constant when the file being parsed is the main file being executed.
+ #
+ # source://prism//lib/prism/parse_result.rb#540
+ sig { returns(T.nilable(Prism::Location)) }
+ def data_loc; end
+
+ # Implement the hash pattern matching interface for Result.
+ #
+ # source://prism//lib/prism/parse_result.rb#562
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ # Returns the encoding of the source code that was parsed.
+ #
+ # source://prism//lib/prism/parse_result.rb#567
+ sig { returns(Encoding) }
+ def encoding; end
+
+ # The list of errors that were generated during parsing.
+ #
+ # source://prism//lib/prism/parse_result.rb#543
+ sig { returns(T::Array[Prism::ParseError]) }
+ def errors; end
+
+ # Returns true if there were errors during parsing and false if there were
+ # not.
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/parse_result.rb#579
+ sig { returns(T::Boolean) }
+ def failure?; end
+
+ # The list of magic comments that were encountered during parsing.
+ #
+ # source://prism//lib/prism/parse_result.rb#535
+ sig { returns(T::Array[Prism::MagicComment]) }
+ def magic_comments; end
+
+ # A Source instance that represents the source code that was parsed.
+ #
+ # source://prism//lib/prism/parse_result.rb#549
+ sig { returns(Prism::Source) }
+ def source; end
+
+ # Returns true if there were no errors during parsing and false if there
+ # were.
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/parse_result.rb#573
+ sig { returns(T::Boolean) }
+ def success?; end
+
+ # The list of warnings that were generated during parsing.
+ #
+ # source://prism//lib/prism/parse_result.rb#546
+ sig { returns(T::Array[Prism::ParseWarning]) }
+ def warnings; end
+end
+
+# Represents the use of the `retry` keyword.
+#
+# retry
+# ^^^^^
+#
+# source://prism//lib/prism/node.rb#14423
+class Prism::RetryNode < ::Prism::Node
+ # Initialize a new RetryNode node.
+ #
+ # @return [RetryNode] a new instance of RetryNode
+ #
+ # source://prism//lib/prism/node.rb#14425
+ def initialize(source, node_id, location, flags); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#14482
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#14433
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#14438
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#14448
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#14443
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> RetryNode
+ #
+ # source://prism//lib/prism/node.rb#14453
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#14438
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
+ #
+ # source://prism//lib/prism/node.rb#14461
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#14466
+ sig { override.returns(String) }
+ def inspect; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#14471
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#14476
+ def type; end
+ end
+end
+
+# Represents the use of the `return` keyword.
+#
+# return 1
+# ^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#14491
+class Prism::ReturnNode < ::Prism::Node
+ # Initialize a new ReturnNode node.
+ #
+ # @return [ReturnNode] a new instance of ReturnNode
+ #
+ # source://prism//lib/prism/node.rb#14493
+ def initialize(source, node_id, location, flags, keyword_loc, arguments); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#14569
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#14503
+ def accept(visitor); end
+
+ # attr_reader arguments: ArgumentsNode?
+ #
+ # source://prism//lib/prism/node.rb#14545
+ def arguments; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#14508
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#14520
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#14513
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?arguments: ArgumentsNode?) -> ReturnNode
+ #
+ # source://prism//lib/prism/node.rb#14525
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), keyword_loc: T.unsafe(nil), arguments: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#14508
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, keyword_loc: Location, arguments: ArgumentsNode? }
+ #
+ # source://prism//lib/prism/node.rb#14533
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#14553
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#14548
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#14538
+ def keyword_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#14558
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#14563
+ def type; end
+ end
+end
+
+# Represents the `self` keyword.
+#
+# self
+# ^^^^
+#
+# source://prism//lib/prism/node.rb#14580
+class Prism::SelfNode < ::Prism::Node
+ # Initialize a new SelfNode node.
+ #
+ # @return [SelfNode] a new instance of SelfNode
+ #
+ # source://prism//lib/prism/node.rb#14582
+ def initialize(source, node_id, location, flags); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#14639
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#14590
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#14595
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#14605
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#14600
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> SelfNode
+ #
+ # source://prism//lib/prism/node.rb#14610
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#14595
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
+ #
+ # source://prism//lib/prism/node.rb#14618
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#14623
+ sig { override.returns(String) }
+ def inspect; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#14628
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#14633
+ def type; end
+ end
+end
+
+# A module responsible for deserializing parse results.
+#
+# source://prism//lib/prism/serialize.rb#14
+module Prism::Serialize
+ class << self
+ # Deserialize the AST represented by the given string into a parse result.
+ #
+ # source://prism//lib/prism/serialize.rb#28
+ def load(input, serialized); end
+
+ # Deserialize the tokens represented by the given string into a parse
+ # result.
+ #
+ # source://prism//lib/prism/serialize.rb#40
+ def load_tokens(source, serialized); end
+ end
+end
+
+# source://prism//lib/prism/serialize.rb#44
+class Prism::Serialize::Loader
+ # @return [Loader] a new instance of Loader
+ #
+ # source://prism//lib/prism/serialize.rb#80
+ def initialize(source, serialized); end
+
+ # Returns the value of attribute constant_pool.
+ #
+ # source://prism//lib/prism/serialize.rb#77
+ def constant_pool; end
+
+ # Returns the value of attribute constant_pool_offset.
+ #
+ # source://prism//lib/prism/serialize.rb#77
+ def constant_pool_offset; end
+
+ # Returns the value of attribute encoding.
+ #
+ # source://prism//lib/prism/serialize.rb#76
+ def encoding; end
+
+ # Returns the value of attribute input.
+ #
+ # source://prism//lib/prism/serialize.rb#76
+ def input; end
+
+ # Returns the value of attribute io.
+ #
+ # source://prism//lib/prism/serialize.rb#76
+ def io; end
+
+ # source://prism//lib/prism/serialize.rb#118
+ def load_comments; end
+
+ # source://prism//lib/prism/serialize.rb#104
+ def load_encoding; end
+
+ # source://prism//lib/prism/serialize.rb#95
+ def load_header; end
+
+ # source://prism//lib/prism/serialize.rb#114
+ def load_line_offsets; end
+
+ # source://prism//lib/prism/serialize.rb#446
+ def load_metadata; end
+
+ # source://prism//lib/prism/serialize.rb#480
+ def load_nodes; end
+
+ # source://prism//lib/prism/serialize.rb#494
+ def load_result; end
+
+ # source://prism//lib/prism/serialize.rb#110
+ def load_start_line; end
+
+ # source://prism//lib/prism/serialize.rb#455
+ def load_tokens; end
+
+ # source://prism//lib/prism/serialize.rb#468
+ def load_tokens_result; end
+
+ # Returns the value of attribute serialized.
+ #
+ # source://prism//lib/prism/serialize.rb#76
+ def serialized; end
+
+ # Returns the value of attribute source.
+ #
+ # source://prism//lib/prism/serialize.rb#77
+ def source; end
+
+ # Returns the value of attribute start_line.
+ #
+ # source://prism//lib/prism/serialize.rb#78
+ def start_line; end
+
+ private
+
+ # source://prism//lib/prism/serialize.rb#580
+ def load_constant(index); end
+
+ # source://prism//lib/prism/serialize.rb#533
+ def load_double; end
+
+ # source://prism//lib/prism/serialize.rb#548
+ def load_embedded_string; end
+
+ # source://prism//lib/prism/serialize.rb#610
+ def load_error_level; end
+
+ # source://prism//lib/prism/serialize.rb#522
+ def load_integer; end
+
+ # source://prism//lib/prism/serialize.rb#564
+ def load_location; end
+
+ # source://prism//lib/prism/serialize.rb#568
+ def load_location_object; end
+
+ # source://prism//lib/prism/serialize.rb#639
+ def load_node; end
+
+ # source://prism//lib/prism/serialize.rb#605
+ def load_optional_constant; end
+
+ # source://prism//lib/prism/serialize.rb#572
+ def load_optional_location; end
+
+ # source://prism//lib/prism/serialize.rb#576
+ def load_optional_location_object; end
+
+ # source://prism//lib/prism/serialize.rb#541
+ def load_optional_node; end
+
+ # source://prism//lib/prism/serialize.rb#601
+ def load_required_constant; end
+
+ # source://prism//lib/prism/serialize.rb#552
+ def load_string; end
+
+ # source://prism//lib/prism/serialize.rb#537
+ def load_uint32; end
+
+ # source://prism//lib/prism/serialize.rb#517
+ def load_varsint; end
+
+ # variable-length integer using https://en.wikipedia.org/wiki/LEB128
+ # This is also what protobuf uses: https://protobuf.dev/programming-guides/encoding/#varints
+ #
+ # source://prism//lib/prism/serialize.rb#503
+ def load_varuint; end
+
+ # source://prism//lib/prism/serialize.rb#625
+ def load_warning_level; end
+end
+
+# source://prism//lib/prism/serialize.rb#127
+Prism::Serialize::Loader::DIAGNOSTIC_TYPES = T.let(T.unsafe(nil), Array)
+
+# StringIO is synchronized and that adds a high overhead on TruffleRuby.
+#
+# source://prism//lib/prism/serialize.rb#72
+Prism::Serialize::Loader::FastStringIO = StringIO
+
+# The major version of prism that we are expecting to find in the serialized
+# strings.
+#
+# source://prism//lib/prism/serialize.rb#17
+Prism::Serialize::MAJOR_VERSION = T.let(T.unsafe(nil), Integer)
+
+# The minor version of prism that we are expecting to find in the serialized
+# strings.
+#
+# source://prism//lib/prism/serialize.rb#21
+Prism::Serialize::MINOR_VERSION = T.let(T.unsafe(nil), Integer)
+
+# The patch version of prism that we are expecting to find in the serialized
+# strings.
+#
+# source://prism//lib/prism/serialize.rb#25
+Prism::Serialize::PATCH_VERSION = T.let(T.unsafe(nil), Integer)
+
+# The token types that can be indexed by their enum values.
+#
+# source://prism//lib/prism/serialize.rb#1721
+Prism::Serialize::TOKEN_TYPES = T.let(T.unsafe(nil), Array)
+
+# This node wraps a constant write to indicate that when the value is written, it should have its shareability state modified.
+#
+# C = { a: 1 }
+# ^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#14649
+class Prism::ShareableConstantNode < ::Prism::Node
+ # Initialize a new ShareableConstantNode node.
+ #
+ # @return [ShareableConstantNode] a new instance of ShareableConstantNode
+ #
+ # source://prism//lib/prism/node.rb#14651
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ write: T.any(Prism::ConstantWriteNode, Prism::ConstantAndWriteNode, Prism::ConstantOrWriteNode, Prism::ConstantOperatorWriteNode, Prism::ConstantPathWriteNode, Prism::ConstantPathAndWriteNode, Prism::ConstantPathOrWriteNode, Prism::ConstantPathOperatorWriteNode)
+ ).void
+ end
+ def initialize(source, node_id, location, flags, write); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#14727
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#14660
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#14665
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#14675
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#14670
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?write: ConstantWriteNode | ConstantAndWriteNode | ConstantOrWriteNode | ConstantOperatorWriteNode | ConstantPathWriteNode | ConstantPathAndWriteNode | ConstantPathOrWriteNode | ConstantPathOperatorWriteNode) -> ShareableConstantNode
+ #
+ # source://prism//lib/prism/node.rb#14680
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ write: T.any(Prism::ConstantWriteNode, Prism::ConstantAndWriteNode, Prism::ConstantOrWriteNode, Prism::ConstantOperatorWriteNode, Prism::ConstantPathWriteNode, Prism::ConstantPathAndWriteNode, Prism::ConstantPathOrWriteNode, Prism::ConstantPathOperatorWriteNode)
+ ).returns(Prism::ShareableConstantNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), write: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#14665
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, write: ConstantWriteNode | ConstantAndWriteNode | ConstantOrWriteNode | ConstantOperatorWriteNode | ConstantPathWriteNode | ConstantPathAndWriteNode | ConstantPathOrWriteNode | ConstantPathOperatorWriteNode }
+ #
+ # source://prism//lib/prism/node.rb#14688
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ # def experimental_copy?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#14703
+ sig { returns(T::Boolean) }
+ def experimental_copy?; end
+
+ # def experimental_everything?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#14698
+ sig { returns(T::Boolean) }
+ def experimental_everything?; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#14711
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def literal?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#14693
+ sig { returns(T::Boolean) }
+ def literal?; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#14716
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # The constant write that should be modified with the shareability state.
+ #
+ # source://prism//lib/prism/node.rb#14708
+ sig do
+ returns(T.any(Prism::ConstantWriteNode, Prism::ConstantAndWriteNode, Prism::ConstantOrWriteNode, Prism::ConstantOperatorWriteNode, Prism::ConstantPathWriteNode, Prism::ConstantPathAndWriteNode, Prism::ConstantPathOrWriteNode, Prism::ConstantPathOperatorWriteNode))
+ end
+ def write; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#14721
+ def type; end
+ end
+end
+
+# Flags for shareable constant nodes.
+#
+# source://prism//lib/prism/node.rb#16773
+module Prism::ShareableConstantNodeFlags; end
+
+# constant writes that should be modified with shareable constant value experimental copy
+#
+# source://prism//lib/prism/node.rb#16781
+Prism::ShareableConstantNodeFlags::EXPERIMENTAL_COPY = T.let(T.unsafe(nil), Integer)
+
+# constant writes that should be modified with shareable constant value experimental everything
+#
+# source://prism//lib/prism/node.rb#16778
+Prism::ShareableConstantNodeFlags::EXPERIMENTAL_EVERYTHING = T.let(T.unsafe(nil), Integer)
+
+# constant writes that should be modified with shareable constant value literal
+#
+# source://prism//lib/prism/node.rb#16775
+Prism::ShareableConstantNodeFlags::LITERAL = T.let(T.unsafe(nil), Integer)
+
+# Represents a singleton class declaration involving the `class` keyword.
+#
+# class << self end
+# ^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#14738
+class Prism::SingletonClassNode < ::Prism::Node
+ # Initialize a new SingletonClassNode node.
+ #
+ # @return [SingletonClassNode] a new instance of SingletonClassNode
+ #
+ # source://prism//lib/prism/node.rb#14740
+ def initialize(source, node_id, location, flags, locals, class_keyword_loc, operator_loc, expression, body, end_keyword_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#14851
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#14754
+ def accept(visitor); end
+
+ # attr_reader body: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#14810
+ def body; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#14759
+ def child_nodes; end
+
+ # def class_keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#14820
+ def class_keyword; end
+
+ # attr_reader class_keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#14793
+ def class_keyword_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#14772
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#14764
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?locals: Array[Symbol], ?class_keyword_loc: Location, ?operator_loc: Location, ?expression: Prism::node, ?body: Prism::node?, ?end_keyword_loc: Location) -> SingletonClassNode
+ #
+ # source://prism//lib/prism/node.rb#14777
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), locals: T.unsafe(nil), class_keyword_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), expression: T.unsafe(nil), body: T.unsafe(nil), end_keyword_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#14759
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, locals: Array[Symbol], class_keyword_loc: Location, operator_loc: Location, expression: Prism::node, body: Prism::node?, end_keyword_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#14785
+ def deconstruct_keys(keys); end
+
+ # def end_keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#14830
+ def end_keyword; end
+
+ # attr_reader end_keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#14813
+ def end_keyword_loc; end
+
+ # attr_reader expression: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#14807
+ def expression; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#14835
+ sig { override.returns(String) }
+ def inspect; end
+
+ # attr_reader locals: Array[Symbol]
+ #
+ # source://prism//lib/prism/node.rb#14790
+ def locals; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#14825
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#14800
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#14840
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#14845
+ def type; end
+ end
+end
+
+# This represents a source of Ruby code that has been parsed. It is used in
+# conjunction with locations to allow them to resolve line numbers and source
+# ranges.
+#
+# source://prism//lib/prism/parse_result.rb#7
+class Prism::Source
+ # Create a new source object with the given source code.
+ #
+ # @return [Source] a new instance of Source
+ #
+ # source://prism//lib/prism/parse_result.rb#30
+ sig { params(source: String, start_line: Integer, offsets: T::Array[Integer]).void }
+ def initialize(source, start_line = T.unsafe(nil), offsets = T.unsafe(nil)); end
+
+ # Return the column number in characters for the given byte offset.
+ #
+ # source://prism//lib/prism/parse_result.rb#82
+ sig { params(byte_offset: Integer).returns(Integer) }
+ def character_column(byte_offset); end
+
+ # Return the character offset for the given byte offset.
+ #
+ # source://prism//lib/prism/parse_result.rb#77
+ sig { params(byte_offset: Integer).returns(Integer) }
+ def character_offset(byte_offset); end
+
+ # Returns the column number in code units for the given encoding for the
+ # given byte offset.
+ #
+ # source://prism//lib/prism/parse_result.rb#104
+ sig { params(byte_offset: Integer, encoding: Encoding).returns(Integer) }
+ def code_units_column(byte_offset, encoding); end
+
+ # Returns the offset from the start of the file for the given byte offset
+ # counting in code units for the given encoding.
+ #
+ # This method is tested with UTF-8, UTF-16, and UTF-32. If there is the
+ # concept of code units that differs from the number of characters in other
+ # encodings, it is not captured here.
+ #
+ # source://prism//lib/prism/parse_result.rb#92
+ sig { params(byte_offset: Integer, encoding: Encoding).returns(Integer) }
+ def code_units_offset(byte_offset, encoding); end
+
+ # Return the column number for the given byte offset.
+ #
+ # source://prism//lib/prism/parse_result.rb#72
+ sig { params(byte_offset: Integer).returns(Integer) }
+ def column(byte_offset); end
+
+ # Returns the encoding of the source code, which is set by parameters to the
+ # parser or by the encoding magic comment.
+ #
+ # source://prism//lib/prism/parse_result.rb#38
+ sig { returns(Encoding) }
+ def encoding; end
+
+ # Binary search through the offsets to find the line number for the given
+ # byte offset.
+ #
+ # source://prism//lib/prism/parse_result.rb#55
+ sig { params(byte_offset: Integer).returns(Integer) }
+ def line(byte_offset); end
+
+ # Returns the byte offset of the end of the line corresponding to the given
+ # byte offset.
+ #
+ # source://prism//lib/prism/parse_result.rb#67
+ def line_end(byte_offset); end
+
+ # Return the byte offset of the start of the line corresponding to the given
+ # byte offset.
+ #
+ # source://prism//lib/prism/parse_result.rb#61
+ sig { params(byte_offset: Integer).returns(Integer) }
+ def line_start(byte_offset); end
+
+ # Returns the lines of the source code as an array of strings.
+ #
+ # source://prism//lib/prism/parse_result.rb#43
+ sig { returns(T::Array[String]) }
+ def lines; end
+
+ # The list of newline byte offsets in the source code.
+ #
+ # source://prism//lib/prism/parse_result.rb#27
+ sig { returns(T::Array[Integer]) }
+ def offsets; end
+
+ # Perform a byteslice on the source code using the given byte offset and
+ # byte length.
+ #
+ # source://prism//lib/prism/parse_result.rb#49
+ sig { params(byte_offset: Integer, length: Integer).returns(String) }
+ def slice(byte_offset, length); end
+
+ # The source code that this source object represents.
+ #
+ # source://prism//lib/prism/parse_result.rb#21
+ sig { returns(String) }
+ def source; end
+
+ # The line number where this source starts.
+ #
+ # source://prism//lib/prism/parse_result.rb#24
+ sig { returns(Integer) }
+ def start_line; end
+
+ private
+
+ # Binary search through the offsets to find the line number for the given
+ # byte offset.
+ #
+ # source://prism//lib/prism/parse_result.rb#112
+ def find_line(byte_offset); end
+
+ class << self
+ # Create a new source object with the given source code. This method should
+ # be used instead of `new` and it will return either a `Source` or a
+ # specialized and more performant `ASCIISource` if no multibyte characters
+ # are present in the source code.
+ #
+ # source://prism//lib/prism/parse_result.rb#12
+ def for(source, start_line = T.unsafe(nil), offsets = T.unsafe(nil)); end
+ end
+end
+
+# Represents the use of the `__ENCODING__` keyword.
+#
+# __ENCODING__
+# ^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#14867
+class Prism::SourceEncodingNode < ::Prism::Node
+ # Initialize a new SourceEncodingNode node.
+ #
+ # @return [SourceEncodingNode] a new instance of SourceEncodingNode
+ #
+ # source://prism//lib/prism/node.rb#14869
+ def initialize(source, node_id, location, flags); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#14926
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#14877
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#14882
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#14892
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#14887
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> SourceEncodingNode
+ #
+ # source://prism//lib/prism/node.rb#14897
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#14882
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
+ #
+ # source://prism//lib/prism/node.rb#14905
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#14910
+ sig { override.returns(String) }
+ def inspect; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#14915
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#14920
+ def type; end
+ end
+end
+
+# Represents the use of the `__FILE__` keyword.
+#
+# __FILE__
+# ^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#14935
+class Prism::SourceFileNode < ::Prism::Node
+ # Initialize a new SourceFileNode node.
+ #
+ # @return [SourceFileNode] a new instance of SourceFileNode
+ #
+ # source://prism//lib/prism/node.rb#14937
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ filepath: String
+ ).void
+ end
+ def initialize(source, node_id, location, flags, filepath); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#15018
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#14946
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#14951
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#14961
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#14956
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?filepath: String) -> SourceFileNode
+ #
+ # source://prism//lib/prism/node.rb#14966
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ filepath: String
+ ).returns(Prism::SourceFileNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), filepath: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#14951
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, filepath: String }
+ #
+ # source://prism//lib/prism/node.rb#14974
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # Represents the file path being parsed. This corresponds directly to the `filepath` option given to the various `Prism::parse*` APIs.
+ #
+ # source://prism//lib/prism/node.rb#14999
+ sig { returns(String) }
+ def filepath; end
+
+ # def forced_binary_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#14984
+ sig { returns(T::Boolean) }
+ def forced_binary_encoding?; end
+
+ # def forced_utf8_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#14979
+ sig { returns(T::Boolean) }
+ def forced_utf8_encoding?; end
+
+ # def frozen?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#14989
+ sig { returns(T::Boolean) }
+ def frozen?; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#15002
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def mutable?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#14994
+ sig { returns(T::Boolean) }
+ def mutable?; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#15007
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#15012
+ def type; end
+ end
+end
+
+# Represents the use of the `__LINE__` keyword.
+#
+# __LINE__
+# ^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#15029
+class Prism::SourceLineNode < ::Prism::Node
+ # Initialize a new SourceLineNode node.
+ #
+ # @return [SourceLineNode] a new instance of SourceLineNode
+ #
+ # source://prism//lib/prism/node.rb#15031
+ def initialize(source, node_id, location, flags); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#15088
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#15039
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#15044
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#15054
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#15049
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> SourceLineNode
+ #
+ # source://prism//lib/prism/node.rb#15059
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#15044
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
+ #
+ # source://prism//lib/prism/node.rb#15067
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#15072
+ sig { override.returns(String) }
+ def inspect; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#15077
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#15082
+ def type; end
+ end
+end
+
+# Represents the use of the splat operator.
+#
+# [*a]
+# ^^
+#
+# source://prism//lib/prism/node.rb#15097
+class Prism::SplatNode < ::Prism::Node
+ # Initialize a new SplatNode node.
+ #
+ # @return [SplatNode] a new instance of SplatNode
+ #
+ # source://prism//lib/prism/node.rb#15099
+ def initialize(source, node_id, location, flags, operator_loc, expression); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#15175
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#15109
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#15114
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#15126
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#15119
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?operator_loc: Location, ?expression: Prism::node?) -> SplatNode
+ #
+ # source://prism//lib/prism/node.rb#15131
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), operator_loc: T.unsafe(nil), expression: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#15114
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, operator_loc: Location, expression: Prism::node? }
+ #
+ # source://prism//lib/prism/node.rb#15139
+ def deconstruct_keys(keys); end
+
+ # attr_reader expression: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#15151
+ def expression; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#15159
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def operator: () -> String
+ #
+ # source://prism//lib/prism/node.rb#15154
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#15144
+ def operator_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#15164
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#15169
+ def type; end
+ end
+end
+
+# Represents a set of statements contained within some scope.
+#
+# foo; bar; baz
+# ^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#15186
+class Prism::StatementsNode < ::Prism::Node
+ # Initialize a new StatementsNode node.
+ #
+ # @return [StatementsNode] a new instance of StatementsNode
+ #
+ # source://prism//lib/prism/node.rb#15188
+ def initialize(source, node_id, location, flags, body); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#15249
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#15197
+ def accept(visitor); end
+
+ # attr_reader body: Array[Prism::node]
+ #
+ # source://prism//lib/prism/node.rb#15230
+ def body; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#15202
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#15212
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#15207
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?body: Array[Prism::node]) -> StatementsNode
+ #
+ # source://prism//lib/prism/node.rb#15217
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), body: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#15202
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, body: Array[Prism::node] }
+ #
+ # source://prism//lib/prism/node.rb#15225
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#15233
+ sig { override.returns(String) }
+ def inspect; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#15238
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#15243
+ def type; end
+ end
+end
+
+# Flags for string nodes.
+#
+# source://prism//lib/prism/node.rb#16785
+module Prism::StringFlags; end
+
+# internal bytes forced the encoding to binary
+#
+# source://prism//lib/prism/node.rb#16790
+Prism::StringFlags::FORCED_BINARY_ENCODING = T.let(T.unsafe(nil), Integer)
+
+# internal bytes forced the encoding to UTF-8
+#
+# source://prism//lib/prism/node.rb#16787
+Prism::StringFlags::FORCED_UTF8_ENCODING = T.let(T.unsafe(nil), Integer)
+
+# source://prism//lib/prism/node.rb#16793
+Prism::StringFlags::FROZEN = T.let(T.unsafe(nil), Integer)
+
+# source://prism//lib/prism/node.rb#16796
+Prism::StringFlags::MUTABLE = T.let(T.unsafe(nil), Integer)
+
+# Represents a string literal, a string contained within a `%w` list, or plain string content within an interpolated string.
+#
+# "foo"
+# ^^^^^
+#
+# %w[foo]
+# ^^^
+#
+# "foo #{bar} baz"
+# ^^^^ ^^^^
+#
+# source://prism//lib/prism/node.rb#15266
+class Prism::StringNode < ::Prism::Node
+ include ::Prism::HeredocQuery
+
+ # Initialize a new StringNode node.
+ #
+ # @return [StringNode] a new instance of StringNode
+ #
+ # source://prism//lib/prism/node.rb#15268
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: T.nilable(Prism::Location),
+ content_loc: Prism::Location,
+ closing_loc: T.nilable(Prism::Location),
+ unescaped: String
+ ).void
+ end
+ def initialize(source, node_id, location, flags, opening_loc, content_loc, closing_loc, unescaped); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#15400
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#15280
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#15285
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#15379
+ sig { returns(T.nilable(String)) }
+ def closing; end
+
+ # attr_reader closing_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#15353
+ sig { returns(T.nilable(Prism::Location)) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#15295
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#15290
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def content: () -> String
+ #
+ # source://prism//lib/prism/node.rb#15374
+ sig { returns(String) }
+ def content; end
+
+ # attr_reader content_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#15346
+ sig { returns(Prism::Location) }
+ def content_loc; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location?, ?content_loc: Location, ?closing_loc: Location?, ?unescaped: String) -> StringNode
+ #
+ # source://prism//lib/prism/node.rb#15300
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: T.nilable(Prism::Location),
+ content_loc: Prism::Location,
+ closing_loc: T.nilable(Prism::Location),
+ unescaped: String
+ ).returns(Prism::StringNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), opening_loc: T.unsafe(nil), content_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), unescaped: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#15285
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location?, content_loc: Location, closing_loc: Location?, unescaped: String }
+ #
+ # source://prism//lib/prism/node.rb#15308
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def forced_binary_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#15318
+ sig { returns(T::Boolean) }
+ def forced_binary_encoding?; end
+
+ # def forced_utf8_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#15313
+ sig { returns(T::Boolean) }
+ def forced_utf8_encoding?; end
+
+ # def frozen?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#15323
+ sig { returns(T::Boolean) }
+ def frozen?; end
+
+ sig { returns(T::Boolean) }
+ def heredoc?; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#15384
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def mutable?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#15328
+ sig { returns(T::Boolean) }
+ def mutable?; end
+
+ # def opening: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#15369
+ sig { returns(T.nilable(String)) }
+ def opening; end
+
+ # attr_reader opening_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#15333
+ sig { returns(T.nilable(Prism::Location)) }
+ def opening_loc; end
+
+ # Occasionally it's helpful to treat a string as if it were interpolated so
+ # that there's a consistent interface for working with strings.
+ #
+ # source://prism//lib/prism/node_ext.rb#72
+ sig { returns(Prism::InterpolatedStringNode) }
+ def to_interpolated; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#15389
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader unescaped: String
+ #
+ # source://prism//lib/prism/node.rb#15366
+ sig { returns(String) }
+ def unescaped; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#15394
+ def type; end
+ end
+end
+
+# Represents the use of the `super` keyword with parentheses or arguments.
+#
+# super()
+# ^^^^^^^
+#
+# super foo, bar
+# ^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#15417
+class Prism::SuperNode < ::Prism::Node
+ # Initialize a new SuperNode node.
+ #
+ # @return [SuperNode] a new instance of SuperNode
+ #
+ # source://prism//lib/prism/node.rb#15419
+ def initialize(source, node_id, location, flags, keyword_loc, lparen_loc, arguments, rparen_loc, block); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#15538
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#15432
+ def accept(visitor); end
+
+ # attr_reader arguments: ArgumentsNode?
+ #
+ # source://prism//lib/prism/node.rb#15488
+ def arguments; end
+
+ # attr_reader block: Prism::node?
+ #
+ # source://prism//lib/prism/node.rb#15504
+ def block; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#15437
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#15450
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#15442
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?lparen_loc: Location?, ?arguments: ArgumentsNode?, ?rparen_loc: Location?, ?block: Prism::node?) -> SuperNode
+ #
+ # source://prism//lib/prism/node.rb#15455
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), keyword_loc: T.unsafe(nil), lparen_loc: T.unsafe(nil), arguments: T.unsafe(nil), rparen_loc: T.unsafe(nil), block: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#15437
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, keyword_loc: Location, lparen_loc: Location?, arguments: ArgumentsNode?, rparen_loc: Location?, block: Prism::node? }
+ #
+ # source://prism//lib/prism/node.rb#15463
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#15522
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#15507
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#15468
+ def keyword_loc; end
+
+ # def lparen: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#15512
+ def lparen; end
+
+ # attr_reader lparen_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#15475
+ def lparen_loc; end
+
+ # def rparen: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#15517
+ def rparen; end
+
+ # attr_reader rparen_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#15491
+ def rparen_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#15527
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#15532
+ def type; end
+ end
+end
+
+# Flags for symbol nodes.
+#
+# source://prism//lib/prism/node.rb#16800
+module Prism::SymbolFlags; end
+
+# internal bytes forced the encoding to binary
+#
+# source://prism//lib/prism/node.rb#16805
+Prism::SymbolFlags::FORCED_BINARY_ENCODING = T.let(T.unsafe(nil), Integer)
+
+# internal bytes forced the encoding to US-ASCII
+#
+# source://prism//lib/prism/node.rb#16808
+Prism::SymbolFlags::FORCED_US_ASCII_ENCODING = T.let(T.unsafe(nil), Integer)
+
+# internal bytes forced the encoding to UTF-8
+#
+# source://prism//lib/prism/node.rb#16802
+Prism::SymbolFlags::FORCED_UTF8_ENCODING = T.let(T.unsafe(nil), Integer)
+
+# Represents a symbol literal or a symbol contained within a `%i` list.
+#
+# :foo
+# ^^^^
+#
+# %i[foo]
+# ^^^
+#
+# source://prism//lib/prism/node.rb#15555
+class Prism::SymbolNode < ::Prism::Node
+ # Initialize a new SymbolNode node.
+ #
+ # @return [SymbolNode] a new instance of SymbolNode
+ #
+ # source://prism//lib/prism/node.rb#15557
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: T.nilable(Prism::Location),
+ value_loc: T.nilable(Prism::Location),
+ closing_loc: T.nilable(Prism::Location),
+ unescaped: String
+ ).void
+ end
+ def initialize(source, node_id, location, flags, opening_loc, value_loc, closing_loc, unescaped); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#15690
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#15569
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#15574
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#15669
+ sig { returns(T.nilable(String)) }
+ def closing; end
+
+ # attr_reader closing_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#15643
+ sig { returns(T.nilable(Prism::Location)) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#15584
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#15579
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location?, ?value_loc: Location?, ?closing_loc: Location?, ?unescaped: String) -> SymbolNode
+ #
+ # source://prism//lib/prism/node.rb#15589
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: T.nilable(Prism::Location),
+ value_loc: T.nilable(Prism::Location),
+ closing_loc: T.nilable(Prism::Location),
+ unescaped: String
+ ).returns(Prism::SymbolNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), opening_loc: T.unsafe(nil), value_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), unescaped: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#15574
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location?, value_loc: Location?, closing_loc: Location?, unescaped: String }
+ #
+ # source://prism//lib/prism/node.rb#15597
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def forced_binary_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#15607
+ sig { returns(T::Boolean) }
+ def forced_binary_encoding?; end
+
+ # def forced_us_ascii_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#15612
+ sig { returns(T::Boolean) }
+ def forced_us_ascii_encoding?; end
+
+ # def forced_utf8_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#15602
+ sig { returns(T::Boolean) }
+ def forced_utf8_encoding?; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#15674
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def opening: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#15659
+ sig { returns(T.nilable(String)) }
+ def opening; end
+
+ # attr_reader opening_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#15617
+ sig { returns(T.nilable(Prism::Location)) }
+ def opening_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#15679
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader unescaped: String
+ #
+ # source://prism//lib/prism/node.rb#15656
+ sig { returns(String) }
+ def unescaped; end
+
+ # def value: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#15664
+ sig { returns(T.nilable(String)) }
+ def value; end
+
+ # attr_reader value_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#15630
+ sig { returns(T.nilable(Prism::Location)) }
+ def value_loc; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#15684
+ def type; end
+ end
+end
+
+# This represents a token from the Ruby source.
+#
+# source://prism//lib/prism/parse_result.rb#662
+class Prism::Token
+ # Create a new token object with the given type, value, and location.
+ #
+ # @return [Token] a new instance of Token
+ #
+ # source://prism//lib/prism/parse_result.rb#674
+ sig { params(source: Prism::Source, type: Symbol, value: String, location: T.any(Integer, Prism::Location)).void }
+ def initialize(source, type, value, location); end
+
+ # Returns true if the given other token is equal to this token.
+ #
+ # source://prism//lib/prism/parse_result.rb#709
+ sig { params(other: T.untyped).returns(T::Boolean) }
+ def ==(other); end
+
+ # Implement the hash pattern matching interface for Token.
+ #
+ # source://prism//lib/prism/parse_result.rb#682
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ # Returns a string representation of this token.
+ #
+ # source://prism//lib/prism/parse_result.rb#716
+ def inspect; end
+
+ # A Location object representing the location of this token in the source.
+ #
+ # source://prism//lib/prism/parse_result.rb#687
+ sig { returns(Prism::Location) }
+ def location; end
+
+ # Implement the pretty print interface for Token.
+ #
+ # source://prism//lib/prism/parse_result.rb#694
+ sig { params(q: T.untyped).void }
+ def pretty_print(q); end
+
+ # The type of token that this token is.
+ #
+ # source://prism//lib/prism/parse_result.rb#668
+ sig { returns(Symbol) }
+ def type; end
+
+ # A byteslice of the source that this token represents.
+ #
+ # source://prism//lib/prism/parse_result.rb#671
+ sig { returns(String) }
+ def value; end
+
+ private
+
+ # The Source object that represents the source this token came from.
+ #
+ # source://prism//lib/prism/parse_result.rb#664
+ sig { returns(Prism::Source) }
+ def source; end
+end
+
+# This module is responsible for converting the prism syntax tree into other
+# syntax trees.
+#
+# source://prism//lib/prism/translation.rb#6
+module Prism::Translation; end
+
+class Prism::Translation::Parser < Parser::Base
+ sig { overridable.returns(Integer) }
+ def version; end
+end
+
+class Prism::Translation::Parser33 < Prism::Translation::Parser
+ sig { override.returns(Integer) }
+ def version; end
+end
+
+class Prism::Translation::Parser34 < Prism::Translation::Parser
+ sig { override.returns(Integer) }
+ def version; end
+end
+
+# This class provides a compatibility layer between prism and Ripper. It
+# functions by parsing the entire tree first and then walking it and
+# executing each of the Ripper callbacks as it goes. To use this class, you
+# treat `Prism::Translation::Ripper` effectively as you would treat the
+# `Ripper` class.
+#
+# Note that this class will serve the most common use cases, but Ripper's
+# API is extensive and undocumented. It relies on reporting the state of the
+# parser at any given time. We do our best to replicate that here, but
+# because it is a different architecture it is not possible to perfectly
+# replicate the behavior of Ripper.
+#
+# The main known difference is that we may omit dispatching some events in
+# some cases. This impacts the following events:
+#
+# - on_assign_error
+# - on_comma
+# - on_ignored_nl
+# - on_ignored_sp
+# - on_kw
+# - on_label_end
+# - on_lbrace
+# - on_lbracket
+# - on_lparen
+# - on_nl
+# - on_op
+# - on_operator_ambiguous
+# - on_rbrace
+# - on_rbracket
+# - on_rparen
+# - on_semicolon
+# - on_sp
+# - on_symbeg
+# - on_tstring_beg
+# - on_tstring_end
+#
+# source://prism//lib/prism/translation/ripper.rb#43
+class Prism::Translation::Ripper < ::Prism::Compiler
+ # Create a new Translation::Ripper object with the given source.
+ #
+ # @return [Ripper] a new instance of Ripper
+ #
+ # source://prism//lib/prism/translation/ripper.rb#444
+ def initialize(source, filename = T.unsafe(nil), lineno = T.unsafe(nil)); end
+
+ # The current column number of the parser.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#441
+ def column; end
+
+ # True if the parser encountered an error during parsing.
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/translation/ripper.rb#457
+ sig { returns(T::Boolean) }
+ def error?; end
+
+ # The filename of the source being parsed.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#435
+ def filename; end
+
+ # The current line number of the parser.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#438
+ def lineno; end
+
+ # Parse the source and return the result.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#462
+ sig { returns(T.untyped) }
+ def parse; end
+
+ # The source that is being parsed.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#432
+ def source; end
+
+ # alias $foo $bar
+ # ^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#561
+ def visit_alias_global_variable_node(node); end
+
+ # alias foo bar
+ # ^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#551
+ def visit_alias_method_node(node); end
+
+ # foo => bar | baz
+ # ^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#585
+ def visit_alternation_pattern_node(node); end
+
+ # a and b
+ # ^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#605
+ def visit_and_node(node); end
+
+ # foo(bar)
+ # ^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#796
+ def visit_arguments_node(node); end
+
+ # []
+ # ^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#615
+ def visit_array_node(node); end
+
+ # foo => [bar]
+ # ^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#775
+ def visit_array_pattern_node(node); end
+
+ # { a: 1 }
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#803
+ def visit_assoc_node(node); end
+
+ # def foo(**); bar(**); end
+ # ^^
+ #
+ # { **foo }
+ # ^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#816
+ def visit_assoc_splat_node(node); end
+
+ # $+
+ # ^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#825
+ def visit_back_reference_read_node(node); end
+
+ # begin end
+ # ^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#832
+ def visit_begin_node(node); end
+
+ # foo(&bar)
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#896
+ def visit_block_argument_node(node); end
+
+ # foo { |; bar| }
+ # ^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#902
+ def visit_block_local_variable_node(node); end
+
+ # Visit a BlockNode.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#908
+ def visit_block_node(node); end
+
+ # def foo(&bar); end
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#944
+ def visit_block_parameter_node(node); end
+
+ # A block's parameters.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#958
+ def visit_block_parameters_node(node); end
+
+ # break
+ # ^^^^^
+ #
+ # break foo
+ # ^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#982
+ def visit_break_node(node); end
+
+ # foo.bar &&= baz
+ # ^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1194
+ def visit_call_and_write_node(node); end
+
+ # foo
+ # ^^^
+ #
+ # foo.bar
+ # ^^^^^^^
+ #
+ # foo.bar() {}
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1002
+ def visit_call_node(node); end
+
+ # foo.bar += baz
+ # ^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1172
+ def visit_call_operator_write_node(node); end
+
+ # foo.bar ||= baz
+ # ^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1216
+ def visit_call_or_write_node(node); end
+
+ # foo.bar, = 1
+ # ^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1238
+ def visit_call_target_node(node); end
+
+ # foo => bar => baz
+ # ^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1263
+ def visit_capture_pattern_node(node); end
+
+ # case foo; in bar; end
+ # ^^^^^^^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1286
+ def visit_case_match_node(node); end
+
+ # case foo; when bar; end
+ # ^^^^^^^^^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1273
+ def visit_case_node(node); end
+
+ # class Foo; end
+ # ^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1299
+ def visit_class_node(node); end
+
+ # @@foo &&= bar
+ # ^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1352
+ def visit_class_variable_and_write_node(node); end
+
+ # @@foo += bar
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1338
+ def visit_class_variable_operator_write_node(node); end
+
+ # @@foo ||= bar
+ # ^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1366
+ def visit_class_variable_or_write_node(node); end
+
+ # @@foo
+ # ^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1317
+ def visit_class_variable_read_node(node); end
+
+ # @@foo, = bar
+ # ^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1380
+ def visit_class_variable_target_node(node); end
+
+ # @@foo = 1
+ # ^^^^^^^^^
+ #
+ # @@foo, @@bar = 1
+ # ^^^^^ ^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1327
+ def visit_class_variable_write_node(node); end
+
+ # Foo &&= bar
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1422
+ def visit_constant_and_write_node(node); end
+
+ # Foo += bar
+ # ^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1408
+ def visit_constant_operator_write_node(node); end
+
+ # Foo ||= bar
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1436
+ def visit_constant_or_write_node(node); end
+
+ # Foo::Bar &&= baz
+ # ^^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1523
+ def visit_constant_path_and_write_node(node); end
+
+ # Foo::Bar
+ # ^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1457
+ def visit_constant_path_node(node); end
+
+ # Foo::Bar += baz
+ # ^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1509
+ def visit_constant_path_operator_write_node(node); end
+
+ # Foo::Bar ||= baz
+ # ^^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1537
+ def visit_constant_path_or_write_node(node); end
+
+ # Foo::Bar, = baz
+ # ^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1551
+ def visit_constant_path_target_node(node); end
+
+ # Foo::Bar = 1
+ # ^^^^^^^^^^^^
+ #
+ # Foo::Foo, Bar::Bar = 1
+ # ^^^^^^^^ ^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1480
+ def visit_constant_path_write_node(node); end
+
+ # Foo
+ # ^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1387
+ def visit_constant_read_node(node); end
+
+ # Foo, = bar
+ # ^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1450
+ def visit_constant_target_node(node); end
+
+ # Foo = 1
+ # ^^^^^^^
+ #
+ # Foo, Bar = 1
+ # ^^^ ^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1397
+ def visit_constant_write_node(node); end
+
+ # def foo; end
+ # ^^^^^^^^^^^^
+ #
+ # def self.foo; end
+ # ^^^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1560
+ def visit_def_node(node); end
+
+ # defined? a
+ # ^^^^^^^^^^
+ #
+ # defined?(a)
+ # ^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1607
+ def visit_defined_node(node); end
+
+ # if foo then bar else baz end
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1614
+ def visit_else_node(node); end
+
+ # "foo #{bar}"
+ # ^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1630
+ def visit_embedded_statements_node(node); end
+
+ # "foo #@bar"
+ # ^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1651
+ def visit_embedded_variable_node(node); end
+
+ # Visit an EnsureNode node.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1662
+ def visit_ensure_node(node); end
+
+ # false
+ # ^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1680
+ def visit_false_node(node); end
+
+ # foo => [*, bar, *]
+ # ^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1687
+ def visit_find_pattern_node(node); end
+
+ # if foo .. bar; end
+ # ^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1712
+ def visit_flip_flop_node(node); end
+
+ # 1.0
+ # ^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1726
+ def visit_float_node(node); end
+
+ # for foo in bar do end
+ # ^^^^^^^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1732
+ def visit_for_node(node); end
+
+ # def foo(...); bar(...); end
+ # ^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1749
+ def visit_forwarding_arguments_node(node); end
+
+ # def foo(...); end
+ # ^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1756
+ def visit_forwarding_parameter_node(node); end
+
+ # super
+ # ^^^^^
+ #
+ # super {}
+ # ^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1766
+ def visit_forwarding_super_node(node); end
+
+ # $foo &&= bar
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1815
+ def visit_global_variable_and_write_node(node); end
+
+ # $foo += bar
+ # ^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1801
+ def visit_global_variable_operator_write_node(node); end
+
+ # $foo ||= bar
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1829
+ def visit_global_variable_or_write_node(node); end
+
+ # $foo
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1780
+ def visit_global_variable_read_node(node); end
+
+ # $foo, = bar
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1843
+ def visit_global_variable_target_node(node); end
+
+ # $foo = 1
+ # ^^^^^^^^
+ #
+ # $foo, $bar = 1
+ # ^^^^ ^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1790
+ def visit_global_variable_write_node(node); end
+
+ # {}
+ # ^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1850
+ def visit_hash_node(node); end
+
+ # foo => {}
+ # ^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1865
+ def visit_hash_pattern_node(node); end
+
+ # if foo then bar end
+ # ^^^^^^^^^^^^^^^^^^^
+ #
+ # bar if foo
+ # ^^^^^^^^^^
+ #
+ # foo ? bar : baz
+ # ^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1907
+ def visit_if_node(node); end
+
+ # 1i
+ # ^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1943
+ def visit_imaginary_node(node); end
+
+ # { foo: }
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1949
+ def visit_implicit_node(node); end
+
+ # foo { |bar,| }
+ # ^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1954
+ def visit_implicit_rest_node(node); end
+
+ # case foo; in bar; end
+ # ^^^^^^^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1961
+ def visit_in_node(node); end
+
+ # foo[bar] &&= baz
+ # ^^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1996
+ def visit_index_and_write_node(node); end
+
+ # foo[bar] += baz
+ # ^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1979
+ def visit_index_operator_write_node(node); end
+
+ # foo[bar] ||= baz
+ # ^^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2013
+ def visit_index_or_write_node(node); end
+
+ # foo[bar], = 1
+ # ^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2030
+ def visit_index_target_node(node); end
+
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2072
+ def visit_instance_variable_and_write_node(node); end
+
+ # ^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2058
+ def visit_instance_variable_operator_write_node(node); end
+
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2086
+ def visit_instance_variable_or_write_node(node); end
+
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2040
+ def visit_instance_variable_read_node(node); end
+
+ # @foo, = bar
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2100
+ def visit_instance_variable_target_node(node); end
+
+ # ^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2047
+ def visit_instance_variable_write_node(node); end
+
+ # 1
+ # ^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2107
+ def visit_integer_node(node); end
+
+ # if /foo #{bar}/ then end
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2113
+ def visit_interpolated_match_last_line_node(node); end
+
+ # /foo #{bar}/
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2132
+ def visit_interpolated_regular_expression_node(node); end
+
+ # "foo #{bar}"
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2151
+ def visit_interpolated_string_node(node); end
+
+ # :"foo #{bar}"
+ # ^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2179
+ def visit_interpolated_symbol_node(node); end
+
+ # `foo #{bar}`
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2192
+ def visit_interpolated_x_string_node(node); end
+
+ # -> { it }
+ # ^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2222
+ def visit_it_local_variable_read_node(node); end
+
+ # -> { it }
+ # ^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2229
+ def visit_it_parameters_node(node); end
+
+ # foo(bar: baz)
+ # ^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2234
+ def visit_keyword_hash_node(node); end
+
+ # def foo(**bar); end
+ # ^^^^^
+ #
+ # def foo(**); end
+ # ^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2246
+ def visit_keyword_rest_parameter_node(node); end
+
+ # -> {}
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2260
+ def visit_lambda_node(node); end
+
+ # foo &&= bar
+ # ^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2352
+ def visit_local_variable_and_write_node(node); end
+
+ # foo += bar
+ # ^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2338
+ def visit_local_variable_operator_write_node(node); end
+
+ # foo ||= bar
+ # ^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2366
+ def visit_local_variable_or_write_node(node); end
+
+ # foo
+ # ^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2320
+ def visit_local_variable_read_node(node); end
+
+ # foo, = bar
+ # ^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2380
+ def visit_local_variable_target_node(node); end
+
+ # foo = 1
+ # ^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2327
+ def visit_local_variable_write_node(node); end
+
+ # if /foo/ then end
+ # ^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2387
+ def visit_match_last_line_node(node); end
+
+ # foo in bar
+ # ^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2402
+ def visit_match_predicate_node(node); end
+
+ # foo => bar
+ # ^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2411
+ def visit_match_required_node(node); end
+
+ # /(?<foo>foo)/ =~ bar
+ # ^^^^^^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2420
+ def visit_match_write_node(node); end
+
+ # A node that is missing from the syntax tree. This is only used in the
+ # case of a syntax error.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2426
+ def visit_missing_node(node); end
+
+ # module Foo; end
+ # ^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2432
+ def visit_module_node(node); end
+
+ # (foo, bar), bar = qux
+ # ^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2449
+ def visit_multi_target_node(node); end
+
+ # foo, bar = baz
+ # ^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2503
+ def visit_multi_write_node(node); end
+
+ # next
+ # ^^^^
+ #
+ # next foo
+ # ^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2523
+ def visit_next_node(node); end
+
+ # nil
+ # ^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2537
+ def visit_nil_node(node); end
+
+ # def foo(**nil); end
+ # ^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2544
+ def visit_no_keywords_parameter_node(node); end
+
+ # -> { _1 + _2 }
+ # ^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2553
+ def visit_numbered_parameters_node(node); end
+
+ # $1
+ # ^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2558
+ def visit_numbered_reference_read_node(node); end
+
+ # def foo(bar: baz); end
+ # ^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2565
+ def visit_optional_keyword_parameter_node(node); end
+
+ # def foo(bar = 1); end
+ # ^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2575
+ def visit_optional_parameter_node(node); end
+
+ # a or b
+ # ^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2585
+ def visit_or_node(node); end
+
+ # def foo(bar, *baz); end
+ # ^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2595
+ def visit_parameters_node(node); end
+
+ # ()
+ # ^^
+ #
+ # (1)
+ # ^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2622
+ def visit_parentheses_node(node); end
+
+ # foo => ^(bar)
+ # ^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2636
+ def visit_pinned_expression_node(node); end
+
+ # foo = 1 and bar => ^foo
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2645
+ def visit_pinned_variable_node(node); end
+
+ # END {}
+ # ^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2651
+ def visit_post_execution_node(node); end
+
+ # BEGIN {}
+ # ^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2666
+ def visit_pre_execution_node(node); end
+
+ # The top-level program node.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2680
+ def visit_program_node(node); end
+
+ # 0..5
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2691
+ def visit_range_node(node); end
+
+ # 1r
+ # ^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2705
+ def visit_rational_node(node); end
+
+ # redo
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2711
+ def visit_redo_node(node); end
+
+ # /foo/
+ # ^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2718
+ def visit_regular_expression_node(node); end
+
+ # def foo(bar:); end
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2740
+ def visit_required_keyword_parameter_node(node); end
+
+ # def foo(bar); end
+ # ^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2747
+ def visit_required_parameter_node(node); end
+
+ # foo rescue bar
+ # ^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2754
+ def visit_rescue_modifier_node(node); end
+
+ # begin; rescue; end
+ # ^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2764
+ def visit_rescue_node(node); end
+
+ # def foo(*bar); end
+ # ^^^^
+ #
+ # def foo(*); end
+ # ^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2822
+ def visit_rest_parameter_node(node); end
+
+ # retry
+ # ^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2834
+ def visit_retry_node(node); end
+
+ # return
+ # ^^^^^^
+ #
+ # return 1
+ # ^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2844
+ def visit_return_node(node); end
+
+ # self
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2858
+ def visit_self_node(node); end
+
+ # A shareable constant.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2864
+ def visit_shareable_constant_node(node); end
+
+ # class << self; end
+ # ^^^^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2870
+ def visit_singleton_class_node(node); end
+
+ # __ENCODING__
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2880
+ def visit_source_encoding_node(node); end
+
+ # __FILE__
+ # ^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2887
+ def visit_source_file_node(node); end
+
+ # __LINE__
+ # ^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2894
+ def visit_source_line_node(node); end
+
+ # foo(*bar)
+ # ^^^^
+ #
+ # def foo((bar, *baz)); end
+ # ^^^^
+ #
+ # def foo(*); bar(*); end
+ # ^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2907
+ def visit_splat_node(node); end
+
+ # A list of statements.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2912
+ def visit_statements_node(node); end
+
+ # "foo"
+ # ^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2929
+ def visit_string_node(node); end
+
+ # super(foo)
+ # ^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#3061
+ def visit_super_node(node); end
+
+ # :foo
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#3082
+ def visit_symbol_node(node); end
+
+ # true
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#3106
+ def visit_true_node(node); end
+
+ # undef foo
+ # ^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#3113
+ def visit_undef_node(node); end
+
+ # unless foo; bar end
+ # ^^^^^^^^^^^^^^^^^^^
+ #
+ # bar unless foo
+ # ^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#3125
+ def visit_unless_node(node); end
+
+ # until foo; bar end
+ # ^^^^^^^^^^^^^^^^^
+ #
+ # bar until foo
+ # ^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#3153
+ def visit_until_node(node); end
+
+ # case foo; when bar; end
+ # ^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#3177
+ def visit_when_node(node); end
+
+ # while foo; bar end
+ # ^^^^^^^^^^^^^^^^^^
+ #
+ # bar while foo
+ # ^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#3198
+ def visit_while_node(node); end
+
+ # `foo`
+ # ^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#3222
+ def visit_x_string_node(node); end
+
+ # yield
+ # ^^^^^
+ #
+ # yield 1
+ # ^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ripper.rb#3245
+ def visit_yield_node(node); end
+
+ private
+
+ # :stopdoc:
+ #
+ # source://prism//lib/prism/translation/ripper.rb#3389
+ def _dispatch_0; end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def _dispatch_1(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def _dispatch_2(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3392
+ def _dispatch_3(_, _, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3393
+ def _dispatch_4(_, _, _, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3394
+ def _dispatch_5(_, _, _, _, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3395
+ def _dispatch_7(_, _, _, _, _, _, _); end
+
+ # This method is responsible for updating lineno and column information
+ # to reflect the current node.
+ #
+ # This method could be drastically improved with some caching on the start
+ # of every line, but for now it's good enough.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#3379
+ def bounds(location); end
+
+ # Returns true if the given node is a command node.
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1163
+ def command?(node); end
+
+ # This method is called when the parser found syntax error.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#3417
+ def compile_error(msg); end
+
+ # This method is provided by the Ripper C extension. It is called when a
+ # string needs to be dedented because of a tilde heredoc. It is expected
+ # that it will modify the string in place and return the number of bytes
+ # that were removed.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#3432
+ def dedent_string(string, width); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_BEGIN(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_CHAR(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_END(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on___end__(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_alias(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_alias_error(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_aref(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_aref_field(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_arg_ambiguous(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_arg_paren(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_args_add(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_args_add_block(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_args_add_star(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3389
+ def on_args_forward; end
+
+ # source://prism//lib/prism/translation/ripper.rb#3389
+ def on_args_new; end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_array(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3393
+ def on_aryptn(_, _, _, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_assign(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_assign_error(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_assoc_new(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_assoc_splat(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_assoclist_from_args(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_backref(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_backtick(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_bare_assoc_hash(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_begin(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3392
+ def on_binary(_, _, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_block_var(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_blockarg(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3393
+ def on_bodystmt(_, _, _, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_brace_block(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_break(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3392
+ def on_call(_, _, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_case(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3392
+ def on_class(_, _, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_class_name_error(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_comma(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_command(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3393
+ def on_command_call(_, _, _, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_comment(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_const(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_const_path_field(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_const_path_ref(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_const_ref(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_cvar(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3392
+ def on_def(_, _, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_defined(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3394
+ def on_defs(_, _, _, _, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_do_block(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_dot2(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_dot3(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_dyna_symbol(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_else(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3392
+ def on_elsif(_, _, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_embdoc(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_embdoc_beg(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_embdoc_end(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_embexpr_beg(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_embexpr_end(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_embvar(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_ensure(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3389
+ def on_excessed_comma; end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_fcall(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3392
+ def on_field(_, _, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_float(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3393
+ def on_fndptn(_, _, _, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3392
+ def on_for(_, _, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_gvar(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_hash(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_heredoc_beg(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_heredoc_dedent(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_heredoc_end(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3392
+ def on_hshptn(_, _, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_ident(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3392
+ def on_if(_, _, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_if_mod(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3392
+ def on_ifop(_, _, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_ignored_nl(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_ignored_sp(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_imaginary(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3392
+ def on_in(_, _, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_int(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_ivar(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_kw(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_kwrest_param(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_label(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_label_end(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_lambda(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_lbrace(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_lbracket(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_lparen(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_magic_comment(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_massign(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_method_add_arg(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_method_add_block(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_mlhs_add(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_mlhs_add_post(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_mlhs_add_star(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3389
+ def on_mlhs_new; end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_mlhs_paren(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_module(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_mrhs_add(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_mrhs_add_star(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3389
+ def on_mrhs_new; end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_mrhs_new_from_args(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_next(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_nl(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_nokw_param(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_op(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3392
+ def on_opassign(_, _, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_operator_ambiguous(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_param_error(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3395
+ def on_params(_, _, _, _, _, _, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_paren(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_parse_error(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_period(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_program(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_qsymbols_add(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_qsymbols_beg(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3389
+ def on_qsymbols_new; end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_qwords_add(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_qwords_beg(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3389
+ def on_qwords_new; end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_rational(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_rbrace(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_rbracket(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3389
+ def on_redo; end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_regexp_add(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_regexp_beg(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_regexp_end(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_regexp_literal(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3389
+ def on_regexp_new; end
+
+ # source://prism//lib/prism/translation/ripper.rb#3393
+ def on_rescue(_, _, _, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_rescue_mod(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_rest_param(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3389
+ def on_retry; end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_return(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3389
+ def on_return0; end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_rparen(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_sclass(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_semicolon(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_sp(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_stmts_add(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3389
+ def on_stmts_new; end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_string_add(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_string_concat(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3389
+ def on_string_content; end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_string_dvar(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_string_embexpr(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_string_literal(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_super(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_symbeg(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_symbol(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_symbol_literal(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_symbols_add(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_symbols_beg(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3389
+ def on_symbols_new; end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_tlambda(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_tlambeg(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_top_const_field(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_top_const_ref(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_tstring_beg(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_tstring_content(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_tstring_end(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_unary(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_undef(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3392
+ def on_unless(_, _, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_unless_mod(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_until(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_until_mod(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_var_alias(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_var_field(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_var_ref(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_vcall(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3389
+ def on_void_stmt; end
+
+ # source://prism//lib/prism/translation/ripper.rb#3392
+ def on_when(_, _, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_while(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_while_mod(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_word_add(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3389
+ def on_word_new; end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_words_add(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_words_beg(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3389
+ def on_words_new; end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_words_sep(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3391
+ def on_xstring_add(_, _); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_xstring_literal(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3389
+ def on_xstring_new; end
+
+ # source://prism//lib/prism/translation/ripper.rb#3390
+ def on_yield(_); end
+
+ # source://prism//lib/prism/translation/ripper.rb#3389
+ def on_yield0; end
+
+ # source://prism//lib/prism/translation/ripper.rb#3389
+ def on_zsuper; end
+
+ # Lazily initialize the parse result.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#3271
+ def result; end
+
+ # Returns true if there is a comma between the two locations.
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/translation/ripper.rb#3284
+ def trailing_comma?(left, right); end
+
+ # Visit one side of an alias global variable node.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#570
+ def visit_alias_global_variable_node_value(node); end
+
+ # Visit a list of elements, like the elements of an array or arguments.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#756
+ def visit_arguments(elements); end
+
+ # Visit the clauses of a begin node to form an on_bodystmt call.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#840
+ def visit_begin_node_clauses(location, node, allow_newline); end
+
+ # Visit the body of a structure that can have either a set of statements
+ # or statements wrapped in rescue/else/ensure.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#875
+ def visit_body_node(location, node, allow_newline = T.unsafe(nil)); end
+
+ # Visit the arguments and block of a call node and return the arguments
+ # and block as they should be used.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1136
+ def visit_call_node_arguments(arguments_node, block_node, trailing_comma); end
+
+ # Visit a constant path that is part of a write node.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#1489
+ def visit_constant_path_write_node_target(node); end
+
+ # Visit a destructured positional parameter node.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2609
+ def visit_destructured_parameter_node(node); end
+
+ # Visit a string that is expressed using a <<~ heredoc.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2980
+ def visit_heredoc_node(parts, base); end
+
+ # Ripper gives back the escaped string content but strips out the common
+ # leading whitespace. Prism gives back the unescaped string content and
+ # a location for the escaped string content. Unfortunately these don't
+ # work well together, so here we need to re-derive the common leading
+ # whitespace.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2955
+ def visit_heredoc_node_whitespace(parts); end
+
+ # Visit a heredoc node that is representing a string.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#3026
+ def visit_heredoc_string_node(node); end
+
+ # Visit a heredoc node that is representing an xstring.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#3043
+ def visit_heredoc_x_string_node(node); end
+
+ # Visit the targets of a multi-target node.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2462
+ def visit_multi_target_node_targets(lefts, rest, rights, skippable); end
+
+ # Visit a node that represents a number. We need to explicitly handle the
+ # unary - operator.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#3323
+ def visit_number_node(node); end
+
+ # Visit a pattern within a pattern match. This is used to bypass the
+ # parenthesis node that can be used to wrap patterns.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#595
+ def visit_pattern_node(node); end
+
+ # Visit the list of statements of a statements node. We support nil
+ # statements in the list. This would normally not be allowed by the
+ # structure of the prism parse tree, but we manually add them here so that
+ # we can mirror Ripper's void stmt.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2921
+ def visit_statements_node_body(body); end
+
+ # Visit an individual part of a string-like node.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#2211
+ def visit_string_content(part); end
+
+ # Visit the string content of a particular node. This method is used to
+ # split into the various token types.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#3296
+ def visit_token(token, allow_keywords = T.unsafe(nil)); end
+
+ # Dispatch a words_sep event that contains the space between the elements
+ # of list literals.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#745
+ def visit_words_sep(opening_loc, previous, current); end
+
+ # Visit a node that represents a write value. This is used to handle the
+ # special case of an implicit array that is generated without brackets.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#3341
+ def visit_write_value(node); end
+
+ # Returns true if there is a semicolon between the two locations.
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/translation/ripper.rb#3289
+ def void_stmt?(left, right, allow_newline); end
+
+ # This method is called when weak warning is produced by the parser.
+ # +fmt+ and +args+ is printf style.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#3408
+ def warn(fmt, *args); end
+
+ # This method is called when strong warning is produced by the parser.
+ # +fmt+ and +args+ is printf style.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#3413
+ def warning(fmt, *args); end
+
+ class << self
+ # Tokenizes the Ruby program and returns an array of an array,
+ # which is formatted like
+ # <code>[[lineno, column], type, token, state]</code>.
+ # The +filename+ argument is mostly ignored.
+ # By default, this method does not handle syntax errors in +src+,
+ # use the +raise_errors+ keyword to raise a SyntaxError for an error in +src+.
+ #
+ # require "ripper"
+ # require "pp"
+ #
+ # pp Ripper.lex("def m(a) nil end")
+ # #=> [[[1, 0], :on_kw, "def", FNAME ],
+ # [[1, 3], :on_sp, " ", FNAME ],
+ # [[1, 4], :on_ident, "m", ENDFN ],
+ # [[1, 5], :on_lparen, "(", BEG|LABEL],
+ # [[1, 6], :on_ident, "a", ARG ],
+ # [[1, 7], :on_rparen, ")", ENDFN ],
+ # [[1, 8], :on_sp, " ", BEG ],
+ # [[1, 9], :on_kw, "nil", END ],
+ # [[1, 12], :on_sp, " ", END ],
+ # [[1, 13], :on_kw, "end", END ]]
+ #
+ # source://prism//lib/prism/translation/ripper.rb#72
+ def lex(src, filename = T.unsafe(nil), lineno = T.unsafe(nil), raise_errors: T.unsafe(nil)); end
+
+ # Parses the given Ruby program read from +src+.
+ # +src+ must be a String or an IO or a object with a #gets method.
+ #
+ # source://prism//lib/prism/translation/ripper.rb#46
+ def parse(src, filename = T.unsafe(nil), lineno = T.unsafe(nil)); end
+
+ # Parses +src+ and create S-exp tree.
+ # Returns more readable tree rather than Ripper.sexp_raw.
+ # This method is mainly for developer use.
+ # The +filename+ argument is mostly ignored.
+ # By default, this method does not handle syntax errors in +src+,
+ # returning +nil+ in such cases. Use the +raise_errors+ keyword
+ # to raise a SyntaxError for an error in +src+.
+ #
+ # require "ripper"
+ # require "pp"
+ #
+ # pp Ripper.sexp("def m(a) nil end")
+ # #=> [:program,
+ # [[:def,
+ # [:@ident, "m", [1, 4]],
+ # [:paren, [:params, [[:@ident, "a", [1, 6]]], nil, nil, nil, nil, nil, nil]],
+ # [:bodystmt, [[:var_ref, [:@kw, "nil", [1, 9]]]], nil, nil, nil]]]]
+ #
+ # source://prism//lib/prism/translation/ripper.rb#381
+ def sexp(src, filename = T.unsafe(nil), lineno = T.unsafe(nil), raise_errors: T.unsafe(nil)); end
+
+ # Parses +src+ and create S-exp tree.
+ # This method is mainly for developer use.
+ # The +filename+ argument is mostly ignored.
+ # By default, this method does not handle syntax errors in +src+,
+ # returning +nil+ in such cases. Use the +raise_errors+ keyword
+ # to raise a SyntaxError for an error in +src+.
+ #
+ # require "ripper"
+ # require "pp"
+ #
+ # pp Ripper.sexp_raw("def m(a) nil end")
+ # #=> [:program,
+ # [:stmts_add,
+ # [:stmts_new],
+ # [:def,
+ # [:@ident, "m", [1, 4]],
+ # [:paren, [:params, [[:@ident, "a", [1, 6]]], nil, nil, nil]],
+ # [:bodystmt,
+ # [:stmts_add, [:stmts_new], [:var_ref, [:@kw, "nil", [1, 9]]]],
+ # nil,
+ # nil,
+ # nil]]]]
+ #
+ # source://prism//lib/prism/translation/ripper.rb#416
+ def sexp_raw(src, filename = T.unsafe(nil), lineno = T.unsafe(nil), raise_errors: T.unsafe(nil)); end
+ end
+end
+
+# A list of all of the Ruby binary operators.
+#
+# source://prism//lib/prism/translation/ripper.rb#337
+Prism::Translation::Ripper::BINARY_OPERATORS = T.let(T.unsafe(nil), Array)
+
+# This array contains name of all ripper events.
+#
+# source://prism//lib/prism/translation/ripper.rb#289
+Prism::Translation::Ripper::EVENTS = T.let(T.unsafe(nil), Array)
+
+# A list of all of the Ruby keywords.
+#
+# source://prism//lib/prism/translation/ripper.rb#292
+Prism::Translation::Ripper::KEYWORDS = T.let(T.unsafe(nil), Array)
+
+# This array contains name of parser events.
+#
+# source://prism//lib/prism/translation/ripper.rb#283
+Prism::Translation::Ripper::PARSER_EVENTS = T.let(T.unsafe(nil), Array)
+
+# This contains a table of all of the parser events and their
+# corresponding arity.
+#
+# source://prism//lib/prism/translation/ripper.rb#84
+Prism::Translation::Ripper::PARSER_EVENT_TABLE = T.let(T.unsafe(nil), Hash)
+
+# This array contains name of scanner events.
+#
+# source://prism//lib/prism/translation/ripper.rb#286
+Prism::Translation::Ripper::SCANNER_EVENTS = T.let(T.unsafe(nil), Array)
+
+# This contains a table of all of the scanner events and their
+# corresponding arity.
+#
+# source://prism//lib/prism/translation/ripper.rb#227
+Prism::Translation::Ripper::SCANNER_EVENT_TABLE = T.let(T.unsafe(nil), Hash)
+
+# This class mirrors the ::Ripper::SexpBuilder subclass of ::Ripper that
+# returns the arrays of [type, *children].
+#
+# source://prism//lib/prism/translation/ripper/sexp.rb#10
+class Prism::Translation::Ripper::SexpBuilder < ::Prism::Translation::Ripper
+ # :stopdoc:
+ #
+ # source://prism//lib/prism/translation/ripper/sexp.rb#13
+ def error; end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_BEGIN(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_CHAR(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_END(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on___end__(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_alias(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_alias_error(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_aref(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_aref_field(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_arg_ambiguous(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_arg_paren(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_args_add(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_args_add_block(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_args_add_star(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_args_forward(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_args_new(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_array(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_aryptn(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_assign(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_assign_error(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_assoc_new(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_assoc_splat(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_assoclist_from_args(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_backref(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_backtick(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_bare_assoc_hash(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_begin(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_binary(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_block_var(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_blockarg(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_bodystmt(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_brace_block(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_break(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_call(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_case(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_class(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_class_name_error(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_comma(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_command(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_command_call(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_comment(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_const(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_const_path_field(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_const_path_ref(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_const_ref(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_cvar(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_def(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_defined(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_defs(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_do_block(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_dot2(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_dot3(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_dyna_symbol(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_else(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_elsif(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_embdoc(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_embdoc_beg(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_embdoc_end(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_embexpr_beg(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_embexpr_end(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_embvar(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_ensure(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_excessed_comma(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_fcall(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_field(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_float(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_fndptn(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_for(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_gvar(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_hash(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_heredoc_beg(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_heredoc_end(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_hshptn(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_ident(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_if(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_if_mod(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_ifop(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_ignored_nl(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_ignored_sp(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_imaginary(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_in(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_int(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_ivar(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_kw(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_kwrest_param(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_label(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_label_end(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_lambda(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_lbrace(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_lbracket(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_lparen(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_magic_comment(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_massign(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_method_add_arg(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_method_add_block(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_mlhs_add(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_mlhs_add_post(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_mlhs_add_star(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_mlhs_new(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_mlhs_paren(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_module(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_mrhs_add(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_mrhs_add_star(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_mrhs_new(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_mrhs_new_from_args(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_next(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_nl(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_nokw_param(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_op(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_opassign(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_operator_ambiguous(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_param_error(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_params(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_paren(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_period(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_program(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_qsymbols_add(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_qsymbols_beg(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_qsymbols_new(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_qwords_add(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_qwords_beg(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_qwords_new(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_rational(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_rbrace(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_rbracket(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_redo(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_regexp_add(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_regexp_beg(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_regexp_end(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_regexp_literal(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_regexp_new(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_rescue(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_rescue_mod(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_rest_param(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_retry(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_return(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_return0(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_rparen(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_sclass(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_semicolon(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_sp(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_stmts_add(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_stmts_new(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_string_add(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_string_concat(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_string_content(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_string_dvar(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_string_embexpr(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_string_literal(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_super(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_symbeg(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_symbol(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_symbol_literal(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_symbols_add(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_symbols_beg(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_symbols_new(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_tlambda(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_tlambeg(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_top_const_field(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_top_const_ref(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_tstring_beg(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_tstring_content(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_tstring_end(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_unary(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_undef(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_unless(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_unless_mod(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_until(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_until_mod(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_var_alias(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_var_field(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_var_ref(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_vcall(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_void_stmt(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_when(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_while(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_while_mod(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_word_add(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_word_new(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_words_add(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_words_beg(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_words_new(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#55
+ def on_words_sep(tok); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_xstring_add(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_xstring_literal(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_xstring_new(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_yield(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_yield0(*args); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#47
+ def on_zsuper(*args); end
+
+ private
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#61
+ def compile_error(mesg); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#17
+ def dedent_element(e, width); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#61
+ def on_error(mesg); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#24
+ def on_heredoc_dedent(val, width); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#61
+ def on_parse_error(mesg); end
+end
+
+# This class mirrors the ::Ripper::SexpBuilderPP subclass of ::Ripper that
+# returns the same values as ::Ripper::SexpBuilder except with a couple of
+# niceties that flatten linked lists into arrays.
+#
+# source://prism//lib/prism/translation/ripper/sexp.rb#74
+class Prism::Translation::Ripper::SexpBuilderPP < ::Prism::Translation::Ripper::SexpBuilder
+ private
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#92
+ def _dispatch_event_new; end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#96
+ def _dispatch_event_push(list, item); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#96
+ def on_args_add(list, item); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#92
+ def on_args_new; end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#79
+ def on_heredoc_dedent(val, width); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#96
+ def on_mlhs_add(list, item); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#109
+ def on_mlhs_add_post(list, post); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#105
+ def on_mlhs_add_star(list, star); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#92
+ def on_mlhs_new; end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#101
+ def on_mlhs_paren(list); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#96
+ def on_mrhs_add(list, item); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#92
+ def on_mrhs_new; end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#96
+ def on_qsymbols_add(list, item); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#92
+ def on_qsymbols_new; end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#96
+ def on_qwords_add(list, item); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#92
+ def on_qwords_new; end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#96
+ def on_regexp_add(list, item); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#92
+ def on_regexp_new; end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#96
+ def on_stmts_add(list, item); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#92
+ def on_stmts_new; end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#96
+ def on_string_add(list, item); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#96
+ def on_symbols_add(list, item); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#92
+ def on_symbols_new; end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#96
+ def on_word_add(list, item); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#92
+ def on_word_new; end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#96
+ def on_words_add(list, item); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#92
+ def on_words_new; end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#96
+ def on_xstring_add(list, item); end
+
+ # source://prism//lib/prism/translation/ripper/sexp.rb#92
+ def on_xstring_new; end
+end
+
+# This module is the entry-point for converting a prism syntax tree into the
+# seattlerb/ruby_parser gem's syntax tree.
+#
+# source://prism//lib/prism/translation/ruby_parser.rb#14
+class Prism::Translation::RubyParser
+ # Parse the given source and translate it into the seattlerb/ruby_parser
+ # gem's Sexp format.
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1592
+ def parse(source, filepath = T.unsafe(nil)); end
+
+ # Parse the given file and translate it into the seattlerb/ruby_parser
+ # gem's Sexp format.
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1598
+ def parse_file(filepath); end
+
+ private
+
+ # Translate the given parse result and filepath into the
+ # seattlerb/ruby_parser gem's Sexp format.
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1620
+ def translate(result, filepath); end
+
+ class << self
+ # Parse the given source and translate it into the seattlerb/ruby_parser
+ # gem's Sexp format.
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1605
+ def parse(source, filepath = T.unsafe(nil)); end
+
+ # Parse the given file and translate it into the seattlerb/ruby_parser
+ # gem's Sexp format.
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1611
+ def parse_file(filepath); end
+ end
+end
+
+# A prism visitor that builds Sexp objects.
+#
+# source://prism//lib/prism/translation/ruby_parser.rb#16
+class Prism::Translation::RubyParser::Compiler < ::Prism::Compiler
+ # Initialize a new compiler with the given file name.
+ #
+ # @return [Compiler] a new instance of Compiler
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#31
+ def initialize(file, in_def: T.unsafe(nil), in_pattern: T.unsafe(nil)); end
+
+ # This is the name of the file that we are compiling. We set it on every
+ # Sexp object that is generated, and also use it to compile __FILE__
+ # nodes.
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#20
+ def file; end
+
+ # Class variables will change their type based on if they are inside of
+ # a method definition or not, so we need to track that state.
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#24
+ def in_def; end
+
+ # Some nodes will change their representation if they are inside of a
+ # pattern, so we need to track that state.
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#28
+ def in_pattern; end
+
+ # alias $foo $bar
+ # ^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#45
+ def visit_alias_global_variable_node(node); end
+
+ # alias foo bar
+ # ^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#39
+ def visit_alias_method_node(node); end
+
+ # foo => bar | baz
+ # ^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#51
+ def visit_alternation_pattern_node(node); end
+
+ # a and b
+ # ^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#57
+ def visit_and_node(node); end
+
+ # foo(bar)
+ # ^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#108
+ def visit_arguments_node(node); end
+
+ # []
+ # ^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#75
+ def visit_array_node(node); end
+
+ # foo => [bar]
+ # ^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#85
+ def visit_array_pattern_node(node); end
+
+ # { a: 1 }
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#114
+ def visit_assoc_node(node); end
+
+ # def foo(**); bar(**); end
+ # ^^
+ #
+ # { **foo }
+ # ^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#123
+ def visit_assoc_splat_node(node); end
+
+ # $+
+ # ^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#133
+ def visit_back_reference_read_node(node); end
+
+ # begin end
+ # ^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#139
+ def visit_begin_node(node); end
+
+ # foo(&bar)
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#172
+ def visit_block_argument_node(node); end
+
+ # foo { |; bar| }
+ # ^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#180
+ def visit_block_local_variable_node(node); end
+
+ # A block on a keyword or method call.
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#185
+ def visit_block_node(node); end
+
+ # def foo(&bar); end
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#191
+ def visit_block_parameter_node(node); end
+
+ # A block's parameters.
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#196
+ def visit_block_parameters_node(node); end
+
+ # break
+ # ^^^^^
+ #
+ # break foo
+ # ^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#236
+ def visit_break_node(node); end
+
+ # foo.bar &&= baz
+ # ^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#304
+ def visit_call_and_write_node(node); end
+
+ # foo
+ # ^^^
+ #
+ # foo.bar
+ # ^^^^^^^
+ #
+ # foo.bar() {}
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#254
+ def visit_call_node(node); end
+
+ # foo.bar += baz
+ # ^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#294
+ def visit_call_operator_write_node(node); end
+
+ # foo.bar ||= baz
+ # ^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#314
+ def visit_call_or_write_node(node); end
+
+ # foo.bar, = 1
+ # ^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#337
+ def visit_call_target_node(node); end
+
+ # foo => bar => baz
+ # ^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#343
+ def visit_capture_pattern_node(node); end
+
+ # case foo; in bar; end
+ # ^^^^^^^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#355
+ def visit_case_match_node(node); end
+
+ # case foo; when bar; end
+ # ^^^^^^^^^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#349
+ def visit_case_node(node); end
+
+ # class Foo; end
+ # ^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#361
+ def visit_class_node(node); end
+
+ # @@foo &&= bar
+ # ^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#402
+ def visit_class_variable_and_write_node(node); end
+
+ # @@foo += bar
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#396
+ def visit_class_variable_operator_write_node(node); end
+
+ # @@foo ||= bar
+ # ^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#408
+ def visit_class_variable_or_write_node(node); end
+
+ # @@foo
+ # ^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#381
+ def visit_class_variable_read_node(node); end
+
+ # @@foo, = bar
+ # ^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#414
+ def visit_class_variable_target_node(node); end
+
+ # @@foo = 1
+ # ^^^^^^^^^
+ #
+ # @@foo, @@bar = 1
+ # ^^^^^ ^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#390
+ def visit_class_variable_write_node(node); end
+
+ # Foo &&= bar
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#447
+ def visit_constant_and_write_node(node); end
+
+ # Foo += bar
+ # ^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#441
+ def visit_constant_operator_write_node(node); end
+
+ # Foo ||= bar
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#453
+ def visit_constant_or_write_node(node); end
+
+ # Foo::Bar &&= baz
+ # ^^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#490
+ def visit_constant_path_and_write_node(node); end
+
+ # Foo::Bar
+ # ^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#465
+ def visit_constant_path_node(node); end
+
+ # Foo::Bar += baz
+ # ^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#484
+ def visit_constant_path_operator_write_node(node); end
+
+ # Foo::Bar ||= baz
+ # ^^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#496
+ def visit_constant_path_or_write_node(node); end
+
+ # Foo::Bar, = baz
+ # ^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#502
+ def visit_constant_path_target_node(node); end
+
+ # Foo::Bar = 1
+ # ^^^^^^^^^^^^
+ #
+ # Foo::Foo, Bar::Bar = 1
+ # ^^^^^^^^ ^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#478
+ def visit_constant_path_write_node(node); end
+
+ # Foo
+ # ^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#426
+ def visit_constant_read_node(node); end
+
+ # Foo, = bar
+ # ^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#459
+ def visit_constant_target_node(node); end
+
+ # Foo = 1
+ # ^^^^^^^
+ #
+ # Foo, Bar = 1
+ # ^^^ ^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#435
+ def visit_constant_write_node(node); end
+
+ # def foo; end
+ # ^^^^^^^^^^^^
+ #
+ # def self.foo; end
+ # ^^^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#518
+ def visit_def_node(node); end
+
+ # defined? a
+ # ^^^^^^^^^^
+ #
+ # defined?(a)
+ # ^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#549
+ def visit_defined_node(node); end
+
+ # if foo then bar else baz end
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#555
+ def visit_else_node(node); end
+
+ # "foo #{bar}"
+ # ^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#561
+ def visit_embedded_statements_node(node); end
+
+ # "foo #@bar"
+ # ^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#569
+ def visit_embedded_variable_node(node); end
+
+ # begin; foo; ensure; bar; end
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#575
+ def visit_ensure_node(node); end
+
+ # false
+ # ^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#581
+ def visit_false_node(node); end
+
+ # foo => [*, bar, *]
+ # ^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#587
+ def visit_find_pattern_node(node); end
+
+ # if foo .. bar; end
+ # ^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#593
+ def visit_flip_flop_node(node); end
+
+ # 1.0
+ # ^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#603
+ def visit_float_node(node); end
+
+ # for foo in bar do end
+ # ^^^^^^^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#609
+ def visit_for_node(node); end
+
+ # def foo(...); bar(...); end
+ # ^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#615
+ def visit_forwarding_arguments_node(node); end
+
+ # def foo(...); end
+ # ^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#621
+ def visit_forwarding_parameter_node(node); end
+
+ # super
+ # ^^^^^
+ #
+ # super {}
+ # ^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#630
+ def visit_forwarding_super_node(node); end
+
+ # $foo &&= bar
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#657
+ def visit_global_variable_and_write_node(node); end
+
+ # $foo += bar
+ # ^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#651
+ def visit_global_variable_operator_write_node(node); end
+
+ # $foo ||= bar
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#663
+ def visit_global_variable_or_write_node(node); end
+
+ # $foo
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#636
+ def visit_global_variable_read_node(node); end
+
+ # $foo, = bar
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#669
+ def visit_global_variable_target_node(node); end
+
+ # $foo = 1
+ # ^^^^^^^^
+ #
+ # $foo, $bar = 1
+ # ^^^^ ^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#645
+ def visit_global_variable_write_node(node); end
+
+ # {}
+ # ^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#675
+ def visit_hash_node(node); end
+
+ # foo => {}
+ # ^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#681
+ def visit_hash_pattern_node(node); end
+
+ # if foo then bar end
+ # ^^^^^^^^^^^^^^^^^^^
+ #
+ # bar if foo
+ # ^^^^^^^^^^
+ #
+ # foo ? bar : baz
+ # ^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#702
+ def visit_if_node(node); end
+
+ # 1i
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#707
+ def visit_imaginary_node(node); end
+
+ # { foo: }
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#713
+ def visit_implicit_node(node); end
+
+ # foo { |bar,| }
+ # ^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#718
+ def visit_implicit_rest_node(node); end
+
+ # case foo; in bar; end
+ # ^^^^^^^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#723
+ def visit_in_node(node); end
+
+ # foo[bar] &&= baz
+ # ^^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#749
+ def visit_index_and_write_node(node); end
+
+ # foo[bar] += baz
+ # ^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#736
+ def visit_index_operator_write_node(node); end
+
+ # foo[bar] ||= baz
+ # ^^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#762
+ def visit_index_or_write_node(node); end
+
+ # foo[bar], = 1
+ # ^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#775
+ def visit_index_target_node(node); end
+
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#805
+ def visit_instance_variable_and_write_node(node); end
+
+ # ^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#799
+ def visit_instance_variable_operator_write_node(node); end
+
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#811
+ def visit_instance_variable_or_write_node(node); end
+
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#784
+ def visit_instance_variable_read_node(node); end
+
+ # @foo, = bar
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#817
+ def visit_instance_variable_target_node(node); end
+
+ # ^^^^^^^^
+ #
+ # @foo, @bar = 1
+ # ^^^^ ^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#793
+ def visit_instance_variable_write_node(node); end
+
+ # 1
+ # ^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#823
+ def visit_integer_node(node); end
+
+ # if /foo #{bar}/ then end
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#829
+ def visit_interpolated_match_last_line_node(node); end
+
+ # /foo #{bar}/
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#846
+ def visit_interpolated_regular_expression_node(node); end
+
+ # "foo #{bar}"
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#861
+ def visit_interpolated_string_node(node); end
+
+ # :"foo #{bar}"
+ # ^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#868
+ def visit_interpolated_symbol_node(node); end
+
+ # `foo #{bar}`
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#875
+ def visit_interpolated_x_string_node(node); end
+
+ # -> { it }
+ # ^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#947
+ def visit_it_local_variable_read_node(node); end
+
+ # foo(bar: baz)
+ # ^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#953
+ def visit_keyword_hash_node(node); end
+
+ # def foo(**bar); end
+ # ^^^^^
+ #
+ # def foo(**); end
+ # ^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#962
+ def visit_keyword_rest_parameter_node(node); end
+
+ # -> {}
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#967
+ def visit_lambda_node(node); end
+
+ # foo &&= bar
+ # ^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1010
+ def visit_local_variable_and_write_node(node); end
+
+ # foo += bar
+ # ^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1004
+ def visit_local_variable_operator_write_node(node); end
+
+ # foo ||= bar
+ # ^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1016
+ def visit_local_variable_or_write_node(node); end
+
+ # foo
+ # ^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#985
+ def visit_local_variable_read_node(node); end
+
+ # foo, = bar
+ # ^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1022
+ def visit_local_variable_target_node(node); end
+
+ # foo = 1
+ # ^^^^^^^
+ #
+ # foo, bar = 1
+ # ^^^ ^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#998
+ def visit_local_variable_write_node(node); end
+
+ # if /foo/ then end
+ # ^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1028
+ def visit_match_last_line_node(node); end
+
+ # foo in bar
+ # ^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1034
+ def visit_match_predicate_node(node); end
+
+ # foo => bar
+ # ^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1040
+ def visit_match_required_node(node); end
+
+ # /(?<foo>foo)/ =~ bar
+ # ^^^^^^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1046
+ def visit_match_write_node(node); end
+
+ # A node that is missing from the syntax tree. This is only used in the
+ # case of a syntax error. The parser gem doesn't have such a concept, so
+ # we invent our own here.
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1053
+ def visit_missing_node(node); end
+
+ # module Foo; end
+ # ^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1059
+ def visit_module_node(node); end
+
+ # foo, bar = baz
+ # ^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1079
+ def visit_multi_target_node(node); end
+
+ # foo, bar = baz
+ # ^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1089
+ def visit_multi_write_node(node); end
+
+ # next
+ # ^^^^
+ #
+ # next foo
+ # ^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1113
+ def visit_next_node(node); end
+
+ # nil
+ # ^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1126
+ def visit_nil_node(node); end
+
+ # def foo(**nil); end
+ # ^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1132
+ def visit_no_keywords_parameter_node(node); end
+
+ # -> { _1 + _2 }
+ # ^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1138
+ def visit_numbered_parameters_node(node); end
+
+ # $1
+ # ^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1144
+ def visit_numbered_reference_read_node(node); end
+
+ # def foo(bar: baz); end
+ # ^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1150
+ def visit_optional_keyword_parameter_node(node); end
+
+ # def foo(bar = 1); end
+ # ^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1156
+ def visit_optional_parameter_node(node); end
+
+ # a or b
+ # ^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1162
+ def visit_or_node(node); end
+
+ # def foo(bar, *baz); end
+ # ^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1180
+ def visit_parameters_node(node); end
+
+ # ()
+ # ^^
+ #
+ # (1)
+ # ^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1218
+ def visit_parentheses_node(node); end
+
+ # foo => ^(bar)
+ # ^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1228
+ def visit_pinned_expression_node(node); end
+
+ # foo = 1 and bar => ^foo
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1234
+ def visit_pinned_variable_node(node); end
+
+ # END {}
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1243
+ def visit_post_execution_node(node); end
+
+ # BEGIN {}
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1248
+ def visit_pre_execution_node(node); end
+
+ # The top-level program node.
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1253
+ def visit_program_node(node); end
+
+ # 0..5
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1259
+ def visit_range_node(node); end
+
+ # 1r
+ # ^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1281
+ def visit_rational_node(node); end
+
+ # redo
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1287
+ def visit_redo_node(node); end
+
+ # /foo/
+ # ^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1293
+ def visit_regular_expression_node(node); end
+
+ # def foo(bar:); end
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1299
+ def visit_required_keyword_parameter_node(node); end
+
+ # def foo(bar); end
+ # ^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1305
+ def visit_required_parameter_node(node); end
+
+ # foo rescue bar
+ # ^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1311
+ def visit_rescue_modifier_node(node); end
+
+ # begin; rescue; end
+ # ^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1317
+ def visit_rescue_node(node); end
+
+ # def foo(*bar); end
+ # ^^^^
+ #
+ # def foo(*); end
+ # ^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1337
+ def visit_rest_parameter_node(node); end
+
+ # retry
+ # ^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1343
+ def visit_retry_node(node); end
+
+ # return
+ # ^^^^^^
+ #
+ # return 1
+ # ^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1352
+ def visit_return_node(node); end
+
+ # self
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1365
+ def visit_self_node(node); end
+
+ # A shareable constant.
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1370
+ def visit_shareable_constant_node(node); end
+
+ # class << self; end
+ # ^^^^^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1376
+ def visit_singleton_class_node(node); end
+
+ # __ENCODING__
+ # ^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1384
+ def visit_source_encoding_node(node); end
+
+ # __FILE__
+ # ^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1391
+ def visit_source_file_node(node); end
+
+ # __LINE__
+ # ^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1397
+ def visit_source_line_node(node); end
+
+ # foo(*bar)
+ # ^^^^
+ #
+ # def foo((bar, *baz)); end
+ # ^^^^
+ #
+ # def foo(*); bar(*); end
+ # ^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1409
+ def visit_splat_node(node); end
+
+ # A list of statements.
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1418
+ def visit_statements_node(node); end
+
+ # "foo"
+ # ^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1430
+ def visit_string_node(node); end
+
+ # super(foo)
+ # ^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1436
+ def visit_super_node(node); end
+
+ # :foo
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1450
+ def visit_symbol_node(node); end
+
+ # true
+ # ^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1456
+ def visit_true_node(node); end
+
+ # undef foo
+ # ^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1462
+ def visit_undef_node(node); end
+
+ # unless foo; bar end
+ # ^^^^^^^^^^^^^^^^^^^
+ #
+ # bar unless foo
+ # ^^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1472
+ def visit_unless_node(node); end
+
+ # until foo; bar end
+ # ^^^^^^^^^^^^^^^^^
+ #
+ # bar until foo
+ # ^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1481
+ def visit_until_node(node); end
+
+ # case foo; when bar; end
+ # ^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1487
+ def visit_when_node(node); end
+
+ # while foo; bar end
+ # ^^^^^^^^^^^^^^^^^^
+ #
+ # bar while foo
+ # ^^^^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1496
+ def visit_while_node(node); end
+
+ # `foo`
+ # ^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1502
+ def visit_x_string_node(node); end
+
+ # yield
+ # ^^^^^
+ #
+ # yield 1
+ # ^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1518
+ def visit_yield_node(node); end
+
+ private
+
+ # If a class variable is written within a method definition, it has a
+ # different type than everywhere else.
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#420
+ def class_variable_write_type; end
+
+ # Create a new compiler with the given options.
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1525
+ def copy_compiler(in_def: T.unsafe(nil), in_pattern: T.unsafe(nil)); end
+
+ # Call nodes with operators following them will either be op_asgn or
+ # op_asgn2 nodes. That is determined by their call operator and their
+ # right-hand side.
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#325
+ def op_asgn?(node); end
+
+ # Call nodes with operators following them can use &. as an operator,
+ # which changes their type by prefixing "safe_".
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#331
+ def op_asgn_type(node, type); end
+
+ # Create a new Sexp object from the given prism node and arguments.
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1530
+ def s(node, *arguments); end
+
+ # Visit a block node, which will modify the AST by wrapping the given
+ # visited node in an iter node.
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1540
+ def visit_block(node, sexp, block); end
+
+ # def foo((bar, baz)); end
+ # ^^^^^^^^^^
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1195
+ def visit_destructured_parameter(node); end
+
+ # Visit the interpolated content of the string-like node.
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#882
+ def visit_interpolated_parts(parts); end
+
+ # Pattern constants get wrapped in another layer of :const.
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1561
+ def visit_pattern_constant(node); end
+
+ # If the bounds of a range node are empty parentheses, then they do not
+ # get replaced by their usual s(:nil), but instead are s(:begin).
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1271
+ def visit_range_bounds_node(node); end
+
+ # Visit the value of a write, which will be on the right-hand side of
+ # a write operator. Because implicit arrays can have splats, those could
+ # potentially be wrapped in an svalue node.
+ #
+ # source://prism//lib/prism/translation/ruby_parser.rb#1575
+ def visit_write_value(node); end
+end
+
+# Represents the use of the literal `true` keyword.
+#
+# true
+# ^^^^
+#
+# source://prism//lib/prism/node.rb#15704
+class Prism::TrueNode < ::Prism::Node
+ # Initialize a new TrueNode node.
+ #
+ # @return [TrueNode] a new instance of TrueNode
+ #
+ # source://prism//lib/prism/node.rb#15706
+ def initialize(source, node_id, location, flags); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#15763
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#15714
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#15719
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#15729
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#15724
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer) -> TrueNode
+ #
+ # source://prism//lib/prism/node.rb#15734
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#15719
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location }
+ #
+ # source://prism//lib/prism/node.rb#15742
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#15747
+ sig { override.returns(String) }
+ def inspect; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#15752
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#15757
+ def type; end
+ end
+end
+
+# Represents the use of the `undef` keyword.
+#
+# undef :foo, :bar, :baz
+# ^^^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#15772
+class Prism::UndefNode < ::Prism::Node
+ # Initialize a new UndefNode node.
+ #
+ # @return [UndefNode] a new instance of UndefNode
+ #
+ # source://prism//lib/prism/node.rb#15774
+ def initialize(source, node_id, location, flags, names, keyword_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#15848
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#15784
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#15789
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#15799
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#15794
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?names: Array[SymbolNode | InterpolatedSymbolNode], ?keyword_loc: Location) -> UndefNode
+ #
+ # source://prism//lib/prism/node.rb#15804
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), names: T.unsafe(nil), keyword_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#15789
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, names: Array[SymbolNode | InterpolatedSymbolNode], keyword_loc: Location }
+ #
+ # source://prism//lib/prism/node.rb#15812
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#15832
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#15827
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#15820
+ def keyword_loc; end
+
+ # attr_reader names: Array[SymbolNode | InterpolatedSymbolNode]
+ #
+ # source://prism//lib/prism/node.rb#15817
+ def names; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#15837
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#15842
+ def type; end
+ end
+end
+
+# Represents the use of the `unless` keyword, either in the block form or the modifier form.
+#
+# bar unless foo
+# ^^^^^^^^^^^^^^
+#
+# unless foo then bar end
+# ^^^^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#15863
+class Prism::UnlessNode < ::Prism::Node
+ # Initialize a new UnlessNode node.
+ #
+ # @return [UnlessNode] a new instance of UnlessNode
+ #
+ # source://prism//lib/prism/node.rb#15865
+ def initialize(source, node_id, location, flags, keyword_loc, predicate, then_keyword_loc, statements, else_clause, end_keyword_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#16014
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#15879
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#15884
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#15898
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#15889
+ def compact_child_nodes; end
+
+ # Returns the else clause of the unless node. This method is deprecated in
+ # favor of #else_clause.
+ #
+ # source://prism//lib/prism/node_ext.rb#503
+ def consequent; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?predicate: Prism::node, ?then_keyword_loc: Location?, ?statements: StatementsNode?, ?else_clause: ElseNode?, ?end_keyword_loc: Location?) -> UnlessNode
+ #
+ # source://prism//lib/prism/node.rb#15903
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), keyword_loc: T.unsafe(nil), predicate: T.unsafe(nil), then_keyword_loc: T.unsafe(nil), statements: T.unsafe(nil), else_clause: T.unsafe(nil), end_keyword_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#15884
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, keyword_loc: Location, predicate: Prism::node, then_keyword_loc: Location?, statements: StatementsNode?, else_clause: ElseNode?, end_keyword_loc: Location? }
+ #
+ # source://prism//lib/prism/node.rb#15911
+ def deconstruct_keys(keys); end
+
+ # The else clause of the unless expression, if present.
+ #
+ # unless cond then bar else baz end
+ # ^^^^^^^^
+ #
+ # source://prism//lib/prism/node.rb#15964
+ def else_clause; end
+
+ # def end_keyword: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#15993
+ def end_keyword; end
+
+ # The location of the `end` keyword, if present.
+ #
+ # unless cond then bar end
+ # ^^^
+ #
+ # source://prism//lib/prism/node.rb#15970
+ def end_keyword_loc; end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#15998
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#15983
+ def keyword; end
+
+ # The location of the `unless` keyword.
+ #
+ # unless cond then bar end
+ # ^^^^^^
+ #
+ # bar unless cond
+ # ^^^^^^
+ #
+ # source://prism//lib/prism/node.rb#15922
+ def keyword_loc; end
+
+ # source://prism//lib/prism/parse_result/newlines.rb#97
+ def newline_flag!(lines); end
+
+ # The condition to be evaluated for the unless expression. It can be any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
+ #
+ # unless cond then bar end
+ # ^^^^
+ #
+ # bar unless cond
+ # ^^^^
+ #
+ # source://prism//lib/prism/node.rb#15935
+ def predicate; end
+
+ # The body of statements that will executed if the unless condition is
+ # falsey. Will be `nil` if no body is provided.
+ #
+ # unless cond then bar end
+ # ^^^
+ #
+ # source://prism//lib/prism/node.rb#15958
+ def statements; end
+
+ # def then_keyword: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#15988
+ def then_keyword; end
+
+ # The location of the `then` keyword, if present.
+ #
+ # unless cond then bar end
+ # ^^^^
+ #
+ # source://prism//lib/prism/node.rb#15941
+ def then_keyword_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#16003
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#16008
+ def type; end
+ end
+end
+
+# Represents the use of the `until` keyword, either in the block form or the modifier form.
+#
+# bar until foo
+# ^^^^^^^^^^^^^
+#
+# until foo do bar end
+# ^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#16032
+class Prism::UntilNode < ::Prism::Node
+ # Initialize a new UntilNode node.
+ #
+ # @return [UntilNode] a new instance of UntilNode
+ #
+ # source://prism//lib/prism/node.rb#16034
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ keyword_loc: Prism::Location,
+ closing_loc: T.nilable(Prism::Location),
+ predicate: Prism::Node,
+ statements: T.nilable(Prism::StatementsNode)
+ ).void
+ end
+ def initialize(source, node_id, location, flags, keyword_loc, closing_loc, predicate, statements); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#16139
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#16046
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def begin_modifier?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#16082
+ sig { returns(T::Boolean) }
+ def begin_modifier?; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#16051
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#16118
+ sig { returns(T.nilable(String)) }
+ def closing; end
+
+ # attr_reader closing_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#16094
+ sig { returns(T.nilable(Prism::Location)) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#16064
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#16056
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?closing_loc: Location?, ?predicate: Prism::node, ?statements: StatementsNode?) -> UntilNode
+ #
+ # source://prism//lib/prism/node.rb#16069
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ keyword_loc: Prism::Location,
+ closing_loc: T.nilable(Prism::Location),
+ predicate: Prism::Node,
+ statements: T.nilable(Prism::StatementsNode)
+ ).returns(Prism::UntilNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), keyword_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), predicate: T.unsafe(nil), statements: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#16051
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, keyword_loc: Location, closing_loc: Location?, predicate: Prism::node, statements: StatementsNode? }
+ #
+ # source://prism//lib/prism/node.rb#16077
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#16123
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#16113
+ sig { returns(String) }
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#16087
+ sig { returns(Prism::Location) }
+ def keyword_loc; end
+
+ # source://prism//lib/prism/parse_result/newlines.rb#103
+ def newline_flag!(lines); end
+
+ # attr_reader predicate: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#16107
+ sig { returns(Prism::Node) }
+ def predicate; end
+
+ # attr_reader statements: StatementsNode?
+ #
+ # source://prism//lib/prism/node.rb#16110
+ sig { returns(T.nilable(Prism::StatementsNode)) }
+ def statements; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#16128
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#16133
+ def type; end
+ end
+end
+
+# The version constant is set by reading the result of calling pm_version.
+Prism::VERSION = T.let(T.unsafe(nil), String)
+
+# A visitor is a class that provides a default implementation for every accept
+# method defined on the nodes. This means it can walk a tree without the
+# caller needing to define any special handling. This allows you to handle a
+# subset of the tree, while still walking the whole tree.
+#
+# For example, to find all of the method calls that call the `foo` method, you
+# could write:
+#
+# class FooCalls < Prism::Visitor
+# def visit_call_node(node)
+# if node.name == "foo"
+# # Do something with the node
+# end
+#
+# # Call super so that the visitor continues walking the tree
+# super
+# end
+# end
+#
+# source://prism//lib/prism/visitor.rb#54
+class Prism::Visitor < ::Prism::BasicVisitor
+ # Visit a AliasGlobalVariableNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::AliasGlobalVariableNode).void }
+ def visit_alias_global_variable_node(node); end
+
+ # Visit a AliasMethodNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::AliasMethodNode).void }
+ def visit_alias_method_node(node); end
+
+ # Visit a AlternationPatternNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::AlternationPatternNode).void }
+ def visit_alternation_pattern_node(node); end
+
+ # Visit a AndNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::AndNode).void }
+ def visit_and_node(node); end
+
+ # Visit a ArgumentsNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ArgumentsNode).void }
+ def visit_arguments_node(node); end
+
+ # Visit a ArrayNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ArrayNode).void }
+ def visit_array_node(node); end
+
+ # Visit a ArrayPatternNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ArrayPatternNode).void }
+ def visit_array_pattern_node(node); end
+
+ # Visit a AssocNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::AssocNode).void }
+ def visit_assoc_node(node); end
+
+ # Visit a AssocSplatNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::AssocSplatNode).void }
+ def visit_assoc_splat_node(node); end
+
+ # Visit a BackReferenceReadNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::BackReferenceReadNode).void }
+ def visit_back_reference_read_node(node); end
+
+ # Visit a BeginNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::BeginNode).void }
+ def visit_begin_node(node); end
+
+ # Visit a BlockArgumentNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::BlockArgumentNode).void }
+ def visit_block_argument_node(node); end
+
+ # Visit a BlockLocalVariableNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::BlockLocalVariableNode).void }
+ def visit_block_local_variable_node(node); end
+
+ # Visit a BlockNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::BlockNode).void }
+ def visit_block_node(node); end
+
+ # Visit a BlockParameterNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::BlockParameterNode).void }
+ def visit_block_parameter_node(node); end
+
+ # Visit a BlockParametersNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::BlockParametersNode).void }
+ def visit_block_parameters_node(node); end
+
+ # Visit a BreakNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::BreakNode).void }
+ def visit_break_node(node); end
+
+ # Visit a CallAndWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::CallAndWriteNode).void }
+ def visit_call_and_write_node(node); end
+
+ # Visit a CallNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::CallNode).void }
+ def visit_call_node(node); end
+
+ # Visit a CallOperatorWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::CallOperatorWriteNode).void }
+ def visit_call_operator_write_node(node); end
+
+ # Visit a CallOrWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::CallOrWriteNode).void }
+ def visit_call_or_write_node(node); end
+
+ # Visit a CallTargetNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::CallTargetNode).void }
+ def visit_call_target_node(node); end
+
+ # Visit a CapturePatternNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::CapturePatternNode).void }
+ def visit_capture_pattern_node(node); end
+
+ # Visit a CaseMatchNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::CaseMatchNode).void }
+ def visit_case_match_node(node); end
+
+ # Visit a CaseNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::CaseNode).void }
+ def visit_case_node(node); end
+
+ # Visit a ClassNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ClassNode).void }
+ def visit_class_node(node); end
+
+ # Visit a ClassVariableAndWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ClassVariableAndWriteNode).void }
+ def visit_class_variable_and_write_node(node); end
+
+ # Visit a ClassVariableOperatorWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ClassVariableOperatorWriteNode).void }
+ def visit_class_variable_operator_write_node(node); end
+
+ # Visit a ClassVariableOrWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ClassVariableOrWriteNode).void }
+ def visit_class_variable_or_write_node(node); end
+
+ # Visit a ClassVariableReadNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ClassVariableReadNode).void }
+ def visit_class_variable_read_node(node); end
+
+ # Visit a ClassVariableTargetNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ClassVariableTargetNode).void }
+ def visit_class_variable_target_node(node); end
+
+ # Visit a ClassVariableWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ClassVariableWriteNode).void }
+ def visit_class_variable_write_node(node); end
+
+ # Visit a ConstantAndWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ConstantAndWriteNode).void }
+ def visit_constant_and_write_node(node); end
+
+ # Visit a ConstantOperatorWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ConstantOperatorWriteNode).void }
+ def visit_constant_operator_write_node(node); end
+
+ # Visit a ConstantOrWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ConstantOrWriteNode).void }
+ def visit_constant_or_write_node(node); end
+
+ # Visit a ConstantPathAndWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ConstantPathAndWriteNode).void }
+ def visit_constant_path_and_write_node(node); end
+
+ # Visit a ConstantPathNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ConstantPathNode).void }
+ def visit_constant_path_node(node); end
+
+ # Visit a ConstantPathOperatorWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ConstantPathOperatorWriteNode).void }
+ def visit_constant_path_operator_write_node(node); end
+
+ # Visit a ConstantPathOrWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ConstantPathOrWriteNode).void }
+ def visit_constant_path_or_write_node(node); end
+
+ # Visit a ConstantPathTargetNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ConstantPathTargetNode).void }
+ def visit_constant_path_target_node(node); end
+
+ # Visit a ConstantPathWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ConstantPathWriteNode).void }
+ def visit_constant_path_write_node(node); end
+
+ # Visit a ConstantReadNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ConstantReadNode).void }
+ def visit_constant_read_node(node); end
+
+ # Visit a ConstantTargetNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ConstantTargetNode).void }
+ def visit_constant_target_node(node); end
+
+ # Visit a ConstantWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ConstantWriteNode).void }
+ def visit_constant_write_node(node); end
+
+ # Visit a DefNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::DefNode).void }
+ def visit_def_node(node); end
+
+ # Visit a DefinedNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::DefinedNode).void }
+ def visit_defined_node(node); end
+
+ # Visit a ElseNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ElseNode).void }
+ def visit_else_node(node); end
+
+ # Visit a EmbeddedStatementsNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::EmbeddedStatementsNode).void }
+ def visit_embedded_statements_node(node); end
+
+ # Visit a EmbeddedVariableNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::EmbeddedVariableNode).void }
+ def visit_embedded_variable_node(node); end
+
+ # Visit a EnsureNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::EnsureNode).void }
+ def visit_ensure_node(node); end
+
+ # Visit a FalseNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::FalseNode).void }
+ def visit_false_node(node); end
+
+ # Visit a FindPatternNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::FindPatternNode).void }
+ def visit_find_pattern_node(node); end
+
+ # Visit a FlipFlopNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::FlipFlopNode).void }
+ def visit_flip_flop_node(node); end
+
+ # Visit a FloatNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::FloatNode).void }
+ def visit_float_node(node); end
+
+ # Visit a ForNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ForNode).void }
+ def visit_for_node(node); end
+
+ # Visit a ForwardingArgumentsNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ForwardingArgumentsNode).void }
+ def visit_forwarding_arguments_node(node); end
+
+ # Visit a ForwardingParameterNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ForwardingParameterNode).void }
+ def visit_forwarding_parameter_node(node); end
+
+ # Visit a ForwardingSuperNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ForwardingSuperNode).void }
+ def visit_forwarding_super_node(node); end
+
+ # Visit a GlobalVariableAndWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::GlobalVariableAndWriteNode).void }
+ def visit_global_variable_and_write_node(node); end
+
+ # Visit a GlobalVariableOperatorWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::GlobalVariableOperatorWriteNode).void }
+ def visit_global_variable_operator_write_node(node); end
+
+ # Visit a GlobalVariableOrWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::GlobalVariableOrWriteNode).void }
+ def visit_global_variable_or_write_node(node); end
+
+ # Visit a GlobalVariableReadNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::GlobalVariableReadNode).void }
+ def visit_global_variable_read_node(node); end
+
+ # Visit a GlobalVariableTargetNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::GlobalVariableTargetNode).void }
+ def visit_global_variable_target_node(node); end
+
+ # Visit a GlobalVariableWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::GlobalVariableWriteNode).void }
+ def visit_global_variable_write_node(node); end
+
+ # Visit a HashNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::HashNode).void }
+ def visit_hash_node(node); end
+
+ # Visit a HashPatternNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::HashPatternNode).void }
+ def visit_hash_pattern_node(node); end
+
+ # Visit a IfNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::IfNode).void }
+ def visit_if_node(node); end
+
+ # Visit a ImaginaryNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ImaginaryNode).void }
+ def visit_imaginary_node(node); end
+
+ # Visit a ImplicitNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ImplicitNode).void }
+ def visit_implicit_node(node); end
+
+ # Visit a ImplicitRestNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ImplicitRestNode).void }
+ def visit_implicit_rest_node(node); end
+
+ # Visit a InNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::InNode).void }
+ def visit_in_node(node); end
+
+ # Visit a IndexAndWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::IndexAndWriteNode).void }
+ def visit_index_and_write_node(node); end
+
+ # Visit a IndexOperatorWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::IndexOperatorWriteNode).void }
+ def visit_index_operator_write_node(node); end
+
+ # Visit a IndexOrWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::IndexOrWriteNode).void }
+ def visit_index_or_write_node(node); end
+
+ # Visit a IndexTargetNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::IndexTargetNode).void }
+ def visit_index_target_node(node); end
+
+ # Visit a InstanceVariableAndWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::InstanceVariableAndWriteNode).void }
+ def visit_instance_variable_and_write_node(node); end
+
+ # Visit a InstanceVariableOperatorWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::InstanceVariableOperatorWriteNode).void }
+ def visit_instance_variable_operator_write_node(node); end
+
+ # Visit a InstanceVariableOrWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::InstanceVariableOrWriteNode).void }
+ def visit_instance_variable_or_write_node(node); end
+
+ # Visit a InstanceVariableReadNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::InstanceVariableReadNode).void }
+ def visit_instance_variable_read_node(node); end
+
+ # Visit a InstanceVariableTargetNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::InstanceVariableTargetNode).void }
+ def visit_instance_variable_target_node(node); end
+
+ # Visit a InstanceVariableWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::InstanceVariableWriteNode).void }
+ def visit_instance_variable_write_node(node); end
+
+ # Visit a IntegerNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::IntegerNode).void }
+ def visit_integer_node(node); end
+
+ # Visit a InterpolatedMatchLastLineNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::InterpolatedMatchLastLineNode).void }
+ def visit_interpolated_match_last_line_node(node); end
+
+ # Visit a InterpolatedRegularExpressionNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::InterpolatedRegularExpressionNode).void }
+ def visit_interpolated_regular_expression_node(node); end
+
+ # Visit a InterpolatedStringNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::InterpolatedStringNode).void }
+ def visit_interpolated_string_node(node); end
+
+ # Visit a InterpolatedSymbolNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::InterpolatedSymbolNode).void }
+ def visit_interpolated_symbol_node(node); end
+
+ # Visit a InterpolatedXStringNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::InterpolatedXStringNode).void }
+ def visit_interpolated_x_string_node(node); end
+
+ # Visit a ItLocalVariableReadNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ItLocalVariableReadNode).void }
+ def visit_it_local_variable_read_node(node); end
+
+ # Visit a ItParametersNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ItParametersNode).void }
+ def visit_it_parameters_node(node); end
+
+ # Visit a KeywordHashNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::KeywordHashNode).void }
+ def visit_keyword_hash_node(node); end
+
+ # Visit a KeywordRestParameterNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::KeywordRestParameterNode).void }
+ def visit_keyword_rest_parameter_node(node); end
+
+ # Visit a LambdaNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::LambdaNode).void }
+ def visit_lambda_node(node); end
+
+ # Visit a LocalVariableAndWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::LocalVariableAndWriteNode).void }
+ def visit_local_variable_and_write_node(node); end
+
+ # Visit a LocalVariableOperatorWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::LocalVariableOperatorWriteNode).void }
+ def visit_local_variable_operator_write_node(node); end
+
+ # Visit a LocalVariableOrWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::LocalVariableOrWriteNode).void }
+ def visit_local_variable_or_write_node(node); end
+
+ # Visit a LocalVariableReadNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::LocalVariableReadNode).void }
+ def visit_local_variable_read_node(node); end
+
+ # Visit a LocalVariableTargetNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::LocalVariableTargetNode).void }
+ def visit_local_variable_target_node(node); end
+
+ # Visit a LocalVariableWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::LocalVariableWriteNode).void }
+ def visit_local_variable_write_node(node); end
+
+ # Visit a MatchLastLineNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::MatchLastLineNode).void }
+ def visit_match_last_line_node(node); end
+
+ # Visit a MatchPredicateNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::MatchPredicateNode).void }
+ def visit_match_predicate_node(node); end
+
+ # Visit a MatchRequiredNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::MatchRequiredNode).void }
+ def visit_match_required_node(node); end
+
+ # Visit a MatchWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::MatchWriteNode).void }
+ def visit_match_write_node(node); end
+
+ # Visit a MissingNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::MissingNode).void }
+ def visit_missing_node(node); end
+
+ # Visit a ModuleNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ModuleNode).void }
+ def visit_module_node(node); end
+
+ # Visit a MultiTargetNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::MultiTargetNode).void }
+ def visit_multi_target_node(node); end
+
+ # Visit a MultiWriteNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::MultiWriteNode).void }
+ def visit_multi_write_node(node); end
+
+ # Visit a NextNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::NextNode).void }
+ def visit_next_node(node); end
+
+ # Visit a NilNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::NilNode).void }
+ def visit_nil_node(node); end
+
+ # Visit a NoKeywordsParameterNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::NoKeywordsParameterNode).void }
+ def visit_no_keywords_parameter_node(node); end
+
+ # Visit a NumberedParametersNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::NumberedParametersNode).void }
+ def visit_numbered_parameters_node(node); end
+
+ # Visit a NumberedReferenceReadNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::NumberedReferenceReadNode).void }
+ def visit_numbered_reference_read_node(node); end
+
+ # Visit a OptionalKeywordParameterNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::OptionalKeywordParameterNode).void }
+ def visit_optional_keyword_parameter_node(node); end
+
+ # Visit a OptionalParameterNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::OptionalParameterNode).void }
+ def visit_optional_parameter_node(node); end
+
+ # Visit a OrNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::OrNode).void }
+ def visit_or_node(node); end
+
+ # Visit a ParametersNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ParametersNode).void }
+ def visit_parameters_node(node); end
+
+ # Visit a ParenthesesNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ParenthesesNode).void }
+ def visit_parentheses_node(node); end
+
+ # Visit a PinnedExpressionNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::PinnedExpressionNode).void }
+ def visit_pinned_expression_node(node); end
+
+ # Visit a PinnedVariableNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::PinnedVariableNode).void }
+ def visit_pinned_variable_node(node); end
+
+ # Visit a PostExecutionNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::PostExecutionNode).void }
+ def visit_post_execution_node(node); end
+
+ # Visit a PreExecutionNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::PreExecutionNode).void }
+ def visit_pre_execution_node(node); end
+
+ # Visit a ProgramNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ProgramNode).void }
+ def visit_program_node(node); end
+
+ # Visit a RangeNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::RangeNode).void }
+ def visit_range_node(node); end
+
+ # Visit a RationalNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::RationalNode).void }
+ def visit_rational_node(node); end
+
+ # Visit a RedoNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::RedoNode).void }
+ def visit_redo_node(node); end
+
+ # Visit a RegularExpressionNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::RegularExpressionNode).void }
+ def visit_regular_expression_node(node); end
+
+ # Visit a RequiredKeywordParameterNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::RequiredKeywordParameterNode).void }
+ def visit_required_keyword_parameter_node(node); end
+
+ # Visit a RequiredParameterNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::RequiredParameterNode).void }
+ def visit_required_parameter_node(node); end
+
+ # Visit a RescueModifierNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::RescueModifierNode).void }
+ def visit_rescue_modifier_node(node); end
+
+ # Visit a RescueNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::RescueNode).void }
+ def visit_rescue_node(node); end
+
+ # Visit a RestParameterNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::RestParameterNode).void }
+ def visit_rest_parameter_node(node); end
+
+ # Visit a RetryNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::RetryNode).void }
+ def visit_retry_node(node); end
+
+ # Visit a ReturnNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ReturnNode).void }
+ def visit_return_node(node); end
+
+ # Visit a SelfNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::SelfNode).void }
+ def visit_self_node(node); end
+
+ # Visit a ShareableConstantNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::ShareableConstantNode).void }
+ def visit_shareable_constant_node(node); end
+
+ # Visit a SingletonClassNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::SingletonClassNode).void }
+ def visit_singleton_class_node(node); end
+
+ # Visit a SourceEncodingNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::SourceEncodingNode).void }
+ def visit_source_encoding_node(node); end
+
+ # Visit a SourceFileNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::SourceFileNode).void }
+ def visit_source_file_node(node); end
+
+ # Visit a SourceLineNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::SourceLineNode).void }
+ def visit_source_line_node(node); end
+
+ # Visit a SplatNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::SplatNode).void }
+ def visit_splat_node(node); end
+
+ # Visit a StatementsNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::StatementsNode).void }
+ def visit_statements_node(node); end
+
+ # Visit a StringNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::StringNode).void }
+ def visit_string_node(node); end
+
+ # Visit a SuperNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::SuperNode).void }
+ def visit_super_node(node); end
+
+ # Visit a SymbolNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::SymbolNode).void }
+ def visit_symbol_node(node); end
+
+ # Visit a TrueNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::TrueNode).void }
+ def visit_true_node(node); end
+
+ # Visit a UndefNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::UndefNode).void }
+ def visit_undef_node(node); end
+
+ # Visit a UnlessNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::UnlessNode).void }
+ def visit_unless_node(node); end
+
+ # Visit a UntilNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::UntilNode).void }
+ def visit_until_node(node); end
+
+ # Visit a WhenNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::WhenNode).void }
+ def visit_when_node(node); end
+
+ # Visit a WhileNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::WhileNode).void }
+ def visit_while_node(node); end
+
+ # Visit a XStringNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::XStringNode).void }
+ def visit_x_string_node(node); end
+
+ # Visit a YieldNode node
+ #
+ # source://prism//lib/prism/visitor.rb#29
+ sig { params(node: Prism::YieldNode).void }
+ def visit_yield_node(node); end
+end
+
+# Represents the use of the `when` keyword within a case statement.
+#
+# case true
+# when true
+# ^^^^^^^^^
+# end
+#
+# source://prism//lib/prism/node.rb#16155
+class Prism::WhenNode < ::Prism::Node
+ # Initialize a new WhenNode node.
+ #
+ # @return [WhenNode] a new instance of WhenNode
+ #
+ # source://prism//lib/prism/node.rb#16157
+ def initialize(source, node_id, location, flags, keyword_loc, conditions, then_keyword_loc, statements); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#16257
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#16169
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#16174
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#16187
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#16179
+ def compact_child_nodes; end
+
+ # attr_reader conditions: Array[Prism::node]
+ #
+ # source://prism//lib/prism/node.rb#16212
+ def conditions; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?conditions: Array[Prism::node], ?then_keyword_loc: Location?, ?statements: StatementsNode?) -> WhenNode
+ #
+ # source://prism//lib/prism/node.rb#16192
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), keyword_loc: T.unsafe(nil), conditions: T.unsafe(nil), then_keyword_loc: T.unsafe(nil), statements: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#16174
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, keyword_loc: Location, conditions: Array[Prism::node], then_keyword_loc: Location?, statements: StatementsNode? }
+ #
+ # source://prism//lib/prism/node.rb#16200
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#16241
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#16231
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#16205
+ def keyword_loc; end
+
+ # attr_reader statements: StatementsNode?
+ #
+ # source://prism//lib/prism/node.rb#16228
+ def statements; end
+
+ # def then_keyword: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#16236
+ def then_keyword; end
+
+ # attr_reader then_keyword_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#16215
+ def then_keyword_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#16246
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#16251
+ def type; end
+ end
+end
+
+# Represents the use of the `while` keyword, either in the block form or the modifier form.
+#
+# bar while foo
+# ^^^^^^^^^^^^^
+#
+# while foo do bar end
+# ^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism//lib/prism/node.rb#16274
+class Prism::WhileNode < ::Prism::Node
+ # Initialize a new WhileNode node.
+ #
+ # @return [WhileNode] a new instance of WhileNode
+ #
+ # source://prism//lib/prism/node.rb#16276
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ keyword_loc: Prism::Location,
+ closing_loc: T.nilable(Prism::Location),
+ predicate: Prism::Node,
+ statements: T.nilable(Prism::StatementsNode)
+ ).void
+ end
+ def initialize(source, node_id, location, flags, keyword_loc, closing_loc, predicate, statements); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#16381
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#16288
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def begin_modifier?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#16324
+ sig { returns(T::Boolean) }
+ def begin_modifier?; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#16293
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#16360
+ sig { returns(T.nilable(String)) }
+ def closing; end
+
+ # attr_reader closing_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#16336
+ sig { returns(T.nilable(Prism::Location)) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#16306
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#16298
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?closing_loc: Location?, ?predicate: Prism::node, ?statements: StatementsNode?) -> WhileNode
+ #
+ # source://prism//lib/prism/node.rb#16311
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ keyword_loc: Prism::Location,
+ closing_loc: T.nilable(Prism::Location),
+ predicate: Prism::Node,
+ statements: T.nilable(Prism::StatementsNode)
+ ).returns(Prism::WhileNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), keyword_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), predicate: T.unsafe(nil), statements: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#16293
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, keyword_loc: Location, closing_loc: Location?, predicate: Prism::node, statements: StatementsNode? }
+ #
+ # source://prism//lib/prism/node.rb#16319
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#16365
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#16355
+ sig { returns(String) }
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#16329
+ sig { returns(Prism::Location) }
+ def keyword_loc; end
+
+ # source://prism//lib/prism/parse_result/newlines.rb#109
+ def newline_flag!(lines); end
+
+ # attr_reader predicate: Prism::node
+ #
+ # source://prism//lib/prism/node.rb#16349
+ sig { returns(Prism::Node) }
+ def predicate; end
+
+ # attr_reader statements: StatementsNode?
+ #
+ # source://prism//lib/prism/node.rb#16352
+ sig { returns(T.nilable(Prism::StatementsNode)) }
+ def statements; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#16370
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#16375
+ def type; end
+ end
+end
+
+# Represents an xstring literal with no interpolation.
+#
+# `foo`
+# ^^^^^
+#
+# source://prism//lib/prism/node.rb#16395
+class Prism::XStringNode < ::Prism::Node
+ include ::Prism::HeredocQuery
+
+ # Initialize a new XStringNode node.
+ #
+ # @return [XStringNode] a new instance of XStringNode
+ #
+ # source://prism//lib/prism/node.rb#16397
+ sig do
+ params(
+ source: Prism::Source,
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: Prism::Location,
+ content_loc: Prism::Location,
+ closing_loc: Prism::Location,
+ unescaped: String
+ ).void
+ end
+ def initialize(source, node_id, location, flags, opening_loc, content_loc, closing_loc, unescaped); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#16507
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#16409
+ sig { override.params(visitor: Prism::Visitor).returns(T.untyped) }
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#16414
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism//lib/prism/node.rb#16486
+ sig { returns(String) }
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#16466
+ sig { returns(Prism::Location) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#16424
+ sig { override.returns(T::Array[T.any(Prism::Node, Prism::Location)]) }
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#16419
+ sig { override.returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # def content: () -> String
+ #
+ # source://prism//lib/prism/node.rb#16481
+ sig { returns(String) }
+ def content; end
+
+ # attr_reader content_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#16459
+ sig { returns(Prism::Location) }
+ def content_loc; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?opening_loc: Location, ?content_loc: Location, ?closing_loc: Location, ?unescaped: String) -> XStringNode
+ #
+ # source://prism//lib/prism/node.rb#16429
+ sig do
+ params(
+ node_id: Integer,
+ location: Prism::Location,
+ flags: Integer,
+ opening_loc: Prism::Location,
+ content_loc: Prism::Location,
+ closing_loc: Prism::Location,
+ unescaped: String
+ ).returns(Prism::XStringNode)
+ end
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), opening_loc: T.unsafe(nil), content_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), unescaped: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#16414
+ sig { override.returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String }
+ #
+ # source://prism//lib/prism/node.rb#16437
+ sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) }
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def forced_binary_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#16447
+ sig { returns(T::Boolean) }
+ def forced_binary_encoding?; end
+
+ # def forced_utf8_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism//lib/prism/node.rb#16442
+ sig { returns(T::Boolean) }
+ def forced_utf8_encoding?; end
+
+ sig { returns(T::Boolean) }
+ def heredoc?; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#16491
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def opening: () -> String
+ #
+ # source://prism//lib/prism/node.rb#16476
+ sig { returns(String) }
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#16452
+ sig { returns(Prism::Location) }
+ def opening_loc; end
+
+ # Occasionally it's helpful to treat a string as if it were interpolated so
+ # that there's a consistent interface for working with strings.
+ #
+ # source://prism//lib/prism/node_ext.rb#90
+ sig { returns(Prism::InterpolatedXStringNode) }
+ def to_interpolated; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#16496
+ sig { override.returns(Symbol) }
+ def type; end
+
+ # attr_reader unescaped: String
+ #
+ # source://prism//lib/prism/node.rb#16473
+ sig { returns(String) }
+ def unescaped; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#16501
+ def type; end
+ end
+end
+
+# Represents the use of the `yield` keyword.
+#
+# yield 1
+# ^^^^^^^
+#
+# source://prism//lib/prism/node.rb#16521
+class Prism::YieldNode < ::Prism::Node
+ # Initialize a new YieldNode node.
+ #
+ # @return [YieldNode] a new instance of YieldNode
+ #
+ # source://prism//lib/prism/node.rb#16523
+ def initialize(source, node_id, location, flags, keyword_loc, lparen_loc, arguments, rparen_loc); end
+
+ # Implements case-equality for the node. This is effectively == but without
+ # comparing the value of locations. Locations are checked only for presence.
+ #
+ # source://prism//lib/prism/node.rb#16637
+ def ===(other); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism//lib/prism/node.rb#16535
+ def accept(visitor); end
+
+ # attr_reader arguments: ArgumentsNode?
+ #
+ # source://prism//lib/prism/node.rb#16590
+ def arguments; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#16540
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism//lib/prism/node.rb#16552
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism//lib/prism/node.rb#16545
+ def compact_child_nodes; end
+
+ # def copy: (?node_id: Integer, ?location: Location, ?flags: Integer, ?keyword_loc: Location, ?lparen_loc: Location?, ?arguments: ArgumentsNode?, ?rparen_loc: Location?) -> YieldNode
+ #
+ # source://prism//lib/prism/node.rb#16557
+ def copy(node_id: T.unsafe(nil), location: T.unsafe(nil), flags: T.unsafe(nil), keyword_loc: T.unsafe(nil), lparen_loc: T.unsafe(nil), arguments: T.unsafe(nil), rparen_loc: T.unsafe(nil)); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism//lib/prism/node.rb#16540
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { node_id: Integer, location: Location, keyword_loc: Location, lparen_loc: Location?, arguments: ArgumentsNode?, rparen_loc: Location? }
+ #
+ # source://prism//lib/prism/node.rb#16565
+ def deconstruct_keys(keys); end
+
+ sig { override.returns(T::Array[Prism::Reflection::Field]) }
+ def fields; end
+
+ # def inspect -> String
+ #
+ # source://prism//lib/prism/node.rb#16621
+ sig { override.returns(String) }
+ def inspect; end
+
+ # def keyword: () -> String
+ #
+ # source://prism//lib/prism/node.rb#16606
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism//lib/prism/node.rb#16570
+ def keyword_loc; end
+
+ # def lparen: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#16611
+ def lparen; end
+
+ # attr_reader lparen_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#16577
+ def lparen_loc; end
+
+ # def rparen: () -> String?
+ #
+ # source://prism//lib/prism/node.rb#16616
+ def rparen; end
+
+ # attr_reader rparen_loc: Location?
+ #
+ # source://prism//lib/prism/node.rb#16593
+ def rparen_loc; end
+
+ # Return a symbol representation of this node type. See `Node#type`.
+ #
+ # source://prism//lib/prism/node.rb#16626
+ sig { override.returns(Symbol) }
+ def type; end
+
+ class << self
+ # Return a symbol representation of this node type. See `Node::type`.
+ #
+ # source://prism//lib/prism/node.rb#16631
+ def type; end
+ end
+end