From bc5dc6123bf0e30728e246b4d2c5f3eaee7a94ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20Mendon=C3=A7a=20Fran=C3=A7a?= Date: Thu, 2 May 2024 19:25:30 +0000 Subject: [PATCH 1/2] Fix error when parsing ERB files with yield on the top level Top level yields are invalid Ruby on files, but are valid on `eval`. They exist on ERB files, and since those files are evaluated no written to disk they are fine. We can tell Prism to parse the code using the eval context by passing `scopes: [[]]` to `parse`, but since are are using the `Prism::Translation::Parser` class we have no way to do that. A [PR][1] was proposed to Prism to always consider the code as being evaluated in the `Parser` translation. For now, we can safely ignore that class of error by overriding the `valid_error?` method on our own parser. Fixes #400. [1]: https://github.com/ruby/prism/pull/2741 --- Gemfile.lock | 4 +- lib/packwerk/parsers/ruby.rb | 7 + packwerk.gemspec | 2 +- .../{prism@0.24.0.rbi => prism@0.27.0.rbi} | 20459 ++++++++++------ 4 files changed, 13211 insertions(+), 7261 deletions(-) rename sorbet/rbi/gems/{prism@0.24.0.rbi => prism@0.27.0.rbi} (55%) diff --git a/Gemfile.lock b/Gemfile.lock index a0c7ce442..8e30c8968 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -9,7 +9,7 @@ PATH constant_resolver (>= 0.2.0) parallel parser - prism (>= 0.24.0) + prism (>= 0.25.0) sorbet-runtime (>= 0.5.9914) zeitwerk (>= 2.6.1) @@ -77,7 +77,7 @@ GEM ast (~> 2.4.1) racc prettier_print (0.1.0) - prism (0.24.0) + prism (0.27.0) racc (1.7.1) rack (2.2.4) rack-test (2.0.2) diff --git a/lib/packwerk/parsers/ruby.rb b/lib/packwerk/parsers/ruby.rb index b841d07fd..937431b40 100644 --- a/lib/packwerk/parsers/ruby.rb +++ b/lib/packwerk/parsers/ruby.rb @@ -19,6 +19,13 @@ def initialize(builder) super(builder) super.diagnostics.all_errors_are_fatal = true end + + private + + sig { params(error: Prism::ParseError).returns(T::Boolean) } + def valid_error?(error) + error.type != :invalid_yield + end end class TolerateInvalidUtf8Builder < Parser::Builders::Default diff --git a/packwerk.gemspec b/packwerk.gemspec index 4d4853b60..7f70583c2 100644 --- a/packwerk.gemspec +++ b/packwerk.gemspec @@ -48,7 +48,7 @@ Gem::Specification.new do |spec| # For Ruby parsing spec.add_dependency("ast") spec.add_dependency("parser") - spec.add_dependency("prism", ">= 0.24.0") # 0.24.0 fixes a performance issue with the parser translator + spec.add_dependency("prism", ">= 0.25.0") # For ERB parsing spec.add_dependency("better_html") diff --git a/sorbet/rbi/gems/prism@0.24.0.rbi b/sorbet/rbi/gems/prism@0.27.0.rbi similarity index 55% rename from sorbet/rbi/gems/prism@0.24.0.rbi rename to sorbet/rbi/gems/prism@0.27.0.rbi index 07688d12c..36267480b 100644 --- a/sorbet/rbi/gems/prism@0.24.0.rbi +++ b/sorbet/rbi/gems/prism@0.27.0.rbi @@ -4,12 +4,33 @@ # 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/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.rbi.erb +# 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 +# ast/parser in their bundle. +module AST; end + +class AST::Node; end + +# We keep these shims in here because our client libraries might not have parser +# in their bundle. +module Parser; end + +module Parser::AST; end +class Parser::AST::Node < AST::Node; end +class Parser::Base; end + # The Prism Ruby parser. # # "Parsing Ruby is suddenly manageable!" @@ -28,7 +49,7 @@ module Prism def lex(*_arg0); end # :call-seq: - # Prism::lex_compat(source, **options) -> ParseResult + # 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 @@ -36,7 +57,8 @@ module Prism # # For supported options, see Prism::parse. # - # source://prism//lib/prism.rb#46 + # source://prism//lib/prism.rb#47 + 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. @@ -49,7 +71,8 @@ module Prism # returns the same tokens. Raises SyntaxError if the syntax in source is # invalid. # - # source://prism//lib/prism.rb#56 + # source://prism//lib/prism.rb#57 + sig { params(source: String).returns(T::Array[T.untyped]) } def lex_ripper(source); end # :call-seq: @@ -57,7 +80,8 @@ module Prism # # Load the serialized AST using the source as a reference into a tree. # - # source://prism//lib/prism.rb#64 + # source://prism//lib/prism.rb#65 + sig { params(source: String, serialized: String).returns(Prism::ParseResult) } def load(source, serialized); end # Mirror the Prism.parse API by using the serialization API. @@ -66,19 +90,14 @@ module Prism # Mirror the Prism.parse_comments API by using the serialization API. def parse_comments(*_arg0); end - # :call-seq: - # Prism::parse_failure?(source, **options) -> bool - # - # Returns true if the source parses with errors. + # Mirror the Prism.parse_failure? API by using the serialization API. # # @return [Boolean] - # - # source://prism//lib/prism.rb#72 - def parse_failure?(source, **options); end + 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. + # 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 @@ -86,15 +105,10 @@ module Prism # to use mmap when it is available. def parse_file_comments(*_arg0); end - # :call-seq: - # Prism::parse_file_failure?(filepath, **options) -> bool - # - # Returns true if the file at filepath parses with errors. + # Mirror the Prism.parse_file_failure? API by using the serialization API. # # @return [Boolean] - # - # source://prism//lib/prism.rb#80 - def parse_file_failure?(filepath, **options); end + def parse_file_failure?(*_arg0); end # Mirror the Prism.parse_file_success? API by using the serialization API. # @@ -107,6 +121,9 @@ module Prism # 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] @@ -119,86 +136,119 @@ end # alias $foo $bar # ^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#97 +# source://prism//lib/prism/node.rb#135 class Prism::AliasGlobalVariableNode < ::Prism::Node - # def initialize: (Node new_name, Node old_name, Location keyword_loc, Location location) -> void + # def initialize: (Prism::node new_name, Prism::node old_name, Location keyword_loc, Location location) -> void # # @return [AliasGlobalVariableNode] a new instance of AliasGlobalVariableNode # - # source://prism//lib/prism/node.rb#99 + # source://prism//lib/prism/node.rb#137 + sig do + params( + source: Prism::Source, + new_name: Prism::Node, + old_name: Prism::Node, + keyword_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, new_name, old_name, keyword_loc, location); 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#247 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#109 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#147 + 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#114 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#152 + 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#124 + # source://prism//lib/prism/node.rb#162 + 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#119 + # source://prism//lib/prism/node.rb#157 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> AliasGlobalVariableNode + # def copy: (?new_name: Prism::node, ?old_name: Prism::node, ?keyword_loc: Location, ?location: Location) -> AliasGlobalVariableNode # - # source://prism//lib/prism/node.rb#129 - sig { params(params: T.untyped).returns(Prism::AliasGlobalVariableNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#167 + sig do + params( + new_name: Prism::Node, + old_name: Prism::Node, + keyword_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::AliasGlobalVariableNode) + end + def copy(new_name: T.unsafe(nil), old_name: T.unsafe(nil), keyword_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#114 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#152 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { new_name: Node, old_name: Node, keyword_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { new_name: Prism::node, old_name: Prism::node, keyword_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#143 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#175 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#166 + # source://prism//lib/prism/node.rb#207 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#161 + # source://prism//lib/prism/node.rb#202 sig { returns(String) } def keyword; end - # attr_reader keyword_loc: Location + # The location of the `alias` keyword. + # + # alias $foo $bar + # ^^^^^ # - # source://prism//lib/prism/node.rb#154 + # source://prism//lib/prism/node.rb#195 sig { returns(Prism::Location) } def keyword_loc; end - # attr_reader new_name: Node + # Represents the new name of the global variable that can be used after aliasing. This can be either a global variable, a back reference, or a numbered reference. # - # source://prism//lib/prism/node.rb#148 + # alias $foo $bar + # ^^^^ + # + # source://prism//lib/prism/node.rb#183 sig { returns(Prism::Node) } def new_name; end - # attr_reader old_name: Node + # Represents the old name of the global variable that could be used before aliasing. This can be either a global variable, a back reference, or a numbered reference. + # + # alias $foo $bar + # ^^^^ # - # source://prism//lib/prism/node.rb#151 + # source://prism//lib/prism/node.rb#189 sig { returns(Prism::Node) } def old_name; end @@ -217,7 +267,8 @@ class Prism::AliasGlobalVariableNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#190 + # source://prism//lib/prism/node.rb#231 + sig { override.returns(Symbol) } def type; end class << self @@ -228,7 +279,7 @@ class Prism::AliasGlobalVariableNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#200 + # source://prism//lib/prism/node.rb#241 def type; end end end @@ -238,86 +289,110 @@ end # alias foo bar # ^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#209 +# source://prism//lib/prism/node.rb#259 class Prism::AliasMethodNode < ::Prism::Node - # def initialize: (Node new_name, Node old_name, Location keyword_loc, Location location) -> void + # def initialize: (Prism::node new_name, Prism::node old_name, Location keyword_loc, Location location) -> void # # @return [AliasMethodNode] a new instance of AliasMethodNode # - # source://prism//lib/prism/node.rb#211 + # source://prism//lib/prism/node.rb#261 + sig do + params( + source: Prism::Source, + new_name: Prism::Node, + old_name: Prism::Node, + keyword_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, new_name, old_name, keyword_loc, location); 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#362 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#221 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#271 + 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#226 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#276 + 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#236 + # source://prism//lib/prism/node.rb#286 + 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#231 + # source://prism//lib/prism/node.rb#281 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> AliasMethodNode + # def copy: (?new_name: Prism::node, ?old_name: Prism::node, ?keyword_loc: Location, ?location: Location) -> AliasMethodNode # - # source://prism//lib/prism/node.rb#241 - sig { params(params: T.untyped).returns(Prism::AliasMethodNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#291 + sig do + params( + new_name: Prism::Node, + old_name: Prism::Node, + keyword_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::AliasMethodNode) + end + def copy(new_name: T.unsafe(nil), old_name: T.unsafe(nil), keyword_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#226 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#276 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { new_name: Node, old_name: Node, keyword_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { new_name: Prism::node, old_name: Prism::node, keyword_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#255 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#299 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#278 + # source://prism//lib/prism/node.rb#322 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#273 + # source://prism//lib/prism/node.rb#317 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#266 + # source://prism//lib/prism/node.rb#310 sig { returns(Prism::Location) } def keyword_loc; end - # attr_reader new_name: Node + # attr_reader new_name: Prism::node # - # source://prism//lib/prism/node.rb#260 + # source://prism//lib/prism/node.rb#304 sig { returns(Prism::Node) } def new_name; end - # attr_reader old_name: Node + # attr_reader old_name: Prism::node # - # source://prism//lib/prism/node.rb#263 + # source://prism//lib/prism/node.rb#307 sig { returns(Prism::Node) } def old_name; end @@ -336,7 +411,8 @@ class Prism::AliasMethodNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#302 + # source://prism//lib/prism/node.rb#346 + sig { override.returns(Symbol) } def type; end class << self @@ -347,7 +423,7 @@ class Prism::AliasMethodNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#312 + # source://prism//lib/prism/node.rb#356 def type; end end end @@ -357,86 +433,110 @@ end # foo => bar | baz # ^^^^^^^^^ # -# source://prism//lib/prism/node.rb#321 +# source://prism//lib/prism/node.rb#374 class Prism::AlternationPatternNode < ::Prism::Node - # def initialize: (Node left, Node right, Location operator_loc, Location location) -> void + # def initialize: (Prism::node left, Prism::node right, Location operator_loc, Location location) -> void # # @return [AlternationPatternNode] a new instance of AlternationPatternNode # - # source://prism//lib/prism/node.rb#323 + # source://prism//lib/prism/node.rb#376 + sig do + params( + source: Prism::Source, + left: Prism::Node, + right: Prism::Node, + operator_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, left, right, operator_loc, location); 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#477 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#333 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#386 + 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#338 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#391 + 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#348 + # source://prism//lib/prism/node.rb#401 + 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#343 + # source://prism//lib/prism/node.rb#396 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> AlternationPatternNode + # def copy: (?left: Prism::node, ?right: Prism::node, ?operator_loc: Location, ?location: Location) -> AlternationPatternNode # - # source://prism//lib/prism/node.rb#353 - sig { params(params: T.untyped).returns(Prism::AlternationPatternNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#406 + sig do + params( + left: Prism::Node, + right: Prism::Node, + operator_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::AlternationPatternNode) + end + def copy(left: T.unsafe(nil), right: T.unsafe(nil), operator_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#338 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#391 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { left: Node, right: Node, operator_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { left: Prism::node, right: Prism::node, operator_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#367 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#414 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#390 + # source://prism//lib/prism/node.rb#437 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end - # attr_reader left: Node + # attr_reader left: Prism::node # - # source://prism//lib/prism/node.rb#372 + # source://prism//lib/prism/node.rb#419 sig { returns(Prism::Node) } def left; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#385 + # source://prism//lib/prism/node.rb#432 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#378 + # source://prism//lib/prism/node.rb#425 sig { returns(Prism::Location) } def operator_loc; end - # attr_reader right: Node + # attr_reader right: Prism::node # - # source://prism//lib/prism/node.rb#375 + # source://prism//lib/prism/node.rb#422 sig { returns(Prism::Node) } def right; end @@ -455,7 +555,8 @@ class Prism::AlternationPatternNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#414 + # source://prism//lib/prism/node.rb#461 + sig { override.returns(Symbol) } def type; end class << self @@ -466,7 +567,7 @@ class Prism::AlternationPatternNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#424 + # source://prism//lib/prism/node.rb#471 def type; end end end @@ -476,63 +577,87 @@ end # left and right # ^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#433 +# source://prism//lib/prism/node.rb#489 class Prism::AndNode < ::Prism::Node - # def initialize: (Node left, Node right, Location operator_loc, Location location) -> void + # def initialize: (Prism::node left, Prism::node right, Location operator_loc, Location location) -> void # # @return [AndNode] a new instance of AndNode # - # source://prism//lib/prism/node.rb#435 + # source://prism//lib/prism/node.rb#491 + sig do + params( + source: Prism::Source, + left: Prism::Node, + right: Prism::Node, + operator_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, left, right, operator_loc, location); 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#445 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#501 + 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#450 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#506 + 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#460 + # source://prism//lib/prism/node.rb#516 + 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#455 + # source://prism//lib/prism/node.rb#511 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> AndNode + # def copy: (?left: Prism::node, ?right: Prism::node, ?operator_loc: Location, ?location: Location) -> AndNode # - # source://prism//lib/prism/node.rb#465 - sig { params(params: T.untyped).returns(Prism::AndNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#521 + sig do + params( + left: Prism::Node, + right: Prism::Node, + operator_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::AndNode) + end + def copy(left: T.unsafe(nil), right: T.unsafe(nil), operator_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#450 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#506 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { left: Node, right: Node, operator_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { left: Prism::node, right: Prism::node, operator_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#479 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#529 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#517 + # source://prism//lib/prism/node.rb#567 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); 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). @@ -543,13 +668,13 @@ class Prism::AndNode < ::Prism::Node # 1 && 2 # ^ # - # source://prism//lib/prism/node.rb#490 + # source://prism//lib/prism/node.rb#540 sig { returns(Prism::Node) } def left; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#512 + # source://prism//lib/prism/node.rb#562 sig { returns(String) } def operator; end @@ -558,7 +683,7 @@ class Prism::AndNode < ::Prism::Node # left and right # ^^^ # - # source://prism//lib/prism/node.rb#505 + # source://prism//lib/prism/node.rb#555 sig { returns(Prism::Location) } def operator_loc; end @@ -570,7 +695,7 @@ class Prism::AndNode < ::Prism::Node # 1 and 2 # ^ # - # source://prism//lib/prism/node.rb#499 + # source://prism//lib/prism/node.rb#549 sig { returns(Prism::Node) } def right; end @@ -589,7 +714,8 @@ class Prism::AndNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#541 + # source://prism//lib/prism/node.rb#591 + sig { override.returns(Symbol) } def type; end class << self @@ -600,7 +726,7 @@ class Prism::AndNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#551 + # source://prism//lib/prism/node.rb#601 def type; end end end @@ -610,77 +736,99 @@ end # return foo, bar, baz # ^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#560 +# source://prism//lib/prism/node.rb#619 class Prism::ArgumentsNode < ::Prism::Node - # def initialize: (Integer flags, Array[Node] arguments, Location location) -> void + # def initialize: (Integer flags, Array[Prism::node] arguments, Location location) -> void # # @return [ArgumentsNode] a new instance of ArgumentsNode # - # source://prism//lib/prism/node.rb#562 + # source://prism//lib/prism/node.rb#621 + sig do + params( + source: Prism::Source, + flags: Integer, + arguments: T::Array[Prism::Node], + location: Prism::Location + ).void + end def initialize(source, flags, arguments, location); 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#713 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#571 - sig { params(visitor: Prism::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[Node] + # attr_reader arguments: Array[Prism::node] # - # source://prism//lib/prism/node.rb#613 + # source://prism//lib/prism/node.rb#667 sig { returns(T::Array[Prism::Node]) } def arguments; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#576 - sig { returns(T::Array[T.nilable(Prism::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#586 + # 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#581 + # 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#617 + # source://prism//lib/prism/node.rb#670 sig { returns(T::Boolean) } def contains_keyword_splat?; end - # def copy: (**params) -> ArgumentsNode + # def copy: (?flags: Integer, ?arguments: Array[Prism::node], ?location: Location) -> ArgumentsNode # - # source://prism//lib/prism/node.rb#591 - sig { params(params: T.untyped).returns(Prism::ArgumentsNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#650 + sig do + params( + flags: Integer, + arguments: T::Array[Prism::Node], + location: Prism::Location + ).returns(Prism::ArgumentsNode) + end + def copy(flags: T.unsafe(nil), arguments: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#576 - sig { returns(T::Array[T.nilable(Prism::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) -> { flags: Integer, arguments: Array[Node], location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, arguments: Array[Prism::node], location: Location } # - # source://prism//lib/prism/node.rb#604 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#622 + # source://prism//lib/prism/node.rb#675 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -698,14 +846,15 @@ class Prism::ArgumentsNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#644 + # source://prism//lib/prism/node.rb#697 + sig { override.returns(Symbol) } def type; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#609 + # source://prism//lib/prism/node.rb#663 sig { returns(Integer) } def flags; end @@ -717,19 +866,19 @@ class Prism::ArgumentsNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#654 + # source://prism//lib/prism/node.rb#707 def type; end end end # Flags for arguments nodes. # -# source://prism//lib/prism/node.rb#19241 +# source://prism//lib/prism/node.rb#20337 module Prism::ArgumentsNodeFlags; end # if arguments contain keyword splat # -# source://prism//lib/prism/node.rb#19243 +# source://prism//lib/prism/node.rb#20339 Prism::ArgumentsNodeFlags::CONTAINS_KEYWORD_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. @@ -737,100 +886,136 @@ Prism::ArgumentsNodeFlags::CONTAINS_KEYWORD_SPLAT = T.let(T.unsafe(nil), Integer # [1, 2, 3] # ^^^^^^^^^ # -# source://prism//lib/prism/node.rb#663 +# source://prism//lib/prism/node.rb#725 class Prism::ArrayNode < ::Prism::Node - # def initialize: (Integer flags, Array[Node] elements, Location? opening_loc, Location? closing_loc, Location location) -> void + # def initialize: (Integer flags, Array[Prism::node] elements, Location? opening_loc, Location? closing_loc, Location location) -> void # # @return [ArrayNode] a new instance of ArrayNode # - # source://prism//lib/prism/node.rb#665 + # source://prism//lib/prism/node.rb#727 + sig do + params( + source: Prism::Source, + flags: Integer, + elements: T::Array[Prism::Node], + opening_loc: T.nilable(Prism::Location), + closing_loc: T.nilable(Prism::Location), + location: Prism::Location + ).void + end def initialize(source, flags, elements, opening_loc, closing_loc, location); 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#869 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#676 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#738 + 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#681 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#743 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String? # - # source://prism//lib/prism/node.rb#758 + # source://prism//lib/prism/node.rb#824 sig { returns(T.nilable(String)) } def closing; end - # attr_reader closing_loc: Location? + # 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#735 + # source://prism//lib/prism/node.rb#801 sig { returns(T.nilable(Prism::Location)) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#691 + # source://prism//lib/prism/node.rb#753 + 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#686 + # source://prism//lib/prism/node.rb#748 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end # def contains_splat?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#748 + # source://prism//lib/prism/node.rb#814 sig { returns(T::Boolean) } def contains_splat?; end - # def copy: (**params) -> ArrayNode + # def copy: (?flags: Integer, ?elements: Array[Prism::node], ?opening_loc: Location?, ?closing_loc: Location?, ?location: Location) -> ArrayNode # - # source://prism//lib/prism/node.rb#696 - sig { params(params: T.untyped).returns(Prism::ArrayNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#758 + sig do + params( + flags: Integer, + elements: T::Array[Prism::Node], + opening_loc: T.nilable(Prism::Location), + closing_loc: T.nilable(Prism::Location), + location: Prism::Location + ).returns(Prism::ArrayNode) + end + def copy(flags: T.unsafe(nil), elements: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#681 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#743 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, elements: Array[Node], opening_loc: Location?, closing_loc: Location?, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, elements: Array[Prism::node], opening_loc: Location?, closing_loc: Location?, location: Location } # - # source://prism//lib/prism/node.rb#711 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#766 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end - # attr_reader elements: Array[Node] + # 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#720 + # source://prism//lib/prism/node.rb#775 sig { returns(T::Array[Prism::Node]) } def elements; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#763 + # source://prism//lib/prism/node.rb#829 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String? # - # source://prism//lib/prism/node.rb#753 + # source://prism//lib/prism/node.rb#819 sig { returns(T.nilable(String)) } def opening; end - # attr_reader opening_loc: Location? + # Represents the optional source location for the opening token. # - # source://prism//lib/prism/node.rb#723 + # [1,2,3] # "[" + # %w[foo bar baz] # "%w[" + # %I(apple orange banana) # "%I(" + # foo = 1, 2, 3 # nil + # + # source://prism//lib/prism/node.rb#783 sig { returns(T.nilable(Prism::Location)) } def opening_loc; end @@ -849,14 +1034,15 @@ class Prism::ArrayNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#787 + # source://prism//lib/prism/node.rb#853 + sig { override.returns(Symbol) } def type; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#716 + # source://prism//lib/prism/node.rb#771 sig { returns(Integer) } def flags; end @@ -868,19 +1054,19 @@ class Prism::ArrayNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#797 + # source://prism//lib/prism/node.rb#863 def type; end end end # Flags for array nodes. # -# source://prism//lib/prism/node.rb#19247 +# source://prism//lib/prism/node.rb#20343 module Prism::ArrayNodeFlags; end # if array contains splat nodes # -# source://prism//lib/prism/node.rb#19249 +# source://prism//lib/prism/node.rb#20345 Prism::ArrayNodeFlags::CONTAINS_SPLAT = T.let(T.unsafe(nil), Integer) # Represents an array pattern in pattern matching. @@ -900,110 +1086,140 @@ Prism::ArrayNodeFlags::CONTAINS_SPLAT = T.let(T.unsafe(nil), Integer) # foo in Bar[1, 2, 3] # ^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#818 +# source://prism//lib/prism/node.rb#895 class Prism::ArrayPatternNode < ::Prism::Node - # def initialize: (Node? constant, Array[Node] requireds, Node? rest, Array[Node] posts, Location? opening_loc, Location? closing_loc, Location location) -> void + # def initialize: (Prism::node? constant, Array[Prism::node] requireds, Prism::node? rest, Array[Prism::node] posts, Location? opening_loc, Location? closing_loc, Location location) -> void # # @return [ArrayPatternNode] a new instance of ArrayPatternNode # - # source://prism//lib/prism/node.rb#820 + # source://prism//lib/prism/node.rb#897 + sig do + params( + source: Prism::Source, + 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), + location: Prism::Location + ).void + end def initialize(source, constant, requireds, rest, posts, opening_loc, closing_loc, location); 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#1047 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#833 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#910 + 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#838 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#915 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String? # - # source://prism//lib/prism/node.rb#922 + # source://prism//lib/prism/node.rb#991 sig { returns(T.nilable(String)) } def closing; end # attr_reader closing_loc: Location? # - # source://prism//lib/prism/node.rb#904 + # source://prism//lib/prism/node.rb#973 sig { returns(T.nilable(Prism::Location)) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#853 + # source://prism//lib/prism/node.rb#930 + 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#843 + # source://prism//lib/prism/node.rb#920 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # attr_reader constant: Node? + # attr_reader constant: Prism::node? # - # source://prism//lib/prism/node.rb#880 + # source://prism//lib/prism/node.rb#948 sig { returns(T.nilable(Prism::Node)) } def constant; end - # def copy: (**params) -> ArrayPatternNode + # def copy: (?constant: Prism::node?, ?requireds: Array[Prism::node], ?rest: Prism::node?, ?posts: Array[Prism::node], ?opening_loc: Location?, ?closing_loc: Location?, ?location: Location) -> ArrayPatternNode # - # source://prism//lib/prism/node.rb#858 - sig { params(params: T.untyped).returns(Prism::ArrayPatternNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#935 + sig do + params( + 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), + location: Prism::Location + ).returns(Prism::ArrayPatternNode) + end + def copy(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), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#838 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#915 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { constant: Node?, requireds: Array[Node], rest: Node?, posts: Array[Node], opening_loc: Location?, closing_loc: Location?, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { constant: Prism::node?, requireds: Array[Prism::node], rest: Prism::node?, posts: Array[Prism::node], opening_loc: Location?, closing_loc: Location?, location: Location } # - # source://prism//lib/prism/node.rb#875 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#943 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#927 + # source://prism//lib/prism/node.rb#996 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String? # - # source://prism//lib/prism/node.rb#917 + # source://prism//lib/prism/node.rb#986 sig { returns(T.nilable(String)) } def opening; end # attr_reader opening_loc: Location? # - # source://prism//lib/prism/node.rb#892 + # source://prism//lib/prism/node.rb#960 sig { returns(T.nilable(Prism::Location)) } def opening_loc; end - # attr_reader posts: Array[Node] + # attr_reader posts: Array[Prism::node] # - # source://prism//lib/prism/node.rb#889 + # source://prism//lib/prism/node.rb#957 sig { returns(T::Array[Prism::Node]) } def posts; end - # attr_reader requireds: Array[Node] + # attr_reader requireds: Array[Prism::node] # - # source://prism//lib/prism/node.rb#883 + # source://prism//lib/prism/node.rb#951 sig { returns(T::Array[Prism::Node]) } def requireds; end - # attr_reader rest: Node? + # attr_reader rest: Prism::node? # - # source://prism//lib/prism/node.rb#886 + # source://prism//lib/prism/node.rb#954 sig { returns(T.nilable(Prism::Node)) } def rest; end @@ -1022,7 +1238,8 @@ class Prism::ArrayPatternNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#962 + # source://prism//lib/prism/node.rb#1031 + sig { override.returns(Symbol) } def type; end class << self @@ -1033,7 +1250,7 @@ class Prism::ArrayPatternNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#972 + # source://prism//lib/prism/node.rb#1041 def type; end end end @@ -1043,63 +1260,87 @@ end # { a => b } # ^^^^^^ # -# source://prism//lib/prism/node.rb#981 +# source://prism//lib/prism/node.rb#1064 class Prism::AssocNode < ::Prism::Node - # def initialize: (Node key, Node value, Location? operator_loc, Location location) -> void + # def initialize: (Prism::node key, Prism::node value, Location? operator_loc, Location location) -> void # # @return [AssocNode] a new instance of AssocNode # - # source://prism//lib/prism/node.rb#983 + # source://prism//lib/prism/node.rb#1066 + sig do + params( + source: Prism::Source, + key: Prism::Node, + value: Prism::Node, + operator_loc: T.nilable(Prism::Location), + location: Prism::Location + ).void + end def initialize(source, key, value, operator_loc, location); 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#1191 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#993 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#1076 + 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#998 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#1081 + 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#1008 + # source://prism//lib/prism/node.rb#1091 + 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#1003 + # source://prism//lib/prism/node.rb#1086 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> AssocNode + # def copy: (?key: Prism::node, ?value: Prism::node, ?operator_loc: Location?, ?location: Location) -> AssocNode # - # source://prism//lib/prism/node.rb#1013 - sig { params(params: T.untyped).returns(Prism::AssocNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#1096 + sig do + params( + key: Prism::Node, + value: Prism::Node, + operator_loc: T.nilable(Prism::Location), + location: Prism::Location + ).returns(Prism::AssocNode) + end + def copy(key: T.unsafe(nil), value: T.unsafe(nil), operator_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#998 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#1081 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { key: Node, value: Node, operator_loc: Location?, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { key: Prism::node, value: Prism::node, operator_loc: Location?, location: Location } # - # source://prism//lib/prism/node.rb#1027 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#1104 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#1074 + # source://prism//lib/prism/node.rb#1151 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); 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). @@ -1113,13 +1354,13 @@ class Prism::AssocNode < ::Prism::Node # { def a; end => 1 } # ^^^^^^^^^^ # - # source://prism//lib/prism/node.rb#1041 + # source://prism//lib/prism/node.rb#1118 sig { returns(Prism::Node) } def key; end # def operator: () -> String? # - # source://prism//lib/prism/node.rb#1069 + # source://prism//lib/prism/node.rb#1146 sig { returns(T.nilable(String)) } def operator; end @@ -1128,7 +1369,7 @@ class Prism::AssocNode < ::Prism::Node # { foo => bar } # ^^ # - # source://prism//lib/prism/node.rb#1056 + # source://prism//lib/prism/node.rb#1133 sig { returns(T.nilable(Prism::Location)) } def operator_loc; end @@ -1147,7 +1388,8 @@ class Prism::AssocNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#1098 + # source://prism//lib/prism/node.rb#1175 + 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). @@ -1158,7 +1400,7 @@ class Prism::AssocNode < ::Prism::Node # { x: 1 } # ^ # - # source://prism//lib/prism/node.rb#1050 + # source://prism//lib/prism/node.rb#1127 sig { returns(Prism::Node) } def value; end @@ -1170,7 +1412,7 @@ class Prism::AssocNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#1108 + # source://prism//lib/prism/node.rb#1185 def type; end end end @@ -1180,68 +1422,90 @@ end # { **foo } # ^^^^^ # -# source://prism//lib/prism/node.rb#1117 +# source://prism//lib/prism/node.rb#1203 class Prism::AssocSplatNode < ::Prism::Node - # def initialize: (Node? value, Location operator_loc, Location location) -> void + # def initialize: (Prism::node? value, Location operator_loc, Location location) -> void # # @return [AssocSplatNode] a new instance of AssocSplatNode # - # source://prism//lib/prism/node.rb#1119 + # source://prism//lib/prism/node.rb#1205 + sig do + params( + source: Prism::Source, + value: T.nilable(Prism::Node), + operator_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, value, operator_loc, location); 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#1312 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#1128 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#1214 + 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#1133 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#1219 + 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#1145 + # source://prism//lib/prism/node.rb#1231 + 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#1138 + # source://prism//lib/prism/node.rb#1224 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> AssocSplatNode + # def copy: (?value: Prism::node?, ?operator_loc: Location, ?location: Location) -> AssocSplatNode # - # source://prism//lib/prism/node.rb#1150 - sig { params(params: T.untyped).returns(Prism::AssocSplatNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#1236 + sig do + params( + value: T.nilable(Prism::Node), + operator_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::AssocSplatNode) + end + def copy(value: T.unsafe(nil), operator_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#1133 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#1219 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { value: Node?, operator_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { value: Prism::node?, operator_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#1163 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#1244 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#1189 + # source://prism//lib/prism/node.rb#1270 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def operator: () -> String # - # source://prism//lib/prism/node.rb#1184 + # source://prism//lib/prism/node.rb#1265 sig { returns(String) } def operator; end @@ -1250,7 +1514,7 @@ class Prism::AssocSplatNode < ::Prism::Node # { **x } # ^^ # - # source://prism//lib/prism/node.rb#1177 + # source://prism//lib/prism/node.rb#1258 sig { returns(Prism::Location) } def operator_loc; end @@ -1269,7 +1533,8 @@ class Prism::AssocSplatNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#1215 + # source://prism//lib/prism/node.rb#1296 + sig { override.returns(Symbol) } def type; end # The value to be splatted, if present. Will be missing when keyword rest argument forwarding is used. @@ -1277,7 +1542,7 @@ class Prism::AssocSplatNode < ::Prism::Node # { **foo } # ^^^ # - # source://prism//lib/prism/node.rb#1171 + # source://prism//lib/prism/node.rb#1252 sig { returns(T.nilable(Prism::Node)) } def value; end @@ -1289,11 +1554,14 @@ class Prism::AssocSplatNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#1225 + # source://prism//lib/prism/node.rb#1306 def type; end end end +# The FFI backend is used on other Ruby implementations. +# +# source://prism//lib/prism.rb#84 Prism::BACKEND = T.let(T.unsafe(nil), Symbol) # Represents reading a reference to a field in the previous match. @@ -1301,63 +1569,72 @@ Prism::BACKEND = T.let(T.unsafe(nil), Symbol) # $' # ^^ # -# source://prism//lib/prism/node.rb#1234 +# source://prism//lib/prism/node.rb#1323 class Prism::BackReferenceReadNode < ::Prism::Node # def initialize: (Symbol name, Location location) -> void # # @return [BackReferenceReadNode] a new instance of BackReferenceReadNode # - # source://prism//lib/prism/node.rb#1236 + # source://prism//lib/prism/node.rb#1325 + sig { params(source: Prism::Source, name: Symbol, location: Prism::Location).void } def initialize(source, name, location); 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#1409 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#1244 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#1333 + 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#1249 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#1338 + 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#1259 + # source://prism//lib/prism/node.rb#1348 + 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#1254 + # source://prism//lib/prism/node.rb#1343 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> BackReferenceReadNode + # def copy: (?name: Symbol, ?location: Location) -> BackReferenceReadNode # - # source://prism//lib/prism/node.rb#1264 - sig { params(params: T.untyped).returns(Prism::BackReferenceReadNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#1353 + sig { params(name: Symbol, location: Prism::Location).returns(Prism::BackReferenceReadNode) } + def copy(name: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#1249 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#1338 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location } # - # source://prism//lib/prism/node.rb#1276 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#1361 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#1289 + # source://prism//lib/prism/node.rb#1373 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # The name of the back-reference variable, including the leading `$`. @@ -1366,7 +1643,7 @@ class Prism::BackReferenceReadNode < ::Prism::Node # # $+ # name `:$+` # - # source://prism//lib/prism/node.rb#1285 + # source://prism//lib/prism/node.rb#1370 sig { returns(Symbol) } def name; end @@ -1385,7 +1662,8 @@ class Prism::BackReferenceReadNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#1309 + # source://prism//lib/prism/node.rb#1393 + sig { override.returns(Symbol) } def type; end class << self @@ -1396,7 +1674,7 @@ class Prism::BackReferenceReadNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#1319 + # source://prism//lib/prism/node.rb#1403 def type; end end end @@ -1406,24 +1684,24 @@ end # 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#13 +# 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#16 + # 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#21 + # 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#26 + # source://prism//lib/prism/visitor.rb#29 sig { params(node: Prism::Node).void } def visit_child_nodes(node); end end @@ -1435,113 +1713,143 @@ end # end # ^^^^^ # -# source://prism//lib/prism/node.rb#1330 +# source://prism//lib/prism/node.rb#1421 class Prism::BeginNode < ::Prism::Node # def initialize: (Location? begin_keyword_loc, StatementsNode? statements, RescueNode? rescue_clause, ElseNode? else_clause, EnsureNode? ensure_clause, Location? end_keyword_loc, Location location) -> void # # @return [BeginNode] a new instance of BeginNode # - # source://prism//lib/prism/node.rb#1332 + # source://prism//lib/prism/node.rb#1423 + sig do + params( + source: Prism::Source, + 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), + location: Prism::Location + ).void + end def initialize(source, begin_keyword_loc, statements, rescue_clause, else_clause, ensure_clause, end_keyword_loc, location); 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#1587 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#1345 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#1436 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end # def begin_keyword: () -> String? # - # source://prism//lib/prism/node.rb#1433 + # source://prism//lib/prism/node.rb#1516 sig { returns(T.nilable(String)) } def begin_keyword; end # attr_reader begin_keyword_loc: Location? # - # source://prism//lib/prism/node.rb#1396 + # source://prism//lib/prism/node.rb#1478 sig { returns(T.nilable(Prism::Location)) } def begin_keyword_loc; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#1354 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#1445 + 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#1369 + # source://prism//lib/prism/node.rb#1460 + 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#1359 + # source://prism//lib/prism/node.rb#1450 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> BeginNode + # def copy: (?begin_keyword_loc: Location?, ?statements: StatementsNode?, ?rescue_clause: RescueNode?, ?else_clause: ElseNode?, ?ensure_clause: EnsureNode?, ?end_keyword_loc: Location?, ?location: Location) -> BeginNode # - # source://prism//lib/prism/node.rb#1374 - sig { params(params: T.untyped).returns(Prism::BeginNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#1465 + sig do + params( + 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), + location: Prism::Location + ).returns(Prism::BeginNode) + end + def copy(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), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#1354 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#1445 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { begin_keyword_loc: Location?, statements: StatementsNode?, rescue_clause: RescueNode?, else_clause: ElseNode?, ensure_clause: EnsureNode?, end_keyword_loc: Location?, location: Location } # - # source://prism//lib/prism/node.rb#1391 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#1473 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end # attr_reader else_clause: ElseNode? # - # source://prism//lib/prism/node.rb#1414 + # source://prism//lib/prism/node.rb#1497 sig { returns(T.nilable(Prism::ElseNode)) } def else_clause; end # def end_keyword: () -> String? # - # source://prism//lib/prism/node.rb#1438 + # source://prism//lib/prism/node.rb#1521 sig { returns(T.nilable(String)) } def end_keyword; end # attr_reader end_keyword_loc: Location? # - # source://prism//lib/prism/node.rb#1420 + # source://prism//lib/prism/node.rb#1503 sig { returns(T.nilable(Prism::Location)) } def end_keyword_loc; end # attr_reader ensure_clause: EnsureNode? # - # source://prism//lib/prism/node.rb#1417 + # source://prism//lib/prism/node.rb#1500 sig { returns(T.nilable(Prism::EnsureNode)) } def ensure_clause; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#1443 + # source://prism//lib/prism/node.rb#1526 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader rescue_clause: RescueNode? # - # source://prism//lib/prism/node.rb#1411 + # source://prism//lib/prism/node.rb#1494 sig { returns(T.nilable(Prism::RescueNode)) } def rescue_clause; end - # source://prism//lib/prism/node.rb#1349 + # source://prism//lib/prism/node.rb#1440 def set_newline_flag(newline_marked); end # attr_reader statements: StatementsNode? # - # source://prism//lib/prism/node.rb#1408 + # source://prism//lib/prism/node.rb#1491 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end @@ -1560,7 +1868,8 @@ class Prism::BeginNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#1488 + # source://prism//lib/prism/node.rb#1571 + sig { override.returns(Symbol) } def type; end class << self @@ -1571,7 +1880,7 @@ class Prism::BeginNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#1498 + # source://prism//lib/prism/node.rb#1581 def type; end end end @@ -1581,80 +1890,102 @@ end # bar(&args) # ^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#1507 +# source://prism//lib/prism/node.rb#1602 class Prism::BlockArgumentNode < ::Prism::Node - # def initialize: (Node? expression, Location operator_loc, Location location) -> void + # def initialize: (Prism::node? expression, Location operator_loc, Location location) -> void # # @return [BlockArgumentNode] a new instance of BlockArgumentNode # - # source://prism//lib/prism/node.rb#1509 + # source://prism//lib/prism/node.rb#1604 + sig do + params( + source: Prism::Source, + expression: T.nilable(Prism::Node), + operator_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, expression, operator_loc, location); 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#1705 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#1518 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#1613 + 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#1523 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#1618 + 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#1535 + # source://prism//lib/prism/node.rb#1630 + 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#1528 + # source://prism//lib/prism/node.rb#1623 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> BlockArgumentNode + # def copy: (?expression: Prism::node?, ?operator_loc: Location, ?location: Location) -> BlockArgumentNode # - # source://prism//lib/prism/node.rb#1540 - sig { params(params: T.untyped).returns(Prism::BlockArgumentNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#1635 + sig do + params( + expression: T.nilable(Prism::Node), + operator_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::BlockArgumentNode) + end + def copy(expression: T.unsafe(nil), operator_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#1523 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#1618 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { expression: Node?, operator_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { expression: Prism::node?, operator_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#1553 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#1643 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end - # attr_reader expression: Node? + # attr_reader expression: Prism::node? # - # source://prism//lib/prism/node.rb#1558 + # source://prism//lib/prism/node.rb#1648 sig { returns(T.nilable(Prism::Node)) } def expression; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#1573 + # source://prism//lib/prism/node.rb#1663 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def operator: () -> String # - # source://prism//lib/prism/node.rb#1568 + # source://prism//lib/prism/node.rb#1658 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#1561 + # source://prism//lib/prism/node.rb#1651 sig { returns(Prism::Location) } def operator_loc; end @@ -1673,7 +2004,8 @@ class Prism::BlockArgumentNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#1599 + # source://prism//lib/prism/node.rb#1689 + sig { override.returns(Symbol) } def type; end class << self @@ -1684,7 +2016,7 @@ class Prism::BlockArgumentNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#1609 + # source://prism//lib/prism/node.rb#1699 def type; end end end @@ -1694,68 +2026,77 @@ end # a { |; b| } # ^ # -# source://prism//lib/prism/node.rb#1618 +# source://prism//lib/prism/node.rb#1716 class Prism::BlockLocalVariableNode < ::Prism::Node # def initialize: (Integer flags, Symbol name, Location location) -> void # # @return [BlockLocalVariableNode] a new instance of BlockLocalVariableNode # - # source://prism//lib/prism/node.rb#1620 + # source://prism//lib/prism/node.rb#1718 + sig { params(source: Prism::Source, flags: Integer, name: Symbol, location: Prism::Location).void } def initialize(source, flags, name, location); 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#1810 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#1629 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#1727 + 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#1634 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#1732 + 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#1644 + # source://prism//lib/prism/node.rb#1742 + 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#1639 + # source://prism//lib/prism/node.rb#1737 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> BlockLocalVariableNode + # def copy: (?flags: Integer, ?name: Symbol, ?location: Location) -> BlockLocalVariableNode # - # source://prism//lib/prism/node.rb#1649 - sig { params(params: T.untyped).returns(Prism::BlockLocalVariableNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#1747 + sig { params(flags: Integer, name: Symbol, location: Prism::Location).returns(Prism::BlockLocalVariableNode) } + def copy(flags: T.unsafe(nil), name: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#1634 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#1732 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, name: Symbol, location: Location } # - # source://prism//lib/prism/node.rb#1662 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#1755 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#1680 + # source://prism//lib/prism/node.rb#1772 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#1671 + # source://prism//lib/prism/node.rb#1764 sig { returns(Symbol) } def name; end @@ -1763,7 +2104,7 @@ class Prism::BlockLocalVariableNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#1675 + # source://prism//lib/prism/node.rb#1767 sig { returns(T::Boolean) } def repeated_parameter?; end @@ -1782,14 +2123,15 @@ class Prism::BlockLocalVariableNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#1702 + # source://prism//lib/prism/node.rb#1794 + sig { override.returns(Symbol) } def type; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#1667 + # source://prism//lib/prism/node.rb#1760 sig { returns(Integer) } def flags; end @@ -1801,7 +2143,7 @@ class Prism::BlockLocalVariableNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#1712 + # source://prism//lib/prism/node.rb#1804 def type; end end end @@ -1811,104 +2153,132 @@ end # [1, 2, 3].each { |i| puts x } # ^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#1721 +# source://prism//lib/prism/node.rb#1821 class Prism::BlockNode < ::Prism::Node - # def initialize: (Array[Symbol] locals, Node? parameters, Node? body, Location opening_loc, Location closing_loc, Location location) -> void + # def initialize: (Array[Symbol] locals, Prism::node? parameters, Prism::node? body, Location opening_loc, Location closing_loc, Location location) -> void # # @return [BlockNode] a new instance of BlockNode # - # source://prism//lib/prism/node.rb#1723 + # source://prism//lib/prism/node.rb#1823 + sig do + params( + source: Prism::Source, + locals: T::Array[Symbol], + parameters: T.nilable(Prism::Node), + body: T.nilable(Prism::Node), + opening_loc: Prism::Location, + closing_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, locals, parameters, body, opening_loc, closing_loc, location); 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#1954 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#1735 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#1835 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end - # attr_reader body: Node? + # attr_reader body: Prism::node? # - # source://prism//lib/prism/node.rb#1785 + # source://prism//lib/prism/node.rb#1877 sig { returns(T.nilable(Prism::Node)) } def body; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#1740 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#1840 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#1806 + # source://prism//lib/prism/node.rb#1899 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#1794 + # source://prism//lib/prism/node.rb#1887 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#1753 + # source://prism//lib/prism/node.rb#1853 + 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#1745 + # source://prism//lib/prism/node.rb#1845 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> BlockNode + # def copy: (?locals: Array[Symbol], ?parameters: Prism::node?, ?body: Prism::node?, ?opening_loc: Location, ?closing_loc: Location, ?location: Location) -> BlockNode # - # source://prism//lib/prism/node.rb#1758 - sig { params(params: T.untyped).returns(Prism::BlockNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#1858 + sig do + params( + locals: T::Array[Symbol], + parameters: T.nilable(Prism::Node), + body: T.nilable(Prism::Node), + opening_loc: Prism::Location, + closing_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::BlockNode) + end + def copy(locals: T.unsafe(nil), parameters: T.unsafe(nil), body: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#1740 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#1840 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { locals: Array[Symbol], parameters: Node?, body: Node?, opening_loc: Location, closing_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { locals: Array[Symbol], parameters: Prism::node?, body: Prism::node?, opening_loc: Location, closing_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#1774 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#1866 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#1811 + # source://prism//lib/prism/node.rb#1904 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader locals: Array[Symbol] # - # source://prism//lib/prism/node.rb#1779 + # source://prism//lib/prism/node.rb#1871 sig { returns(T::Array[Symbol]) } def locals; end # def opening: () -> String # - # source://prism//lib/prism/node.rb#1801 + # source://prism//lib/prism/node.rb#1894 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#1788 + # source://prism//lib/prism/node.rb#1880 sig { returns(Prism::Location) } def opening_loc; end - # attr_reader parameters: Node? + # attr_reader parameters: Prism::node? # - # source://prism//lib/prism/node.rb#1782 + # source://prism//lib/prism/node.rb#1874 sig { returns(T.nilable(Prism::Node)) } def parameters; end @@ -1927,7 +2297,8 @@ class Prism::BlockNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#1845 + # source://prism//lib/prism/node.rb#1938 + sig { override.returns(Symbol) } def type; end class << self @@ -1938,7 +2309,7 @@ class Prism::BlockNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#1855 + # source://prism//lib/prism/node.rb#1948 def type; end end end @@ -1949,86 +2320,112 @@ end # ^^ # end # -# source://prism//lib/prism/node.rb#1865 +# source://prism//lib/prism/node.rb#1970 class Prism::BlockParameterNode < ::Prism::Node # def initialize: (Integer flags, Symbol? name, Location? name_loc, Location operator_loc, Location location) -> void # # @return [BlockParameterNode] a new instance of BlockParameterNode # - # source://prism//lib/prism/node.rb#1867 + # source://prism//lib/prism/node.rb#1972 + sig do + params( + source: Prism::Source, + flags: Integer, + name: T.nilable(Symbol), + name_loc: T.nilable(Prism::Location), + operator_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, flags, name, name_loc, operator_loc, location); 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#2097 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#1878 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#1983 + 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#1883 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#1988 + 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#1893 + # source://prism//lib/prism/node.rb#1998 + 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#1888 + # source://prism//lib/prism/node.rb#1993 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> BlockParameterNode + # def copy: (?flags: Integer, ?name: Symbol?, ?name_loc: Location?, ?operator_loc: Location, ?location: Location) -> BlockParameterNode # - # source://prism//lib/prism/node.rb#1898 - sig { params(params: T.untyped).returns(Prism::BlockParameterNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#2003 + sig do + params( + flags: Integer, + name: T.nilable(Symbol), + name_loc: T.nilable(Prism::Location), + operator_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::BlockParameterNode) + end + def copy(flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#1883 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#1988 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, name: Symbol?, name_loc: Location?, operator_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#1913 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#2011 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#1954 + # source://prism//lib/prism/node.rb#2053 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol? # - # source://prism//lib/prism/node.rb#1922 + # source://prism//lib/prism/node.rb#2020 sig { returns(T.nilable(Symbol)) } def name; end # attr_reader name_loc: Location? # - # source://prism//lib/prism/node.rb#1925 + # source://prism//lib/prism/node.rb#2023 sig { returns(T.nilable(Prism::Location)) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#1949 + # source://prism//lib/prism/node.rb#2048 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#1937 + # source://prism//lib/prism/node.rb#2036 sig { returns(Prism::Location) } def operator_loc; end @@ -2036,7 +2433,7 @@ class Prism::BlockParameterNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#1944 + # source://prism//lib/prism/node.rb#2043 sig { returns(T::Boolean) } def repeated_parameter?; end @@ -2055,14 +2452,15 @@ class Prism::BlockParameterNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#1982 + # source://prism//lib/prism/node.rb#2081 + sig { override.returns(Symbol) } def type; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#1918 + # source://prism//lib/prism/node.rb#2016 sig { returns(Integer) } def flags; end @@ -2074,7 +2472,7 @@ class Prism::BlockParameterNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#1992 + # source://prism//lib/prism/node.rb#2091 def type; end end end @@ -2088,98 +2486,124 @@ end # ^^^^^^^^^^^^^^^^^ # end # -# source://prism//lib/prism/node.rb#2005 +# source://prism//lib/prism/node.rb#2114 class Prism::BlockParametersNode < ::Prism::Node - # def initialize: (ParametersNode? parameters, Array[Node] locals, Location? opening_loc, Location? closing_loc, Location location) -> void + # def initialize: (ParametersNode? parameters, Array[BlockLocalVariableNode] locals, Location? opening_loc, Location? closing_loc, Location location) -> void # # @return [BlockParametersNode] a new instance of BlockParametersNode # - # source://prism//lib/prism/node.rb#2007 + # source://prism//lib/prism/node.rb#2116 + sig do + params( + source: Prism::Source, + parameters: T.nilable(Prism::ParametersNode), + locals: T::Array[Prism::BlockLocalVariableNode], + opening_loc: T.nilable(Prism::Location), + closing_loc: T.nilable(Prism::Location), + location: Prism::Location + ).void + end def initialize(source, parameters, locals, opening_loc, closing_loc, location); 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#2249 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#2018 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#2127 + 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#2023 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#2132 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String? # - # source://prism//lib/prism/node.rb#2097 + # source://prism//lib/prism/node.rb#2200 sig { returns(T.nilable(String)) } def closing; end # attr_reader closing_loc: Location? # - # source://prism//lib/prism/node.rb#2079 + # source://prism//lib/prism/node.rb#2182 sig { returns(T.nilable(Prism::Location)) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#2036 + # source://prism//lib/prism/node.rb#2145 + 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#2028 + # source://prism//lib/prism/node.rb#2137 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> BlockParametersNode + # def copy: (?parameters: ParametersNode?, ?locals: Array[BlockLocalVariableNode], ?opening_loc: Location?, ?closing_loc: Location?, ?location: Location) -> BlockParametersNode # - # source://prism//lib/prism/node.rb#2041 - sig { params(params: T.untyped).returns(Prism::BlockParametersNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#2150 + sig do + params( + parameters: T.nilable(Prism::ParametersNode), + locals: T::Array[Prism::BlockLocalVariableNode], + opening_loc: T.nilable(Prism::Location), + closing_loc: T.nilable(Prism::Location), + location: Prism::Location + ).returns(Prism::BlockParametersNode) + end + def copy(parameters: T.unsafe(nil), locals: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#2023 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#2132 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { parameters: ParametersNode?, locals: Array[Node], opening_loc: Location?, closing_loc: Location?, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { parameters: ParametersNode?, locals: Array[BlockLocalVariableNode], opening_loc: Location?, closing_loc: Location?, location: Location } # - # source://prism//lib/prism/node.rb#2056 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#2158 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#2102 + # source://prism//lib/prism/node.rb#2205 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end - # attr_reader locals: Array[Node] + # attr_reader locals: Array[BlockLocalVariableNode] # - # source://prism//lib/prism/node.rb#2064 - sig { returns(T::Array[Prism::Node]) } + # source://prism//lib/prism/node.rb#2166 + sig { returns(T::Array[Prism::BlockLocalVariableNode]) } def locals; end # def opening: () -> String? # - # source://prism//lib/prism/node.rb#2092 + # source://prism//lib/prism/node.rb#2195 sig { returns(T.nilable(String)) } def opening; end # attr_reader opening_loc: Location? # - # source://prism//lib/prism/node.rb#2067 + # source://prism//lib/prism/node.rb#2169 sig { returns(T.nilable(Prism::Location)) } def opening_loc; end # attr_reader parameters: ParametersNode? # - # source://prism//lib/prism/node.rb#2061 + # source://prism//lib/prism/node.rb#2163 sig { returns(T.nilable(Prism::ParametersNode)) } def parameters; end @@ -2198,7 +2622,8 @@ class Prism::BlockParametersNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#2130 + # source://prism//lib/prism/node.rb#2233 + sig { override.returns(Symbol) } def type; end class << self @@ -2209,7 +2634,7 @@ class Prism::BlockParametersNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#2140 + # source://prism//lib/prism/node.rb#2243 def type; end end end @@ -2219,80 +2644,108 @@ end # break foo # ^^^^^^^^^ # -# source://prism//lib/prism/node.rb#2149 +# source://prism//lib/prism/node.rb#2263 class Prism::BreakNode < ::Prism::Node # def initialize: (ArgumentsNode? arguments, Location keyword_loc, Location location) -> void # # @return [BreakNode] a new instance of BreakNode # - # source://prism//lib/prism/node.rb#2151 + # source://prism//lib/prism/node.rb#2265 + sig do + params( + source: Prism::Source, + arguments: T.nilable(Prism::ArgumentsNode), + keyword_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, arguments, keyword_loc, location); 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#2372 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#2160 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#2274 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end - # attr_reader arguments: ArgumentsNode? + # 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). # - # source://prism//lib/prism/node.rb#2200 + # break foo + # ^^^ + # + # source://prism//lib/prism/node.rb#2312 sig { returns(T.nilable(Prism::ArgumentsNode)) } def arguments; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#2165 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#2279 + 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#2177 + # source://prism//lib/prism/node.rb#2291 + 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#2170 + # source://prism//lib/prism/node.rb#2284 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> BreakNode + # def copy: (?arguments: ArgumentsNode?, ?keyword_loc: Location, ?location: Location) -> BreakNode # - # source://prism//lib/prism/node.rb#2182 - sig { params(params: T.untyped).returns(Prism::BreakNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#2296 + sig do + params( + arguments: T.nilable(Prism::ArgumentsNode), + keyword_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::BreakNode) + end + def copy(arguments: T.unsafe(nil), keyword_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#2165 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#2279 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { arguments: ArgumentsNode?, keyword_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#2195 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#2304 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#2215 + # source://prism//lib/prism/node.rb#2330 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#2210 + # source://prism//lib/prism/node.rb#2325 sig { returns(String) } def keyword; end - # attr_reader keyword_loc: Location + # The location of the `break` keyword. + # + # break foo + # ^^^^^ # - # source://prism//lib/prism/node.rb#2203 + # source://prism//lib/prism/node.rb#2318 sig { returns(Prism::Location) } def keyword_loc; end @@ -2311,7 +2764,8 @@ class Prism::BreakNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#2241 + # source://prism//lib/prism/node.rb#2356 + sig { override.returns(Symbol) } def type; end class << self @@ -2322,7 +2776,7 @@ class Prism::BreakNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#2251 + # source://prism//lib/prism/node.rb#2366 def type; end end end @@ -2332,126 +2786,160 @@ end # foo.bar &&= value # ^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#2260 +# source://prism//lib/prism/node.rb#2383 class Prism::CallAndWriteNode < ::Prism::Node - # def initialize: (Integer flags, Node? receiver, Location? call_operator_loc, Location? message_loc, Symbol read_name, Symbol write_name, Location operator_loc, Node value, Location location) -> void + # def initialize: (Integer flags, Prism::node? receiver, Location? call_operator_loc, Location? message_loc, Symbol read_name, Symbol write_name, Location operator_loc, Prism::node value, Location location) -> void # # @return [CallAndWriteNode] a new instance of CallAndWriteNode # - # source://prism//lib/prism/node.rb#2262 + # source://prism//lib/prism/node.rb#2385 + sig do + params( + source: Prism::Source, + 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, + location: Prism::Location + ).void + end def initialize(source, flags, receiver, call_operator_loc, message_loc, read_name, write_name, operator_loc, value, location); 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#2570 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#2277 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#2400 + 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#2381 + # source://prism//lib/prism/node.rb#2495 sig { returns(T::Boolean) } def attribute_write?; end # def call_operator: () -> String? # - # source://prism//lib/prism/node.rb#2391 + # source://prism//lib/prism/node.rb#2505 sig { returns(T.nilable(String)) } def call_operator; end # attr_reader call_operator_loc: Location? # - # source://prism//lib/prism/node.rb#2331 + # source://prism//lib/prism/node.rb#2443 sig { returns(T.nilable(Prism::Location)) } def call_operator_loc; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#2282 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#2405 + 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#2295 + # source://prism//lib/prism/node.rb#2418 + 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#2287 + # source://prism//lib/prism/node.rb#2410 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> CallAndWriteNode + # def copy: (?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?message_loc: Location?, ?read_name: Symbol, ?write_name: Symbol, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> CallAndWriteNode # - # source://prism//lib/prism/node.rb#2300 - sig { params(params: T.untyped).returns(Prism::CallAndWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#2423 + sig do + params( + 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, + location: Prism::Location + ).returns(Prism::CallAndWriteNode) + end + def copy(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), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#2282 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#2405 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, receiver: Node?, call_operator_loc: Location?, message_loc: Location?, read_name: Symbol, write_name: Symbol, operator_loc: Location, value: Node, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, receiver: Prism::node?, call_operator_loc: Location?, message_loc: Location?, read_name: Symbol, write_name: Symbol, operator_loc: Location, value: Prism::node, location: Location } # - # source://prism//lib/prism/node.rb#2319 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#2431 + 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#2386 + # source://prism//lib/prism/node.rb#2500 sig { returns(T::Boolean) } def ignore_visibility?; end # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#2406 + # source://prism//lib/prism/node.rb#2520 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def message: () -> String? # - # source://prism//lib/prism/node.rb#2396 + # source://prism//lib/prism/node.rb#2510 sig { returns(T.nilable(String)) } def message; end # attr_reader message_loc: Location? # - # source://prism//lib/prism/node.rb#2343 + # source://prism//lib/prism/node.rb#2456 sig { returns(T.nilable(Prism::Location)) } def message_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#2401 + # source://prism//lib/prism/node.rb#2515 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#2361 + # source://prism//lib/prism/node.rb#2475 sig { returns(Prism::Location) } def operator_loc; end # attr_reader read_name: Symbol # - # source://prism//lib/prism/node.rb#2355 + # source://prism//lib/prism/node.rb#2469 sig { returns(Symbol) } def read_name; end - # attr_reader receiver: Node? + # attr_reader receiver: Prism::node? # - # source://prism//lib/prism/node.rb#2328 + # source://prism//lib/prism/node.rb#2440 sig { returns(T.nilable(Prism::Node)) } def receiver; end @@ -2459,7 +2947,7 @@ class Prism::CallAndWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#2371 + # source://prism//lib/prism/node.rb#2485 sig { returns(T::Boolean) } def safe_navigation?; end @@ -2478,12 +2966,13 @@ class Prism::CallAndWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#2440 + # source://prism//lib/prism/node.rb#2554 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#2367 + # source://prism//lib/prism/node.rb#2482 sig { returns(Prism::Node) } def value; end @@ -2491,21 +2980,21 @@ class Prism::CallAndWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#2376 + # source://prism//lib/prism/node.rb#2490 sig { returns(T::Boolean) } def variable_call?; end # attr_reader write_name: Symbol # - # source://prism//lib/prism/node.rb#2358 + # source://prism//lib/prism/node.rb#2472 sig { returns(Symbol) } def write_name; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#2324 + # source://prism//lib/prism/node.rb#2436 sig { returns(Integer) } def flags; end @@ -2517,7 +3006,7 @@ class Prism::CallAndWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#2450 + # source://prism//lib/prism/node.rb#2564 def type; end end end @@ -2542,24 +3031,45 @@ end # foo&.bar # ^^^^^^^^ # -# source://prism//lib/prism/node.rb#2474 +# source://prism//lib/prism/node.rb#2602 class Prism::CallNode < ::Prism::Node - # def initialize: (Integer flags, Node? receiver, Location? call_operator_loc, Symbol name, Location? message_loc, Location? opening_loc, ArgumentsNode? arguments, Location? closing_loc, Node? block, Location location) -> void + # def initialize: (Integer flags, Prism::node? receiver, Location? call_operator_loc, Symbol name, Location? message_loc, Location? opening_loc, ArgumentsNode? arguments, Location? closing_loc, Prism::node? block, Location location) -> void # # @return [CallNode] a new instance of CallNode # - # source://prism//lib/prism/node.rb#2476 + # source://prism//lib/prism/node.rb#2604 + sig do + params( + source: Prism::Source, + 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), + location: Prism::Location + ).void + end def initialize(source, flags, receiver, call_operator_loc, name, message_loc, opening_loc, arguments, closing_loc, block, location); 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#2834 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#2492 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#2620 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end # attr_reader arguments: ArgumentsNode? # - # source://prism//lib/prism/node.rb#2596 + # source://prism//lib/prism/node.rb#2715 sig { returns(T.nilable(Prism::ArgumentsNode)) } def arguments; end @@ -2567,119 +3077,134 @@ class Prism::CallNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#2625 + # source://prism//lib/prism/node.rb#2744 sig { returns(T::Boolean) } def attribute_write?; end - # attr_reader block: Node? + # attr_reader block: Prism::node? # - # source://prism//lib/prism/node.rb#2611 + # source://prism//lib/prism/node.rb#2731 sig { returns(T.nilable(Prism::Node)) } def block; end # def call_operator: () -> String? # - # source://prism//lib/prism/node.rb#2635 + # source://prism//lib/prism/node.rb#2754 sig { returns(T.nilable(String)) } def call_operator; end # attr_reader call_operator_loc: Location? # - # source://prism//lib/prism/node.rb#2557 + # source://prism//lib/prism/node.rb#2673 sig { returns(T.nilable(Prism::Location)) } def call_operator_loc; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#2497 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#2625 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String? # - # source://prism//lib/prism/node.rb#2650 + # source://prism//lib/prism/node.rb#2769 sig { returns(T.nilable(String)) } def closing; end # attr_reader closing_loc: Location? # - # source://prism//lib/prism/node.rb#2599 + # source://prism//lib/prism/node.rb#2718 sig { returns(T.nilable(Prism::Location)) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#2511 + # source://prism//lib/prism/node.rb#2639 + 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#2502 + # source://prism//lib/prism/node.rb#2630 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> CallNode + # def copy: (?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?, ?location: Location) -> CallNode # - # source://prism//lib/prism/node.rb#2516 - sig { params(params: T.untyped).returns(Prism::CallNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#2644 + sig do + params( + 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), + location: Prism::Location + ).returns(Prism::CallNode) + end + def copy(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), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#2497 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#2625 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, receiver: Node?, call_operator_loc: Location?, name: Symbol, message_loc: Location?, opening_loc: Location?, arguments: ArgumentsNode?, closing_loc: Location?, block: Node?, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { 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?, location: Location } # - # source://prism//lib/prism/node.rb#2536 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#2652 + 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#2630 + # source://prism//lib/prism/node.rb#2749 sig { returns(T::Boolean) } def ignore_visibility?; end # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#2655 + # source://prism//lib/prism/node.rb#2774 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def message: () -> String? # - # source://prism//lib/prism/node.rb#2640 + # source://prism//lib/prism/node.rb#2759 sig { returns(T.nilable(String)) } def message; end # attr_reader message_loc: Location? # - # source://prism//lib/prism/node.rb#2572 + # source://prism//lib/prism/node.rb#2689 sig { returns(T.nilable(Prism::Location)) } def message_loc; end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#2569 + # source://prism//lib/prism/node.rb#2686 sig { returns(Symbol) } def name; end # def opening: () -> String? # - # source://prism//lib/prism/node.rb#2645 + # source://prism//lib/prism/node.rb#2764 sig { returns(T.nilable(String)) } def opening; end # attr_reader opening_loc: Location? # - # source://prism//lib/prism/node.rb#2584 + # source://prism//lib/prism/node.rb#2702 sig { returns(T.nilable(Prism::Location)) } def opening_loc; end @@ -2694,7 +3219,7 @@ class Prism::CallNode < ::Prism::Node # foo + bar # ^^^ # - # source://prism//lib/prism/node.rb#2554 + # source://prism//lib/prism/node.rb#2670 sig { returns(T.nilable(Prism::Node)) } def receiver; end @@ -2702,7 +3227,7 @@ class Prism::CallNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#2615 + # source://prism//lib/prism/node.rb#2734 sig { returns(T::Boolean) } def safe_navigation?; end @@ -2721,22 +3246,23 @@ class Prism::CallNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#2699 + # source://prism//lib/prism/node.rb#2818 + sig { override.returns(Symbol) } def type; end # def variable_call?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#2620 + # source://prism//lib/prism/node.rb#2739 sig { returns(T::Boolean) } def variable_call?; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#2541 + # source://prism//lib/prism/node.rb#2657 sig { returns(Integer) } def flags; end @@ -2748,34 +3274,34 @@ class Prism::CallNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#2709 + # source://prism//lib/prism/node.rb#2828 def type; end end end # Flags for call nodes. # -# source://prism//lib/prism/node.rb#19253 +# source://prism//lib/prism/node.rb#20349 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#19261 +# source://prism//lib/prism/node.rb#20357 Prism::CallNodeFlags::ATTRIBUTE_WRITE = T.let(T.unsafe(nil), Integer) # a call that ignores method visibility # -# source://prism//lib/prism/node.rb#19264 +# source://prism//lib/prism/node.rb#20360 Prism::CallNodeFlags::IGNORE_VISIBILITY = T.let(T.unsafe(nil), Integer) # &. operator # -# source://prism//lib/prism/node.rb#19255 +# source://prism//lib/prism/node.rb#20351 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#19258 +# source://prism//lib/prism/node.rb#20354 Prism::CallNodeFlags::VARIABLE_CALL = T.let(T.unsafe(nil), Integer) # Represents the use of an assignment operator on a call. @@ -2783,126 +3309,162 @@ Prism::CallNodeFlags::VARIABLE_CALL = T.let(T.unsafe(nil), Integer) # foo.bar += baz # ^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#2718 +# source://prism//lib/prism/node.rb#2852 class Prism::CallOperatorWriteNode < ::Prism::Node - # def initialize: (Integer flags, Node? receiver, Location? call_operator_loc, Location? message_loc, Symbol read_name, Symbol write_name, Symbol operator, Location operator_loc, Node value, Location location) -> void + # def initialize: (Integer flags, Prism::node? receiver, Location? call_operator_loc, Location? message_loc, Symbol read_name, Symbol write_name, Symbol operator, Location operator_loc, Prism::node value, Location location) -> void # # @return [CallOperatorWriteNode] a new instance of CallOperatorWriteNode # - # source://prism//lib/prism/node.rb#2720 + # source://prism//lib/prism/node.rb#2854 + sig do + params( + source: Prism::Source, + 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: Symbol, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).void + end def initialize(source, flags, receiver, call_operator_loc, message_loc, read_name, write_name, operator, operator_loc, value, location); 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#3039 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#2736 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#2870 + 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#2844 + # source://prism//lib/prism/node.rb#2968 sig { returns(T::Boolean) } def attribute_write?; end # def call_operator: () -> String? # - # source://prism//lib/prism/node.rb#2854 + # source://prism//lib/prism/node.rb#2978 sig { returns(T.nilable(String)) } def call_operator; end # attr_reader call_operator_loc: Location? # - # source://prism//lib/prism/node.rb#2791 + # source://prism//lib/prism/node.rb#2913 sig { returns(T.nilable(Prism::Location)) } def call_operator_loc; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#2741 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#2875 + 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#2754 + # source://prism//lib/prism/node.rb#2888 + 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#2746 + # source://prism//lib/prism/node.rb#2880 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> CallOperatorWriteNode + # def copy: (?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?message_loc: Location?, ?read_name: Symbol, ?write_name: Symbol, ?operator: Symbol, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> CallOperatorWriteNode # - # source://prism//lib/prism/node.rb#2759 - sig { params(params: T.untyped).returns(Prism::CallOperatorWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#2893 + sig do + params( + 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: Symbol, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).returns(Prism::CallOperatorWriteNode) + end + def copy(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: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#2741 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#2875 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, receiver: Node?, call_operator_loc: Location?, message_loc: Location?, read_name: Symbol, write_name: Symbol, operator: Symbol, operator_loc: Location, value: Node, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, receiver: Prism::node?, call_operator_loc: Location?, message_loc: Location?, read_name: Symbol, write_name: Symbol, operator: Symbol, operator_loc: Location, value: Prism::node, location: Location } # - # source://prism//lib/prism/node.rb#2779 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#2901 + 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#2849 + # source://prism//lib/prism/node.rb#2973 sig { returns(T::Boolean) } def ignore_visibility?; end # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#2864 + # source://prism//lib/prism/node.rb#2988 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def message: () -> String? # - # source://prism//lib/prism/node.rb#2859 + # source://prism//lib/prism/node.rb#2983 sig { returns(T.nilable(String)) } def message; end # attr_reader message_loc: Location? # - # source://prism//lib/prism/node.rb#2803 + # source://prism//lib/prism/node.rb#2926 sig { returns(T.nilable(Prism::Location)) } def message_loc; end # attr_reader operator: Symbol # - # source://prism//lib/prism/node.rb#2821 + # source://prism//lib/prism/node.rb#2945 sig { returns(Symbol) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#2824 + # source://prism//lib/prism/node.rb#2948 sig { returns(Prism::Location) } def operator_loc; end # attr_reader read_name: Symbol # - # source://prism//lib/prism/node.rb#2815 + # source://prism//lib/prism/node.rb#2939 sig { returns(Symbol) } def read_name; end - # attr_reader receiver: Node? + # attr_reader receiver: Prism::node? # - # source://prism//lib/prism/node.rb#2788 + # source://prism//lib/prism/node.rb#2910 sig { returns(T.nilable(Prism::Node)) } def receiver; end @@ -2910,7 +3472,7 @@ class Prism::CallOperatorWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#2834 + # source://prism//lib/prism/node.rb#2958 sig { returns(T::Boolean) } def safe_navigation?; end @@ -2929,12 +3491,13 @@ class Prism::CallOperatorWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#2899 + # source://prism//lib/prism/node.rb#3023 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#2830 + # source://prism//lib/prism/node.rb#2955 sig { returns(Prism::Node) } def value; end @@ -2942,21 +3505,21 @@ class Prism::CallOperatorWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#2839 + # source://prism//lib/prism/node.rb#2963 sig { returns(T::Boolean) } def variable_call?; end # attr_reader write_name: Symbol # - # source://prism//lib/prism/node.rb#2818 + # source://prism//lib/prism/node.rb#2942 sig { returns(Symbol) } def write_name; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#2784 + # source://prism//lib/prism/node.rb#2906 sig { returns(Integer) } def flags; end @@ -2968,7 +3531,7 @@ class Prism::CallOperatorWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#2909 + # source://prism//lib/prism/node.rb#3033 def type; end end end @@ -2978,126 +3541,160 @@ end # foo.bar ||= value # ^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#2918 +# source://prism//lib/prism/node.rb#3057 class Prism::CallOrWriteNode < ::Prism::Node - # def initialize: (Integer flags, Node? receiver, Location? call_operator_loc, Location? message_loc, Symbol read_name, Symbol write_name, Location operator_loc, Node value, Location location) -> void + # def initialize: (Integer flags, Prism::node? receiver, Location? call_operator_loc, Location? message_loc, Symbol read_name, Symbol write_name, Location operator_loc, Prism::node value, Location location) -> void # # @return [CallOrWriteNode] a new instance of CallOrWriteNode # - # source://prism//lib/prism/node.rb#2920 + # source://prism//lib/prism/node.rb#3059 + sig do + params( + source: Prism::Source, + 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, + location: Prism::Location + ).void + end def initialize(source, flags, receiver, call_operator_loc, message_loc, read_name, write_name, operator_loc, value, location); 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#3244 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#2935 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#3074 + 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#3039 + # source://prism//lib/prism/node.rb#3169 sig { returns(T::Boolean) } def attribute_write?; end # def call_operator: () -> String? # - # source://prism//lib/prism/node.rb#3049 + # source://prism//lib/prism/node.rb#3179 sig { returns(T.nilable(String)) } def call_operator; end # attr_reader call_operator_loc: Location? # - # source://prism//lib/prism/node.rb#2989 + # source://prism//lib/prism/node.rb#3117 sig { returns(T.nilable(Prism::Location)) } def call_operator_loc; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#2940 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#3079 + 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#2953 + # source://prism//lib/prism/node.rb#3092 + 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#2945 + # source://prism//lib/prism/node.rb#3084 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> CallOrWriteNode + # def copy: (?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?message_loc: Location?, ?read_name: Symbol, ?write_name: Symbol, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> CallOrWriteNode # - # source://prism//lib/prism/node.rb#2958 - sig { params(params: T.untyped).returns(Prism::CallOrWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#3097 + sig do + params( + 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, + location: Prism::Location + ).returns(Prism::CallOrWriteNode) + end + def copy(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), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#2940 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#3079 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, receiver: Node?, call_operator_loc: Location?, message_loc: Location?, read_name: Symbol, write_name: Symbol, operator_loc: Location, value: Node, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, receiver: Prism::node?, call_operator_loc: Location?, message_loc: Location?, read_name: Symbol, write_name: Symbol, operator_loc: Location, value: Prism::node, location: Location } # - # source://prism//lib/prism/node.rb#2977 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#3105 + 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#3044 + # source://prism//lib/prism/node.rb#3174 sig { returns(T::Boolean) } def ignore_visibility?; end # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#3064 + # source://prism//lib/prism/node.rb#3194 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def message: () -> String? # - # source://prism//lib/prism/node.rb#3054 + # source://prism//lib/prism/node.rb#3184 sig { returns(T.nilable(String)) } def message; end # attr_reader message_loc: Location? # - # source://prism//lib/prism/node.rb#3001 + # source://prism//lib/prism/node.rb#3130 sig { returns(T.nilable(Prism::Location)) } def message_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#3059 + # source://prism//lib/prism/node.rb#3189 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#3019 + # source://prism//lib/prism/node.rb#3149 sig { returns(Prism::Location) } def operator_loc; end # attr_reader read_name: Symbol # - # source://prism//lib/prism/node.rb#3013 + # source://prism//lib/prism/node.rb#3143 sig { returns(Symbol) } def read_name; end - # attr_reader receiver: Node? + # attr_reader receiver: Prism::node? # - # source://prism//lib/prism/node.rb#2986 + # source://prism//lib/prism/node.rb#3114 sig { returns(T.nilable(Prism::Node)) } def receiver; end @@ -3105,7 +3702,7 @@ class Prism::CallOrWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#3029 + # source://prism//lib/prism/node.rb#3159 sig { returns(T::Boolean) } def safe_navigation?; end @@ -3124,12 +3721,13 @@ class Prism::CallOrWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#3098 + # source://prism//lib/prism/node.rb#3228 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#3025 + # source://prism//lib/prism/node.rb#3156 sig { returns(Prism::Node) } def value; end @@ -3137,21 +3735,21 @@ class Prism::CallOrWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#3034 + # source://prism//lib/prism/node.rb#3164 sig { returns(T::Boolean) } def variable_call?; end # attr_reader write_name: Symbol # - # source://prism//lib/prism/node.rb#3016 + # source://prism//lib/prism/node.rb#3146 sig { returns(Symbol) } def write_name; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#2982 + # source://prism//lib/prism/node.rb#3110 sig { returns(Integer) } def flags; end @@ -3163,7 +3761,7 @@ class Prism::CallOrWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#3108 + # source://prism//lib/prism/node.rb#3238 def type; end end end @@ -3181,114 +3779,142 @@ end # for foo.bar in baz do end # ^^^^^^^ # -# source://prism//lib/prism/node.rb#3125 +# source://prism//lib/prism/node.rb#3269 class Prism::CallTargetNode < ::Prism::Node - # def initialize: (Integer flags, Node receiver, Location call_operator_loc, Symbol name, Location message_loc, Location location) -> void + # def initialize: (Integer flags, Prism::node receiver, Location call_operator_loc, Symbol name, Location message_loc, Location location) -> void # # @return [CallTargetNode] a new instance of CallTargetNode # - # source://prism//lib/prism/node.rb#3127 + # source://prism//lib/prism/node.rb#3271 + sig do + params( + source: Prism::Source, + flags: Integer, + receiver: Prism::Node, + call_operator_loc: Prism::Location, + name: Symbol, + message_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, flags, receiver, call_operator_loc, name, message_loc, location); 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#3412 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#3139 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#3283 + 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#3213 + # source://prism//lib/prism/node.rb#3350 sig { returns(T::Boolean) } def attribute_write?; end # def call_operator: () -> String # - # source://prism//lib/prism/node.rb#3223 + # source://prism//lib/prism/node.rb#3360 sig { returns(String) } def call_operator; end # attr_reader call_operator_loc: Location # - # source://prism//lib/prism/node.rb#3187 + # source://prism//lib/prism/node.rb#3323 sig { returns(Prism::Location) } def call_operator_loc; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#3144 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#3288 + 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#3154 + # source://prism//lib/prism/node.rb#3298 + 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#3149 + # source://prism//lib/prism/node.rb#3293 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> CallTargetNode + # def copy: (?flags: Integer, ?receiver: Prism::node, ?call_operator_loc: Location, ?name: Symbol, ?message_loc: Location, ?location: Location) -> CallTargetNode # - # source://prism//lib/prism/node.rb#3159 - sig { params(params: T.untyped).returns(Prism::CallTargetNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#3303 + sig do + params( + flags: Integer, + receiver: Prism::Node, + call_operator_loc: Prism::Location, + name: Symbol, + message_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::CallTargetNode) + end + def copy(flags: T.unsafe(nil), receiver: T.unsafe(nil), call_operator_loc: T.unsafe(nil), name: T.unsafe(nil), message_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#3144 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#3288 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, receiver: Node, call_operator_loc: Location, name: Symbol, message_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, receiver: Prism::node, call_operator_loc: Location, name: Symbol, message_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#3175 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#3311 + 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#3218 + # source://prism//lib/prism/node.rb#3355 sig { returns(T::Boolean) } def ignore_visibility?; end # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#3233 + # source://prism//lib/prism/node.rb#3370 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def message: () -> String # - # source://prism//lib/prism/node.rb#3228 + # source://prism//lib/prism/node.rb#3365 sig { returns(String) } def message; end # attr_reader message_loc: Location # - # source://prism//lib/prism/node.rb#3196 + # source://prism//lib/prism/node.rb#3333 sig { returns(Prism::Location) } def message_loc; end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#3193 + # source://prism//lib/prism/node.rb#3330 sig { returns(Symbol) } def name; end - # attr_reader receiver: Node + # attr_reader receiver: Prism::node # - # source://prism//lib/prism/node.rb#3184 + # source://prism//lib/prism/node.rb#3320 sig { returns(Prism::Node) } def receiver; end @@ -3296,7 +3922,7 @@ class Prism::CallTargetNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#3203 + # source://prism//lib/prism/node.rb#3340 sig { returns(T::Boolean) } def safe_navigation?; end @@ -3315,22 +3941,23 @@ class Prism::CallTargetNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#3259 + # source://prism//lib/prism/node.rb#3396 + sig { override.returns(Symbol) } def type; end # def variable_call?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#3208 + # source://prism//lib/prism/node.rb#3345 sig { returns(T::Boolean) } def variable_call?; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#3180 + # source://prism//lib/prism/node.rb#3316 sig { returns(Integer) } def flags; end @@ -3342,7 +3969,7 @@ class Prism::CallTargetNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#3269 + # source://prism//lib/prism/node.rb#3406 def type; end end end @@ -3352,80 +3979,104 @@ end # foo => [bar => baz] # ^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#3278 +# source://prism//lib/prism/node.rb#3426 class Prism::CapturePatternNode < ::Prism::Node - # def initialize: (Node value, Node target, Location operator_loc, Location location) -> void + # def initialize: (Prism::node value, Prism::node target, Location operator_loc, Location location) -> void # # @return [CapturePatternNode] a new instance of CapturePatternNode # - # source://prism//lib/prism/node.rb#3280 + # source://prism//lib/prism/node.rb#3428 + sig do + params( + source: Prism::Source, + value: Prism::Node, + target: Prism::Node, + operator_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, value, target, operator_loc, location); 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#3529 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#3290 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#3438 + 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#3295 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#3443 + 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#3305 + # source://prism//lib/prism/node.rb#3453 + 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#3300 + # source://prism//lib/prism/node.rb#3448 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> CapturePatternNode + # def copy: (?value: Prism::node, ?target: Prism::node, ?operator_loc: Location, ?location: Location) -> CapturePatternNode # - # source://prism//lib/prism/node.rb#3310 - sig { params(params: T.untyped).returns(Prism::CapturePatternNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#3458 + sig do + params( + value: Prism::Node, + target: Prism::Node, + operator_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::CapturePatternNode) + end + def copy(value: T.unsafe(nil), target: T.unsafe(nil), operator_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#3295 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#3443 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { value: Node, target: Node, operator_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { value: Prism::node, target: Prism::node, operator_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#3324 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#3466 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#3347 + # source://prism//lib/prism/node.rb#3489 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def operator: () -> String # - # source://prism//lib/prism/node.rb#3342 + # source://prism//lib/prism/node.rb#3484 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#3335 + # source://prism//lib/prism/node.rb#3477 sig { returns(Prism::Location) } def operator_loc; end - # attr_reader target: Node + # attr_reader target: Prism::node # - # source://prism//lib/prism/node.rb#3332 + # source://prism//lib/prism/node.rb#3474 sig { returns(Prism::Node) } def target; end @@ -3444,12 +4095,13 @@ class Prism::CapturePatternNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#3371 + # source://prism//lib/prism/node.rb#3513 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#3329 + # source://prism//lib/prism/node.rb#3471 sig { returns(Prism::Node) } def value; end @@ -3461,7 +4113,7 @@ class Prism::CapturePatternNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#3381 + # source://prism//lib/prism/node.rb#3523 def type; end end end @@ -3473,104 +4125,132 @@ end # end # ^^^^^^^^^ # -# source://prism//lib/prism/node.rb#3392 +# source://prism//lib/prism/node.rb#3543 class Prism::CaseMatchNode < ::Prism::Node - # def initialize: (Node? predicate, Array[Node] conditions, ElseNode? consequent, Location case_keyword_loc, Location end_keyword_loc, Location location) -> void + # def initialize: (Prism::node? predicate, Array[Prism::node] conditions, ElseNode? consequent, Location case_keyword_loc, Location end_keyword_loc, Location location) -> void # # @return [CaseMatchNode] a new instance of CaseMatchNode # - # source://prism//lib/prism/node.rb#3394 + # source://prism//lib/prism/node.rb#3545 + sig do + params( + source: Prism::Source, + predicate: T.nilable(Prism::Node), + conditions: T::Array[Prism::Node], + consequent: T.nilable(Prism::ElseNode), + case_keyword_loc: Prism::Location, + end_keyword_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, predicate, conditions, consequent, case_keyword_loc, end_keyword_loc, location); 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#3677 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#3406 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#3557 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end # def case_keyword: () -> String # - # source://prism//lib/prism/node.rb#3473 + # source://prism//lib/prism/node.rb#3617 sig { returns(String) } def case_keyword; end # attr_reader case_keyword_loc: Location # - # source://prism//lib/prism/node.rb#3460 + # source://prism//lib/prism/node.rb#3603 sig { returns(Prism::Location) } def case_keyword_loc; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#3411 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#3562 + 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#3425 + # source://prism//lib/prism/node.rb#3576 + 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#3416 + # source://prism//lib/prism/node.rb#3567 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # attr_reader conditions: Array[Node] + # attr_reader conditions: Array[Prism::node] # - # source://prism//lib/prism/node.rb#3454 + # source://prism//lib/prism/node.rb#3597 sig { returns(T::Array[Prism::Node]) } def conditions; end # attr_reader consequent: ElseNode? # - # source://prism//lib/prism/node.rb#3457 + # source://prism//lib/prism/node.rb#3600 sig { returns(T.nilable(Prism::ElseNode)) } def consequent; end - # def copy: (**params) -> CaseMatchNode + # def copy: (?predicate: Prism::node?, ?conditions: Array[Prism::node], ?consequent: ElseNode?, ?case_keyword_loc: Location, ?end_keyword_loc: Location, ?location: Location) -> CaseMatchNode # - # source://prism//lib/prism/node.rb#3430 - sig { params(params: T.untyped).returns(Prism::CaseMatchNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#3581 + sig do + params( + predicate: T.nilable(Prism::Node), + conditions: T::Array[Prism::Node], + consequent: T.nilable(Prism::ElseNode), + case_keyword_loc: Prism::Location, + end_keyword_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::CaseMatchNode) + end + def copy(predicate: T.unsafe(nil), conditions: T.unsafe(nil), consequent: T.unsafe(nil), case_keyword_loc: T.unsafe(nil), end_keyword_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#3411 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#3562 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { predicate: Node?, conditions: Array[Node], consequent: ElseNode?, case_keyword_loc: Location, end_keyword_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { predicate: Prism::node?, conditions: Array[Prism::node], consequent: ElseNode?, case_keyword_loc: Location, end_keyword_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#3446 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#3589 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end # def end_keyword: () -> String # - # source://prism//lib/prism/node.rb#3478 + # source://prism//lib/prism/node.rb#3622 sig { returns(String) } def end_keyword; end # attr_reader end_keyword_loc: Location # - # source://prism//lib/prism/node.rb#3466 + # source://prism//lib/prism/node.rb#3610 sig { returns(Prism::Location) } def end_keyword_loc; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#3483 + # source://prism//lib/prism/node.rb#3627 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end - # attr_reader predicate: Node? + # attr_reader predicate: Prism::node? # - # source://prism//lib/prism/node.rb#3451 + # source://prism//lib/prism/node.rb#3594 sig { returns(T.nilable(Prism::Node)) } def predicate; end @@ -3589,7 +4269,8 @@ class Prism::CaseMatchNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#3517 + # source://prism//lib/prism/node.rb#3661 + sig { override.returns(Symbol) } def type; end class << self @@ -3600,7 +4281,7 @@ class Prism::CaseMatchNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#3527 + # source://prism//lib/prism/node.rb#3671 def type; end end end @@ -3612,104 +4293,132 @@ end # end # ^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#3538 +# source://prism//lib/prism/node.rb#3694 class Prism::CaseNode < ::Prism::Node - # def initialize: (Node? predicate, Array[Node] conditions, ElseNode? consequent, Location case_keyword_loc, Location end_keyword_loc, Location location) -> void + # def initialize: (Prism::node? predicate, Array[Prism::node] conditions, ElseNode? consequent, Location case_keyword_loc, Location end_keyword_loc, Location location) -> void # # @return [CaseNode] a new instance of CaseNode # - # source://prism//lib/prism/node.rb#3540 + # source://prism//lib/prism/node.rb#3696 + sig do + params( + source: Prism::Source, + predicate: T.nilable(Prism::Node), + conditions: T::Array[Prism::Node], + consequent: T.nilable(Prism::ElseNode), + case_keyword_loc: Prism::Location, + end_keyword_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, predicate, conditions, consequent, case_keyword_loc, end_keyword_loc, location); 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#3828 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#3552 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#3708 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end # def case_keyword: () -> String # - # source://prism//lib/prism/node.rb#3619 + # source://prism//lib/prism/node.rb#3768 sig { returns(String) } def case_keyword; end # attr_reader case_keyword_loc: Location # - # source://prism//lib/prism/node.rb#3606 + # source://prism//lib/prism/node.rb#3754 sig { returns(Prism::Location) } def case_keyword_loc; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#3557 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#3713 + 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#3571 + # source://prism//lib/prism/node.rb#3727 + 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#3562 + # source://prism//lib/prism/node.rb#3718 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # attr_reader conditions: Array[Node] + # attr_reader conditions: Array[Prism::node] # - # source://prism//lib/prism/node.rb#3600 + # source://prism//lib/prism/node.rb#3748 sig { returns(T::Array[Prism::Node]) } def conditions; end # attr_reader consequent: ElseNode? # - # source://prism//lib/prism/node.rb#3603 + # source://prism//lib/prism/node.rb#3751 sig { returns(T.nilable(Prism::ElseNode)) } def consequent; end - # def copy: (**params) -> CaseNode + # def copy: (?predicate: Prism::node?, ?conditions: Array[Prism::node], ?consequent: ElseNode?, ?case_keyword_loc: Location, ?end_keyword_loc: Location, ?location: Location) -> CaseNode # - # source://prism//lib/prism/node.rb#3576 - sig { params(params: T.untyped).returns(Prism::CaseNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#3732 + sig do + params( + predicate: T.nilable(Prism::Node), + conditions: T::Array[Prism::Node], + consequent: T.nilable(Prism::ElseNode), + case_keyword_loc: Prism::Location, + end_keyword_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::CaseNode) + end + def copy(predicate: T.unsafe(nil), conditions: T.unsafe(nil), consequent: T.unsafe(nil), case_keyword_loc: T.unsafe(nil), end_keyword_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#3557 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#3713 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { predicate: Node?, conditions: Array[Node], consequent: ElseNode?, case_keyword_loc: Location, end_keyword_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { predicate: Prism::node?, conditions: Array[Prism::node], consequent: ElseNode?, case_keyword_loc: Location, end_keyword_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#3592 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#3740 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end # def end_keyword: () -> String # - # source://prism//lib/prism/node.rb#3624 + # source://prism//lib/prism/node.rb#3773 sig { returns(String) } def end_keyword; end # attr_reader end_keyword_loc: Location # - # source://prism//lib/prism/node.rb#3612 + # source://prism//lib/prism/node.rb#3761 sig { returns(Prism::Location) } def end_keyword_loc; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#3629 + # source://prism//lib/prism/node.rb#3778 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end - # attr_reader predicate: Node? + # attr_reader predicate: Prism::node? # - # source://prism//lib/prism/node.rb#3597 + # source://prism//lib/prism/node.rb#3745 sig { returns(T.nilable(Prism::Node)) } def predicate; end @@ -3728,7 +4437,8 @@ class Prism::CaseNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#3663 + # source://prism//lib/prism/node.rb#3812 + sig { override.returns(Symbol) } def type; end class << self @@ -3739,7 +4449,7 @@ class Prism::CaseNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#3673 + # source://prism//lib/prism/node.rb#3822 def type; end end end @@ -3749,128 +4459,162 @@ end # class Foo end # ^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#3682 +# source://prism//lib/prism/node.rb#3843 class Prism::ClassNode < ::Prism::Node - # def initialize: (Array[Symbol] locals, Location class_keyword_loc, Node constant_path, Location? inheritance_operator_loc, Node? superclass, Node? body, Location end_keyword_loc, Symbol name, Location location) -> void + # def initialize: (Array[Symbol] locals, Location class_keyword_loc, Prism::node constant_path, Location? inheritance_operator_loc, Prism::node? superclass, Prism::node? body, Location end_keyword_loc, Symbol name, Location location) -> void # # @return [ClassNode] a new instance of ClassNode # - # source://prism//lib/prism/node.rb#3684 + # source://prism//lib/prism/node.rb#3845 + sig do + params( + source: Prism::Source, + 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, + location: Prism::Location + ).void + end def initialize(source, locals, class_keyword_loc, constant_path, inheritance_operator_loc, superclass, body, end_keyword_loc, name, location); 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#4008 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#3699 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#3860 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end - # attr_reader body: Node? + # attr_reader body: Prism::node? # - # source://prism//lib/prism/node.rb#3774 + # source://prism//lib/prism/node.rb#3926 sig { returns(T.nilable(Prism::Node)) } def body; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#3704 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#3865 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def class_keyword: () -> String # - # source://prism//lib/prism/node.rb#3787 + # source://prism//lib/prism/node.rb#3939 sig { returns(String) } def class_keyword; end # attr_reader class_keyword_loc: Location # - # source://prism//lib/prism/node.rb#3750 + # source://prism//lib/prism/node.rb#3900 sig { returns(Prism::Location) } def class_keyword_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#3718 + # source://prism//lib/prism/node.rb#3879 + 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#3709 + # source://prism//lib/prism/node.rb#3870 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # attr_reader constant_path: Node + # attr_reader constant_path: Prism::node # - # source://prism//lib/prism/node.rb#3756 + # source://prism//lib/prism/node.rb#3907 sig { returns(Prism::Node) } def constant_path; end - # def copy: (**params) -> ClassNode + # def copy: (?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, ?location: Location) -> ClassNode # - # source://prism//lib/prism/node.rb#3723 - sig { params(params: T.untyped).returns(Prism::ClassNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#3884 + sig do + params( + 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, + location: Prism::Location + ).returns(Prism::ClassNode) + end + def copy(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), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#3704 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#3865 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { locals: Array[Symbol], class_keyword_loc: Location, constant_path: Node, inheritance_operator_loc: Location?, superclass: Node?, body: Node?, end_keyword_loc: Location, name: Symbol, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { 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, location: Location } # - # source://prism//lib/prism/node.rb#3742 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#3892 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end # def end_keyword: () -> String # - # source://prism//lib/prism/node.rb#3797 + # source://prism//lib/prism/node.rb#3949 sig { returns(String) } def end_keyword; end # attr_reader end_keyword_loc: Location # - # source://prism//lib/prism/node.rb#3777 + # source://prism//lib/prism/node.rb#3929 sig { returns(Prism::Location) } 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#3792 + # source://prism//lib/prism/node.rb#3944 sig { returns(T.nilable(String)) } def inheritance_operator; end # attr_reader inheritance_operator_loc: Location? # - # source://prism//lib/prism/node.rb#3759 + # source://prism//lib/prism/node.rb#3910 sig { returns(T.nilable(Prism::Location)) } def inheritance_operator_loc; end # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#3802 + # source://prism//lib/prism/node.rb#3954 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader locals: Array[Symbol] # - # source://prism//lib/prism/node.rb#3747 + # source://prism//lib/prism/node.rb#3897 sig { returns(T::Array[Symbol]) } def locals; end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#3783 + # source://prism//lib/prism/node.rb#3936 sig { returns(Symbol) } def name; end - # attr_reader superclass: Node? + # attr_reader superclass: Prism::node? # - # source://prism//lib/prism/node.rb#3771 + # source://prism//lib/prism/node.rb#3923 sig { returns(T.nilable(Prism::Node)) } def superclass; end @@ -3889,7 +4633,8 @@ class Prism::ClassNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#3840 + # source://prism//lib/prism/node.rb#3992 + sig { override.returns(Symbol) } def type; end class << self @@ -3900,7 +4645,7 @@ class Prism::ClassNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#3850 + # source://prism//lib/prism/node.rb#4002 def type; end end end @@ -3910,89 +4655,115 @@ end # @@target &&= value # ^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#3859 +# source://prism//lib/prism/node.rb#4026 class Prism::ClassVariableAndWriteNode < ::Prism::Node - # def initialize: (Symbol name, Location name_loc, Location operator_loc, Node value, Location location) -> void + # def initialize: (Symbol name, Location name_loc, Location operator_loc, Prism::node value, Location location) -> void # # @return [ClassVariableAndWriteNode] a new instance of ClassVariableAndWriteNode # - # source://prism//lib/prism/node.rb#3861 + # source://prism//lib/prism/node.rb#4028 + sig do + params( + source: Prism::Source, + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).void + end def initialize(source, name, name_loc, operator_loc, value, location); 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#4137 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#3872 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#4039 + 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#3877 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#4044 + 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#3887 + # source://prism//lib/prism/node.rb#4054 + 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#3882 + # source://prism//lib/prism/node.rb#4049 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ClassVariableAndWriteNode + # def copy: (?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> ClassVariableAndWriteNode # - # source://prism//lib/prism/node.rb#3892 - sig { params(params: T.untyped).returns(Prism::ClassVariableAndWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#4059 + sig do + params( + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).returns(Prism::ClassVariableAndWriteNode) + end + def copy(name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#3877 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#4044 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Node, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node, location: Location } # - # source://prism//lib/prism/node.rb#3907 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#4067 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end - # source://prism//lib/prism/desugar_compiler.rb#125 + # source://prism//lib/prism/desugar_compiler.rb#127 def desugar; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#3936 + # source://prism//lib/prism/node.rb#4097 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#3912 + # source://prism//lib/prism/node.rb#4072 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#3915 + # source://prism//lib/prism/node.rb#4075 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#3931 + # source://prism//lib/prism/node.rb#4092 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#3921 + # source://prism//lib/prism/node.rb#4082 sig { returns(Prism::Location) } def operator_loc; end @@ -4011,12 +4782,13 @@ class Prism::ClassVariableAndWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#3960 + # source://prism//lib/prism/node.rb#4121 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#3927 + # source://prism//lib/prism/node.rb#4089 sig { returns(Prism::Node) } def value; end @@ -4028,7 +4800,7 @@ class Prism::ClassVariableAndWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#3970 + # source://prism//lib/prism/node.rb#4131 def type; end end end @@ -4038,89 +4810,117 @@ end # @@target += value # ^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#3979 +# source://prism//lib/prism/node.rb#4150 class Prism::ClassVariableOperatorWriteNode < ::Prism::Node - # def initialize: (Symbol name, Location name_loc, Location operator_loc, Node value, Symbol operator, Location location) -> void + # def initialize: (Symbol name, Location name_loc, Location operator_loc, Prism::node value, Symbol operator, Location location) -> void # # @return [ClassVariableOperatorWriteNode] a new instance of ClassVariableOperatorWriteNode # - # source://prism//lib/prism/node.rb#3981 + # source://prism//lib/prism/node.rb#4152 + sig do + params( + source: Prism::Source, + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + operator: Symbol, + location: Prism::Location + ).void + end def initialize(source, name, name_loc, operator_loc, value, operator, location); 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#4261 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#3993 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#4164 + 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#3998 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#4169 + 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#4008 + # source://prism//lib/prism/node.rb#4179 + 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#4003 + # source://prism//lib/prism/node.rb#4174 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ClassVariableOperatorWriteNode + # def copy: (?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?operator: Symbol, ?location: Location) -> ClassVariableOperatorWriteNode # - # source://prism//lib/prism/node.rb#4013 - sig { params(params: T.untyped).returns(Prism::ClassVariableOperatorWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#4184 + sig do + params( + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + operator: Symbol, + location: Prism::Location + ).returns(Prism::ClassVariableOperatorWriteNode) + end + def copy(name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil), operator: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#3998 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#4169 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Node, operator: Symbol, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node, operator: Symbol, location: Location } # - # source://prism//lib/prism/node.rb#4029 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#4192 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end - # source://prism//lib/prism/desugar_compiler.rb#137 + # source://prism//lib/prism/desugar_compiler.rb#139 def desugar; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#4056 + # source://prism//lib/prism/node.rb#4220 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#4034 + # source://prism//lib/prism/node.rb#4197 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#4037 + # source://prism//lib/prism/node.rb#4200 sig { returns(Prism::Location) } def name_loc; end # attr_reader operator: Symbol # - # source://prism//lib/prism/node.rb#4052 + # source://prism//lib/prism/node.rb#4217 sig { returns(Symbol) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#4043 + # source://prism//lib/prism/node.rb#4207 sig { returns(Prism::Location) } def operator_loc; end @@ -4139,12 +4939,13 @@ class Prism::ClassVariableOperatorWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#4081 + # source://prism//lib/prism/node.rb#4245 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#4049 + # source://prism//lib/prism/node.rb#4214 sig { returns(Prism::Node) } def value; end @@ -4156,7 +4957,7 @@ class Prism::ClassVariableOperatorWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#4091 + # source://prism//lib/prism/node.rb#4255 def type; end end end @@ -4166,89 +4967,115 @@ end # @@target ||= value # ^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#4100 +# source://prism//lib/prism/node.rb#4275 class Prism::ClassVariableOrWriteNode < ::Prism::Node - # def initialize: (Symbol name, Location name_loc, Location operator_loc, Node value, Location location) -> void + # def initialize: (Symbol name, Location name_loc, Location operator_loc, Prism::node value, Location location) -> void # # @return [ClassVariableOrWriteNode] a new instance of ClassVariableOrWriteNode # - # source://prism//lib/prism/node.rb#4102 - def initialize(source, name, name_loc, operator_loc, value, location); end - + # source://prism//lib/prism/node.rb#4277 + sig do + params( + source: Prism::Source, + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).void + end + def initialize(source, name, name_loc, operator_loc, value, location); 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#4386 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#4113 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#4288 + 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#4118 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#4293 + 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#4128 + # source://prism//lib/prism/node.rb#4303 + 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#4123 + # source://prism//lib/prism/node.rb#4298 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ClassVariableOrWriteNode + # def copy: (?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> ClassVariableOrWriteNode # - # source://prism//lib/prism/node.rb#4133 - sig { params(params: T.untyped).returns(Prism::ClassVariableOrWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#4308 + sig do + params( + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).returns(Prism::ClassVariableOrWriteNode) + end + def copy(name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#4118 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#4293 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Node, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node, location: Location } # - # source://prism//lib/prism/node.rb#4148 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#4316 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end - # source://prism//lib/prism/desugar_compiler.rb#131 + # source://prism//lib/prism/desugar_compiler.rb#133 def desugar; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#4177 + # source://prism//lib/prism/node.rb#4346 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#4153 + # source://prism//lib/prism/node.rb#4321 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#4156 + # source://prism//lib/prism/node.rb#4324 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#4172 + # source://prism//lib/prism/node.rb#4341 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#4162 + # source://prism//lib/prism/node.rb#4331 sig { returns(Prism::Location) } def operator_loc; end @@ -4267,12 +5094,13 @@ class Prism::ClassVariableOrWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#4201 + # source://prism//lib/prism/node.rb#4370 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#4168 + # source://prism//lib/prism/node.rb#4338 sig { returns(Prism::Node) } def value; end @@ -4284,7 +5112,7 @@ class Prism::ClassVariableOrWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#4211 + # source://prism//lib/prism/node.rb#4380 def type; end end end @@ -4294,63 +5122,72 @@ end # @@foo # ^^^^^ # -# source://prism//lib/prism/node.rb#4220 +# source://prism//lib/prism/node.rb#4399 class Prism::ClassVariableReadNode < ::Prism::Node # def initialize: (Symbol name, Location location) -> void # # @return [ClassVariableReadNode] a new instance of ClassVariableReadNode # - # source://prism//lib/prism/node.rb#4222 + # source://prism//lib/prism/node.rb#4401 + sig { params(source: Prism::Source, name: Symbol, location: Prism::Location).void } def initialize(source, name, location); 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#4485 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#4230 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#4409 + 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#4235 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#4414 + 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#4245 + # source://prism//lib/prism/node.rb#4424 + 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#4240 + # source://prism//lib/prism/node.rb#4419 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ClassVariableReadNode + # def copy: (?name: Symbol, ?location: Location) -> ClassVariableReadNode # - # source://prism//lib/prism/node.rb#4250 - sig { params(params: T.untyped).returns(Prism::ClassVariableReadNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#4429 + sig { params(name: Symbol, location: Prism::Location).returns(Prism::ClassVariableReadNode) } + def copy(name: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#4235 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#4414 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location } # - # source://prism//lib/prism/node.rb#4262 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#4437 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#4275 + # source://prism//lib/prism/node.rb#4449 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); 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). @@ -4359,7 +5196,7 @@ class Prism::ClassVariableReadNode < ::Prism::Node # # @@_test # name `:@@_test` # - # source://prism//lib/prism/node.rb#4271 + # source://prism//lib/prism/node.rb#4446 sig { returns(Symbol) } def name; end @@ -4378,7 +5215,8 @@ class Prism::ClassVariableReadNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#4295 + # source://prism//lib/prism/node.rb#4469 + sig { override.returns(Symbol) } def type; end class << self @@ -4389,7 +5227,7 @@ class Prism::ClassVariableReadNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#4305 + # source://prism//lib/prism/node.rb#4479 def type; end end end @@ -4399,68 +5237,77 @@ end # @@foo, @@bar = baz # ^^^^^ ^^^^^ # -# source://prism//lib/prism/node.rb#4314 +# source://prism//lib/prism/node.rb#4495 class Prism::ClassVariableTargetNode < ::Prism::Node # def initialize: (Symbol name, Location location) -> void # # @return [ClassVariableTargetNode] a new instance of ClassVariableTargetNode # - # source://prism//lib/prism/node.rb#4316 + # source://prism//lib/prism/node.rb#4497 + sig { params(source: Prism::Source, name: Symbol, location: Prism::Location).void } def initialize(source, name, location); 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#4577 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#4324 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#4505 + 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#4329 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#4510 + 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#4339 + # source://prism//lib/prism/node.rb#4520 + 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#4334 + # source://prism//lib/prism/node.rb#4515 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ClassVariableTargetNode + # def copy: (?name: Symbol, ?location: Location) -> ClassVariableTargetNode # - # source://prism//lib/prism/node.rb#4344 - sig { params(params: T.untyped).returns(Prism::ClassVariableTargetNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#4525 + sig { params(name: Symbol, location: Prism::Location).returns(Prism::ClassVariableTargetNode) } + def copy(name: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#4329 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#4510 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location } # - # source://prism//lib/prism/node.rb#4356 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#4533 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#4365 + # source://prism//lib/prism/node.rb#4541 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#4361 + # source://prism//lib/prism/node.rb#4538 sig { returns(Symbol) } def name; end @@ -4479,7 +5326,8 @@ class Prism::ClassVariableTargetNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#4385 + # source://prism//lib/prism/node.rb#4561 + sig { override.returns(Symbol) } def type; end class << self @@ -4490,7 +5338,7 @@ class Prism::ClassVariableTargetNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#4395 + # source://prism//lib/prism/node.rb#4571 def type; end end end @@ -4500,87 +5348,123 @@ end # @@foo = 1 # ^^^^^^^^^ # -# source://prism//lib/prism/node.rb#4404 +# source://prism//lib/prism/node.rb#4587 class Prism::ClassVariableWriteNode < ::Prism::Node - # def initialize: (Symbol name, Location name_loc, Node value, Location? operator_loc, Location location) -> void + # def initialize: (Symbol name, Location name_loc, Prism::node value, Location operator_loc, Location location) -> void # # @return [ClassVariableWriteNode] a new instance of ClassVariableWriteNode # - # source://prism//lib/prism/node.rb#4406 + # source://prism//lib/prism/node.rb#4589 + sig do + params( + source: Prism::Source, + name: Symbol, + name_loc: Prism::Location, + value: Prism::Node, + operator_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, name, name_loc, value, operator_loc, location); 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#4714 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#4417 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#4600 + 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#4422 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#4605 + 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#4432 + # source://prism//lib/prism/node.rb#4615 + 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#4427 + # source://prism//lib/prism/node.rb#4610 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ClassVariableWriteNode + # def copy: (?name: Symbol, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location, ?location: Location) -> ClassVariableWriteNode # - # source://prism//lib/prism/node.rb#4437 - sig { params(params: T.untyped).returns(Prism::ClassVariableWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#4620 + sig do + params( + name: Symbol, + name_loc: Prism::Location, + value: Prism::Node, + operator_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::ClassVariableWriteNode) + end + def copy(name: T.unsafe(nil), name_loc: T.unsafe(nil), value: T.unsafe(nil), operator_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#4422 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#4605 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, value: Node, operator_loc: Location?, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, value: Prism::node, operator_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#4452 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#4628 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#4487 + # source://prism//lib/prism/node.rb#4674 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end - # attr_reader name: Symbol + # 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#4457 + # source://prism//lib/prism/node.rb#4637 sig { returns(Symbol) } def name; end - # attr_reader name_loc: Location + # The location of the variable name. + # + # @@foo = :bar + # ^^^^^ # - # source://prism//lib/prism/node.rb#4460 + # source://prism//lib/prism/node.rb#4643 sig { returns(Prism::Location) } def name_loc; end - # def operator: () -> String? + # def operator: () -> String # - # source://prism//lib/prism/node.rb#4482 - sig { returns(T.nilable(String)) } + # source://prism//lib/prism/node.rb#4669 + sig { returns(String) } def operator; end - # attr_reader operator_loc: Location? + # The location of the `=` operator. # - # source://prism//lib/prism/node.rb#4469 - sig { returns(T.nilable(Prism::Location)) } + # @@foo = :bar + # ^ + # + # source://prism//lib/prism/node.rb#4662 + sig { returns(Prism::Location) } def operator_loc; end # Sometimes you want to check an instance of a node against a list of @@ -4598,12 +5482,19 @@ class Prism::ClassVariableWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#4511 + # source://prism//lib/prism/node.rb#4698 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # 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#4466 + # source://prism//lib/prism/node.rb#4656 sig { returns(Prism::Node) } def value; end @@ -4615,7 +5506,7 @@ class Prism::ClassVariableWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#4521 + # source://prism//lib/prism/node.rb#4708 def type; end end end @@ -4623,27 +5514,37 @@ 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#258 +# source://prism//lib/prism/parse_result.rb#288 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#263 + # source://prism//lib/prism/parse_result.rb#293 + 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#268 + # source://prism//lib/prism/parse_result.rb#298 + 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#260 + # source://prism//lib/prism/parse_result.rb#290 sig { returns(Prism::Location) } def location; end - sig { returns(T::Boolean) } + # Returns the content of the comment by slicing it from the source code. + # + # source://prism//lib/prism/parse_result.rb#303 + sig { returns(String) } + def slice; end + + sig { abstract.returns(T::Boolean) } def trailing?; end end @@ -4664,910 +5565,927 @@ end # Prism.parse("1 + 2").value.accept(SExpressions.new) # # => [:program, [[[:call, [[:integer], [:arguments, [[:integer]]]]]]]] # -# source://prism//lib/prism/compiler.rb#26 -class Prism::Compiler +# source://prism//lib/prism/compiler.rb#27 +class Prism::Compiler < ::Prism::Visitor # Visit an individual node. # - # source://prism//lib/prism/compiler.rb#28 + # source://prism//lib/prism/compiler.rb#29 + sig { params(node: T.nilable(Prism::Node)).returns(T.nilable(Result)) } def visit(node); end # Visit the child nodes of the given node. # Compile a AliasGlobalVariableNode node # - # source://prism//lib/prism/compiler.rb#38 + # 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#38 + # 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#33 + # source://prism//lib/prism/compiler.rb#34 + sig { params(nodes: T::Array[T.nilable(Prism::Node)]).returns(T::Array[T.nilable(Result)]) } def visit_all(nodes); end # Visit the child nodes of the given node. # Compile a AlternationPatternNode node # - # source://prism//lib/prism/compiler.rb#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # source://prism//lib/prism/compiler.rb#39 + sig { params(node: Prism::Node).returns(T::Array[T.nilable(Result)]) } def visit_child_nodes(node); end # Visit the child nodes of the given node. # Compile a ClassNode node # - # source://prism//lib/prism/compiler.rb#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # 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#38 + # source://prism//lib/prism/compiler.rb#39 def visit_yield_node(node); end + + Result = type_member end # Represents the use of the `&&=` operator for assignment to a constant. @@ -5575,89 +6493,115 @@ end # Target &&= value # ^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#4530 +# source://prism//lib/prism/node.rb#4727 class Prism::ConstantAndWriteNode < ::Prism::Node - # def initialize: (Symbol name, Location name_loc, Location operator_loc, Node value, Location location) -> void + # def initialize: (Symbol name, Location name_loc, Location operator_loc, Prism::node value, Location location) -> void # # @return [ConstantAndWriteNode] a new instance of ConstantAndWriteNode # - # source://prism//lib/prism/node.rb#4532 + # source://prism//lib/prism/node.rb#4729 + sig do + params( + source: Prism::Source, + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).void + end def initialize(source, name, name_loc, operator_loc, value, location); 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#4838 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#4543 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#4740 + 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#4548 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#4745 + 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#4558 + # source://prism//lib/prism/node.rb#4755 + 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#4553 + # source://prism//lib/prism/node.rb#4750 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ConstantAndWriteNode + # def copy: (?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> ConstantAndWriteNode # - # source://prism//lib/prism/node.rb#4563 - sig { params(params: T.untyped).returns(Prism::ConstantAndWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#4760 + sig do + params( + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).returns(Prism::ConstantAndWriteNode) + end + def copy(name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#4548 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#4745 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Node, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node, location: Location } # - # source://prism//lib/prism/node.rb#4578 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#4768 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end - # source://prism//lib/prism/desugar_compiler.rb#143 + # source://prism//lib/prism/desugar_compiler.rb#145 def desugar; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#4607 + # source://prism//lib/prism/node.rb#4798 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#4583 + # source://prism//lib/prism/node.rb#4773 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#4586 + # source://prism//lib/prism/node.rb#4776 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#4602 + # source://prism//lib/prism/node.rb#4793 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#4592 + # source://prism//lib/prism/node.rb#4783 sig { returns(Prism::Location) } def operator_loc; end @@ -5676,12 +6620,13 @@ class Prism::ConstantAndWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#4631 + # source://prism//lib/prism/node.rb#4822 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#4598 + # source://prism//lib/prism/node.rb#4790 sig { returns(Prism::Node) } def value; end @@ -5693,7 +6638,7 @@ class Prism::ConstantAndWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#4641 + # source://prism//lib/prism/node.rb#4832 def type; end end end @@ -5703,89 +6648,117 @@ end # Target += value # ^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#4650 +# source://prism//lib/prism/node.rb#4851 class Prism::ConstantOperatorWriteNode < ::Prism::Node - # def initialize: (Symbol name, Location name_loc, Location operator_loc, Node value, Symbol operator, Location location) -> void + # def initialize: (Symbol name, Location name_loc, Location operator_loc, Prism::node value, Symbol operator, Location location) -> void # # @return [ConstantOperatorWriteNode] a new instance of ConstantOperatorWriteNode # - # source://prism//lib/prism/node.rb#4652 + # source://prism//lib/prism/node.rb#4853 + sig do + params( + source: Prism::Source, + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + operator: Symbol, + location: Prism::Location + ).void + end def initialize(source, name, name_loc, operator_loc, value, operator, location); 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#4962 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#4664 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#4865 + 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#4669 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#4870 + 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#4679 + # source://prism//lib/prism/node.rb#4880 + 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#4674 + # source://prism//lib/prism/node.rb#4875 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ConstantOperatorWriteNode + # def copy: (?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?operator: Symbol, ?location: Location) -> ConstantOperatorWriteNode # - # source://prism//lib/prism/node.rb#4684 - sig { params(params: T.untyped).returns(Prism::ConstantOperatorWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#4885 + sig do + params( + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + operator: Symbol, + location: Prism::Location + ).returns(Prism::ConstantOperatorWriteNode) + end + def copy(name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil), operator: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#4669 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#4870 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Node, operator: Symbol, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node, operator: Symbol, location: Location } # - # source://prism//lib/prism/node.rb#4700 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#4893 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end - # source://prism//lib/prism/desugar_compiler.rb#155 + # source://prism//lib/prism/desugar_compiler.rb#157 def desugar; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#4727 + # source://prism//lib/prism/node.rb#4921 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#4705 + # source://prism//lib/prism/node.rb#4898 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#4708 + # source://prism//lib/prism/node.rb#4901 sig { returns(Prism::Location) } def name_loc; end # attr_reader operator: Symbol # - # source://prism//lib/prism/node.rb#4723 + # source://prism//lib/prism/node.rb#4918 sig { returns(Symbol) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#4714 + # source://prism//lib/prism/node.rb#4908 sig { returns(Prism::Location) } def operator_loc; end @@ -5804,12 +6777,13 @@ class Prism::ConstantOperatorWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#4752 + # source://prism//lib/prism/node.rb#4946 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#4720 + # source://prism//lib/prism/node.rb#4915 sig { returns(Prism::Node) } def value; end @@ -5821,7 +6795,7 @@ class Prism::ConstantOperatorWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#4762 + # source://prism//lib/prism/node.rb#4956 def type; end end end @@ -5831,89 +6805,115 @@ end # Target ||= value # ^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#4771 +# source://prism//lib/prism/node.rb#4976 class Prism::ConstantOrWriteNode < ::Prism::Node - # def initialize: (Symbol name, Location name_loc, Location operator_loc, Node value, Location location) -> void + # def initialize: (Symbol name, Location name_loc, Location operator_loc, Prism::node value, Location location) -> void # # @return [ConstantOrWriteNode] a new instance of ConstantOrWriteNode # - # source://prism//lib/prism/node.rb#4773 + # source://prism//lib/prism/node.rb#4978 + sig do + params( + source: Prism::Source, + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).void + end def initialize(source, name, name_loc, operator_loc, value, location); 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#5087 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#4784 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#4989 + 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#4789 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#4994 + 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#4799 + # source://prism//lib/prism/node.rb#5004 + 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#4794 + # source://prism//lib/prism/node.rb#4999 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ConstantOrWriteNode + # def copy: (?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> ConstantOrWriteNode # - # source://prism//lib/prism/node.rb#4804 - sig { params(params: T.untyped).returns(Prism::ConstantOrWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#5009 + sig do + params( + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).returns(Prism::ConstantOrWriteNode) + end + def copy(name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#4789 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#4994 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Node, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node, location: Location } # - # source://prism//lib/prism/node.rb#4819 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#5017 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end - # source://prism//lib/prism/desugar_compiler.rb#149 + # source://prism//lib/prism/desugar_compiler.rb#151 def desugar; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#4848 + # source://prism//lib/prism/node.rb#5047 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#4824 + # source://prism//lib/prism/node.rb#5022 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#4827 + # source://prism//lib/prism/node.rb#5025 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#4843 + # source://prism//lib/prism/node.rb#5042 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#4833 + # source://prism//lib/prism/node.rb#5032 sig { returns(Prism::Location) } def operator_loc; end @@ -5932,12 +6932,13 @@ class Prism::ConstantOrWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#4872 + # source://prism//lib/prism/node.rb#5071 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#4839 + # source://prism//lib/prism/node.rb#5039 sig { returns(Prism::Node) } def value; end @@ -5949,7 +6950,7 @@ class Prism::ConstantOrWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#4882 + # source://prism//lib/prism/node.rb#5081 def type; end end end @@ -5959,80 +6960,104 @@ end # Parent::Child &&= value # ^^^^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#4891 +# source://prism//lib/prism/node.rb#5100 class Prism::ConstantPathAndWriteNode < ::Prism::Node - # def initialize: (ConstantPathNode target, Location operator_loc, Node value, Location location) -> void + # def initialize: (ConstantPathNode target, Location operator_loc, Prism::node value, Location location) -> void # # @return [ConstantPathAndWriteNode] a new instance of ConstantPathAndWriteNode # - # source://prism//lib/prism/node.rb#4893 + # source://prism//lib/prism/node.rb#5102 + sig do + params( + source: Prism::Source, + target: Prism::ConstantPathNode, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).void + end def initialize(source, target, operator_loc, value, location); 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#5203 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#4903 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#5112 + 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#4908 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#5117 + 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#4918 + # source://prism//lib/prism/node.rb#5127 + 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#4913 + # source://prism//lib/prism/node.rb#5122 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ConstantPathAndWriteNode + # def copy: (?target: ConstantPathNode, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> ConstantPathAndWriteNode # - # source://prism//lib/prism/node.rb#4923 - sig { params(params: T.untyped).returns(Prism::ConstantPathAndWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#5132 + sig do + params( + target: Prism::ConstantPathNode, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).returns(Prism::ConstantPathAndWriteNode) + end + def copy(target: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#4908 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#5117 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { target: ConstantPathNode, operator_loc: Location, value: Node, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { target: ConstantPathNode, operator_loc: Location, value: Prism::node, location: Location } # - # source://prism//lib/prism/node.rb#4937 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#5140 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#4960 + # source://prism//lib/prism/node.rb#5163 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def operator: () -> String # - # source://prism//lib/prism/node.rb#4955 + # source://prism//lib/prism/node.rb#5158 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#4945 + # source://prism//lib/prism/node.rb#5148 sig { returns(Prism::Location) } def operator_loc; end # attr_reader target: ConstantPathNode # - # source://prism//lib/prism/node.rb#4942 + # source://prism//lib/prism/node.rb#5145 sig { returns(Prism::ConstantPathNode) } def target; end @@ -6051,12 +7076,13 @@ class Prism::ConstantPathAndWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#4984 + # source://prism//lib/prism/node.rb#5187 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#4951 + # source://prism//lib/prism/node.rb#5155 sig { returns(Prism::Node) } def value; end @@ -6068,7 +7094,7 @@ class Prism::ConstantPathAndWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#4994 + # source://prism//lib/prism/node.rb#5197 def type; end end end @@ -6078,97 +7104,148 @@ end # Foo::Bar # ^^^^^^^^ # -# source://prism//lib/prism/node.rb#5003 +# source://prism//lib/prism/node.rb#5215 class Prism::ConstantPathNode < ::Prism::Node - # def initialize: (Node? parent, Node child, Location delimiter_loc, Location location) -> void + # def initialize: (Prism::node? parent, ConstantReadNode | MissingNode child, Location delimiter_loc, Location location) -> void # # @return [ConstantPathNode] a new instance of ConstantPathNode # - # source://prism//lib/prism/node.rb#5005 + # source://prism//lib/prism/node.rb#5217 + sig do + params( + source: Prism::Source, + parent: T.nilable(Prism::Node), + child: T.any(Prism::ConstantReadNode, Prism::MissingNode), + delimiter_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, parent, child, delimiter_loc, location); 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#5350 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#5015 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#5227 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end - # attr_reader child: Node + # The right-hand node of the path. Always a `ConstantReadNode` in a + # valid Ruby syntax tree. # - # source://prism//lib/prism/node.rb#5060 - sig { returns(Prism::Node) } + # ::Foo + # ^^^ + # + # self::Test + # ^^^^ + # + # a.b::C + # ^ + # + # source://prism//lib/prism/node.rb#5285 + sig { returns(T.any(Prism::ConstantReadNode, Prism::MissingNode)) } def child; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#5020 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#5232 + 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#5033 + # source://prism//lib/prism/node.rb#5245 + 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#5025 + # source://prism//lib/prism/node.rb#5237 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ConstantPathNode + # def copy: (?parent: Prism::node?, ?child: ConstantReadNode | MissingNode, ?delimiter_loc: Location, ?location: Location) -> ConstantPathNode # - # source://prism//lib/prism/node.rb#5038 - sig { params(params: T.untyped).returns(Prism::ConstantPathNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#5250 + sig do + params( + parent: T.nilable(Prism::Node), + child: T.any(Prism::ConstantReadNode, Prism::MissingNode), + delimiter_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::ConstantPathNode) + end + def copy(parent: T.unsafe(nil), child: T.unsafe(nil), delimiter_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#5020 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#5232 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { parent: Node?, child: Node, delimiter_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { parent: Prism::node?, child: ConstantReadNode | MissingNode, delimiter_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#5052 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#5258 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end # def delimiter: () -> String # - # source://prism//lib/prism/node.rb#5070 + # source://prism//lib/prism/node.rb#5301 sig { returns(String) } def delimiter; end - # attr_reader delimiter_loc: Location + # The location of the `::` delimiter. # - # source://prism//lib/prism/node.rb#5063 + # ::Foo + # ^^ + # + # One::Two + # ^^ + # + # source://prism//lib/prism/node.rb#5294 sig { returns(Prism::Location) } 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#129 + # source://prism//lib/prism/node_ext.rb#162 + 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#112 + # source://prism//lib/prism/node_ext.rb#141 + sig { returns(T::Array[Symbol]) } def full_name_parts; end # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#5075 + # source://prism//lib/prism/node.rb#5306 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end - # attr_reader parent: Node? + # 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#5057 + # source://prism//lib/prism/node.rb#5272 sig { returns(T.nilable(Prism::Node)) } def parent; end @@ -6187,7 +7264,8 @@ class Prism::ConstantPathNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#5103 + # source://prism//lib/prism/node.rb#5334 + sig { override.returns(Symbol) } def type; end class << self @@ -6198,7 +7276,7 @@ class Prism::ConstantPathNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#5113 + # source://prism//lib/prism/node.rb#5344 def type; end end end @@ -6210,88 +7288,121 @@ end # var::Bar::Baz -> raises because the first part of the constant path is a # local variable # -# source://prism//lib/prism/node_ext.rb#108 +# source://prism//lib/prism/node_ext.rb#132 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#137 +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#5122 +# source://prism//lib/prism/node.rb#5362 class Prism::ConstantPathOperatorWriteNode < ::Prism::Node - # def initialize: (ConstantPathNode target, Location operator_loc, Node value, Symbol operator, Location location) -> void + # def initialize: (ConstantPathNode target, Location operator_loc, Prism::node value, Symbol operator, Location location) -> void # # @return [ConstantPathOperatorWriteNode] a new instance of ConstantPathOperatorWriteNode # - # source://prism//lib/prism/node.rb#5124 + # source://prism//lib/prism/node.rb#5364 + sig do + params( + source: Prism::Source, + target: Prism::ConstantPathNode, + operator_loc: Prism::Location, + value: Prism::Node, + operator: Symbol, + location: Prism::Location + ).void + end def initialize(source, target, operator_loc, value, operator, location); 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#5465 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#5135 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#5375 + 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#5140 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#5380 + 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#5150 + # source://prism//lib/prism/node.rb#5390 + 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#5145 + # source://prism//lib/prism/node.rb#5385 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ConstantPathOperatorWriteNode + # def copy: (?target: ConstantPathNode, ?operator_loc: Location, ?value: Prism::node, ?operator: Symbol, ?location: Location) -> ConstantPathOperatorWriteNode # - # source://prism//lib/prism/node.rb#5155 - sig { params(params: T.untyped).returns(Prism::ConstantPathOperatorWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#5395 + sig do + params( + target: Prism::ConstantPathNode, + operator_loc: Prism::Location, + value: Prism::Node, + operator: Symbol, + location: Prism::Location + ).returns(Prism::ConstantPathOperatorWriteNode) + end + def copy(target: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil), operator: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#5140 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#5380 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { target: ConstantPathNode, operator_loc: Location, value: Node, operator: Symbol, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { target: ConstantPathNode, operator_loc: Location, value: Prism::node, operator: Symbol, location: Location } # - # source://prism//lib/prism/node.rb#5170 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#5403 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#5191 + # source://prism//lib/prism/node.rb#5424 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader operator: Symbol # - # source://prism//lib/prism/node.rb#5187 + # source://prism//lib/prism/node.rb#5421 sig { returns(Symbol) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#5178 + # source://prism//lib/prism/node.rb#5411 sig { returns(Prism::Location) } def operator_loc; end # attr_reader target: ConstantPathNode # - # source://prism//lib/prism/node.rb#5175 + # source://prism//lib/prism/node.rb#5408 sig { returns(Prism::ConstantPathNode) } def target; end @@ -6310,12 +7421,13 @@ class Prism::ConstantPathOperatorWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#5216 + # source://prism//lib/prism/node.rb#5449 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#5184 + # source://prism//lib/prism/node.rb#5418 sig { returns(Prism::Node) } def value; end @@ -6327,7 +7439,7 @@ class Prism::ConstantPathOperatorWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#5226 + # source://prism//lib/prism/node.rb#5459 def type; end end end @@ -6337,80 +7449,104 @@ end # Parent::Child ||= value # ^^^^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#5235 +# source://prism//lib/prism/node.rb#5478 class Prism::ConstantPathOrWriteNode < ::Prism::Node - # def initialize: (ConstantPathNode target, Location operator_loc, Node value, Location location) -> void + # def initialize: (ConstantPathNode target, Location operator_loc, Prism::node value, Location location) -> void # # @return [ConstantPathOrWriteNode] a new instance of ConstantPathOrWriteNode # - # source://prism//lib/prism/node.rb#5237 + # source://prism//lib/prism/node.rb#5480 + sig do + params( + source: Prism::Source, + target: Prism::ConstantPathNode, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).void + end def initialize(source, target, operator_loc, value, location); 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#5581 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#5247 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#5490 + 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#5252 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#5495 + 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#5262 + # source://prism//lib/prism/node.rb#5505 + 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#5257 + # source://prism//lib/prism/node.rb#5500 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ConstantPathOrWriteNode + # def copy: (?target: ConstantPathNode, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> ConstantPathOrWriteNode # - # source://prism//lib/prism/node.rb#5267 - sig { params(params: T.untyped).returns(Prism::ConstantPathOrWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#5510 + sig do + params( + target: Prism::ConstantPathNode, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).returns(Prism::ConstantPathOrWriteNode) + end + def copy(target: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#5252 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#5495 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { target: ConstantPathNode, operator_loc: Location, value: Node, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { target: ConstantPathNode, operator_loc: Location, value: Prism::node, location: Location } # - # source://prism//lib/prism/node.rb#5281 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#5518 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#5304 + # source://prism//lib/prism/node.rb#5541 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def operator: () -> String # - # source://prism//lib/prism/node.rb#5299 + # source://prism//lib/prism/node.rb#5536 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#5289 + # source://prism//lib/prism/node.rb#5526 sig { returns(Prism::Location) } def operator_loc; end # attr_reader target: ConstantPathNode # - # source://prism//lib/prism/node.rb#5286 + # source://prism//lib/prism/node.rb#5523 sig { returns(Prism::ConstantPathNode) } def target; end @@ -6429,12 +7565,13 @@ class Prism::ConstantPathOrWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#5328 + # source://prism//lib/prism/node.rb#5565 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#5295 + # source://prism//lib/prism/node.rb#5533 sig { returns(Prism::Node) } def value; end @@ -6446,7 +7583,7 @@ class Prism::ConstantPathOrWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#5338 + # source://prism//lib/prism/node.rb#5575 def type; end end end @@ -6456,97 +7593,123 @@ end # Foo::Foo, Bar::Bar = baz # ^^^^^^^^ ^^^^^^^^ # -# source://prism//lib/prism/node.rb#5347 +# source://prism//lib/prism/node.rb#5593 class Prism::ConstantPathTargetNode < ::Prism::Node - # def initialize: (Node? parent, Node child, Location delimiter_loc, Location location) -> void + # def initialize: (Prism::node? parent, ConstantReadNode | MissingNode child, Location delimiter_loc, Location location) -> void # # @return [ConstantPathTargetNode] a new instance of ConstantPathTargetNode # - # source://prism//lib/prism/node.rb#5349 + # source://prism//lib/prism/node.rb#5595 + sig do + params( + source: Prism::Source, + parent: T.nilable(Prism::Node), + child: T.any(Prism::ConstantReadNode, Prism::MissingNode), + delimiter_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, parent, child, delimiter_loc, location); 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#5703 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#5359 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#5605 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end - # attr_reader child: Node + # attr_reader child: ConstantReadNode | MissingNode # - # source://prism//lib/prism/node.rb#5404 - sig { returns(Prism::Node) } + # source://prism//lib/prism/node.rb#5644 + sig { returns(T.any(Prism::ConstantReadNode, Prism::MissingNode)) } def child; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#5364 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#5610 + 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#5377 + # source://prism//lib/prism/node.rb#5623 + 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#5369 + # source://prism//lib/prism/node.rb#5615 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ConstantPathTargetNode + # def copy: (?parent: Prism::node?, ?child: ConstantReadNode | MissingNode, ?delimiter_loc: Location, ?location: Location) -> ConstantPathTargetNode # - # source://prism//lib/prism/node.rb#5382 - sig { params(params: T.untyped).returns(Prism::ConstantPathTargetNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#5628 + sig do + params( + parent: T.nilable(Prism::Node), + child: T.any(Prism::ConstantReadNode, Prism::MissingNode), + delimiter_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::ConstantPathTargetNode) + end + def copy(parent: T.unsafe(nil), child: T.unsafe(nil), delimiter_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#5364 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#5610 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { parent: Node?, child: Node, delimiter_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { parent: Prism::node?, child: ConstantReadNode | MissingNode, delimiter_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#5396 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#5636 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end # def delimiter: () -> String # - # source://prism//lib/prism/node.rb#5414 + # source://prism//lib/prism/node.rb#5654 sig { returns(String) } def delimiter; end # attr_reader delimiter_loc: Location # - # source://prism//lib/prism/node.rb#5407 + # source://prism//lib/prism/node.rb#5647 sig { returns(Prism::Location) } 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#152 + # source://prism//lib/prism/node_ext.rb#190 + 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#137 + # source://prism//lib/prism/node_ext.rb#170 + sig { returns(T::Array[Symbol]) } def full_name_parts; end # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#5419 + # source://prism//lib/prism/node.rb#5659 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end - # attr_reader parent: Node? + # attr_reader parent: Prism::node? # - # source://prism//lib/prism/node.rb#5401 + # source://prism//lib/prism/node.rb#5641 sig { returns(T.nilable(Prism::Node)) } def parent; end @@ -6565,7 +7728,8 @@ class Prism::ConstantPathTargetNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#5447 + # source://prism//lib/prism/node.rb#5687 + sig { override.returns(Symbol) } def type; end class << self @@ -6576,7 +7740,7 @@ class Prism::ConstantPathTargetNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#5457 + # source://prism//lib/prism/node.rb#5697 def type; end end end @@ -6592,80 +7756,113 @@ end # ::Foo::Bar = 1 # ^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#5472 +# source://prism//lib/prism/node.rb#5721 class Prism::ConstantPathWriteNode < ::Prism::Node - # def initialize: (ConstantPathNode target, Location operator_loc, Node value, Location location) -> void + # def initialize: (ConstantPathNode target, Location operator_loc, Prism::node value, Location location) -> void # # @return [ConstantPathWriteNode] a new instance of ConstantPathWriteNode # - # source://prism//lib/prism/node.rb#5474 + # source://prism//lib/prism/node.rb#5723 + sig do + params( + source: Prism::Source, + target: Prism::ConstantPathNode, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).void + end def initialize(source, target, operator_loc, value, location); end - # def accept: (Visitor visitor) -> void + # 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#5484 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#5836 + def ===(other); end + + # def accept: (Visitor visitor) -> void + # + # source://prism//lib/prism/node.rb#5733 + 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#5489 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#5738 + 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#5499 + # source://prism//lib/prism/node.rb#5748 + 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#5494 + # source://prism//lib/prism/node.rb#5743 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ConstantPathWriteNode + # def copy: (?target: ConstantPathNode, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> ConstantPathWriteNode # - # source://prism//lib/prism/node.rb#5504 - sig { params(params: T.untyped).returns(Prism::ConstantPathWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#5753 + sig do + params( + target: Prism::ConstantPathNode, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).returns(Prism::ConstantPathWriteNode) + end + def copy(target: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#5489 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#5738 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { target: ConstantPathNode, operator_loc: Location, value: Node, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { target: ConstantPathNode, operator_loc: Location, value: Prism::node, location: Location } # - # source://prism//lib/prism/node.rb#5518 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#5761 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#5541 + # source://prism//lib/prism/node.rb#5796 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def operator: () -> String # - # source://prism//lib/prism/node.rb#5536 + # source://prism//lib/prism/node.rb#5791 sig { returns(String) } def operator; end - # attr_reader operator_loc: Location + # The location of the `=` operator. # - # source://prism//lib/prism/node.rb#5526 + # ::ABC = 123 + # ^ + # + # source://prism//lib/prism/node.rb#5778 sig { returns(Prism::Location) } def operator_loc; end - # attr_reader target: ConstantPathNode + # A node representing the constant path being written to. # - # source://prism//lib/prism/node.rb#5523 + # Foo::Bar = 1 + # ^^^^^^^^ + # + # ::Foo = :abc + # ^^^^^ + # + # source://prism//lib/prism/node.rb#5772 sig { returns(Prism::ConstantPathNode) } def target; end @@ -6684,12 +7881,16 @@ class Prism::ConstantPathWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#5565 + # source://prism//lib/prism/node.rb#5820 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # 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#5532 + # source://prism//lib/prism/node.rb#5788 sig { returns(Prism::Node) } def value; end @@ -6701,7 +7902,7 @@ class Prism::ConstantPathWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#5575 + # source://prism//lib/prism/node.rb#5830 def type; end end end @@ -6711,74 +7912,85 @@ end # Foo # ^^^ # -# source://prism//lib/prism/node.rb#5584 +# source://prism//lib/prism/node.rb#5848 class Prism::ConstantReadNode < ::Prism::Node # def initialize: (Symbol name, Location location) -> void # # @return [ConstantReadNode] a new instance of ConstantReadNode # - # source://prism//lib/prism/node.rb#5586 + # source://prism//lib/prism/node.rb#5850 + sig { params(source: Prism::Source, name: Symbol, location: Prism::Location).void } def initialize(source, name, location); 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#5934 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#5594 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#5858 + 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#5599 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#5863 + 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#5609 + # source://prism//lib/prism/node.rb#5873 + 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#5604 + # source://prism//lib/prism/node.rb#5868 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ConstantReadNode + # def copy: (?name: Symbol, ?location: Location) -> ConstantReadNode # - # source://prism//lib/prism/node.rb#5614 - sig { params(params: T.untyped).returns(Prism::ConstantReadNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#5878 + sig { params(name: Symbol, location: Prism::Location).returns(Prism::ConstantReadNode) } + def copy(name: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#5599 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#5863 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location } # - # source://prism//lib/prism/node.rb#5626 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#5886 + 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 + # Returns the full name of this constant. For example: "Foo" # - # source://prism//lib/prism/node_ext.rb#96 + # source://prism//lib/prism/node_ext.rb#107 + 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#91 + # source://prism//lib/prism/node_ext.rb#102 + sig { returns(T::Array[Symbol]) } def full_name_parts; end # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#5639 + # source://prism//lib/prism/node.rb#5898 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # The name of the [constant](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#constants). @@ -6787,7 +7999,7 @@ class Prism::ConstantReadNode < ::Prism::Node # # SOME_CONSTANT # name `:SOME_CONSTANT` # - # source://prism//lib/prism/node.rb#5635 + # source://prism//lib/prism/node.rb#5895 sig { returns(Symbol) } def name; end @@ -6806,7 +8018,8 @@ class Prism::ConstantReadNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#5659 + # source://prism//lib/prism/node.rb#5918 + sig { override.returns(Symbol) } def type; end class << self @@ -6817,7 +8030,7 @@ class Prism::ConstantReadNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#5669 + # source://prism//lib/prism/node.rb#5928 def type; end end end @@ -6827,79 +8040,90 @@ end # Foo, Bar = baz # ^^^ ^^^ # -# source://prism//lib/prism/node.rb#5678 +# source://prism//lib/prism/node.rb#5944 class Prism::ConstantTargetNode < ::Prism::Node # def initialize: (Symbol name, Location location) -> void # # @return [ConstantTargetNode] a new instance of ConstantTargetNode # - # source://prism//lib/prism/node.rb#5680 + # source://prism//lib/prism/node.rb#5946 + sig { params(source: Prism::Source, name: Symbol, location: Prism::Location).void } def initialize(source, name, location); 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#6026 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#5688 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#5954 + 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#5693 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#5959 + 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#5703 + # source://prism//lib/prism/node.rb#5969 + 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#5698 + # source://prism//lib/prism/node.rb#5964 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ConstantTargetNode + # def copy: (?name: Symbol, ?location: Location) -> ConstantTargetNode # - # source://prism//lib/prism/node.rb#5708 - sig { params(params: T.untyped).returns(Prism::ConstantTargetNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#5974 + sig { params(name: Symbol, location: Prism::Location).returns(Prism::ConstantTargetNode) } + def copy(name: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#5693 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#5959 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location } # - # source://prism//lib/prism/node.rb#5720 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#5982 + 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 + # Returns the full name of this constant. For example: "Foo" # - # source://prism//lib/prism/node_ext.rb#165 + # source://prism//lib/prism/node_ext.rb#203 + 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#160 + # source://prism//lib/prism/node_ext.rb#198 + sig { returns(T::Array[Symbol]) } def full_name_parts; end # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#5729 + # source://prism//lib/prism/node.rb#5990 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#5725 + # source://prism//lib/prism/node.rb#5987 sig { returns(Symbol) } def name; end @@ -6918,7 +8142,8 @@ class Prism::ConstantTargetNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#5749 + # source://prism//lib/prism/node.rb#6010 + sig { override.returns(Symbol) } def type; end class << self @@ -6929,7 +8154,7 @@ class Prism::ConstantTargetNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#5759 + # source://prism//lib/prism/node.rb#6020 def type; end end end @@ -6939,86 +8164,135 @@ end # Foo = 1 # ^^^^^^^ # -# source://prism//lib/prism/node.rb#5768 +# source://prism//lib/prism/node.rb#6036 class Prism::ConstantWriteNode < ::Prism::Node - # def initialize: (Symbol name, Location name_loc, Node value, Location operator_loc, Location location) -> void + # def initialize: (Symbol name, Location name_loc, Prism::node value, Location operator_loc, Location location) -> void # # @return [ConstantWriteNode] a new instance of ConstantWriteNode # - # source://prism//lib/prism/node.rb#5770 + # source://prism//lib/prism/node.rb#6038 + sig do + params( + source: Prism::Source, + name: Symbol, + name_loc: Prism::Location, + value: Prism::Node, + operator_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, name, name_loc, value, operator_loc, location); 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#6163 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#5781 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#6049 + 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#5786 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#6054 + 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#5796 + # source://prism//lib/prism/node.rb#6064 + 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#5791 + # source://prism//lib/prism/node.rb#6059 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ConstantWriteNode + # def copy: (?name: Symbol, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location, ?location: Location) -> ConstantWriteNode # - # source://prism//lib/prism/node.rb#5801 - sig { params(params: T.untyped).returns(Prism::ConstantWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#6069 + sig do + params( + name: Symbol, + name_loc: Prism::Location, + value: Prism::Node, + operator_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::ConstantWriteNode) + end + def copy(name: T.unsafe(nil), name_loc: T.unsafe(nil), value: T.unsafe(nil), operator_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#5786 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#6054 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, value: Node, operator_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, value: Prism::node, operator_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#5816 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#6077 + 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 + + # Returns the full name of this constant. For example: "Foo" + # + # source://prism//lib/prism/node_ext.rb#120 + 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#115 + sig { returns(T::Array[Symbol]) } + def full_name_parts; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#5845 + # source://prism//lib/prism/node.rb#6123 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end - # attr_reader name: Symbol + # The name of the [constant](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#constants). # - # source://prism//lib/prism/node.rb#5821 + # Foo = :bar # name `:Foo` + # + # XYZ = 1 # name `:XYZ` + # + # source://prism//lib/prism/node.rb#6086 sig { returns(Symbol) } def name; end - # attr_reader name_loc: Location + # The location of the constant name. + # + # FOO = 1 + # ^^^ # - # source://prism//lib/prism/node.rb#5824 + # source://prism//lib/prism/node.rb#6092 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#5840 + # source://prism//lib/prism/node.rb#6118 sig { returns(String) } def operator; end - # attr_reader operator_loc: Location + # The location of the `=` operator. + # + # FOO = :bar + # ^ # - # source://prism//lib/prism/node.rb#5833 + # source://prism//lib/prism/node.rb#6111 sig { returns(Prism::Location) } def operator_loc; end @@ -7037,12 +8311,19 @@ class Prism::ConstantWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#5869 + # source://prism//lib/prism/node.rb#6147 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # 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 + # ^^^^ # - # source://prism//lib/prism/node.rb#5830 + # MyClass = Class.new + # ^^^^^^^^^ + # + # source://prism//lib/prism/node.rb#6105 sig { returns(Prism::Node) } def value; end @@ -7054,13 +8335,11 @@ class Prism::ConstantWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#5879 + # source://prism//lib/prism/node.rb#6157 def type; end end end -class Prism::DATAComment < Prism::Comment; 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: # @@ -7070,6 +8349,7 @@ class Prism::DATAComment < Prism::Comment; end # [ # Prism::IntegerNode.new( # Prism::IntegerBaseFlags::DECIMAL, +# 1, # Prism::Location.new(source, 1, 1), # source # ) @@ -7084,7 +8364,7 @@ class Prism::DATAComment < Prism::Comment; end # source = Prism::Source.new("[1]") # # ArrayNode( -# IntegerNode(Prism::IntegerBaseFlags::DECIMAL, Location(source, 1, 1)), source), +# IntegerNode(Prism::IntegerBaseFlags::DECIMAL, 1, Location(source, 1, 1)), source), # Location(source, 0, 1), # Location(source, 2, 1), # source @@ -7093,753 +8373,763 @@ class Prism::DATAComment < Prism::Comment; end # This is mostly helpful in the context of writing tests, but can also be used # to generate trees programmatically. # -# source://prism//lib/prism/dsl.rb#40 +# source://prism//lib/prism/dsl.rb#42 module Prism::DSL private # Create a new AliasGlobalVariableNode node # - # source://prism//lib/prism/dsl.rb#49 + # source://prism//lib/prism/dsl.rb#51 def AliasGlobalVariableNode(new_name, old_name, keyword_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new AliasMethodNode node # - # source://prism//lib/prism/dsl.rb#54 + # source://prism//lib/prism/dsl.rb#56 def AliasMethodNode(new_name, old_name, keyword_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new AlternationPatternNode node # - # source://prism//lib/prism/dsl.rb#59 + # source://prism//lib/prism/dsl.rb#61 def AlternationPatternNode(left, right, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new AndNode node # - # source://prism//lib/prism/dsl.rb#64 + # source://prism//lib/prism/dsl.rb#66 def AndNode(left, right, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ArgumentsNode node # - # source://prism//lib/prism/dsl.rb#69 + # source://prism//lib/prism/dsl.rb#71 def ArgumentsNode(flags, arguments, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ArrayNode node # - # source://prism//lib/prism/dsl.rb#74 + # source://prism//lib/prism/dsl.rb#76 def ArrayNode(flags, elements, opening_loc, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ArrayPatternNode node # - # source://prism//lib/prism/dsl.rb#79 + # source://prism//lib/prism/dsl.rb#81 def ArrayPatternNode(constant, requireds, rest, posts, opening_loc, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new AssocNode node # - # source://prism//lib/prism/dsl.rb#84 + # source://prism//lib/prism/dsl.rb#86 def AssocNode(key, value, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new AssocSplatNode node # - # source://prism//lib/prism/dsl.rb#89 + # source://prism//lib/prism/dsl.rb#91 def AssocSplatNode(value, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new BackReferenceReadNode node # - # source://prism//lib/prism/dsl.rb#94 + # source://prism//lib/prism/dsl.rb#96 def BackReferenceReadNode(name, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new BeginNode node # - # source://prism//lib/prism/dsl.rb#99 + # source://prism//lib/prism/dsl.rb#101 def BeginNode(begin_keyword_loc, statements, rescue_clause, else_clause, ensure_clause, end_keyword_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new BlockArgumentNode node # - # source://prism//lib/prism/dsl.rb#104 + # source://prism//lib/prism/dsl.rb#106 def BlockArgumentNode(expression, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new BlockLocalVariableNode node # - # source://prism//lib/prism/dsl.rb#109 + # source://prism//lib/prism/dsl.rb#111 def BlockLocalVariableNode(flags, name, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new BlockNode node # - # source://prism//lib/prism/dsl.rb#114 + # source://prism//lib/prism/dsl.rb#116 def BlockNode(locals, parameters, body, opening_loc, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new BlockParameterNode node # - # source://prism//lib/prism/dsl.rb#119 + # source://prism//lib/prism/dsl.rb#121 def BlockParameterNode(flags, name, name_loc, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new BlockParametersNode node # - # source://prism//lib/prism/dsl.rb#124 + # source://prism//lib/prism/dsl.rb#126 def BlockParametersNode(parameters, locals, opening_loc, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new BreakNode node # - # source://prism//lib/prism/dsl.rb#129 + # source://prism//lib/prism/dsl.rb#131 def BreakNode(arguments, keyword_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new CallAndWriteNode node # - # source://prism//lib/prism/dsl.rb#134 + # source://prism//lib/prism/dsl.rb#136 def CallAndWriteNode(flags, receiver, call_operator_loc, message_loc, read_name, write_name, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new CallNode node # - # source://prism//lib/prism/dsl.rb#139 + # source://prism//lib/prism/dsl.rb#141 def CallNode(flags, receiver, call_operator_loc, name, message_loc, opening_loc, arguments, closing_loc, block, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new CallOperatorWriteNode node # - # source://prism//lib/prism/dsl.rb#144 + # source://prism//lib/prism/dsl.rb#146 def CallOperatorWriteNode(flags, receiver, call_operator_loc, message_loc, read_name, write_name, operator, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new CallOrWriteNode node # - # source://prism//lib/prism/dsl.rb#149 + # source://prism//lib/prism/dsl.rb#151 def CallOrWriteNode(flags, receiver, call_operator_loc, message_loc, read_name, write_name, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new CallTargetNode node # - # source://prism//lib/prism/dsl.rb#154 + # source://prism//lib/prism/dsl.rb#156 def CallTargetNode(flags, receiver, call_operator_loc, name, message_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new CapturePatternNode node # - # source://prism//lib/prism/dsl.rb#159 + # source://prism//lib/prism/dsl.rb#161 def CapturePatternNode(value, target, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new CaseMatchNode node # - # source://prism//lib/prism/dsl.rb#164 + # source://prism//lib/prism/dsl.rb#166 def CaseMatchNode(predicate, conditions, consequent, case_keyword_loc, end_keyword_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new CaseNode node # - # source://prism//lib/prism/dsl.rb#169 + # source://prism//lib/prism/dsl.rb#171 def CaseNode(predicate, conditions, consequent, case_keyword_loc, end_keyword_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ClassNode node # - # source://prism//lib/prism/dsl.rb#174 + # source://prism//lib/prism/dsl.rb#176 def ClassNode(locals, class_keyword_loc, constant_path, inheritance_operator_loc, superclass, body, end_keyword_loc, name, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ClassVariableAndWriteNode node # - # source://prism//lib/prism/dsl.rb#179 + # source://prism//lib/prism/dsl.rb#181 def ClassVariableAndWriteNode(name, name_loc, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ClassVariableOperatorWriteNode node # - # source://prism//lib/prism/dsl.rb#184 + # source://prism//lib/prism/dsl.rb#186 def ClassVariableOperatorWriteNode(name, name_loc, operator_loc, value, operator, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ClassVariableOrWriteNode node # - # source://prism//lib/prism/dsl.rb#189 + # source://prism//lib/prism/dsl.rb#191 def ClassVariableOrWriteNode(name, name_loc, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ClassVariableReadNode node # - # source://prism//lib/prism/dsl.rb#194 + # source://prism//lib/prism/dsl.rb#196 def ClassVariableReadNode(name, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ClassVariableTargetNode node # - # source://prism//lib/prism/dsl.rb#199 + # source://prism//lib/prism/dsl.rb#201 def ClassVariableTargetNode(name, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ClassVariableWriteNode node # - # source://prism//lib/prism/dsl.rb#204 + # source://prism//lib/prism/dsl.rb#206 def ClassVariableWriteNode(name, name_loc, value, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ConstantAndWriteNode node # - # source://prism//lib/prism/dsl.rb#209 + # source://prism//lib/prism/dsl.rb#211 def ConstantAndWriteNode(name, name_loc, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ConstantOperatorWriteNode node # - # source://prism//lib/prism/dsl.rb#214 + # source://prism//lib/prism/dsl.rb#216 def ConstantOperatorWriteNode(name, name_loc, operator_loc, value, operator, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ConstantOrWriteNode node # - # source://prism//lib/prism/dsl.rb#219 + # source://prism//lib/prism/dsl.rb#221 def ConstantOrWriteNode(name, name_loc, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ConstantPathAndWriteNode node # - # source://prism//lib/prism/dsl.rb#224 + # source://prism//lib/prism/dsl.rb#226 def ConstantPathAndWriteNode(target, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ConstantPathNode node # - # source://prism//lib/prism/dsl.rb#229 + # source://prism//lib/prism/dsl.rb#231 def ConstantPathNode(parent, child, delimiter_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ConstantPathOperatorWriteNode node # - # source://prism//lib/prism/dsl.rb#234 + # source://prism//lib/prism/dsl.rb#236 def ConstantPathOperatorWriteNode(target, operator_loc, value, operator, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ConstantPathOrWriteNode node # - # source://prism//lib/prism/dsl.rb#239 + # source://prism//lib/prism/dsl.rb#241 def ConstantPathOrWriteNode(target, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ConstantPathTargetNode node # - # source://prism//lib/prism/dsl.rb#244 + # source://prism//lib/prism/dsl.rb#246 def ConstantPathTargetNode(parent, child, delimiter_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ConstantPathWriteNode node # - # source://prism//lib/prism/dsl.rb#249 + # source://prism//lib/prism/dsl.rb#251 def ConstantPathWriteNode(target, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ConstantReadNode node # - # source://prism//lib/prism/dsl.rb#254 + # source://prism//lib/prism/dsl.rb#256 def ConstantReadNode(name, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ConstantTargetNode node # - # source://prism//lib/prism/dsl.rb#259 + # source://prism//lib/prism/dsl.rb#261 def ConstantTargetNode(name, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ConstantWriteNode node # - # source://prism//lib/prism/dsl.rb#264 + # source://prism//lib/prism/dsl.rb#266 def ConstantWriteNode(name, name_loc, value, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new DefNode node # - # source://prism//lib/prism/dsl.rb#269 + # source://prism//lib/prism/dsl.rb#271 def DefNode(name, name_loc, receiver, parameters, body, locals, def_keyword_loc, operator_loc, lparen_loc, rparen_loc, equal_loc, end_keyword_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new DefinedNode node # - # source://prism//lib/prism/dsl.rb#274 + # source://prism//lib/prism/dsl.rb#276 def DefinedNode(lparen_loc, value, rparen_loc, keyword_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ElseNode node # - # source://prism//lib/prism/dsl.rb#279 + # source://prism//lib/prism/dsl.rb#281 def ElseNode(else_keyword_loc, statements, end_keyword_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new EmbeddedStatementsNode node # - # source://prism//lib/prism/dsl.rb#284 + # source://prism//lib/prism/dsl.rb#286 def EmbeddedStatementsNode(opening_loc, statements, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new EmbeddedVariableNode node # - # source://prism//lib/prism/dsl.rb#289 + # source://prism//lib/prism/dsl.rb#291 def EmbeddedVariableNode(operator_loc, variable, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new EnsureNode node # - # source://prism//lib/prism/dsl.rb#294 + # source://prism//lib/prism/dsl.rb#296 def EnsureNode(ensure_keyword_loc, statements, end_keyword_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new FalseNode node # - # source://prism//lib/prism/dsl.rb#299 + # source://prism//lib/prism/dsl.rb#301 def FalseNode(source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new FindPatternNode node # - # source://prism//lib/prism/dsl.rb#304 + # source://prism//lib/prism/dsl.rb#306 def FindPatternNode(constant, left, requireds, right, opening_loc, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new FlipFlopNode node # - # source://prism//lib/prism/dsl.rb#309 + # source://prism//lib/prism/dsl.rb#311 def FlipFlopNode(flags, left, right, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new FloatNode node # - # source://prism//lib/prism/dsl.rb#314 - def FloatNode(source = T.unsafe(nil), location = T.unsafe(nil)); end + # source://prism//lib/prism/dsl.rb#316 + def FloatNode(value, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ForNode node # - # source://prism//lib/prism/dsl.rb#319 + # source://prism//lib/prism/dsl.rb#321 def ForNode(index, collection, statements, for_keyword_loc, in_keyword_loc, do_keyword_loc, end_keyword_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ForwardingArgumentsNode node # - # source://prism//lib/prism/dsl.rb#324 + # source://prism//lib/prism/dsl.rb#326 def ForwardingArgumentsNode(source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ForwardingParameterNode node # - # source://prism//lib/prism/dsl.rb#329 + # source://prism//lib/prism/dsl.rb#331 def ForwardingParameterNode(source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ForwardingSuperNode node # - # source://prism//lib/prism/dsl.rb#334 + # source://prism//lib/prism/dsl.rb#336 def ForwardingSuperNode(block, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new GlobalVariableAndWriteNode node # - # source://prism//lib/prism/dsl.rb#339 + # source://prism//lib/prism/dsl.rb#341 def GlobalVariableAndWriteNode(name, name_loc, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new GlobalVariableOperatorWriteNode node # - # source://prism//lib/prism/dsl.rb#344 + # source://prism//lib/prism/dsl.rb#346 def GlobalVariableOperatorWriteNode(name, name_loc, operator_loc, value, operator, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new GlobalVariableOrWriteNode node # - # source://prism//lib/prism/dsl.rb#349 + # source://prism//lib/prism/dsl.rb#351 def GlobalVariableOrWriteNode(name, name_loc, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new GlobalVariableReadNode node # - # source://prism//lib/prism/dsl.rb#354 + # source://prism//lib/prism/dsl.rb#356 def GlobalVariableReadNode(name, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new GlobalVariableTargetNode node # - # source://prism//lib/prism/dsl.rb#359 + # source://prism//lib/prism/dsl.rb#361 def GlobalVariableTargetNode(name, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new GlobalVariableWriteNode node # - # source://prism//lib/prism/dsl.rb#364 + # source://prism//lib/prism/dsl.rb#366 def GlobalVariableWriteNode(name, name_loc, value, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new HashNode node # - # source://prism//lib/prism/dsl.rb#369 + # source://prism//lib/prism/dsl.rb#371 def HashNode(opening_loc, elements, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new HashPatternNode node # - # source://prism//lib/prism/dsl.rb#374 + # source://prism//lib/prism/dsl.rb#376 def HashPatternNode(constant, elements, rest, opening_loc, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new IfNode node # - # source://prism//lib/prism/dsl.rb#379 + # source://prism//lib/prism/dsl.rb#381 def IfNode(if_keyword_loc, predicate, then_keyword_loc, statements, consequent, end_keyword_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ImaginaryNode node # - # source://prism//lib/prism/dsl.rb#384 + # source://prism//lib/prism/dsl.rb#386 def ImaginaryNode(numeric, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ImplicitNode node # - # source://prism//lib/prism/dsl.rb#389 + # source://prism//lib/prism/dsl.rb#391 def ImplicitNode(value, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ImplicitRestNode node # - # source://prism//lib/prism/dsl.rb#394 + # source://prism//lib/prism/dsl.rb#396 def ImplicitRestNode(source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new InNode node # - # source://prism//lib/prism/dsl.rb#399 + # source://prism//lib/prism/dsl.rb#401 def InNode(pattern, statements, in_loc, then_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new IndexAndWriteNode node # - # source://prism//lib/prism/dsl.rb#404 + # source://prism//lib/prism/dsl.rb#406 def IndexAndWriteNode(flags, receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new IndexOperatorWriteNode node # - # source://prism//lib/prism/dsl.rb#409 + # source://prism//lib/prism/dsl.rb#411 def IndexOperatorWriteNode(flags, receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, operator, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new IndexOrWriteNode node # - # source://prism//lib/prism/dsl.rb#414 + # source://prism//lib/prism/dsl.rb#416 def IndexOrWriteNode(flags, receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new IndexTargetNode node # - # source://prism//lib/prism/dsl.rb#419 + # source://prism//lib/prism/dsl.rb#421 def IndexTargetNode(flags, receiver, opening_loc, arguments, closing_loc, block, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new InstanceVariableAndWriteNode node # - # source://prism//lib/prism/dsl.rb#424 + # source://prism//lib/prism/dsl.rb#426 def InstanceVariableAndWriteNode(name, name_loc, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new InstanceVariableOperatorWriteNode node # - # source://prism//lib/prism/dsl.rb#429 + # source://prism//lib/prism/dsl.rb#431 def InstanceVariableOperatorWriteNode(name, name_loc, operator_loc, value, operator, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new InstanceVariableOrWriteNode node # - # source://prism//lib/prism/dsl.rb#434 + # source://prism//lib/prism/dsl.rb#436 def InstanceVariableOrWriteNode(name, name_loc, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new InstanceVariableReadNode node # - # source://prism//lib/prism/dsl.rb#439 + # source://prism//lib/prism/dsl.rb#441 def InstanceVariableReadNode(name, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new InstanceVariableTargetNode node # - # source://prism//lib/prism/dsl.rb#444 + # source://prism//lib/prism/dsl.rb#446 def InstanceVariableTargetNode(name, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new InstanceVariableWriteNode node # - # source://prism//lib/prism/dsl.rb#449 + # source://prism//lib/prism/dsl.rb#451 def InstanceVariableWriteNode(name, name_loc, value, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new IntegerNode node # - # source://prism//lib/prism/dsl.rb#454 - def IntegerNode(flags, source = T.unsafe(nil), location = T.unsafe(nil)); end + # source://prism//lib/prism/dsl.rb#456 + def IntegerNode(flags, value, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new InterpolatedMatchLastLineNode node # - # source://prism//lib/prism/dsl.rb#459 + # source://prism//lib/prism/dsl.rb#461 def InterpolatedMatchLastLineNode(flags, opening_loc, parts, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new InterpolatedRegularExpressionNode node # - # source://prism//lib/prism/dsl.rb#464 + # source://prism//lib/prism/dsl.rb#466 def InterpolatedRegularExpressionNode(flags, opening_loc, parts, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new InterpolatedStringNode node # - # source://prism//lib/prism/dsl.rb#469 - def InterpolatedStringNode(opening_loc, parts, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end + # source://prism//lib/prism/dsl.rb#471 + def InterpolatedStringNode(flags, opening_loc, parts, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new InterpolatedSymbolNode node # - # source://prism//lib/prism/dsl.rb#474 + # source://prism//lib/prism/dsl.rb#476 def InterpolatedSymbolNode(opening_loc, parts, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new InterpolatedXStringNode node # - # source://prism//lib/prism/dsl.rb#479 + # source://prism//lib/prism/dsl.rb#481 def InterpolatedXStringNode(opening_loc, parts, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end + # Create a new ItParametersNode node + # + # source://prism//lib/prism/dsl.rb#486 + def ItParametersNode(source = T.unsafe(nil), location = T.unsafe(nil)); end + # Create a new KeywordHashNode node # - # source://prism//lib/prism/dsl.rb#484 + # source://prism//lib/prism/dsl.rb#491 def KeywordHashNode(flags, elements, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new KeywordRestParameterNode node # - # source://prism//lib/prism/dsl.rb#489 + # source://prism//lib/prism/dsl.rb#496 def KeywordRestParameterNode(flags, name, name_loc, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new LambdaNode node # - # source://prism//lib/prism/dsl.rb#494 + # source://prism//lib/prism/dsl.rb#501 def LambdaNode(locals, operator_loc, opening_loc, closing_loc, parameters, body, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new LocalVariableAndWriteNode node # - # source://prism//lib/prism/dsl.rb#499 + # source://prism//lib/prism/dsl.rb#506 def LocalVariableAndWriteNode(name_loc, operator_loc, value, name, depth, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new LocalVariableOperatorWriteNode node # - # source://prism//lib/prism/dsl.rb#504 + # source://prism//lib/prism/dsl.rb#511 def LocalVariableOperatorWriteNode(name_loc, operator_loc, value, name, operator, depth, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new LocalVariableOrWriteNode node # - # source://prism//lib/prism/dsl.rb#509 + # source://prism//lib/prism/dsl.rb#516 def LocalVariableOrWriteNode(name_loc, operator_loc, value, name, depth, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new LocalVariableReadNode node # - # source://prism//lib/prism/dsl.rb#514 + # source://prism//lib/prism/dsl.rb#521 def LocalVariableReadNode(name, depth, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new LocalVariableTargetNode node # - # source://prism//lib/prism/dsl.rb#519 + # source://prism//lib/prism/dsl.rb#526 def LocalVariableTargetNode(name, depth, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new LocalVariableWriteNode node # - # source://prism//lib/prism/dsl.rb#524 + # source://prism//lib/prism/dsl.rb#531 def LocalVariableWriteNode(name, depth, name_loc, value, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new Location object # - # source://prism//lib/prism/dsl.rb#44 + # source://prism//lib/prism/dsl.rb#46 def Location(source = T.unsafe(nil), start_offset = T.unsafe(nil), length = T.unsafe(nil)); end # Create a new MatchLastLineNode node # - # source://prism//lib/prism/dsl.rb#529 + # source://prism//lib/prism/dsl.rb#536 def MatchLastLineNode(flags, opening_loc, content_loc, closing_loc, unescaped, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new MatchPredicateNode node # - # source://prism//lib/prism/dsl.rb#534 + # source://prism//lib/prism/dsl.rb#541 def MatchPredicateNode(value, pattern, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new MatchRequiredNode node # - # source://prism//lib/prism/dsl.rb#539 + # source://prism//lib/prism/dsl.rb#546 def MatchRequiredNode(value, pattern, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new MatchWriteNode node # - # source://prism//lib/prism/dsl.rb#544 + # source://prism//lib/prism/dsl.rb#551 def MatchWriteNode(call, targets, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new MissingNode node # - # source://prism//lib/prism/dsl.rb#549 + # source://prism//lib/prism/dsl.rb#556 def MissingNode(source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ModuleNode node # - # source://prism//lib/prism/dsl.rb#554 + # source://prism//lib/prism/dsl.rb#561 def ModuleNode(locals, module_keyword_loc, constant_path, body, end_keyword_loc, name, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new MultiTargetNode node # - # source://prism//lib/prism/dsl.rb#559 + # source://prism//lib/prism/dsl.rb#566 def MultiTargetNode(lefts, rest, rights, lparen_loc, rparen_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new MultiWriteNode node # - # source://prism//lib/prism/dsl.rb#564 + # source://prism//lib/prism/dsl.rb#571 def MultiWriteNode(lefts, rest, rights, lparen_loc, rparen_loc, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new NextNode node # - # source://prism//lib/prism/dsl.rb#569 + # source://prism//lib/prism/dsl.rb#576 def NextNode(arguments, keyword_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new NilNode node # - # source://prism//lib/prism/dsl.rb#574 + # source://prism//lib/prism/dsl.rb#581 def NilNode(source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new NoKeywordsParameterNode node # - # source://prism//lib/prism/dsl.rb#579 + # source://prism//lib/prism/dsl.rb#586 def NoKeywordsParameterNode(operator_loc, keyword_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new NumberedParametersNode node # - # source://prism//lib/prism/dsl.rb#584 + # source://prism//lib/prism/dsl.rb#591 def NumberedParametersNode(maximum, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new NumberedReferenceReadNode node # - # source://prism//lib/prism/dsl.rb#589 + # source://prism//lib/prism/dsl.rb#596 def NumberedReferenceReadNode(number, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new OptionalKeywordParameterNode node # - # source://prism//lib/prism/dsl.rb#594 + # source://prism//lib/prism/dsl.rb#601 def OptionalKeywordParameterNode(flags, name, name_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new OptionalParameterNode node # - # source://prism//lib/prism/dsl.rb#599 + # source://prism//lib/prism/dsl.rb#606 def OptionalParameterNode(flags, name, name_loc, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new OrNode node # - # source://prism//lib/prism/dsl.rb#604 + # source://prism//lib/prism/dsl.rb#611 def OrNode(left, right, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ParametersNode node # - # source://prism//lib/prism/dsl.rb#609 + # source://prism//lib/prism/dsl.rb#616 def ParametersNode(requireds, optionals, rest, posts, keywords, keyword_rest, block, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ParenthesesNode node # - # source://prism//lib/prism/dsl.rb#614 + # source://prism//lib/prism/dsl.rb#621 def ParenthesesNode(body, opening_loc, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new PinnedExpressionNode node # - # source://prism//lib/prism/dsl.rb#619 + # source://prism//lib/prism/dsl.rb#626 def PinnedExpressionNode(expression, operator_loc, lparen_loc, rparen_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new PinnedVariableNode node # - # source://prism//lib/prism/dsl.rb#624 + # source://prism//lib/prism/dsl.rb#631 def PinnedVariableNode(variable, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new PostExecutionNode node # - # source://prism//lib/prism/dsl.rb#629 + # source://prism//lib/prism/dsl.rb#636 def PostExecutionNode(statements, keyword_loc, opening_loc, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new PreExecutionNode node # - # source://prism//lib/prism/dsl.rb#634 + # source://prism//lib/prism/dsl.rb#641 def PreExecutionNode(statements, keyword_loc, opening_loc, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ProgramNode node # - # source://prism//lib/prism/dsl.rb#639 + # source://prism//lib/prism/dsl.rb#646 def ProgramNode(locals, statements, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new RangeNode node # - # source://prism//lib/prism/dsl.rb#644 + # source://prism//lib/prism/dsl.rb#651 def RangeNode(flags, left, right, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new RationalNode node # - # source://prism//lib/prism/dsl.rb#649 + # source://prism//lib/prism/dsl.rb#656 def RationalNode(numeric, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new RedoNode node # - # source://prism//lib/prism/dsl.rb#654 + # source://prism//lib/prism/dsl.rb#661 def RedoNode(source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new RegularExpressionNode node # - # source://prism//lib/prism/dsl.rb#659 + # source://prism//lib/prism/dsl.rb#666 def RegularExpressionNode(flags, opening_loc, content_loc, closing_loc, unescaped, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new RequiredKeywordParameterNode node # - # source://prism//lib/prism/dsl.rb#664 + # source://prism//lib/prism/dsl.rb#671 def RequiredKeywordParameterNode(flags, name, name_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new RequiredParameterNode node # - # source://prism//lib/prism/dsl.rb#669 + # source://prism//lib/prism/dsl.rb#676 def RequiredParameterNode(flags, name, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new RescueModifierNode node # - # source://prism//lib/prism/dsl.rb#674 + # source://prism//lib/prism/dsl.rb#681 def RescueModifierNode(expression, keyword_loc, rescue_expression, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new RescueNode node # - # source://prism//lib/prism/dsl.rb#679 + # source://prism//lib/prism/dsl.rb#686 def RescueNode(keyword_loc, exceptions, operator_loc, reference, statements, consequent, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new RestParameterNode node # - # source://prism//lib/prism/dsl.rb#684 + # source://prism//lib/prism/dsl.rb#691 def RestParameterNode(flags, name, name_loc, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new RetryNode node # - # source://prism//lib/prism/dsl.rb#689 + # source://prism//lib/prism/dsl.rb#696 def RetryNode(source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new ReturnNode node # - # source://prism//lib/prism/dsl.rb#694 + # source://prism//lib/prism/dsl.rb#701 def ReturnNode(keyword_loc, arguments, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new SelfNode node # - # source://prism//lib/prism/dsl.rb#699 + # source://prism//lib/prism/dsl.rb#706 def SelfNode(source = T.unsafe(nil), location = T.unsafe(nil)); end + # Create a new ShareableConstantNode node + # + # source://prism//lib/prism/dsl.rb#711 + def ShareableConstantNode(flags, write, source = T.unsafe(nil), location = T.unsafe(nil)); end + # Create a new SingletonClassNode node # - # source://prism//lib/prism/dsl.rb#704 + # source://prism//lib/prism/dsl.rb#716 def SingletonClassNode(locals, class_keyword_loc, operator_loc, expression, body, end_keyword_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new SourceEncodingNode node # - # source://prism//lib/prism/dsl.rb#709 + # source://prism//lib/prism/dsl.rb#721 def SourceEncodingNode(source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new SourceFileNode node # - # source://prism//lib/prism/dsl.rb#714 - def SourceFileNode(filepath, source = T.unsafe(nil), location = T.unsafe(nil)); end + # source://prism//lib/prism/dsl.rb#726 + def SourceFileNode(flags, filepath, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new SourceLineNode node # - # source://prism//lib/prism/dsl.rb#719 + # source://prism//lib/prism/dsl.rb#731 def SourceLineNode(source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new SplatNode node # - # source://prism//lib/prism/dsl.rb#724 + # source://prism//lib/prism/dsl.rb#736 def SplatNode(operator_loc, expression, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new StatementsNode node # - # source://prism//lib/prism/dsl.rb#729 + # source://prism//lib/prism/dsl.rb#741 def StatementsNode(body, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new StringNode node # - # source://prism//lib/prism/dsl.rb#734 + # source://prism//lib/prism/dsl.rb#746 def StringNode(flags, opening_loc, content_loc, closing_loc, unescaped, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new SuperNode node # - # source://prism//lib/prism/dsl.rb#739 + # source://prism//lib/prism/dsl.rb#751 def SuperNode(keyword_loc, lparen_loc, arguments, rparen_loc, block, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new SymbolNode node # - # source://prism//lib/prism/dsl.rb#744 + # source://prism//lib/prism/dsl.rb#756 def SymbolNode(flags, opening_loc, value_loc, closing_loc, unescaped, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new TrueNode node # - # source://prism//lib/prism/dsl.rb#749 + # source://prism//lib/prism/dsl.rb#761 def TrueNode(source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new UndefNode node # - # source://prism//lib/prism/dsl.rb#754 + # source://prism//lib/prism/dsl.rb#766 def UndefNode(names, keyword_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new UnlessNode node # - # source://prism//lib/prism/dsl.rb#759 + # source://prism//lib/prism/dsl.rb#771 def UnlessNode(keyword_loc, predicate, then_keyword_loc, statements, consequent, end_keyword_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new UntilNode node # - # source://prism//lib/prism/dsl.rb#764 + # source://prism//lib/prism/dsl.rb#776 def UntilNode(flags, keyword_loc, closing_loc, predicate, statements, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new WhenNode node # - # source://prism//lib/prism/dsl.rb#769 - def WhenNode(keyword_loc, conditions, statements, source = T.unsafe(nil), location = T.unsafe(nil)); end + # source://prism//lib/prism/dsl.rb#781 + def WhenNode(keyword_loc, conditions, then_keyword_loc, statements, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new WhileNode node # - # source://prism//lib/prism/dsl.rb#774 + # source://prism//lib/prism/dsl.rb#786 def WhileNode(flags, keyword_loc, closing_loc, predicate, statements, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new XStringNode node # - # source://prism//lib/prism/dsl.rb#779 + # source://prism//lib/prism/dsl.rb#791 def XStringNode(flags, opening_loc, content_loc, closing_loc, unescaped, source = T.unsafe(nil), location = T.unsafe(nil)); end # Create a new YieldNode node # - # source://prism//lib/prism/dsl.rb#784 + # source://prism//lib/prism/dsl.rb#796 def YieldNode(keyword_loc, lparen_loc, arguments, rparen_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end end @@ -7860,6 +9150,7 @@ module Prism::Debug def format_errors(_arg0, _arg1); end def inspect_node(_arg0); end + def integer_parse(_arg0); end def memsize(_arg0); end def named_captures(_arg0); end @@ -7882,6 +9173,7 @@ module Prism::Debug def prism_locals(source); end def profile_file(_arg0); end + def static_inspect(*_arg0); end end end @@ -7893,6 +9185,70 @@ end # source://prism//lib/prism/debug.rb#90 Prism::Debug::AnonymousLocal = T.let(T.unsafe(nil), Object) +# A wrapping around prism's internal encoding data structures. This is used +# for reflection and debugging purposes. +# +# source://prism//lib/prism/debug.rb#208 +class Prism::Debug::Encoding + # Initialize a new encoding with the given name and whether or not it is + # a multibyte encoding. + # + # @return [Encoding] a new instance of Encoding + # + # source://prism//lib/prism/debug.rb#214 + def initialize(name, multibyte); end + + # Returns true if the first character in the source string is a valid + # alphanumeric character for the encoding. + # + # @return [Boolean] + # + # source://prism//lib/prism/debug.rb#232 + def alnum?(source); end + + # Returns true if the first character in the source string is a valid + # alphabetic character for the encoding. + # + # @return [Boolean] + # + # source://prism//lib/prism/debug.rb#238 + def alpha?(source); end + + # Whether or not the encoding is a multibyte encoding. + # + # @return [Boolean] + # + # source://prism//lib/prism/debug.rb#220 + def multibyte?; end + + # The name of the encoding, that can be passed to Encoding.find. + # + # source://prism//lib/prism/debug.rb#210 + def name; end + + # Returns true if the first character in the source string is a valid + # uppercase character for the encoding. + # + # @return [Boolean] + # + # source://prism//lib/prism/debug.rb#244 + def upper?(source); end + + # Returns the number of bytes of the first character in the source string, + # if it is valid for the encoding. Otherwise, returns 0. + # + # source://prism//lib/prism/debug.rb#226 + def width(source); end + + class << self + def _alnum?(_arg0, _arg1); end + def _alpha?(_arg0, _arg1); end + def _upper?(_arg0, _arg1); end + def _width(_arg0, _arg1); end + def all; end + end +end + # A wrapper around a RubyVM::InstructionSequence that provides a more # convenient interface for accessing parts of the iseq. # @@ -7925,170 +9281,212 @@ end # end # ^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#5889 +# source://prism//lib/prism/node.rb#6177 class Prism::DefNode < ::Prism::Node - # def initialize: (Symbol name, Location name_loc, Node? receiver, ParametersNode? parameters, Node? body, Array[Symbol] locals, Location def_keyword_loc, Location? operator_loc, Location? lparen_loc, Location? rparen_loc, Location? equal_loc, Location? end_keyword_loc, Location location) -> void + # def initialize: (Symbol name, Location name_loc, Prism::node? receiver, ParametersNode? parameters, Prism::node? body, Array[Symbol] locals, Location def_keyword_loc, Location? operator_loc, Location? lparen_loc, Location? rparen_loc, Location? equal_loc, Location? end_keyword_loc, Location location) -> void # # @return [DefNode] a new instance of DefNode # - # source://prism//lib/prism/node.rb#5891 + # source://prism//lib/prism/node.rb#6179 + sig do + params( + source: Prism::Source, + 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), + location: Prism::Location + ).void + end def initialize(source, name, name_loc, receiver, parameters, body, locals, def_keyword_loc, operator_loc, lparen_loc, rparen_loc, equal_loc, end_keyword_loc, location); 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#6421 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#5910 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#6198 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end - # attr_reader body: Node? + # attr_reader body: Prism::node? # - # source://prism//lib/prism/node.rb#5977 + # source://prism//lib/prism/node.rb#6251 sig { returns(T.nilable(Prism::Node)) } def body; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#5915 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#6203 + 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#5929 + # source://prism//lib/prism/node.rb#6217 + 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#5920 + # source://prism//lib/prism/node.rb#6208 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> DefNode + # def copy: (?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?, ?location: Location) -> DefNode # - # source://prism//lib/prism/node.rb#5934 - sig { params(params: T.untyped).returns(Prism::DefNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#6222 + sig do + params( + 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), + location: Prism::Location + ).returns(Prism::DefNode) + end + def copy(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), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#5915 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#6203 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, receiver: Node?, parameters: ParametersNode?, body: Node?, locals: Array[Symbol], def_keyword_loc: Location, operator_loc: Location?, lparen_loc: Location?, rparen_loc: Location?, equal_loc: Location?, end_keyword_loc: Location?, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { 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?, location: Location } # - # source://prism//lib/prism/node.rb#5957 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#6230 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end # def def_keyword: () -> String # - # source://prism//lib/prism/node.rb#6050 + # source://prism//lib/prism/node.rb#6329 sig { returns(String) } def def_keyword; end # attr_reader def_keyword_loc: Location # - # source://prism//lib/prism/node.rb#5983 + # source://prism//lib/prism/node.rb#6257 sig { returns(Prism::Location) } def def_keyword_loc; end # def end_keyword: () -> String? # - # source://prism//lib/prism/node.rb#6075 + # source://prism//lib/prism/node.rb#6354 sig { returns(T.nilable(String)) } def end_keyword; end # attr_reader end_keyword_loc: Location? # - # source://prism//lib/prism/node.rb#6037 + # source://prism//lib/prism/node.rb#6316 sig { returns(T.nilable(Prism::Location)) } def end_keyword_loc; end # def equal: () -> String? # - # source://prism//lib/prism/node.rb#6070 + # source://prism//lib/prism/node.rb#6349 sig { returns(T.nilable(String)) } def equal; end # attr_reader equal_loc: Location? # - # source://prism//lib/prism/node.rb#6025 + # source://prism//lib/prism/node.rb#6303 sig { returns(T.nilable(Prism::Location)) } def equal_loc; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#6080 + # source://prism//lib/prism/node.rb#6359 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader locals: Array[Symbol] # - # source://prism//lib/prism/node.rb#5980 + # source://prism//lib/prism/node.rb#6254 sig { returns(T::Array[Symbol]) } def locals; end # def lparen: () -> String? # - # source://prism//lib/prism/node.rb#6060 + # source://prism//lib/prism/node.rb#6339 sig { returns(T.nilable(String)) } def lparen; end # attr_reader lparen_loc: Location? # - # source://prism//lib/prism/node.rb#6001 + # source://prism//lib/prism/node.rb#6277 sig { returns(T.nilable(Prism::Location)) } def lparen_loc; end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#5962 + # source://prism//lib/prism/node.rb#6235 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#5965 + # source://prism//lib/prism/node.rb#6238 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String? # - # source://prism//lib/prism/node.rb#6055 + # source://prism//lib/prism/node.rb#6334 sig { returns(T.nilable(String)) } def operator; end # attr_reader operator_loc: Location? # - # source://prism//lib/prism/node.rb#5989 + # source://prism//lib/prism/node.rb#6264 sig { returns(T.nilable(Prism::Location)) } def operator_loc; end # attr_reader parameters: ParametersNode? # - # source://prism//lib/prism/node.rb#5974 + # source://prism//lib/prism/node.rb#6248 sig { returns(T.nilable(Prism::ParametersNode)) } def parameters; end - # attr_reader receiver: Node? + # attr_reader receiver: Prism::node? # - # source://prism//lib/prism/node.rb#5971 + # source://prism//lib/prism/node.rb#6245 sig { returns(T.nilable(Prism::Node)) } def receiver; end # def rparen: () -> String? # - # source://prism//lib/prism/node.rb#6065 + # source://prism//lib/prism/node.rb#6344 sig { returns(T.nilable(String)) } def rparen; end # attr_reader rparen_loc: Location? # - # source://prism//lib/prism/node.rb#6013 + # source://prism//lib/prism/node.rb#6290 sig { returns(T.nilable(Prism::Location)) } def rparen_loc; end @@ -8107,7 +9505,8 @@ class Prism::DefNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#6126 + # source://prism//lib/prism/node.rb#6405 + sig { override.returns(Symbol) } def type; end class << self @@ -8118,7 +9517,7 @@ class Prism::DefNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#6136 + # source://prism//lib/prism/node.rb#6415 def type; end end end @@ -8128,98 +9527,124 @@ end # defined?(a) # ^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#6145 +# source://prism//lib/prism/node.rb#6443 class Prism::DefinedNode < ::Prism::Node - # def initialize: (Location? lparen_loc, Node value, Location? rparen_loc, Location keyword_loc, Location location) -> void + # def initialize: (Location? lparen_loc, Prism::node value, Location? rparen_loc, Location keyword_loc, Location location) -> void # # @return [DefinedNode] a new instance of DefinedNode # - # source://prism//lib/prism/node.rb#6147 + # source://prism//lib/prism/node.rb#6445 + sig do + params( + source: Prism::Source, + lparen_loc: T.nilable(Prism::Location), + value: Prism::Node, + rparen_loc: T.nilable(Prism::Location), + keyword_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, lparen_loc, value, rparen_loc, keyword_loc, location); 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#6580 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#6158 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#6456 + 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#6163 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#6461 + 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#6173 + # source://prism//lib/prism/node.rb#6471 + 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#6168 + # source://prism//lib/prism/node.rb#6466 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> DefinedNode + # def copy: (?lparen_loc: Location?, ?value: Prism::node, ?rparen_loc: Location?, ?keyword_loc: Location, ?location: Location) -> DefinedNode # - # source://prism//lib/prism/node.rb#6178 - sig { params(params: T.untyped).returns(Prism::DefinedNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#6476 + sig do + params( + lparen_loc: T.nilable(Prism::Location), + value: Prism::Node, + rparen_loc: T.nilable(Prism::Location), + keyword_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::DefinedNode) + end + def copy(lparen_loc: T.unsafe(nil), value: T.unsafe(nil), rparen_loc: T.unsafe(nil), keyword_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#6163 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#6461 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { lparen_loc: Location?, value: Node, rparen_loc: Location?, keyword_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { lparen_loc: Location?, value: Prism::node, rparen_loc: Location?, keyword_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#6193 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#6484 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#6247 + # source://prism//lib/prism/node.rb#6540 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#6242 + # source://prism//lib/prism/node.rb#6535 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#6225 + # source://prism//lib/prism/node.rb#6518 sig { returns(Prism::Location) } def keyword_loc; end # def lparen: () -> String? # - # source://prism//lib/prism/node.rb#6232 + # source://prism//lib/prism/node.rb#6525 sig { returns(T.nilable(String)) } def lparen; end # attr_reader lparen_loc: Location? # - # source://prism//lib/prism/node.rb#6198 + # source://prism//lib/prism/node.rb#6489 sig { returns(T.nilable(Prism::Location)) } def lparen_loc; end # def rparen: () -> String? # - # source://prism//lib/prism/node.rb#6237 + # source://prism//lib/prism/node.rb#6530 sig { returns(T.nilable(String)) } def rparen; end # attr_reader rparen_loc: Location? # - # source://prism//lib/prism/node.rb#6213 + # source://prism//lib/prism/node.rb#6505 sig { returns(T.nilable(Prism::Location)) } def rparen_loc; end @@ -8238,12 +9663,13 @@ class Prism::DefinedNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#6271 + # source://prism//lib/prism/node.rb#6564 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#6210 + # source://prism//lib/prism/node.rb#6502 sig { returns(Prism::Node) } def value; end @@ -8255,7 +9681,7 @@ class Prism::DefinedNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#6281 + # source://prism//lib/prism/node.rb#6574 def type; end end end @@ -8301,15 +9727,17 @@ 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#216 +# source://prism//lib/prism/desugar_compiler.rb#218 class Prism::DesugarCompiler < ::Prism::MutationCompiler + Result = type_member { { fixed: Prism::Node } } + # @@foo &&= bar # # becomes # # @@foo && @@foo = bar # - # source://prism//lib/prism/desugar_compiler.rb#222 + # source://prism//lib/prism/desugar_compiler.rb#224 def visit_class_variable_and_write_node(node); end # @@foo += bar @@ -8318,7 +9746,7 @@ class Prism::DesugarCompiler < ::Prism::MutationCompiler # # @@foo = @@foo + bar # - # source://prism//lib/prism/desugar_compiler.rb#240 + # source://prism//lib/prism/desugar_compiler.rb#242 def visit_class_variable_operator_write_node(node); end # @@foo ||= bar @@ -8327,7 +9755,7 @@ class Prism::DesugarCompiler < ::Prism::MutationCompiler # # defined?(@@foo) ? @@foo : @@foo = bar # - # source://prism//lib/prism/desugar_compiler.rb#231 + # source://prism//lib/prism/desugar_compiler.rb#233 def visit_class_variable_or_write_node(node); end # Foo &&= bar @@ -8336,7 +9764,7 @@ class Prism::DesugarCompiler < ::Prism::MutationCompiler # # Foo && Foo = bar # - # source://prism//lib/prism/desugar_compiler.rb#249 + # source://prism//lib/prism/desugar_compiler.rb#251 def visit_constant_and_write_node(node); end # Foo += bar @@ -8345,7 +9773,7 @@ class Prism::DesugarCompiler < ::Prism::MutationCompiler # # Foo = Foo + bar # - # source://prism//lib/prism/desugar_compiler.rb#267 + # source://prism//lib/prism/desugar_compiler.rb#269 def visit_constant_operator_write_node(node); end # Foo ||= bar @@ -8354,7 +9782,7 @@ class Prism::DesugarCompiler < ::Prism::MutationCompiler # # defined?(Foo) ? Foo : Foo = bar # - # source://prism//lib/prism/desugar_compiler.rb#258 + # source://prism//lib/prism/desugar_compiler.rb#260 def visit_constant_or_write_node(node); end # $foo &&= bar @@ -8363,7 +9791,7 @@ class Prism::DesugarCompiler < ::Prism::MutationCompiler # # $foo && $foo = bar # - # source://prism//lib/prism/desugar_compiler.rb#276 + # source://prism//lib/prism/desugar_compiler.rb#278 def visit_global_variable_and_write_node(node); end # $foo += bar @@ -8372,7 +9800,7 @@ class Prism::DesugarCompiler < ::Prism::MutationCompiler # # $foo = $foo + bar # - # source://prism//lib/prism/desugar_compiler.rb#294 + # source://prism//lib/prism/desugar_compiler.rb#296 def visit_global_variable_operator_write_node(node); end # $foo ||= bar @@ -8381,22 +9809,22 @@ class Prism::DesugarCompiler < ::Prism::MutationCompiler # # defined?($foo) ? $foo : $foo = bar # - # source://prism//lib/prism/desugar_compiler.rb#285 + # source://prism//lib/prism/desugar_compiler.rb#287 def visit_global_variable_or_write_node(node); end # becomes # - # source://prism//lib/prism/desugar_compiler.rb#303 + # source://prism//lib/prism/desugar_compiler.rb#305 def visit_instance_variable_and_write_node(node); end # becomes # - # source://prism//lib/prism/desugar_compiler.rb#321 + # source://prism//lib/prism/desugar_compiler.rb#323 def visit_instance_variable_operator_write_node(node); end # becomes # - # source://prism//lib/prism/desugar_compiler.rb#312 + # source://prism//lib/prism/desugar_compiler.rb#314 def visit_instance_variable_or_write_node(node); end # foo &&= bar @@ -8405,7 +9833,7 @@ class Prism::DesugarCompiler < ::Prism::MutationCompiler # # foo && foo = bar # - # source://prism//lib/prism/desugar_compiler.rb#330 + # source://prism//lib/prism/desugar_compiler.rb#332 def visit_local_variable_and_write_node(node); end # foo += bar @@ -8414,7 +9842,7 @@ class Prism::DesugarCompiler < ::Prism::MutationCompiler # # foo = foo + bar # - # source://prism//lib/prism/desugar_compiler.rb#348 + # source://prism//lib/prism/desugar_compiler.rb#350 def visit_local_variable_operator_write_node(node); end # foo ||= bar @@ -8423,7 +9851,7 @@ class Prism::DesugarCompiler < ::Prism::MutationCompiler # # foo || foo = bar # - # source://prism//lib/prism/desugar_compiler.rb#339 + # source://prism//lib/prism/desugar_compiler.rb#341 def visit_local_variable_or_write_node(node); end end @@ -8503,41 +9931,41 @@ class Prism::DesugarOrWriteDefinedNode def write_class; end end -# source://prism//lib/prism/desugar_compiler.rb#99 +# source://prism//lib/prism/desugar_compiler.rb#101 class Prism::DesugarOrWriteNode # @return [DesugarOrWriteNode] a new instance of DesugarOrWriteNode # - # source://prism//lib/prism/desugar_compiler.rb#102 + # source://prism//lib/prism/desugar_compiler.rb#104 def initialize(node, source, read_class, write_class, *arguments); end # Returns the value of attribute arguments. # - # source://prism//lib/prism/desugar_compiler.rb#100 + # source://prism//lib/prism/desugar_compiler.rb#102 def arguments; end # Desugar `x ||= y` to `x || x = y` # - # source://prism//lib/prism/desugar_compiler.rb#111 + # source://prism//lib/prism/desugar_compiler.rb#113 def compile; end # Returns the value of attribute node. # - # source://prism//lib/prism/desugar_compiler.rb#100 + # source://prism//lib/prism/desugar_compiler.rb#102 def node; end # Returns the value of attribute read_class. # - # source://prism//lib/prism/desugar_compiler.rb#100 + # source://prism//lib/prism/desugar_compiler.rb#102 def read_class; end # Returns the value of attribute source. # - # source://prism//lib/prism/desugar_compiler.rb#100 + # source://prism//lib/prism/desugar_compiler.rb#102 def source; end # Returns the value of attribute write_class. # - # source://prism//lib/prism/desugar_compiler.rb#100 + # source://prism//lib/prism/desugar_compiler.rb#102 def write_class; end end @@ -8572,2443 +10000,2475 @@ end # integer = result.value.statements.body.first.receiver.receiver # dispatcher.dispatch_once(integer) # -# source://prism//lib/prism/dispatcher.rb#40 +# source://prism//lib/prism/dispatcher.rb#41 class Prism::Dispatcher < ::Prism::Visitor # Initialize a new dispatcher. # # @return [Dispatcher] a new instance of Dispatcher # - # source://prism//lib/prism/dispatcher.rb#45 + # source://prism//lib/prism/dispatcher.rb#46 def initialize; end # Walks `root` dispatching events to all registered listeners. # # def dispatch: (Node) -> void # - # source://prism//lib/prism/visitor.rb#16 + # 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#64 + # source://prism//lib/prism/dispatcher.rb#65 def dispatch_once(node); end # attr_reader listeners: Hash[Symbol, Array[Listener]] # - # source://prism//lib/prism/dispatcher.rb#42 + # source://prism//lib/prism/dispatcher.rb#43 def listeners; end # Register a listener for one or more events. # # def register: (Listener, *Symbol) -> void # - # source://prism//lib/prism/dispatcher.rb#52 + # source://prism//lib/prism/dispatcher.rb#53 def register(listener, *events); end # Dispatch enter and leave events for AliasGlobalVariableNode nodes and continue # walking the tree. # - # source://prism//lib/prism/dispatcher.rb#70 + # source://prism//lib/prism/dispatcher.rb#71 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#78 + # source://prism//lib/prism/dispatcher.rb#79 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#86 + # source://prism//lib/prism/dispatcher.rb#87 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#94 + # source://prism//lib/prism/dispatcher.rb#95 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#102 + # source://prism//lib/prism/dispatcher.rb#103 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#110 + # source://prism//lib/prism/dispatcher.rb#111 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#118 + # source://prism//lib/prism/dispatcher.rb#119 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#126 + # source://prism//lib/prism/dispatcher.rb#127 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#134 + # source://prism//lib/prism/dispatcher.rb#135 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#142 + # source://prism//lib/prism/dispatcher.rb#143 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#150 + # source://prism//lib/prism/dispatcher.rb#151 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#158 + # source://prism//lib/prism/dispatcher.rb#159 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#166 + # source://prism//lib/prism/dispatcher.rb#167 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#174 + # source://prism//lib/prism/dispatcher.rb#175 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#182 + # source://prism//lib/prism/dispatcher.rb#183 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#190 + # source://prism//lib/prism/dispatcher.rb#191 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#198 + # source://prism//lib/prism/dispatcher.rb#199 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#206 + # source://prism//lib/prism/dispatcher.rb#207 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#214 + # source://prism//lib/prism/dispatcher.rb#215 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#222 + # source://prism//lib/prism/dispatcher.rb#223 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#230 + # source://prism//lib/prism/dispatcher.rb#231 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#238 + # source://prism//lib/prism/dispatcher.rb#239 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#246 + # source://prism//lib/prism/dispatcher.rb#247 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#254 + # source://prism//lib/prism/dispatcher.rb#255 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#262 + # source://prism//lib/prism/dispatcher.rb#263 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#270 + # source://prism//lib/prism/dispatcher.rb#271 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#278 + # source://prism//lib/prism/dispatcher.rb#279 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#286 + # source://prism//lib/prism/dispatcher.rb#287 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#294 + # source://prism//lib/prism/dispatcher.rb#295 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#302 + # source://prism//lib/prism/dispatcher.rb#303 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#310 + # source://prism//lib/prism/dispatcher.rb#311 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#318 + # source://prism//lib/prism/dispatcher.rb#319 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#326 + # source://prism//lib/prism/dispatcher.rb#327 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#334 + # source://prism//lib/prism/dispatcher.rb#335 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#342 + # source://prism//lib/prism/dispatcher.rb#343 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#350 + # source://prism//lib/prism/dispatcher.rb#351 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#358 + # source://prism//lib/prism/dispatcher.rb#359 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#366 + # source://prism//lib/prism/dispatcher.rb#367 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#374 + # source://prism//lib/prism/dispatcher.rb#375 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#382 + # source://prism//lib/prism/dispatcher.rb#383 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#390 + # source://prism//lib/prism/dispatcher.rb#391 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#398 + # source://prism//lib/prism/dispatcher.rb#399 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#406 + # source://prism//lib/prism/dispatcher.rb#407 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#414 + # source://prism//lib/prism/dispatcher.rb#415 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#422 + # source://prism//lib/prism/dispatcher.rb#423 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#430 + # source://prism//lib/prism/dispatcher.rb#431 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#438 + # source://prism//lib/prism/dispatcher.rb#439 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#446 + # source://prism//lib/prism/dispatcher.rb#447 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#454 + # source://prism//lib/prism/dispatcher.rb#455 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#462 + # source://prism//lib/prism/dispatcher.rb#463 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#470 + # source://prism//lib/prism/dispatcher.rb#471 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#478 + # source://prism//lib/prism/dispatcher.rb#479 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#486 + # source://prism//lib/prism/dispatcher.rb#487 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#494 + # source://prism//lib/prism/dispatcher.rb#495 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#502 + # source://prism//lib/prism/dispatcher.rb#503 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#510 + # source://prism//lib/prism/dispatcher.rb#511 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#518 + # source://prism//lib/prism/dispatcher.rb#519 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#526 + # source://prism//lib/prism/dispatcher.rb#527 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#534 + # source://prism//lib/prism/dispatcher.rb#535 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#542 + # source://prism//lib/prism/dispatcher.rb#543 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#550 + # source://prism//lib/prism/dispatcher.rb#551 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#558 + # source://prism//lib/prism/dispatcher.rb#559 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#566 + # source://prism//lib/prism/dispatcher.rb#567 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#574 + # source://prism//lib/prism/dispatcher.rb#575 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#582 + # source://prism//lib/prism/dispatcher.rb#583 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#590 + # source://prism//lib/prism/dispatcher.rb#591 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#598 + # source://prism//lib/prism/dispatcher.rb#599 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#606 + # source://prism//lib/prism/dispatcher.rb#607 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#614 + # source://prism//lib/prism/dispatcher.rb#615 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#622 + # source://prism//lib/prism/dispatcher.rb#623 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#630 + # source://prism//lib/prism/dispatcher.rb#631 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#638 + # source://prism//lib/prism/dispatcher.rb#639 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#646 + # source://prism//lib/prism/dispatcher.rb#647 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#654 + # source://prism//lib/prism/dispatcher.rb#655 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#662 + # source://prism//lib/prism/dispatcher.rb#663 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#670 + # source://prism//lib/prism/dispatcher.rb#671 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#678 + # source://prism//lib/prism/dispatcher.rb#679 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#686 + # source://prism//lib/prism/dispatcher.rb#687 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#694 + # source://prism//lib/prism/dispatcher.rb#695 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#702 + # source://prism//lib/prism/dispatcher.rb#703 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#710 + # source://prism//lib/prism/dispatcher.rb#711 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#718 + # source://prism//lib/prism/dispatcher.rb#719 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#726 + # source://prism//lib/prism/dispatcher.rb#727 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#734 + # source://prism//lib/prism/dispatcher.rb#735 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#742 + # source://prism//lib/prism/dispatcher.rb#743 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#750 + # source://prism//lib/prism/dispatcher.rb#751 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#758 + # source://prism//lib/prism/dispatcher.rb#759 def visit_interpolated_x_string_node(node); end + # Dispatch enter and leave events for ItParametersNode nodes and continue + # walking the tree. + # + # source://prism//lib/prism/dispatcher.rb#767 + 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#766 + # source://prism//lib/prism/dispatcher.rb#775 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#774 + # source://prism//lib/prism/dispatcher.rb#783 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#782 + # source://prism//lib/prism/dispatcher.rb#791 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#790 + # source://prism//lib/prism/dispatcher.rb#799 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#798 + # source://prism//lib/prism/dispatcher.rb#807 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#806 + # source://prism//lib/prism/dispatcher.rb#815 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#814 + # source://prism//lib/prism/dispatcher.rb#823 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#822 + # source://prism//lib/prism/dispatcher.rb#831 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#830 + # source://prism//lib/prism/dispatcher.rb#839 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#838 + # source://prism//lib/prism/dispatcher.rb#847 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#846 + # source://prism//lib/prism/dispatcher.rb#855 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#854 + # source://prism//lib/prism/dispatcher.rb#863 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#862 + # source://prism//lib/prism/dispatcher.rb#871 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#870 + # source://prism//lib/prism/dispatcher.rb#879 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#878 + # source://prism//lib/prism/dispatcher.rb#887 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#886 + # source://prism//lib/prism/dispatcher.rb#895 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#894 + # source://prism//lib/prism/dispatcher.rb#903 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#902 + # source://prism//lib/prism/dispatcher.rb#911 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#910 + # source://prism//lib/prism/dispatcher.rb#919 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#918 + # source://prism//lib/prism/dispatcher.rb#927 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#926 + # source://prism//lib/prism/dispatcher.rb#935 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#934 + # source://prism//lib/prism/dispatcher.rb#943 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#942 + # source://prism//lib/prism/dispatcher.rb#951 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#950 + # source://prism//lib/prism/dispatcher.rb#959 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#958 + # source://prism//lib/prism/dispatcher.rb#967 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#966 + # source://prism//lib/prism/dispatcher.rb#975 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#974 + # source://prism//lib/prism/dispatcher.rb#983 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#982 + # source://prism//lib/prism/dispatcher.rb#991 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#990 + # source://prism//lib/prism/dispatcher.rb#999 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#998 + # source://prism//lib/prism/dispatcher.rb#1007 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#1006 + # source://prism//lib/prism/dispatcher.rb#1015 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#1014 + # source://prism//lib/prism/dispatcher.rb#1023 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#1022 + # source://prism//lib/prism/dispatcher.rb#1031 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#1030 + # source://prism//lib/prism/dispatcher.rb#1039 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#1038 + # source://prism//lib/prism/dispatcher.rb#1047 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#1046 + # source://prism//lib/prism/dispatcher.rb#1055 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#1054 + # source://prism//lib/prism/dispatcher.rb#1063 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#1062 + # source://prism//lib/prism/dispatcher.rb#1071 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#1070 + # source://prism//lib/prism/dispatcher.rb#1079 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#1078 + # source://prism//lib/prism/dispatcher.rb#1087 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#1086 + # source://prism//lib/prism/dispatcher.rb#1095 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#1094 + # source://prism//lib/prism/dispatcher.rb#1103 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#1102 + # source://prism//lib/prism/dispatcher.rb#1111 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#1110 + # source://prism//lib/prism/dispatcher.rb#1119 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#1127 + 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#1118 + # source://prism//lib/prism/dispatcher.rb#1135 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#1126 + # source://prism//lib/prism/dispatcher.rb#1143 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#1134 + # source://prism//lib/prism/dispatcher.rb#1151 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#1142 + # source://prism//lib/prism/dispatcher.rb#1159 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#1150 + # source://prism//lib/prism/dispatcher.rb#1167 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#1158 + # source://prism//lib/prism/dispatcher.rb#1175 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#1166 + # source://prism//lib/prism/dispatcher.rb#1183 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#1174 + # source://prism//lib/prism/dispatcher.rb#1191 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#1182 + # source://prism//lib/prism/dispatcher.rb#1199 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#1190 + # source://prism//lib/prism/dispatcher.rb#1207 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#1198 + # source://prism//lib/prism/dispatcher.rb#1215 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#1206 + # source://prism//lib/prism/dispatcher.rb#1223 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#1214 + # source://prism//lib/prism/dispatcher.rb#1231 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#1222 + # source://prism//lib/prism/dispatcher.rb#1239 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#1230 + # source://prism//lib/prism/dispatcher.rb#1247 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#1238 + # source://prism//lib/prism/dispatcher.rb#1255 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#1246 + # source://prism//lib/prism/dispatcher.rb#1263 def visit_yield_node(node); end end -# source://prism//lib/prism/dispatcher.rb#1252 +# source://prism//lib/prism/dispatcher.rb#1269 class Prism::Dispatcher::DispatchOnce < ::Prism::Visitor # @return [DispatchOnce] a new instance of DispatchOnce # - # source://prism//lib/prism/dispatcher.rb#1255 + # source://prism//lib/prism/dispatcher.rb#1272 def initialize(listeners); end # Returns the value of attribute listeners. # - # source://prism//lib/prism/dispatcher.rb#1253 + # source://prism//lib/prism/dispatcher.rb#1270 def listeners; end # Dispatch enter and leave events for AliasGlobalVariableNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1260 + # source://prism//lib/prism/dispatcher.rb#1277 def visit_alias_global_variable_node(node); end # Dispatch enter and leave events for AliasMethodNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1266 + # source://prism//lib/prism/dispatcher.rb#1283 def visit_alias_method_node(node); end # Dispatch enter and leave events for AlternationPatternNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1272 + # source://prism//lib/prism/dispatcher.rb#1289 def visit_alternation_pattern_node(node); end # Dispatch enter and leave events for AndNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1278 + # source://prism//lib/prism/dispatcher.rb#1295 def visit_and_node(node); end # Dispatch enter and leave events for ArgumentsNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1284 + # source://prism//lib/prism/dispatcher.rb#1301 def visit_arguments_node(node); end # Dispatch enter and leave events for ArrayNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1290 + # source://prism//lib/prism/dispatcher.rb#1307 def visit_array_node(node); end # Dispatch enter and leave events for ArrayPatternNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1296 + # source://prism//lib/prism/dispatcher.rb#1313 def visit_array_pattern_node(node); end # Dispatch enter and leave events for AssocNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1302 + # source://prism//lib/prism/dispatcher.rb#1319 def visit_assoc_node(node); end # Dispatch enter and leave events for AssocSplatNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1308 + # source://prism//lib/prism/dispatcher.rb#1325 def visit_assoc_splat_node(node); end # Dispatch enter and leave events for BackReferenceReadNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1314 + # source://prism//lib/prism/dispatcher.rb#1331 def visit_back_reference_read_node(node); end # Dispatch enter and leave events for BeginNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1320 + # source://prism//lib/prism/dispatcher.rb#1337 def visit_begin_node(node); end # Dispatch enter and leave events for BlockArgumentNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1326 + # source://prism//lib/prism/dispatcher.rb#1343 def visit_block_argument_node(node); end # Dispatch enter and leave events for BlockLocalVariableNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1332 + # source://prism//lib/prism/dispatcher.rb#1349 def visit_block_local_variable_node(node); end # Dispatch enter and leave events for BlockNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1338 + # source://prism//lib/prism/dispatcher.rb#1355 def visit_block_node(node); end # Dispatch enter and leave events for BlockParameterNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1344 + # source://prism//lib/prism/dispatcher.rb#1361 def visit_block_parameter_node(node); end # Dispatch enter and leave events for BlockParametersNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1350 + # source://prism//lib/prism/dispatcher.rb#1367 def visit_block_parameters_node(node); end # Dispatch enter and leave events for BreakNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1356 + # source://prism//lib/prism/dispatcher.rb#1373 def visit_break_node(node); end # Dispatch enter and leave events for CallAndWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1362 + # source://prism//lib/prism/dispatcher.rb#1379 def visit_call_and_write_node(node); end # Dispatch enter and leave events for CallNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1368 + # source://prism//lib/prism/dispatcher.rb#1385 def visit_call_node(node); end # Dispatch enter and leave events for CallOperatorWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1374 + # source://prism//lib/prism/dispatcher.rb#1391 def visit_call_operator_write_node(node); end # Dispatch enter and leave events for CallOrWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1380 + # source://prism//lib/prism/dispatcher.rb#1397 def visit_call_or_write_node(node); end # Dispatch enter and leave events for CallTargetNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1386 + # source://prism//lib/prism/dispatcher.rb#1403 def visit_call_target_node(node); end # Dispatch enter and leave events for CapturePatternNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1392 + # source://prism//lib/prism/dispatcher.rb#1409 def visit_capture_pattern_node(node); end # Dispatch enter and leave events for CaseMatchNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1398 + # source://prism//lib/prism/dispatcher.rb#1415 def visit_case_match_node(node); end # Dispatch enter and leave events for CaseNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1404 + # source://prism//lib/prism/dispatcher.rb#1421 def visit_case_node(node); end # Dispatch enter and leave events for ClassNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1410 + # source://prism//lib/prism/dispatcher.rb#1427 def visit_class_node(node); end # Dispatch enter and leave events for ClassVariableAndWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1416 + # source://prism//lib/prism/dispatcher.rb#1433 def visit_class_variable_and_write_node(node); end # Dispatch enter and leave events for ClassVariableOperatorWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1422 + # source://prism//lib/prism/dispatcher.rb#1439 def visit_class_variable_operator_write_node(node); end # Dispatch enter and leave events for ClassVariableOrWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1428 + # source://prism//lib/prism/dispatcher.rb#1445 def visit_class_variable_or_write_node(node); end # Dispatch enter and leave events for ClassVariableReadNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1434 + # source://prism//lib/prism/dispatcher.rb#1451 def visit_class_variable_read_node(node); end # Dispatch enter and leave events for ClassVariableTargetNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1440 + # source://prism//lib/prism/dispatcher.rb#1457 def visit_class_variable_target_node(node); end # Dispatch enter and leave events for ClassVariableWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1446 + # source://prism//lib/prism/dispatcher.rb#1463 def visit_class_variable_write_node(node); end # Dispatch enter and leave events for ConstantAndWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1452 + # source://prism//lib/prism/dispatcher.rb#1469 def visit_constant_and_write_node(node); end # Dispatch enter and leave events for ConstantOperatorWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1458 + # source://prism//lib/prism/dispatcher.rb#1475 def visit_constant_operator_write_node(node); end # Dispatch enter and leave events for ConstantOrWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1464 + # source://prism//lib/prism/dispatcher.rb#1481 def visit_constant_or_write_node(node); end # Dispatch enter and leave events for ConstantPathAndWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1470 + # source://prism//lib/prism/dispatcher.rb#1487 def visit_constant_path_and_write_node(node); end # Dispatch enter and leave events for ConstantPathNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1476 + # source://prism//lib/prism/dispatcher.rb#1493 def visit_constant_path_node(node); end # Dispatch enter and leave events for ConstantPathOperatorWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1482 + # source://prism//lib/prism/dispatcher.rb#1499 def visit_constant_path_operator_write_node(node); end # Dispatch enter and leave events for ConstantPathOrWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1488 + # source://prism//lib/prism/dispatcher.rb#1505 def visit_constant_path_or_write_node(node); end # Dispatch enter and leave events for ConstantPathTargetNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1494 + # source://prism//lib/prism/dispatcher.rb#1511 def visit_constant_path_target_node(node); end # Dispatch enter and leave events for ConstantPathWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1500 + # source://prism//lib/prism/dispatcher.rb#1517 def visit_constant_path_write_node(node); end # Dispatch enter and leave events for ConstantReadNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1506 + # source://prism//lib/prism/dispatcher.rb#1523 def visit_constant_read_node(node); end # Dispatch enter and leave events for ConstantTargetNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1512 + # source://prism//lib/prism/dispatcher.rb#1529 def visit_constant_target_node(node); end # Dispatch enter and leave events for ConstantWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1518 + # source://prism//lib/prism/dispatcher.rb#1535 def visit_constant_write_node(node); end # Dispatch enter and leave events for DefNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1524 + # source://prism//lib/prism/dispatcher.rb#1541 def visit_def_node(node); end # Dispatch enter and leave events for DefinedNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1530 + # source://prism//lib/prism/dispatcher.rb#1547 def visit_defined_node(node); end # Dispatch enter and leave events for ElseNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1536 + # source://prism//lib/prism/dispatcher.rb#1553 def visit_else_node(node); end # Dispatch enter and leave events for EmbeddedStatementsNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1542 + # source://prism//lib/prism/dispatcher.rb#1559 def visit_embedded_statements_node(node); end # Dispatch enter and leave events for EmbeddedVariableNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1548 + # source://prism//lib/prism/dispatcher.rb#1565 def visit_embedded_variable_node(node); end # Dispatch enter and leave events for EnsureNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1554 + # source://prism//lib/prism/dispatcher.rb#1571 def visit_ensure_node(node); end # Dispatch enter and leave events for FalseNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1560 + # source://prism//lib/prism/dispatcher.rb#1577 def visit_false_node(node); end # Dispatch enter and leave events for FindPatternNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1566 + # source://prism//lib/prism/dispatcher.rb#1583 def visit_find_pattern_node(node); end # Dispatch enter and leave events for FlipFlopNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1572 + # source://prism//lib/prism/dispatcher.rb#1589 def visit_flip_flop_node(node); end # Dispatch enter and leave events for FloatNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1578 + # source://prism//lib/prism/dispatcher.rb#1595 def visit_float_node(node); end # Dispatch enter and leave events for ForNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1584 + # source://prism//lib/prism/dispatcher.rb#1601 def visit_for_node(node); end # Dispatch enter and leave events for ForwardingArgumentsNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1590 + # source://prism//lib/prism/dispatcher.rb#1607 def visit_forwarding_arguments_node(node); end # Dispatch enter and leave events for ForwardingParameterNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1596 + # source://prism//lib/prism/dispatcher.rb#1613 def visit_forwarding_parameter_node(node); end # Dispatch enter and leave events for ForwardingSuperNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1602 + # source://prism//lib/prism/dispatcher.rb#1619 def visit_forwarding_super_node(node); end # Dispatch enter and leave events for GlobalVariableAndWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1608 + # source://prism//lib/prism/dispatcher.rb#1625 def visit_global_variable_and_write_node(node); end # Dispatch enter and leave events for GlobalVariableOperatorWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1614 + # source://prism//lib/prism/dispatcher.rb#1631 def visit_global_variable_operator_write_node(node); end # Dispatch enter and leave events for GlobalVariableOrWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1620 + # source://prism//lib/prism/dispatcher.rb#1637 def visit_global_variable_or_write_node(node); end # Dispatch enter and leave events for GlobalVariableReadNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1626 + # source://prism//lib/prism/dispatcher.rb#1643 def visit_global_variable_read_node(node); end # Dispatch enter and leave events for GlobalVariableTargetNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1632 + # source://prism//lib/prism/dispatcher.rb#1649 def visit_global_variable_target_node(node); end # Dispatch enter and leave events for GlobalVariableWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1638 + # source://prism//lib/prism/dispatcher.rb#1655 def visit_global_variable_write_node(node); end # Dispatch enter and leave events for HashNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1644 + # source://prism//lib/prism/dispatcher.rb#1661 def visit_hash_node(node); end # Dispatch enter and leave events for HashPatternNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1650 + # source://prism//lib/prism/dispatcher.rb#1667 def visit_hash_pattern_node(node); end # Dispatch enter and leave events for IfNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1656 + # source://prism//lib/prism/dispatcher.rb#1673 def visit_if_node(node); end # Dispatch enter and leave events for ImaginaryNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1662 + # source://prism//lib/prism/dispatcher.rb#1679 def visit_imaginary_node(node); end # Dispatch enter and leave events for ImplicitNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1668 + # source://prism//lib/prism/dispatcher.rb#1685 def visit_implicit_node(node); end # Dispatch enter and leave events for ImplicitRestNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1674 + # source://prism//lib/prism/dispatcher.rb#1691 def visit_implicit_rest_node(node); end # Dispatch enter and leave events for InNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1680 + # source://prism//lib/prism/dispatcher.rb#1697 def visit_in_node(node); end # Dispatch enter and leave events for IndexAndWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1686 + # source://prism//lib/prism/dispatcher.rb#1703 def visit_index_and_write_node(node); end # Dispatch enter and leave events for IndexOperatorWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1692 + # source://prism//lib/prism/dispatcher.rb#1709 def visit_index_operator_write_node(node); end # Dispatch enter and leave events for IndexOrWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1698 + # source://prism//lib/prism/dispatcher.rb#1715 def visit_index_or_write_node(node); end # Dispatch enter and leave events for IndexTargetNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1704 + # source://prism//lib/prism/dispatcher.rb#1721 def visit_index_target_node(node); end # Dispatch enter and leave events for InstanceVariableAndWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1710 + # source://prism//lib/prism/dispatcher.rb#1727 def visit_instance_variable_and_write_node(node); end # Dispatch enter and leave events for InstanceVariableOperatorWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1716 + # source://prism//lib/prism/dispatcher.rb#1733 def visit_instance_variable_operator_write_node(node); end # Dispatch enter and leave events for InstanceVariableOrWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1722 + # source://prism//lib/prism/dispatcher.rb#1739 def visit_instance_variable_or_write_node(node); end # Dispatch enter and leave events for InstanceVariableReadNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1728 + # source://prism//lib/prism/dispatcher.rb#1745 def visit_instance_variable_read_node(node); end # Dispatch enter and leave events for InstanceVariableTargetNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1734 + # source://prism//lib/prism/dispatcher.rb#1751 def visit_instance_variable_target_node(node); end # Dispatch enter and leave events for InstanceVariableWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1740 + # source://prism//lib/prism/dispatcher.rb#1757 def visit_instance_variable_write_node(node); end # Dispatch enter and leave events for IntegerNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1746 + # source://prism//lib/prism/dispatcher.rb#1763 def visit_integer_node(node); end # Dispatch enter and leave events for InterpolatedMatchLastLineNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1752 + # source://prism//lib/prism/dispatcher.rb#1769 def visit_interpolated_match_last_line_node(node); end # Dispatch enter and leave events for InterpolatedRegularExpressionNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1758 + # source://prism//lib/prism/dispatcher.rb#1775 def visit_interpolated_regular_expression_node(node); end # Dispatch enter and leave events for InterpolatedStringNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1764 + # source://prism//lib/prism/dispatcher.rb#1781 def visit_interpolated_string_node(node); end # Dispatch enter and leave events for InterpolatedSymbolNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1770 + # source://prism//lib/prism/dispatcher.rb#1787 def visit_interpolated_symbol_node(node); end # Dispatch enter and leave events for InterpolatedXStringNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1776 + # source://prism//lib/prism/dispatcher.rb#1793 def visit_interpolated_x_string_node(node); end + # Dispatch enter and leave events for ItParametersNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1799 + def visit_it_parameters_node(node); end + # Dispatch enter and leave events for KeywordHashNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1782 + # source://prism//lib/prism/dispatcher.rb#1805 def visit_keyword_hash_node(node); end # Dispatch enter and leave events for KeywordRestParameterNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1788 + # source://prism//lib/prism/dispatcher.rb#1811 def visit_keyword_rest_parameter_node(node); end # Dispatch enter and leave events for LambdaNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1794 + # source://prism//lib/prism/dispatcher.rb#1817 def visit_lambda_node(node); end # Dispatch enter and leave events for LocalVariableAndWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1800 + # source://prism//lib/prism/dispatcher.rb#1823 def visit_local_variable_and_write_node(node); end # Dispatch enter and leave events for LocalVariableOperatorWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1806 + # source://prism//lib/prism/dispatcher.rb#1829 def visit_local_variable_operator_write_node(node); end # Dispatch enter and leave events for LocalVariableOrWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1812 + # source://prism//lib/prism/dispatcher.rb#1835 def visit_local_variable_or_write_node(node); end # Dispatch enter and leave events for LocalVariableReadNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1818 + # source://prism//lib/prism/dispatcher.rb#1841 def visit_local_variable_read_node(node); end # Dispatch enter and leave events for LocalVariableTargetNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1824 + # source://prism//lib/prism/dispatcher.rb#1847 def visit_local_variable_target_node(node); end # Dispatch enter and leave events for LocalVariableWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1830 + # source://prism//lib/prism/dispatcher.rb#1853 def visit_local_variable_write_node(node); end # Dispatch enter and leave events for MatchLastLineNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1836 + # source://prism//lib/prism/dispatcher.rb#1859 def visit_match_last_line_node(node); end # Dispatch enter and leave events for MatchPredicateNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1842 + # source://prism//lib/prism/dispatcher.rb#1865 def visit_match_predicate_node(node); end # Dispatch enter and leave events for MatchRequiredNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1848 + # source://prism//lib/prism/dispatcher.rb#1871 def visit_match_required_node(node); end # Dispatch enter and leave events for MatchWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1854 + # source://prism//lib/prism/dispatcher.rb#1877 def visit_match_write_node(node); end # Dispatch enter and leave events for MissingNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1860 + # source://prism//lib/prism/dispatcher.rb#1883 def visit_missing_node(node); end # Dispatch enter and leave events for ModuleNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1866 + # source://prism//lib/prism/dispatcher.rb#1889 def visit_module_node(node); end # Dispatch enter and leave events for MultiTargetNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1872 + # source://prism//lib/prism/dispatcher.rb#1895 def visit_multi_target_node(node); end # Dispatch enter and leave events for MultiWriteNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1878 + # source://prism//lib/prism/dispatcher.rb#1901 def visit_multi_write_node(node); end # Dispatch enter and leave events for NextNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1884 + # source://prism//lib/prism/dispatcher.rb#1907 def visit_next_node(node); end # Dispatch enter and leave events for NilNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1890 + # source://prism//lib/prism/dispatcher.rb#1913 def visit_nil_node(node); end # Dispatch enter and leave events for NoKeywordsParameterNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1896 + # source://prism//lib/prism/dispatcher.rb#1919 def visit_no_keywords_parameter_node(node); end # Dispatch enter and leave events for NumberedParametersNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1902 + # source://prism//lib/prism/dispatcher.rb#1925 def visit_numbered_parameters_node(node); end # Dispatch enter and leave events for NumberedReferenceReadNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1908 + # source://prism//lib/prism/dispatcher.rb#1931 def visit_numbered_reference_read_node(node); end # Dispatch enter and leave events for OptionalKeywordParameterNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1914 + # source://prism//lib/prism/dispatcher.rb#1937 def visit_optional_keyword_parameter_node(node); end # Dispatch enter and leave events for OptionalParameterNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1920 + # source://prism//lib/prism/dispatcher.rb#1943 def visit_optional_parameter_node(node); end # Dispatch enter and leave events for OrNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1926 + # source://prism//lib/prism/dispatcher.rb#1949 def visit_or_node(node); end # Dispatch enter and leave events for ParametersNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1932 + # source://prism//lib/prism/dispatcher.rb#1955 def visit_parameters_node(node); end # Dispatch enter and leave events for ParenthesesNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1938 + # source://prism//lib/prism/dispatcher.rb#1961 def visit_parentheses_node(node); end # Dispatch enter and leave events for PinnedExpressionNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1944 + # source://prism//lib/prism/dispatcher.rb#1967 def visit_pinned_expression_node(node); end # Dispatch enter and leave events for PinnedVariableNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1950 + # source://prism//lib/prism/dispatcher.rb#1973 def visit_pinned_variable_node(node); end # Dispatch enter and leave events for PostExecutionNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1956 + # source://prism//lib/prism/dispatcher.rb#1979 def visit_post_execution_node(node); end # Dispatch enter and leave events for PreExecutionNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1962 + # source://prism//lib/prism/dispatcher.rb#1985 def visit_pre_execution_node(node); end # Dispatch enter and leave events for ProgramNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1968 + # source://prism//lib/prism/dispatcher.rb#1991 def visit_program_node(node); end # Dispatch enter and leave events for RangeNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1974 + # source://prism//lib/prism/dispatcher.rb#1997 def visit_range_node(node); end # Dispatch enter and leave events for RationalNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1980 + # source://prism//lib/prism/dispatcher.rb#2003 def visit_rational_node(node); end # Dispatch enter and leave events for RedoNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1986 + # source://prism//lib/prism/dispatcher.rb#2009 def visit_redo_node(node); end # Dispatch enter and leave events for RegularExpressionNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1992 + # source://prism//lib/prism/dispatcher.rb#2015 def visit_regular_expression_node(node); end # Dispatch enter and leave events for RequiredKeywordParameterNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1998 + # source://prism//lib/prism/dispatcher.rb#2021 def visit_required_keyword_parameter_node(node); end # Dispatch enter and leave events for RequiredParameterNode nodes. # - # source://prism//lib/prism/dispatcher.rb#2004 + # source://prism//lib/prism/dispatcher.rb#2027 def visit_required_parameter_node(node); end # Dispatch enter and leave events for RescueModifierNode nodes. # - # source://prism//lib/prism/dispatcher.rb#2010 + # source://prism//lib/prism/dispatcher.rb#2033 def visit_rescue_modifier_node(node); end # Dispatch enter and leave events for RescueNode nodes. # - # source://prism//lib/prism/dispatcher.rb#2016 + # source://prism//lib/prism/dispatcher.rb#2039 def visit_rescue_node(node); end # Dispatch enter and leave events for RestParameterNode nodes. # - # source://prism//lib/prism/dispatcher.rb#2022 + # source://prism//lib/prism/dispatcher.rb#2045 def visit_rest_parameter_node(node); end # Dispatch enter and leave events for RetryNode nodes. # - # source://prism//lib/prism/dispatcher.rb#2028 + # source://prism//lib/prism/dispatcher.rb#2051 def visit_retry_node(node); end # Dispatch enter and leave events for ReturnNode nodes. # - # source://prism//lib/prism/dispatcher.rb#2034 + # source://prism//lib/prism/dispatcher.rb#2057 def visit_return_node(node); end # Dispatch enter and leave events for SelfNode nodes. # - # source://prism//lib/prism/dispatcher.rb#2040 + # source://prism//lib/prism/dispatcher.rb#2063 def visit_self_node(node); end + # Dispatch enter and leave events for ShareableConstantNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#2069 + def visit_shareable_constant_node(node); end + # Dispatch enter and leave events for SingletonClassNode nodes. # - # source://prism//lib/prism/dispatcher.rb#2046 + # source://prism//lib/prism/dispatcher.rb#2075 def visit_singleton_class_node(node); end # Dispatch enter and leave events for SourceEncodingNode nodes. # - # source://prism//lib/prism/dispatcher.rb#2052 + # source://prism//lib/prism/dispatcher.rb#2081 def visit_source_encoding_node(node); end # Dispatch enter and leave events for SourceFileNode nodes. # - # source://prism//lib/prism/dispatcher.rb#2058 + # source://prism//lib/prism/dispatcher.rb#2087 def visit_source_file_node(node); end # Dispatch enter and leave events for SourceLineNode nodes. # - # source://prism//lib/prism/dispatcher.rb#2064 + # source://prism//lib/prism/dispatcher.rb#2093 def visit_source_line_node(node); end # Dispatch enter and leave events for SplatNode nodes. # - # source://prism//lib/prism/dispatcher.rb#2070 + # source://prism//lib/prism/dispatcher.rb#2099 def visit_splat_node(node); end # Dispatch enter and leave events for StatementsNode nodes. # - # source://prism//lib/prism/dispatcher.rb#2076 + # source://prism//lib/prism/dispatcher.rb#2105 def visit_statements_node(node); end # Dispatch enter and leave events for StringNode nodes. # - # source://prism//lib/prism/dispatcher.rb#2082 + # source://prism//lib/prism/dispatcher.rb#2111 def visit_string_node(node); end # Dispatch enter and leave events for SuperNode nodes. # - # source://prism//lib/prism/dispatcher.rb#2088 + # source://prism//lib/prism/dispatcher.rb#2117 def visit_super_node(node); end # Dispatch enter and leave events for SymbolNode nodes. # - # source://prism//lib/prism/dispatcher.rb#2094 + # source://prism//lib/prism/dispatcher.rb#2123 def visit_symbol_node(node); end # Dispatch enter and leave events for TrueNode nodes. # - # source://prism//lib/prism/dispatcher.rb#2100 + # source://prism//lib/prism/dispatcher.rb#2129 def visit_true_node(node); end # Dispatch enter and leave events for UndefNode nodes. # - # source://prism//lib/prism/dispatcher.rb#2106 + # source://prism//lib/prism/dispatcher.rb#2135 def visit_undef_node(node); end # Dispatch enter and leave events for UnlessNode nodes. # - # source://prism//lib/prism/dispatcher.rb#2112 + # source://prism//lib/prism/dispatcher.rb#2141 def visit_unless_node(node); end # Dispatch enter and leave events for UntilNode nodes. # - # source://prism//lib/prism/dispatcher.rb#2118 + # source://prism//lib/prism/dispatcher.rb#2147 def visit_until_node(node); end # Dispatch enter and leave events for WhenNode nodes. # - # source://prism//lib/prism/dispatcher.rb#2124 + # source://prism//lib/prism/dispatcher.rb#2153 def visit_when_node(node); end # Dispatch enter and leave events for WhileNode nodes. # - # source://prism//lib/prism/dispatcher.rb#2130 + # source://prism//lib/prism/dispatcher.rb#2159 def visit_while_node(node); end # Dispatch enter and leave events for XStringNode nodes. # - # source://prism//lib/prism/dispatcher.rb#2136 + # source://prism//lib/prism/dispatcher.rb#2165 def visit_x_string_node(node); end # Dispatch enter and leave events for YieldNode nodes. # - # source://prism//lib/prism/dispatcher.rb#2142 + # source://prism//lib/prism/dispatcher.rb#2171 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#13 +# 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#105 + # source://prism//lib/prism/dot_visitor.rb#106 def initialize; end # The digraph that is being built. # - # source://prism//lib/prism/dot_visitor.rb#102 + # 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#110 + # source://prism//lib/prism/dot_visitor.rb#111 def to_dot; end # Visit a AliasGlobalVariableNode node. # - # source://prism//lib/prism/dot_visitor.rb#115 + # 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#140 + # 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#165 + # 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#190 + # 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#215 + # 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#245 + # 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#285 + # 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#347 + # 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#374 + # 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#397 + # 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#414 + # 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#462 + # 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#485 + # 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#505 + # 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#540 + # 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#568 + # 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#611 + # 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#634 + # 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#680 + # 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#738 + # 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#787 + # 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#833 + # 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#863 + # 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#888 + # 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#933 + # 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#978 + # 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#1025 + # 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#1052 + # 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#1082 + # 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#1109 + # 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#1126 + # 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#1143 + # 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#1172 + # 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#1199 + # 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#1229 + # 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#1256 + # 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#1281 + # 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#1308 + # source://prism//lib/prism/dot_visitor.rb#1307 def visit_constant_path_operator_write_node(node); end # Visit a ConstantPathOrWriteNode node. # - # source://prism//lib/prism/dot_visitor.rb#1336 + # source://prism//lib/prism/dot_visitor.rb#1335 def visit_constant_path_or_write_node(node); end # Visit a ConstantPathTargetNode node. # - # source://prism//lib/prism/dot_visitor.rb#1361 + # source://prism//lib/prism/dot_visitor.rb#1360 def visit_constant_path_target_node(node); end # Visit a ConstantPathWriteNode node. # - # source://prism//lib/prism/dot_visitor.rb#1388 + # source://prism//lib/prism/dot_visitor.rb#1387 def visit_constant_path_write_node(node); end # Visit a ConstantReadNode node. # - # source://prism//lib/prism/dot_visitor.rb#1413 + # source://prism//lib/prism/dot_visitor.rb#1412 def visit_constant_read_node(node); end # Visit a ConstantTargetNode node. # - # source://prism//lib/prism/dot_visitor.rb#1430 + # source://prism//lib/prism/dot_visitor.rb#1429 def visit_constant_target_node(node); end # Visit a ConstantWriteNode node. # - # source://prism//lib/prism/dot_visitor.rb#1447 + # source://prism//lib/prism/dot_visitor.rb#1446 def visit_constant_write_node(node); end # Visit a DefNode node. # - # source://prism//lib/prism/dot_visitor.rb#1474 + # source://prism//lib/prism/dot_visitor.rb#1473 def visit_def_node(node); end # Visit a DefinedNode node. # - # source://prism//lib/prism/dot_visitor.rb#1543 + # source://prism//lib/prism/dot_visitor.rb#1542 def visit_defined_node(node); end # Visit a ElseNode node. # - # source://prism//lib/prism/dot_visitor.rb#1574 + # source://prism//lib/prism/dot_visitor.rb#1573 def visit_else_node(node); end # Visit a EmbeddedStatementsNode node. # - # source://prism//lib/prism/dot_visitor.rb#1602 + # source://prism//lib/prism/dot_visitor.rb#1601 def visit_embedded_statements_node(node); end # Visit a EmbeddedVariableNode node. # - # source://prism//lib/prism/dot_visitor.rb#1628 + # source://prism//lib/prism/dot_visitor.rb#1627 def visit_embedded_variable_node(node); end # Visit a EnsureNode node. # - # source://prism//lib/prism/dot_visitor.rb#1649 + # source://prism//lib/prism/dot_visitor.rb#1648 def visit_ensure_node(node); end # Visit a FalseNode node. # - # source://prism//lib/prism/dot_visitor.rb#1675 + # source://prism//lib/prism/dot_visitor.rb#1674 def visit_false_node(node); end # Visit a FindPatternNode node. # - # source://prism//lib/prism/dot_visitor.rb#1689 + # source://prism//lib/prism/dot_visitor.rb#1688 def visit_find_pattern_node(node); end # Visit a FlipFlopNode node. # - # source://prism//lib/prism/dot_visitor.rb#1740 + # source://prism//lib/prism/dot_visitor.rb#1739 def visit_flip_flop_node(node); end # Visit a FloatNode node. # - # source://prism//lib/prism/dot_visitor.rb#1772 + # source://prism//lib/prism/dot_visitor.rb#1771 def visit_float_node(node); end # Visit a ForNode node. # - # source://prism//lib/prism/dot_visitor.rb#1786 + # source://prism//lib/prism/dot_visitor.rb#1788 def visit_for_node(node); end # Visit a ForwardingArgumentsNode node. # - # source://prism//lib/prism/dot_visitor.rb#1828 + # source://prism//lib/prism/dot_visitor.rb#1830 def visit_forwarding_arguments_node(node); end # Visit a ForwardingParameterNode node. # - # source://prism//lib/prism/dot_visitor.rb#1842 + # source://prism//lib/prism/dot_visitor.rb#1844 def visit_forwarding_parameter_node(node); end # Visit a ForwardingSuperNode node. # - # source://prism//lib/prism/dot_visitor.rb#1856 + # source://prism//lib/prism/dot_visitor.rb#1858 def visit_forwarding_super_node(node); end # Visit a GlobalVariableAndWriteNode node. # - # source://prism//lib/prism/dot_visitor.rb#1876 + # source://prism//lib/prism/dot_visitor.rb#1878 def visit_global_variable_and_write_node(node); end # Visit a GlobalVariableOperatorWriteNode node. # - # source://prism//lib/prism/dot_visitor.rb#1903 + # source://prism//lib/prism/dot_visitor.rb#1905 def visit_global_variable_operator_write_node(node); end # Visit a GlobalVariableOrWriteNode node. # - # source://prism//lib/prism/dot_visitor.rb#1933 + # source://prism//lib/prism/dot_visitor.rb#1935 def visit_global_variable_or_write_node(node); end # Visit a GlobalVariableReadNode node. # - # source://prism//lib/prism/dot_visitor.rb#1960 + # source://prism//lib/prism/dot_visitor.rb#1962 def visit_global_variable_read_node(node); end # Visit a GlobalVariableTargetNode node. # - # source://prism//lib/prism/dot_visitor.rb#1977 + # source://prism//lib/prism/dot_visitor.rb#1979 def visit_global_variable_target_node(node); end # Visit a GlobalVariableWriteNode node. # - # source://prism//lib/prism/dot_visitor.rb#1994 + # source://prism//lib/prism/dot_visitor.rb#1996 def visit_global_variable_write_node(node); end # Visit a HashNode node. # - # source://prism//lib/prism/dot_visitor.rb#2021 + # source://prism//lib/prism/dot_visitor.rb#2023 def visit_hash_node(node); end # Visit a HashPatternNode node. # - # source://prism//lib/prism/dot_visitor.rb#2054 + # source://prism//lib/prism/dot_visitor.rb#2056 def visit_hash_pattern_node(node); end # Visit a IfNode node. # - # source://prism//lib/prism/dot_visitor.rb#2103 + # source://prism//lib/prism/dot_visitor.rb#2105 def visit_if_node(node); end # Visit a ImaginaryNode node. # - # source://prism//lib/prism/dot_visitor.rb#2148 + # source://prism//lib/prism/dot_visitor.rb#2150 def visit_imaginary_node(node); end # Visit a ImplicitNode node. # - # source://prism//lib/prism/dot_visitor.rb#2166 + # source://prism//lib/prism/dot_visitor.rb#2168 def visit_implicit_node(node); end # Visit a ImplicitRestNode node. # - # source://prism//lib/prism/dot_visitor.rb#2184 + # source://prism//lib/prism/dot_visitor.rb#2186 def visit_implicit_rest_node(node); end # Visit a InNode node. # - # source://prism//lib/prism/dot_visitor.rb#2198 + # source://prism//lib/prism/dot_visitor.rb#2200 def visit_in_node(node); end # Visit a IndexAndWriteNode node. # - # source://prism//lib/prism/dot_visitor.rb#2230 + # source://prism//lib/prism/dot_visitor.rb#2232 def visit_index_and_write_node(node); end # Visit a IndexOperatorWriteNode node. # - # source://prism//lib/prism/dot_visitor.rb#2283 + # source://prism//lib/prism/dot_visitor.rb#2285 def visit_index_operator_write_node(node); end # Visit a IndexOrWriteNode node. # - # source://prism//lib/prism/dot_visitor.rb#2339 + # source://prism//lib/prism/dot_visitor.rb#2341 def visit_index_or_write_node(node); end # Visit a IndexTargetNode node. # - # source://prism//lib/prism/dot_visitor.rb#2392 + # source://prism//lib/prism/dot_visitor.rb#2394 def visit_index_target_node(node); end # Visit a InstanceVariableAndWriteNode node. # - # source://prism//lib/prism/dot_visitor.rb#2431 + # source://prism//lib/prism/dot_visitor.rb#2433 def visit_instance_variable_and_write_node(node); end # Visit a InstanceVariableOperatorWriteNode node. # - # source://prism//lib/prism/dot_visitor.rb#2458 + # source://prism//lib/prism/dot_visitor.rb#2460 def visit_instance_variable_operator_write_node(node); end # Visit a InstanceVariableOrWriteNode node. # - # source://prism//lib/prism/dot_visitor.rb#2488 + # source://prism//lib/prism/dot_visitor.rb#2490 def visit_instance_variable_or_write_node(node); end # Visit a InstanceVariableReadNode node. # - # source://prism//lib/prism/dot_visitor.rb#2515 + # source://prism//lib/prism/dot_visitor.rb#2517 def visit_instance_variable_read_node(node); end # Visit a InstanceVariableTargetNode node. # - # source://prism//lib/prism/dot_visitor.rb#2532 + # source://prism//lib/prism/dot_visitor.rb#2534 def visit_instance_variable_target_node(node); end # Visit a InstanceVariableWriteNode node. # - # source://prism//lib/prism/dot_visitor.rb#2549 + # source://prism//lib/prism/dot_visitor.rb#2551 def visit_instance_variable_write_node(node); end # Visit a IntegerNode node. # - # source://prism//lib/prism/dot_visitor.rb#2576 + # source://prism//lib/prism/dot_visitor.rb#2578 def visit_integer_node(node); end # Visit a InterpolatedMatchLastLineNode node. # - # source://prism//lib/prism/dot_visitor.rb#2593 + # source://prism//lib/prism/dot_visitor.rb#2598 def visit_interpolated_match_last_line_node(node); end # Visit a InterpolatedRegularExpressionNode node. # - # source://prism//lib/prism/dot_visitor.rb#2629 + # source://prism//lib/prism/dot_visitor.rb#2634 def visit_interpolated_regular_expression_node(node); end # Visit a InterpolatedStringNode node. # - # source://prism//lib/prism/dot_visitor.rb#2665 + # source://prism//lib/prism/dot_visitor.rb#2670 def visit_interpolated_string_node(node); end # Visit a InterpolatedSymbolNode node. # - # source://prism//lib/prism/dot_visitor.rb#2702 + # source://prism//lib/prism/dot_visitor.rb#2710 def visit_interpolated_symbol_node(node); end # Visit a InterpolatedXStringNode node. # - # source://prism//lib/prism/dot_visitor.rb#2739 + # source://prism//lib/prism/dot_visitor.rb#2747 def visit_interpolated_x_string_node(node); end + # Visit a ItParametersNode node. + # + # source://prism//lib/prism/dot_visitor.rb#2780 + def visit_it_parameters_node(node); end + # Visit a KeywordHashNode node. # - # source://prism//lib/prism/dot_visitor.rb#2772 + # source://prism//lib/prism/dot_visitor.rb#2794 def visit_keyword_hash_node(node); end # Visit a KeywordRestParameterNode node. # - # source://prism//lib/prism/dot_visitor.rb#2802 + # source://prism//lib/prism/dot_visitor.rb#2824 def visit_keyword_rest_parameter_node(node); end # Visit a LambdaNode node. # - # source://prism//lib/prism/dot_visitor.rb#2830 + # source://prism//lib/prism/dot_visitor.rb#2852 def visit_lambda_node(node); end # Visit a LocalVariableAndWriteNode node. # - # source://prism//lib/prism/dot_visitor.rb#2868 + # source://prism//lib/prism/dot_visitor.rb#2890 def visit_local_variable_and_write_node(node); end # Visit a LocalVariableOperatorWriteNode node. # - # source://prism//lib/prism/dot_visitor.rb#2898 + # source://prism//lib/prism/dot_visitor.rb#2920 def visit_local_variable_operator_write_node(node); end # Visit a LocalVariableOrWriteNode node. # - # source://prism//lib/prism/dot_visitor.rb#2931 + # source://prism//lib/prism/dot_visitor.rb#2953 def visit_local_variable_or_write_node(node); end # Visit a LocalVariableReadNode node. # - # source://prism//lib/prism/dot_visitor.rb#2961 + # source://prism//lib/prism/dot_visitor.rb#2983 def visit_local_variable_read_node(node); end # Visit a LocalVariableTargetNode node. # - # source://prism//lib/prism/dot_visitor.rb#2981 + # source://prism//lib/prism/dot_visitor.rb#3003 def visit_local_variable_target_node(node); end # Visit a LocalVariableWriteNode node. # - # source://prism//lib/prism/dot_visitor.rb#3001 + # source://prism//lib/prism/dot_visitor.rb#3023 def visit_local_variable_write_node(node); end # Visit a MatchLastLineNode node. # - # source://prism//lib/prism/dot_visitor.rb#3031 + # source://prism//lib/prism/dot_visitor.rb#3053 def visit_match_last_line_node(node); end # Visit a MatchPredicateNode node. # - # source://prism//lib/prism/dot_visitor.rb#3060 + # source://prism//lib/prism/dot_visitor.rb#3082 def visit_match_predicate_node(node); end # Visit a MatchRequiredNode node. # - # source://prism//lib/prism/dot_visitor.rb#3085 + # source://prism//lib/prism/dot_visitor.rb#3107 def visit_match_required_node(node); end # Visit a MatchWriteNode node. # - # source://prism//lib/prism/dot_visitor.rb#3110 + # source://prism//lib/prism/dot_visitor.rb#3132 def visit_match_write_node(node); end # Visit a MissingNode node. # - # source://prism//lib/prism/dot_visitor.rb#3141 + # source://prism//lib/prism/dot_visitor.rb#3163 def visit_missing_node(node); end # Visit a ModuleNode node. # - # source://prism//lib/prism/dot_visitor.rb#3155 + # source://prism//lib/prism/dot_visitor.rb#3177 def visit_module_node(node); end # Visit a MultiTargetNode node. # - # source://prism//lib/prism/dot_visitor.rb#3191 + # source://prism//lib/prism/dot_visitor.rb#3213 def visit_multi_target_node(node); end # Visit a MultiWriteNode node. # - # source://prism//lib/prism/dot_visitor.rb#3247 + # source://prism//lib/prism/dot_visitor.rb#3269 def visit_multi_write_node(node); end # Visit a NextNode node. # - # source://prism//lib/prism/dot_visitor.rb#3310 + # source://prism//lib/prism/dot_visitor.rb#3332 def visit_next_node(node); end # Visit a NilNode node. # - # source://prism//lib/prism/dot_visitor.rb#3333 + # source://prism//lib/prism/dot_visitor.rb#3355 def visit_nil_node(node); end # Visit a NoKeywordsParameterNode node. # - # source://prism//lib/prism/dot_visitor.rb#3347 + # source://prism//lib/prism/dot_visitor.rb#3369 def visit_no_keywords_parameter_node(node); end # Visit a NumberedParametersNode node. # - # source://prism//lib/prism/dot_visitor.rb#3367 + # source://prism//lib/prism/dot_visitor.rb#3389 def visit_numbered_parameters_node(node); end # Visit a NumberedReferenceReadNode node. # - # source://prism//lib/prism/dot_visitor.rb#3384 + # source://prism//lib/prism/dot_visitor.rb#3406 def visit_numbered_reference_read_node(node); end # Visit a OptionalKeywordParameterNode node. # - # source://prism//lib/prism/dot_visitor.rb#3401 + # source://prism//lib/prism/dot_visitor.rb#3423 def visit_optional_keyword_parameter_node(node); end # Visit a OptionalParameterNode node. # - # source://prism//lib/prism/dot_visitor.rb#3428 + # source://prism//lib/prism/dot_visitor.rb#3450 def visit_optional_parameter_node(node); end # Visit a OrNode node. # - # source://prism//lib/prism/dot_visitor.rb#3458 + # source://prism//lib/prism/dot_visitor.rb#3480 def visit_or_node(node); end # Visit a ParametersNode node. # - # source://prism//lib/prism/dot_visitor.rb#3483 + # source://prism//lib/prism/dot_visitor.rb#3505 def visit_parameters_node(node); end # Visit a ParenthesesNode node. # - # source://prism//lib/prism/dot_visitor.rb#3567 + # source://prism//lib/prism/dot_visitor.rb#3589 def visit_parentheses_node(node); end # Visit a PinnedExpressionNode node. # - # source://prism//lib/prism/dot_visitor.rb#3593 + # source://prism//lib/prism/dot_visitor.rb#3615 def visit_pinned_expression_node(node); end # Visit a PinnedVariableNode node. # - # source://prism//lib/prism/dot_visitor.rb#3620 + # source://prism//lib/prism/dot_visitor.rb#3642 def visit_pinned_variable_node(node); end # Visit a PostExecutionNode node. # - # source://prism//lib/prism/dot_visitor.rb#3641 + # source://prism//lib/prism/dot_visitor.rb#3663 def visit_post_execution_node(node); end # Visit a PreExecutionNode node. # - # source://prism//lib/prism/dot_visitor.rb#3670 + # source://prism//lib/prism/dot_visitor.rb#3692 def visit_pre_execution_node(node); end # Visit a ProgramNode node. # - # source://prism//lib/prism/dot_visitor.rb#3699 + # source://prism//lib/prism/dot_visitor.rb#3721 def visit_program_node(node); end # Visit a RangeNode node. # - # source://prism//lib/prism/dot_visitor.rb#3720 + # source://prism//lib/prism/dot_visitor.rb#3742 def visit_range_node(node); end # Visit a RationalNode node. # - # source://prism//lib/prism/dot_visitor.rb#3752 + # source://prism//lib/prism/dot_visitor.rb#3774 def visit_rational_node(node); end # Visit a RedoNode node. # - # source://prism//lib/prism/dot_visitor.rb#3770 + # source://prism//lib/prism/dot_visitor.rb#3792 def visit_redo_node(node); end # Visit a RegularExpressionNode node. # - # source://prism//lib/prism/dot_visitor.rb#3784 + # source://prism//lib/prism/dot_visitor.rb#3806 def visit_regular_expression_node(node); end # Visit a RequiredKeywordParameterNode node. # - # source://prism//lib/prism/dot_visitor.rb#3813 + # source://prism//lib/prism/dot_visitor.rb#3835 def visit_required_keyword_parameter_node(node); end # Visit a RequiredParameterNode node. # - # source://prism//lib/prism/dot_visitor.rb#3836 + # source://prism//lib/prism/dot_visitor.rb#3858 def visit_required_parameter_node(node); end # Visit a RescueModifierNode node. # - # source://prism//lib/prism/dot_visitor.rb#3856 + # source://prism//lib/prism/dot_visitor.rb#3878 def visit_rescue_modifier_node(node); end # Visit a RescueNode node. # - # source://prism//lib/prism/dot_visitor.rb#3881 + # source://prism//lib/prism/dot_visitor.rb#3903 def visit_rescue_node(node); end # Visit a RestParameterNode node. # - # source://prism//lib/prism/dot_visitor.rb#3934 + # source://prism//lib/prism/dot_visitor.rb#3956 def visit_rest_parameter_node(node); end # Visit a RetryNode node. # - # source://prism//lib/prism/dot_visitor.rb#3962 + # source://prism//lib/prism/dot_visitor.rb#3984 def visit_retry_node(node); end # Visit a ReturnNode node. # - # source://prism//lib/prism/dot_visitor.rb#3976 + # source://prism//lib/prism/dot_visitor.rb#3998 def visit_return_node(node); end # Visit a SelfNode node. # - # source://prism//lib/prism/dot_visitor.rb#3999 + # source://prism//lib/prism/dot_visitor.rb#4021 def visit_self_node(node); end + # Visit a ShareableConstantNode node. + # + # source://prism//lib/prism/dot_visitor.rb#4035 + def visit_shareable_constant_node(node); end + # Visit a SingletonClassNode node. # - # source://prism//lib/prism/dot_visitor.rb#4013 + # source://prism//lib/prism/dot_visitor.rb#4056 def visit_singleton_class_node(node); end # Visit a SourceEncodingNode node. # - # source://prism//lib/prism/dot_visitor.rb#4049 + # source://prism//lib/prism/dot_visitor.rb#4092 def visit_source_encoding_node(node); end # Visit a SourceFileNode node. # - # source://prism//lib/prism/dot_visitor.rb#4063 + # source://prism//lib/prism/dot_visitor.rb#4106 def visit_source_file_node(node); end # Visit a SourceLineNode node. # - # source://prism//lib/prism/dot_visitor.rb#4080 + # source://prism//lib/prism/dot_visitor.rb#4126 def visit_source_line_node(node); end # Visit a SplatNode node. # - # source://prism//lib/prism/dot_visitor.rb#4094 + # source://prism//lib/prism/dot_visitor.rb#4140 def visit_splat_node(node); end # Visit a StatementsNode node. # - # source://prism//lib/prism/dot_visitor.rb#4117 + # source://prism//lib/prism/dot_visitor.rb#4163 def visit_statements_node(node); end # Visit a StringNode node. # - # source://prism//lib/prism/dot_visitor.rb#4144 + # source://prism//lib/prism/dot_visitor.rb#4190 def visit_string_node(node); end # Visit a SuperNode node. # - # source://prism//lib/prism/dot_visitor.rb#4177 + # source://prism//lib/prism/dot_visitor.rb#4223 def visit_super_node(node); end # Visit a SymbolNode node. # - # source://prism//lib/prism/dot_visitor.rb#4216 + # source://prism//lib/prism/dot_visitor.rb#4262 def visit_symbol_node(node); end # Visit a TrueNode node. # - # source://prism//lib/prism/dot_visitor.rb#4251 + # source://prism//lib/prism/dot_visitor.rb#4297 def visit_true_node(node); end # Visit a UndefNode node. # - # source://prism//lib/prism/dot_visitor.rb#4265 + # source://prism//lib/prism/dot_visitor.rb#4311 def visit_undef_node(node); end # Visit a UnlessNode node. # - # source://prism//lib/prism/dot_visitor.rb#4295 + # source://prism//lib/prism/dot_visitor.rb#4341 def visit_unless_node(node); end # Visit a UntilNode node. # - # source://prism//lib/prism/dot_visitor.rb#4338 + # source://prism//lib/prism/dot_visitor.rb#4384 def visit_until_node(node); end # Visit a WhenNode node. # - # source://prism//lib/prism/dot_visitor.rb#4373 + # source://prism//lib/prism/dot_visitor.rb#4419 def visit_when_node(node); end # Visit a WhileNode node. # - # source://prism//lib/prism/dot_visitor.rb#4409 + # source://prism//lib/prism/dot_visitor.rb#4460 def visit_while_node(node); end # Visit a XStringNode node. # - # source://prism//lib/prism/dot_visitor.rb#4444 + # source://prism//lib/prism/dot_visitor.rb#4495 def visit_x_string_node(node); end # Visit a YieldNode node. # - # source://prism//lib/prism/dot_visitor.rb#4473 + # source://prism//lib/prism/dot_visitor.rb#4524 def visit_yield_node(node); end private @@ -11016,168 +12476,180 @@ class Prism::DotVisitor < ::Prism::Visitor # 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#4519 + # source://prism//lib/prism/dot_visitor.rb#4570 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#4527 + # source://prism//lib/prism/dot_visitor.rb#4578 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#4535 + # source://prism//lib/prism/dot_visitor.rb#4586 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#4546 + # source://prism//lib/prism/dot_visitor.rb#4597 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#4555 + # source://prism//lib/prism/dot_visitor.rb#4606 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#4617 + 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#4566 + # source://prism//lib/prism/dot_visitor.rb#4626 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#4513 + # source://prism//lib/prism/dot_visitor.rb#4564 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#4574 + # source://prism//lib/prism/dot_visitor.rb#4634 def loop_flags_inspect(node); end # Generate a unique node ID for a node throughout the digraph. # - # source://prism//lib/prism/dot_visitor.rb#4508 + # source://prism//lib/prism/dot_visitor.rb#4559 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#4582 + # source://prism//lib/prism/dot_visitor.rb#4642 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#4590 + # source://prism//lib/prism/dot_visitor.rb#4650 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#4598 + # source://prism//lib/prism/dot_visitor.rb#4658 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#4676 + 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#4616 + # source://prism//lib/prism/dot_visitor.rb#4686 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#4626 + # source://prism//lib/prism/dot_visitor.rb#4697 def symbol_flags_inspect(node); end end -# source://prism//lib/prism/dot_visitor.rb#58 +# 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#61 + # source://prism//lib/prism/dot_visitor.rb#62 def initialize; end - # source://prism//lib/prism/dot_visitor.rb#75 + # 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#59 + # source://prism//lib/prism/dot_visitor.rb#60 def edges; end - # source://prism//lib/prism/dot_visitor.rb#67 + # 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#59 + # source://prism//lib/prism/dot_visitor.rb#60 def nodes; end - # source://prism//lib/prism/dot_visitor.rb#79 + # source://prism//lib/prism/dot_visitor.rb#80 def to_dot; end - # source://prism//lib/prism/dot_visitor.rb#71 + # 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#59 + # source://prism//lib/prism/dot_visitor.rb#60 def waypoints; end end -# source://prism//lib/prism/dot_visitor.rb#14 +# 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#17 + # 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#15 + # source://prism//lib/prism/dot_visitor.rb#16 def name; end # Returns the value of attribute port. # - # source://prism//lib/prism/dot_visitor.rb#15 + # source://prism//lib/prism/dot_visitor.rb#16 def port; end - # source://prism//lib/prism/dot_visitor.rb#23 + # 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#15 + # source://prism//lib/prism/dot_visitor.rb#16 def value; end end -# source://prism//lib/prism/dot_visitor.rb#32 +# 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#35 + # source://prism//lib/prism/dot_visitor.rb#36 def initialize(name); end - # source://prism//lib/prism/dot_visitor.rb#40 + # 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#33 + # source://prism//lib/prism/dot_visitor.rb#34 def fields; end # Returns the value of attribute name. # - # source://prism//lib/prism/dot_visitor.rb#33 + # source://prism//lib/prism/dot_visitor.rb#34 def name; end - # source://prism//lib/prism/dot_visitor.rb#44 + # source://prism//lib/prism/dot_visitor.rb#45 def to_dot; end end @@ -11186,92 +12658,116 @@ end # if a then b else c end # ^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#6290 +# source://prism//lib/prism/node.rb#6593 class Prism::ElseNode < ::Prism::Node # def initialize: (Location else_keyword_loc, StatementsNode? statements, Location? end_keyword_loc, Location location) -> void # # @return [ElseNode] a new instance of ElseNode # - # source://prism//lib/prism/node.rb#6292 + # source://prism//lib/prism/node.rb#6595 + sig do + params( + source: Prism::Source, + else_keyword_loc: Prism::Location, + statements: T.nilable(Prism::StatementsNode), + end_keyword_loc: T.nilable(Prism::Location), + location: Prism::Location + ).void + end def initialize(source, else_keyword_loc, statements, end_keyword_loc, location); 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#6716 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#6302 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#6605 + 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#6307 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#6610 + 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#6319 + # source://prism//lib/prism/node.rb#6622 + 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#6312 + # source://prism//lib/prism/node.rb#6615 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ElseNode + # def copy: (?else_keyword_loc: Location, ?statements: StatementsNode?, ?end_keyword_loc: Location?, ?location: Location) -> ElseNode # - # source://prism//lib/prism/node.rb#6324 - sig { params(params: T.untyped).returns(Prism::ElseNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#6627 + sig do + params( + else_keyword_loc: Prism::Location, + statements: T.nilable(Prism::StatementsNode), + end_keyword_loc: T.nilable(Prism::Location), + location: Prism::Location + ).returns(Prism::ElseNode) + end + def copy(else_keyword_loc: T.unsafe(nil), statements: T.unsafe(nil), end_keyword_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#6307 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#6610 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { else_keyword_loc: Location, statements: StatementsNode?, end_keyword_loc: Location?, location: Location } # - # source://prism//lib/prism/node.rb#6338 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#6635 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end # def else_keyword: () -> String # - # source://prism//lib/prism/node.rb#6365 + # source://prism//lib/prism/node.rb#6663 sig { returns(String) } def else_keyword; end # attr_reader else_keyword_loc: Location # - # source://prism//lib/prism/node.rb#6343 + # source://prism//lib/prism/node.rb#6640 sig { returns(Prism::Location) } def else_keyword_loc; end # def end_keyword: () -> String? # - # source://prism//lib/prism/node.rb#6370 + # source://prism//lib/prism/node.rb#6668 sig { returns(T.nilable(String)) } def end_keyword; end # attr_reader end_keyword_loc: Location? # - # source://prism//lib/prism/node.rb#6352 + # source://prism//lib/prism/node.rb#6650 sig { returns(T.nilable(Prism::Location)) } def end_keyword_loc; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#6375 + # source://prism//lib/prism/node.rb#6673 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader statements: StatementsNode? # - # source://prism//lib/prism/node.rb#6349 + # source://prism//lib/prism/node.rb#6647 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end @@ -11290,7 +12786,8 @@ class Prism::ElseNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#6402 + # source://prism//lib/prism/node.rb#6700 + sig { override.returns(Symbol) } def type; end class << self @@ -11301,7 +12798,7 @@ class Prism::ElseNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#6412 + # source://prism//lib/prism/node.rb#6710 def type; end end end @@ -11309,18 +12806,20 @@ end # EmbDocComment objects correspond to comments that are surrounded by =begin # and =end. # -# source://prism//lib/prism/parse_result.rb#290 +# source://prism//lib/prism/parse_result.rb#325 class Prism::EmbDocComment < ::Prism::Comment # Returns a string representation of this comment. # - # source://prism//lib/prism/parse_result.rb#297 + # source://prism//lib/prism/parse_result.rb#332 + sig { returns(String) } def inspect; end # This can only be true for inline comments. # # @return [Boolean] # - # source://prism//lib/prism/parse_result.rb#292 + # source://prism//lib/prism/parse_result.rb#327 + sig { override.returns(T::Boolean) } def trailing?; end end @@ -11329,92 +12828,116 @@ end # "foo #{bar}" # ^^^^^^ # -# source://prism//lib/prism/node.rb#6421 +# source://prism//lib/prism/node.rb#6728 class Prism::EmbeddedStatementsNode < ::Prism::Node # def initialize: (Location opening_loc, StatementsNode? statements, Location closing_loc, Location location) -> void # # @return [EmbeddedStatementsNode] a new instance of EmbeddedStatementsNode # - # source://prism//lib/prism/node.rb#6423 + # source://prism//lib/prism/node.rb#6730 + sig do + params( + source: Prism::Source, + opening_loc: Prism::Location, + statements: T.nilable(Prism::StatementsNode), + closing_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, opening_loc, statements, closing_loc, location); 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#6845 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#6433 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#6740 + 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#6438 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#6745 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#6495 + # source://prism//lib/prism/node.rb#6797 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#6483 + # source://prism//lib/prism/node.rb#6785 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#6450 + # source://prism//lib/prism/node.rb#6757 + 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#6443 + # source://prism//lib/prism/node.rb#6750 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> EmbeddedStatementsNode + # def copy: (?opening_loc: Location, ?statements: StatementsNode?, ?closing_loc: Location, ?location: Location) -> EmbeddedStatementsNode # - # source://prism//lib/prism/node.rb#6455 - sig { params(params: T.untyped).returns(Prism::EmbeddedStatementsNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#6762 + sig do + params( + opening_loc: Prism::Location, + statements: T.nilable(Prism::StatementsNode), + closing_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::EmbeddedStatementsNode) + end + def copy(opening_loc: T.unsafe(nil), statements: T.unsafe(nil), closing_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#6438 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#6745 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { opening_loc: Location, statements: StatementsNode?, closing_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#6469 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#6770 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#6500 + # source://prism//lib/prism/node.rb#6802 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String # - # source://prism//lib/prism/node.rb#6490 + # source://prism//lib/prism/node.rb#6792 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#6474 + # source://prism//lib/prism/node.rb#6775 sig { returns(Prism::Location) } def opening_loc; end # attr_reader statements: StatementsNode? # - # source://prism//lib/prism/node.rb#6480 + # source://prism//lib/prism/node.rb#6782 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end @@ -11433,7 +12956,8 @@ class Prism::EmbeddedStatementsNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#6527 + # source://prism//lib/prism/node.rb#6829 + sig { override.returns(Symbol) } def type; end class << self @@ -11444,7 +12968,7 @@ class Prism::EmbeddedStatementsNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#6537 + # source://prism//lib/prism/node.rb#6839 def type; end end end @@ -11454,74 +12978,96 @@ end # "foo #@bar" # ^^^^^ # -# source://prism//lib/prism/node.rb#6546 +# source://prism//lib/prism/node.rb#6857 class Prism::EmbeddedVariableNode < ::Prism::Node - # def initialize: (Location operator_loc, Node variable, Location location) -> void + # def initialize: (Location operator_loc, Prism::node variable, Location location) -> void # # @return [EmbeddedVariableNode] a new instance of EmbeddedVariableNode # - # source://prism//lib/prism/node.rb#6548 + # source://prism//lib/prism/node.rb#6859 + sig do + params( + source: Prism::Source, + operator_loc: Prism::Location, + variable: Prism::Node, + location: Prism::Location + ).void + end def initialize(source, operator_loc, variable, location); 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#6954 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#6557 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#6868 + 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#6562 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#6873 + 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#6572 + # source://prism//lib/prism/node.rb#6883 + 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#6567 + # source://prism//lib/prism/node.rb#6878 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> EmbeddedVariableNode + # def copy: (?operator_loc: Location, ?variable: Prism::node, ?location: Location) -> EmbeddedVariableNode # - # source://prism//lib/prism/node.rb#6577 - sig { params(params: T.untyped).returns(Prism::EmbeddedVariableNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#6888 + sig do + params( + operator_loc: Prism::Location, + variable: Prism::Node, + location: Prism::Location + ).returns(Prism::EmbeddedVariableNode) + end + def copy(operator_loc: T.unsafe(nil), variable: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#6562 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#6873 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { operator_loc: Location, variable: Node, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { operator_loc: Location, variable: Prism::node, location: Location } # - # source://prism//lib/prism/node.rb#6590 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#6896 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#6610 + # source://prism//lib/prism/node.rb#6916 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def operator: () -> String # - # source://prism//lib/prism/node.rb#6605 + # source://prism//lib/prism/node.rb#6911 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#6595 + # source://prism//lib/prism/node.rb#6901 sig { returns(Prism::Location) } def operator_loc; end @@ -11540,12 +13086,13 @@ class Prism::EmbeddedVariableNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#6632 + # source://prism//lib/prism/node.rb#6938 + sig { override.returns(Symbol) } def type; end - # attr_reader variable: Node + # attr_reader variable: Prism::node # - # source://prism//lib/prism/node.rb#6601 + # source://prism//lib/prism/node.rb#6908 sig { returns(Prism::Node) } def variable; end @@ -11557,24 +13104,24 @@ class Prism::EmbeddedVariableNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#6642 + # source://prism//lib/prism/node.rb#6948 def type; end end end # Flags for nodes that have unescaped content. # -# source://prism//lib/prism/node.rb#19268 +# source://prism//lib/prism/node.rb#20364 module Prism::EncodingFlags; end # internal bytes forced the encoding to binary # -# source://prism//lib/prism/node.rb#19273 +# source://prism//lib/prism/node.rb#20369 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#19270 +# source://prism//lib/prism/node.rb#20366 Prism::EncodingFlags::FORCED_UTF8_ENCODING = T.let(T.unsafe(nil), Integer) # Represents an `ensure` clause in a `begin` statement. @@ -11586,92 +13133,116 @@ Prism::EncodingFlags::FORCED_UTF8_ENCODING = T.let(T.unsafe(nil), Integer) # bar # end # -# source://prism//lib/prism/node.rb#6655 +# source://prism//lib/prism/node.rb#6969 class Prism::EnsureNode < ::Prism::Node # def initialize: (Location ensure_keyword_loc, StatementsNode? statements, Location end_keyword_loc, Location location) -> void # # @return [EnsureNode] a new instance of EnsureNode # - # source://prism//lib/prism/node.rb#6657 + # source://prism//lib/prism/node.rb#6971 + sig do + params( + source: Prism::Source, + ensure_keyword_loc: Prism::Location, + statements: T.nilable(Prism::StatementsNode), + end_keyword_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, ensure_keyword_loc, statements, end_keyword_loc, location); 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#7086 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#6667 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#6981 + 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#6672 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#6986 + 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#6684 + # source://prism//lib/prism/node.rb#6998 + 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#6677 + # source://prism//lib/prism/node.rb#6991 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> EnsureNode + # def copy: (?ensure_keyword_loc: Location, ?statements: StatementsNode?, ?end_keyword_loc: Location, ?location: Location) -> EnsureNode # - # source://prism//lib/prism/node.rb#6689 - sig { params(params: T.untyped).returns(Prism::EnsureNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#7003 + sig do + params( + ensure_keyword_loc: Prism::Location, + statements: T.nilable(Prism::StatementsNode), + end_keyword_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::EnsureNode) + end + def copy(ensure_keyword_loc: T.unsafe(nil), statements: T.unsafe(nil), end_keyword_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#6672 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#6986 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { ensure_keyword_loc: Location, statements: StatementsNode?, end_keyword_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#6703 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#7011 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end # def end_keyword: () -> String # - # source://prism//lib/prism/node.rb#6729 + # source://prism//lib/prism/node.rb#7038 sig { returns(String) } def end_keyword; end # attr_reader end_keyword_loc: Location # - # source://prism//lib/prism/node.rb#6717 + # source://prism//lib/prism/node.rb#7026 sig { returns(Prism::Location) } def end_keyword_loc; end # def ensure_keyword: () -> String # - # source://prism//lib/prism/node.rb#6724 + # source://prism//lib/prism/node.rb#7033 sig { returns(String) } def ensure_keyword; end # attr_reader ensure_keyword_loc: Location # - # source://prism//lib/prism/node.rb#6708 + # source://prism//lib/prism/node.rb#7016 sig { returns(Prism::Location) } def ensure_keyword_loc; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#6734 + # source://prism//lib/prism/node.rb#7043 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader statements: StatementsNode? # - # source://prism//lib/prism/node.rb#6714 + # source://prism//lib/prism/node.rb#7023 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end @@ -11690,7 +13261,8 @@ class Prism::EnsureNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#6761 + # source://prism//lib/prism/node.rb#7070 + sig { override.returns(Symbol) } def type; end class << self @@ -11701,7 +13273,7 @@ class Prism::EnsureNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#6771 + # source://prism//lib/prism/node.rb#7080 def type; end end end @@ -11711,63 +13283,72 @@ end # false # ^^^^^ # -# source://prism//lib/prism/node.rb#6780 +# source://prism//lib/prism/node.rb#7098 class Prism::FalseNode < ::Prism::Node # def initialize: (Location location) -> void # # @return [FalseNode] a new instance of FalseNode # - # source://prism//lib/prism/node.rb#6782 + # source://prism//lib/prism/node.rb#7100 + sig { params(source: Prism::Source, location: Prism::Location).void } def initialize(source, location); 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#7175 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#6789 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#7107 + 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#6794 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#7112 + 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#6804 + # source://prism//lib/prism/node.rb#7122 + 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#6799 + # source://prism//lib/prism/node.rb#7117 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> FalseNode + # def copy: (?location: Location) -> FalseNode # - # source://prism//lib/prism/node.rb#6809 - sig { params(params: T.untyped).returns(Prism::FalseNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#7127 + sig { params(location: Prism::Location).returns(Prism::FalseNode) } + def copy(location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#6794 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#7112 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location } # - # source://prism//lib/prism/node.rb#6820 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#7135 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#6826 + # source://prism//lib/prism/node.rb#7140 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -11785,7 +13366,8 @@ class Prism::FalseNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#6845 + # source://prism//lib/prism/node.rb#7159 + sig { override.returns(Symbol) } def type; end class << self @@ -11796,7 +13378,7 @@ class Prism::FalseNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#6855 + # source://prism//lib/prism/node.rb#7169 def type; end end end @@ -11812,110 +13394,140 @@ end # foo in Foo(*bar, baz, *qux) # ^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#6870 +# source://prism//lib/prism/node.rb#7190 class Prism::FindPatternNode < ::Prism::Node - # def initialize: (Node? constant, Node left, Array[Node] requireds, Node right, Location? opening_loc, Location? closing_loc, Location location) -> void + # def initialize: (Prism::node? constant, Prism::node left, Array[Prism::node] requireds, Prism::node right, Location? opening_loc, Location? closing_loc, Location location) -> void # # @return [FindPatternNode] a new instance of FindPatternNode # - # source://prism//lib/prism/node.rb#6872 + # source://prism//lib/prism/node.rb#7192 + sig do + params( + source: Prism::Source, + 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), + location: Prism::Location + ).void + end def initialize(source, constant, left, requireds, right, opening_loc, closing_loc, location); 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#7339 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#6885 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#7205 + 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#6890 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#7210 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String? # - # source://prism//lib/prism/node.rb#6974 + # source://prism//lib/prism/node.rb#7286 sig { returns(T.nilable(String)) } def closing; end # attr_reader closing_loc: Location? # - # source://prism//lib/prism/node.rb#6956 + # source://prism//lib/prism/node.rb#7268 sig { returns(T.nilable(Prism::Location)) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#6905 + # source://prism//lib/prism/node.rb#7225 + 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#6895 + # source://prism//lib/prism/node.rb#7215 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # attr_reader constant: Node? + # attr_reader constant: Prism::node? # - # source://prism//lib/prism/node.rb#6932 + # source://prism//lib/prism/node.rb#7243 sig { returns(T.nilable(Prism::Node)) } def constant; end - # def copy: (**params) -> FindPatternNode + # def copy: (?constant: Prism::node?, ?left: Prism::node, ?requireds: Array[Prism::node], ?right: Prism::node, ?opening_loc: Location?, ?closing_loc: Location?, ?location: Location) -> FindPatternNode # - # source://prism//lib/prism/node.rb#6910 - sig { params(params: T.untyped).returns(Prism::FindPatternNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#7230 + sig do + params( + 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), + location: Prism::Location + ).returns(Prism::FindPatternNode) + end + def copy(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), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#6890 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#7210 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { constant: Node?, left: Node, requireds: Array[Node], right: Node, opening_loc: Location?, closing_loc: Location?, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { constant: Prism::node?, left: Prism::node, requireds: Array[Prism::node], right: Prism::node, opening_loc: Location?, closing_loc: Location?, location: Location } # - # source://prism//lib/prism/node.rb#6927 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#7238 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#6979 + # source://prism//lib/prism/node.rb#7291 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end - # attr_reader left: Node + # attr_reader left: Prism::node # - # source://prism//lib/prism/node.rb#6935 + # source://prism//lib/prism/node.rb#7246 sig { returns(Prism::Node) } def left; end # def opening: () -> String? # - # source://prism//lib/prism/node.rb#6969 + # source://prism//lib/prism/node.rb#7281 sig { returns(T.nilable(String)) } def opening; end # attr_reader opening_loc: Location? # - # source://prism//lib/prism/node.rb#6944 + # source://prism//lib/prism/node.rb#7255 sig { returns(T.nilable(Prism::Location)) } def opening_loc; end - # attr_reader requireds: Array[Node] + # attr_reader requireds: Array[Prism::node] # - # source://prism//lib/prism/node.rb#6938 + # source://prism//lib/prism/node.rb#7249 sig { returns(T::Array[Prism::Node]) } def requireds; end - # attr_reader right: Node + # attr_reader right: Prism::node # - # source://prism//lib/prism/node.rb#6941 + # source://prism//lib/prism/node.rb#7252 sig { returns(Prism::Node) } def right; end @@ -11934,7 +13546,8 @@ class Prism::FindPatternNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#7011 + # source://prism//lib/prism/node.rb#7323 + sig { override.returns(Symbol) } def type; end class << self @@ -11945,7 +13558,7 @@ class Prism::FindPatternNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#7021 + # source://prism//lib/prism/node.rb#7333 def type; end end end @@ -11955,94 +13568,120 @@ end # baz if foo .. bar # ^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#7030 +# source://prism//lib/prism/node.rb#7355 class Prism::FlipFlopNode < ::Prism::Node - # def initialize: (Integer flags, Node? left, Node? right, Location operator_loc, Location location) -> void + # def initialize: (Integer flags, Prism::node? left, Prism::node? right, Location operator_loc, Location location) -> void # # @return [FlipFlopNode] a new instance of FlipFlopNode # - # source://prism//lib/prism/node.rb#7032 + # source://prism//lib/prism/node.rb#7357 + sig do + params( + source: Prism::Source, + flags: Integer, + left: T.nilable(Prism::Node), + right: T.nilable(Prism::Node), + operator_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, flags, left, right, operator_loc, location); 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#7481 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#7043 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#7368 + 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#7048 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#7373 + 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#7061 + # source://prism//lib/prism/node.rb#7386 + 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#7053 + # source://prism//lib/prism/node.rb#7378 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> FlipFlopNode + # def copy: (?flags: Integer, ?left: Prism::node?, ?right: Prism::node?, ?operator_loc: Location, ?location: Location) -> FlipFlopNode # - # source://prism//lib/prism/node.rb#7066 - sig { params(params: T.untyped).returns(Prism::FlipFlopNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#7391 + sig do + params( + flags: Integer, + left: T.nilable(Prism::Node), + right: T.nilable(Prism::Node), + operator_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::FlipFlopNode) + end + def copy(flags: T.unsafe(nil), left: T.unsafe(nil), right: T.unsafe(nil), operator_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#7048 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#7373 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, left: Node?, right: Node?, operator_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, left: Prism::node?, right: Prism::node?, operator_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#7081 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#7399 + 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#7103 + # source://prism//lib/prism/node.rb#7421 sig { returns(T::Boolean) } def exclude_end?; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#7113 + # source://prism//lib/prism/node.rb#7431 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end - # attr_reader left: Node? + # attr_reader left: Prism::node? # - # source://prism//lib/prism/node.rb#7090 + # source://prism//lib/prism/node.rb#7408 sig { returns(T.nilable(Prism::Node)) } def left; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#7108 + # source://prism//lib/prism/node.rb#7426 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#7096 + # source://prism//lib/prism/node.rb#7414 sig { returns(Prism::Location) } def operator_loc; end - # attr_reader right: Node? + # attr_reader right: Prism::node? # - # source://prism//lib/prism/node.rb#7093 + # source://prism//lib/prism/node.rb#7411 sig { returns(T.nilable(Prism::Node)) } def right; end @@ -12061,14 +13700,15 @@ class Prism::FlipFlopNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#7147 + # source://prism//lib/prism/node.rb#7465 + sig { override.returns(Symbol) } def type; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#7086 + # source://prism//lib/prism/node.rb#7404 sig { returns(Integer) } def flags; end @@ -12080,7 +13720,7 @@ class Prism::FlipFlopNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#7157 + # source://prism//lib/prism/node.rb#7475 def type; end end end @@ -12090,63 +13730,72 @@ end # 1.0 # ^^^ # -# source://prism//lib/prism/node.rb#7166 +# source://prism//lib/prism/node.rb#7494 class Prism::FloatNode < ::Prism::Node - # def initialize: (Location location) -> void + # def initialize: (Float value, Location location) -> void # # @return [FloatNode] a new instance of FloatNode # - # source://prism//lib/prism/node.rb#7168 - def initialize(source, location); end + # source://prism//lib/prism/node.rb#7496 + sig { params(source: Prism::Source, value: Float, location: Prism::Location).void } + def initialize(source, value, location); 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#7576 + def ===(other); end # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#7175 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#7504 + 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#7180 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#7509 + 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#7190 + # source://prism//lib/prism/node.rb#7519 + 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#7185 + # source://prism//lib/prism/node.rb#7514 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> FloatNode + # def copy: (?value: Float, ?location: Location) -> FloatNode # - # source://prism//lib/prism/node.rb#7195 - sig { params(params: T.untyped).returns(Prism::FloatNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#7524 + sig { params(value: Float, location: Prism::Location).returns(Prism::FloatNode) } + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#7180 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#7509 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { value: Float, location: Location } # - # source://prism//lib/prism/node.rb#7206 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#7532 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#7212 + # source://prism//lib/prism/node.rb#7540 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -12164,12 +13813,14 @@ class Prism::FloatNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#7231 + # source://prism//lib/prism/node.rb#7560 + sig { override.returns(Symbol) } def type; end - # Returns the value of the node as a Ruby Float. + # The value of the floating point number as a Float. # - # source://prism//lib/prism/node_ext.rb#62 + # source://prism//lib/prism/node.rb#7537 + sig { returns(Float) } def value; end class << self @@ -12180,7 +13831,7 @@ class Prism::FloatNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#7241 + # source://prism//lib/prism/node.rb#7570 def type; end end end @@ -12190,128 +13841,160 @@ end # for i in a end # ^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#7250 +# source://prism//lib/prism/node.rb#7586 class Prism::ForNode < ::Prism::Node - # def initialize: (Node index, Node collection, StatementsNode? statements, Location for_keyword_loc, Location in_keyword_loc, Location? do_keyword_loc, Location end_keyword_loc, Location location) -> void + # def initialize: (Prism::node index, Prism::node collection, StatementsNode? statements, Location for_keyword_loc, Location in_keyword_loc, Location? do_keyword_loc, Location end_keyword_loc, Location location) -> void # # @return [ForNode] a new instance of ForNode # - # source://prism//lib/prism/node.rb#7252 + # source://prism//lib/prism/node.rb#7588 + sig do + params( + source: Prism::Source, + 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, + location: Prism::Location + ).void + end def initialize(source, index, collection, statements, for_keyword_loc, in_keyword_loc, do_keyword_loc, end_keyword_loc, location); 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#7751 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#7266 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#7602 + 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#7271 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#7607 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end - # attr_reader collection: Node + # attr_reader collection: Prism::node # - # source://prism//lib/prism/node.rb#7316 + # source://prism//lib/prism/node.rb#7642 sig { returns(Prism::Node) } def collection; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#7285 + # source://prism//lib/prism/node.rb#7621 + 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#7276 + # source://prism//lib/prism/node.rb#7612 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ForNode + # def copy: (?index: Prism::node, ?collection: Prism::node, ?statements: StatementsNode?, ?for_keyword_loc: Location, ?in_keyword_loc: Location, ?do_keyword_loc: Location?, ?end_keyword_loc: Location, ?location: Location) -> ForNode # - # source://prism//lib/prism/node.rb#7290 - sig { params(params: T.untyped).returns(Prism::ForNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#7626 + sig do + params( + 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, + location: Prism::Location + ).returns(Prism::ForNode) + end + def copy(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), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#7271 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#7607 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { index: Node, collection: Node, statements: StatementsNode?, for_keyword_loc: Location, in_keyword_loc: Location, do_keyword_loc: Location?, end_keyword_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { index: Prism::node, collection: Prism::node, statements: StatementsNode?, for_keyword_loc: Location, in_keyword_loc: Location, do_keyword_loc: Location?, end_keyword_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#7308 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#7634 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end # def do_keyword: () -> String? # - # source://prism//lib/prism/node.rb#7363 + # source://prism//lib/prism/node.rb#7692 sig { returns(T.nilable(String)) } def do_keyword; end # attr_reader do_keyword_loc: Location? # - # source://prism//lib/prism/node.rb#7334 + # source://prism//lib/prism/node.rb#7662 sig { returns(T.nilable(Prism::Location)) } def do_keyword_loc; end # def end_keyword: () -> String # - # source://prism//lib/prism/node.rb#7368 + # source://prism//lib/prism/node.rb#7697 sig { returns(String) } def end_keyword; end # attr_reader end_keyword_loc: Location # - # source://prism//lib/prism/node.rb#7346 + # source://prism//lib/prism/node.rb#7675 sig { returns(Prism::Location) } 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#7353 + # source://prism//lib/prism/node.rb#7682 sig { returns(String) } def for_keyword; end # attr_reader for_keyword_loc: Location # - # source://prism//lib/prism/node.rb#7322 + # source://prism//lib/prism/node.rb#7648 sig { returns(Prism::Location) } def for_keyword_loc; end # def in_keyword: () -> String # - # source://prism//lib/prism/node.rb#7358 + # source://prism//lib/prism/node.rb#7687 sig { returns(String) } def in_keyword; end # attr_reader in_keyword_loc: Location # - # source://prism//lib/prism/node.rb#7328 + # source://prism//lib/prism/node.rb#7655 sig { returns(Prism::Location) } def in_keyword_loc; end - # attr_reader index: Node + # attr_reader index: Prism::node # - # source://prism//lib/prism/node.rb#7313 + # source://prism//lib/prism/node.rb#7639 sig { returns(Prism::Node) } def index; end # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#7373 + # source://prism//lib/prism/node.rb#7702 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader statements: StatementsNode? # - # source://prism//lib/prism/node.rb#7319 + # source://prism//lib/prism/node.rb#7645 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end @@ -12330,7 +14013,8 @@ class Prism::ForNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#7406 + # source://prism//lib/prism/node.rb#7735 + sig { override.returns(Symbol) } def type; end class << self @@ -12341,7 +14025,7 @@ class Prism::ForNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#7416 + # source://prism//lib/prism/node.rb#7745 def type; end end end @@ -12353,63 +14037,72 @@ end # ^^^ # end # -# source://prism//lib/prism/node.rb#7427 +# source://prism//lib/prism/node.rb#7769 class Prism::ForwardingArgumentsNode < ::Prism::Node # def initialize: (Location location) -> void # # @return [ForwardingArgumentsNode] a new instance of ForwardingArgumentsNode # - # source://prism//lib/prism/node.rb#7429 + # source://prism//lib/prism/node.rb#7771 + sig { params(source: Prism::Source, location: Prism::Location).void } def initialize(source, location); 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#7846 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#7436 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#7778 + 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#7441 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#7783 + 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#7451 + # source://prism//lib/prism/node.rb#7793 + 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#7446 + # source://prism//lib/prism/node.rb#7788 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ForwardingArgumentsNode + # def copy: (?location: Location) -> ForwardingArgumentsNode # - # source://prism//lib/prism/node.rb#7456 - sig { params(params: T.untyped).returns(Prism::ForwardingArgumentsNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#7798 + sig { params(location: Prism::Location).returns(Prism::ForwardingArgumentsNode) } + def copy(location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#7441 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#7783 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location } # - # source://prism//lib/prism/node.rb#7467 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#7806 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#7473 + # source://prism//lib/prism/node.rb#7811 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -12427,7 +14120,8 @@ class Prism::ForwardingArgumentsNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#7492 + # source://prism//lib/prism/node.rb#7830 + sig { override.returns(Symbol) } def type; end class << self @@ -12438,7 +14132,7 @@ class Prism::ForwardingArgumentsNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#7502 + # source://prism//lib/prism/node.rb#7840 def type; end end end @@ -12449,63 +14143,72 @@ end # ^^^ # end # -# source://prism//lib/prism/node.rb#7512 +# source://prism//lib/prism/node.rb#7856 class Prism::ForwardingParameterNode < ::Prism::Node # def initialize: (Location location) -> void # # @return [ForwardingParameterNode] a new instance of ForwardingParameterNode # - # source://prism//lib/prism/node.rb#7514 + # source://prism//lib/prism/node.rb#7858 + sig { params(source: Prism::Source, location: Prism::Location).void } def initialize(source, location); 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#7933 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#7521 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#7865 + 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#7526 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#7870 + 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#7536 + # source://prism//lib/prism/node.rb#7880 + 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#7531 + # source://prism//lib/prism/node.rb#7875 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ForwardingParameterNode + # def copy: (?location: Location) -> ForwardingParameterNode # - # source://prism//lib/prism/node.rb#7541 - sig { params(params: T.untyped).returns(Prism::ForwardingParameterNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#7885 + sig { params(location: Prism::Location).returns(Prism::ForwardingParameterNode) } + def copy(location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#7526 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#7870 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location } # - # source://prism//lib/prism/node.rb#7552 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#7893 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#7558 + # source://prism//lib/prism/node.rb#7898 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -12523,7 +14226,8 @@ class Prism::ForwardingParameterNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#7577 + # source://prism//lib/prism/node.rb#7917 + sig { override.returns(Symbol) } def type; end class << self @@ -12534,7 +14238,7 @@ class Prism::ForwardingParameterNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#7587 + # source://prism//lib/prism/node.rb#7927 def type; end end end @@ -12544,69 +14248,78 @@ end # super # ^^^^^ # -# source://prism//lib/prism/node.rb#7596 +# source://prism//lib/prism/node.rb#7942 class Prism::ForwardingSuperNode < ::Prism::Node # def initialize: (BlockNode? block, Location location) -> void # # @return [ForwardingSuperNode] a new instance of ForwardingSuperNode # - # source://prism//lib/prism/node.rb#7598 + # source://prism//lib/prism/node.rb#7944 + sig { params(source: Prism::Source, block: T.nilable(Prism::BlockNode), location: Prism::Location).void } def initialize(source, block, location); 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#8031 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#7606 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#7952 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end # attr_reader block: BlockNode? # - # source://prism//lib/prism/node.rb#7645 + # source://prism//lib/prism/node.rb#7987 sig { returns(T.nilable(Prism::BlockNode)) } def block; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#7611 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#7957 + 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#7623 + # source://prism//lib/prism/node.rb#7969 + 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#7616 + # source://prism//lib/prism/node.rb#7962 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ForwardingSuperNode + # def copy: (?block: BlockNode?, ?location: Location) -> ForwardingSuperNode # - # source://prism//lib/prism/node.rb#7628 - sig { params(params: T.untyped).returns(Prism::ForwardingSuperNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#7974 + sig { params(block: T.nilable(Prism::BlockNode), location: Prism::Location).returns(Prism::ForwardingSuperNode) } + def copy(block: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#7611 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#7957 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { block: BlockNode?, location: Location } # - # source://prism//lib/prism/node.rb#7640 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#7982 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#7649 + # source://prism//lib/prism/node.rb#7990 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -12624,7 +14337,8 @@ class Prism::ForwardingSuperNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#7674 + # source://prism//lib/prism/node.rb#8015 + sig { override.returns(Symbol) } def type; end class << self @@ -12635,7 +14349,7 @@ class Prism::ForwardingSuperNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#7684 + # source://prism//lib/prism/node.rb#8025 def type; end end end @@ -12645,89 +14359,115 @@ end # $target &&= value # ^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#7693 +# source://prism//lib/prism/node.rb#8041 class Prism::GlobalVariableAndWriteNode < ::Prism::Node - # def initialize: (Symbol name, Location name_loc, Location operator_loc, Node value, Location location) -> void + # def initialize: (Symbol name, Location name_loc, Location operator_loc, Prism::node value, Location location) -> void # # @return [GlobalVariableAndWriteNode] a new instance of GlobalVariableAndWriteNode # - # source://prism//lib/prism/node.rb#7695 + # source://prism//lib/prism/node.rb#8043 + sig do + params( + source: Prism::Source, + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).void + end def initialize(source, name, name_loc, operator_loc, value, location); 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#8152 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#7706 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#8054 + 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#7711 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#8059 + 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#7721 + # source://prism//lib/prism/node.rb#8069 + 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#7716 + # source://prism//lib/prism/node.rb#8064 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> GlobalVariableAndWriteNode + # def copy: (?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> GlobalVariableAndWriteNode # - # source://prism//lib/prism/node.rb#7726 - sig { params(params: T.untyped).returns(Prism::GlobalVariableAndWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#8074 + sig do + params( + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).returns(Prism::GlobalVariableAndWriteNode) + end + def copy(name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#7711 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#8059 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Node, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node, location: Location } # - # source://prism//lib/prism/node.rb#7741 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#8082 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end - # source://prism//lib/prism/desugar_compiler.rb#161 + # source://prism//lib/prism/desugar_compiler.rb#163 def desugar; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#7770 + # source://prism//lib/prism/node.rb#8112 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#7746 + # source://prism//lib/prism/node.rb#8087 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#7749 + # source://prism//lib/prism/node.rb#8090 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#7765 + # source://prism//lib/prism/node.rb#8107 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#7755 + # source://prism//lib/prism/node.rb#8097 sig { returns(Prism::Location) } def operator_loc; end @@ -12746,12 +14486,13 @@ class Prism::GlobalVariableAndWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#7794 + # source://prism//lib/prism/node.rb#8136 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#7761 + # source://prism//lib/prism/node.rb#8104 sig { returns(Prism::Node) } def value; end @@ -12763,7 +14504,7 @@ class Prism::GlobalVariableAndWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#7804 + # source://prism//lib/prism/node.rb#8146 def type; end end end @@ -12773,89 +14514,117 @@ end # $target += value # ^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#7813 +# source://prism//lib/prism/node.rb#8165 class Prism::GlobalVariableOperatorWriteNode < ::Prism::Node - # def initialize: (Symbol name, Location name_loc, Location operator_loc, Node value, Symbol operator, Location location) -> void + # def initialize: (Symbol name, Location name_loc, Location operator_loc, Prism::node value, Symbol operator, Location location) -> void # # @return [GlobalVariableOperatorWriteNode] a new instance of GlobalVariableOperatorWriteNode # - # source://prism//lib/prism/node.rb#7815 + # source://prism//lib/prism/node.rb#8167 + sig do + params( + source: Prism::Source, + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + operator: Symbol, + location: Prism::Location + ).void + end def initialize(source, name, name_loc, operator_loc, value, operator, location); 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#8276 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#7827 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#8179 + 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#7832 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#8184 + 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#7842 + # source://prism//lib/prism/node.rb#8194 + 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#7837 + # source://prism//lib/prism/node.rb#8189 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> GlobalVariableOperatorWriteNode + # def copy: (?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?operator: Symbol, ?location: Location) -> GlobalVariableOperatorWriteNode # - # source://prism//lib/prism/node.rb#7847 - sig { params(params: T.untyped).returns(Prism::GlobalVariableOperatorWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#8199 + sig do + params( + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + operator: Symbol, + location: Prism::Location + ).returns(Prism::GlobalVariableOperatorWriteNode) + end + def copy(name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil), operator: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#7832 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#8184 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Node, operator: Symbol, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node, operator: Symbol, location: Location } # - # source://prism//lib/prism/node.rb#7863 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#8207 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end - # source://prism//lib/prism/desugar_compiler.rb#173 + # source://prism//lib/prism/desugar_compiler.rb#175 def desugar; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#7890 + # source://prism//lib/prism/node.rb#8235 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#7868 + # source://prism//lib/prism/node.rb#8212 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#7871 + # source://prism//lib/prism/node.rb#8215 sig { returns(Prism::Location) } def name_loc; end # attr_reader operator: Symbol # - # source://prism//lib/prism/node.rb#7886 + # source://prism//lib/prism/node.rb#8232 sig { returns(Symbol) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#7877 + # source://prism//lib/prism/node.rb#8222 sig { returns(Prism::Location) } def operator_loc; end @@ -12874,12 +14643,13 @@ class Prism::GlobalVariableOperatorWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#7915 + # source://prism//lib/prism/node.rb#8260 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#7883 + # source://prism//lib/prism/node.rb#8229 sig { returns(Prism::Node) } def value; end @@ -12891,7 +14661,7 @@ class Prism::GlobalVariableOperatorWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#7925 + # source://prism//lib/prism/node.rb#8270 def type; end end end @@ -12901,89 +14671,115 @@ end # $target ||= value # ^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#7934 +# source://prism//lib/prism/node.rb#8290 class Prism::GlobalVariableOrWriteNode < ::Prism::Node - # def initialize: (Symbol name, Location name_loc, Location operator_loc, Node value, Location location) -> void + # def initialize: (Symbol name, Location name_loc, Location operator_loc, Prism::node value, Location location) -> void # # @return [GlobalVariableOrWriteNode] a new instance of GlobalVariableOrWriteNode # - # source://prism//lib/prism/node.rb#7936 + # source://prism//lib/prism/node.rb#8292 + sig do + params( + source: Prism::Source, + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).void + end def initialize(source, name, name_loc, operator_loc, value, location); 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#8401 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#7947 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#8303 + 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#7952 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#8308 + 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#7962 + # source://prism//lib/prism/node.rb#8318 + 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#7957 + # source://prism//lib/prism/node.rb#8313 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> GlobalVariableOrWriteNode + # def copy: (?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> GlobalVariableOrWriteNode # - # source://prism//lib/prism/node.rb#7967 - sig { params(params: T.untyped).returns(Prism::GlobalVariableOrWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#8323 + sig do + params( + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).returns(Prism::GlobalVariableOrWriteNode) + end + def copy(name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#7952 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#8308 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Node, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node, location: Location } # - # source://prism//lib/prism/node.rb#7982 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#8331 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end - # source://prism//lib/prism/desugar_compiler.rb#167 + # source://prism//lib/prism/desugar_compiler.rb#169 def desugar; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#8011 + # source://prism//lib/prism/node.rb#8361 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#7987 + # source://prism//lib/prism/node.rb#8336 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#7990 + # source://prism//lib/prism/node.rb#8339 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#8006 + # source://prism//lib/prism/node.rb#8356 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#7996 + # source://prism//lib/prism/node.rb#8346 sig { returns(Prism::Location) } def operator_loc; end @@ -13002,12 +14798,13 @@ class Prism::GlobalVariableOrWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#8035 + # source://prism//lib/prism/node.rb#8385 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#8002 + # source://prism//lib/prism/node.rb#8353 sig { returns(Prism::Node) } def value; end @@ -13019,7 +14816,7 @@ class Prism::GlobalVariableOrWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#8045 + # source://prism//lib/prism/node.rb#8395 def type; end end end @@ -13029,63 +14826,72 @@ end # $foo # ^^^^ # -# source://prism//lib/prism/node.rb#8054 +# source://prism//lib/prism/node.rb#8414 class Prism::GlobalVariableReadNode < ::Prism::Node # def initialize: (Symbol name, Location location) -> void # # @return [GlobalVariableReadNode] a new instance of GlobalVariableReadNode # - # source://prism//lib/prism/node.rb#8056 + # source://prism//lib/prism/node.rb#8416 + sig { params(source: Prism::Source, name: Symbol, location: Prism::Location).void } def initialize(source, name, location); 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#8500 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#8064 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#8424 + 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#8069 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#8429 + 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#8079 + # source://prism//lib/prism/node.rb#8439 + 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#8074 + # source://prism//lib/prism/node.rb#8434 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> GlobalVariableReadNode + # def copy: (?name: Symbol, ?location: Location) -> GlobalVariableReadNode # - # source://prism//lib/prism/node.rb#8084 - sig { params(params: T.untyped).returns(Prism::GlobalVariableReadNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#8444 + sig { params(name: Symbol, location: Prism::Location).returns(Prism::GlobalVariableReadNode) } + def copy(name: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#8069 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#8429 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location } # - # source://prism//lib/prism/node.rb#8096 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#8452 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#8109 + # source://prism//lib/prism/node.rb#8464 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); 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. @@ -13094,7 +14900,7 @@ class Prism::GlobalVariableReadNode < ::Prism::Node # # $_Test # name `:$_Test` # - # source://prism//lib/prism/node.rb#8105 + # source://prism//lib/prism/node.rb#8461 sig { returns(Symbol) } def name; end @@ -13113,7 +14919,8 @@ class Prism::GlobalVariableReadNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#8129 + # source://prism//lib/prism/node.rb#8484 + sig { override.returns(Symbol) } def type; end class << self @@ -13124,7 +14931,7 @@ class Prism::GlobalVariableReadNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#8139 + # source://prism//lib/prism/node.rb#8494 def type; end end end @@ -13134,68 +14941,77 @@ end # $foo, $bar = baz # ^^^^ ^^^^ # -# source://prism//lib/prism/node.rb#8148 +# source://prism//lib/prism/node.rb#8510 class Prism::GlobalVariableTargetNode < ::Prism::Node # def initialize: (Symbol name, Location location) -> void # # @return [GlobalVariableTargetNode] a new instance of GlobalVariableTargetNode # - # source://prism//lib/prism/node.rb#8150 + # source://prism//lib/prism/node.rb#8512 + sig { params(source: Prism::Source, name: Symbol, location: Prism::Location).void } def initialize(source, name, location); 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#8592 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#8158 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#8520 + 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#8163 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#8525 + 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#8173 + # source://prism//lib/prism/node.rb#8535 + 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#8168 + # source://prism//lib/prism/node.rb#8530 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> GlobalVariableTargetNode + # def copy: (?name: Symbol, ?location: Location) -> GlobalVariableTargetNode # - # source://prism//lib/prism/node.rb#8178 - sig { params(params: T.untyped).returns(Prism::GlobalVariableTargetNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#8540 + sig { params(name: Symbol, location: Prism::Location).returns(Prism::GlobalVariableTargetNode) } + def copy(name: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#8163 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#8525 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location } # - # source://prism//lib/prism/node.rb#8190 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#8548 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#8199 + # source://prism//lib/prism/node.rb#8556 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#8195 + # source://prism//lib/prism/node.rb#8553 sig { returns(Symbol) } def name; end @@ -13214,7 +15030,8 @@ class Prism::GlobalVariableTargetNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#8219 + # source://prism//lib/prism/node.rb#8576 + sig { override.returns(Symbol) } def type; end class << self @@ -13225,7 +15042,7 @@ class Prism::GlobalVariableTargetNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#8229 + # source://prism//lib/prism/node.rb#8586 def type; end end end @@ -13235,86 +15052,122 @@ end # $foo = 1 # ^^^^^^^^ # -# source://prism//lib/prism/node.rb#8238 +# source://prism//lib/prism/node.rb#8602 class Prism::GlobalVariableWriteNode < ::Prism::Node - # def initialize: (Symbol name, Location name_loc, Node value, Location operator_loc, Location location) -> void + # def initialize: (Symbol name, Location name_loc, Prism::node value, Location operator_loc, Location location) -> void # # @return [GlobalVariableWriteNode] a new instance of GlobalVariableWriteNode # - # source://prism//lib/prism/node.rb#8240 + # source://prism//lib/prism/node.rb#8604 + sig do + params( + source: Prism::Source, + name: Symbol, + name_loc: Prism::Location, + value: Prism::Node, + operator_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, name, name_loc, value, operator_loc, location); 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#8729 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#8251 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#8615 + 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#8256 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#8620 + 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#8266 + # source://prism//lib/prism/node.rb#8630 + 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#8261 + # source://prism//lib/prism/node.rb#8625 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> GlobalVariableWriteNode + # def copy: (?name: Symbol, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location, ?location: Location) -> GlobalVariableWriteNode # - # source://prism//lib/prism/node.rb#8271 - sig { params(params: T.untyped).returns(Prism::GlobalVariableWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#8635 + sig do + params( + name: Symbol, + name_loc: Prism::Location, + value: Prism::Node, + operator_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::GlobalVariableWriteNode) + end + def copy(name: T.unsafe(nil), name_loc: T.unsafe(nil), value: T.unsafe(nil), operator_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#8256 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#8620 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, value: Node, operator_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, value: Prism::node, operator_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#8286 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#8643 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#8315 + # source://prism//lib/prism/node.rb#8689 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end - # attr_reader name: Symbol + # 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` # - # source://prism//lib/prism/node.rb#8291 + # $_Test = 123 # name `:$_Test` + # + # source://prism//lib/prism/node.rb#8652 sig { returns(Symbol) } def name; end - # attr_reader name_loc: Location + # The location of the global variable's name. + # + # $foo = :bar + # ^^^^ # - # source://prism//lib/prism/node.rb#8294 + # source://prism//lib/prism/node.rb#8658 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#8310 + # source://prism//lib/prism/node.rb#8684 sig { returns(String) } def operator; end - # attr_reader operator_loc: Location + # The location of the `=` operator. # - # source://prism//lib/prism/node.rb#8303 + # $foo = :bar + # ^ + # + # source://prism//lib/prism/node.rb#8677 sig { returns(Prism::Location) } def operator_loc; end @@ -13333,12 +15186,19 @@ class Prism::GlobalVariableWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#8339 + # source://prism//lib/prism/node.rb#8713 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # 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#8300 + # source://prism//lib/prism/node.rb#8671 sig { returns(Prism::Node) } def value; end @@ -13350,7 +15210,7 @@ class Prism::GlobalVariableWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#8349 + # source://prism//lib/prism/node.rb#8723 def type; end end end @@ -13360,30 +15220,45 @@ end # { a => b } # ^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#8358 +# source://prism//lib/prism/node.rb#8742 class Prism::HashNode < ::Prism::Node - # def initialize: (Location opening_loc, Array[Node] elements, Location closing_loc, Location location) -> void + # def initialize: (Location opening_loc, Array[AssocNode | AssocSplatNode] elements, Location closing_loc, Location location) -> void # # @return [HashNode] a new instance of HashNode # - # source://prism//lib/prism/node.rb#8360 + # source://prism//lib/prism/node.rb#8744 + sig do + params( + source: Prism::Source, + opening_loc: Prism::Location, + elements: T::Array[T.any(Prism::AssocNode, Prism::AssocSplatNode)], + closing_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, opening_loc, elements, closing_loc, location); 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#8864 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#8370 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#8754 + 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#8375 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#8759 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#8442 + # source://prism//lib/prism/node.rb#8821 sig { returns(String) } def closing; end @@ -13392,41 +15267,46 @@ class Prism::HashNode < ::Prism::Node # { a => b } # ^ # - # source://prism//lib/prism/node.rb#8430 + # source://prism//lib/prism/node.rb#8809 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#8385 + # source://prism//lib/prism/node.rb#8769 + 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#8380 + # source://prism//lib/prism/node.rb#8764 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> HashNode + # def copy: (?opening_loc: Location, ?elements: Array[AssocNode | AssocSplatNode], ?closing_loc: Location, ?location: Location) -> HashNode # - # source://prism//lib/prism/node.rb#8390 - sig { params(params: T.untyped).returns(Prism::HashNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#8774 + sig do + params( + opening_loc: Prism::Location, + elements: T::Array[T.any(Prism::AssocNode, Prism::AssocSplatNode)], + closing_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::HashNode) + end + def copy(opening_loc: T.unsafe(nil), elements: T.unsafe(nil), closing_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#8375 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#8759 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { opening_loc: Location, elements: Array[Node], closing_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { opening_loc: Location, elements: Array[AssocNode | AssocSplatNode], closing_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#8404 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#8782 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end # The elements of the hash. These can be either `AssocNode`s or `AssocSplatNode`s. @@ -13437,18 +15317,22 @@ class Prism::HashNode < ::Prism::Node # { **foo } # ^^^^^ # - # source://prism//lib/prism/node.rb#8424 - sig { returns(T::Array[Prism::Node]) } + # source://prism//lib/prism/node.rb#8803 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#8447 + # source://prism//lib/prism/node.rb#8826 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String # - # source://prism//lib/prism/node.rb#8437 + # source://prism//lib/prism/node.rb#8816 sig { returns(String) } def opening; end @@ -13457,7 +15341,7 @@ class Prism::HashNode < ::Prism::Node # { a => b } # ^ # - # source://prism//lib/prism/node.rb#8412 + # source://prism//lib/prism/node.rb#8790 sig { returns(Prism::Location) } def opening_loc; end @@ -13476,7 +15360,8 @@ class Prism::HashNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#8469 + # source://prism//lib/prism/node.rb#8848 + sig { override.returns(Symbol) } def type; end class << self @@ -13487,7 +15372,7 @@ class Prism::HashNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#8479 + # source://prism//lib/prism/node.rb#8858 def type; end end end @@ -13500,105 +15385,133 @@ end # foo => { a: 1, b: 2, **c } # ^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#8491 +# source://prism//lib/prism/node.rb#8880 class Prism::HashPatternNode < ::Prism::Node - # def initialize: (Node? constant, Array[Node] elements, Node? rest, Location? opening_loc, Location? closing_loc, Location location) -> void + # def initialize: (Prism::node? constant, Array[AssocNode] elements, AssocSplatNode | NoKeywordsParameterNode | nil rest, Location? opening_loc, Location? closing_loc, Location location) -> void # # @return [HashPatternNode] a new instance of HashPatternNode # - # source://prism//lib/prism/node.rb#8493 + # source://prism//lib/prism/node.rb#8882 + sig do + params( + source: Prism::Source, + 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), + location: Prism::Location + ).void + end def initialize(source, constant, elements, rest, opening_loc, closing_loc, location); 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#9026 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#8505 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#8894 + 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#8510 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#8899 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String? # - # source://prism//lib/prism/node.rb#8589 + # source://prism//lib/prism/node.rb#8971 sig { returns(T.nilable(String)) } def closing; end # attr_reader closing_loc: Location? # - # source://prism//lib/prism/node.rb#8571 + # source://prism//lib/prism/node.rb#8953 sig { returns(T.nilable(Prism::Location)) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#8524 + # source://prism//lib/prism/node.rb#8913 + 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#8515 + # source://prism//lib/prism/node.rb#8904 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # attr_reader constant: Node? + # attr_reader constant: Prism::node? # - # source://prism//lib/prism/node.rb#8550 + # source://prism//lib/prism/node.rb#8931 sig { returns(T.nilable(Prism::Node)) } def constant; end - # def copy: (**params) -> HashPatternNode + # def copy: (?constant: Prism::node?, ?elements: Array[AssocNode], ?rest: AssocSplatNode | NoKeywordsParameterNode | nil, ?opening_loc: Location?, ?closing_loc: Location?, ?location: Location) -> HashPatternNode # - # source://prism//lib/prism/node.rb#8529 - sig { params(params: T.untyped).returns(Prism::HashPatternNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#8918 + sig do + params( + 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), + location: Prism::Location + ).returns(Prism::HashPatternNode) + end + def copy(constant: T.unsafe(nil), elements: T.unsafe(nil), rest: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#8510 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#8899 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { constant: Node?, elements: Array[Node], rest: Node?, opening_loc: Location?, closing_loc: Location?, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { constant: Prism::node?, elements: Array[AssocNode], rest: AssocSplatNode | NoKeywordsParameterNode | nil, opening_loc: Location?, closing_loc: Location?, location: Location } # - # source://prism//lib/prism/node.rb#8545 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#8926 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end - # attr_reader elements: Array[Node] + # attr_reader elements: Array[AssocNode] # - # source://prism//lib/prism/node.rb#8553 - sig { returns(T::Array[Prism::Node]) } + # source://prism//lib/prism/node.rb#8934 + sig { returns(T::Array[Prism::AssocNode]) } def elements; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#8594 + # source://prism//lib/prism/node.rb#8976 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String? # - # source://prism//lib/prism/node.rb#8584 + # source://prism//lib/prism/node.rb#8966 sig { returns(T.nilable(String)) } def opening; end # attr_reader opening_loc: Location? # - # source://prism//lib/prism/node.rb#8559 + # source://prism//lib/prism/node.rb#8940 sig { returns(T.nilable(Prism::Location)) } def opening_loc; end - # attr_reader rest: Node? + # attr_reader rest: AssocSplatNode | NoKeywordsParameterNode | nil # - # source://prism//lib/prism/node.rb#8556 - sig { returns(T.nilable(Prism::Node)) } + # source://prism//lib/prism/node.rb#8937 + sig { returns(T.nilable(T.any(Prism::AssocSplatNode, Prism::NoKeywordsParameterNode))) } def rest; end # Sometimes you want to check an instance of a node against a list of @@ -13616,7 +15529,8 @@ class Prism::HashPatternNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#8628 + # source://prism//lib/prism/node.rb#9010 + sig { override.returns(Symbol) } def type; end class << self @@ -13627,7 +15541,7 @@ class Prism::HashPatternNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#8638 + # source://prism//lib/prism/node.rb#9020 def type; end end end @@ -13642,7 +15556,7 @@ module Prism::HeredocQuery def heredoc?; end end -# Represents the use of the `if` keyword, either in the block form or the modifier form. +# Represents the use of the `if` keyword, either in the block form or the modifier form, or a ternary expression. # # bar if foo # ^^^^^^^^^^ @@ -13650,119 +15564,198 @@ end # if foo then bar end # ^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#8650 +# foo ? bar : baz +# ^^^^^^^^^^^^^^^ +# +# source://prism//lib/prism/node.rb#9047 class Prism::IfNode < ::Prism::Node - # def initialize: (Location? if_keyword_loc, Node predicate, Location? then_keyword_loc, StatementsNode? statements, Node? consequent, Location? end_keyword_loc, Location location) -> void + # def initialize: (Location? if_keyword_loc, Prism::node predicate, Location? then_keyword_loc, StatementsNode? statements, Prism::node? consequent, Location? end_keyword_loc, Location location) -> void # # @return [IfNode] a new instance of IfNode # - # source://prism//lib/prism/node.rb#8652 - def initialize(source, if_keyword_loc, predicate, then_keyword_loc, statements, consequent, end_keyword_loc, location); end - + # source://prism//lib/prism/node.rb#9049 + sig do + params( + source: Prism::Source, + if_keyword_loc: T.nilable(Prism::Location), + predicate: Prism::Node, + then_keyword_loc: T.nilable(Prism::Location), + statements: T.nilable(Prism::StatementsNode), + consequent: T.nilable(Prism::Node), + end_keyword_loc: T.nilable(Prism::Location), + location: Prism::Location + ).void + end + def initialize(source, if_keyword_loc, predicate, then_keyword_loc, statements, consequent, end_keyword_loc, location); 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#9264 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#8665 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#9062 + 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#8674 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#9071 + 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#8688 + # source://prism//lib/prism/node.rb#9085 + 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#8679 + # source://prism//lib/prism/node.rb#9076 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # attr_reader consequent: Node? + # 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 + # ^^^ # - # source://prism//lib/prism/node.rb#8745 + # if foo then bar else baz end + # ^^^^^^^^^^^^ + # + # source://prism//lib/prism/node.rb#9176 sig { returns(T.nilable(Prism::Node)) } def consequent; end - # def copy: (**params) -> IfNode + # def copy: (?if_keyword_loc: Location?, ?predicate: Prism::node, ?then_keyword_loc: Location?, ?statements: StatementsNode?, ?consequent: Prism::node?, ?end_keyword_loc: Location?, ?location: Location) -> IfNode # - # source://prism//lib/prism/node.rb#8693 - sig { params(params: T.untyped).returns(Prism::IfNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#9090 + sig do + params( + if_keyword_loc: T.nilable(Prism::Location), + predicate: Prism::Node, + then_keyword_loc: T.nilable(Prism::Location), + statements: T.nilable(Prism::StatementsNode), + consequent: T.nilable(Prism::Node), + end_keyword_loc: T.nilable(Prism::Location), + location: Prism::Location + ).returns(Prism::IfNode) + end + def copy(if_keyword_loc: T.unsafe(nil), predicate: T.unsafe(nil), then_keyword_loc: T.unsafe(nil), statements: T.unsafe(nil), consequent: T.unsafe(nil), end_keyword_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#8674 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#9071 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { if_keyword_loc: Location?, predicate: Node, then_keyword_loc: Location?, statements: StatementsNode?, consequent: Node?, end_keyword_loc: Location?, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { if_keyword_loc: Location?, predicate: Prism::node, then_keyword_loc: Location?, statements: StatementsNode?, consequent: Prism::node?, end_keyword_loc: Location?, location: Location } # - # source://prism//lib/prism/node.rb#8710 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#9098 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end # def end_keyword: () -> String? # - # source://prism//lib/prism/node.rb#8771 + # source://prism//lib/prism/node.rb#9207 sig { returns(T.nilable(String)) } def end_keyword; end - # attr_reader end_keyword_loc: Location? + # The location of the `end` keyword if present, `nil` otherwise. + # + # if foo + # bar + # end + # ^^^ # - # source://prism//lib/prism/node.rb#8748 + # source://prism//lib/prism/node.rb#9184 sig { returns(T.nilable(Prism::Location)) } 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#8761 + # source://prism//lib/prism/node.rb#9197 sig { returns(T.nilable(String)) } def if_keyword; end - # attr_reader if_keyword_loc: Location? + # The location of the `if` keyword if present. + # + # bar if foo + # ^^ # - # source://prism//lib/prism/node.rb#8715 + # The `if_keyword_loc` field will be `nil` when the `IfNode` represents a ternary expression. + # + # source://prism//lib/prism/node.rb#9108 sig { returns(T.nilable(Prism::Location)) } def if_keyword_loc; end # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#8776 + # source://prism//lib/prism/node.rb#9212 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end - # attr_reader predicate: Node + # 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#8727 + # source://prism//lib/prism/node.rb#9132 sig { returns(Prism::Node) } def predicate; end - # source://prism//lib/prism/node.rb#8669 + # source://prism//lib/prism/node.rb#9066 def set_newline_flag(newline_marked); end - # attr_reader statements: StatementsNode? + # 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#8742 + # source://prism//lib/prism/node.rb#9161 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end # def then_keyword: () -> String? # - # source://prism//lib/prism/node.rb#8766 + # source://prism//lib/prism/node.rb#9202 sig { returns(T.nilable(String)) } def then_keyword; end - # attr_reader then_keyword_loc: Location? + # 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#8730 + # source://prism//lib/prism/node.rb#9141 sig { returns(T.nilable(Prism::Location)) } def then_keyword_loc; end @@ -13781,7 +15774,8 @@ class Prism::IfNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#8812 + # source://prism//lib/prism/node.rb#9248 + sig { override.returns(Symbol) } def type; end class << self @@ -13792,7 +15786,7 @@ class Prism::IfNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#8822 + # source://prism//lib/prism/node.rb#9258 def type; end end end @@ -13802,69 +15796,89 @@ end # 1.0i # ^^^^ # -# source://prism//lib/prism/node.rb#8831 +# source://prism//lib/prism/node.rb#9279 class Prism::ImaginaryNode < ::Prism::Node - # def initialize: (Node numeric, Location location) -> void + # def initialize: (FloatNode | IntegerNode | RationalNode numeric, Location location) -> void # # @return [ImaginaryNode] a new instance of ImaginaryNode # - # source://prism//lib/prism/node.rb#8833 + # source://prism//lib/prism/node.rb#9281 + sig do + params( + source: Prism::Source, + numeric: T.any(Prism::FloatNode, Prism::IntegerNode, Prism::RationalNode), + location: Prism::Location + ).void + end def initialize(source, numeric, location); 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#9362 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#8841 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#9289 + 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#8846 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#9294 + 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#8856 + # source://prism//lib/prism/node.rb#9304 + 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#8851 + # source://prism//lib/prism/node.rb#9299 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ImaginaryNode + # def copy: (?numeric: FloatNode | IntegerNode | RationalNode, ?location: Location) -> ImaginaryNode # - # source://prism//lib/prism/node.rb#8861 - sig { params(params: T.untyped).returns(Prism::ImaginaryNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#9309 + sig do + params( + numeric: T.any(Prism::FloatNode, Prism::IntegerNode, Prism::RationalNode), + location: Prism::Location + ).returns(Prism::ImaginaryNode) + end + def copy(numeric: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#8846 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#9294 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { numeric: Node, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { numeric: FloatNode | IntegerNode | RationalNode, location: Location } # - # source://prism//lib/prism/node.rb#8873 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#9317 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#8882 + # source://prism//lib/prism/node.rb#9325 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end - # attr_reader numeric: Node + # attr_reader numeric: FloatNode | IntegerNode | RationalNode # - # source://prism//lib/prism/node.rb#8878 - sig { returns(Prism::Node) } + # source://prism//lib/prism/node.rb#9322 + sig { returns(T.any(Prism::FloatNode, Prism::IntegerNode, Prism::RationalNode)) } def numeric; end # Sometimes you want to check an instance of a node against a list of @@ -13882,12 +15896,14 @@ class Prism::ImaginaryNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#8903 + # source://prism//lib/prism/node.rb#9346 + sig { override.returns(Symbol) } def type; end # Returns the value of the node as a Ruby Complex. # - # source://prism//lib/prism/node_ext.rb#69 + # source://prism//lib/prism/node_ext.rb#87 + sig { returns(Complex) } def value; end class << self @@ -13898,7 +15914,7 @@ class Prism::ImaginaryNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#8913 + # source://prism//lib/prism/node.rb#9356 def type; end end end @@ -13914,63 +15930,72 @@ end # foo in { bar: } # ^^^^ # -# source://prism//lib/prism/node.rb#8928 +# source://prism//lib/prism/node.rb#9378 class Prism::ImplicitNode < ::Prism::Node - # def initialize: (Node value, Location location) -> void + # def initialize: (Prism::node value, Location location) -> void # # @return [ImplicitNode] a new instance of ImplicitNode # - # source://prism//lib/prism/node.rb#8930 + # source://prism//lib/prism/node.rb#9380 + sig { params(source: Prism::Source, value: Prism::Node, location: Prism::Location).void } def initialize(source, value, location); 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#9461 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#8938 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#9388 + 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#8943 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#9393 + 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#8953 + # source://prism//lib/prism/node.rb#9403 + 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#8948 + # source://prism//lib/prism/node.rb#9398 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ImplicitNode + # def copy: (?value: Prism::node, ?location: Location) -> ImplicitNode # - # source://prism//lib/prism/node.rb#8958 - sig { params(params: T.untyped).returns(Prism::ImplicitNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#9408 + sig { params(value: Prism::Node, location: Prism::Location).returns(Prism::ImplicitNode) } + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#8943 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#9393 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { value: Node, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { value: Prism::node, location: Location } # - # source://prism//lib/prism/node.rb#8970 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#9416 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#8979 + # source://prism//lib/prism/node.rb#9424 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -13988,12 +16013,13 @@ class Prism::ImplicitNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#9000 + # source://prism//lib/prism/node.rb#9445 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#8975 + # source://prism//lib/prism/node.rb#9421 sig { returns(Prism::Node) } def value; end @@ -14005,7 +16031,7 @@ class Prism::ImplicitNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#9010 + # source://prism//lib/prism/node.rb#9455 def type; end end end @@ -14024,63 +16050,72 @@ end # foo, = bar # ^ # -# source://prism//lib/prism/node.rb#9028 +# source://prism//lib/prism/node.rb#9480 class Prism::ImplicitRestNode < ::Prism::Node # def initialize: (Location location) -> void # # @return [ImplicitRestNode] a new instance of ImplicitRestNode # - # source://prism//lib/prism/node.rb#9030 + # source://prism//lib/prism/node.rb#9482 + sig { params(source: Prism::Source, location: Prism::Location).void } def initialize(source, location); 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#9557 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#9037 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#9489 + 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#9042 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#9494 + 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#9052 + # source://prism//lib/prism/node.rb#9504 + 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#9047 + # source://prism//lib/prism/node.rb#9499 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ImplicitRestNode + # def copy: (?location: Location) -> ImplicitRestNode # - # source://prism//lib/prism/node.rb#9057 - sig { params(params: T.untyped).returns(Prism::ImplicitRestNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#9509 + sig { params(location: Prism::Location).returns(Prism::ImplicitRestNode) } + def copy(location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#9042 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#9494 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location } # - # source://prism//lib/prism/node.rb#9068 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#9517 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#9074 + # source://prism//lib/prism/node.rb#9522 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -14098,7 +16133,8 @@ class Prism::ImplicitRestNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#9093 + # source://prism//lib/prism/node.rb#9541 + sig { override.returns(Symbol) } def type; end class << self @@ -14109,7 +16145,7 @@ class Prism::ImplicitRestNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#9103 + # source://prism//lib/prism/node.rb#9551 def type; end end end @@ -14119,98 +16155,124 @@ end # case a; in b then c end # ^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#9112 +# source://prism//lib/prism/node.rb#9566 class Prism::InNode < ::Prism::Node - # def initialize: (Node pattern, StatementsNode? statements, Location in_loc, Location? then_loc, Location location) -> void + # def initialize: (Prism::node pattern, StatementsNode? statements, Location in_loc, Location? then_loc, Location location) -> void # # @return [InNode] a new instance of InNode # - # source://prism//lib/prism/node.rb#9114 + # source://prism//lib/prism/node.rb#9568 + sig do + params( + source: Prism::Source, + pattern: Prism::Node, + statements: T.nilable(Prism::StatementsNode), + in_loc: Prism::Location, + then_loc: T.nilable(Prism::Location), + location: Prism::Location + ).void + end def initialize(source, pattern, statements, in_loc, then_loc, location); 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#9696 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#9125 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#9579 + 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#9130 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#9584 + 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#9143 + # source://prism//lib/prism/node.rb#9597 + 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#9135 + # source://prism//lib/prism/node.rb#9589 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> InNode + # def copy: (?pattern: Prism::node, ?statements: StatementsNode?, ?in_loc: Location, ?then_loc: Location?, ?location: Location) -> InNode # - # source://prism//lib/prism/node.rb#9148 - sig { params(params: T.untyped).returns(Prism::InNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#9602 + sig do + params( + pattern: Prism::Node, + statements: T.nilable(Prism::StatementsNode), + in_loc: Prism::Location, + then_loc: T.nilable(Prism::Location), + location: Prism::Location + ).returns(Prism::InNode) + end + def copy(pattern: T.unsafe(nil), statements: T.unsafe(nil), in_loc: T.unsafe(nil), then_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#9130 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#9584 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { pattern: Node, statements: StatementsNode?, in_loc: Location, then_loc: Location?, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { pattern: Prism::node, statements: StatementsNode?, in_loc: Location, then_loc: Location?, location: Location } # - # source://prism//lib/prism/node.rb#9163 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#9610 + 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 in: () -> String # - # source://prism//lib/prism/node.rb#9193 + # source://prism//lib/prism/node.rb#9641 sig { returns(String) } def in; end # attr_reader in_loc: Location # - # source://prism//lib/prism/node.rb#9174 + # source://prism//lib/prism/node.rb#9621 sig { returns(Prism::Location) } def in_loc; end # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#9203 + # source://prism//lib/prism/node.rb#9651 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end - # attr_reader pattern: Node + # attr_reader pattern: Prism::node # - # source://prism//lib/prism/node.rb#9168 + # source://prism//lib/prism/node.rb#9615 sig { returns(Prism::Node) } def pattern; end # attr_reader statements: StatementsNode? # - # source://prism//lib/prism/node.rb#9171 + # source://prism//lib/prism/node.rb#9618 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end # def then: () -> String? # - # source://prism//lib/prism/node.rb#9198 + # source://prism//lib/prism/node.rb#9646 sig { returns(T.nilable(String)) } def then; end # attr_reader then_loc: Location? # - # source://prism//lib/prism/node.rb#9180 + # source://prism//lib/prism/node.rb#9628 sig { returns(T.nilable(Prism::Location)) } def then_loc; end @@ -14229,7 +16291,8 @@ class Prism::InNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#9232 + # source://prism//lib/prism/node.rb#9680 + sig { override.returns(Symbol) } def type; end class << self @@ -14240,7 +16303,7 @@ class Prism::InNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#9242 + # source://prism//lib/prism/node.rb#9690 def type; end end end @@ -14250,24 +16313,45 @@ end # foo.bar[baz] &&= value # ^^^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#9251 +# source://prism//lib/prism/node.rb#9709 class Prism::IndexAndWriteNode < ::Prism::Node - # def initialize: (Integer flags, Node? receiver, Location? call_operator_loc, Location opening_loc, ArgumentsNode? arguments, Location closing_loc, Node? block, Location operator_loc, Node value, Location location) -> void + # def initialize: (Integer flags, Prism::node? receiver, Location? call_operator_loc, Location opening_loc, ArgumentsNode? arguments, Location closing_loc, Prism::node? block, Location operator_loc, Prism::node value, Location location) -> void # # @return [IndexAndWriteNode] a new instance of IndexAndWriteNode # - # source://prism//lib/prism/node.rb#9253 + # source://prism//lib/prism/node.rb#9711 + sig do + params( + source: Prism::Source, + 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, + location: Prism::Location + ).void + end def initialize(source, flags, receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, operator_loc, value, location); 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#9916 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#9269 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#9727 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end # attr_reader arguments: ArgumentsNode? # - # source://prism//lib/prism/node.rb#9344 + # source://prism//lib/prism/node.rb#9792 sig { returns(T.nilable(Prism::ArgumentsNode)) } def arguments; end @@ -14275,119 +16359,134 @@ class Prism::IndexAndWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9376 + # source://prism//lib/prism/node.rb#9825 sig { returns(T::Boolean) } def attribute_write?; end - # attr_reader block: Node? + # attr_reader block: Prism::node? # - # source://prism//lib/prism/node.rb#9353 + # source://prism//lib/prism/node.rb#9802 sig { returns(T.nilable(Prism::Node)) } def block; end # def call_operator: () -> String? # - # source://prism//lib/prism/node.rb#9386 + # source://prism//lib/prism/node.rb#9835 sig { returns(T.nilable(String)) } def call_operator; end # attr_reader call_operator_loc: Location? # - # source://prism//lib/prism/node.rb#9326 + # source://prism//lib/prism/node.rb#9772 sig { returns(T.nilable(Prism::Location)) } def call_operator_loc; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#9274 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#9732 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#9396 + # source://prism//lib/prism/node.rb#9845 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#9347 + # source://prism//lib/prism/node.rb#9795 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#9289 + # source://prism//lib/prism/node.rb#9747 + 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#9279 + # source://prism//lib/prism/node.rb#9737 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> IndexAndWriteNode + # def copy: (?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, ?location: Location) -> IndexAndWriteNode # - # source://prism//lib/prism/node.rb#9294 - sig { params(params: T.untyped).returns(Prism::IndexAndWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#9752 + sig do + params( + 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, + location: Prism::Location + ).returns(Prism::IndexAndWriteNode) + end + def copy(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), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#9274 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#9732 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, receiver: Node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Node?, operator_loc: Location, value: Node, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { 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, location: Location } # - # source://prism//lib/prism/node.rb#9314 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#9760 + 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#9381 + # source://prism//lib/prism/node.rb#9830 sig { returns(T::Boolean) } def ignore_visibility?; end # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#9406 + # source://prism//lib/prism/node.rb#9855 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String # - # source://prism//lib/prism/node.rb#9391 + # source://prism//lib/prism/node.rb#9840 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#9338 + # source://prism//lib/prism/node.rb#9785 sig { returns(Prism::Location) } def opening_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#9401 + # source://prism//lib/prism/node.rb#9850 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#9356 + # source://prism//lib/prism/node.rb#9805 sig { returns(Prism::Location) } def operator_loc; end - # attr_reader receiver: Node? + # attr_reader receiver: Prism::node? # - # source://prism//lib/prism/node.rb#9323 + # source://prism//lib/prism/node.rb#9769 sig { returns(T.nilable(Prism::Node)) } def receiver; end @@ -14395,7 +16494,7 @@ class Prism::IndexAndWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9366 + # source://prism//lib/prism/node.rb#9815 sig { returns(T::Boolean) } def safe_navigation?; end @@ -14414,12 +16513,13 @@ class Prism::IndexAndWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#9451 + # source://prism//lib/prism/node.rb#9900 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#9362 + # source://prism//lib/prism/node.rb#9812 sig { returns(Prism::Node) } def value; end @@ -14427,15 +16527,15 @@ class Prism::IndexAndWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9371 + # source://prism//lib/prism/node.rb#9820 sig { returns(T::Boolean) } def variable_call?; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#9319 + # source://prism//lib/prism/node.rb#9765 sig { returns(Integer) } def flags; end @@ -14447,7 +16547,7 @@ class Prism::IndexAndWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#9461 + # source://prism//lib/prism/node.rb#9910 def type; end end end @@ -14457,24 +16557,46 @@ end # foo.bar[baz] += value # ^^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#9470 +# source://prism//lib/prism/node.rb#9934 class Prism::IndexOperatorWriteNode < ::Prism::Node - # def initialize: (Integer flags, Node? receiver, Location? call_operator_loc, Location opening_loc, ArgumentsNode? arguments, Location closing_loc, Node? block, Symbol operator, Location operator_loc, Node value, Location location) -> void + # def initialize: (Integer flags, Prism::node? receiver, Location? call_operator_loc, Location opening_loc, ArgumentsNode? arguments, Location closing_loc, Prism::node? block, Symbol operator, Location operator_loc, Prism::node value, Location location) -> void # # @return [IndexOperatorWriteNode] a new instance of IndexOperatorWriteNode # - # source://prism//lib/prism/node.rb#9472 + # source://prism//lib/prism/node.rb#9936 + sig do + params( + source: Prism::Source, + 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: Symbol, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).void + end def initialize(source, flags, receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, operator, operator_loc, value, location); 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#10141 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#9489 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#9953 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end # attr_reader arguments: ArgumentsNode? # - # source://prism//lib/prism/node.rb#9565 + # source://prism//lib/prism/node.rb#10018 sig { returns(T.nilable(Prism::ArgumentsNode)) } def arguments; end @@ -14482,119 +16604,135 @@ class Prism::IndexOperatorWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9600 + # source://prism//lib/prism/node.rb#10054 sig { returns(T::Boolean) } def attribute_write?; end - # attr_reader block: Node? + # attr_reader block: Prism::node? # - # source://prism//lib/prism/node.rb#9574 + # source://prism//lib/prism/node.rb#10028 sig { returns(T.nilable(Prism::Node)) } def block; end # def call_operator: () -> String? # - # source://prism//lib/prism/node.rb#9610 + # source://prism//lib/prism/node.rb#10064 sig { returns(T.nilable(String)) } def call_operator; end # attr_reader call_operator_loc: Location? # - # source://prism//lib/prism/node.rb#9547 + # source://prism//lib/prism/node.rb#9998 sig { returns(T.nilable(Prism::Location)) } def call_operator_loc; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#9494 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#9958 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#9620 + # source://prism//lib/prism/node.rb#10074 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#9568 + # source://prism//lib/prism/node.rb#10021 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#9509 + # source://prism//lib/prism/node.rb#9973 + 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#9499 + # source://prism//lib/prism/node.rb#9963 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> IndexOperatorWriteNode + # def copy: (?flags: Integer, ?receiver: Prism::node?, ?call_operator_loc: Location?, ?opening_loc: Location, ?arguments: ArgumentsNode?, ?closing_loc: Location, ?block: Prism::node?, ?operator: Symbol, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> IndexOperatorWriteNode # - # source://prism//lib/prism/node.rb#9514 - sig { params(params: T.untyped).returns(Prism::IndexOperatorWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#9978 + sig do + params( + 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: Symbol, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).returns(Prism::IndexOperatorWriteNode) + end + def copy(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: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#9494 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#9958 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, receiver: Node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Node?, operator: Symbol, operator_loc: Location, value: Node, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, receiver: Prism::node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Prism::node?, operator: Symbol, operator_loc: Location, value: Prism::node, location: Location } # - # source://prism//lib/prism/node.rb#9535 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#9986 + 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#9605 + # source://prism//lib/prism/node.rb#10059 sig { returns(T::Boolean) } def ignore_visibility?; end # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#9625 + # source://prism//lib/prism/node.rb#10079 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String # - # source://prism//lib/prism/node.rb#9615 + # source://prism//lib/prism/node.rb#10069 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#9559 + # source://prism//lib/prism/node.rb#10011 sig { returns(Prism::Location) } def opening_loc; end # attr_reader operator: Symbol # - # source://prism//lib/prism/node.rb#9577 + # source://prism//lib/prism/node.rb#10031 sig { returns(Symbol) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#9580 + # source://prism//lib/prism/node.rb#10034 sig { returns(Prism::Location) } def operator_loc; end - # attr_reader receiver: Node? + # attr_reader receiver: Prism::node? # - # source://prism//lib/prism/node.rb#9544 + # source://prism//lib/prism/node.rb#9995 sig { returns(T.nilable(Prism::Node)) } def receiver; end @@ -14602,7 +16740,7 @@ class Prism::IndexOperatorWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9590 + # source://prism//lib/prism/node.rb#10044 sig { returns(T::Boolean) } def safe_navigation?; end @@ -14621,12 +16759,13 @@ class Prism::IndexOperatorWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#9671 + # source://prism//lib/prism/node.rb#10125 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#9586 + # source://prism//lib/prism/node.rb#10041 sig { returns(Prism::Node) } def value; end @@ -14634,15 +16773,15 @@ class Prism::IndexOperatorWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9595 + # source://prism//lib/prism/node.rb#10049 sig { returns(T::Boolean) } def variable_call?; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#9540 + # source://prism//lib/prism/node.rb#9991 sig { returns(Integer) } def flags; end @@ -14654,7 +16793,7 @@ class Prism::IndexOperatorWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#9681 + # source://prism//lib/prism/node.rb#10135 def type; end end end @@ -14664,24 +16803,45 @@ end # foo.bar[baz] ||= value # ^^^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#9690 +# source://prism//lib/prism/node.rb#10160 class Prism::IndexOrWriteNode < ::Prism::Node - # def initialize: (Integer flags, Node? receiver, Location? call_operator_loc, Location opening_loc, ArgumentsNode? arguments, Location closing_loc, Node? block, Location operator_loc, Node value, Location location) -> void + # def initialize: (Integer flags, Prism::node? receiver, Location? call_operator_loc, Location opening_loc, ArgumentsNode? arguments, Location closing_loc, Prism::node? block, Location operator_loc, Prism::node value, Location location) -> void # # @return [IndexOrWriteNode] a new instance of IndexOrWriteNode # - # source://prism//lib/prism/node.rb#9692 + # source://prism//lib/prism/node.rb#10162 + sig do + params( + source: Prism::Source, + 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, + location: Prism::Location + ).void + end def initialize(source, flags, receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, operator_loc, value, location); 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#10367 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#9708 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#10178 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end # attr_reader arguments: ArgumentsNode? # - # source://prism//lib/prism/node.rb#9783 + # source://prism//lib/prism/node.rb#10243 sig { returns(T.nilable(Prism::ArgumentsNode)) } def arguments; end @@ -14689,119 +16849,134 @@ class Prism::IndexOrWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9815 + # source://prism//lib/prism/node.rb#10276 sig { returns(T::Boolean) } def attribute_write?; end - # attr_reader block: Node? + # attr_reader block: Prism::node? # - # source://prism//lib/prism/node.rb#9792 + # source://prism//lib/prism/node.rb#10253 sig { returns(T.nilable(Prism::Node)) } def block; end # def call_operator: () -> String? # - # source://prism//lib/prism/node.rb#9825 + # source://prism//lib/prism/node.rb#10286 sig { returns(T.nilable(String)) } def call_operator; end # attr_reader call_operator_loc: Location? # - # source://prism//lib/prism/node.rb#9765 + # source://prism//lib/prism/node.rb#10223 sig { returns(T.nilable(Prism::Location)) } def call_operator_loc; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#9713 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#10183 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#9835 + # source://prism//lib/prism/node.rb#10296 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#9786 + # source://prism//lib/prism/node.rb#10246 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#9728 + # source://prism//lib/prism/node.rb#10198 + 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#9718 + # source://prism//lib/prism/node.rb#10188 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> IndexOrWriteNode + # def copy: (?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, ?location: Location) -> IndexOrWriteNode # - # source://prism//lib/prism/node.rb#9733 - sig { params(params: T.untyped).returns(Prism::IndexOrWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#10203 + sig do + params( + 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, + location: Prism::Location + ).returns(Prism::IndexOrWriteNode) + end + def copy(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), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#9713 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#10183 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, receiver: Node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Node?, operator_loc: Location, value: Node, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { 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, location: Location } # - # source://prism//lib/prism/node.rb#9753 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#10211 + 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#9820 + # source://prism//lib/prism/node.rb#10281 sig { returns(T::Boolean) } def ignore_visibility?; end # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#9845 + # source://prism//lib/prism/node.rb#10306 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String # - # source://prism//lib/prism/node.rb#9830 + # source://prism//lib/prism/node.rb#10291 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#9777 + # source://prism//lib/prism/node.rb#10236 sig { returns(Prism::Location) } def opening_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#9840 + # source://prism//lib/prism/node.rb#10301 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#9795 + # source://prism//lib/prism/node.rb#10256 sig { returns(Prism::Location) } def operator_loc; end - # attr_reader receiver: Node? + # attr_reader receiver: Prism::node? # - # source://prism//lib/prism/node.rb#9762 + # source://prism//lib/prism/node.rb#10220 sig { returns(T.nilable(Prism::Node)) } def receiver; end @@ -14809,7 +16984,7 @@ class Prism::IndexOrWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9805 + # source://prism//lib/prism/node.rb#10266 sig { returns(T::Boolean) } def safe_navigation?; end @@ -14828,12 +17003,13 @@ class Prism::IndexOrWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#9890 + # source://prism//lib/prism/node.rb#10351 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#9801 + # source://prism//lib/prism/node.rb#10263 sig { returns(Prism::Node) } def value; end @@ -14841,15 +17017,15 @@ class Prism::IndexOrWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9810 + # source://prism//lib/prism/node.rb#10271 sig { returns(T::Boolean) } def variable_call?; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#9758 + # source://prism//lib/prism/node.rb#10216 sig { returns(Integer) } def flags; end @@ -14861,7 +17037,7 @@ class Prism::IndexOrWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#9900 + # source://prism//lib/prism/node.rb#10361 def type; end end end @@ -14879,24 +17055,42 @@ end # for foo[bar] in baz do end # ^^^^^^^^ # -# source://prism//lib/prism/node.rb#9917 +# source://prism//lib/prism/node.rb#10393 class Prism::IndexTargetNode < ::Prism::Node - # def initialize: (Integer flags, Node receiver, Location opening_loc, ArgumentsNode? arguments, Location closing_loc, Node? block, Location location) -> void + # def initialize: (Integer flags, Prism::node receiver, Location opening_loc, ArgumentsNode? arguments, Location closing_loc, Prism::node? block, Location location) -> void # # @return [IndexTargetNode] a new instance of IndexTargetNode # - # source://prism//lib/prism/node.rb#9919 + # source://prism//lib/prism/node.rb#10395 + sig do + params( + source: Prism::Source, + flags: Integer, + receiver: Prism::Node, + opening_loc: Prism::Location, + arguments: T.nilable(Prism::ArgumentsNode), + closing_loc: Prism::Location, + block: T.nilable(Prism::Node), + location: Prism::Location + ).void + end def initialize(source, flags, receiver, opening_loc, arguments, closing_loc, block, location); 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#10555 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#9932 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#10408 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end # attr_reader arguments: ArgumentsNode? # - # source://prism//lib/prism/node.rb#9991 + # source://prism//lib/prism/node.rb#10459 sig { returns(T.nilable(Prism::ArgumentsNode)) } def arguments; end @@ -14904,95 +17098,107 @@ class Prism::IndexTargetNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#10014 + # source://prism//lib/prism/node.rb#10482 sig { returns(T::Boolean) } def attribute_write?; end - # attr_reader block: Node? + # attr_reader block: Prism::node? # - # source://prism//lib/prism/node.rb#10000 + # source://prism//lib/prism/node.rb#10469 sig { returns(T.nilable(Prism::Node)) } def block; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#9937 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#10413 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#10029 + # source://prism//lib/prism/node.rb#10497 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#9994 + # source://prism//lib/prism/node.rb#10462 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#9951 + # source://prism//lib/prism/node.rb#10427 + 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#9942 + # source://prism//lib/prism/node.rb#10418 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> IndexTargetNode + # def copy: (?flags: Integer, ?receiver: Prism::node, ?opening_loc: Location, ?arguments: ArgumentsNode?, ?closing_loc: Location, ?block: Prism::node?, ?location: Location) -> IndexTargetNode # - # source://prism//lib/prism/node.rb#9956 - sig { params(params: T.untyped).returns(Prism::IndexTargetNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#10432 + sig do + params( + flags: Integer, + receiver: Prism::Node, + opening_loc: Prism::Location, + arguments: T.nilable(Prism::ArgumentsNode), + closing_loc: Prism::Location, + block: T.nilable(Prism::Node), + location: Prism::Location + ).returns(Prism::IndexTargetNode) + end + def copy(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), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#9937 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#10413 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, receiver: Node, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Node?, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, receiver: Prism::node, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Prism::node?, location: Location } # - # source://prism//lib/prism/node.rb#9973 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#10440 + 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#10019 + # source://prism//lib/prism/node.rb#10487 sig { returns(T::Boolean) } def ignore_visibility?; end # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#10034 + # source://prism//lib/prism/node.rb#10502 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String # - # source://prism//lib/prism/node.rb#10024 + # source://prism//lib/prism/node.rb#10492 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#9985 + # source://prism//lib/prism/node.rb#10452 sig { returns(Prism::Location) } def opening_loc; end - # attr_reader receiver: Node + # attr_reader receiver: Prism::node # - # source://prism//lib/prism/node.rb#9982 + # source://prism//lib/prism/node.rb#10449 sig { returns(Prism::Node) } def receiver; end @@ -15000,7 +17206,7 @@ class Prism::IndexTargetNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#10004 + # source://prism//lib/prism/node.rb#10472 sig { returns(T::Boolean) } def safe_navigation?; end @@ -15019,22 +17225,23 @@ class Prism::IndexTargetNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#10071 + # source://prism//lib/prism/node.rb#10539 + sig { override.returns(Symbol) } def type; end # def variable_call?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#10009 + # source://prism//lib/prism/node.rb#10477 sig { returns(T::Boolean) } def variable_call?; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#9978 + # source://prism//lib/prism/node.rb#10445 sig { returns(Integer) } def flags; end @@ -15046,7 +17253,7 @@ class Prism::IndexTargetNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#10081 + # source://prism//lib/prism/node.rb#10549 def type; end end end @@ -15054,11 +17261,12 @@ 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#275 +# source://prism//lib/prism/parse_result.rb#310 class Prism::InlineComment < ::Prism::Comment # Returns a string representation of this comment. # - # source://prism//lib/prism/parse_result.rb#283 + # source://prism//lib/prism/parse_result.rb#318 + sig { returns(String) } def inspect; end # Returns true if this comment happens on the same line as other code and @@ -15066,7 +17274,7 @@ class Prism::InlineComment < ::Prism::Comment # # @return [Boolean] # - # source://prism//lib/prism/parse_result.rb#278 + # source://prism//lib/prism/parse_result.rb#313 sig { override.returns(T::Boolean) } def trailing?; end end @@ -15076,89 +17284,115 @@ end # @target &&= value # ^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#10090 +# source://prism//lib/prism/node.rb#10570 class Prism::InstanceVariableAndWriteNode < ::Prism::Node - # def initialize: (Symbol name, Location name_loc, Location operator_loc, Node value, Location location) -> void + # def initialize: (Symbol name, Location name_loc, Location operator_loc, Prism::node value, Location location) -> void # # @return [InstanceVariableAndWriteNode] a new instance of InstanceVariableAndWriteNode # - # source://prism//lib/prism/node.rb#10092 + # source://prism//lib/prism/node.rb#10572 + sig do + params( + source: Prism::Source, + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).void + end def initialize(source, name, name_loc, operator_loc, value, location); 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#10681 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#10103 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#10583 + 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#10108 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#10588 + 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#10118 + # source://prism//lib/prism/node.rb#10598 + 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#10113 + # source://prism//lib/prism/node.rb#10593 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> InstanceVariableAndWriteNode + # def copy: (?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> InstanceVariableAndWriteNode # - # source://prism//lib/prism/node.rb#10123 - sig { params(params: T.untyped).returns(Prism::InstanceVariableAndWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#10603 + sig do + params( + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).returns(Prism::InstanceVariableAndWriteNode) + end + def copy(name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#10108 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#10588 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Node, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node, location: Location } # - # source://prism//lib/prism/node.rb#10138 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#10611 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end - # source://prism//lib/prism/desugar_compiler.rb#179 + # source://prism//lib/prism/desugar_compiler.rb#181 def desugar; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#10167 + # source://prism//lib/prism/node.rb#10641 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#10143 + # source://prism//lib/prism/node.rb#10616 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#10146 + # source://prism//lib/prism/node.rb#10619 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#10162 + # source://prism//lib/prism/node.rb#10636 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#10152 + # source://prism//lib/prism/node.rb#10626 sig { returns(Prism::Location) } def operator_loc; end @@ -15177,12 +17411,13 @@ class Prism::InstanceVariableAndWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#10191 + # source://prism//lib/prism/node.rb#10665 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#10158 + # source://prism//lib/prism/node.rb#10633 sig { returns(Prism::Node) } def value; end @@ -15194,7 +17429,7 @@ class Prism::InstanceVariableAndWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#10201 + # source://prism//lib/prism/node.rb#10675 def type; end end end @@ -15204,89 +17439,117 @@ end # @target += value # ^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#10210 +# source://prism//lib/prism/node.rb#10694 class Prism::InstanceVariableOperatorWriteNode < ::Prism::Node - # def initialize: (Symbol name, Location name_loc, Location operator_loc, Node value, Symbol operator, Location location) -> void + # def initialize: (Symbol name, Location name_loc, Location operator_loc, Prism::node value, Symbol operator, Location location) -> void # # @return [InstanceVariableOperatorWriteNode] a new instance of InstanceVariableOperatorWriteNode # - # source://prism//lib/prism/node.rb#10212 + # source://prism//lib/prism/node.rb#10696 + sig do + params( + source: Prism::Source, + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + operator: Symbol, + location: Prism::Location + ).void + end def initialize(source, name, name_loc, operator_loc, value, operator, location); 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#10805 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#10224 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#10708 + 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#10229 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#10713 + 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#10239 + # source://prism//lib/prism/node.rb#10723 + 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#10234 + # source://prism//lib/prism/node.rb#10718 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> InstanceVariableOperatorWriteNode + # def copy: (?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?operator: Symbol, ?location: Location) -> InstanceVariableOperatorWriteNode # - # source://prism//lib/prism/node.rb#10244 - sig { params(params: T.untyped).returns(Prism::InstanceVariableOperatorWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#10728 + sig do + params( + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + operator: Symbol, + location: Prism::Location + ).returns(Prism::InstanceVariableOperatorWriteNode) + end + def copy(name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil), operator: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#10229 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#10713 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Node, operator: Symbol, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node, operator: Symbol, location: Location } # - # source://prism//lib/prism/node.rb#10260 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#10736 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end - # source://prism//lib/prism/desugar_compiler.rb#191 + # source://prism//lib/prism/desugar_compiler.rb#193 def desugar; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#10287 + # source://prism//lib/prism/node.rb#10764 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#10265 + # source://prism//lib/prism/node.rb#10741 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#10268 + # source://prism//lib/prism/node.rb#10744 sig { returns(Prism::Location) } def name_loc; end # attr_reader operator: Symbol # - # source://prism//lib/prism/node.rb#10283 + # source://prism//lib/prism/node.rb#10761 sig { returns(Symbol) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#10274 + # source://prism//lib/prism/node.rb#10751 sig { returns(Prism::Location) } def operator_loc; end @@ -15305,12 +17568,13 @@ class Prism::InstanceVariableOperatorWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#10312 + # source://prism//lib/prism/node.rb#10789 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#10280 + # source://prism//lib/prism/node.rb#10758 sig { returns(Prism::Node) } def value; end @@ -15322,7 +17586,7 @@ class Prism::InstanceVariableOperatorWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#10322 + # source://prism//lib/prism/node.rb#10799 def type; end end end @@ -15332,89 +17596,115 @@ end # @target ||= value # ^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#10331 +# source://prism//lib/prism/node.rb#10819 class Prism::InstanceVariableOrWriteNode < ::Prism::Node - # def initialize: (Symbol name, Location name_loc, Location operator_loc, Node value, Location location) -> void + # def initialize: (Symbol name, Location name_loc, Location operator_loc, Prism::node value, Location location) -> void # # @return [InstanceVariableOrWriteNode] a new instance of InstanceVariableOrWriteNode # - # source://prism//lib/prism/node.rb#10333 + # source://prism//lib/prism/node.rb#10821 + sig do + params( + source: Prism::Source, + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).void + end def initialize(source, name, name_loc, operator_loc, value, location); 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#10930 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#10344 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#10832 + 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#10349 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#10837 + 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#10359 + # source://prism//lib/prism/node.rb#10847 + 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#10354 + # source://prism//lib/prism/node.rb#10842 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> InstanceVariableOrWriteNode + # def copy: (?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> InstanceVariableOrWriteNode # - # source://prism//lib/prism/node.rb#10364 - sig { params(params: T.untyped).returns(Prism::InstanceVariableOrWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#10852 + sig do + params( + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).returns(Prism::InstanceVariableOrWriteNode) + end + def copy(name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#10349 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#10837 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Node, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node, location: Location } # - # source://prism//lib/prism/node.rb#10379 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#10860 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end - # source://prism//lib/prism/desugar_compiler.rb#185 + # source://prism//lib/prism/desugar_compiler.rb#187 def desugar; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#10408 + # source://prism//lib/prism/node.rb#10890 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#10384 + # source://prism//lib/prism/node.rb#10865 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#10387 + # source://prism//lib/prism/node.rb#10868 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#10403 + # source://prism//lib/prism/node.rb#10885 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#10393 + # source://prism//lib/prism/node.rb#10875 sig { returns(Prism::Location) } def operator_loc; end @@ -15433,12 +17723,13 @@ class Prism::InstanceVariableOrWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#10432 + # source://prism//lib/prism/node.rb#10914 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#10399 + # source://prism//lib/prism/node.rb#10882 sig { returns(Prism::Node) } def value; end @@ -15450,7 +17741,7 @@ class Prism::InstanceVariableOrWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#10442 + # source://prism//lib/prism/node.rb#10924 def type; end end end @@ -15460,63 +17751,72 @@ end # @foo # ^^^^ # -# source://prism//lib/prism/node.rb#10451 +# source://prism//lib/prism/node.rb#10943 class Prism::InstanceVariableReadNode < ::Prism::Node # def initialize: (Symbol name, Location location) -> void # # @return [InstanceVariableReadNode] a new instance of InstanceVariableReadNode # - # source://prism//lib/prism/node.rb#10453 + # source://prism//lib/prism/node.rb#10945 + sig { params(source: Prism::Source, name: Symbol, location: Prism::Location).void } def initialize(source, name, location); 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#11029 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#10461 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#10953 + 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#10466 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#10958 + 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#10476 + # source://prism//lib/prism/node.rb#10968 + 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#10471 + # source://prism//lib/prism/node.rb#10963 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> InstanceVariableReadNode + # def copy: (?name: Symbol, ?location: Location) -> InstanceVariableReadNode # - # source://prism//lib/prism/node.rb#10481 - sig { params(params: T.untyped).returns(Prism::InstanceVariableReadNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#10973 + sig { params(name: Symbol, location: Prism::Location).returns(Prism::InstanceVariableReadNode) } + def copy(name: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#10466 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#10958 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location } # - # source://prism//lib/prism/node.rb#10493 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#10981 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#10506 + # source://prism//lib/prism/node.rb#10993 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); 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). @@ -15525,7 +17825,7 @@ class Prism::InstanceVariableReadNode < ::Prism::Node # # @_test # name `:@_test` # - # source://prism//lib/prism/node.rb#10502 + # source://prism//lib/prism/node.rb#10990 sig { returns(Symbol) } def name; end @@ -15544,7 +17844,8 @@ class Prism::InstanceVariableReadNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#10526 + # source://prism//lib/prism/node.rb#11013 + sig { override.returns(Symbol) } def type; end class << self @@ -15555,7 +17856,7 @@ class Prism::InstanceVariableReadNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#10536 + # source://prism//lib/prism/node.rb#11023 def type; end end end @@ -15565,68 +17866,77 @@ end # @foo, @bar = baz # ^^^^ ^^^^ # -# source://prism//lib/prism/node.rb#10545 +# source://prism//lib/prism/node.rb#11039 class Prism::InstanceVariableTargetNode < ::Prism::Node # def initialize: (Symbol name, Location location) -> void # # @return [InstanceVariableTargetNode] a new instance of InstanceVariableTargetNode # - # source://prism//lib/prism/node.rb#10547 + # source://prism//lib/prism/node.rb#11041 + sig { params(source: Prism::Source, name: Symbol, location: Prism::Location).void } def initialize(source, name, location); end - # def accept: (Visitor visitor) -> void + # 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#10555 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#11121 + def ===(other); end + + # def accept: (Visitor visitor) -> void + # + # source://prism//lib/prism/node.rb#11049 + 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#10560 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#11054 + 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#10570 + # source://prism//lib/prism/node.rb#11064 + 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#10565 + # source://prism//lib/prism/node.rb#11059 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> InstanceVariableTargetNode + # def copy: (?name: Symbol, ?location: Location) -> InstanceVariableTargetNode # - # source://prism//lib/prism/node.rb#10575 - sig { params(params: T.untyped).returns(Prism::InstanceVariableTargetNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#11069 + sig { params(name: Symbol, location: Prism::Location).returns(Prism::InstanceVariableTargetNode) } + def copy(name: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#10560 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#11054 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location } # - # source://prism//lib/prism/node.rb#10587 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#11077 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#10596 + # source://prism//lib/prism/node.rb#11085 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#10592 + # source://prism//lib/prism/node.rb#11082 sig { returns(Symbol) } def name; end @@ -15645,7 +17955,8 @@ class Prism::InstanceVariableTargetNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#10616 + # source://prism//lib/prism/node.rb#11105 + sig { override.returns(Symbol) } def type; end class << self @@ -15656,7 +17967,7 @@ class Prism::InstanceVariableTargetNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#10626 + # source://prism//lib/prism/node.rb#11115 def type; end end end @@ -15666,86 +17977,122 @@ end # @foo = 1 # ^^^^^^^^ # -# source://prism//lib/prism/node.rb#10635 +# source://prism//lib/prism/node.rb#11131 class Prism::InstanceVariableWriteNode < ::Prism::Node - # def initialize: (Symbol name, Location name_loc, Node value, Location operator_loc, Location location) -> void + # def initialize: (Symbol name, Location name_loc, Prism::node value, Location operator_loc, Location location) -> void # # @return [InstanceVariableWriteNode] a new instance of InstanceVariableWriteNode # - # source://prism//lib/prism/node.rb#10637 + # source://prism//lib/prism/node.rb#11133 + sig do + params( + source: Prism::Source, + name: Symbol, + name_loc: Prism::Location, + value: Prism::Node, + operator_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, name, name_loc, value, operator_loc, location); 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#11258 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#10648 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#11144 + 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#10653 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#11149 + 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#10663 + # source://prism//lib/prism/node.rb#11159 + 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#10658 + # source://prism//lib/prism/node.rb#11154 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> InstanceVariableWriteNode + # def copy: (?name: Symbol, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location, ?location: Location) -> InstanceVariableWriteNode # - # source://prism//lib/prism/node.rb#10668 - sig { params(params: T.untyped).returns(Prism::InstanceVariableWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#11164 + sig do + params( + name: Symbol, + name_loc: Prism::Location, + value: Prism::Node, + operator_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::InstanceVariableWriteNode) + end + def copy(name: T.unsafe(nil), name_loc: T.unsafe(nil), value: T.unsafe(nil), operator_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#10653 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#11149 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, value: Node, operator_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, name_loc: Location, value: Prism::node, operator_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#10683 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#11172 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#10712 + # source://prism//lib/prism/node.rb#11218 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end - # attr_reader name: Symbol + # 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` # - # source://prism//lib/prism/node.rb#10688 + # @_foo = "bar" # name `@_foo` + # + # source://prism//lib/prism/node.rb#11181 sig { returns(Symbol) } def name; end - # attr_reader name_loc: Location + # The location of the variable name. + # + # @_x = 1 + # ^^^ # - # source://prism//lib/prism/node.rb#10691 + # source://prism//lib/prism/node.rb#11187 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#10707 + # source://prism//lib/prism/node.rb#11213 sig { returns(String) } def operator; end - # attr_reader operator_loc: Location + # The location of the `=` operator. # - # source://prism//lib/prism/node.rb#10700 + # @x = y + # ^ + # + # source://prism//lib/prism/node.rb#11206 sig { returns(Prism::Location) } def operator_loc; end @@ -15764,12 +18111,19 @@ class Prism::InstanceVariableWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#10736 + # source://prism//lib/prism/node.rb#11242 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # 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#10697 + # source://prism//lib/prism/node.rb#11200 sig { returns(Prism::Node) } def value; end @@ -15781,34 +18135,34 @@ class Prism::InstanceVariableWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#10746 + # source://prism//lib/prism/node.rb#11252 def type; end end end # Flags for integer nodes that correspond to the base of the integer. # -# source://prism//lib/prism/node.rb#19277 +# source://prism//lib/prism/node.rb#20373 module Prism::IntegerBaseFlags; end # 0b prefix # -# source://prism//lib/prism/node.rb#19279 +# source://prism//lib/prism/node.rb#20375 Prism::IntegerBaseFlags::BINARY = T.let(T.unsafe(nil), Integer) # 0d or no prefix # -# source://prism//lib/prism/node.rb#19282 +# source://prism//lib/prism/node.rb#20378 Prism::IntegerBaseFlags::DECIMAL = T.let(T.unsafe(nil), Integer) # 0x prefix # -# source://prism//lib/prism/node.rb#19288 +# source://prism//lib/prism/node.rb#20384 Prism::IntegerBaseFlags::HEXADECIMAL = T.let(T.unsafe(nil), Integer) # 0o or 0 prefix # -# source://prism//lib/prism/node.rb#19285 +# source://prism//lib/prism/node.rb#20381 Prism::IntegerBaseFlags::OCTAL = T.let(T.unsafe(nil), Integer) # Represents an integer number literal. @@ -15816,94 +18170,103 @@ Prism::IntegerBaseFlags::OCTAL = T.let(T.unsafe(nil), Integer) # 1 # ^ # -# source://prism//lib/prism/node.rb#10755 +# source://prism//lib/prism/node.rb#11271 class Prism::IntegerNode < ::Prism::Node - # def initialize: (Integer flags, Location location) -> void + # def initialize: (Integer flags, Integer value, Location location) -> void # # @return [IntegerNode] a new instance of IntegerNode # - # source://prism//lib/prism/node.rb#10757 - def initialize(source, flags, location); end + # source://prism//lib/prism/node.rb#11273 + sig { params(source: Prism::Source, flags: Integer, value: Integer, location: Prism::Location).void } + def initialize(source, flags, value, location); 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#11380 + def ===(other); end # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#10765 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#11282 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end # def binary?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#10807 + # source://prism//lib/prism/node.rb#11322 sig { returns(T::Boolean) } def binary?; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#10770 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#11287 + 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#10780 + # source://prism//lib/prism/node.rb#11297 + 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#10775 + # source://prism//lib/prism/node.rb#11292 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> IntegerNode + # def copy: (?flags: Integer, ?value: Integer, ?location: Location) -> IntegerNode # - # source://prism//lib/prism/node.rb#10785 - sig { params(params: T.untyped).returns(Prism::IntegerNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#11302 + sig { params(flags: Integer, value: Integer, location: Prism::Location).returns(Prism::IntegerNode) } + def copy(flags: T.unsafe(nil), value: T.unsafe(nil), location: T.unsafe(nil)); end # def decimal?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#10812 + # source://prism//lib/prism/node.rb#11327 sig { returns(T::Boolean) } def decimal?; end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#10770 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#11287 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, value: Integer, location: Location } # - # source://prism//lib/prism/node.rb#10797 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#11310 + 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#10822 + # source://prism//lib/prism/node.rb#11337 sig { returns(T::Boolean) } def hexadecimal?; end # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#10827 + # source://prism//lib/prism/node.rb#11342 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def octal?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#10817 + # source://prism//lib/prism/node.rb#11332 sig { returns(T::Boolean) } def octal?; end @@ -15922,19 +18285,21 @@ class Prism::IntegerNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#10848 + # source://prism//lib/prism/node.rb#11364 + sig { override.returns(Symbol) } def type; end - # Returns the value of the node as a Ruby Integer. + # The value of the integer literal as a number. # - # source://prism//lib/prism/node_ext.rb#76 + # source://prism//lib/prism/node.rb#11319 + sig { returns(Integer) } def value; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#10802 + # source://prism//lib/prism/node.rb#11315 sig { returns(Integer) } def flags; end @@ -15946,7 +18311,7 @@ class Prism::IntegerNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#10858 + # source://prism//lib/prism/node.rb#11374 def type; end end end @@ -15956,87 +18321,109 @@ end # if /foo #{bar} baz/ then end # ^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#10867 +# source://prism//lib/prism/node.rb#11391 class Prism::InterpolatedMatchLastLineNode < ::Prism::Node include ::Prism::RegularExpressionOptions - # def initialize: (Integer flags, Location opening_loc, Array[Node] parts, Location closing_loc, Location location) -> void + # def initialize: (Integer flags, Location opening_loc, Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode] parts, Location closing_loc, Location location) -> void # # @return [InterpolatedMatchLastLineNode] a new instance of InterpolatedMatchLastLineNode # - # source://prism//lib/prism/node.rb#10869 + # source://prism//lib/prism/node.rb#11393 + sig do + params( + source: Prism::Source, + flags: Integer, + opening_loc: Prism::Location, + parts: T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode)], + closing_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, flags, opening_loc, parts, closing_loc, location); 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#11568 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#10880 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#11404 + 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#10970 + # source://prism//lib/prism/node.rb#11488 sig { returns(T::Boolean) } def ascii_8bit?; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#10890 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#11414 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#11005 + # source://prism//lib/prism/node.rb#11523 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#10938 + # source://prism//lib/prism/node.rb#11456 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#10900 + # source://prism//lib/prism/node.rb#11424 + 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#10895 + # source://prism//lib/prism/node.rb#11419 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> InterpolatedMatchLastLineNode + # def copy: (?flags: Integer, ?opening_loc: Location, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], ?closing_loc: Location, ?location: Location) -> InterpolatedMatchLastLineNode # - # source://prism//lib/prism/node.rb#10905 - sig { params(params: T.untyped).returns(Prism::InterpolatedMatchLastLineNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#11429 + sig do + params( + flags: Integer, + opening_loc: Prism::Location, + parts: T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode)], + closing_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::InterpolatedMatchLastLineNode) + end + def copy(flags: T.unsafe(nil), opening_loc: T.unsafe(nil), parts: T.unsafe(nil), closing_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#10890 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#11414 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, opening_loc: Location, parts: Array[Node], closing_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, opening_loc: Location, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], closing_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#10920 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#11437 + 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#10965 + # source://prism//lib/prism/node.rb#11483 sig { returns(T::Boolean) } def euc_jp?; end @@ -16044,15 +18431,18 @@ class Prism::InterpolatedMatchLastLineNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#10950 + # source://prism//lib/prism/node.rb#11468 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#10990 + # source://prism//lib/prism/node.rb#11508 sig { returns(T::Boolean) } def forced_binary_encoding?; end @@ -16060,7 +18450,7 @@ class Prism::InterpolatedMatchLastLineNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#10995 + # source://prism//lib/prism/node.rb#11513 sig { returns(T::Boolean) } def forced_us_ascii_encoding?; end @@ -16068,7 +18458,7 @@ class Prism::InterpolatedMatchLastLineNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#10985 + # source://prism//lib/prism/node.rb#11503 sig { returns(T::Boolean) } def forced_utf8_encoding?; end @@ -16076,20 +18466,21 @@ class Prism::InterpolatedMatchLastLineNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#10945 + # source://prism//lib/prism/node.rb#11463 sig { returns(T::Boolean) } def ignore_case?; end # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#11010 + # source://prism//lib/prism/node.rb#11528 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def multi_line?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#10955 + # source://prism//lib/prism/node.rb#11473 sig { returns(T::Boolean) } def multi_line?; end @@ -16097,29 +18488,32 @@ class Prism::InterpolatedMatchLastLineNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#10960 + # source://prism//lib/prism/node.rb#11478 sig { returns(T::Boolean) } def once?; end # def opening: () -> String # - # source://prism//lib/prism/node.rb#11000 + # source://prism//lib/prism/node.rb#11518 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#10929 + # source://prism//lib/prism/node.rb#11446 sig { returns(Prism::Location) } def opening_loc; end - # attr_reader parts: Array[Node] + sig { returns(Integer) } + def options; end + + # attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode] # - # source://prism//lib/prism/node.rb#10935 - sig { returns(T::Array[Prism::Node]) } + # source://prism//lib/prism/node.rb#11453 + sig { returns(T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode)]) } def parts; end - # source://prism//lib/prism/node.rb#10884 + # source://prism//lib/prism/node.rb#11408 def set_newline_flag(newline_marked); end # Sometimes you want to check an instance of a node against a list of @@ -16137,14 +18531,15 @@ class Prism::InterpolatedMatchLastLineNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#11034 + # source://prism//lib/prism/node.rb#11552 + sig { override.returns(Symbol) } def type; end # def utf_8?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#10980 + # source://prism//lib/prism/node.rb#11498 sig { returns(T::Boolean) } def utf_8?; end @@ -16152,15 +18547,15 @@ class Prism::InterpolatedMatchLastLineNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#10975 + # source://prism//lib/prism/node.rb#11493 sig { returns(T::Boolean) } def windows_31j?; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#10925 + # source://prism//lib/prism/node.rb#11442 sig { returns(Integer) } def flags; end @@ -16172,7 +18567,7 @@ class Prism::InterpolatedMatchLastLineNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#11044 + # source://prism//lib/prism/node.rb#11562 def type; end end end @@ -16182,87 +18577,109 @@ end # /foo #{bar} baz/ # ^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#11053 +# source://prism//lib/prism/node.rb#11582 class Prism::InterpolatedRegularExpressionNode < ::Prism::Node include ::Prism::RegularExpressionOptions - # def initialize: (Integer flags, Location opening_loc, Array[Node] parts, Location closing_loc, Location location) -> void + # def initialize: (Integer flags, Location opening_loc, Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode] parts, Location closing_loc, Location location) -> void # # @return [InterpolatedRegularExpressionNode] a new instance of InterpolatedRegularExpressionNode # - # source://prism//lib/prism/node.rb#11055 + # source://prism//lib/prism/node.rb#11584 + sig do + params( + source: Prism::Source, + flags: Integer, + opening_loc: Prism::Location, + parts: T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode)], + closing_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, flags, opening_loc, parts, closing_loc, location); 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#11759 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#11066 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#11595 + 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#11156 + # source://prism//lib/prism/node.rb#11679 sig { returns(T::Boolean) } def ascii_8bit?; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#11076 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#11605 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#11191 + # source://prism//lib/prism/node.rb#11714 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#11124 + # source://prism//lib/prism/node.rb#11647 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#11086 + # source://prism//lib/prism/node.rb#11615 + 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#11081 + # source://prism//lib/prism/node.rb#11610 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> InterpolatedRegularExpressionNode + # def copy: (?flags: Integer, ?opening_loc: Location, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], ?closing_loc: Location, ?location: Location) -> InterpolatedRegularExpressionNode # - # source://prism//lib/prism/node.rb#11091 - sig { params(params: T.untyped).returns(Prism::InterpolatedRegularExpressionNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#11620 + sig do + params( + flags: Integer, + opening_loc: Prism::Location, + parts: T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode)], + closing_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::InterpolatedRegularExpressionNode) + end + def copy(flags: T.unsafe(nil), opening_loc: T.unsafe(nil), parts: T.unsafe(nil), closing_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#11076 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#11605 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, opening_loc: Location, parts: Array[Node], closing_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, opening_loc: Location, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], closing_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#11106 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#11628 + 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#11151 + # source://prism//lib/prism/node.rb#11674 sig { returns(T::Boolean) } def euc_jp?; end @@ -16270,15 +18687,18 @@ class Prism::InterpolatedRegularExpressionNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#11136 + # source://prism//lib/prism/node.rb#11659 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#11176 + # source://prism//lib/prism/node.rb#11699 sig { returns(T::Boolean) } def forced_binary_encoding?; end @@ -16286,7 +18706,7 @@ class Prism::InterpolatedRegularExpressionNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#11181 + # source://prism//lib/prism/node.rb#11704 sig { returns(T::Boolean) } def forced_us_ascii_encoding?; end @@ -16294,7 +18714,7 @@ class Prism::InterpolatedRegularExpressionNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#11171 + # source://prism//lib/prism/node.rb#11694 sig { returns(T::Boolean) } def forced_utf8_encoding?; end @@ -16302,20 +18722,21 @@ class Prism::InterpolatedRegularExpressionNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#11131 + # source://prism//lib/prism/node.rb#11654 sig { returns(T::Boolean) } def ignore_case?; end # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#11196 + # source://prism//lib/prism/node.rb#11719 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def multi_line?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#11141 + # source://prism//lib/prism/node.rb#11664 sig { returns(T::Boolean) } def multi_line?; end @@ -16323,29 +18744,32 @@ class Prism::InterpolatedRegularExpressionNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#11146 + # source://prism//lib/prism/node.rb#11669 sig { returns(T::Boolean) } def once?; end # def opening: () -> String # - # source://prism//lib/prism/node.rb#11186 + # source://prism//lib/prism/node.rb#11709 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#11115 + # source://prism//lib/prism/node.rb#11637 sig { returns(Prism::Location) } def opening_loc; end - # attr_reader parts: Array[Node] + sig { returns(Integer) } + def options; end + + # attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode] # - # source://prism//lib/prism/node.rb#11121 - sig { returns(T::Array[Prism::Node]) } + # source://prism//lib/prism/node.rb#11644 + sig { returns(T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode)]) } def parts; end - # source://prism//lib/prism/node.rb#11070 + # source://prism//lib/prism/node.rb#11599 def set_newline_flag(newline_marked); end # Sometimes you want to check an instance of a node against a list of @@ -16363,14 +18787,15 @@ class Prism::InterpolatedRegularExpressionNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#11220 + # source://prism//lib/prism/node.rb#11743 + sig { override.returns(Symbol) } def type; end # def utf_8?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#11166 + # source://prism//lib/prism/node.rb#11689 sig { returns(T::Boolean) } def utf_8?; end @@ -16378,15 +18803,15 @@ class Prism::InterpolatedRegularExpressionNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#11161 + # source://prism//lib/prism/node.rb#11684 sig { returns(T::Boolean) } def windows_31j?; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#11111 + # source://prism//lib/prism/node.rb#11633 sig { returns(Integer) } def flags; end @@ -16398,7 +18823,7 @@ class Prism::InterpolatedRegularExpressionNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#11230 + # source://prism//lib/prism/node.rb#11753 def type; end end end @@ -16408,98 +18833,145 @@ end # "foo #{bar} baz" # ^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#11239 +# source://prism//lib/prism/node.rb#11773 class Prism::InterpolatedStringNode < ::Prism::Node include ::Prism::HeredocQuery - # def initialize: (Location? opening_loc, Array[Node] parts, Location? closing_loc, Location location) -> void + # def initialize: (Integer flags, Location? opening_loc, Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode] parts, Location? closing_loc, Location location) -> void # # @return [InterpolatedStringNode] a new instance of InterpolatedStringNode # - # source://prism//lib/prism/node.rb#11241 - def initialize(source, opening_loc, parts, closing_loc, location); end + # source://prism//lib/prism/node.rb#11775 + sig do + params( + source: Prism::Source, + 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), + location: Prism::Location + ).void + end + def initialize(source, flags, opening_loc, parts, closing_loc, location); 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#11917 + def ===(other); end # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#11251 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#11786 + 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#11261 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#11796 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String? # - # source://prism//lib/prism/node.rb#11328 + # source://prism//lib/prism/node.rb#11872 sig { returns(T.nilable(String)) } def closing; end # attr_reader closing_loc: Location? # - # source://prism//lib/prism/node.rb#11310 + # source://prism//lib/prism/node.rb#11844 sig { returns(T.nilable(Prism::Location)) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#11271 + # source://prism//lib/prism/node.rb#11806 + 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#11266 + # source://prism//lib/prism/node.rb#11801 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> InterpolatedStringNode + # def copy: (?flags: Integer, ?opening_loc: Location?, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode], ?closing_loc: Location?, ?location: Location) -> InterpolatedStringNode # - # source://prism//lib/prism/node.rb#11276 - sig { params(params: T.untyped).returns(Prism::InterpolatedStringNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#11811 + sig do + params( + 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), + location: Prism::Location + ).returns(Prism::InterpolatedStringNode) + end + def copy(flags: T.unsafe(nil), opening_loc: T.unsafe(nil), parts: T.unsafe(nil), closing_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#11261 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#11796 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { opening_loc: Location?, parts: Array[Node], closing_loc: Location?, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, opening_loc: Location?, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode], closing_loc: Location?, location: Location } # - # source://prism//lib/prism/node.rb#11290 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#11819 + 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#11857 + sig { returns(T::Boolean) } + def frozen?; end + + sig { returns(T::Boolean) } + def heredoc?; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#11333 + # source://prism//lib/prism/node.rb#11877 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end + # def mutable?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#11862 + sig { returns(T::Boolean) } + def mutable?; end + # def opening: () -> String? # - # source://prism//lib/prism/node.rb#11323 + # source://prism//lib/prism/node.rb#11867 sig { returns(T.nilable(String)) } def opening; end # attr_reader opening_loc: Location? # - # source://prism//lib/prism/node.rb#11295 + # source://prism//lib/prism/node.rb#11828 sig { returns(T.nilable(Prism::Location)) } def opening_loc; end - # attr_reader parts: Array[Node] + # attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode | InterpolatedStringNode] # - # source://prism//lib/prism/node.rb#11307 - sig { returns(T::Array[Prism::Node]) } + # source://prism//lib/prism/node.rb#11841 + sig do + returns(T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode, Prism::InterpolatedStringNode)]) + end def parts; end - # source://prism//lib/prism/node.rb#11255 + # source://prism//lib/prism/node.rb#11790 def set_newline_flag(newline_marked); end # Sometimes you want to check an instance of a node against a list of @@ -16517,9 +18989,18 @@ class Prism::InterpolatedStringNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#11355 + # source://prism//lib/prism/node.rb#11901 + sig { override.returns(Symbol) } def type; end + protected + + # protected attr_reader flags: Integer + # + # source://prism//lib/prism/node.rb#11824 + sig { returns(Integer) } + def flags; end + class << self # 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. @@ -16528,106 +19009,141 @@ class Prism::InterpolatedStringNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#11365 + # source://prism//lib/prism/node.rb#11911 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#20388 +module Prism::InterpolatedStringNodeFlags; end + +# source://prism//lib/prism/node.rb#20390 +Prism::InterpolatedStringNodeFlags::FROZEN = T.let(T.unsafe(nil), Integer) + +# source://prism//lib/prism/node.rb#20393 +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#11374 +# source://prism//lib/prism/node.rb#11931 class Prism::InterpolatedSymbolNode < ::Prism::Node - # def initialize: (Location? opening_loc, Array[Node] parts, Location? closing_loc, Location location) -> void + # def initialize: (Location? opening_loc, Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode] parts, Location? closing_loc, Location location) -> void # # @return [InterpolatedSymbolNode] a new instance of InterpolatedSymbolNode # - # source://prism//lib/prism/node.rb#11376 + # source://prism//lib/prism/node.rb#11933 + sig do + params( + source: Prism::Source, + opening_loc: T.nilable(Prism::Location), + parts: T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode)], + closing_loc: T.nilable(Prism::Location), + location: Prism::Location + ).void + end def initialize(source, opening_loc, parts, closing_loc, location); 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#12058 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#11386 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#11943 + 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#11396 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#11953 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String? # - # source://prism//lib/prism/node.rb#11463 + # source://prism//lib/prism/node.rb#12015 sig { returns(T.nilable(String)) } def closing; end # attr_reader closing_loc: Location? # - # source://prism//lib/prism/node.rb#11445 + # source://prism//lib/prism/node.rb#11997 sig { returns(T.nilable(Prism::Location)) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#11406 + # source://prism//lib/prism/node.rb#11963 + 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#11401 + # source://prism//lib/prism/node.rb#11958 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> InterpolatedSymbolNode + # def copy: (?opening_loc: Location?, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], ?closing_loc: Location?, ?location: Location) -> InterpolatedSymbolNode # - # source://prism//lib/prism/node.rb#11411 - sig { params(params: T.untyped).returns(Prism::InterpolatedSymbolNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#11968 + sig do + params( + opening_loc: T.nilable(Prism::Location), + parts: T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode)], + closing_loc: T.nilable(Prism::Location), + location: Prism::Location + ).returns(Prism::InterpolatedSymbolNode) + end + def copy(opening_loc: T.unsafe(nil), parts: T.unsafe(nil), closing_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#11396 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#11953 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { opening_loc: Location?, parts: Array[Node], closing_loc: Location?, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { opening_loc: Location?, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], closing_loc: Location?, location: Location } # - # source://prism//lib/prism/node.rb#11425 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#11976 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#11468 + # source://prism//lib/prism/node.rb#12020 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String? # - # source://prism//lib/prism/node.rb#11458 + # source://prism//lib/prism/node.rb#12010 sig { returns(T.nilable(String)) } def opening; end # attr_reader opening_loc: Location? # - # source://prism//lib/prism/node.rb#11430 + # source://prism//lib/prism/node.rb#11981 sig { returns(T.nilable(Prism::Location)) } def opening_loc; end - # attr_reader parts: Array[Node] + # attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode] # - # source://prism//lib/prism/node.rb#11442 - sig { returns(T::Array[Prism::Node]) } + # source://prism//lib/prism/node.rb#11994 + sig { returns(T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode)]) } def parts; end - # source://prism//lib/prism/node.rb#11390 + # source://prism//lib/prism/node.rb#11947 def set_newline_flag(newline_marked); end # Sometimes you want to check an instance of a node against a list of @@ -16645,7 +19161,8 @@ class Prism::InterpolatedSymbolNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#11490 + # source://prism//lib/prism/node.rb#12042 + sig { override.returns(Symbol) } def type; end class << self @@ -16656,7 +19173,7 @@ class Prism::InterpolatedSymbolNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#11500 + # source://prism//lib/prism/node.rb#12052 def type; end end end @@ -16666,98 +19183,125 @@ end # `foo #{bar} baz` # ^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#11509 +# source://prism//lib/prism/node.rb#12071 class Prism::InterpolatedXStringNode < ::Prism::Node include ::Prism::HeredocQuery - # def initialize: (Location opening_loc, Array[Node] parts, Location closing_loc, Location location) -> void + # def initialize: (Location opening_loc, Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode] parts, Location closing_loc, Location location) -> void # # @return [InterpolatedXStringNode] a new instance of InterpolatedXStringNode # - # source://prism//lib/prism/node.rb#11511 + # source://prism//lib/prism/node.rb#12073 + sig do + params( + source: Prism::Source, + opening_loc: Prism::Location, + parts: T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode)], + closing_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, opening_loc, parts, closing_loc, location); 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#12186 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#11521 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#12083 + 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#11531 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#12093 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#11586 + # source://prism//lib/prism/node.rb#12143 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#11574 + # source://prism//lib/prism/node.rb#12131 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#11541 + # source://prism//lib/prism/node.rb#12103 + 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#11536 + # source://prism//lib/prism/node.rb#12098 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> InterpolatedXStringNode + # def copy: (?opening_loc: Location, ?parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], ?closing_loc: Location, ?location: Location) -> InterpolatedXStringNode # - # source://prism//lib/prism/node.rb#11546 - sig { params(params: T.untyped).returns(Prism::InterpolatedXStringNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#12108 + sig do + params( + opening_loc: Prism::Location, + parts: T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode)], + closing_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::InterpolatedXStringNode) + end + def copy(opening_loc: T.unsafe(nil), parts: T.unsafe(nil), closing_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#11531 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#12093 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { opening_loc: Location, parts: Array[Node], closing_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { opening_loc: Location, parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode], closing_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#11560 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#12116 + 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 + + sig { returns(T::Boolean) } + def heredoc?; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#11591 + # source://prism//lib/prism/node.rb#12148 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String # - # source://prism//lib/prism/node.rb#11581 + # source://prism//lib/prism/node.rb#12138 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#11565 + # source://prism//lib/prism/node.rb#12121 sig { returns(Prism::Location) } def opening_loc; end - # attr_reader parts: Array[Node] + # attr_reader parts: Array[StringNode | EmbeddedStatementsNode | EmbeddedVariableNode] # - # source://prism//lib/prism/node.rb#11571 - sig { returns(T::Array[Prism::Node]) } + # source://prism//lib/prism/node.rb#12128 + sig { returns(T::Array[T.any(Prism::StringNode, Prism::EmbeddedStatementsNode, Prism::EmbeddedVariableNode)]) } def parts; end - # source://prism//lib/prism/node.rb#11525 + # source://prism//lib/prism/node.rb#12087 def set_newline_flag(newline_marked); end # Sometimes you want to check an instance of a node against a list of @@ -16775,7 +19319,8 @@ class Prism::InterpolatedXStringNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#11613 + # source://prism//lib/prism/node.rb#12170 + sig { override.returns(Symbol) } def type; end class << self @@ -16786,89 +19331,84 @@ class Prism::InterpolatedXStringNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#11623 + # source://prism//lib/prism/node.rb#12180 def type; end end end -# Represents a hash literal without opening and closing braces. +# Represents an implicit set of parameters through the use of the `it` keyword within a block or lambda. # -# foo(a: b) -# ^^^^ +# -> { it + it } +# ^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#11632 -class Prism::KeywordHashNode < ::Prism::Node - # def initialize: (Integer flags, Array[Node] elements, Location location) -> void +# source://prism//lib/prism/node.rb#12199 +class Prism::ItParametersNode < ::Prism::Node + # def initialize: (Location location) -> void # - # @return [KeywordHashNode] a new instance of KeywordHashNode + # @return [ItParametersNode] a new instance of ItParametersNode # - # source://prism//lib/prism/node.rb#11634 - def initialize(source, flags, elements, location); end + # source://prism//lib/prism/node.rb#12201 + sig { params(source: Prism::Source, location: Prism::Location).void } + def initialize(source, location); 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#12276 + def ===(other); end # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#11643 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#12208 + 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#11648 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#12213 + 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#11658 + # source://prism//lib/prism/node.rb#12223 + 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#11653 + # source://prism//lib/prism/node.rb#12218 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> KeywordHashNode + # def copy: (?location: Location) -> ItParametersNode # - # source://prism//lib/prism/node.rb#11663 - sig { params(params: T.untyped).returns(Prism::KeywordHashNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#12228 + sig { params(location: Prism::Location).returns(Prism::ItParametersNode) } + def copy(location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#11648 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#12213 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, elements: Array[Node], location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location } # - # source://prism//lib/prism/node.rb#11676 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#12236 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end - # attr_reader elements: Array[Node] - # - # source://prism//lib/prism/node.rb#11685 - sig { returns(T::Array[Prism::Node]) } - def elements; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#11694 + # source://prism//lib/prism/node.rb#12241 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end - # def symbol_keys?: () -> bool - # - # @return [Boolean] - # - # source://prism//lib/prism/node.rb#11689 - sig { returns(T::Boolean) } - def symbol_keys?; 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 @@ -16884,17 +19424,10 @@ class Prism::KeywordHashNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#11716 + # source://prism//lib/prism/node.rb#12260 + sig { override.returns(Symbol) } def type; end - private - - # private attr_reader flags: Integer - # - # source://prism//lib/prism/node.rb#11681 - sig { returns(Integer) } - def flags; end - class << self # 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. @@ -16903,107 +19436,273 @@ class Prism::KeywordHashNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#11726 + # source://prism//lib/prism/node.rb#12270 def type; end end end -# Flags for keyword hash nodes. -# -# source://prism//lib/prism/node.rb#19292 -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#19294 -Prism::KeywordHashNodeFlags::SYMBOL_KEYS = T.let(T.unsafe(nil), Integer) - -# Represents a keyword rest parameter to a method, block, or lambda definition. +# Represents a hash literal without opening and closing braces. # -# def a(**b) -# ^^^ -# end +# foo(a: b) +# ^^^^ # -# source://prism//lib/prism/node.rb#11736 -class Prism::KeywordRestParameterNode < ::Prism::Node - # def initialize: (Integer flags, Symbol? name, Location? name_loc, Location operator_loc, Location location) -> void +# source://prism//lib/prism/node.rb#12285 +class Prism::KeywordHashNode < ::Prism::Node + # def initialize: (Integer flags, Array[AssocNode | AssocSplatNode] elements, Location location) -> void # - # @return [KeywordRestParameterNode] a new instance of KeywordRestParameterNode + # @return [KeywordHashNode] a new instance of KeywordHashNode # - # source://prism//lib/prism/node.rb#11738 - def initialize(source, flags, name, name_loc, operator_loc, location); end + # source://prism//lib/prism/node.rb#12287 + sig do + params( + source: Prism::Source, + flags: Integer, + elements: T::Array[T.any(Prism::AssocNode, Prism::AssocSplatNode)], + location: Prism::Location + ).void + end + def initialize(source, flags, elements, location); 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#12379 + def ===(other); end # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#11749 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#12296 + 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#11754 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#12301 + 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#11764 + # source://prism//lib/prism/node.rb#12311 + 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#11759 + # source://prism//lib/prism/node.rb#12306 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> KeywordRestParameterNode + # def copy: (?flags: Integer, ?elements: Array[AssocNode | AssocSplatNode], ?location: Location) -> KeywordHashNode # - # source://prism//lib/prism/node.rb#11769 - sig { params(params: T.untyped).returns(Prism::KeywordRestParameterNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#12316 + sig do + params( + flags: Integer, + elements: T::Array[T.any(Prism::AssocNode, Prism::AssocSplatNode)], + location: Prism::Location + ).returns(Prism::KeywordHashNode) + end + def copy(flags: T.unsafe(nil), elements: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#11754 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#12301 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, name: Symbol?, name_loc: Location?, operator_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, elements: Array[AssocNode | AssocSplatNode], location: Location } # - # source://prism//lib/prism/node.rb#11784 + # source://prism//lib/prism/node.rb#12324 + 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#12333 + 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(NodeInspector inspector) -> String + # + # source://prism//lib/prism/node.rb#12341 + sig { params(inspector: T.untyped).returns(String) } + def inspect(inspector = T.unsafe(nil)); end + + # def symbol_keys?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#12336 + sig { returns(T::Boolean) } + def symbol_keys?; 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. + # + # def type: () -> Symbol + # + # source://prism//lib/prism/node.rb#12363 + sig { override.returns(Symbol) } + def type; end + + protected + + # protected attr_reader flags: Integer + # + # source://prism//lib/prism/node.rb#12329 + sig { returns(Integer) } + def flags; end + + class << self + # 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. + # + # def self.type: () -> Symbol + # + # source://prism//lib/prism/node.rb#12373 + def type; end + end +end + +# Flags for keyword hash nodes. +# +# source://prism//lib/prism/node.rb#20397 +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#20399 +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#12392 +class Prism::KeywordRestParameterNode < ::Prism::Node + # def initialize: (Integer flags, Symbol? name, Location? name_loc, Location operator_loc, Location location) -> void + # + # @return [KeywordRestParameterNode] a new instance of KeywordRestParameterNode + # + # source://prism//lib/prism/node.rb#12394 + sig do + params( + source: Prism::Source, + flags: Integer, + name: T.nilable(Symbol), + name_loc: T.nilable(Prism::Location), + operator_loc: Prism::Location, + location: Prism::Location + ).void + end + def initialize(source, flags, name, name_loc, operator_loc, location); 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#12519 + def ===(other); end + + # def accept: (Visitor visitor) -> void + # + # source://prism//lib/prism/node.rb#12405 + 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#12410 + 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#12420 + 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#12415 + sig { override.returns(T::Array[Prism::Node]) } + def compact_child_nodes; end + + # def copy: (?flags: Integer, ?name: Symbol?, ?name_loc: Location?, ?operator_loc: Location, ?location: Location) -> KeywordRestParameterNode + # + # source://prism//lib/prism/node.rb#12425 sig do params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) + flags: Integer, + name: T.nilable(Symbol), + name_loc: T.nilable(Prism::Location), + operator_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::KeywordRestParameterNode) end + def copy(flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), location: T.unsafe(nil)); end + + # def child_nodes: () -> Array[nil | Node] + # def deconstruct: () -> Array[nil | Node] + # + # source://prism//lib/prism/node.rb#12410 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } + def deconstruct; end + + # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, name: Symbol?, name_loc: Location?, operator_loc: Location, location: Location } + # + # source://prism//lib/prism/node.rb#12433 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#11825 + # source://prism//lib/prism/node.rb#12475 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol? # - # source://prism//lib/prism/node.rb#11793 + # source://prism//lib/prism/node.rb#12442 sig { returns(T.nilable(Symbol)) } def name; end # attr_reader name_loc: Location? # - # source://prism//lib/prism/node.rb#11796 + # source://prism//lib/prism/node.rb#12445 sig { returns(T.nilable(Prism::Location)) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#11820 + # source://prism//lib/prism/node.rb#12470 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#11808 + # source://prism//lib/prism/node.rb#12458 sig { returns(Prism::Location) } def operator_loc; end @@ -17011,7 +19710,7 @@ class Prism::KeywordRestParameterNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#11815 + # source://prism//lib/prism/node.rb#12465 sig { returns(T::Boolean) } def repeated_parameter?; end @@ -17030,14 +19729,15 @@ class Prism::KeywordRestParameterNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#11853 + # source://prism//lib/prism/node.rb#12503 + sig { override.returns(Symbol) } def type; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#11789 + # source://prism//lib/prism/node.rb#12438 sig { returns(Integer) } def flags; end @@ -17049,7 +19749,7 @@ class Prism::KeywordRestParameterNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#11863 + # source://prism//lib/prism/node.rb#12513 def type; end end end @@ -17059,116 +19759,146 @@ end # ->(value) { value * 2 } # ^^^^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#11872 +# source://prism//lib/prism/node.rb#12532 class Prism::LambdaNode < ::Prism::Node - # def initialize: (Array[Symbol] locals, Location operator_loc, Location opening_loc, Location closing_loc, Node? parameters, Node? body, Location location) -> void + # def initialize: (Array[Symbol] locals, Location operator_loc, Location opening_loc, Location closing_loc, Prism::node? parameters, Prism::node? body, Location location) -> void # # @return [LambdaNode] a new instance of LambdaNode # - # source://prism//lib/prism/node.rb#11874 + # source://prism//lib/prism/node.rb#12534 + sig do + params( + source: Prism::Source, + 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), + location: Prism::Location + ).void + end def initialize(source, locals, operator_loc, opening_loc, closing_loc, parameters, body, location); 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#12679 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#11887 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#12547 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end - # attr_reader body: Node? + # attr_reader body: Prism::node? # - # source://prism//lib/prism/node.rb#11956 + # source://prism//lib/prism/node.rb#12610 sig { returns(T.nilable(Prism::Node)) } def body; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#11892 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#12552 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#11970 + # source://prism//lib/prism/node.rb#12623 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#11947 + # source://prism//lib/prism/node.rb#12600 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#11905 + # source://prism//lib/prism/node.rb#12565 + 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#11897 + # source://prism//lib/prism/node.rb#12557 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> LambdaNode + # def copy: (?locals: Array[Symbol], ?operator_loc: Location, ?opening_loc: Location, ?closing_loc: Location, ?parameters: Prism::node?, ?body: Prism::node?, ?location: Location) -> LambdaNode # - # source://prism//lib/prism/node.rb#11910 - sig { params(params: T.untyped).returns(Prism::LambdaNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#12570 + sig do + params( + 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), + location: Prism::Location + ).returns(Prism::LambdaNode) + end + def copy(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), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#11892 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#12552 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { locals: Array[Symbol], operator_loc: Location, opening_loc: Location, closing_loc: Location, parameters: Node?, body: Node?, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { locals: Array[Symbol], operator_loc: Location, opening_loc: Location, closing_loc: Location, parameters: Prism::node?, body: Prism::node?, location: Location } # - # source://prism//lib/prism/node.rb#11927 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#12578 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#11975 + # source://prism//lib/prism/node.rb#12628 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader locals: Array[Symbol] # - # source://prism//lib/prism/node.rb#11932 + # source://prism//lib/prism/node.rb#12583 sig { returns(T::Array[Symbol]) } def locals; end # def opening: () -> String # - # source://prism//lib/prism/node.rb#11965 + # source://prism//lib/prism/node.rb#12618 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#11941 + # source://prism//lib/prism/node.rb#12593 sig { returns(Prism::Location) } def opening_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#11960 + # source://prism//lib/prism/node.rb#12613 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#11935 + # source://prism//lib/prism/node.rb#12586 sig { returns(Prism::Location) } def operator_loc; end - # attr_reader parameters: Node? + # attr_reader parameters: Prism::node? # - # source://prism//lib/prism/node.rb#11953 + # source://prism//lib/prism/node.rb#12607 sig { returns(T.nilable(Prism::Node)) } def parameters; end @@ -17187,7 +19917,8 @@ class Prism::LambdaNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#12010 + # source://prism//lib/prism/node.rb#12663 + sig { override.returns(Symbol) } def type; end class << self @@ -17198,7 +19929,7 @@ class Prism::LambdaNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#12020 + # source://prism//lib/prism/node.rb#12673 def type; end end end @@ -17213,29 +19944,29 @@ end class Prism::LexCompat # @return [LexCompat] a new instance of LexCompat # - # source://prism//lib/prism/lex_compat.rb#600 + # 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#598 + # source://prism//lib/prism/lex_compat.rb#617 def options; end - # source://prism//lib/prism/lex_compat.rb#605 + # source://prism//lib/prism/lex_compat.rb#624 def result; end # Returns the value of attribute source. # - # source://prism//lib/prism/lex_compat.rb#598 + # 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#211 +# source://prism//lib/prism/lex_compat.rb#230 class Prism::LexCompat::EndContentToken < ::Prism::LexCompat::Token - # source://prism//lib/prism/lex_compat.rb#212 + # source://prism//lib/prism/lex_compat.rb#231 def ==(other); end end @@ -17243,13 +19974,13 @@ end # heredoc that should be appended onto the list of tokens when the heredoc # closes. # -# source://prism//lib/prism/lex_compat.rb#272 +# 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#584 + # source://prism//lib/prism/lex_compat.rb#603 def build(opening); end end end @@ -17258,23 +19989,23 @@ end # 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#296 +# 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#299 + # source://prism//lib/prism/lex_compat.rb#318 def initialize(split); end - # source://prism//lib/prism/lex_compat.rb#304 + # source://prism//lib/prism/lex_compat.rb#323 def <<(token); end - # source://prism//lib/prism/lex_compat.rb#297 + # source://prism//lib/prism/lex_compat.rb#316 def split; end - # source://prism//lib/prism/lex_compat.rb#308 + # source://prism//lib/prism/lex_compat.rb#327 def to_a; end - # source://prism//lib/prism/lex_compat.rb#297 + # source://prism//lib/prism/lex_compat.rb#316 def tokens; end end @@ -17289,45 +20020,45 @@ end # 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#355 +# 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#360 + # 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#371 + # source://prism//lib/prism/lex_compat.rb#390 def <<(token); end # Returns the value of attribute dedent. # - # source://prism//lib/prism/lex_compat.rb#358 + # 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#358 + # 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#358 + # source://prism//lib/prism/lex_compat.rb#377 def embexpr_balance; end - # source://prism//lib/prism/lex_compat.rb#408 + # 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#358 + # source://prism//lib/prism/lex_compat.rb#377 def tokens; end end -# source://prism//lib/prism/lex_compat.rb#356 +# 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. @@ -17335,20 +20066,20 @@ Prism::LexCompat::Heredoc::DedentingHeredoc::TAB_WIDTH = T.let(T.unsafe(nil), In # 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#277 +# 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#280 + # source://prism//lib/prism/lex_compat.rb#299 def initialize; end - # source://prism//lib/prism/lex_compat.rb#284 + # source://prism//lib/prism/lex_compat.rb#303 def <<(token); end - # source://prism//lib/prism/lex_compat.rb#288 + # source://prism//lib/prism/lex_compat.rb#307 def to_a; end - # source://prism//lib/prism/lex_compat.rb#278 + # source://prism//lib/prism/lex_compat.rb#297 def tokens; end end @@ -17357,27 +20088,27 @@ end # through named captures in regular expressions). In that case we don't # compare the state. # -# source://prism//lib/prism/lex_compat.rb#229 +# source://prism//lib/prism/lex_compat.rb#248 class Prism::LexCompat::IdentToken < ::Prism::LexCompat::Token - # source://prism//lib/prism/lex_compat.rb#230 + # 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#219 +# source://prism//lib/prism/lex_compat.rb#238 class Prism::LexCompat::IgnoreStateToken < ::Prism::LexCompat::Token - # source://prism//lib/prism/lex_compat.rb#220 + # 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#240 +# source://prism//lib/prism/lex_compat.rb#259 class Prism::LexCompat::IgnoredNewlineToken < ::Prism::LexCompat::Token - # source://prism//lib/prism/lex_compat.rb#241 + # source://prism//lib/prism/lex_compat.rb#260 def ==(other); end end @@ -17390,9 +20121,9 @@ end # more accurately, so we need to allow comparing against both END and # END|LABEL. # -# source://prism//lib/prism/lex_compat.rb#260 +# source://prism//lib/prism/lex_compat.rb#279 class Prism::LexCompat::ParamToken < ::Prism::LexCompat::Token - # source://prism//lib/prism/lex_compat.rb#261 + # source://prism//lib/prism/lex_compat.rb#280 def ==(other); end end @@ -17400,55 +20131,112 @@ end # many-to-one mapping because we split up our token types, whereas Ripper # tends to group them. # -# source://prism//lib/prism/lex_compat.rb#16 +# 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#187 +# 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#194 + # 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#189 + # 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#204 + # 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#199 + # 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#515 +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#520 + 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#526 + 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#517 + 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#853 +# 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#856 + # source://prism//lib/prism/lex_compat.rb#875 def initialize(source); end - # source://prism//lib/prism/lex_compat.rb#860 + # source://prism//lib/prism/lex_compat.rb#879 def result; end - # source://prism//lib/prism/lex_compat.rb#854 + # source://prism//lib/prism/lex_compat.rb#873 def source; end private - # source://prism//lib/prism/lex_compat.rb#894 + # source://prism//lib/prism/lex_compat.rb#913 def lex(source); end end @@ -17457,95 +20245,123 @@ end # target &&= value # ^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#12029 +# source://prism//lib/prism/node.rb#12695 class Prism::LocalVariableAndWriteNode < ::Prism::Node - # def initialize: (Location name_loc, Location operator_loc, Node value, Symbol name, Integer depth, Location location) -> void + # def initialize: (Location name_loc, Location operator_loc, Prism::node value, Symbol name, Integer depth, Location location) -> void # # @return [LocalVariableAndWriteNode] a new instance of LocalVariableAndWriteNode # - # source://prism//lib/prism/node.rb#12031 + # source://prism//lib/prism/node.rb#12697 + sig do + params( + source: Prism::Source, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + name: Symbol, + depth: Integer, + location: Prism::Location + ).void + end def initialize(source, name_loc, operator_loc, value, name, depth, location); 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#12811 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#12043 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#12709 + 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#12048 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#12714 + 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#12058 + # source://prism//lib/prism/node.rb#12724 + 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#12053 + # source://prism//lib/prism/node.rb#12719 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> LocalVariableAndWriteNode + # def copy: (?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?name: Symbol, ?depth: Integer, ?location: Location) -> LocalVariableAndWriteNode # - # source://prism//lib/prism/node.rb#12063 - sig { params(params: T.untyped).returns(Prism::LocalVariableAndWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#12729 + sig do + params( + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + name: Symbol, + depth: Integer, + location: Prism::Location + ).returns(Prism::LocalVariableAndWriteNode) + end + def copy(name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil), name: T.unsafe(nil), depth: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#12048 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#12714 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { name_loc: Location, operator_loc: Location, value: Node, name: Symbol, depth: Integer, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { name_loc: Location, operator_loc: Location, value: Prism::node, name: Symbol, depth: Integer, location: Location } # - # source://prism//lib/prism/node.rb#12079 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#12737 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end # attr_reader depth: Integer # - # source://prism//lib/prism/node.rb#12102 + # source://prism//lib/prism/node.rb#12762 sig { returns(Integer) } def depth; end - # source://prism//lib/prism/desugar_compiler.rb#197 + # source://prism//lib/prism/desugar_compiler.rb#199 def desugar; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#12111 + # source://prism//lib/prism/node.rb#12770 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#12099 + # source://prism//lib/prism/node.rb#12759 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#12084 + # source://prism//lib/prism/node.rb#12742 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#12106 + # source://prism//lib/prism/node.rb#12765 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#12090 + # source://prism//lib/prism/node.rb#12749 sig { returns(Prism::Location) } def operator_loc; end @@ -17564,12 +20380,13 @@ class Prism::LocalVariableAndWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#12136 + # source://prism//lib/prism/node.rb#12795 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#12096 + # source://prism//lib/prism/node.rb#12756 sig { returns(Prism::Node) } def value; end @@ -17581,7 +20398,7 @@ class Prism::LocalVariableAndWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#12146 + # source://prism//lib/prism/node.rb#12805 def type; end end end @@ -17591,95 +20408,125 @@ end # target += value # ^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#12155 +# source://prism//lib/prism/node.rb#12825 class Prism::LocalVariableOperatorWriteNode < ::Prism::Node - # def initialize: (Location name_loc, Location operator_loc, Node value, Symbol name, Symbol operator, Integer depth, Location location) -> void + # def initialize: (Location name_loc, Location operator_loc, Prism::node value, Symbol name, Symbol operator, Integer depth, Location location) -> void # # @return [LocalVariableOperatorWriteNode] a new instance of LocalVariableOperatorWriteNode # - # source://prism//lib/prism/node.rb#12157 + # source://prism//lib/prism/node.rb#12827 + sig do + params( + source: Prism::Source, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + name: Symbol, + operator: Symbol, + depth: Integer, + location: Prism::Location + ).void + end def initialize(source, name_loc, operator_loc, value, name, operator, depth, location); 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#12941 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#12170 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#12840 + 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#12175 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#12845 + 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#12185 + # source://prism//lib/prism/node.rb#12855 + 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#12180 + # source://prism//lib/prism/node.rb#12850 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> LocalVariableOperatorWriteNode + # def copy: (?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?name: Symbol, ?operator: Symbol, ?depth: Integer, ?location: Location) -> LocalVariableOperatorWriteNode # - # source://prism//lib/prism/node.rb#12190 - sig { params(params: T.untyped).returns(Prism::LocalVariableOperatorWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#12860 + sig do + params( + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + name: Symbol, + operator: Symbol, + depth: Integer, + location: Prism::Location + ).returns(Prism::LocalVariableOperatorWriteNode) + end + def copy(name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil), name: T.unsafe(nil), operator: T.unsafe(nil), depth: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#12175 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#12845 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { name_loc: Location, operator_loc: Location, value: Node, name: Symbol, operator: Symbol, depth: Integer, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { name_loc: Location, operator_loc: Location, value: Prism::node, name: Symbol, operator: Symbol, depth: Integer, location: Location } # - # source://prism//lib/prism/node.rb#12207 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#12868 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end # attr_reader depth: Integer # - # source://prism//lib/prism/node.rb#12233 + # source://prism//lib/prism/node.rb#12896 sig { returns(Integer) } def depth; end - # source://prism//lib/prism/desugar_compiler.rb#209 + # source://prism//lib/prism/desugar_compiler.rb#211 def desugar; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#12237 + # source://prism//lib/prism/node.rb#12899 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#12227 + # source://prism//lib/prism/node.rb#12890 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#12212 + # source://prism//lib/prism/node.rb#12873 sig { returns(Prism::Location) } def name_loc; end # attr_reader operator: Symbol # - # source://prism//lib/prism/node.rb#12230 + # source://prism//lib/prism/node.rb#12893 sig { returns(Symbol) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#12218 + # source://prism//lib/prism/node.rb#12880 sig { returns(Prism::Location) } def operator_loc; end @@ -17698,12 +20545,13 @@ class Prism::LocalVariableOperatorWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#12263 + # source://prism//lib/prism/node.rb#12925 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#12224 + # source://prism//lib/prism/node.rb#12887 sig { returns(Prism::Node) } def value; end @@ -17715,7 +20563,7 @@ class Prism::LocalVariableOperatorWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#12273 + # source://prism//lib/prism/node.rb#12935 def type; end end end @@ -17725,95 +20573,123 @@ end # target ||= value # ^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#12282 +# source://prism//lib/prism/node.rb#12956 class Prism::LocalVariableOrWriteNode < ::Prism::Node - # def initialize: (Location name_loc, Location operator_loc, Node value, Symbol name, Integer depth, Location location) -> void + # def initialize: (Location name_loc, Location operator_loc, Prism::node value, Symbol name, Integer depth, Location location) -> void # # @return [LocalVariableOrWriteNode] a new instance of LocalVariableOrWriteNode # - # source://prism//lib/prism/node.rb#12284 + # source://prism//lib/prism/node.rb#12958 + sig do + params( + source: Prism::Source, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + name: Symbol, + depth: Integer, + location: Prism::Location + ).void + end def initialize(source, name_loc, operator_loc, value, name, depth, location); 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#13072 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#12296 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#12970 + 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#12301 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#12975 + 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#12311 + # source://prism//lib/prism/node.rb#12985 + 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#12306 + # source://prism//lib/prism/node.rb#12980 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> LocalVariableOrWriteNode + # def copy: (?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?name: Symbol, ?depth: Integer, ?location: Location) -> LocalVariableOrWriteNode # - # source://prism//lib/prism/node.rb#12316 - sig { params(params: T.untyped).returns(Prism::LocalVariableOrWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#12990 + sig do + params( + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + name: Symbol, + depth: Integer, + location: Prism::Location + ).returns(Prism::LocalVariableOrWriteNode) + end + def copy(name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil), name: T.unsafe(nil), depth: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#12301 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#12975 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { name_loc: Location, operator_loc: Location, value: Node, name: Symbol, depth: Integer, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { name_loc: Location, operator_loc: Location, value: Prism::node, name: Symbol, depth: Integer, location: Location } # - # source://prism//lib/prism/node.rb#12332 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#12998 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end # attr_reader depth: Integer # - # source://prism//lib/prism/node.rb#12355 + # source://prism//lib/prism/node.rb#13023 sig { returns(Integer) } def depth; end - # source://prism//lib/prism/desugar_compiler.rb#203 + # source://prism//lib/prism/desugar_compiler.rb#205 def desugar; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#12364 + # source://prism//lib/prism/node.rb#13031 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#12352 + # source://prism//lib/prism/node.rb#13020 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#12337 + # source://prism//lib/prism/node.rb#13003 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#12359 + # source://prism//lib/prism/node.rb#13026 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#12343 + # source://prism//lib/prism/node.rb#13010 sig { returns(Prism::Location) } def operator_loc; end @@ -17832,12 +20708,13 @@ class Prism::LocalVariableOrWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#12389 + # source://prism//lib/prism/node.rb#13056 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#12349 + # source://prism//lib/prism/node.rb#13017 sig { returns(Prism::Node) } def value; end @@ -17849,7 +20726,7 @@ class Prism::LocalVariableOrWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#12399 + # source://prism//lib/prism/node.rb#13066 def type; end end end @@ -17859,58 +20736,63 @@ end # foo # ^^^ # -# source://prism//lib/prism/node.rb#12408 +# source://prism//lib/prism/node.rb#13086 class Prism::LocalVariableReadNode < ::Prism::Node # def initialize: (Symbol name, Integer depth, Location location) -> void # # @return [LocalVariableReadNode] a new instance of LocalVariableReadNode # - # source://prism//lib/prism/node.rb#12410 + # source://prism//lib/prism/node.rb#13088 + sig { params(source: Prism::Source, name: Symbol, depth: Integer, location: Prism::Location).void } def initialize(source, name, depth, location); 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#13191 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#12419 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#13097 + 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#12424 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#13102 + 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#12434 + # source://prism//lib/prism/node.rb#13112 + 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#12429 + # source://prism//lib/prism/node.rb#13107 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> LocalVariableReadNode + # def copy: (?name: Symbol, ?depth: Integer, ?location: Location) -> LocalVariableReadNode # - # source://prism//lib/prism/node.rb#12439 - sig { params(params: T.untyped).returns(Prism::LocalVariableReadNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#13117 + sig { params(name: Symbol, depth: Integer, location: Prism::Location).returns(Prism::LocalVariableReadNode) } + def copy(name: T.unsafe(nil), depth: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#12424 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#13102 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, depth: Integer, location: Location } # - # source://prism//lib/prism/node.rb#12452 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#13125 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end # The number of visible scopes that should be searched to find the origin of this local variable. @@ -17921,13 +20803,17 @@ class Prism::LocalVariableReadNode < ::Prism::Node # # 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#12478 + # source://prism//lib/prism/node.rb#13151 sig { returns(Integer) } def depth; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#12482 + # source://prism//lib/prism/node.rb#13154 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # The name of the local variable, which is an [identifier](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#identifiers). @@ -17944,7 +20830,7 @@ class Prism::LocalVariableReadNode < ::Prism::Node # # it # name `:0it` # - # source://prism//lib/prism/node.rb#12469 + # source://prism//lib/prism/node.rb#13142 sig { returns(Symbol) } def name; end @@ -17963,7 +20849,8 @@ class Prism::LocalVariableReadNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#12503 + # source://prism//lib/prism/node.rb#13175 + sig { override.returns(Symbol) } def type; end class << self @@ -17974,7 +20861,7 @@ class Prism::LocalVariableReadNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#12513 + # source://prism//lib/prism/node.rb#13185 def type; end end end @@ -17984,74 +20871,83 @@ end # foo, bar = baz # ^^^ ^^^ # -# source://prism//lib/prism/node.rb#12522 +# source://prism//lib/prism/node.rb#13202 class Prism::LocalVariableTargetNode < ::Prism::Node # def initialize: (Symbol name, Integer depth, Location location) -> void # # @return [LocalVariableTargetNode] a new instance of LocalVariableTargetNode # - # source://prism//lib/prism/node.rb#12524 + # source://prism//lib/prism/node.rb#13204 + sig { params(source: Prism::Source, name: Symbol, depth: Integer, location: Prism::Location).void } def initialize(source, name, depth, location); 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#13289 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#12533 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#13213 + 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#12538 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#13218 + 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#12548 + # source://prism//lib/prism/node.rb#13228 + 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#12543 + # source://prism//lib/prism/node.rb#13223 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> LocalVariableTargetNode + # def copy: (?name: Symbol, ?depth: Integer, ?location: Location) -> LocalVariableTargetNode # - # source://prism//lib/prism/node.rb#12553 - sig { params(params: T.untyped).returns(Prism::LocalVariableTargetNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#13233 + sig { params(name: Symbol, depth: Integer, location: Prism::Location).returns(Prism::LocalVariableTargetNode) } + def copy(name: T.unsafe(nil), depth: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#12538 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#13218 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, depth: Integer, location: Location } # - # source://prism//lib/prism/node.rb#12566 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#13241 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end # attr_reader depth: Integer # - # source://prism//lib/prism/node.rb#12574 + # source://prism//lib/prism/node.rb#13249 sig { returns(Integer) } def depth; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#12578 + # source://prism//lib/prism/node.rb#13252 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#12571 + # source://prism//lib/prism/node.rb#13246 sig { returns(Symbol) } def name; end @@ -18070,7 +20966,8 @@ class Prism::LocalVariableTargetNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#12599 + # source://prism//lib/prism/node.rb#13273 + sig { override.returns(Symbol) } def type; end class << self @@ -18081,7 +20978,7 @@ class Prism::LocalVariableTargetNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#12609 + # source://prism//lib/prism/node.rb#13283 def type; end end end @@ -18091,92 +20988,136 @@ end # foo = 1 # ^^^^^^^ # -# source://prism//lib/prism/node.rb#12618 +# source://prism//lib/prism/node.rb#13300 class Prism::LocalVariableWriteNode < ::Prism::Node - # def initialize: (Symbol name, Integer depth, Location name_loc, Node value, Location operator_loc, Location location) -> void + # def initialize: (Symbol name, Integer depth, Location name_loc, Prism::node value, Location operator_loc, Location location) -> void # # @return [LocalVariableWriteNode] a new instance of LocalVariableWriteNode # - # source://prism//lib/prism/node.rb#12620 + # source://prism//lib/prism/node.rb#13302 + sig do + params( + source: Prism::Source, + name: Symbol, + depth: Integer, + name_loc: Prism::Location, + value: Prism::Node, + operator_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, name, depth, name_loc, value, operator_loc, location); 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#13442 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#12632 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#13314 + 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#12637 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#13319 + 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#12647 + # source://prism//lib/prism/node.rb#13329 + 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#12642 + # source://prism//lib/prism/node.rb#13324 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> LocalVariableWriteNode + # def copy: (?name: Symbol, ?depth: Integer, ?name_loc: Location, ?value: Prism::node, ?operator_loc: Location, ?location: Location) -> LocalVariableWriteNode # - # source://prism//lib/prism/node.rb#12652 - sig { params(params: T.untyped).returns(Prism::LocalVariableWriteNode) } - def copy(**params); end - - # def child_nodes: () -> Array[nil | Node] + # source://prism//lib/prism/node.rb#13334 + sig do + params( + name: Symbol, + depth: Integer, + name_loc: Prism::Location, + value: Prism::Node, + operator_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::LocalVariableWriteNode) + end + def copy(name: T.unsafe(nil), depth: T.unsafe(nil), name_loc: T.unsafe(nil), value: T.unsafe(nil), operator_loc: T.unsafe(nil), location: T.unsafe(nil)); end + + # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#12637 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#13319 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, depth: Integer, name_loc: Location, value: Node, operator_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, depth: Integer, name_loc: Location, value: Prism::node, operator_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#12668 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#13342 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end - # attr_reader depth: Integer + # 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#12676 + # source://prism//lib/prism/node.rb#13360 sig { returns(Integer) } def depth; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#12700 + # source://prism//lib/prism/node.rb#13401 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end - # attr_reader name: Symbol + # 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#12673 + # source://prism//lib/prism/node.rb#13351 sig { returns(Symbol) } def name; end - # attr_reader name_loc: Location + # The location of the variable name. # - # source://prism//lib/prism/node.rb#12679 + # foo = :bar + # ^^^ + # + # source://prism//lib/prism/node.rb#13366 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#12695 + # source://prism//lib/prism/node.rb#13396 sig { returns(String) } def operator; end - # attr_reader operator_loc: Location + # The location of the `=` operator. + # + # x = :y + # ^ # - # source://prism//lib/prism/node.rb#12688 + # source://prism//lib/prism/node.rb#13389 sig { returns(Prism::Location) } def operator_loc; end @@ -18195,12 +21136,23 @@ class Prism::LocalVariableWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#12725 + # source://prism//lib/prism/node.rb#13426 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # 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 + # ^^^^ # - # source://prism//lib/prism/node.rb#12685 + # 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#13383 sig { returns(Prism::Node) } def value; end @@ -18212,231 +21164,278 @@ class Prism::LocalVariableWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#12735 + # source://prism//lib/prism/node.rb#13436 def type; end end end # This represents a location in the source. # -# source://prism//lib/prism/parse_result.rb#98 +# source://prism//lib/prism/parse_result.rb#104 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#116 + # source://prism//lib/prism/parse_result.rb#119 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#232 + # source://prism//lib/prism/parse_result.rb#269 + sig { params(other: T.untyped).returns(T::Boolean) } def ==(other); end - # The list of comments attached to this location + # Returns a new location that is the result of chopping off the last byte. # - # source://prism//lib/prism/parse_result.rb#112 + # source://prism//lib/prism/parse_result.rb#165 + 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#155 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#124 - sig { params(options: T.untyped).returns(Prism::Location) } - def copy(**options); end + # source://prism//lib/prism/parse_result.rb#160 + 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#222 + # source://prism//lib/prism/parse_result.rb#259 + 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#211 + # source://prism//lib/prism/parse_result.rb#248 + 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#160 + # source://prism//lib/prism/parse_result.rb#197 + 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#217 + # source://prism//lib/prism/parse_result.rb#254 + 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#165 + # source://prism//lib/prism/parse_result.rb#202 + 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#205 + # source://prism//lib/prism/parse_result.rb#242 sig { returns(Integer) } def end_column; end # The line number where this location ends. # - # source://prism//lib/prism/parse_result.rb#181 + # source://prism//lib/prism/parse_result.rb#218 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#154 + # source://prism//lib/prism/parse_result.rb#191 sig { returns(Integer) } def end_offset; end # Returns a string representation of this location. # - # source://prism//lib/prism/parse_result.rb#133 + # source://prism//lib/prism/parse_result.rb#170 + 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#241 + # source://prism//lib/prism/parse_result.rb#278 + 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#138 + 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#133 + sig { returns(T::Array[Prism::Comment]) } + def leading_comments; end + # The length of this location in bytes. # - # source://prism//lib/prism/parse_result.rb#109 + # source://prism//lib/prism/parse_result.rb#115 + sig { returns(Integer) } def length; end # Implement the pretty print interface for Location. # - # source://prism//lib/prism/parse_result.rb#227 + # source://prism//lib/prism/parse_result.rb#264 + 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#138 + # source://prism//lib/prism/parse_result.rb#175 sig { returns(String) } def slice; end # The column number in characters where this location ends from the start of # the line. # - # source://prism//lib/prism/parse_result.rb#193 + # source://prism//lib/prism/parse_result.rb#230 + 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#144 + # source://prism//lib/prism/parse_result.rb#181 + 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#199 + # source://prism//lib/prism/parse_result.rb#236 + 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#149 + # source://prism//lib/prism/parse_result.rb#186 + 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#187 + # source://prism//lib/prism/parse_result.rb#224 sig { returns(Integer) } def start_column; end # The line number where this location starts. # - # source://prism//lib/prism/parse_result.rb#170 + # source://prism//lib/prism/parse_result.rb#207 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#175 + # source://prism//lib/prism/parse_result.rb#212 + 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#106 + # source://prism//lib/prism/parse_result.rb#112 sig { returns(Integer) } def start_offset; end + # Attach a comment to the trailing comments of this location. + # + # source://prism//lib/prism/parse_result.rb#149 + 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#144 + 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#101 + # source://prism//lib/prism/parse_result.rb#107 + sig { returns(Prism::Source) } def source; end - - class << self - # Returns a null location that does not correspond to a source and points to - # the beginning of the file. Useful for when you want a location object but - # do not care where it points. - # - # source://prism//lib/prism/parse_result.rb#251 - def null; end - end end # Flags for while and until loop nodes. # -# source://prism//lib/prism/node.rb#19298 +# source://prism//lib/prism/node.rb#20403 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#19300 +# source://prism//lib/prism/node.rb#20405 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#303 +# source://prism//lib/prism/parse_result.rb#338 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#311 + # source://prism//lib/prism/parse_result.rb#346 + 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#327 + # source://prism//lib/prism/parse_result.rb#362 + 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#332 + # source://prism//lib/prism/parse_result.rb#367 + 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#317 + # source://prism//lib/prism/parse_result.rb#352 + 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#305 + # source://prism//lib/prism/parse_result.rb#340 + 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#322 + # source://prism//lib/prism/parse_result.rb#357 + 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#308 + # source://prism//lib/prism/parse_result.rb#343 + sig { returns(Prism::Location) } def value_loc; end end @@ -18445,7 +21444,7 @@ end # if /foo/i then end # ^^^^^^ # -# source://prism//lib/prism/node.rb#12744 +# source://prism//lib/prism/node.rb#13456 class Prism::MatchLastLineNode < ::Prism::Node include ::Prism::RegularExpressionOptions @@ -18453,91 +21452,115 @@ class Prism::MatchLastLineNode < ::Prism::Node # # @return [MatchLastLineNode] a new instance of MatchLastLineNode # - # source://prism//lib/prism/node.rb#12746 + # source://prism//lib/prism/node.rb#13458 + sig do + params( + source: Prism::Source, + flags: Integer, + opening_loc: Prism::Location, + content_loc: Prism::Location, + closing_loc: Prism::Location, + unescaped: String, + location: Prism::Location + ).void + end def initialize(source, flags, opening_loc, content_loc, closing_loc, unescaped, location); 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#13642 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#12758 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#13470 + 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#12850 + # source://prism//lib/prism/node.rb#13556 sig { returns(T::Boolean) } def ascii_8bit?; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#12763 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#13475 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#12890 + # source://prism//lib/prism/node.rb#13596 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#12815 + # source://prism//lib/prism/node.rb#13521 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#12773 + # source://prism//lib/prism/node.rb#13485 + 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#12768 + # source://prism//lib/prism/node.rb#13480 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end # def content: () -> String # - # source://prism//lib/prism/node.rb#12885 + # source://prism//lib/prism/node.rb#13591 sig { returns(String) } def content; end # attr_reader content_loc: Location # - # source://prism//lib/prism/node.rb#12809 + # source://prism//lib/prism/node.rb#13514 sig { returns(Prism::Location) } def content_loc; end - # def copy: (**params) -> MatchLastLineNode + # def copy: (?flags: Integer, ?opening_loc: Location, ?content_loc: Location, ?closing_loc: Location, ?unescaped: String, ?location: Location) -> MatchLastLineNode # - # source://prism//lib/prism/node.rb#12778 - sig { params(params: T.untyped).returns(Prism::MatchLastLineNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#13490 + sig do + params( + flags: Integer, + opening_loc: Prism::Location, + content_loc: Prism::Location, + closing_loc: Prism::Location, + unescaped: String, + location: Prism::Location + ).returns(Prism::MatchLastLineNode) + end + def copy(flags: T.unsafe(nil), opening_loc: T.unsafe(nil), content_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), unescaped: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#12763 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#13475 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String, location: Location } # - # source://prism//lib/prism/node.rb#12794 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#13498 + 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#12845 + # source://prism//lib/prism/node.rb#13551 sig { returns(T::Boolean) } def euc_jp?; end @@ -18545,15 +21568,18 @@ class Prism::MatchLastLineNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#12830 + # source://prism//lib/prism/node.rb#13536 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#12870 + # source://prism//lib/prism/node.rb#13576 sig { returns(T::Boolean) } def forced_binary_encoding?; end @@ -18561,7 +21587,7 @@ class Prism::MatchLastLineNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#12875 + # source://prism//lib/prism/node.rb#13581 sig { returns(T::Boolean) } def forced_us_ascii_encoding?; end @@ -18569,7 +21595,7 @@ class Prism::MatchLastLineNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#12865 + # source://prism//lib/prism/node.rb#13571 sig { returns(T::Boolean) } def forced_utf8_encoding?; end @@ -18577,20 +21603,21 @@ class Prism::MatchLastLineNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#12825 + # source://prism//lib/prism/node.rb#13531 sig { returns(T::Boolean) } def ignore_case?; end # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#12895 + # source://prism//lib/prism/node.rb#13601 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def multi_line?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#12835 + # source://prism//lib/prism/node.rb#13541 sig { returns(T::Boolean) } def multi_line?; end @@ -18598,22 +21625,25 @@ class Prism::MatchLastLineNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#12840 + # source://prism//lib/prism/node.rb#13546 sig { returns(T::Boolean) } def once?; end # def opening: () -> String # - # source://prism//lib/prism/node.rb#12880 + # source://prism//lib/prism/node.rb#13586 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#12803 + # source://prism//lib/prism/node.rb#13507 sig { returns(Prism::Location) } def opening_loc; end + sig { returns(Integer) } + def options; 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 @@ -18629,12 +21659,13 @@ class Prism::MatchLastLineNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#12920 + # source://prism//lib/prism/node.rb#13626 + sig { override.returns(Symbol) } def type; end # attr_reader unescaped: String # - # source://prism//lib/prism/node.rb#12821 + # source://prism//lib/prism/node.rb#13528 sig { returns(String) } def unescaped; end @@ -18642,7 +21673,7 @@ class Prism::MatchLastLineNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#12860 + # source://prism//lib/prism/node.rb#13566 sig { returns(T::Boolean) } def utf_8?; end @@ -18650,15 +21681,15 @@ class Prism::MatchLastLineNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#12855 + # source://prism//lib/prism/node.rb#13561 sig { returns(T::Boolean) } def windows_31j?; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#12799 + # source://prism//lib/prism/node.rb#13503 sig { returns(Integer) } def flags; end @@ -18670,7 +21701,7 @@ class Prism::MatchLastLineNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#12930 + # source://prism//lib/prism/node.rb#13636 def type; end end end @@ -18680,80 +21711,104 @@ end # foo in bar # ^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#12939 +# source://prism//lib/prism/node.rb#13656 class Prism::MatchPredicateNode < ::Prism::Node - # def initialize: (Node value, Node pattern, Location operator_loc, Location location) -> void + # def initialize: (Prism::node value, Prism::node pattern, Location operator_loc, Location location) -> void # # @return [MatchPredicateNode] a new instance of MatchPredicateNode # - # source://prism//lib/prism/node.rb#12941 + # source://prism//lib/prism/node.rb#13658 + sig do + params( + source: Prism::Source, + value: Prism::Node, + pattern: Prism::Node, + operator_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, value, pattern, operator_loc, location); 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#13759 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#12951 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#13668 + 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#12956 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#13673 + 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#12966 + # source://prism//lib/prism/node.rb#13683 + 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#12961 + # source://prism//lib/prism/node.rb#13678 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> MatchPredicateNode + # def copy: (?value: Prism::node, ?pattern: Prism::node, ?operator_loc: Location, ?location: Location) -> MatchPredicateNode # - # source://prism//lib/prism/node.rb#12971 - sig { params(params: T.untyped).returns(Prism::MatchPredicateNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#13688 + sig do + params( + value: Prism::Node, + pattern: Prism::Node, + operator_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::MatchPredicateNode) + end + def copy(value: T.unsafe(nil), pattern: T.unsafe(nil), operator_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#12956 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#13673 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { value: Node, pattern: Node, operator_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { value: Prism::node, pattern: Prism::node, operator_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#12985 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#13696 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#13008 + # source://prism//lib/prism/node.rb#13719 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def operator: () -> String # - # source://prism//lib/prism/node.rb#13003 + # source://prism//lib/prism/node.rb#13714 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#12996 + # source://prism//lib/prism/node.rb#13707 sig { returns(Prism::Location) } def operator_loc; end - # attr_reader pattern: Node + # attr_reader pattern: Prism::node # - # source://prism//lib/prism/node.rb#12993 + # source://prism//lib/prism/node.rb#13704 sig { returns(Prism::Node) } def pattern; end @@ -18772,12 +21827,13 @@ class Prism::MatchPredicateNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#13032 + # source://prism//lib/prism/node.rb#13743 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#12990 + # source://prism//lib/prism/node.rb#13701 sig { returns(Prism::Node) } def value; end @@ -18789,7 +21845,7 @@ class Prism::MatchPredicateNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#13042 + # source://prism//lib/prism/node.rb#13753 def type; end end end @@ -18799,80 +21855,104 @@ end # foo => bar # ^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#13051 +# source://prism//lib/prism/node.rb#13771 class Prism::MatchRequiredNode < ::Prism::Node - # def initialize: (Node value, Node pattern, Location operator_loc, Location location) -> void + # def initialize: (Prism::node value, Prism::node pattern, Location operator_loc, Location location) -> void # # @return [MatchRequiredNode] a new instance of MatchRequiredNode # - # source://prism//lib/prism/node.rb#13053 + # source://prism//lib/prism/node.rb#13773 + sig do + params( + source: Prism::Source, + value: Prism::Node, + pattern: Prism::Node, + operator_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, value, pattern, operator_loc, location); 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#13874 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#13063 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#13783 + 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#13068 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#13788 + 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#13078 + # source://prism//lib/prism/node.rb#13798 + 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#13073 + # source://prism//lib/prism/node.rb#13793 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> MatchRequiredNode + # def copy: (?value: Prism::node, ?pattern: Prism::node, ?operator_loc: Location, ?location: Location) -> MatchRequiredNode # - # source://prism//lib/prism/node.rb#13083 - sig { params(params: T.untyped).returns(Prism::MatchRequiredNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#13803 + sig do + params( + value: Prism::Node, + pattern: Prism::Node, + operator_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::MatchRequiredNode) + end + def copy(value: T.unsafe(nil), pattern: T.unsafe(nil), operator_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#13068 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#13788 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { value: Node, pattern: Node, operator_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { value: Prism::node, pattern: Prism::node, operator_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#13097 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#13811 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#13120 + # source://prism//lib/prism/node.rb#13834 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def operator: () -> String # - # source://prism//lib/prism/node.rb#13115 + # source://prism//lib/prism/node.rb#13829 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#13108 + # source://prism//lib/prism/node.rb#13822 sig { returns(Prism::Location) } def operator_loc; end - # attr_reader pattern: Node + # attr_reader pattern: Prism::node # - # source://prism//lib/prism/node.rb#13105 + # source://prism//lib/prism/node.rb#13819 sig { returns(Prism::Node) } def pattern; end @@ -18891,12 +21971,13 @@ class Prism::MatchRequiredNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#13144 + # source://prism//lib/prism/node.rb#13858 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#13102 + # source://prism//lib/prism/node.rb#13816 sig { returns(Prism::Node) } def value; end @@ -18908,7 +21989,7 @@ class Prism::MatchRequiredNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#13154 + # source://prism//lib/prism/node.rb#13868 def type; end end end @@ -18918,75 +21999,97 @@ end # /(?bar)/ =~ baz # ^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#13163 +# source://prism//lib/prism/node.rb#13886 class Prism::MatchWriteNode < ::Prism::Node - # def initialize: (CallNode call, Array[Node] targets, Location location) -> void + # def initialize: (CallNode call, Array[LocalVariableTargetNode] targets, Location location) -> void # # @return [MatchWriteNode] a new instance of MatchWriteNode # - # source://prism//lib/prism/node.rb#13165 + # source://prism//lib/prism/node.rb#13888 + sig do + params( + source: Prism::Source, + call: Prism::CallNode, + targets: T::Array[Prism::LocalVariableTargetNode], + location: Prism::Location + ).void + end def initialize(source, call, targets, location); 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#13974 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#13174 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#13897 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end # attr_reader call: CallNode # - # source://prism//lib/prism/node.rb#13212 + # source://prism//lib/prism/node.rb#13930 sig { returns(Prism::CallNode) } def call; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#13179 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#13902 + 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#13189 + # source://prism//lib/prism/node.rb#13912 + 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#13184 + # source://prism//lib/prism/node.rb#13907 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> MatchWriteNode + # def copy: (?call: CallNode, ?targets: Array[LocalVariableTargetNode], ?location: Location) -> MatchWriteNode # - # source://prism//lib/prism/node.rb#13194 - sig { params(params: T.untyped).returns(Prism::MatchWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#13917 + sig do + params( + call: Prism::CallNode, + targets: T::Array[Prism::LocalVariableTargetNode], + location: Prism::Location + ).returns(Prism::MatchWriteNode) + end + def copy(call: T.unsafe(nil), targets: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#13179 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#13902 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { call: CallNode, targets: Array[Node], location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { call: CallNode, targets: Array[LocalVariableTargetNode], location: Location } # - # source://prism//lib/prism/node.rb#13207 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#13925 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#13219 + # source://prism//lib/prism/node.rb#13936 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end - # attr_reader targets: Array[Node] + # attr_reader targets: Array[LocalVariableTargetNode] # - # source://prism//lib/prism/node.rb#13215 - sig { returns(T::Array[Prism::Node]) } + # source://prism//lib/prism/node.rb#13933 + sig { returns(T::Array[Prism::LocalVariableTargetNode]) } def targets; end # Sometimes you want to check an instance of a node against a list of @@ -19004,7 +22107,8 @@ class Prism::MatchWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#13241 + # source://prism//lib/prism/node.rb#13958 + sig { override.returns(Symbol) } def type; end class << self @@ -19015,70 +22119,79 @@ class Prism::MatchWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#13251 + # source://prism//lib/prism/node.rb#13968 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#13257 +# source://prism//lib/prism/node.rb#13983 class Prism::MissingNode < ::Prism::Node # def initialize: (Location location) -> void # # @return [MissingNode] a new instance of MissingNode # - # source://prism//lib/prism/node.rb#13259 + # source://prism//lib/prism/node.rb#13985 + sig { params(source: Prism::Source, location: Prism::Location).void } def initialize(source, location); 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#14060 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#13266 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#13992 + 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#13271 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#13997 + 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#13281 + # source://prism//lib/prism/node.rb#14007 + 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#13276 + # source://prism//lib/prism/node.rb#14002 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> MissingNode + # def copy: (?location: Location) -> MissingNode # - # source://prism//lib/prism/node.rb#13286 - sig { params(params: T.untyped).returns(Prism::MissingNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#14012 + sig { params(location: Prism::Location).returns(Prism::MissingNode) } + def copy(location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#13271 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#13997 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location } # - # source://prism//lib/prism/node.rb#13297 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#14020 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#13303 + # source://prism//lib/prism/node.rb#14025 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -19096,7 +22209,8 @@ class Prism::MissingNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#13322 + # source://prism//lib/prism/node.rb#14044 + sig { override.returns(Symbol) } def type; end class << self @@ -19107,7 +22221,7 @@ class Prism::MissingNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#13332 + # source://prism//lib/prism/node.rb#14054 def type; end end end @@ -19117,110 +22231,140 @@ end # module Foo end # ^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#13341 +# source://prism//lib/prism/node.rb#14069 class Prism::ModuleNode < ::Prism::Node - # def initialize: (Array[Symbol] locals, Location module_keyword_loc, Node constant_path, Node? body, Location end_keyword_loc, Symbol name, Location location) -> void + # def initialize: (Array[Symbol] locals, Location module_keyword_loc, Prism::node constant_path, Prism::node? body, Location end_keyword_loc, Symbol name, Location location) -> void # # @return [ModuleNode] a new instance of ModuleNode # - # source://prism//lib/prism/node.rb#13343 + # source://prism//lib/prism/node.rb#14071 + sig do + params( + source: Prism::Source, + 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, + location: Prism::Location + ).void + end def initialize(source, locals, module_keyword_loc, constant_path, body, end_keyword_loc, name, location); 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#14203 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#13356 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#14084 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end - # attr_reader body: Node? + # attr_reader body: Prism::node? # - # source://prism//lib/prism/node.rb#13413 + # source://prism//lib/prism/node.rb#14133 sig { returns(T.nilable(Prism::Node)) } def body; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#13361 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#14089 + 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#13374 + # source://prism//lib/prism/node.rb#14102 + 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#13366 + # source://prism//lib/prism/node.rb#14094 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # attr_reader constant_path: Node + # attr_reader constant_path: Prism::node # - # source://prism//lib/prism/node.rb#13410 + # source://prism//lib/prism/node.rb#14130 sig { returns(Prism::Node) } def constant_path; end - # def copy: (**params) -> ModuleNode + # def copy: (?locals: Array[Symbol], ?module_keyword_loc: Location, ?constant_path: Prism::node, ?body: Prism::node?, ?end_keyword_loc: Location, ?name: Symbol, ?location: Location) -> ModuleNode # - # source://prism//lib/prism/node.rb#13379 - sig { params(params: T.untyped).returns(Prism::ModuleNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#14107 + sig do + params( + 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, + location: Prism::Location + ).returns(Prism::ModuleNode) + end + def copy(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), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#13361 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#14089 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { locals: Array[Symbol], module_keyword_loc: Location, constant_path: Node, body: Node?, end_keyword_loc: Location, name: Symbol, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { locals: Array[Symbol], module_keyword_loc: Location, constant_path: Prism::node, body: Prism::node?, end_keyword_loc: Location, name: Symbol, location: Location } # - # source://prism//lib/prism/node.rb#13396 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#14115 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end # def end_keyword: () -> String # - # source://prism//lib/prism/node.rb#13431 + # source://prism//lib/prism/node.rb#14151 sig { returns(String) } def end_keyword; end # attr_reader end_keyword_loc: Location # - # source://prism//lib/prism/node.rb#13416 + # source://prism//lib/prism/node.rb#14136 sig { returns(Prism::Location) } def end_keyword_loc; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#13436 + # source://prism//lib/prism/node.rb#14156 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader locals: Array[Symbol] # - # source://prism//lib/prism/node.rb#13401 + # source://prism//lib/prism/node.rb#14120 sig { returns(T::Array[Symbol]) } def locals; end # def module_keyword: () -> String # - # source://prism//lib/prism/node.rb#13426 + # source://prism//lib/prism/node.rb#14146 sig { returns(String) } def module_keyword; end # attr_reader module_keyword_loc: Location # - # source://prism//lib/prism/node.rb#13404 + # source://prism//lib/prism/node.rb#14123 sig { returns(Prism::Location) } def module_keyword_loc; end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#13422 + # source://prism//lib/prism/node.rb#14143 sig { returns(Symbol) } def name; end @@ -19239,7 +22383,8 @@ class Prism::ModuleNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#13467 + # source://prism//lib/prism/node.rb#14187 + sig { override.returns(Symbol) } def type; end class << self @@ -19250,7 +22395,7 @@ class Prism::ModuleNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#13477 + # source://prism//lib/prism/node.rb#14197 def type; end end end @@ -19260,104 +22405,136 @@ end # a, (b, c) = 1, 2, 3 # ^^^^^^ # -# source://prism//lib/prism/node.rb#13486 +# source://prism//lib/prism/node.rb#14219 class Prism::MultiTargetNode < ::Prism::Node - # def initialize: (Array[Node] lefts, Node? rest, Array[Node] rights, Location? lparen_loc, Location? rparen_loc, Location location) -> void + # def initialize: (Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode | NumberedReferenceReadNode] lefts, Prism::node? rest, Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode] rights, Location? lparen_loc, Location? rparen_loc, Location location) -> void # # @return [MultiTargetNode] a new instance of MultiTargetNode # - # source://prism//lib/prism/node.rb#13488 + # source://prism//lib/prism/node.rb#14221 + sig do + params( + source: Prism::Source, + 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(Prism::Node), + 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), + location: Prism::Location + ).void + end def initialize(source, lefts, rest, rights, lparen_loc, rparen_loc, location); 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#14360 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#13500 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#14233 + 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#13505 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#14238 + 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#13519 + # source://prism//lib/prism/node.rb#14252 + 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#13510 + # source://prism//lib/prism/node.rb#14243 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> MultiTargetNode + # def copy: (?lefts: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode | NumberedReferenceReadNode], ?rest: Prism::node?, ?rights: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode], ?lparen_loc: Location?, ?rparen_loc: Location?, ?location: Location) -> MultiTargetNode # - # source://prism//lib/prism/node.rb#13524 - sig { params(params: T.untyped).returns(Prism::MultiTargetNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#14257 + sig do + params( + 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(Prism::Node), + 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), + location: Prism::Location + ).returns(Prism::MultiTargetNode) + end + def copy(lefts: T.unsafe(nil), rest: T.unsafe(nil), rights: T.unsafe(nil), lparen_loc: T.unsafe(nil), rparen_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#13505 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#14238 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { lefts: Array[Node], rest: Node?, rights: Array[Node], lparen_loc: Location?, rparen_loc: Location?, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { lefts: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode | NumberedReferenceReadNode], rest: Prism::node?, rights: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode], lparen_loc: Location?, rparen_loc: Location?, location: Location } # - # source://prism//lib/prism/node.rb#13540 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#14265 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#13589 + # source://prism//lib/prism/node.rb#14315 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end - # attr_reader lefts: Array[Node] + # attr_reader lefts: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode | NumberedReferenceReadNode] # - # source://prism//lib/prism/node.rb#13545 - sig { returns(T::Array[Prism::Node]) } + # source://prism//lib/prism/node.rb#14270 + sig do + returns(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)]) + end def lefts; end # def lparen: () -> String? # - # source://prism//lib/prism/node.rb#13579 + # source://prism//lib/prism/node.rb#14305 sig { returns(T.nilable(String)) } def lparen; end # attr_reader lparen_loc: Location? # - # source://prism//lib/prism/node.rb#13554 + # source://prism//lib/prism/node.rb#14279 sig { returns(T.nilable(Prism::Location)) } def lparen_loc; end - # attr_reader rest: Node? + # attr_reader rest: Prism::node? # - # source://prism//lib/prism/node.rb#13548 + # source://prism//lib/prism/node.rb#14273 sig { returns(T.nilable(Prism::Node)) } def rest; end - # attr_reader rights: Array[Node] + # attr_reader rights: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode | RequiredParameterNode | BackReferenceReadNode] # - # source://prism//lib/prism/node.rb#13551 - sig { returns(T::Array[Prism::Node]) } + # source://prism//lib/prism/node.rb#14276 + sig do + returns(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)]) + end def rights; end # def rparen: () -> String? # - # source://prism//lib/prism/node.rb#13584 + # source://prism//lib/prism/node.rb#14310 sig { returns(T.nilable(String)) } def rparen; end # attr_reader rparen_loc: Location? # - # source://prism//lib/prism/node.rb#13566 + # source://prism//lib/prism/node.rb#14292 sig { returns(T.nilable(Prism::Location)) } def rparen_loc; end @@ -19376,7 +22553,8 @@ class Prism::MultiTargetNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#13618 + # source://prism//lib/prism/node.rb#14344 + sig { override.returns(Symbol) } def type; end class << self @@ -19387,7 +22565,7 @@ class Prism::MultiTargetNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#13628 + # source://prism//lib/prism/node.rb#14354 def type; end end end @@ -19397,116 +22575,152 @@ end # a, b, c = 1, 2, 3 # ^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#13637 +# source://prism//lib/prism/node.rb#14376 class Prism::MultiWriteNode < ::Prism::Node - # def initialize: (Array[Node] lefts, Node? rest, Array[Node] rights, Location? lparen_loc, Location? rparen_loc, Location operator_loc, Node value, Location location) -> void + # def initialize: (Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode] lefts, Prism::node? rest, Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode] rights, Location? lparen_loc, Location? rparen_loc, Location operator_loc, Prism::node value, Location location) -> void # # @return [MultiWriteNode] a new instance of MultiWriteNode # - # source://prism//lib/prism/node.rb#13639 + # source://prism//lib/prism/node.rb#14378 + sig do + params( + source: Prism::Source, + 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(Prism::Node), + 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, + location: Prism::Location + ).void + end def initialize(source, lefts, rest, rights, lparen_loc, rparen_loc, operator_loc, value, location); 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#14538 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#13653 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#14392 + 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#13658 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#14397 + 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#13673 + # source://prism//lib/prism/node.rb#14412 + 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#13663 + # source://prism//lib/prism/node.rb#14402 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> MultiWriteNode + # def copy: (?lefts: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode], ?rest: Prism::node?, ?rights: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode], ?lparen_loc: Location?, ?rparen_loc: Location?, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> MultiWriteNode # - # source://prism//lib/prism/node.rb#13678 - sig { params(params: T.untyped).returns(Prism::MultiWriteNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#14417 + sig do + params( + 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(Prism::Node), + 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, + location: Prism::Location + ).returns(Prism::MultiWriteNode) + end + def copy(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), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#13658 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#14397 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { lefts: Array[Node], rest: Node?, rights: Array[Node], lparen_loc: Location?, rparen_loc: Location?, operator_loc: Location, value: Node, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { lefts: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode], rest: Prism::node?, rights: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode], lparen_loc: Location?, rparen_loc: Location?, operator_loc: Location, value: Prism::node, location: Location } # - # source://prism//lib/prism/node.rb#13696 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#14425 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#13759 + # source://prism//lib/prism/node.rb#14490 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end - # attr_reader lefts: Array[Node] + # attr_reader lefts: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode] # - # source://prism//lib/prism/node.rb#13701 - sig { returns(T::Array[Prism::Node]) } + # source://prism//lib/prism/node.rb#14430 + sig do + returns(T::Array[T.any(Prism::LocalVariableTargetNode, Prism::InstanceVariableTargetNode, Prism::ClassVariableTargetNode, Prism::GlobalVariableTargetNode, Prism::ConstantTargetNode, Prism::ConstantPathTargetNode, Prism::CallTargetNode, Prism::IndexTargetNode, Prism::MultiTargetNode)]) + end def lefts; end # def lparen: () -> String? # - # source://prism//lib/prism/node.rb#13744 + # source://prism//lib/prism/node.rb#14475 sig { returns(T.nilable(String)) } def lparen; end # attr_reader lparen_loc: Location? # - # source://prism//lib/prism/node.rb#13710 + # source://prism//lib/prism/node.rb#14439 sig { returns(T.nilable(Prism::Location)) } def lparen_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#13754 + # source://prism//lib/prism/node.rb#14485 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#13734 + # source://prism//lib/prism/node.rb#14465 sig { returns(Prism::Location) } def operator_loc; end - # attr_reader rest: Node? + # attr_reader rest: Prism::node? # - # source://prism//lib/prism/node.rb#13704 + # source://prism//lib/prism/node.rb#14433 sig { returns(T.nilable(Prism::Node)) } def rest; end - # attr_reader rights: Array[Node] + # attr_reader rights: Array[LocalVariableTargetNode | InstanceVariableTargetNode | ClassVariableTargetNode | GlobalVariableTargetNode | ConstantTargetNode | ConstantPathTargetNode | CallTargetNode | IndexTargetNode | MultiTargetNode] # - # source://prism//lib/prism/node.rb#13707 - sig { returns(T::Array[Prism::Node]) } + # source://prism//lib/prism/node.rb#14436 + sig do + returns(T::Array[T.any(Prism::LocalVariableTargetNode, Prism::InstanceVariableTargetNode, Prism::ClassVariableTargetNode, Prism::GlobalVariableTargetNode, Prism::ConstantTargetNode, Prism::ConstantPathTargetNode, Prism::CallTargetNode, Prism::IndexTargetNode, Prism::MultiTargetNode)]) + end def rights; end # def rparen: () -> String? # - # source://prism//lib/prism/node.rb#13749 + # source://prism//lib/prism/node.rb#14480 sig { returns(T.nilable(String)) } def rparen; end # attr_reader rparen_loc: Location? # - # source://prism//lib/prism/node.rb#13722 + # source://prism//lib/prism/node.rb#14452 sig { returns(T.nilable(Prism::Location)) } def rparen_loc; end @@ -19525,12 +22739,13 @@ class Prism::MultiWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#13791 + # source://prism//lib/prism/node.rb#14522 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#13740 + # source://prism//lib/prism/node.rb#14472 sig { returns(Prism::Node) } def value; end @@ -19542,7 +22757,7 @@ class Prism::MultiWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#13801 + # source://prism//lib/prism/node.rb#14532 def type; end end end @@ -19551,747 +22766,759 @@ end # 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#12 +# source://prism//lib/prism/mutation_compiler.rb#13 class Prism::MutationCompiler < ::Prism::Compiler # Copy a AliasGlobalVariableNode node # - # source://prism//lib/prism/mutation_compiler.rb#14 + # 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#19 + # 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#24 + # 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#29 + # 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#34 + # 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#39 + # 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#44 + # 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#49 + # 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#54 + # 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#59 + # 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#64 + # 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#69 + # 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#74 + # 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#79 + # 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#84 + # 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#89 + # 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#94 + # 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#99 + # 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#104 + # 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#109 + # 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#114 + # 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#119 + # 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#124 + # 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#129 + # 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#134 + # 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#139 + # 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#144 + # 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#149 + # 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#154 + # 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#159 + # 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#164 + # 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#169 + # 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#174 + # 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#179 + # 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#184 + # 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#189 + # 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#194 + # 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#199 + # 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#204 + # 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#209 + # 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#214 + # 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#219 + # 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#224 + # 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#229 + # 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#234 + # 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#239 + # 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#244 + # 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#249 + # 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#254 + # 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#259 + # 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#264 + # 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#269 + # 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#274 + # 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#279 + # 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#284 + # 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#289 + # 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#294 + # 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#299 + # 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#304 + # 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#309 + # 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#314 + # 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#319 + # 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#324 + # 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#329 + # 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#334 + # 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#339 + # 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#344 + # 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#349 + # 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#354 + # 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#359 + # 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#364 + # 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#369 + # 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#374 + # 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#379 + # 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#384 + # 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#389 + # 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#394 + # 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#399 + # 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#404 + # 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#409 + # 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#414 + # 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#419 + # 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#424 + # 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#429 + # 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#434 + # 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#439 + # 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#444 + # source://prism//lib/prism/mutation_compiler.rb#445 def visit_interpolated_x_string_node(node); end + # Copy a ItParametersNode node + # + # source://prism//lib/prism/mutation_compiler.rb#450 + def visit_it_parameters_node(node); end + # Copy a KeywordHashNode node # - # source://prism//lib/prism/mutation_compiler.rb#449 + # source://prism//lib/prism/mutation_compiler.rb#455 def visit_keyword_hash_node(node); end # Copy a KeywordRestParameterNode node # - # source://prism//lib/prism/mutation_compiler.rb#454 + # source://prism//lib/prism/mutation_compiler.rb#460 def visit_keyword_rest_parameter_node(node); end # Copy a LambdaNode node # - # source://prism//lib/prism/mutation_compiler.rb#459 + # source://prism//lib/prism/mutation_compiler.rb#465 def visit_lambda_node(node); end # Copy a LocalVariableAndWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#464 + # source://prism//lib/prism/mutation_compiler.rb#470 def visit_local_variable_and_write_node(node); end # Copy a LocalVariableOperatorWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#469 + # source://prism//lib/prism/mutation_compiler.rb#475 def visit_local_variable_operator_write_node(node); end # Copy a LocalVariableOrWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#474 + # source://prism//lib/prism/mutation_compiler.rb#480 def visit_local_variable_or_write_node(node); end # Copy a LocalVariableReadNode node # - # source://prism//lib/prism/mutation_compiler.rb#479 + # source://prism//lib/prism/mutation_compiler.rb#485 def visit_local_variable_read_node(node); end # Copy a LocalVariableTargetNode node # - # source://prism//lib/prism/mutation_compiler.rb#484 + # source://prism//lib/prism/mutation_compiler.rb#490 def visit_local_variable_target_node(node); end # Copy a LocalVariableWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#489 + # source://prism//lib/prism/mutation_compiler.rb#495 def visit_local_variable_write_node(node); end # Copy a MatchLastLineNode node # - # source://prism//lib/prism/mutation_compiler.rb#494 + # source://prism//lib/prism/mutation_compiler.rb#500 def visit_match_last_line_node(node); end # Copy a MatchPredicateNode node # - # source://prism//lib/prism/mutation_compiler.rb#499 + # source://prism//lib/prism/mutation_compiler.rb#505 def visit_match_predicate_node(node); end # Copy a MatchRequiredNode node # - # source://prism//lib/prism/mutation_compiler.rb#504 + # source://prism//lib/prism/mutation_compiler.rb#510 def visit_match_required_node(node); end # Copy a MatchWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#509 + # source://prism//lib/prism/mutation_compiler.rb#515 def visit_match_write_node(node); end # Copy a MissingNode node # - # source://prism//lib/prism/mutation_compiler.rb#514 + # source://prism//lib/prism/mutation_compiler.rb#520 def visit_missing_node(node); end # Copy a ModuleNode node # - # source://prism//lib/prism/mutation_compiler.rb#519 + # source://prism//lib/prism/mutation_compiler.rb#525 def visit_module_node(node); end # Copy a MultiTargetNode node # - # source://prism//lib/prism/mutation_compiler.rb#524 + # source://prism//lib/prism/mutation_compiler.rb#530 def visit_multi_target_node(node); end # Copy a MultiWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#529 + # source://prism//lib/prism/mutation_compiler.rb#535 def visit_multi_write_node(node); end # Copy a NextNode node # - # source://prism//lib/prism/mutation_compiler.rb#534 + # source://prism//lib/prism/mutation_compiler.rb#540 def visit_next_node(node); end # Copy a NilNode node # - # source://prism//lib/prism/mutation_compiler.rb#539 + # source://prism//lib/prism/mutation_compiler.rb#545 def visit_nil_node(node); end # Copy a NoKeywordsParameterNode node # - # source://prism//lib/prism/mutation_compiler.rb#544 + # source://prism//lib/prism/mutation_compiler.rb#550 def visit_no_keywords_parameter_node(node); end # Copy a NumberedParametersNode node # - # source://prism//lib/prism/mutation_compiler.rb#549 + # source://prism//lib/prism/mutation_compiler.rb#555 def visit_numbered_parameters_node(node); end # Copy a NumberedReferenceReadNode node # - # source://prism//lib/prism/mutation_compiler.rb#554 + # source://prism//lib/prism/mutation_compiler.rb#560 def visit_numbered_reference_read_node(node); end # Copy a OptionalKeywordParameterNode node # - # source://prism//lib/prism/mutation_compiler.rb#559 + # source://prism//lib/prism/mutation_compiler.rb#565 def visit_optional_keyword_parameter_node(node); end # Copy a OptionalParameterNode node # - # source://prism//lib/prism/mutation_compiler.rb#564 + # source://prism//lib/prism/mutation_compiler.rb#570 def visit_optional_parameter_node(node); end # Copy a OrNode node # - # source://prism//lib/prism/mutation_compiler.rb#569 + # source://prism//lib/prism/mutation_compiler.rb#575 def visit_or_node(node); end # Copy a ParametersNode node # - # source://prism//lib/prism/mutation_compiler.rb#574 + # source://prism//lib/prism/mutation_compiler.rb#580 def visit_parameters_node(node); end # Copy a ParenthesesNode node # - # source://prism//lib/prism/mutation_compiler.rb#579 + # source://prism//lib/prism/mutation_compiler.rb#585 def visit_parentheses_node(node); end # Copy a PinnedExpressionNode node # - # source://prism//lib/prism/mutation_compiler.rb#584 + # source://prism//lib/prism/mutation_compiler.rb#590 def visit_pinned_expression_node(node); end # Copy a PinnedVariableNode node # - # source://prism//lib/prism/mutation_compiler.rb#589 + # source://prism//lib/prism/mutation_compiler.rb#595 def visit_pinned_variable_node(node); end # Copy a PostExecutionNode node # - # source://prism//lib/prism/mutation_compiler.rb#594 + # source://prism//lib/prism/mutation_compiler.rb#600 def visit_post_execution_node(node); end # Copy a PreExecutionNode node # - # source://prism//lib/prism/mutation_compiler.rb#599 + # source://prism//lib/prism/mutation_compiler.rb#605 def visit_pre_execution_node(node); end # Copy a ProgramNode node # - # source://prism//lib/prism/mutation_compiler.rb#604 + # source://prism//lib/prism/mutation_compiler.rb#610 def visit_program_node(node); end # Copy a RangeNode node # - # source://prism//lib/prism/mutation_compiler.rb#609 + # source://prism//lib/prism/mutation_compiler.rb#615 def visit_range_node(node); end # Copy a RationalNode node # - # source://prism//lib/prism/mutation_compiler.rb#614 + # source://prism//lib/prism/mutation_compiler.rb#620 def visit_rational_node(node); end # Copy a RedoNode node # - # source://prism//lib/prism/mutation_compiler.rb#619 + # source://prism//lib/prism/mutation_compiler.rb#625 def visit_redo_node(node); end # Copy a RegularExpressionNode node # - # source://prism//lib/prism/mutation_compiler.rb#624 + # source://prism//lib/prism/mutation_compiler.rb#630 def visit_regular_expression_node(node); end # Copy a RequiredKeywordParameterNode node # - # source://prism//lib/prism/mutation_compiler.rb#629 + # source://prism//lib/prism/mutation_compiler.rb#635 def visit_required_keyword_parameter_node(node); end # Copy a RequiredParameterNode node # - # source://prism//lib/prism/mutation_compiler.rb#634 + # source://prism//lib/prism/mutation_compiler.rb#640 def visit_required_parameter_node(node); end # Copy a RescueModifierNode node # - # source://prism//lib/prism/mutation_compiler.rb#639 + # source://prism//lib/prism/mutation_compiler.rb#645 def visit_rescue_modifier_node(node); end # Copy a RescueNode node # - # source://prism//lib/prism/mutation_compiler.rb#644 + # source://prism//lib/prism/mutation_compiler.rb#650 def visit_rescue_node(node); end # Copy a RestParameterNode node # - # source://prism//lib/prism/mutation_compiler.rb#649 + # source://prism//lib/prism/mutation_compiler.rb#655 def visit_rest_parameter_node(node); end # Copy a RetryNode node # - # source://prism//lib/prism/mutation_compiler.rb#654 + # source://prism//lib/prism/mutation_compiler.rb#660 def visit_retry_node(node); end # Copy a ReturnNode node # - # source://prism//lib/prism/mutation_compiler.rb#659 + # source://prism//lib/prism/mutation_compiler.rb#665 def visit_return_node(node); end # Copy a SelfNode node # - # source://prism//lib/prism/mutation_compiler.rb#664 + # source://prism//lib/prism/mutation_compiler.rb#670 def visit_self_node(node); end + # Copy a ShareableConstantNode node + # + # source://prism//lib/prism/mutation_compiler.rb#675 + def visit_shareable_constant_node(node); end + # Copy a SingletonClassNode node # - # source://prism//lib/prism/mutation_compiler.rb#669 + # source://prism//lib/prism/mutation_compiler.rb#680 def visit_singleton_class_node(node); end # Copy a SourceEncodingNode node # - # source://prism//lib/prism/mutation_compiler.rb#674 + # source://prism//lib/prism/mutation_compiler.rb#685 def visit_source_encoding_node(node); end # Copy a SourceFileNode node # - # source://prism//lib/prism/mutation_compiler.rb#679 + # source://prism//lib/prism/mutation_compiler.rb#690 def visit_source_file_node(node); end # Copy a SourceLineNode node # - # source://prism//lib/prism/mutation_compiler.rb#684 + # source://prism//lib/prism/mutation_compiler.rb#695 def visit_source_line_node(node); end # Copy a SplatNode node # - # source://prism//lib/prism/mutation_compiler.rb#689 + # source://prism//lib/prism/mutation_compiler.rb#700 def visit_splat_node(node); end # Copy a StatementsNode node # - # source://prism//lib/prism/mutation_compiler.rb#694 + # source://prism//lib/prism/mutation_compiler.rb#705 def visit_statements_node(node); end # Copy a StringNode node # - # source://prism//lib/prism/mutation_compiler.rb#699 + # source://prism//lib/prism/mutation_compiler.rb#710 def visit_string_node(node); end # Copy a SuperNode node # - # source://prism//lib/prism/mutation_compiler.rb#704 + # source://prism//lib/prism/mutation_compiler.rb#715 def visit_super_node(node); end # Copy a SymbolNode node # - # source://prism//lib/prism/mutation_compiler.rb#709 + # source://prism//lib/prism/mutation_compiler.rb#720 def visit_symbol_node(node); end # Copy a TrueNode node # - # source://prism//lib/prism/mutation_compiler.rb#714 + # source://prism//lib/prism/mutation_compiler.rb#725 def visit_true_node(node); end # Copy a UndefNode node # - # source://prism//lib/prism/mutation_compiler.rb#719 + # source://prism//lib/prism/mutation_compiler.rb#730 def visit_undef_node(node); end # Copy a UnlessNode node # - # source://prism//lib/prism/mutation_compiler.rb#724 + # source://prism//lib/prism/mutation_compiler.rb#735 def visit_unless_node(node); end # Copy a UntilNode node # - # source://prism//lib/prism/mutation_compiler.rb#729 + # source://prism//lib/prism/mutation_compiler.rb#740 def visit_until_node(node); end # Copy a WhenNode node # - # source://prism//lib/prism/mutation_compiler.rb#734 + # source://prism//lib/prism/mutation_compiler.rb#745 def visit_when_node(node); end # Copy a WhileNode node # - # source://prism//lib/prism/mutation_compiler.rb#739 + # source://prism//lib/prism/mutation_compiler.rb#750 def visit_while_node(node); end # Copy a XStringNode node # - # source://prism//lib/prism/mutation_compiler.rb#744 + # source://prism//lib/prism/mutation_compiler.rb#755 def visit_x_string_node(node); end # Copy a YieldNode node # - # source://prism//lib/prism/mutation_compiler.rb#749 + # source://prism//lib/prism/mutation_compiler.rb#760 def visit_yield_node(node); end + + Result = type_member end # Represents the use of the `next` keyword. @@ -20299,80 +23526,102 @@ end # next 1 # ^^^^^^ # -# source://prism//lib/prism/node.rb#13810 +# source://prism//lib/prism/node.rb#14556 class Prism::NextNode < ::Prism::Node # def initialize: (ArgumentsNode? arguments, Location keyword_loc, Location location) -> void # # @return [NextNode] a new instance of NextNode # - # source://prism//lib/prism/node.rb#13812 + # source://prism//lib/prism/node.rb#14558 + sig do + params( + source: Prism::Source, + arguments: T.nilable(Prism::ArgumentsNode), + keyword_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, arguments, keyword_loc, location); 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#14659 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#13821 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#14567 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end # attr_reader arguments: ArgumentsNode? # - # source://prism//lib/prism/node.rb#13861 + # source://prism//lib/prism/node.rb#14602 sig { returns(T.nilable(Prism::ArgumentsNode)) } def arguments; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#13826 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#14572 + 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#13838 + # source://prism//lib/prism/node.rb#14584 + 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#13831 + # source://prism//lib/prism/node.rb#14577 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> NextNode + # def copy: (?arguments: ArgumentsNode?, ?keyword_loc: Location, ?location: Location) -> NextNode # - # source://prism//lib/prism/node.rb#13843 - sig { params(params: T.untyped).returns(Prism::NextNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#14589 + sig do + params( + arguments: T.nilable(Prism::ArgumentsNode), + keyword_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::NextNode) + end + def copy(arguments: T.unsafe(nil), keyword_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#13826 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#14572 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { arguments: ArgumentsNode?, keyword_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#13856 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#14597 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#13876 + # source://prism//lib/prism/node.rb#14617 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#13871 + # source://prism//lib/prism/node.rb#14612 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#13864 + # source://prism//lib/prism/node.rb#14605 sig { returns(Prism::Location) } def keyword_loc; end @@ -20391,7 +23640,8 @@ class Prism::NextNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#13902 + # source://prism//lib/prism/node.rb#14643 + sig { override.returns(Symbol) } def type; end class << self @@ -20402,7 +23652,7 @@ class Prism::NextNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#13912 + # source://prism//lib/prism/node.rb#14653 def type; end end end @@ -20412,63 +23662,72 @@ end # nil # ^^^ # -# source://prism//lib/prism/node.rb#13921 +# source://prism//lib/prism/node.rb#14670 class Prism::NilNode < ::Prism::Node # def initialize: (Location location) -> void # # @return [NilNode] a new instance of NilNode # - # source://prism//lib/prism/node.rb#13923 + # source://prism//lib/prism/node.rb#14672 + sig { params(source: Prism::Source, location: Prism::Location).void } def initialize(source, location); 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#14747 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#13930 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#14679 + 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#13935 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#14684 + 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#13945 + # source://prism//lib/prism/node.rb#14694 + 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#13940 + # source://prism//lib/prism/node.rb#14689 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> NilNode + # def copy: (?location: Location) -> NilNode # - # source://prism//lib/prism/node.rb#13950 - sig { params(params: T.untyped).returns(Prism::NilNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#14699 + sig { params(location: Prism::Location).returns(Prism::NilNode) } + def copy(location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#13935 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#14684 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location } # - # source://prism//lib/prism/node.rb#13961 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#14707 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#13967 + # source://prism//lib/prism/node.rb#14712 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -20486,7 +23745,8 @@ class Prism::NilNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#13986 + # source://prism//lib/prism/node.rb#14731 + sig { override.returns(Symbol) } def type; end class << self @@ -20497,7 +23757,7 @@ class Prism::NilNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#13996 + # source://prism//lib/prism/node.rb#14741 def type; end end end @@ -20508,86 +23768,108 @@ end # ^^^^^ # end # -# source://prism//lib/prism/node.rb#14006 +# source://prism//lib/prism/node.rb#14757 class Prism::NoKeywordsParameterNode < ::Prism::Node # def initialize: (Location operator_loc, Location keyword_loc, Location location) -> void # # @return [NoKeywordsParameterNode] a new instance of NoKeywordsParameterNode # - # source://prism//lib/prism/node.rb#14008 + # source://prism//lib/prism/node.rb#14759 + sig do + params( + source: Prism::Source, + operator_loc: Prism::Location, + keyword_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, operator_loc, keyword_loc, location); 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#14862 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#14017 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#14768 + 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#14022 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#14773 + 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#14032 + # source://prism//lib/prism/node.rb#14783 + 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#14027 + # source://prism//lib/prism/node.rb#14778 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> NoKeywordsParameterNode + # def copy: (?operator_loc: Location, ?keyword_loc: Location, ?location: Location) -> NoKeywordsParameterNode # - # source://prism//lib/prism/node.rb#14037 - sig { params(params: T.untyped).returns(Prism::NoKeywordsParameterNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#14788 + sig do + params( + operator_loc: Prism::Location, + keyword_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::NoKeywordsParameterNode) + end + def copy(operator_loc: T.unsafe(nil), keyword_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#14022 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#14773 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { operator_loc: Location, keyword_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#14050 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#14796 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#14078 + # source://prism//lib/prism/node.rb#14825 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#14073 + # source://prism//lib/prism/node.rb#14820 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#14061 + # source://prism//lib/prism/node.rb#14808 sig { returns(Prism::Location) } def keyword_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#14068 + # source://prism//lib/prism/node.rb#14815 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#14055 + # source://prism//lib/prism/node.rb#14801 sig { returns(Prism::Location) } def operator_loc; end @@ -20606,7 +23888,8 @@ class Prism::NoKeywordsParameterNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#14099 + # source://prism//lib/prism/node.rb#14846 + sig { override.returns(Symbol) } def type; end class << self @@ -20617,7 +23900,7 @@ class Prism::NoKeywordsParameterNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#14109 + # source://prism//lib/prism/node.rb#14856 def type; end end end @@ -20625,14 +23908,16 @@ 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#11 +# 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#62 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#90 + sig { abstract.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end # Returns an array of child nodes, including `nil`s in the place of optional @@ -20640,8 +23925,8 @@ class Prism::Node # # @raise [NoMethodError] # - # source://prism//lib/prism/node.rb#68 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#96 + 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 @@ -20649,7 +23934,8 @@ class Prism::Node # # @raise [NoMethodError] # - # source://prism//lib/prism/node.rb#82 + # source://prism//lib/prism/node.rb#110 + 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 @@ -20657,8 +23943,8 @@ class Prism::Node # # @raise [NoMethodError] # - # source://prism//lib/prism/node.rb#76 - sig { returns(T::Array[Prism::Node]) } + # source://prism//lib/prism/node.rb#104 + 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 @@ -20666,40 +23952,66 @@ class Prism::Node # # @raise [NoMethodError] # - # source://prism//lib/prism/node.rb#68 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#96 + sig { abstract.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; 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#34 + 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#121 + sig { abstract.params(inspector: Prism::NodeInspector).returns(String) } + def inspect(inspector = T.unsafe(nil)); end + # A Location instance that represents the location of this node in the # source. # - # source://prism//lib/prism/node.rb#18 + # source://prism//lib/prism/node.rb#19 sig { returns(Prism::Location) } def location; end # @return [Boolean] # - # source://prism//lib/prism/node.rb#23 + # source://prism//lib/prism/node.rb#39 def newline?; end # Similar to inspect, but respects the current level of indentation given by # the pretty print object. # - # source://prism//lib/prism/node.rb#42 + # source://prism//lib/prism/node.rb#58 + sig { params(q: T.untyped).void } def pretty_print(q); end - # source://prism//lib/prism/node.rb#27 + # source://prism//lib/prism/node.rb#43 def set_newline_flag(newline_marked); end # Slice the location of the node from the source. # - # source://prism//lib/prism/node.rb#36 + # source://prism//lib/prism/node.rb#52 sig { returns(String) } def slice; 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#27 + sig { returns(Integer) } + def start_offset; end + # Convert this node into a graphviz dot graph string. # - # source://prism//lib/prism/node.rb#50 + # source://prism//lib/prism/node.rb#66 sig { returns(String) } def to_dot; end @@ -20708,16 +24020,35 @@ class Prism::Node # # @raise [NoMethodError] # - # source://prism//lib/prism/node.rb#88 - sig { returns(Symbol) } + # source://prism//lib/prism/node.rb#116 + sig { abstract.returns(Symbol) } def type; end private # A pointer to the source that this node was created from. # - # source://prism//lib/prism/node.rb#13 + # 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#74 + def fields; end + + # Returns the type of the node as a symbol. + # + # @raise [NoMethodError] + # + # source://prism//lib/prism/node.rb#126 + def type; end + end end # This object is responsible for generating the output for the inspect method @@ -20733,55 +24064,44 @@ class Prism::NodeInspector # Appends a line to the output with the current prefix. # # source://prism//lib/prism/node_inspector.rb#15 - sig { params(line: String).void } def <<(line); end # Returns a new inspector that can be used to inspect a child node. # # source://prism//lib/prism/node_inspector.rb#59 - sig { params(append: String).returns(Prism::NodeInspector) } def child_inspector(append); end # Generates a string that represents a child node. # # source://prism//lib/prism/node_inspector.rb#54 - sig { params(node: Prism::Node, append: String).returns(String) } def child_node(node, append); end # This generates a string that is used as the header of the inspect output # for any given node. # # source://prism//lib/prism/node_inspector.rb#21 - # This generates a string that is used as the header of the inspect output - sig { params(node: Prism::Node).returns(String) } def header(node); end # Generates a string that represents a list of nodes. It handles properly # using the box drawing characters to make the output look nice. # # source://prism//lib/prism/node_inspector.rb#31 - # Generates a string that represents a list of nodes. It handles properly - sig { params(prefix: String, nodes: T::Array[Prism::Node]).returns(String) } def list(prefix, nodes); end # Generates a string that represents a location field on a node. # # source://prism//lib/prism/node_inspector.rb#45 - sig { params(value: Prism::Location).returns(String) } def location(value); end # source://prism//lib/prism/node_inspector.rb#7 - sig { returns(String) } def output; end # source://prism//lib/prism/node_inspector.rb#7 - sig { returns(String) } def prefix; end # Returns the output as a string. # # source://prism//lib/prism/node_inspector.rb#64 - sig { returns(String) } def to_str; end end @@ -20790,68 +24110,77 @@ end # -> { _1 + _2 } # ^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#14118 +# source://prism//lib/prism/node.rb#14873 class Prism::NumberedParametersNode < ::Prism::Node # def initialize: (Integer maximum, Location location) -> void # # @return [NumberedParametersNode] a new instance of NumberedParametersNode # - # source://prism//lib/prism/node.rb#14120 + # source://prism//lib/prism/node.rb#14875 + sig { params(source: Prism::Source, maximum: Integer, location: Prism::Location).void } def initialize(source, maximum, location); 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#14955 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#14128 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#14883 + 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#14133 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#14888 + 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#14143 + # source://prism//lib/prism/node.rb#14898 + 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#14138 + # source://prism//lib/prism/node.rb#14893 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> NumberedParametersNode + # def copy: (?maximum: Integer, ?location: Location) -> NumberedParametersNode # - # source://prism//lib/prism/node.rb#14148 - sig { params(params: T.untyped).returns(Prism::NumberedParametersNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#14903 + sig { params(maximum: Integer, location: Prism::Location).returns(Prism::NumberedParametersNode) } + def copy(maximum: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#14133 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#14888 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { maximum: Integer, location: Location } # - # source://prism//lib/prism/node.rb#14160 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#14911 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#14169 + # source://prism//lib/prism/node.rb#14919 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader maximum: Integer # - # source://prism//lib/prism/node.rb#14165 + # source://prism//lib/prism/node.rb#14916 sig { returns(Integer) } def maximum; end @@ -20870,7 +24199,8 @@ class Prism::NumberedParametersNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#14189 + # source://prism//lib/prism/node.rb#14939 + sig { override.returns(Symbol) } def type; end class << self @@ -20881,7 +24211,7 @@ class Prism::NumberedParametersNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#14199 + # source://prism//lib/prism/node.rb#14949 def type; end end end @@ -20891,74 +24221,83 @@ end # $1 # ^^ # -# source://prism//lib/prism/node.rb#14208 +# source://prism//lib/prism/node.rb#14965 class Prism::NumberedReferenceReadNode < ::Prism::Node # def initialize: (Integer number, Location location) -> void # # @return [NumberedReferenceReadNode] a new instance of NumberedReferenceReadNode # - # source://prism//lib/prism/node.rb#14210 + # source://prism//lib/prism/node.rb#14967 + sig { params(source: Prism::Source, number: Integer, location: Prism::Location).void } def initialize(source, number, location); 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#15053 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#14218 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#14975 + 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#14223 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#14980 + 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#14233 + # source://prism//lib/prism/node.rb#14990 + 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#14228 + # source://prism//lib/prism/node.rb#14985 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> NumberedReferenceReadNode + # def copy: (?number: Integer, ?location: Location) -> NumberedReferenceReadNode # - # source://prism//lib/prism/node.rb#14238 - sig { params(params: T.untyped).returns(Prism::NumberedReferenceReadNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#14995 + sig { params(number: Integer, location: Prism::Location).returns(Prism::NumberedReferenceReadNode) } + def copy(number: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#14223 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#14980 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { number: Integer, location: Location } # - # source://prism//lib/prism/node.rb#14250 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#15003 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#14265 + # source://prism//lib/prism/node.rb#15017 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end - # The (1-indexed, from the left) number of the capture group. Numbered references that would overflow a `uint32` result in a `number` of exactly `2**32 - 1`. + # 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 `4294967295` + # $4294967296 # number `0` # - # source://prism//lib/prism/node.rb#14261 + # source://prism//lib/prism/node.rb#15014 sig { returns(Integer) } def number; end @@ -20977,7 +24316,8 @@ class Prism::NumberedReferenceReadNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#14285 + # source://prism//lib/prism/node.rb#15037 + sig { override.returns(Symbol) } def type; end class << self @@ -20988,7 +24328,7 @@ class Prism::NumberedReferenceReadNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#14295 + # source://prism//lib/prism/node.rb#15047 def type; end end end @@ -20999,74 +24339,100 @@ end # ^^^^ # end # -# source://prism//lib/prism/node.rb#14305 +# source://prism//lib/prism/node.rb#15064 class Prism::OptionalKeywordParameterNode < ::Prism::Node - # def initialize: (Integer flags, Symbol name, Location name_loc, Node value, Location location) -> void + # def initialize: (Integer flags, Symbol name, Location name_loc, Prism::node value, Location location) -> void # # @return [OptionalKeywordParameterNode] a new instance of OptionalKeywordParameterNode # - # source://prism//lib/prism/node.rb#14307 + # source://prism//lib/prism/node.rb#15066 + sig do + params( + source: Prism::Source, + flags: Integer, + name: Symbol, + name_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).void + end def initialize(source, flags, name, name_loc, value, location); 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#15173 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#14318 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#15077 + 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#14323 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#15082 + 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#14333 + # source://prism//lib/prism/node.rb#15092 + 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#14328 + # source://prism//lib/prism/node.rb#15087 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> OptionalKeywordParameterNode + # def copy: (?flags: Integer, ?name: Symbol, ?name_loc: Location, ?value: Prism::node, ?location: Location) -> OptionalKeywordParameterNode # - # source://prism//lib/prism/node.rb#14338 - sig { params(params: T.untyped).returns(Prism::OptionalKeywordParameterNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#15097 + sig do + params( + flags: Integer, + name: Symbol, + name_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).returns(Prism::OptionalKeywordParameterNode) + end + def copy(flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), value: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#14323 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#15082 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, name: Symbol, name_loc: Location, value: Node, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, name: Symbol, name_loc: Location, value: Prism::node, location: Location } # - # source://prism//lib/prism/node.rb#14353 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#15105 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#14380 + # source://prism//lib/prism/node.rb#15132 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#14362 + # source://prism//lib/prism/node.rb#15114 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#14365 + # source://prism//lib/prism/node.rb#15117 sig { returns(Prism::Location) } def name_loc; end @@ -21074,7 +24440,7 @@ class Prism::OptionalKeywordParameterNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#14375 + # source://prism//lib/prism/node.rb#15127 sig { returns(T::Boolean) } def repeated_parameter?; end @@ -21093,20 +24459,21 @@ class Prism::OptionalKeywordParameterNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#14405 + # source://prism//lib/prism/node.rb#15157 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#14371 + # source://prism//lib/prism/node.rb#15124 sig { returns(Prism::Node) } def value; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#14358 + # source://prism//lib/prism/node.rb#15110 sig { returns(Integer) } def flags; end @@ -21118,7 +24485,7 @@ class Prism::OptionalKeywordParameterNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#14415 + # source://prism//lib/prism/node.rb#15167 def type; end end end @@ -21129,86 +24496,114 @@ end # ^^^^^ # end # -# source://prism//lib/prism/node.rb#14425 +# source://prism//lib/prism/node.rb#15187 class Prism::OptionalParameterNode < ::Prism::Node - # def initialize: (Integer flags, Symbol name, Location name_loc, Location operator_loc, Node value, Location location) -> void + # def initialize: (Integer flags, Symbol name, Location name_loc, Location operator_loc, Prism::node value, Location location) -> void # # @return [OptionalParameterNode] a new instance of OptionalParameterNode # - # source://prism//lib/prism/node.rb#14427 + # source://prism//lib/prism/node.rb#15189 + sig do + params( + source: Prism::Source, + flags: Integer, + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).void + end def initialize(source, flags, name, name_loc, operator_loc, value, location); 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#15310 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#14439 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#15201 + 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#14444 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#15206 + 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#14454 + # source://prism//lib/prism/node.rb#15216 + 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#14449 + # source://prism//lib/prism/node.rb#15211 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> OptionalParameterNode + # def copy: (?flags: Integer, ?name: Symbol, ?name_loc: Location, ?operator_loc: Location, ?value: Prism::node, ?location: Location) -> OptionalParameterNode # - # source://prism//lib/prism/node.rb#14459 - sig { params(params: T.untyped).returns(Prism::OptionalParameterNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#15221 + sig do + params( + flags: Integer, + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, + location: Prism::Location + ).returns(Prism::OptionalParameterNode) + end + def copy(flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), value: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#14444 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#15206 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, name: Symbol, name_loc: Location, operator_loc: Location, value: Node, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, name: Symbol, name_loc: Location, operator_loc: Location, value: Prism::node, location: Location } # - # source://prism//lib/prism/node.rb#14475 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#15229 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#14513 + # source://prism//lib/prism/node.rb#15268 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#14484 + # source://prism//lib/prism/node.rb#15238 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#14487 + # source://prism//lib/prism/node.rb#15241 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#14508 + # source://prism//lib/prism/node.rb#15263 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#14493 + # source://prism//lib/prism/node.rb#15248 sig { returns(Prism::Location) } def operator_loc; end @@ -21216,7 +24611,7 @@ class Prism::OptionalParameterNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#14503 + # source://prism//lib/prism/node.rb#15258 sig { returns(T::Boolean) } def repeated_parameter?; end @@ -21235,20 +24630,21 @@ class Prism::OptionalParameterNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#14539 + # source://prism//lib/prism/node.rb#15294 + sig { override.returns(Symbol) } def type; end - # attr_reader value: Node + # attr_reader value: Prism::node # - # source://prism//lib/prism/node.rb#14499 + # source://prism//lib/prism/node.rb#15255 sig { returns(Prism::Node) } def value; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#14480 + # source://prism//lib/prism/node.rb#15234 sig { returns(Integer) } def flags; end @@ -21260,7 +24656,7 @@ class Prism::OptionalParameterNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#14549 + # source://prism//lib/prism/node.rb#15304 def type; end end end @@ -21270,63 +24666,87 @@ end # left or right # ^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#14558 +# source://prism//lib/prism/node.rb#15324 class Prism::OrNode < ::Prism::Node - # def initialize: (Node left, Node right, Location operator_loc, Location location) -> void + # def initialize: (Prism::node left, Prism::node right, Location operator_loc, Location location) -> void # # @return [OrNode] a new instance of OrNode # - # source://prism//lib/prism/node.rb#14560 + # source://prism//lib/prism/node.rb#15326 + sig do + params( + source: Prism::Source, + left: Prism::Node, + right: Prism::Node, + operator_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, left, right, operator_loc, location); 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#15442 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#14570 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#15336 + 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#14575 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#15341 + 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#14585 + # source://prism//lib/prism/node.rb#15351 + 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#14580 + # source://prism//lib/prism/node.rb#15346 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> OrNode + # def copy: (?left: Prism::node, ?right: Prism::node, ?operator_loc: Location, ?location: Location) -> OrNode # - # source://prism//lib/prism/node.rb#14590 - sig { params(params: T.untyped).returns(Prism::OrNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#15356 + sig do + params( + left: Prism::Node, + right: Prism::Node, + operator_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::OrNode) + end + def copy(left: T.unsafe(nil), right: T.unsafe(nil), operator_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#14575 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#15341 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { left: Node, right: Node, operator_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { left: Prism::node, right: Prism::node, operator_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#14604 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#15364 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#14642 + # source://prism//lib/prism/node.rb#15402 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); 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). @@ -21337,13 +24757,13 @@ class Prism::OrNode < ::Prism::Node # 1 || 2 # ^ # - # source://prism//lib/prism/node.rb#14615 + # source://prism//lib/prism/node.rb#15375 sig { returns(Prism::Node) } def left; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#14637 + # source://prism//lib/prism/node.rb#15397 sig { returns(String) } def operator; end @@ -21352,7 +24772,7 @@ class Prism::OrNode < ::Prism::Node # left or right # ^^ # - # source://prism//lib/prism/node.rb#14630 + # source://prism//lib/prism/node.rb#15390 sig { returns(Prism::Location) } def operator_loc; end @@ -21364,7 +24784,7 @@ class Prism::OrNode < ::Prism::Node # 1 or 2 # ^ # - # source://prism//lib/prism/node.rb#14624 + # source://prism//lib/prism/node.rb#15384 sig { returns(Prism::Node) } def right; end @@ -21383,7 +24803,8 @@ class Prism::OrNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#14666 + # source://prism//lib/prism/node.rb#15426 + sig { override.returns(Symbol) } def type; end class << self @@ -21394,261 +24815,261 @@ class Prism::OrNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#14676 + # source://prism//lib/prism/node.rb#15436 def type; end end end # A parser for the pack template language. # -# source://prism//lib/prism/pack.rb#5 +# 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#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::AGNOSTIC_ENDIAN = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::BACK = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::BER = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::BIG_ENDIAN = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# 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#59 +# 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#88 + # 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#130 + # source://prism//lib/prism/pack.rb#131 def describe; end # The type of endianness of the directive. # - # source://prism//lib/prism/pack.rb#76 + # source://prism//lib/prism/pack.rb#77 def endian; end # The length of this directive (used for integers). # - # source://prism//lib/prism/pack.rb#85 + # 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#82 + # source://prism//lib/prism/pack.rb#83 def length_type; end # The type of signedness of the directive. # - # source://prism//lib/prism/pack.rb#73 + # source://prism//lib/prism/pack.rb#74 def signed; end # The size of the directive. # - # source://prism//lib/prism/pack.rb#79 + # 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#67 + # source://prism//lib/prism/pack.rb#68 def source; end # The type of the directive. # - # source://prism//lib/prism/pack.rb#70 + # 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#64 + # source://prism//lib/prism/pack.rb#65 def variant; end # A symbol representing the version of Ruby. # - # source://prism//lib/prism/pack.rb#61 + # 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#101 +# 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#110 +# 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#117 +# source://prism//lib/prism/pack.rb#118 Prism::Pack::Directive::SIZE_DESCRIPTIONS = T.let(T.unsafe(nil), Hash) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::ENDIAN_NA = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# 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#195 +# 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#203 + # 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#209 + # source://prism//lib/prism/pack.rb#212 def describe; end # A list of the directives in the template. # - # source://prism//lib/prism/pack.rb#197 + # source://prism//lib/prism/pack.rb#200 def directives; end # The encoding of the template. # - # source://prism//lib/prism/pack.rb#200 + # source://prism//lib/prism/pack.rb#203 def encoding; end end -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::INTEGER = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::LENGTH_FIXED = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::LENGTH_MAX = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::LENGTH_NA = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::LENGTH_RELATIVE = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::LITTLE_ENDIAN = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::MOVE = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::NATIVE_ENDIAN = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::NULL = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::SIGNED = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::SIGNED_NA = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::SIZE_16 = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::SIZE_32 = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::SIZE_64 = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::SIZE_8 = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::SIZE_INT = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::SIZE_LONG = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::SIZE_LONG_LONG = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::SIZE_NA = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::SIZE_P = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::SIZE_SHORT = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::SPACE = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::STRING_BASE64 = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::STRING_FIXED = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::STRING_HEX_HIGH = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::STRING_HEX_LOW = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::STRING_LSB = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::STRING_MIME = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::STRING_MSB = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::STRING_NULL_PADDED = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::STRING_NULL_TERMINATED = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::STRING_POINTER = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::STRING_SPACE_PADDED = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::STRING_UU = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# source://prism//lib/prism/pack.rb#56 Prism::Pack::UNSIGNED = T.let(T.unsafe(nil), Symbol) -# source://prism//lib/prism/pack.rb#55 +# 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#19304 +# source://prism//lib/prism/node.rb#20409 module Prism::ParameterFlags; end # a parameter name that has been repeated in the method signature # -# source://prism//lib/prism/node.rb#19306 +# source://prism//lib/prism/node.rb#20411 Prism::ParameterFlags::REPEATED_PARAMETER = T.let(T.unsafe(nil), Integer) # Represents the list of parameters on a method, block, or lambda definition. @@ -21657,110 +25078,147 @@ Prism::ParameterFlags::REPEATED_PARAMETER = T.let(T.unsafe(nil), Integer) # ^^^^^^^ # end # -# source://prism//lib/prism/node.rb#14686 +# source://prism//lib/prism/node.rb#15455 class Prism::ParametersNode < ::Prism::Node - # def initialize: (Array[Node] requireds, Array[Node] optionals, Node? rest, Array[Node] posts, Array[Node] keywords, Node? keyword_rest, BlockParameterNode? block, Location location) -> void + # def initialize: (Array[RequiredParameterNode | MultiTargetNode] requireds, Array[OptionalParameterNode] optionals, RestParameterNode | ImplicitRestNode | nil rest, Array[RequiredParameterNode | MultiTargetNode | KeywordRestParameterNode | NoKeywordsParameterNode] posts, Array[RequiredKeywordParameterNode | OptionalKeywordParameterNode] keywords, KeywordRestParameterNode | ForwardingParameterNode | NoKeywordsParameterNode | nil keyword_rest, BlockParameterNode? block, Location location) -> void # # @return [ParametersNode] a new instance of ParametersNode # - # source://prism//lib/prism/node.rb#14688 + # source://prism//lib/prism/node.rb#15457 + sig do + params( + source: Prism::Source, + 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)], + 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), + location: Prism::Location + ).void + end def initialize(source, requireds, optionals, rest, posts, keywords, keyword_rest, block, location); 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#15590 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#14702 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#15471 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end # attr_reader block: BlockParameterNode? # - # source://prism//lib/prism/node.rb#14771 + # source://prism//lib/prism/node.rb#15530 sig { returns(T.nilable(Prism::BlockParameterNode)) } def block; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#14707 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#15476 + 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#14725 + # source://prism//lib/prism/node.rb#15494 + 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#14712 + # source://prism//lib/prism/node.rb#15481 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ParametersNode + # def copy: (?requireds: Array[RequiredParameterNode | MultiTargetNode], ?optionals: Array[OptionalParameterNode], ?rest: RestParameterNode | ImplicitRestNode | nil, ?posts: Array[RequiredParameterNode | MultiTargetNode | KeywordRestParameterNode | NoKeywordsParameterNode], ?keywords: Array[RequiredKeywordParameterNode | OptionalKeywordParameterNode], ?keyword_rest: KeywordRestParameterNode | ForwardingParameterNode | NoKeywordsParameterNode | nil, ?block: BlockParameterNode?, ?location: Location) -> ParametersNode # - # source://prism//lib/prism/node.rb#14730 - sig { params(params: T.untyped).returns(Prism::ParametersNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#15499 + sig do + params( + 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)], + 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), + location: Prism::Location + ).returns(Prism::ParametersNode) + end + def copy(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), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#14707 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#15476 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { requireds: Array[Node], optionals: Array[Node], rest: Node?, posts: Array[Node], keywords: Array[Node], keyword_rest: Node?, block: BlockParameterNode?, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { requireds: Array[RequiredParameterNode | MultiTargetNode], optionals: Array[OptionalParameterNode], rest: RestParameterNode | ImplicitRestNode | nil, posts: Array[RequiredParameterNode | MultiTargetNode | KeywordRestParameterNode | NoKeywordsParameterNode], keywords: Array[RequiredKeywordParameterNode | OptionalKeywordParameterNode], keyword_rest: KeywordRestParameterNode | ForwardingParameterNode | NoKeywordsParameterNode | nil, block: BlockParameterNode?, location: Location } # - # source://prism//lib/prism/node.rb#14748 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#15507 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#14775 + # source://prism//lib/prism/node.rb#15533 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end - # attr_reader keyword_rest: Node? + # attr_reader keyword_rest: KeywordRestParameterNode | ForwardingParameterNode | NoKeywordsParameterNode | nil # - # source://prism//lib/prism/node.rb#14768 - sig { returns(T.nilable(Prism::Node)) } + # source://prism//lib/prism/node.rb#15527 + sig do + returns(T.nilable(T.any(Prism::KeywordRestParameterNode, Prism::ForwardingParameterNode, Prism::NoKeywordsParameterNode))) + end def keyword_rest; end - # attr_reader keywords: Array[Node] + # attr_reader keywords: Array[RequiredKeywordParameterNode | OptionalKeywordParameterNode] # - # source://prism//lib/prism/node.rb#14765 - sig { returns(T::Array[Prism::Node]) } + # source://prism//lib/prism/node.rb#15524 + sig { returns(T::Array[T.any(Prism::RequiredKeywordParameterNode, Prism::OptionalKeywordParameterNode)]) } def keywords; end - # attr_reader optionals: Array[Node] + # attr_reader optionals: Array[OptionalParameterNode] # - # source://prism//lib/prism/node.rb#14756 - sig { returns(T::Array[Prism::Node]) } + # source://prism//lib/prism/node.rb#15515 + sig { returns(T::Array[Prism::OptionalParameterNode]) } def optionals; end - # attr_reader posts: Array[Node] + # attr_reader posts: Array[RequiredParameterNode | MultiTargetNode | KeywordRestParameterNode | NoKeywordsParameterNode] # - # source://prism//lib/prism/node.rb#14762 - sig { returns(T::Array[Prism::Node]) } + # source://prism//lib/prism/node.rb#15521 + sig do + returns(T::Array[T.any(Prism::RequiredParameterNode, Prism::MultiTargetNode, Prism::KeywordRestParameterNode, Prism::NoKeywordsParameterNode)]) + end def posts; end - # attr_reader requireds: Array[Node] + # attr_reader requireds: Array[RequiredParameterNode | MultiTargetNode] # - # source://prism//lib/prism/node.rb#14753 - sig { returns(T::Array[Prism::Node]) } + # source://prism//lib/prism/node.rb#15512 + sig { returns(T::Array[T.any(Prism::RequiredParameterNode, Prism::MultiTargetNode)]) } def requireds; end - # attr_reader rest: Node? + # attr_reader rest: RestParameterNode | ImplicitRestNode | nil # - # source://prism//lib/prism/node.rb#14759 - sig { returns(T.nilable(Prism::Node)) } + # source://prism//lib/prism/node.rb#15518 + sig { returns(T.nilable(T.any(Prism::RestParameterNode, Prism::ImplicitRestNode))) } def rest; end # Mirrors the Method#parameters method. # - # source://prism//lib/prism/node_ext.rb#172 + # source://prism//lib/prism/node_ext.rb#210 + sig { returns(T::Array[T.any([Symbol, Symbol], [Symbol])]) } def signature; end # Sometimes you want to check an instance of a node against a list of @@ -21778,7 +25236,8 @@ class Prism::ParametersNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#14816 + # source://prism//lib/prism/node.rb#15574 + sig { override.returns(Symbol) } def type; end class << self @@ -21789,7 +25248,7 @@ class Prism::ParametersNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#14826 + # source://prism//lib/prism/node.rb#15584 def type; end end end @@ -21799,96 +25258,120 @@ end # (10 + 34) # ^^^^^^^^^ # -# source://prism//lib/prism/node.rb#14835 +# source://prism//lib/prism/node.rb#15610 class Prism::ParenthesesNode < ::Prism::Node - # def initialize: (Node? body, Location opening_loc, Location closing_loc, Location location) -> void + # def initialize: (Prism::node? body, Location opening_loc, Location closing_loc, Location location) -> void # # @return [ParenthesesNode] a new instance of ParenthesesNode # - # source://prism//lib/prism/node.rb#14837 + # source://prism//lib/prism/node.rb#15612 + sig do + params( + source: Prism::Source, + body: T.nilable(Prism::Node), + opening_loc: Prism::Location, + closing_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, body, opening_loc, closing_loc, location); 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#15731 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#14847 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#15622 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end - # attr_reader body: Node? + # attr_reader body: Prism::node? # - # source://prism//lib/prism/node.rb#14892 + # source://prism//lib/prism/node.rb#15661 sig { returns(T.nilable(Prism::Node)) } def body; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#14856 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#15631 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#14913 + # source://prism//lib/prism/node.rb#15683 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#14901 + # source://prism//lib/prism/node.rb#15671 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#14868 + # source://prism//lib/prism/node.rb#15643 + 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#14861 + # source://prism//lib/prism/node.rb#15636 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ParenthesesNode + # def copy: (?body: Prism::node?, ?opening_loc: Location, ?closing_loc: Location, ?location: Location) -> ParenthesesNode # - # source://prism//lib/prism/node.rb#14873 - sig { params(params: T.untyped).returns(Prism::ParenthesesNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#15648 + sig do + params( + body: T.nilable(Prism::Node), + opening_loc: Prism::Location, + closing_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::ParenthesesNode) + end + def copy(body: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#14856 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#15631 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { body: Node?, opening_loc: Location, closing_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { body: Prism::node?, opening_loc: Location, closing_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#14887 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#15656 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#14918 + # source://prism//lib/prism/node.rb#15688 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String # - # source://prism//lib/prism/node.rb#14908 + # source://prism//lib/prism/node.rb#15678 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#14895 + # source://prism//lib/prism/node.rb#15664 sig { returns(Prism::Location) } def opening_loc; end - # source://prism//lib/prism/node.rb#14851 + # source://prism//lib/prism/node.rb#15626 def set_newline_flag(newline_marked); end # Sometimes you want to check an instance of a node against a list of @@ -21906,7 +25389,8 @@ class Prism::ParenthesesNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#14945 + # source://prism//lib/prism/node.rb#15715 + sig { override.returns(Symbol) } def type; end class << self @@ -21917,137 +25401,140 @@ class Prism::ParenthesesNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#14955 + # source://prism//lib/prism/node.rb#15725 def type; end end end # This represents an error that was encountered during parsing. # -# source://prism//lib/prism/parse_result.rb#338 +# source://prism//lib/prism/parse_result.rb#373 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#349 - def initialize(message, location, level); end + # source://prism//lib/prism/parse_result.rb#388 + 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#356 + # source://prism//lib/prism/parse_result.rb#396 + 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#361 + # source://prism//lib/prism/parse_result.rb#401 + sig { returns(String) } def inspect; end # The level of this error. # - # source://prism//lib/prism/parse_result.rb#346 + # source://prism//lib/prism/parse_result.rb#385 + 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#343 + # source://prism//lib/prism/parse_result.rb#382 sig { returns(Prism::Location) } def location; end # The message associated with this error. # - # source://prism//lib/prism/parse_result.rb#340 + # source://prism//lib/prism/parse_result.rb#379 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#376 + sig { returns(Symbol) } + def type; end end -# This represents the result of a call to ::parse or ::parse_file. It contains -# the AST, any comments that were encounters, and any errors that were -# encountered. +# This is a result specific to the `parse_lex` and `parse_lex_file` methods. # -# source://prism//lib/prism/parse_result.rb#398 -class Prism::ParseResult - # Create a new parse result object with the given values. +# source://prism//lib/prism/parse_result.rb#532 +class Prism::ParseLexResult < ::Prism::Result + # Create a new parse lex result object with the given values. # - # @return [ParseResult] a new instance of ParseResult + # @return [ParseLexResult] a new instance of ParseLexResult # - # source://prism//lib/prism/parse_result.rb#425 + # source://prism//lib/prism/parse_result.rb#538 + 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 - # Attach the list of comments to their respective locations in the tree. + # Implement the hash pattern matching interface for ParseLexResult. # - # source://prism//lib/prism/parse_result/comments.rb#173 - def attach_comments!; end + # source://prism//lib/prism/parse_result.rb#544 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } + def deconstruct_keys(keys); end - # The list of comments that were encountered during parsing. + # 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#405 - sig { returns(T::Array[Prism::Comment]) } - def comments; end + # source://prism//lib/prism/parse_result.rb#535 + sig { returns([Prism::ProgramNode, T::Array[T.untyped]]) } + def value; end +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. +# This is a result specific to the `parse` and `parse_file` methods. +# +# source://prism//lib/prism/parse_result.rb#498 +class Prism::ParseResult < ::Prism::Result + # Create a new parse result object with the given values. # - # source://prism//lib/prism/parse_result.rb#413 - def data_loc; end + # @return [ParseResult] a new instance of ParseResult + # + # source://prism//lib/prism/parse_result.rb#503 + 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/comments.rb#190 + def attach_comments!; end # Implement the hash pattern matching interface for ParseResult. # - # source://prism//lib/prism/parse_result.rb#436 + # source://prism//lib/prism/parse_result.rb#509 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end - # The list of errors that were generated during parsing. + # Walk the tree and mark nodes that are on a new line. # - # source://prism//lib/prism/parse_result.rb#416 - sig { returns(T::Array[Prism::ParseError]) } - def errors; end + # source://prism//lib/prism/parse_result/newlines.rb#60 + def mark_newlines!; end - # Returns true if there were errors during parsing and false if there were - # not. + # The syntax tree that was parsed from the source code. # - # @return [Boolean] - # - # source://prism//lib/prism/parse_result.rb#448 - def failure?; end - - # The list of magic comments that were encountered during parsing. - # - # source://prism//lib/prism/parse_result.rb#408 - def magic_comments; end - - # Walk the tree and mark nodes that are on a new line. - # - # source://prism//lib/prism/parse_result/newlines.rb#60 - def mark_newlines!; end - - # A Source instance that represents the source code that was parsed. - # - # source://prism//lib/prism/parse_result.rb#422 - 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#442 - def success?; end - - # The value that was generated by parsing. Normally this holds the AST, but - # it can sometimes how a list of tokens or other results passed back from - # the parser. - # - # source://prism//lib/prism/parse_result.rb#402 + # source://prism//lib/prism/parse_result.rb#500 sig { returns(Prism::ProgramNode) } def value; end - - # The list of warnings that were generated during parsing. - # - # source://prism//lib/prism/parse_result.rb#419 - sig { returns(T::Array[Prism::ParseWarning]) } - def warnings; end end # When we've parsed the source, we have both the syntax tree and the list of @@ -22072,18 +25559,18 @@ class Prism::ParseResult::Comments # # @return [Comments] a new instance of Comments # - # source://prism//lib/prism/parse_result/comments.rb#78 + # 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#84 + # 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#74 + # source://prism//lib/prism/parse_result/comments.rb#82 def parse_result; end private @@ -22091,36 +25578,39 @@ class Prism::ParseResult::Comments # 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#103 + # 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#49 +# 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#52 + # source://prism//lib/prism/parse_result/comments.rb#56 def initialize(location); end - # source://prism//lib/prism/parse_result/comments.rb#68 - def <<(comment); end - # @return [Boolean] # - # source://prism//lib/prism/parse_result/comments.rb#64 + # source://prism//lib/prism/parse_result/comments.rb#68 def encloses?(comment); end - # source://prism//lib/prism/parse_result/comments.rb#60 + # source://prism//lib/prism/parse_result/comments.rb#64 def end_offset; end - # source://prism//lib/prism/parse_result/comments.rb#50 + # 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#56 + # 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 @@ -22133,9 +25623,6 @@ class Prism::ParseResult::Comments::NodeTarget # source://prism//lib/prism/parse_result/comments.rb#25 def initialize(node); end - # source://prism//lib/prism/parse_result/comments.rb#42 - def <<(comment); end - # @return [Boolean] # # source://prism//lib/prism/parse_result/comments.rb#37 @@ -22144,11 +25631,17 @@ class Prism::ParseResult::Comments::NodeTarget # 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 # The :line tracepoint event gets fired whenever the Ruby VM encounters an @@ -22204,41 +25697,52 @@ end # This represents a warning that was encountered during parsing. # -# source://prism//lib/prism/parse_result.rb#367 +# source://prism//lib/prism/parse_result.rb#407 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#378 - def initialize(message, location, level); end + # source://prism//lib/prism/parse_result.rb#422 + 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#385 + # source://prism//lib/prism/parse_result.rb#430 + 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#390 + # source://prism//lib/prism/parse_result.rb#435 + sig { returns(String) } def inspect; end # The level of this warning. # - # source://prism//lib/prism/parse_result.rb#375 + # source://prism//lib/prism/parse_result.rb#419 + 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#372 + # source://prism//lib/prism/parse_result.rb#416 sig { returns(Prism::Location) } def location; end # The message associated with this warning. # - # source://prism//lib/prism/parse_result.rb#369 + # source://prism//lib/prism/parse_result.rb#413 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#410 + sig { returns(Symbol) } + def type; end end # A pattern is an object that wraps a Ruby pattern matching expression. The @@ -22288,6 +25792,8 @@ class Prism::Pattern # 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 @@ -22301,7 +25807,7 @@ class Prism::Pattern # 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#79 + # source://prism//lib/prism/pattern.rb#86 def scan(root); end private @@ -22309,75 +25815,75 @@ class Prism::Pattern # Shortcut for combining two procs into one that returns true if both return # true. # - # source://prism//lib/prism/pattern.rb#95 + # 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#101 + # source://prism//lib/prism/pattern.rb#108 def combine_or(left, right); end # in foo | bar # - # source://prism//lib/prism/pattern.rb#136 + # source://prism//lib/prism/pattern.rb#143 def compile_alternation_pattern_node(node); end # in [foo, bar, baz] # - # source://prism//lib/prism/pattern.rb#111 + # source://prism//lib/prism/pattern.rb#118 def compile_array_pattern_node(node); end # in Prism::ConstantReadNode # - # source://prism//lib/prism/pattern.rb#141 + # source://prism//lib/prism/pattern.rb#148 def compile_constant_path_node(node); end # in ConstantReadNode # in String # - # source://prism//lib/prism/pattern.rb#153 + # source://prism//lib/prism/pattern.rb#160 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#106 + # 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#171 + # source://prism//lib/prism/pattern.rb#178 def compile_hash_pattern_node(node); end # in nil # - # source://prism//lib/prism/pattern.rb#196 + # source://prism//lib/prism/pattern.rb#208 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#225 + # source://prism//lib/prism/pattern.rb#237 def compile_node(node); end # in /foo/ # - # source://prism//lib/prism/pattern.rb#201 + # source://prism//lib/prism/pattern.rb#213 def compile_regular_expression_node(node); end # in "" # in "foo" # - # source://prism//lib/prism/pattern.rb#209 + # source://prism//lib/prism/pattern.rb#221 def compile_string_node(node); end # in :+ # in :foo # - # source://prism//lib/prism/pattern.rb#217 + # source://prism//lib/prism/pattern.rb#229 def compile_symbol_node(node); end end @@ -22400,104 +25906,130 @@ end # foo in ^(bar) # ^^^^^^ # -# source://prism//lib/prism/node.rb#14964 +# source://prism//lib/prism/node.rb#15743 class Prism::PinnedExpressionNode < ::Prism::Node - # def initialize: (Node expression, Location operator_loc, Location lparen_loc, Location rparen_loc, Location location) -> void + # def initialize: (Prism::node expression, Location operator_loc, Location lparen_loc, Location rparen_loc, Location location) -> void # # @return [PinnedExpressionNode] a new instance of PinnedExpressionNode # - # source://prism//lib/prism/node.rb#14966 + # source://prism//lib/prism/node.rb#15745 + sig do + params( + source: Prism::Source, + expression: Prism::Node, + operator_loc: Prism::Location, + lparen_loc: Prism::Location, + rparen_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, expression, operator_loc, lparen_loc, rparen_loc, location); 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#15868 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#14977 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#15756 + 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#14982 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#15761 + 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#14992 + # source://prism//lib/prism/node.rb#15771 + 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#14987 + # source://prism//lib/prism/node.rb#15766 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> PinnedExpressionNode + # def copy: (?expression: Prism::node, ?operator_loc: Location, ?lparen_loc: Location, ?rparen_loc: Location, ?location: Location) -> PinnedExpressionNode # - # source://prism//lib/prism/node.rb#14997 - sig { params(params: T.untyped).returns(Prism::PinnedExpressionNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#15776 + sig do + params( + expression: Prism::Node, + operator_loc: Prism::Location, + lparen_loc: Prism::Location, + rparen_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::PinnedExpressionNode) + end + def copy(expression: T.unsafe(nil), operator_loc: T.unsafe(nil), lparen_loc: T.unsafe(nil), rparen_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#14982 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#15761 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { expression: Node, operator_loc: Location, lparen_loc: Location, rparen_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { expression: Prism::node, operator_loc: Location, lparen_loc: Location, rparen_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#15012 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#15784 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end - # attr_reader expression: Node + # attr_reader expression: Prism::node # - # source://prism//lib/prism/node.rb#15017 + # source://prism//lib/prism/node.rb#15789 sig { returns(Prism::Node) } def expression; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#15054 + # source://prism//lib/prism/node.rb#15828 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def lparen: () -> String # - # source://prism//lib/prism/node.rb#15044 + # source://prism//lib/prism/node.rb#15818 sig { returns(String) } def lparen; end # attr_reader lparen_loc: Location # - # source://prism//lib/prism/node.rb#15026 + # source://prism//lib/prism/node.rb#15799 sig { returns(Prism::Location) } def lparen_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#15039 + # source://prism//lib/prism/node.rb#15813 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#15020 + # source://prism//lib/prism/node.rb#15792 sig { returns(Prism::Location) } def operator_loc; end # def rparen: () -> String # - # source://prism//lib/prism/node.rb#15049 + # source://prism//lib/prism/node.rb#15823 sig { returns(String) } def rparen; end # attr_reader rparen_loc: Location # - # source://prism//lib/prism/node.rb#15032 + # source://prism//lib/prism/node.rb#15806 sig { returns(Prism::Location) } def rparen_loc; end @@ -22516,7 +26048,8 @@ class Prism::PinnedExpressionNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#15078 + # source://prism//lib/prism/node.rb#15852 + sig { override.returns(Symbol) } def type; end class << self @@ -22527,7 +26060,7 @@ class Prism::PinnedExpressionNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#15088 + # source://prism//lib/prism/node.rb#15862 def type; end end end @@ -22537,74 +26070,96 @@ end # foo in ^bar # ^^^^ # -# source://prism//lib/prism/node.rb#15097 +# source://prism//lib/prism/node.rb#15881 class Prism::PinnedVariableNode < ::Prism::Node - # def initialize: (Node variable, Location operator_loc, Location location) -> void + # def initialize: (Prism::node variable, Location operator_loc, Location location) -> void # # @return [PinnedVariableNode] a new instance of PinnedVariableNode # - # source://prism//lib/prism/node.rb#15099 + # source://prism//lib/prism/node.rb#15883 + sig do + params( + source: Prism::Source, + variable: Prism::Node, + operator_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, variable, operator_loc, location); 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#15978 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#15108 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#15892 + 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#15113 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#15897 + 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#15123 + # source://prism//lib/prism/node.rb#15907 + 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#15118 + # source://prism//lib/prism/node.rb#15902 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> PinnedVariableNode + # def copy: (?variable: Prism::node, ?operator_loc: Location, ?location: Location) -> PinnedVariableNode # - # source://prism//lib/prism/node.rb#15128 - sig { params(params: T.untyped).returns(Prism::PinnedVariableNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#15912 + sig do + params( + variable: Prism::Node, + operator_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::PinnedVariableNode) + end + def copy(variable: T.unsafe(nil), operator_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#15113 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#15897 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { variable: Node, operator_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { variable: Prism::node, operator_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#15141 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#15920 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#15161 + # source://prism//lib/prism/node.rb#15940 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def operator: () -> String # - # source://prism//lib/prism/node.rb#15156 + # source://prism//lib/prism/node.rb#15935 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#15149 + # source://prism//lib/prism/node.rb#15928 sig { returns(Prism::Location) } def operator_loc; end @@ -22623,12 +26178,13 @@ class Prism::PinnedVariableNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#15183 + # source://prism//lib/prism/node.rb#15962 + sig { override.returns(Symbol) } def type; end - # attr_reader variable: Node + # attr_reader variable: Prism::node # - # source://prism//lib/prism/node.rb#15146 + # source://prism//lib/prism/node.rb#15925 sig { returns(Prism::Node) } def variable; end @@ -22640,7 +26196,7 @@ class Prism::PinnedVariableNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#15193 + # source://prism//lib/prism/node.rb#15972 def type; end end end @@ -22650,104 +26206,130 @@ end # END { foo } # ^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#15202 +# source://prism//lib/prism/node.rb#15989 class Prism::PostExecutionNode < ::Prism::Node # def initialize: (StatementsNode? statements, Location keyword_loc, Location opening_loc, Location closing_loc, Location location) -> void # # @return [PostExecutionNode] a new instance of PostExecutionNode # - # source://prism//lib/prism/node.rb#15204 + # source://prism//lib/prism/node.rb#15991 + sig do + params( + source: Prism::Source, + statements: T.nilable(Prism::StatementsNode), + keyword_loc: Prism::Location, + opening_loc: Prism::Location, + closing_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, statements, keyword_loc, opening_loc, closing_loc, location); 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#16120 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#15215 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#16002 + 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#15220 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#16007 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#15289 + # source://prism//lib/prism/node.rb#16071 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#15272 + # source://prism//lib/prism/node.rb#16054 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#15232 + # source://prism//lib/prism/node.rb#16019 + 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#15225 + # source://prism//lib/prism/node.rb#16012 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> PostExecutionNode + # def copy: (?statements: StatementsNode?, ?keyword_loc: Location, ?opening_loc: Location, ?closing_loc: Location, ?location: Location) -> PostExecutionNode # - # source://prism//lib/prism/node.rb#15237 - sig { params(params: T.untyped).returns(Prism::PostExecutionNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#16024 + sig do + params( + statements: T.nilable(Prism::StatementsNode), + keyword_loc: Prism::Location, + opening_loc: Prism::Location, + closing_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::PostExecutionNode) + end + def copy(statements: T.unsafe(nil), keyword_loc: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#15220 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#16007 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { statements: StatementsNode?, keyword_loc: Location, opening_loc: Location, closing_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#15252 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#16032 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#15294 + # source://prism//lib/prism/node.rb#16076 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#15279 + # source://prism//lib/prism/node.rb#16061 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#15260 + # source://prism//lib/prism/node.rb#16040 sig { returns(Prism::Location) } def keyword_loc; end # def opening: () -> String # - # source://prism//lib/prism/node.rb#15284 + # source://prism//lib/prism/node.rb#16066 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#15266 + # source://prism//lib/prism/node.rb#16047 sig { returns(Prism::Location) } def opening_loc; end # attr_reader statements: StatementsNode? # - # source://prism//lib/prism/node.rb#15257 + # source://prism//lib/prism/node.rb#16037 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end @@ -22766,7 +26348,8 @@ class Prism::PostExecutionNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#15322 + # source://prism//lib/prism/node.rb#16104 + sig { override.returns(Symbol) } def type; end class << self @@ -22777,7 +26360,7 @@ class Prism::PostExecutionNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#15332 + # source://prism//lib/prism/node.rb#16114 def type; end end end @@ -22787,104 +26370,130 @@ end # BEGIN { foo } # ^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#15341 +# source://prism//lib/prism/node.rb#16133 class Prism::PreExecutionNode < ::Prism::Node # def initialize: (StatementsNode? statements, Location keyword_loc, Location opening_loc, Location closing_loc, Location location) -> void # # @return [PreExecutionNode] a new instance of PreExecutionNode # - # source://prism//lib/prism/node.rb#15343 + # source://prism//lib/prism/node.rb#16135 + sig do + params( + source: Prism::Source, + statements: T.nilable(Prism::StatementsNode), + keyword_loc: Prism::Location, + opening_loc: Prism::Location, + closing_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, statements, keyword_loc, opening_loc, closing_loc, location); 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#16264 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#15354 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#16146 + 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#15359 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#16151 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#15428 + # source://prism//lib/prism/node.rb#16215 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#15411 + # source://prism//lib/prism/node.rb#16198 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#15371 + # source://prism//lib/prism/node.rb#16163 + 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#15364 + # source://prism//lib/prism/node.rb#16156 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> PreExecutionNode + # def copy: (?statements: StatementsNode?, ?keyword_loc: Location, ?opening_loc: Location, ?closing_loc: Location, ?location: Location) -> PreExecutionNode # - # source://prism//lib/prism/node.rb#15376 - sig { params(params: T.untyped).returns(Prism::PreExecutionNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#16168 + sig do + params( + statements: T.nilable(Prism::StatementsNode), + keyword_loc: Prism::Location, + opening_loc: Prism::Location, + closing_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::PreExecutionNode) + end + def copy(statements: T.unsafe(nil), keyword_loc: T.unsafe(nil), opening_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#15359 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#16151 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { statements: StatementsNode?, keyword_loc: Location, opening_loc: Location, closing_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#15391 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#16176 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#15433 + # source://prism//lib/prism/node.rb#16220 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#15418 + # source://prism//lib/prism/node.rb#16205 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#15399 + # source://prism//lib/prism/node.rb#16184 sig { returns(Prism::Location) } def keyword_loc; end # def opening: () -> String # - # source://prism//lib/prism/node.rb#15423 + # source://prism//lib/prism/node.rb#16210 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#15405 + # source://prism//lib/prism/node.rb#16191 sig { returns(Prism::Location) } def opening_loc; end # attr_reader statements: StatementsNode? # - # source://prism//lib/prism/node.rb#15396 + # source://prism//lib/prism/node.rb#16181 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end @@ -22903,7 +26512,8 @@ class Prism::PreExecutionNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#15461 + # source://prism//lib/prism/node.rb#16248 + sig { override.returns(Symbol) } def type; end class << self @@ -22914,81 +26524,103 @@ class Prism::PreExecutionNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#15471 + # source://prism//lib/prism/node.rb#16258 def type; end end end # The top level node of any parse tree. # -# source://prism//lib/prism/node.rb#15477 +# source://prism//lib/prism/node.rb#16274 class Prism::ProgramNode < ::Prism::Node # def initialize: (Array[Symbol] locals, StatementsNode statements, Location location) -> void # # @return [ProgramNode] a new instance of ProgramNode # - # source://prism//lib/prism/node.rb#15479 + # source://prism//lib/prism/node.rb#16276 + sig do + params( + source: Prism::Source, + locals: T::Array[Symbol], + statements: Prism::StatementsNode, + location: Prism::Location + ).void + end def initialize(source, locals, statements, location); 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#16362 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#15488 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#16285 + 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#15493 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#16290 + 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#15503 + # source://prism//lib/prism/node.rb#16300 + 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#15498 + # source://prism//lib/prism/node.rb#16295 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ProgramNode + # def copy: (?locals: Array[Symbol], ?statements: StatementsNode, ?location: Location) -> ProgramNode # - # source://prism//lib/prism/node.rb#15508 - sig { params(params: T.untyped).returns(Prism::ProgramNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#16305 + sig do + params( + locals: T::Array[Symbol], + statements: Prism::StatementsNode, + location: Prism::Location + ).returns(Prism::ProgramNode) + end + def copy(locals: T.unsafe(nil), statements: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#15493 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#16290 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { locals: Array[Symbol], statements: StatementsNode, location: Location } # - # source://prism//lib/prism/node.rb#15521 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#16313 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#15533 + # source://prism//lib/prism/node.rb#16324 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader locals: Array[Symbol] # - # source://prism//lib/prism/node.rb#15526 + # source://prism//lib/prism/node.rb#16318 sig { returns(T::Array[Symbol]) } def locals; end # attr_reader statements: StatementsNode # - # source://prism//lib/prism/node.rb#15529 + # source://prism//lib/prism/node.rb#16321 sig { returns(Prism::StatementsNode) } def statements; end @@ -23007,7 +26639,8 @@ class Prism::ProgramNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#15555 + # source://prism//lib/prism/node.rb#16346 + sig { override.returns(Symbol) } def type; end class << self @@ -23018,19 +26651,19 @@ class Prism::ProgramNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#15565 + # source://prism//lib/prism/node.rb#16356 def type; end end end # Flags for range and flip-flop nodes. # -# source://prism//lib/prism/node.rb#19310 +# source://prism//lib/prism/node.rb#20415 module Prism::RangeFlags; end # ... operator # -# source://prism//lib/prism/node.rb#19312 +# source://prism//lib/prism/node.rb#20417 Prism::RangeFlags::EXCLUDE_END = T.let(T.unsafe(nil), Integer) # Represents the use of the `..` or `...` operators. @@ -23041,71 +26674,97 @@ Prism::RangeFlags::EXCLUDE_END = T.let(T.unsafe(nil), Integer) # c if a =~ /left/ ... b =~ /right/ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#15577 +# source://prism//lib/prism/node.rb#16377 class Prism::RangeNode < ::Prism::Node - # def initialize: (Integer flags, Node? left, Node? right, Location operator_loc, Location location) -> void + # def initialize: (Integer flags, Prism::node? left, Prism::node? right, Location operator_loc, Location location) -> void # # @return [RangeNode] a new instance of RangeNode # - # source://prism//lib/prism/node.rb#15579 + # source://prism//lib/prism/node.rb#16379 + sig do + params( + source: Prism::Source, + flags: Integer, + left: T.nilable(Prism::Node), + right: T.nilable(Prism::Node), + operator_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, flags, left, right, operator_loc, location); 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#16516 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#15590 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#16390 + 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#15595 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#16395 + 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#15608 + # source://prism//lib/prism/node.rb#16408 + 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#15600 + # source://prism//lib/prism/node.rb#16400 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> RangeNode + # def copy: (?flags: Integer, ?left: Prism::node?, ?right: Prism::node?, ?operator_loc: Location, ?location: Location) -> RangeNode # - # source://prism//lib/prism/node.rb#15613 - sig { params(params: T.untyped).returns(Prism::RangeNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#16413 + sig do + params( + flags: Integer, + left: T.nilable(Prism::Node), + right: T.nilable(Prism::Node), + operator_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::RangeNode) + end + def copy(flags: T.unsafe(nil), left: T.unsafe(nil), right: T.unsafe(nil), operator_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#15595 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#16395 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, left: Node?, right: Node?, operator_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, left: Prism::node?, right: Prism::node?, operator_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#15628 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#16421 + 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#15663 + # source://prism//lib/prism/node.rb#16456 sig { returns(T::Boolean) } def exclude_end?; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#15673 + # source://prism//lib/prism/node.rb#16466 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); 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). @@ -23116,19 +26775,19 @@ class Prism::RangeNode < ::Prism::Node # hello...goodbye # ^^^^^ # - # source://prism//lib/prism/node.rb#15643 + # source://prism//lib/prism/node.rb#16436 sig { returns(T.nilable(Prism::Node)) } def left; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#15668 + # source://prism//lib/prism/node.rb#16461 sig { returns(String) } def operator; end # The location of the `..` or `...` operator. # - # source://prism//lib/prism/node.rb#15656 + # source://prism//lib/prism/node.rb#16449 sig { returns(Prism::Location) } def operator_loc; end @@ -23141,7 +26800,7 @@ class Prism::RangeNode < ::Prism::Node # ^^^ # If neither right-hand or left-hand side was included, this will be a MissingNode. # - # source://prism//lib/prism/node.rb#15653 + # source://prism//lib/prism/node.rb#16446 sig { returns(T.nilable(Prism::Node)) } def right; end @@ -23160,14 +26819,15 @@ class Prism::RangeNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#15707 + # source://prism//lib/prism/node.rb#16500 + sig { override.returns(Symbol) } def type; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#15633 + # source://prism//lib/prism/node.rb#16426 sig { returns(Integer) } def flags; end @@ -23179,7 +26839,7 @@ class Prism::RangeNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#15717 + # source://prism//lib/prism/node.rb#16510 def type; end end end @@ -23189,68 +26849,77 @@ end # 1.0r # ^^^^ # -# source://prism//lib/prism/node.rb#15726 +# source://prism//lib/prism/node.rb#16529 class Prism::RationalNode < ::Prism::Node - # def initialize: (Node numeric, Location location) -> void + # def initialize: (Prism::node numeric, Location location) -> void # # @return [RationalNode] a new instance of RationalNode # - # source://prism//lib/prism/node.rb#15728 + # source://prism//lib/prism/node.rb#16531 + sig { params(source: Prism::Source, numeric: Prism::Node, location: Prism::Location).void } def initialize(source, numeric, location); 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#16612 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#15736 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#16539 + 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#15741 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#16544 + 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#15751 + # source://prism//lib/prism/node.rb#16554 + 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#15746 + # source://prism//lib/prism/node.rb#16549 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> RationalNode + # def copy: (?numeric: Prism::node, ?location: Location) -> RationalNode # - # source://prism//lib/prism/node.rb#15756 - sig { params(params: T.untyped).returns(Prism::RationalNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#16559 + sig { params(numeric: Prism::Node, location: Prism::Location).returns(Prism::RationalNode) } + def copy(numeric: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#15741 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#16544 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { numeric: Node, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { numeric: Prism::node, location: Location } # - # source://prism//lib/prism/node.rb#15768 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#16567 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#15777 + # source://prism//lib/prism/node.rb#16575 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end - # attr_reader numeric: Node + # attr_reader numeric: Prism::node # - # source://prism//lib/prism/node.rb#15773 + # source://prism//lib/prism/node.rb#16572 sig { returns(Prism::Node) } def numeric; end @@ -23269,12 +26938,14 @@ class Prism::RationalNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#15798 + # source://prism//lib/prism/node.rb#16596 + sig { override.returns(Symbol) } def type; end # Returns the value of the node as a Ruby Rational. # - # source://prism//lib/prism/node_ext.rb#83 + # source://prism//lib/prism/node_ext.rb#94 + sig { returns(Rational) } def value; end class << self @@ -23285,7 +26956,7 @@ class Prism::RationalNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#15808 + # source://prism//lib/prism/node.rb#16606 def type; end end end @@ -23295,63 +26966,72 @@ end # redo # ^^^^ # -# source://prism//lib/prism/node.rb#15817 +# source://prism//lib/prism/node.rb#16622 class Prism::RedoNode < ::Prism::Node # def initialize: (Location location) -> void # # @return [RedoNode] a new instance of RedoNode # - # source://prism//lib/prism/node.rb#15819 + # source://prism//lib/prism/node.rb#16624 + sig { params(source: Prism::Source, location: Prism::Location).void } def initialize(source, location); 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#16699 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#15826 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#16631 + 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#15831 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#16636 + 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#15841 + # source://prism//lib/prism/node.rb#16646 + 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#15836 + # source://prism//lib/prism/node.rb#16641 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> RedoNode + # def copy: (?location: Location) -> RedoNode # - # source://prism//lib/prism/node.rb#15846 - sig { params(params: T.untyped).returns(Prism::RedoNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#16651 + sig { params(location: Prism::Location).returns(Prism::RedoNode) } + def copy(location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#15831 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#16636 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location } # - # source://prism//lib/prism/node.rb#15857 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#16659 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#15863 + # source://prism//lib/prism/node.rb#16664 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -23369,7 +27049,8 @@ class Prism::RedoNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#15882 + # source://prism//lib/prism/node.rb#16683 + sig { override.returns(Symbol) } def type; end class << self @@ -23380,69 +27061,199 @@ class Prism::RedoNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#15892 + # source://prism//lib/prism/node.rb#16693 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#19316 +# source://prism//lib/prism/node.rb#20421 module Prism::RegularExpressionFlags; end # n - forces the ASCII-8BIT encoding # -# source://prism//lib/prism/node.rb#19333 +# source://prism//lib/prism/node.rb#20438 Prism::RegularExpressionFlags::ASCII_8BIT = T.let(T.unsafe(nil), Integer) # e - forces the EUC-JP encoding # -# source://prism//lib/prism/node.rb#19330 +# source://prism//lib/prism/node.rb#20435 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#19321 +# source://prism//lib/prism/node.rb#20426 Prism::RegularExpressionFlags::EXTENDED = T.let(T.unsafe(nil), Integer) # internal bytes forced the encoding to binary # -# source://prism//lib/prism/node.rb#19345 +# source://prism//lib/prism/node.rb#20450 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#19348 +# source://prism//lib/prism/node.rb#20453 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#19342 +# source://prism//lib/prism/node.rb#20447 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#19318 +# source://prism//lib/prism/node.rb#20423 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#19324 +# source://prism//lib/prism/node.rb#20429 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#19327 +# source://prism//lib/prism/node.rb#20432 Prism::RegularExpressionFlags::ONCE = T.let(T.unsafe(nil), Integer) # u - forces the UTF-8 encoding # -# source://prism//lib/prism/node.rb#19339 +# source://prism//lib/prism/node.rb#20444 Prism::RegularExpressionFlags::UTF_8 = T.let(T.unsafe(nil), Integer) # s - forces the Windows-31J encoding # -# source://prism//lib/prism/node.rb#19336 +# source://prism//lib/prism/node.rb#20441 Prism::RegularExpressionFlags::WINDOWS_31J = T.let(T.unsafe(nil), Integer) # Represents a regular expression literal with no interpolation. @@ -23450,7 +27261,7 @@ Prism::RegularExpressionFlags::WINDOWS_31J = T.let(T.unsafe(nil), Integer) # /foo/i # ^^^^^^ # -# source://prism//lib/prism/node.rb#15901 +# source://prism//lib/prism/node.rb#16708 class Prism::RegularExpressionNode < ::Prism::Node include ::Prism::RegularExpressionOptions @@ -23458,91 +27269,115 @@ class Prism::RegularExpressionNode < ::Prism::Node # # @return [RegularExpressionNode] a new instance of RegularExpressionNode # - # source://prism//lib/prism/node.rb#15903 + # source://prism//lib/prism/node.rb#16710 + sig do + params( + source: Prism::Source, + flags: Integer, + opening_loc: Prism::Location, + content_loc: Prism::Location, + closing_loc: Prism::Location, + unescaped: String, + location: Prism::Location + ).void + end def initialize(source, flags, opening_loc, content_loc, closing_loc, unescaped, location); 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#16894 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#15915 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#16722 + 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#16007 + # source://prism//lib/prism/node.rb#16808 sig { returns(T::Boolean) } def ascii_8bit?; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#15920 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#16727 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#16047 + # source://prism//lib/prism/node.rb#16848 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#15972 + # source://prism//lib/prism/node.rb#16773 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#15930 + # source://prism//lib/prism/node.rb#16737 + 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#15925 + # source://prism//lib/prism/node.rb#16732 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end # def content: () -> String # - # source://prism//lib/prism/node.rb#16042 + # source://prism//lib/prism/node.rb#16843 sig { returns(String) } def content; end # attr_reader content_loc: Location # - # source://prism//lib/prism/node.rb#15966 + # source://prism//lib/prism/node.rb#16766 sig { returns(Prism::Location) } def content_loc; end - # def copy: (**params) -> RegularExpressionNode + # def copy: (?flags: Integer, ?opening_loc: Location, ?content_loc: Location, ?closing_loc: Location, ?unescaped: String, ?location: Location) -> RegularExpressionNode # - # source://prism//lib/prism/node.rb#15935 - sig { params(params: T.untyped).returns(Prism::RegularExpressionNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#16742 + sig do + params( + flags: Integer, + opening_loc: Prism::Location, + content_loc: Prism::Location, + closing_loc: Prism::Location, + unescaped: String, + location: Prism::Location + ).returns(Prism::RegularExpressionNode) + end + def copy(flags: T.unsafe(nil), opening_loc: T.unsafe(nil), content_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), unescaped: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#15920 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#16727 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String, location: Location } # - # source://prism//lib/prism/node.rb#15951 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#16750 + 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#16002 + # source://prism//lib/prism/node.rb#16803 sig { returns(T::Boolean) } def euc_jp?; end @@ -23550,15 +27385,18 @@ class Prism::RegularExpressionNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#15987 + # source://prism//lib/prism/node.rb#16788 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#16027 + # source://prism//lib/prism/node.rb#16828 sig { returns(T::Boolean) } def forced_binary_encoding?; end @@ -23566,7 +27404,7 @@ class Prism::RegularExpressionNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#16032 + # source://prism//lib/prism/node.rb#16833 sig { returns(T::Boolean) } def forced_us_ascii_encoding?; end @@ -23574,7 +27412,7 @@ class Prism::RegularExpressionNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#16022 + # source://prism//lib/prism/node.rb#16823 sig { returns(T::Boolean) } def forced_utf8_encoding?; end @@ -23582,20 +27420,21 @@ class Prism::RegularExpressionNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#15982 + # source://prism//lib/prism/node.rb#16783 sig { returns(T::Boolean) } def ignore_case?; end # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#16052 + # source://prism//lib/prism/node.rb#16853 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def multi_line?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#15992 + # source://prism//lib/prism/node.rb#16793 sig { returns(T::Boolean) } def multi_line?; end @@ -23603,22 +27442,25 @@ class Prism::RegularExpressionNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#15997 + # source://prism//lib/prism/node.rb#16798 sig { returns(T::Boolean) } def once?; end # def opening: () -> String # - # source://prism//lib/prism/node.rb#16037 + # source://prism//lib/prism/node.rb#16838 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#15960 + # source://prism//lib/prism/node.rb#16759 sig { returns(Prism::Location) } def opening_loc; end + sig { returns(Integer) } + def options; 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 @@ -23634,12 +27476,13 @@ class Prism::RegularExpressionNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#16077 + # source://prism//lib/prism/node.rb#16878 + sig { override.returns(Symbol) } def type; end # attr_reader unescaped: String # - # source://prism//lib/prism/node.rb#15978 + # source://prism//lib/prism/node.rb#16780 sig { returns(String) } def unescaped; end @@ -23647,7 +27490,7 @@ class Prism::RegularExpressionNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#16017 + # source://prism//lib/prism/node.rb#16818 sig { returns(T::Boolean) } def utf_8?; end @@ -23655,15 +27498,15 @@ class Prism::RegularExpressionNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#16012 + # source://prism//lib/prism/node.rb#16813 sig { returns(T::Boolean) } def windows_31j?; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#15956 + # source://prism//lib/prism/node.rb#16755 sig { returns(Integer) } def flags; end @@ -23675,7 +27518,7 @@ class Prism::RegularExpressionNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#16087 + # source://prism//lib/prism/node.rb#16888 def type; end end end @@ -23695,74 +27538,98 @@ end # ^^ # end # -# source://prism//lib/prism/node.rb#16097 +# source://prism//lib/prism/node.rb#16909 class Prism::RequiredKeywordParameterNode < ::Prism::Node # def initialize: (Integer flags, Symbol name, Location name_loc, Location location) -> void # # @return [RequiredKeywordParameterNode] a new instance of RequiredKeywordParameterNode # - # source://prism//lib/prism/node.rb#16099 + # source://prism//lib/prism/node.rb#16911 + sig do + params( + source: Prism::Source, + flags: Integer, + name: Symbol, + name_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, flags, name, name_loc, location); 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#17012 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#16109 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#16921 + 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#16114 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#16926 + 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#16124 + # source://prism//lib/prism/node.rb#16936 + 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#16119 + # source://prism//lib/prism/node.rb#16931 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> RequiredKeywordParameterNode + # def copy: (?flags: Integer, ?name: Symbol, ?name_loc: Location, ?location: Location) -> RequiredKeywordParameterNode # - # source://prism//lib/prism/node.rb#16129 - sig { params(params: T.untyped).returns(Prism::RequiredKeywordParameterNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#16941 + sig do + params( + flags: Integer, + name: Symbol, + name_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::RequiredKeywordParameterNode) + end + def copy(flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#16114 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#16926 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, name: Symbol, name_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#16143 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#16949 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#16167 + # source://prism//lib/prism/node.rb#16973 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#16152 + # source://prism//lib/prism/node.rb#16958 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#16155 + # source://prism//lib/prism/node.rb#16961 sig { returns(Prism::Location) } def name_loc; end @@ -23770,7 +27637,7 @@ class Prism::RequiredKeywordParameterNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#16162 + # source://prism//lib/prism/node.rb#16968 sig { returns(T::Boolean) } def repeated_parameter?; end @@ -23789,14 +27656,15 @@ class Prism::RequiredKeywordParameterNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#16190 + # source://prism//lib/prism/node.rb#16996 + sig { override.returns(Symbol) } def type; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#16148 + # source://prism//lib/prism/node.rb#16954 sig { returns(Integer) } def flags; end @@ -23808,7 +27676,7 @@ class Prism::RequiredKeywordParameterNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#16200 + # source://prism//lib/prism/node.rb#17006 def type; end end end @@ -23819,68 +27687,77 @@ end # ^ # end # -# source://prism//lib/prism/node.rb#16210 +# source://prism//lib/prism/node.rb#17025 class Prism::RequiredParameterNode < ::Prism::Node # def initialize: (Integer flags, Symbol name, Location location) -> void # # @return [RequiredParameterNode] a new instance of RequiredParameterNode # - # source://prism//lib/prism/node.rb#16212 + # source://prism//lib/prism/node.rb#17027 + sig { params(source: Prism::Source, flags: Integer, name: Symbol, location: Prism::Location).void } def initialize(source, flags, name, location); 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#17119 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#16221 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#17036 + 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#16226 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#17041 + 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#16236 + # source://prism//lib/prism/node.rb#17051 + 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#16231 + # source://prism//lib/prism/node.rb#17046 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> RequiredParameterNode + # def copy: (?flags: Integer, ?name: Symbol, ?location: Location) -> RequiredParameterNode # - # source://prism//lib/prism/node.rb#16241 - sig { params(params: T.untyped).returns(Prism::RequiredParameterNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#17056 + sig { params(flags: Integer, name: Symbol, location: Prism::Location).returns(Prism::RequiredParameterNode) } + def copy(flags: T.unsafe(nil), name: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#16226 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#17041 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, name: Symbol, location: Location } # - # source://prism//lib/prism/node.rb#16254 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#17064 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#16272 + # source://prism//lib/prism/node.rb#17081 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#16263 + # source://prism//lib/prism/node.rb#17073 sig { returns(Symbol) } def name; end @@ -23888,7 +27765,7 @@ class Prism::RequiredParameterNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#16267 + # source://prism//lib/prism/node.rb#17076 sig { returns(T::Boolean) } def repeated_parameter?; end @@ -23907,14 +27784,15 @@ class Prism::RequiredParameterNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#16294 + # source://prism//lib/prism/node.rb#17103 + sig { override.returns(Symbol) } def type; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#16259 + # source://prism//lib/prism/node.rb#17069 sig { returns(Integer) } def flags; end @@ -23926,7 +27804,7 @@ class Prism::RequiredParameterNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#16304 + # source://prism//lib/prism/node.rb#17113 def type; end end end @@ -23936,90 +27814,114 @@ end # foo rescue nil # ^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#16313 +# source://prism//lib/prism/node.rb#17130 class Prism::RescueModifierNode < ::Prism::Node - # def initialize: (Node expression, Location keyword_loc, Node rescue_expression, Location location) -> void + # def initialize: (Prism::node expression, Location keyword_loc, Prism::node rescue_expression, Location location) -> void # # @return [RescueModifierNode] a new instance of RescueModifierNode # - # source://prism//lib/prism/node.rb#16315 + # source://prism//lib/prism/node.rb#17132 + sig do + params( + source: Prism::Source, + expression: Prism::Node, + keyword_loc: Prism::Location, + rescue_expression: Prism::Node, + location: Prism::Location + ).void + end def initialize(source, expression, keyword_loc, rescue_expression, location); 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#17237 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#16325 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#17142 + 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#16334 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#17151 + 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#16344 + # source://prism//lib/prism/node.rb#17161 + 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#16339 + # source://prism//lib/prism/node.rb#17156 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> RescueModifierNode + # def copy: (?expression: Prism::node, ?keyword_loc: Location, ?rescue_expression: Prism::node, ?location: Location) -> RescueModifierNode # - # source://prism//lib/prism/node.rb#16349 - sig { params(params: T.untyped).returns(Prism::RescueModifierNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#17166 + sig do + params( + expression: Prism::Node, + keyword_loc: Prism::Location, + rescue_expression: Prism::Node, + location: Prism::Location + ).returns(Prism::RescueModifierNode) + end + def copy(expression: T.unsafe(nil), keyword_loc: T.unsafe(nil), rescue_expression: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#16334 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#17151 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { expression: Node, keyword_loc: Location, rescue_expression: Node, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { expression: Prism::node, keyword_loc: Location, rescue_expression: Prism::node, location: Location } # - # source://prism//lib/prism/node.rb#16363 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#17174 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end - # attr_reader expression: Node + # attr_reader expression: Prism::node # - # source://prism//lib/prism/node.rb#16368 + # source://prism//lib/prism/node.rb#17179 sig { returns(Prism::Node) } def expression; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#16386 + # source://prism//lib/prism/node.rb#17197 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#16381 + # source://prism//lib/prism/node.rb#17192 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#16371 + # source://prism//lib/prism/node.rb#17182 sig { returns(Prism::Location) } def keyword_loc; end - # attr_reader rescue_expression: Node + # attr_reader rescue_expression: Prism::node # - # source://prism//lib/prism/node.rb#16377 + # source://prism//lib/prism/node.rb#17189 sig { returns(Prism::Node) } def rescue_expression; end - # source://prism//lib/prism/node.rb#16329 + # source://prism//lib/prism/node.rb#17146 def set_newline_flag(newline_marked); end # Sometimes you want to check an instance of a node against a list of @@ -24037,7 +27939,8 @@ class Prism::RescueModifierNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#16410 + # source://prism//lib/prism/node.rb#17221 + sig { override.returns(Symbol) } def type; end class << self @@ -24048,7 +27951,7 @@ class Prism::RescueModifierNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#16420 + # source://prism//lib/prism/node.rb#17231 def type; end end end @@ -24063,110 +27966,140 @@ end # # `Foo, *splat, Bar` are in the `exceptions` field. `ex` is in the `exception` field. # -# source://prism//lib/prism/node.rb#16434 +# source://prism//lib/prism/node.rb#17254 class Prism::RescueNode < ::Prism::Node - # def initialize: (Location keyword_loc, Array[Node] exceptions, Location? operator_loc, Node? reference, StatementsNode? statements, RescueNode? consequent, Location location) -> void + # def initialize: (Location keyword_loc, Array[Prism::node] exceptions, Location? operator_loc, Prism::node? reference, StatementsNode? statements, RescueNode? consequent, Location location) -> void # # @return [RescueNode] a new instance of RescueNode # - # source://prism//lib/prism/node.rb#16436 + # source://prism//lib/prism/node.rb#17256 + sig do + params( + source: Prism::Source, + 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), + consequent: T.nilable(Prism::RescueNode), + location: Prism::Location + ).void + end def initialize(source, keyword_loc, exceptions, operator_loc, reference, statements, consequent, location); 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#17405 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#16449 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#17269 + 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#16454 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#17274 + 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#16469 + # source://prism//lib/prism/node.rb#17289 + 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#16459 + # source://prism//lib/prism/node.rb#17279 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end # attr_reader consequent: RescueNode? # - # source://prism//lib/prism/node.rb#16523 + # source://prism//lib/prism/node.rb#17336 sig { returns(T.nilable(Prism::RescueNode)) } def consequent; end - # def copy: (**params) -> RescueNode + # def copy: (?keyword_loc: Location, ?exceptions: Array[Prism::node], ?operator_loc: Location?, ?reference: Prism::node?, ?statements: StatementsNode?, ?consequent: RescueNode?, ?location: Location) -> RescueNode # - # source://prism//lib/prism/node.rb#16474 - sig { params(params: T.untyped).returns(Prism::RescueNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#17294 + sig do + params( + 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), + consequent: T.nilable(Prism::RescueNode), + location: Prism::Location + ).returns(Prism::RescueNode) + end + def copy(keyword_loc: T.unsafe(nil), exceptions: T.unsafe(nil), operator_loc: T.unsafe(nil), reference: T.unsafe(nil), statements: T.unsafe(nil), consequent: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#16454 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#17274 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { keyword_loc: Location, exceptions: Array[Node], operator_loc: Location?, reference: Node?, statements: StatementsNode?, consequent: RescueNode?, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { keyword_loc: Location, exceptions: Array[Prism::node], operator_loc: Location?, reference: Prism::node?, statements: StatementsNode?, consequent: RescueNode?, location: Location } # - # source://prism//lib/prism/node.rb#16491 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#17302 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end - # attr_reader exceptions: Array[Node] + # attr_reader exceptions: Array[Prism::node] # - # source://prism//lib/prism/node.rb#16502 + # source://prism//lib/prism/node.rb#17314 sig { returns(T::Array[Prism::Node]) } def exceptions; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#16537 + # source://prism//lib/prism/node.rb#17349 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#16527 + # source://prism//lib/prism/node.rb#17339 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#16496 + # source://prism//lib/prism/node.rb#17307 sig { returns(Prism::Location) } def keyword_loc; end # def operator: () -> String? # - # source://prism//lib/prism/node.rb#16532 + # source://prism//lib/prism/node.rb#17344 sig { returns(T.nilable(String)) } def operator; end # attr_reader operator_loc: Location? # - # source://prism//lib/prism/node.rb#16505 + # source://prism//lib/prism/node.rb#17317 sig { returns(T.nilable(Prism::Location)) } def operator_loc; end - # attr_reader reference: Node? + # attr_reader reference: Prism::node? # - # source://prism//lib/prism/node.rb#16517 + # source://prism//lib/prism/node.rb#17330 sig { returns(T.nilable(Prism::Node)) } def reference; end # attr_reader statements: StatementsNode? # - # source://prism//lib/prism/node.rb#16520 + # source://prism//lib/prism/node.rb#17333 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end @@ -24185,7 +28118,8 @@ class Prism::RescueNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#16577 + # source://prism//lib/prism/node.rb#17389 + sig { override.returns(Symbol) } def type; end class << self @@ -24196,7 +28130,7 @@ class Prism::RescueNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#16587 + # source://prism//lib/prism/node.rb#17399 def type; end end end @@ -24207,86 +28141,112 @@ end # ^^ # end # -# source://prism//lib/prism/node.rb#16597 +# source://prism//lib/prism/node.rb#17422 class Prism::RestParameterNode < ::Prism::Node # def initialize: (Integer flags, Symbol? name, Location? name_loc, Location operator_loc, Location location) -> void # # @return [RestParameterNode] a new instance of RestParameterNode # - # source://prism//lib/prism/node.rb#16599 + # source://prism//lib/prism/node.rb#17424 + sig do + params( + source: Prism::Source, + flags: Integer, + name: T.nilable(Symbol), + name_loc: T.nilable(Prism::Location), + operator_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, flags, name, name_loc, operator_loc, location); 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#17549 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#16610 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#17435 + 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#16615 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#17440 + 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#16625 + # source://prism//lib/prism/node.rb#17450 + 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#16620 + # source://prism//lib/prism/node.rb#17445 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> RestParameterNode + # def copy: (?flags: Integer, ?name: Symbol?, ?name_loc: Location?, ?operator_loc: Location, ?location: Location) -> RestParameterNode # - # source://prism//lib/prism/node.rb#16630 - sig { params(params: T.untyped).returns(Prism::RestParameterNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#17455 + sig do + params( + flags: Integer, + name: T.nilable(Symbol), + name_loc: T.nilable(Prism::Location), + operator_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::RestParameterNode) + end + def copy(flags: T.unsafe(nil), name: T.unsafe(nil), name_loc: T.unsafe(nil), operator_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#16615 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#17440 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, name: Symbol?, name_loc: Location?, operator_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#16645 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#17463 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#16686 + # source://prism//lib/prism/node.rb#17505 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol? # - # source://prism//lib/prism/node.rb#16654 + # source://prism//lib/prism/node.rb#17472 sig { returns(T.nilable(Symbol)) } def name; end # attr_reader name_loc: Location? # - # source://prism//lib/prism/node.rb#16657 + # source://prism//lib/prism/node.rb#17475 sig { returns(T.nilable(Prism::Location)) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#16681 + # source://prism//lib/prism/node.rb#17500 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#16669 + # source://prism//lib/prism/node.rb#17488 sig { returns(Prism::Location) } def operator_loc; end @@ -24294,7 +28254,7 @@ class Prism::RestParameterNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#16676 + # source://prism//lib/prism/node.rb#17495 sig { returns(T::Boolean) } def repeated_parameter?; end @@ -24313,14 +28273,15 @@ class Prism::RestParameterNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#16714 + # source://prism//lib/prism/node.rb#17533 + sig { override.returns(Symbol) } def type; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#16650 + # source://prism//lib/prism/node.rb#17468 sig { returns(Integer) } def flags; end @@ -24332,73 +28293,174 @@ class Prism::RestParameterNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#16724 + # source://prism//lib/prism/node.rb#17543 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#443 +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#465 + 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#445 + 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#453 + 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#475 + 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#480 + sig { returns(Encoding) } + def encoding; end + + # The list of errors that were generated during parsing. + # + # source://prism//lib/prism/parse_result.rb#456 + 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#492 + sig { returns(T::Boolean) } + def failure?; end + + # The list of magic comments that were encountered during parsing. + # + # source://prism//lib/prism/parse_result.rb#448 + 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#462 + 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#486 + sig { returns(T::Boolean) } + def success?; end + + # The list of warnings that were generated during parsing. + # + # source://prism//lib/prism/parse_result.rb#459 + sig { returns(T::Array[Prism::ParseWarning]) } + def warnings; end +end + # Represents the use of the `retry` keyword. # # retry # ^^^^^ # -# source://prism//lib/prism/node.rb#16733 +# source://prism//lib/prism/node.rb#17562 class Prism::RetryNode < ::Prism::Node # def initialize: (Location location) -> void # # @return [RetryNode] a new instance of RetryNode # - # source://prism//lib/prism/node.rb#16735 + # source://prism//lib/prism/node.rb#17564 + sig { params(source: Prism::Source, location: Prism::Location).void } def initialize(source, location); 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#17639 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#16742 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#17571 + 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#16747 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#17576 + 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#16757 + # source://prism//lib/prism/node.rb#17586 + 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#16752 + # source://prism//lib/prism/node.rb#17581 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> RetryNode + # def copy: (?location: Location) -> RetryNode # - # source://prism//lib/prism/node.rb#16762 - sig { params(params: T.untyped).returns(Prism::RetryNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#17591 + sig { params(location: Prism::Location).returns(Prism::RetryNode) } + def copy(location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#16747 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#17576 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location } # - # source://prism//lib/prism/node.rb#16773 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#17599 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#16779 + # source://prism//lib/prism/node.rb#17604 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -24416,7 +28478,8 @@ class Prism::RetryNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#16798 + # source://prism//lib/prism/node.rb#17623 + sig { override.returns(Symbol) } def type; end class << self @@ -24427,7 +28490,7 @@ class Prism::RetryNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#16808 + # source://prism//lib/prism/node.rb#17633 def type; end end end @@ -24437,80 +28500,102 @@ end # return 1 # ^^^^^^^^ # -# source://prism//lib/prism/node.rb#16817 +# source://prism//lib/prism/node.rb#17648 class Prism::ReturnNode < ::Prism::Node # def initialize: (Location keyword_loc, ArgumentsNode? arguments, Location location) -> void # # @return [ReturnNode] a new instance of ReturnNode # - # source://prism//lib/prism/node.rb#16819 + # source://prism//lib/prism/node.rb#17650 + sig do + params( + source: Prism::Source, + keyword_loc: Prism::Location, + arguments: T.nilable(Prism::ArgumentsNode), + location: Prism::Location + ).void + end def initialize(source, keyword_loc, arguments, location); 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#17751 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#16828 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#17659 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end # attr_reader arguments: ArgumentsNode? # - # source://prism//lib/prism/node.rb#16874 + # source://prism//lib/prism/node.rb#17701 sig { returns(T.nilable(Prism::ArgumentsNode)) } def arguments; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#16833 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#17664 + 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#16845 + # source://prism//lib/prism/node.rb#17676 + 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#16838 + # source://prism//lib/prism/node.rb#17669 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> ReturnNode + # def copy: (?keyword_loc: Location, ?arguments: ArgumentsNode?, ?location: Location) -> ReturnNode # - # source://prism//lib/prism/node.rb#16850 - sig { params(params: T.untyped).returns(Prism::ReturnNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#17681 + sig do + params( + keyword_loc: Prism::Location, + arguments: T.nilable(Prism::ArgumentsNode), + location: Prism::Location + ).returns(Prism::ReturnNode) + end + def copy(keyword_loc: T.unsafe(nil), arguments: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#16833 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#17664 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { keyword_loc: Location, arguments: ArgumentsNode?, location: Location } # - # source://prism//lib/prism/node.rb#16863 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#17689 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#16883 + # source://prism//lib/prism/node.rb#17709 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#16878 + # source://prism//lib/prism/node.rb#17704 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#16868 + # source://prism//lib/prism/node.rb#17694 sig { returns(Prism::Location) } def keyword_loc; end @@ -24529,7 +28614,8 @@ class Prism::ReturnNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#16909 + # source://prism//lib/prism/node.rb#17735 + sig { override.returns(Symbol) } def type; end class << self @@ -24540,7 +28626,7 @@ class Prism::ReturnNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#16919 + # source://prism//lib/prism/node.rb#17745 def type; end end end @@ -24550,63 +28636,72 @@ end # self # ^^^^ # -# source://prism//lib/prism/node.rb#16928 +# source://prism//lib/prism/node.rb#17762 class Prism::SelfNode < ::Prism::Node # def initialize: (Location location) -> void # # @return [SelfNode] a new instance of SelfNode # - # source://prism//lib/prism/node.rb#16930 + # source://prism//lib/prism/node.rb#17764 + sig { params(source: Prism::Source, location: Prism::Location).void } def initialize(source, location); 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#17839 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#16937 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#17771 + 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#16942 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#17776 + 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#16952 + # source://prism//lib/prism/node.rb#17786 + 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#16947 + # source://prism//lib/prism/node.rb#17781 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> SelfNode + # def copy: (?location: Location) -> SelfNode # - # source://prism//lib/prism/node.rb#16957 - sig { params(params: T.untyped).returns(Prism::SelfNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#17791 + sig { params(location: Prism::Location).returns(Prism::SelfNode) } + def copy(location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#16942 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#17776 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location } # - # source://prism//lib/prism/node.rb#16968 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#17799 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#16974 + # source://prism//lib/prism/node.rb#17804 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -24624,7 +28719,8 @@ class Prism::SelfNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#16993 + # source://prism//lib/prism/node.rb#17823 + sig { override.returns(Symbol) } def type; end class << self @@ -24635,292 +28731,520 @@ class Prism::SelfNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#17003 + # source://prism//lib/prism/node.rb#17833 def type; end end end # A module responsible for deserializing parse results. # -# source://prism//lib/prism/serialize.rb#23 +# 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#37 + # 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#49 + # source://prism//lib/prism/serialize.rb#40 def load_tokens(source, serialized); end end end -# source://prism//lib/prism/serialize.rb#53 +# source://prism//lib/prism/serialize.rb#44 class Prism::Serialize::Loader # @return [Loader] a new instance of Loader # - # source://prism//lib/prism/serialize.rb#58 + # 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#55 + # 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#55 + # source://prism//lib/prism/serialize.rb#77 def constant_pool_offset; end # Returns the value of attribute encoding. # - # source://prism//lib/prism/serialize.rb#54 + # source://prism//lib/prism/serialize.rb#76 def encoding; end # Returns the value of attribute input. # - # source://prism//lib/prism/serialize.rb#54 + # source://prism//lib/prism/serialize.rb#76 def input; end # Returns the value of attribute io. # - # source://prism//lib/prism/serialize.rb#54 + # source://prism//lib/prism/serialize.rb#76 def io; end - # source://prism//lib/prism/serialize.rb#96 + # source://prism//lib/prism/serialize.rb#118 def load_comments; end - # source://prism//lib/prism/serialize.rb#82 + # source://prism//lib/prism/serialize.rb#104 def load_encoding; end - # source://prism//lib/prism/serialize.rb#73 + # source://prism//lib/prism/serialize.rb#95 def load_header; end - # source://prism//lib/prism/serialize.rb#92 + # source://prism//lib/prism/serialize.rb#114 def load_line_offsets; end - # source://prism//lib/prism/serialize.rb#106 + # source://prism//lib/prism/serialize.rb#416 def load_metadata; end - # source://prism//lib/prism/serialize.rb#140 + # source://prism//lib/prism/serialize.rb#450 def load_nodes; end - # source://prism//lib/prism/serialize.rb#154 + # source://prism//lib/prism/serialize.rb#464 def load_result; end - # source://prism//lib/prism/serialize.rb#88 + # source://prism//lib/prism/serialize.rb#110 def load_start_line; end - # source://prism//lib/prism/serialize.rb#115 + # source://prism//lib/prism/serialize.rb#425 def load_tokens; end - # source://prism//lib/prism/serialize.rb#128 + # source://prism//lib/prism/serialize.rb#438 def load_tokens_result; end # Returns the value of attribute serialized. # - # source://prism//lib/prism/serialize.rb#54 + # source://prism//lib/prism/serialize.rb#76 def serialized; end # Returns the value of attribute source. # - # source://prism//lib/prism/serialize.rb#55 + # source://prism//lib/prism/serialize.rb#77 def source; end # Returns the value of attribute start_line. # - # source://prism//lib/prism/serialize.rb#56 + # source://prism//lib/prism/serialize.rb#78 def start_line; end private - # source://prism//lib/prism/serialize.rb#217 + # source://prism//lib/prism/serialize.rb#550 def load_constant(index); end - # source://prism//lib/prism/serialize.rb#193 + # source://prism//lib/prism/serialize.rb#503 + def load_double; end + + # source://prism//lib/prism/serialize.rb#518 def load_embedded_string; end - # source://prism//lib/prism/serialize.rb#247 + # source://prism//lib/prism/serialize.rb#580 def load_error_level; end - # source://prism//lib/prism/serialize.rb#209 + # source://prism//lib/prism/serialize.rb#492 + def load_integer; end + + # source://prism//lib/prism/serialize.rb#534 def load_location; end - # source://prism//lib/prism/serialize.rb#274 + # source://prism//lib/prism/serialize.rb#538 + def load_location_object; end + + # source://prism//lib/prism/serialize.rb#609 def load_node; end - # source://prism//lib/prism/serialize.rb#242 + # source://prism//lib/prism/serialize.rb#575 def load_optional_constant; end - # source://prism//lib/prism/serialize.rb#213 + # source://prism//lib/prism/serialize.rb#542 def load_optional_location; end - # source://prism//lib/prism/serialize.rb#186 + # source://prism//lib/prism/serialize.rb#546 + def load_optional_location_object; end + + # source://prism//lib/prism/serialize.rb#511 def load_optional_node; end - # source://prism//lib/prism/serialize.rb#238 + # source://prism//lib/prism/serialize.rb#571 def load_required_constant; end - # source://prism//lib/prism/serialize.rb#182 - def load_serialized_length; end - - # source://prism//lib/prism/serialize.rb#197 + # source://prism//lib/prism/serialize.rb#522 def load_string; end - # source://prism//lib/prism/serialize.rb#177 + # source://prism//lib/prism/serialize.rb#507 + def load_uint32; end + + # source://prism//lib/prism/serialize.rb#487 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#163 + # source://prism//lib/prism/serialize.rb#473 def load_varuint; end - # source://prism//lib/prism/serialize.rb#260 + # source://prism//lib/prism/serialize.rb#595 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#26 +# 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#30 +# 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#34 +# 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#1482 +# source://prism//lib/prism/serialize.rb#1833 Prism::Serialize::TOKEN_TYPES = T.let(T.unsafe(nil), Array) -# Represents a singleton class declaration involving the `class` keyword. +# This node wraps a constant write to indicate that when the value is written, it should have its shareability state modified. # -# class << self end -# ^^^^^^^^^^^^^^^^^ +# C = { a: 1 } +# ^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#17012 -class Prism::SingletonClassNode < ::Prism::Node - # def initialize: (Array[Symbol] locals, Location class_keyword_loc, Location operator_loc, Node expression, Node? body, Location end_keyword_loc, Location location) -> void +# source://prism//lib/prism/node.rb#17849 +class Prism::ShareableConstantNode < ::Prism::Node + # def initialize: (Integer flags, ConstantWriteNode | ConstantAndWriteNode | ConstantOrWriteNode | ConstantOperatorWriteNode | ConstantPathWriteNode | ConstantPathAndWriteNode | ConstantPathOrWriteNode | ConstantPathOperatorWriteNode write, Location location) -> void # - # @return [SingletonClassNode] a new instance of SingletonClassNode + # @return [ShareableConstantNode] a new instance of ShareableConstantNode # - # source://prism//lib/prism/node.rb#17014 - def initialize(source, locals, class_keyword_loc, operator_loc, expression, body, end_keyword_loc, location); end + # source://prism//lib/prism/node.rb#17851 + sig do + params( + source: Prism::Source, + flags: Integer, + write: T.any(Prism::ConstantWriteNode, Prism::ConstantAndWriteNode, Prism::ConstantOrWriteNode, Prism::ConstantOperatorWriteNode, Prism::ConstantPathWriteNode, Prism::ConstantPathAndWriteNode, Prism::ConstantPathOrWriteNode, Prism::ConstantPathOperatorWriteNode), + location: Prism::Location + ).void + end + def initialize(source, flags, write, location); end - # def accept: (Visitor visitor) -> void + # 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#17027 - sig { params(visitor: Prism::Visitor).void } - def accept(visitor); end + # source://prism//lib/prism/node.rb#17954 + def ===(other); end - # attr_reader body: Node? + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#17090 - sig { returns(T.nilable(Prism::Node)) } - def body; end + # source://prism//lib/prism/node.rb#17860 + 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#17032 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#17865 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end - # def class_keyword: () -> String - # - # source://prism//lib/prism/node.rb#17100 - sig { returns(String) } - def class_keyword; end - - # attr_reader class_keyword_loc: Location - # - # source://prism//lib/prism/node.rb#17075 - sig { returns(Prism::Location) } - def class_keyword_loc; end - # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#17045 + # source://prism//lib/prism/node.rb#17875 + 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#17037 + # source://prism//lib/prism/node.rb#17870 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> SingletonClassNode + # def copy: (?flags: Integer, ?write: ConstantWriteNode | ConstantAndWriteNode | ConstantOrWriteNode | ConstantOperatorWriteNode | ConstantPathWriteNode | ConstantPathAndWriteNode | ConstantPathOrWriteNode | ConstantPathOperatorWriteNode, ?location: Location) -> ShareableConstantNode # - # source://prism//lib/prism/node.rb#17050 - sig { params(params: T.untyped).returns(Prism::SingletonClassNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#17880 + sig do + params( + flags: Integer, + write: T.any(Prism::ConstantWriteNode, Prism::ConstantAndWriteNode, Prism::ConstantOrWriteNode, Prism::ConstantOperatorWriteNode, Prism::ConstantPathWriteNode, Prism::ConstantPathAndWriteNode, Prism::ConstantPathOrWriteNode, Prism::ConstantPathOperatorWriteNode), + location: Prism::Location + ).returns(Prism::ShareableConstantNode) + end + def copy(flags: T.unsafe(nil), write: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#17032 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#17865 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { locals: Array[Symbol], class_keyword_loc: Location, operator_loc: Location, expression: Node, body: Node?, end_keyword_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, write: ConstantWriteNode | ConstantAndWriteNode | ConstantOrWriteNode | ConstantOperatorWriteNode | ConstantPathWriteNode | ConstantPathAndWriteNode | ConstantPathOrWriteNode | ConstantPathOperatorWriteNode, location: Location } # - # source://prism//lib/prism/node.rb#17067 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#17888 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end - # def end_keyword: () -> String + # def experimental_copy?: () -> bool # - # source://prism//lib/prism/node.rb#17110 - sig { returns(String) } - def end_keyword; end - - # attr_reader end_keyword_loc: Location + # @return [Boolean] # - # source://prism//lib/prism/node.rb#17093 - sig { returns(Prism::Location) } - def end_keyword_loc; end + # source://prism//lib/prism/node.rb#17910 + sig { returns(T::Boolean) } + def experimental_copy?; end - # attr_reader expression: Node + # def experimental_everything?: () -> bool # - # source://prism//lib/prism/node.rb#17087 - sig { returns(Prism::Node) } - def expression; end + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#17905 + sig { returns(T::Boolean) } + def experimental_everything?; end + + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#17115 + # source://prism//lib/prism/node.rb#17915 + sig { params(inspector: T.untyped).returns(String) } + def inspect(inspector = T.unsafe(nil)); end + + # def literal?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#17900 + sig { returns(T::Boolean) } + def literal?; 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. + # + # def type: () -> Symbol + # + # source://prism//lib/prism/node.rb#17938 + sig { override.returns(Symbol) } + def type; end + + # The constant write that should be modified with the shareability state. + # + # source://prism//lib/prism/node.rb#17897 + 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 + + protected + + # protected attr_reader flags: Integer + # + # source://prism//lib/prism/node.rb#17893 + sig { returns(Integer) } + def flags; end + + class << self + # 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. + # + # def self.type: () -> Symbol + # + # source://prism//lib/prism/node.rb#17948 + def type; end + end +end + +# Flags for shareable constant nodes. +# +# source://prism//lib/prism/node.rb#20457 +module Prism::ShareableConstantNodeFlags; end + +# constant writes that should be modified with shareable constant value experimental copy +# +# source://prism//lib/prism/node.rb#20465 +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#20462 +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#20459 +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#17965 +class Prism::SingletonClassNode < ::Prism::Node + # def initialize: (Array[Symbol] locals, Location class_keyword_loc, Location operator_loc, Prism::node expression, Prism::node? body, Location end_keyword_loc, Location location) -> void + # + # @return [SingletonClassNode] a new instance of SingletonClassNode + # + # source://prism//lib/prism/node.rb#17967 + sig do + params( + source: Prism::Source, + 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, + location: Prism::Location + ).void + end + def initialize(source, locals, class_keyword_loc, operator_loc, expression, body, end_keyword_loc, location); 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#18108 + def ===(other); end + + # def accept: (Visitor visitor) -> void + # + # source://prism//lib/prism/node.rb#17980 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } + def accept(visitor); end + + # attr_reader body: Prism::node? + # + # source://prism//lib/prism/node.rb#18036 + sig { returns(T.nilable(Prism::Node)) } + def body; end + + # def child_nodes: () -> Array[nil | Node] + # + # source://prism//lib/prism/node.rb#17985 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } + def child_nodes; end + + # def class_keyword: () -> String + # + # source://prism//lib/prism/node.rb#18046 + sig { returns(String) } + def class_keyword; end + + # attr_reader class_keyword_loc: Location + # + # source://prism//lib/prism/node.rb#18019 + sig { returns(Prism::Location) } + def class_keyword_loc; end + + # def comment_targets: () -> Array[Node | Location] + # + # source://prism//lib/prism/node.rb#17998 + 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#17990 + sig { override.returns(T::Array[Prism::Node]) } + def compact_child_nodes; end + + # def copy: (?locals: Array[Symbol], ?class_keyword_loc: Location, ?operator_loc: Location, ?expression: Prism::node, ?body: Prism::node?, ?end_keyword_loc: Location, ?location: Location) -> SingletonClassNode + # + # source://prism//lib/prism/node.rb#18003 + sig do + params( + 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, + location: Prism::Location + ).returns(Prism::SingletonClassNode) + end + def copy(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), location: T.unsafe(nil)); end + + # def child_nodes: () -> Array[nil | Node] + # def deconstruct: () -> Array[nil | Node] + # + # source://prism//lib/prism/node.rb#17985 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } + def deconstruct; end + + # def deconstruct_keys: (Array[Symbol] keys) -> { locals: Array[Symbol], class_keyword_loc: Location, operator_loc: Location, expression: Prism::node, body: Prism::node?, end_keyword_loc: Location, location: Location } + # + # source://prism//lib/prism/node.rb#18011 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } + def deconstruct_keys(keys); end + + # def end_keyword: () -> String + # + # source://prism//lib/prism/node.rb#18056 + sig { returns(String) } + def end_keyword; end + + # attr_reader end_keyword_loc: Location + # + # source://prism//lib/prism/node.rb#18039 + sig { returns(Prism::Location) } + def end_keyword_loc; end + + # attr_reader expression: Prism::node + # + # source://prism//lib/prism/node.rb#18033 + sig { returns(Prism::Node) } + def expression; end + + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + + # def inspect(NodeInspector inspector) -> String + # + # source://prism//lib/prism/node.rb#18061 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # attr_reader locals: Array[Symbol] # - # source://prism//lib/prism/node.rb#17072 + # source://prism//lib/prism/node.rb#18016 sig { returns(T::Array[Symbol]) } def locals; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#17105 + # source://prism//lib/prism/node.rb#18051 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#17081 + # source://prism//lib/prism/node.rb#18026 sig { returns(Prism::Location) } def operator_loc; end @@ -24939,7 +29263,8 @@ class Prism::SingletonClassNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#17146 + # source://prism//lib/prism/node.rb#18092 + sig { override.returns(Symbol) } def type; end class << self @@ -24950,7 +29275,7 @@ class Prism::SingletonClassNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#17156 + # source://prism//lib/prism/node.rb#18102 def type; end end end @@ -24966,22 +29291,26 @@ class Prism::Source # @return [Source] a new instance of Source # # source://prism//lib/prism/parse_result.rb#18 + 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#53 + # source://prism//lib/prism/parse_result.rb#59 + 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#48 + # source://prism//lib/prism/parse_result.rb#54 + 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#70 + # source://prism//lib/prism/parse_result.rb#76 + 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 @@ -24991,27 +29320,35 @@ class Prism::Source # 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#63 + # source://prism//lib/prism/parse_result.rb#69 + 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#43 + # source://prism//lib/prism/parse_result.rb#49 + 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#26 + 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#32 + # source://prism//lib/prism/parse_result.rb#38 + sig { params(byte_offset: Integer).returns(Integer) } def line(byte_offset); end - sig { params(value: Integer).returns(Integer) } - def line_offset(value); end - # Return the byte offset of the start of the line corresponding to the given # byte offset. # - # source://prism//lib/prism/parse_result.rb#38 + # source://prism//lib/prism/parse_result.rb#44 + sig { params(byte_offset: Integer).returns(Integer) } def line_start(byte_offset); end # The list of newline byte offsets in the source code. @@ -25023,7 +29360,8 @@ class Prism::Source # Perform a byteslice on the source code using the given byte offset and # byte length. # - # source://prism//lib/prism/parse_result.rb#26 + # source://prism//lib/prism/parse_result.rb#32 + sig { params(byte_offset: Integer, length: Integer).returns(String) } def slice(byte_offset, length); end # The source code that this source object represents. @@ -25035,6 +29373,7 @@ class Prism::Source # The line number where this source starts. # # source://prism//lib/prism/parse_result.rb#12 + sig { returns(Integer) } def start_line; end private @@ -25042,7 +29381,7 @@ class Prism::Source # Binary search through the offsets to find the line number for the given # byte offset. # - # source://prism//lib/prism/parse_result.rb#78 + # source://prism//lib/prism/parse_result.rb#84 def find_line(byte_offset); end end @@ -25051,63 +29390,72 @@ end # __ENCODING__ # ^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#17165 +# source://prism//lib/prism/node.rb#18124 class Prism::SourceEncodingNode < ::Prism::Node # def initialize: (Location location) -> void # # @return [SourceEncodingNode] a new instance of SourceEncodingNode # - # source://prism//lib/prism/node.rb#17167 + # source://prism//lib/prism/node.rb#18126 + sig { params(source: Prism::Source, location: Prism::Location).void } def initialize(source, location); 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#18201 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#17174 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#18133 + 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#17179 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#18138 + 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#17189 + # source://prism//lib/prism/node.rb#18148 + 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#17184 + # source://prism//lib/prism/node.rb#18143 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> SourceEncodingNode + # def copy: (?location: Location) -> SourceEncodingNode # - # source://prism//lib/prism/node.rb#17194 - sig { params(params: T.untyped).returns(Prism::SourceEncodingNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#18153 + sig { params(location: Prism::Location).returns(Prism::SourceEncodingNode) } + def copy(location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#17179 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#18138 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location } # - # source://prism//lib/prism/node.rb#17205 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#18161 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#17211 + # source://prism//lib/prism/node.rb#18166 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -25125,7 +29473,8 @@ class Prism::SourceEncodingNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#17230 + # source://prism//lib/prism/node.rb#18185 + sig { override.returns(Symbol) } def type; end class << self @@ -25136,7 +29485,7 @@ class Prism::SourceEncodingNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#17240 + # source://prism//lib/prism/node.rb#18195 def type; end end end @@ -25146,71 +29495,112 @@ end # __FILE__ # ^^^^^^^^ # -# source://prism//lib/prism/node.rb#17249 +# source://prism//lib/prism/node.rb#18210 class Prism::SourceFileNode < ::Prism::Node - # def initialize: (String filepath, Location location) -> void + # def initialize: (Integer flags, String filepath, Location location) -> void # # @return [SourceFileNode] a new instance of SourceFileNode # - # source://prism//lib/prism/node.rb#17251 - def initialize(source, filepath, location); end + # source://prism//lib/prism/node.rb#18212 + sig { params(source: Prism::Source, flags: Integer, filepath: String, location: Prism::Location).void } + def initialize(source, flags, filepath, location); 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#18319 + def ===(other); end # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#17259 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#18221 + 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#17264 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#18226 + 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#17274 + # source://prism//lib/prism/node.rb#18236 + 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#17269 + # source://prism//lib/prism/node.rb#18231 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> SourceFileNode + # def copy: (?flags: Integer, ?filepath: String, ?location: Location) -> SourceFileNode # - # source://prism//lib/prism/node.rb#17279 - sig { params(params: T.untyped).returns(Prism::SourceFileNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#18241 + sig { params(flags: Integer, filepath: String, location: Prism::Location).returns(Prism::SourceFileNode) } + def copy(flags: T.unsafe(nil), filepath: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#17264 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#18226 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { filepath: String, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, filepath: String, location: Location } # - # source://prism//lib/prism/node.rb#17291 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#18249 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end - # attr_reader filepath: String + 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#17296 + # source://prism//lib/prism/node.rb#18258 sig { returns(String) } def filepath; end + # def forced_binary_encoding?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#18266 + sig { returns(T::Boolean) } + def forced_binary_encoding?; end + + # def forced_utf8_encoding?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#18261 + sig { returns(T::Boolean) } + def forced_utf8_encoding?; end + + # def frozen?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#18271 + sig { returns(T::Boolean) } + def frozen?; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#17300 + # source://prism//lib/prism/node.rb#18281 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end + # def mutable?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#18276 + sig { returns(T::Boolean) } + def mutable?; 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 @@ -25226,9 +29616,18 @@ class Prism::SourceFileNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#17320 + # source://prism//lib/prism/node.rb#18303 + sig { override.returns(Symbol) } def type; end + protected + + # protected attr_reader flags: Integer + # + # source://prism//lib/prism/node.rb#18254 + sig { returns(Integer) } + def flags; end + class << self # 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. @@ -25237,7 +29636,7 @@ class Prism::SourceFileNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#17330 + # source://prism//lib/prism/node.rb#18313 def type; end end end @@ -25247,63 +29646,72 @@ end # __LINE__ # ^^^^^^^^ # -# source://prism//lib/prism/node.rb#17339 +# source://prism//lib/prism/node.rb#18330 class Prism::SourceLineNode < ::Prism::Node # def initialize: (Location location) -> void # # @return [SourceLineNode] a new instance of SourceLineNode # - # source://prism//lib/prism/node.rb#17341 + # source://prism//lib/prism/node.rb#18332 + sig { params(source: Prism::Source, location: Prism::Location).void } def initialize(source, location); 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#18407 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#17348 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#18339 + 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#17353 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#18344 + 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#17363 + # source://prism//lib/prism/node.rb#18354 + 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#17358 + # source://prism//lib/prism/node.rb#18349 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> SourceLineNode + # def copy: (?location: Location) -> SourceLineNode # - # source://prism//lib/prism/node.rb#17368 - sig { params(params: T.untyped).returns(Prism::SourceLineNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#18359 + sig { params(location: Prism::Location).returns(Prism::SourceLineNode) } + def copy(location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#17353 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#18344 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location } # - # source://prism//lib/prism/node.rb#17379 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#18367 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#17385 + # source://prism//lib/prism/node.rb#18372 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -25321,7 +29729,8 @@ class Prism::SourceLineNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#17404 + # source://prism//lib/prism/node.rb#18391 + sig { override.returns(Symbol) } def type; end class << self @@ -25332,7 +29741,7 @@ class Prism::SourceLineNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#17414 + # source://prism//lib/prism/node.rb#18401 def type; end end end @@ -25342,80 +29751,102 @@ end # [*a] # ^^ # -# source://prism//lib/prism/node.rb#17423 +# source://prism//lib/prism/node.rb#18416 class Prism::SplatNode < ::Prism::Node - # def initialize: (Location operator_loc, Node? expression, Location location) -> void + # def initialize: (Location operator_loc, Prism::node? expression, Location location) -> void # # @return [SplatNode] a new instance of SplatNode # - # source://prism//lib/prism/node.rb#17425 + # source://prism//lib/prism/node.rb#18418 + sig do + params( + source: Prism::Source, + operator_loc: Prism::Location, + expression: T.nilable(Prism::Node), + location: Prism::Location + ).void + end def initialize(source, operator_loc, expression, location); 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#18519 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#17434 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#18427 + 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#17439 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#18432 + 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#17451 + # source://prism//lib/prism/node.rb#18444 + 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#17444 + # source://prism//lib/prism/node.rb#18437 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> SplatNode + # def copy: (?operator_loc: Location, ?expression: Prism::node?, ?location: Location) -> SplatNode # - # source://prism//lib/prism/node.rb#17456 - sig { params(params: T.untyped).returns(Prism::SplatNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#18449 + sig do + params( + operator_loc: Prism::Location, + expression: T.nilable(Prism::Node), + location: Prism::Location + ).returns(Prism::SplatNode) + end + def copy(operator_loc: T.unsafe(nil), expression: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#17439 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#18432 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { operator_loc: Location, expression: Node?, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { operator_loc: Location, expression: Prism::node?, location: Location } # - # source://prism//lib/prism/node.rb#17469 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#18457 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end - # attr_reader expression: Node? + # attr_reader expression: Prism::node? # - # source://prism//lib/prism/node.rb#17480 + # source://prism//lib/prism/node.rb#18469 sig { returns(T.nilable(Prism::Node)) } def expression; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#17489 + # source://prism//lib/prism/node.rb#18477 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def operator: () -> String # - # source://prism//lib/prism/node.rb#17484 + # source://prism//lib/prism/node.rb#18472 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#17474 + # source://prism//lib/prism/node.rb#18462 sig { returns(Prism::Location) } def operator_loc; end @@ -25434,7 +29865,8 @@ class Prism::SplatNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#17515 + # source://prism//lib/prism/node.rb#18503 + sig { override.returns(Symbol) } def type; end class << self @@ -25445,7 +29877,7 @@ class Prism::SplatNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#17525 + # source://prism//lib/prism/node.rb#18513 def type; end end end @@ -25455,69 +29887,78 @@ end # foo; bar; baz # ^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#17534 +# source://prism//lib/prism/node.rb#18530 class Prism::StatementsNode < ::Prism::Node - # def initialize: (Array[Node] body, Location location) -> void + # def initialize: (Array[Prism::node] body, Location location) -> void # # @return [StatementsNode] a new instance of StatementsNode # - # source://prism//lib/prism/node.rb#17536 + # source://prism//lib/prism/node.rb#18532 + sig { params(source: Prism::Source, body: T::Array[Prism::Node], location: Prism::Location).void } def initialize(source, body, location); 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#18612 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#17544 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#18540 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end - # attr_reader body: Array[Node] + # attr_reader body: Array[Prism::node] # - # source://prism//lib/prism/node.rb#17581 + # source://prism//lib/prism/node.rb#18573 sig { returns(T::Array[Prism::Node]) } def body; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#17549 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#18545 + 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#17559 + # source://prism//lib/prism/node.rb#18555 + 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#17554 + # source://prism//lib/prism/node.rb#18550 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> StatementsNode + # def copy: (?body: Array[Prism::node], ?location: Location) -> StatementsNode # - # source://prism//lib/prism/node.rb#17564 - sig { params(params: T.untyped).returns(Prism::StatementsNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#18560 + sig { params(body: T::Array[Prism::Node], location: Prism::Location).returns(Prism::StatementsNode) } + def copy(body: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#17549 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#18545 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { body: Array[Node], location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { body: Array[Prism::node], location: Location } # - # source://prism//lib/prism/node.rb#17576 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#18568 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#17585 + # source://prism//lib/prism/node.rb#18576 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -25535,7 +29976,8 @@ class Prism::StatementsNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#17605 + # source://prism//lib/prism/node.rb#18596 + sig { override.returns(Symbol) } def type; end class << self @@ -25546,31 +29988,32 @@ class Prism::StatementsNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#17615 + # source://prism//lib/prism/node.rb#18606 def type; end end end # Flags for string nodes. # -# source://prism//lib/prism/node.rb#19352 +# source://prism//lib/prism/node.rb#20469 module Prism::StringFlags; end # internal bytes forced the encoding to binary # -# source://prism//lib/prism/node.rb#19357 +# source://prism//lib/prism/node.rb#20474 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#19354 +# source://prism//lib/prism/node.rb#20471 Prism::StringFlags::FORCED_UTF8_ENCODING = T.let(T.unsafe(nil), Integer) -# frozen by virtue of a `frozen_string_literal` comment -# -# source://prism//lib/prism/node.rb#19360 +# source://prism//lib/prism/node.rb#20477 Prism::StringFlags::FROZEN = T.let(T.unsafe(nil), Integer) +# source://prism//lib/prism/node.rb#20480 +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" @@ -25582,7 +30025,7 @@ Prism::StringFlags::FROZEN = T.let(T.unsafe(nil), Integer) # "foo #{bar} baz" # ^^^^ ^^^^ # -# source://prism//lib/prism/node.rb#17630 +# source://prism//lib/prism/node.rb#18629 class Prism::StringNode < ::Prism::Node include ::Prism::HeredocQuery @@ -25590,83 +30033,110 @@ class Prism::StringNode < ::Prism::Node # # @return [StringNode] a new instance of StringNode # - # source://prism//lib/prism/node.rb#17632 + # source://prism//lib/prism/node.rb#18631 + sig do + params( + source: Prism::Source, + flags: Integer, + opening_loc: T.nilable(Prism::Location), + content_loc: Prism::Location, + closing_loc: T.nilable(Prism::Location), + unescaped: String, + location: Prism::Location + ).void + end def initialize(source, flags, opening_loc, content_loc, closing_loc, unescaped, location); 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#18792 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#17644 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#18643 + 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#17649 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#18648 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String? # - # source://prism//lib/prism/node.rb#17748 + # source://prism//lib/prism/node.rb#18746 sig { returns(T.nilable(String)) } def closing; end # attr_reader closing_loc: Location? # - # source://prism//lib/prism/node.rb#17707 + # source://prism//lib/prism/node.rb#18700 sig { returns(T.nilable(Prism::Location)) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#17659 + # source://prism//lib/prism/node.rb#18658 + 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#17654 + # source://prism//lib/prism/node.rb#18653 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end # def content: () -> String # - # source://prism//lib/prism/node.rb#17743 + # source://prism//lib/prism/node.rb#18741 sig { returns(String) } def content; end # attr_reader content_loc: Location # - # source://prism//lib/prism/node.rb#17701 + # source://prism//lib/prism/node.rb#18693 sig { returns(Prism::Location) } def content_loc; end - # def copy: (**params) -> StringNode + # def copy: (?flags: Integer, ?opening_loc: Location?, ?content_loc: Location, ?closing_loc: Location?, ?unescaped: String, ?location: Location) -> StringNode # - # source://prism//lib/prism/node.rb#17664 - sig { params(params: T.untyped).returns(Prism::StringNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#18663 + sig do + params( + flags: Integer, + opening_loc: T.nilable(Prism::Location), + content_loc: Prism::Location, + closing_loc: T.nilable(Prism::Location), + unescaped: String, + location: Prism::Location + ).returns(Prism::StringNode) + end + def copy(flags: T.unsafe(nil), opening_loc: T.unsafe(nil), content_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), unescaped: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#17649 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#18648 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, opening_loc: Location?, content_loc: Location, closing_loc: Location?, unescaped: String, location: Location } # - # source://prism//lib/prism/node.rb#17680 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#18671 + 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#17728 + # source://prism//lib/prism/node.rb#18721 sig { returns(T::Boolean) } def forced_binary_encoding?; end @@ -25674,7 +30144,7 @@ class Prism::StringNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#17723 + # source://prism//lib/prism/node.rb#18716 sig { returns(T::Boolean) } def forced_utf8_encoding?; end @@ -25682,27 +30152,46 @@ class Prism::StringNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#17733 + # source://prism//lib/prism/node.rb#18726 sig { returns(T::Boolean) } def frozen?; end + sig { returns(T::Boolean) } + def heredoc?; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#17753 + # source://prism//lib/prism/node.rb#18751 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end + # def mutable?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#18731 + sig { returns(T::Boolean) } + def mutable?; end + # def opening: () -> String? # - # source://prism//lib/prism/node.rb#17738 + # source://prism//lib/prism/node.rb#18736 sig { returns(T.nilable(String)) } def opening; end # attr_reader opening_loc: Location? # - # source://prism//lib/prism/node.rb#17689 + # source://prism//lib/prism/node.rb#18680 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#55 + sig { returns(Prism::InterpolatedStringNode) } + def to_interpolated; 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 @@ -25718,20 +30207,21 @@ class Prism::StringNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#17778 + # source://prism//lib/prism/node.rb#18776 + sig { override.returns(Symbol) } def type; end # attr_reader unescaped: String # - # source://prism//lib/prism/node.rb#17719 + # source://prism//lib/prism/node.rb#18713 sig { returns(String) } def unescaped; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#17685 + # source://prism//lib/prism/node.rb#18676 sig { returns(Integer) } def flags; end @@ -25743,7 +30233,7 @@ class Prism::StringNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#17788 + # source://prism//lib/prism/node.rb#18786 def type; end end end @@ -25756,110 +30246,138 @@ end # super foo, bar # ^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#17800 +# source://prism//lib/prism/node.rb#18809 class Prism::SuperNode < ::Prism::Node - # def initialize: (Location keyword_loc, Location? lparen_loc, ArgumentsNode? arguments, Location? rparen_loc, Node? block, Location location) -> void + # def initialize: (Location keyword_loc, Location? lparen_loc, ArgumentsNode? arguments, Location? rparen_loc, Prism::node? block, Location location) -> void # # @return [SuperNode] a new instance of SuperNode # - # source://prism//lib/prism/node.rb#17802 + # source://prism//lib/prism/node.rb#18811 + sig do + params( + source: Prism::Source, + 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), + location: Prism::Location + ).void + end def initialize(source, keyword_loc, lparen_loc, arguments, rparen_loc, block, location); 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#18963 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#17814 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#18823 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end # attr_reader arguments: ArgumentsNode? # - # source://prism//lib/prism/node.rb#17876 + # source://prism//lib/prism/node.rb#18879 sig { returns(T.nilable(Prism::ArgumentsNode)) } def arguments; end - # attr_reader block: Node? + # attr_reader block: Prism::node? # - # source://prism//lib/prism/node.rb#17891 + # source://prism//lib/prism/node.rb#18895 sig { returns(T.nilable(Prism::Node)) } def block; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#17819 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#18828 + 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#17832 + # source://prism//lib/prism/node.rb#18841 + 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#17824 + # source://prism//lib/prism/node.rb#18833 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> SuperNode + # def copy: (?keyword_loc: Location, ?lparen_loc: Location?, ?arguments: ArgumentsNode?, ?rparen_loc: Location?, ?block: Prism::node?, ?location: Location) -> SuperNode # - # source://prism//lib/prism/node.rb#17837 - sig { params(params: T.untyped).returns(Prism::SuperNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#18846 + sig do + params( + 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), + location: Prism::Location + ).returns(Prism::SuperNode) + end + def copy(keyword_loc: T.unsafe(nil), lparen_loc: T.unsafe(nil), arguments: T.unsafe(nil), rparen_loc: T.unsafe(nil), block: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#17819 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#18828 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { keyword_loc: Location, lparen_loc: Location?, arguments: ArgumentsNode?, rparen_loc: Location?, block: Node?, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { keyword_loc: Location, lparen_loc: Location?, arguments: ArgumentsNode?, rparen_loc: Location?, block: Prism::node?, location: Location } # - # source://prism//lib/prism/node.rb#17853 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#18854 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#17910 + # source://prism//lib/prism/node.rb#18913 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#17895 + # source://prism//lib/prism/node.rb#18898 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#17858 + # source://prism//lib/prism/node.rb#18859 sig { returns(Prism::Location) } def keyword_loc; end # def lparen: () -> String? # - # source://prism//lib/prism/node.rb#17900 + # source://prism//lib/prism/node.rb#18903 sig { returns(T.nilable(String)) } def lparen; end # attr_reader lparen_loc: Location? # - # source://prism//lib/prism/node.rb#17864 + # source://prism//lib/prism/node.rb#18866 sig { returns(T.nilable(Prism::Location)) } def lparen_loc; end # def rparen: () -> String? # - # source://prism//lib/prism/node.rb#17905 + # source://prism//lib/prism/node.rb#18908 sig { returns(T.nilable(String)) } def rparen; end # attr_reader rparen_loc: Location? # - # source://prism//lib/prism/node.rb#17879 + # source://prism//lib/prism/node.rb#18882 sig { returns(T.nilable(Prism::Location)) } def rparen_loc; end @@ -25878,7 +30396,8 @@ class Prism::SuperNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#17944 + # source://prism//lib/prism/node.rb#18947 + sig { override.returns(Symbol) } def type; end class << self @@ -25889,29 +30408,29 @@ class Prism::SuperNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#17954 + # source://prism//lib/prism/node.rb#18957 def type; end end end # Flags for symbol nodes. # -# source://prism//lib/prism/node.rb#19364 +# source://prism//lib/prism/node.rb#20484 module Prism::SymbolFlags; end # internal bytes forced the encoding to binary # -# source://prism//lib/prism/node.rb#19369 +# source://prism//lib/prism/node.rb#20489 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#19372 +# source://prism//lib/prism/node.rb#20492 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#19366 +# source://prism//lib/prism/node.rb#20486 Prism::SymbolFlags::FORCED_UTF8_ENCODING = T.let(T.unsafe(nil), Integer) # Represents a symbol literal or a symbol contained within a `%i` list. @@ -25922,77 +30441,104 @@ Prism::SymbolFlags::FORCED_UTF8_ENCODING = T.let(T.unsafe(nil), Integer) # %i[foo] # ^^^ # -# source://prism//lib/prism/node.rb#17966 +# source://prism//lib/prism/node.rb#18980 class Prism::SymbolNode < ::Prism::Node # def initialize: (Integer flags, Location? opening_loc, Location? value_loc, Location? closing_loc, String unescaped, Location location) -> void # # @return [SymbolNode] a new instance of SymbolNode # - # source://prism//lib/prism/node.rb#17968 + # source://prism//lib/prism/node.rb#18982 + sig do + params( + source: Prism::Source, + flags: Integer, + opening_loc: T.nilable(Prism::Location), + value_loc: T.nilable(Prism::Location), + closing_loc: T.nilable(Prism::Location), + unescaped: String, + location: Prism::Location + ).void + end def initialize(source, flags, opening_loc, value_loc, closing_loc, unescaped, location); 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#19144 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#17980 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#18994 + 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#17985 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#18999 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String? # - # source://prism//lib/prism/node.rb#18090 + # source://prism//lib/prism/node.rb#19098 sig { returns(T.nilable(String)) } def closing; end # attr_reader closing_loc: Location? # - # source://prism//lib/prism/node.rb#18049 + # source://prism//lib/prism/node.rb#19057 sig { returns(T.nilable(Prism::Location)) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#17995 + # source://prism//lib/prism/node.rb#19009 + 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#17990 + # source://prism//lib/prism/node.rb#19004 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> SymbolNode + # def copy: (?flags: Integer, ?opening_loc: Location?, ?value_loc: Location?, ?closing_loc: Location?, ?unescaped: String, ?location: Location) -> SymbolNode # - # source://prism//lib/prism/node.rb#18000 - sig { params(params: T.untyped).returns(Prism::SymbolNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#19014 + sig do + params( + flags: Integer, + opening_loc: T.nilable(Prism::Location), + value_loc: T.nilable(Prism::Location), + closing_loc: T.nilable(Prism::Location), + unescaped: String, + location: Prism::Location + ).returns(Prism::SymbolNode) + end + def copy(flags: T.unsafe(nil), opening_loc: T.unsafe(nil), value_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), unescaped: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#17985 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#18999 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, opening_loc: Location?, value_loc: Location?, closing_loc: Location?, unescaped: String, location: Location } # - # source://prism//lib/prism/node.rb#18016 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#19022 + 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#18070 + # source://prism//lib/prism/node.rb#19078 sig { returns(T::Boolean) } def forced_binary_encoding?; end @@ -26000,7 +30546,7 @@ class Prism::SymbolNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#18075 + # source://prism//lib/prism/node.rb#19083 sig { returns(T::Boolean) } def forced_us_ascii_encoding?; end @@ -26008,24 +30554,25 @@ class Prism::SymbolNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#18065 + # source://prism//lib/prism/node.rb#19073 sig { returns(T::Boolean) } def forced_utf8_encoding?; end # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#18095 + # source://prism//lib/prism/node.rb#19103 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String? # - # source://prism//lib/prism/node.rb#18080 + # source://prism//lib/prism/node.rb#19088 sig { returns(T.nilable(String)) } def opening; end # attr_reader opening_loc: Location? # - # source://prism//lib/prism/node.rb#18025 + # source://prism//lib/prism/node.rb#19031 sig { returns(T.nilable(Prism::Location)) } def opening_loc; end @@ -26044,32 +30591,33 @@ class Prism::SymbolNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#18120 + # source://prism//lib/prism/node.rb#19128 + sig { override.returns(Symbol) } def type; end # attr_reader unescaped: String # - # source://prism//lib/prism/node.rb#18061 + # source://prism//lib/prism/node.rb#19070 sig { returns(String) } def unescaped; end # def value: () -> String? # - # source://prism//lib/prism/node.rb#18085 + # source://prism//lib/prism/node.rb#19093 sig { returns(T.nilable(String)) } def value; end # attr_reader value_loc: Location? # - # source://prism//lib/prism/node.rb#18037 + # source://prism//lib/prism/node.rb#19044 sig { returns(T.nilable(Prism::Location)) } def value_loc; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#18021 + # source://prism//lib/prism/node.rb#19027 sig { returns(Integer) } def flags; end @@ -26081,55 +30629,56 @@ class Prism::SymbolNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#18130 + # source://prism//lib/prism/node.rb#19138 def type; end end end # This represents a token from the Ruby source. # -# source://prism//lib/prism/parse_result.rb#454 +# source://prism//lib/prism/parse_result.rb#550 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#466 + # source://prism//lib/prism/parse_result.rb#562 + 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#500 + # source://prism//lib/prism/parse_result.rb#597 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#474 - sig { params(keys: T.untyped).returns(T.untyped) } + # source://prism//lib/prism/parse_result.rb#570 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end # A Location object representing the location of this token in the source. # - # source://prism//lib/prism/parse_result.rb#479 + # source://prism//lib/prism/parse_result.rb#575 sig { returns(Prism::Location) } def location; end # Implement the pretty print interface for Token. # - # source://prism//lib/prism/parse_result.rb#485 - sig { params(q: T.untyped).returns(T.untyped) } + # source://prism//lib/prism/parse_result.rb#582 + 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#460 - sig { returns(T.untyped) } + # source://prism//lib/prism/parse_result.rb#556 + sig { returns(Symbol) } def type; end # A byteslice of the source that this token represents. # - # source://prism//lib/prism/parse_result.rb#463 + # source://prism//lib/prism/parse_result.rb#559 sig { returns(String) } def value; end @@ -26137,7 +30686,8 @@ class Prism::Token # The Source object that represents the source this token came from. # - # source://prism//lib/prism/parse_result.rb#456 + # source://prism//lib/prism/parse_result.rb#552 + sig { returns(Prism::Source) } def source; end end @@ -26156,47 +30706,48 @@ module Prism::Translation; end class Prism::Translation::Parser < ::Parser::Base # The default encoding for Ruby files is UTF-8. # - # source://prism//lib/prism/translation/parser.rb#33 + # source://prism//lib/prism/translation/parser.rb#36 def default_encoding; end # Parses a source buffer and returns the AST. # - # source://prism//lib/prism/translation/parser.rb#41 + # source://prism//lib/prism/translation/parser.rb#44 def parse(source_buffer); end # Parses a source buffer and returns the AST and the source code comments. # - # source://prism//lib/prism/translation/parser.rb#54 + # source://prism//lib/prism/translation/parser.rb#57 def parse_with_comments(source_buffer); end # Parses a source buffer and returns the AST, the source code comments, # and the tokens emitted by the lexer. # - # source://prism//lib/prism/translation/parser.rb#71 + # source://prism//lib/prism/translation/parser.rb#74 def tokenize(source_buffer, recover = T.unsafe(nil)); end # Since prism resolves num params for us, we don't need to support this # kind of logic here. # - # source://prism//lib/prism/translation/parser.rb#97 + # source://prism//lib/prism/translation/parser.rb#100 def try_declare_numparam(node); end - # source://prism//lib/prism/translation/parser.rb#28 + # source://prism//lib/prism/translation/parser.rb#31 + sig { overridable.returns(Integer) } def version; end - # source://prism//lib/prism/translation/parser.rb#37 + # source://prism//lib/prism/translation/parser.rb#40 def yyerror; end private # Build the parser gem AST from the prism AST. # - # source://prism//lib/prism/translation/parser.rb#146 + # source://prism//lib/prism/translation/parser.rb#258 def build_ast(program, offset_cache); end # Build the parser gem comments from the prism comments. # - # source://prism//lib/prism/translation/parser.rb#151 + # source://prism//lib/prism/translation/parser.rb#263 def build_comments(comments, offset_cache); end # Prism deals with offsets in bytes, while the parser gem deals with @@ -26207,28 +30758,33 @@ class Prism::Translation::Parser < ::Parser::Base # just use the offset directly. Otherwise, we build an array where the # index is the byte offset and the value is the character offset. # - # source://prism//lib/prism/translation/parser.rb#129 + # source://prism//lib/prism/translation/parser.rb#241 def build_offset_cache(source); end # Build a range from a prism location. # - # source://prism//lib/prism/translation/parser.rb#163 + # source://prism//lib/prism/translation/parser.rb#275 def build_range(location, offset_cache); end # Build the parser gem tokens from the prism tokens. # - # source://prism//lib/prism/translation/parser.rb#158 + # source://prism//lib/prism/translation/parser.rb#270 def build_tokens(tokens, offset_cache); end # Converts the version format handled by Parser to the format handled by Prism. # - # source://prism//lib/prism/translation/parser.rb#172 + # source://prism//lib/prism/translation/parser.rb#284 def convert_for_prism(version); end + # Build a diagnostic from the given prism parse error. + # + # source://prism//lib/prism/translation/parser.rb#119 + def error_diagnostic(error, offset_cache); end + # If there was a error generated during the parse, then raise an # appropriate syntax error. Otherwise return the result. # - # source://prism//lib/prism/translation/parser.rb#111 + # source://prism//lib/prism/translation/parser.rb#219 def unwrap(result, offset_cache); end # This is a hook to allow consumers to disable some errors if they don't @@ -26236,8 +30792,39 @@ class Prism::Translation::Parser < ::Parser::Base # # @return [Boolean] # - # source://prism//lib/prism/translation/parser.rb#105 + # source://prism//lib/prism/translation/parser.rb#108 def valid_error?(error); end + + # This is a hook to allow consumers to disable some warnings if they don't + # want them to block creating the syntax tree. + # + # @return [Boolean] + # + # source://prism//lib/prism/translation/parser.rb#114 + def valid_warning?(warning); end + + # Build a diagnostic from the given prism parse warning. + # + # source://prism//lib/prism/translation/parser.rb#192 + def warning_diagnostic(warning, offset_cache); end +end + +# This class is the entry-point for Ruby 3.3 of `Prism::Translation::Parser`. +# +# source://prism//lib/prism/translation/parser33.rb#6 +class Prism::Translation::Parser33 < ::Prism::Translation::Parser + # source://prism//lib/prism/translation/parser33.rb#7 + sig { override.returns(Integer) } + def version; end +end + +# This class is the entry-point for Ruby 3.4 of `Prism::Translation::Parser`. +# +# source://prism//lib/prism/translation/parser34.rb#6 +class Prism::Translation::Parser34 < ::Prism::Translation::Parser + # source://prism//lib/prism/translation/parser34.rb#7 + sig { override.returns(Integer) } + def version; end end # A visitor that knows how to convert a prism syntax tree into the @@ -26245,6 +30832,8 @@ end # # source://prism//lib/prism/translation/parser/compiler.rb#8 class Prism::Translation::Parser::Compiler < ::Prism::Compiler + Result = type_member { { fixed: Parser::AST::Node } } + # Initialize a new compiler with the given parser, offset cache, and # options. # @@ -26345,49 +30934,49 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # { **foo } # ^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#141 + # source://prism//lib/prism/translation/parser/compiler.rb#148 def visit_assoc_splat_node(node); end # $+ # ^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#151 + # source://prism//lib/prism/translation/parser/compiler.rb#158 def visit_back_reference_read_node(node); end # begin end # ^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#157 + # source://prism//lib/prism/translation/parser/compiler.rb#164 def visit_begin_node(node); end # foo(&bar) # ^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#195 + # source://prism//lib/prism/translation/parser/compiler.rb#202 def visit_block_argument_node(node); end # foo { |; bar| } # ^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#201 + # source://prism//lib/prism/translation/parser/compiler.rb#208 def visit_block_local_variable_node(node); end # A block on a keyword or method call. # # @raise [CompilationError] # - # source://prism//lib/prism/translation/parser/compiler.rb#206 + # source://prism//lib/prism/translation/parser/compiler.rb#213 def visit_block_node(node); end # def foo(&bar); end # ^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#212 + # source://prism//lib/prism/translation/parser/compiler.rb#219 def visit_block_parameter_node(node); end # A block's parameters. # - # source://prism//lib/prism/translation/parser/compiler.rb#217 + # source://prism//lib/prism/translation/parser/compiler.rb#224 def visit_block_parameters_node(node); end # break @@ -26396,7 +30985,7 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # break foo # ^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#226 + # source://prism//lib/prism/translation/parser/compiler.rb#233 def visit_break_node(node); end # foo.bar += baz @@ -26404,7 +30993,7 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # foo.bar &&= baz # ^^^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#300 + # source://prism//lib/prism/translation/parser/compiler.rb#319 def visit_call_and_write_node(node); end # foo @@ -26416,13 +31005,13 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # foo.bar() {} # ^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#238 + # source://prism//lib/prism/translation/parser/compiler.rb#245 def visit_call_node(node); end # foo.bar += baz # ^^^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#300 + # source://prism//lib/prism/translation/parser/compiler.rb#319 def visit_call_operator_write_node(node); end # foo.bar += baz @@ -26430,37 +31019,37 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # foo.bar ||= baz # ^^^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#300 + # source://prism//lib/prism/translation/parser/compiler.rb#319 def visit_call_or_write_node(node); end # foo.bar, = 1 # ^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#327 + # source://prism//lib/prism/translation/parser/compiler.rb#346 def visit_call_target_node(node); end # foo => bar => baz # ^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#339 + # source://prism//lib/prism/translation/parser/compiler.rb#358 def visit_capture_pattern_node(node); end # case foo; in bar; end # ^^^^^^^^^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#358 + # source://prism//lib/prism/translation/parser/compiler.rb#377 def visit_case_match_node(node); end # case foo; when bar; end # ^^^^^^^^^^^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#345 + # source://prism//lib/prism/translation/parser/compiler.rb#364 def visit_case_node(node); end # class Foo; end # ^^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#371 + # source://prism//lib/prism/translation/parser/compiler.rb#390 def visit_class_node(node); end # @@foo += bar @@ -26468,13 +31057,13 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # @@foo &&= bar # ^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#403 + # source://prism//lib/prism/translation/parser/compiler.rb#419 def visit_class_variable_and_write_node(node); end # @@foo += bar # ^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#403 + # source://prism//lib/prism/translation/parser/compiler.rb#419 def visit_class_variable_operator_write_node(node); end # @@foo += bar @@ -26482,28 +31071,25 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # @@foo ||= bar # ^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#403 + # source://prism//lib/prism/translation/parser/compiler.rb#419 def visit_class_variable_or_write_node(node); end # @@foo # ^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#384 + # source://prism//lib/prism/translation/parser/compiler.rb#403 def visit_class_variable_read_node(node); end # @@foo, = bar # ^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#421 + # source://prism//lib/prism/translation/parser/compiler.rb#437 def visit_class_variable_target_node(node); end # @@foo = 1 # ^^^^^^^^^ # - # @@foo, @@bar = 1 - # ^^^^^ ^^^^^ - # - # source://prism//lib/prism/translation/parser/compiler.rb#393 + # source://prism//lib/prism/translation/parser/compiler.rb#409 def visit_class_variable_write_node(node); end # Foo += bar @@ -26511,13 +31097,13 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # Foo &&= bar # ^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#442 + # source://prism//lib/prism/translation/parser/compiler.rb#458 def visit_constant_and_write_node(node); end # Foo += bar # ^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#442 + # source://prism//lib/prism/translation/parser/compiler.rb#458 def visit_constant_operator_write_node(node); end # Foo += bar @@ -26525,7 +31111,7 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # Foo ||= bar # ^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#442 + # source://prism//lib/prism/translation/parser/compiler.rb#458 def visit_constant_or_write_node(node); end # Foo::Bar += baz @@ -26533,19 +31119,19 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # Foo::Bar &&= baz # ^^^^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#496 + # source://prism//lib/prism/translation/parser/compiler.rb#512 def visit_constant_path_and_write_node(node); end # Foo::Bar # ^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#466 + # source://prism//lib/prism/translation/parser/compiler.rb#482 def visit_constant_path_node(node); end # Foo::Bar += baz # ^^^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#496 + # source://prism//lib/prism/translation/parser/compiler.rb#512 def visit_constant_path_operator_write_node(node); end # Foo::Bar += baz @@ -26553,13 +31139,13 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # Foo::Bar ||= baz # ^^^^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#496 + # source://prism//lib/prism/translation/parser/compiler.rb#512 def visit_constant_path_or_write_node(node); end # Foo::Bar, = baz # ^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#514 + # source://prism//lib/prism/translation/parser/compiler.rb#530 def visit_constant_path_target_node(node); end # Foo::Bar = 1 @@ -26568,19 +31154,19 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # Foo::Foo, Bar::Bar = 1 # ^^^^^^^^ ^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#486 + # source://prism//lib/prism/translation/parser/compiler.rb#502 def visit_constant_path_write_node(node); end # Foo # ^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#427 + # source://prism//lib/prism/translation/parser/compiler.rb#443 def visit_constant_read_node(node); end # Foo, = bar # ^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#460 + # source://prism//lib/prism/translation/parser/compiler.rb#476 def visit_constant_target_node(node); end # Foo = 1 @@ -26589,7 +31175,7 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # Foo, Bar = 1 # ^^^ ^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#436 + # source://prism//lib/prism/translation/parser/compiler.rb#452 def visit_constant_write_node(node); end # def foo; end @@ -26598,7 +31184,7 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # def self.foo; end # ^^^^^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#523 + # source://prism//lib/prism/translation/parser/compiler.rb#539 def visit_def_node(node); end # defined? a @@ -26607,25 +31193,25 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # defined?(a) # ^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#570 + # source://prism//lib/prism/translation/parser/compiler.rb#586 def visit_defined_node(node); end # if foo then bar else baz end # ^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#582 + # source://prism//lib/prism/translation/parser/compiler.rb#598 def visit_else_node(node); end # "foo #{bar}" # ^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#588 + # source://prism//lib/prism/translation/parser/compiler.rb#604 def visit_embedded_statements_node(node); end # "foo #@bar" # ^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#598 + # source://prism//lib/prism/translation/parser/compiler.rb#614 def visit_embedded_variable_node(node); end # begin; foo; ensure; bar; end @@ -26633,19 +31219,19 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # # @raise [CompilationError] # - # source://prism//lib/prism/translation/parser/compiler.rb#604 + # source://prism//lib/prism/translation/parser/compiler.rb#620 def visit_ensure_node(node); end # false # ^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#610 + # source://prism//lib/prism/translation/parser/compiler.rb#626 def visit_false_node(node); end # foo => [*, bar, *] # ^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#616 + # source://prism//lib/prism/translation/parser/compiler.rb#632 def visit_find_pattern_node(node); end # 0..5 @@ -26653,31 +31239,31 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # if foo .. bar; end # ^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1302 + # source://prism//lib/prism/translation/parser/compiler.rb#1364 def visit_flip_flop_node(node); end # 1.0 # ^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#628 + # source://prism//lib/prism/translation/parser/compiler.rb#644 def visit_float_node(node); end # for foo in bar do end # ^^^^^^^^^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#634 + # source://prism//lib/prism/translation/parser/compiler.rb#650 def visit_for_node(node); end # def foo(...); bar(...); end # ^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#652 + # source://prism//lib/prism/translation/parser/compiler.rb#668 def visit_forwarding_arguments_node(node); end # def foo(...); end # ^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#658 + # source://prism//lib/prism/translation/parser/compiler.rb#674 def visit_forwarding_parameter_node(node); end # super @@ -26686,7 +31272,7 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # super {} # ^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#667 + # source://prism//lib/prism/translation/parser/compiler.rb#683 def visit_forwarding_super_node(node); end # $foo += bar @@ -26694,13 +31280,13 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # $foo &&= bar # ^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#698 + # source://prism//lib/prism/translation/parser/compiler.rb#711 def visit_global_variable_and_write_node(node); end # $foo += bar # ^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#698 + # source://prism//lib/prism/translation/parser/compiler.rb#711 def visit_global_variable_operator_write_node(node); end # $foo += bar @@ -26708,40 +31294,37 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # $foo ||= bar # ^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#698 + # source://prism//lib/prism/translation/parser/compiler.rb#711 def visit_global_variable_or_write_node(node); end # $foo # ^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#679 + # source://prism//lib/prism/translation/parser/compiler.rb#695 def visit_global_variable_read_node(node); end # $foo, = bar # ^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#716 + # source://prism//lib/prism/translation/parser/compiler.rb#729 def visit_global_variable_target_node(node); end # $foo = 1 # ^^^^^^^^ # - # $foo, $bar = 1 - # ^^^^ ^^^^ - # - # source://prism//lib/prism/translation/parser/compiler.rb#688 + # source://prism//lib/prism/translation/parser/compiler.rb#701 def visit_global_variable_write_node(node); end # {} # ^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#722 + # source://prism//lib/prism/translation/parser/compiler.rb#735 def visit_hash_node(node); end # foo => {} # ^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#732 + # source://prism//lib/prism/translation/parser/compiler.rb#745 def visit_hash_pattern_node(node); end # if foo then bar end @@ -26753,12 +31336,13 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # foo ? bar : baz # ^^^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#750 + # source://prism//lib/prism/translation/parser/compiler.rb#763 def visit_if_node(node); end # 1i + # ^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#791 + # source://prism//lib/prism/translation/parser/compiler.rb#805 def visit_imaginary_node(node); end # { foo: } @@ -26766,7 +31350,7 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # # @raise [CompilationError] # - # source://prism//lib/prism/translation/parser/compiler.rb#797 + # source://prism//lib/prism/translation/parser/compiler.rb#811 def visit_implicit_node(node); end # foo { |bar,| } @@ -26774,13 +31358,13 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # # @raise [CompilationError] # - # source://prism//lib/prism/translation/parser/compiler.rb#803 + # source://prism//lib/prism/translation/parser/compiler.rb#817 def visit_implicit_rest_node(node); end # case foo; in bar; end # ^^^^^^^^^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#809 + # source://prism//lib/prism/translation/parser/compiler.rb#823 def visit_in_node(node); end # foo[bar] += baz @@ -26788,13 +31372,13 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # foo[bar] &&= baz # ^^^^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#835 + # source://prism//lib/prism/translation/parser/compiler.rb#849 def visit_index_and_write_node(node); end # foo[bar] += baz # ^^^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#835 + # source://prism//lib/prism/translation/parser/compiler.rb#849 def visit_index_operator_write_node(node); end # foo[bar] += baz @@ -26802,55 +31386,52 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # foo[bar] ||= baz # ^^^^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#835 + # source://prism//lib/prism/translation/parser/compiler.rb#849 def visit_index_or_write_node(node); end # foo[bar], = 1 # ^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#861 + # source://prism//lib/prism/translation/parser/compiler.rb#875 def visit_index_target_node(node); end # ^^^^^^^^^^^ # ^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#891 + # source://prism//lib/prism/translation/parser/compiler.rb#902 def visit_instance_variable_and_write_node(node); end # ^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#891 + # source://prism//lib/prism/translation/parser/compiler.rb#902 def visit_instance_variable_operator_write_node(node); end # ^^^^^^^^^^^ # ^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#891 + # source://prism//lib/prism/translation/parser/compiler.rb#902 def visit_instance_variable_or_write_node(node); end # ^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#872 + # source://prism//lib/prism/translation/parser/compiler.rb#886 def visit_instance_variable_read_node(node); end # @foo, = bar # ^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#909 + # source://prism//lib/prism/translation/parser/compiler.rb#920 def visit_instance_variable_target_node(node); end # ^^^^^^^^ # - # @foo, @bar = 1 - # ^^^^ ^^^^ - # - # source://prism//lib/prism/translation/parser/compiler.rb#881 + # source://prism//lib/prism/translation/parser/compiler.rb#892 def visit_instance_variable_write_node(node); end # 1 # ^ # - # source://prism//lib/prism/translation/parser/compiler.rb#915 + # source://prism//lib/prism/translation/parser/compiler.rb#926 def visit_integer_node(node); end # /foo #{bar}/ @@ -26858,37 +31439,43 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # if /foo #{bar}/ then end # ^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#921 + # source://prism//lib/prism/translation/parser/compiler.rb#932 def visit_interpolated_match_last_line_node(node); end # /foo #{bar}/ # ^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#921 + # source://prism//lib/prism/translation/parser/compiler.rb#932 def visit_interpolated_regular_expression_node(node); end # "foo #{bar}" # ^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#936 + # source://prism//lib/prism/translation/parser/compiler.rb#947 def visit_interpolated_string_node(node); end # :"foo #{bar}" # ^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#951 + # source://prism//lib/prism/translation/parser/compiler.rb#1010 def visit_interpolated_symbol_node(node); end # `foo #{bar}` # ^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#961 + # source://prism//lib/prism/translation/parser/compiler.rb#1020 def visit_interpolated_x_string_node(node); end + # -> { it } + # ^^^^^^^^^ + # + # source://prism//lib/prism/translation/parser/compiler.rb#1035 + def visit_it_parameters_node(node); end + # foo(bar: baz) # ^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#976 + # source://prism//lib/prism/translation/parser/compiler.rb#1041 def visit_keyword_hash_node(node); end # def foo(**bar); end @@ -26897,12 +31484,13 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # def foo(**); end # ^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#985 + # source://prism//lib/prism/translation/parser/compiler.rb#1050 def visit_keyword_rest_parameter_node(node); end # -> {} + # ^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#993 + # source://prism//lib/prism/translation/parser/compiler.rb#1059 def visit_lambda_node(node); end # foo += bar @@ -26910,13 +31498,13 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # foo &&= bar # ^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1037 + # source://prism//lib/prism/translation/parser/compiler.rb#1108 def visit_local_variable_and_write_node(node); end # foo += bar # ^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1037 + # source://prism//lib/prism/translation/parser/compiler.rb#1108 def visit_local_variable_operator_write_node(node); end # foo += bar @@ -26924,28 +31512,25 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # foo ||= bar # ^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1037 + # source://prism//lib/prism/translation/parser/compiler.rb#1108 def visit_local_variable_or_write_node(node); end # foo # ^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1018 + # source://prism//lib/prism/translation/parser/compiler.rb#1085 def visit_local_variable_read_node(node); end # foo, = bar # ^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1055 + # source://prism//lib/prism/translation/parser/compiler.rb#1126 def visit_local_variable_target_node(node); end # foo = 1 # ^^^^^^^ # - # foo, bar = 1 - # ^^^ ^^^ - # - # source://prism//lib/prism/translation/parser/compiler.rb#1027 + # source://prism//lib/prism/translation/parser/compiler.rb#1098 def visit_local_variable_write_node(node); end # /foo/ @@ -26953,47 +31538,50 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # if /foo/ then end # ^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1336 + # source://prism//lib/prism/translation/parser/compiler.rb#1398 def visit_match_last_line_node(node); end - # source://prism//lib/prism/translation/parser/compiler.rb#1066 + # foo in bar + # ^^^^^^^^^^ + # + # source://prism//lib/prism/translation/parser/compiler.rb#1136 def visit_match_predicate_node(node); end # foo => bar # ^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1085 + # source://prism//lib/prism/translation/parser/compiler.rb#1146 def visit_match_required_node(node); end # /(?foo)/ =~ bar # ^^^^^^^^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1095 + # source://prism//lib/prism/translation/parser/compiler.rb#1156 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/parser/compiler.rb#1106 + # source://prism//lib/prism/translation/parser/compiler.rb#1167 def visit_missing_node(node); end # module Foo; end # ^^^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1112 + # source://prism//lib/prism/translation/parser/compiler.rb#1173 def visit_module_node(node); end # foo, bar = baz # ^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1123 + # source://prism//lib/prism/translation/parser/compiler.rb#1184 def visit_multi_target_node(node); end # foo, bar = baz # ^^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1137 + # source://prism//lib/prism/translation/parser/compiler.rb#1198 def visit_multi_write_node(node); end # next @@ -27002,55 +31590,55 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # next foo # ^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1158 + # source://prism//lib/prism/translation/parser/compiler.rb#1219 def visit_next_node(node); end # nil # ^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1170 + # source://prism//lib/prism/translation/parser/compiler.rb#1231 def visit_nil_node(node); end # def foo(**nil); end # ^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1176 + # source://prism//lib/prism/translation/parser/compiler.rb#1237 def visit_no_keywords_parameter_node(node); end # -> { _1 + _2 } # ^^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1186 + # source://prism//lib/prism/translation/parser/compiler.rb#1247 def visit_numbered_parameters_node(node); end # $1 # ^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1192 + # source://prism//lib/prism/translation/parser/compiler.rb#1253 def visit_numbered_reference_read_node(node); end # def foo(bar: baz); end # ^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1198 + # source://prism//lib/prism/translation/parser/compiler.rb#1259 def visit_optional_keyword_parameter_node(node); end # def foo(bar = 1); end # ^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1204 + # source://prism//lib/prism/translation/parser/compiler.rb#1265 def visit_optional_parameter_node(node); end # a or b # ^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1210 + # source://prism//lib/prism/translation/parser/compiler.rb#1271 def visit_or_node(node); end # def foo(bar, *baz); end # ^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1216 + # source://prism//lib/prism/translation/parser/compiler.rb#1277 def visit_parameters_node(node); end # () @@ -27059,76 +31647,76 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # (1) # ^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1255 + # source://prism//lib/prism/translation/parser/compiler.rb#1316 def visit_parentheses_node(node); end # foo => ^(bar) # ^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1265 + # source://prism//lib/prism/translation/parser/compiler.rb#1326 def visit_pinned_expression_node(node); end # foo = 1 and bar => ^foo # ^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1271 + # source://prism//lib/prism/translation/parser/compiler.rb#1333 def visit_pinned_variable_node(node); end # END {} # - # source://prism//lib/prism/translation/parser/compiler.rb#1276 + # source://prism//lib/prism/translation/parser/compiler.rb#1338 def visit_post_execution_node(node); end # BEGIN {} # - # source://prism//lib/prism/translation/parser/compiler.rb#1286 + # source://prism//lib/prism/translation/parser/compiler.rb#1348 def visit_pre_execution_node(node); end # The top-level program node. # - # source://prism//lib/prism/translation/parser/compiler.rb#1296 + # source://prism//lib/prism/translation/parser/compiler.rb#1358 def visit_program_node(node); end # 0..5 # ^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1302 + # source://prism//lib/prism/translation/parser/compiler.rb#1364 def visit_range_node(node); end # 1r # ^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1324 + # source://prism//lib/prism/translation/parser/compiler.rb#1386 def visit_rational_node(node); end # redo # ^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1330 + # source://prism//lib/prism/translation/parser/compiler.rb#1392 def visit_redo_node(node); end # /foo/ # ^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1336 + # source://prism//lib/prism/translation/parser/compiler.rb#1398 def visit_regular_expression_node(node); end # def foo(bar:); end # ^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1351 + # source://prism//lib/prism/translation/parser/compiler.rb#1413 def visit_required_keyword_parameter_node(node); end # def foo(bar); end # ^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1357 + # source://prism//lib/prism/translation/parser/compiler.rb#1419 def visit_required_parameter_node(node); end # foo rescue bar # ^^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1363 + # source://prism//lib/prism/translation/parser/compiler.rb#1425 def visit_rescue_modifier_node(node); end # begin; rescue; end @@ -27136,7 +31724,7 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # # @raise [CompilationError] # - # source://prism//lib/prism/translation/parser/compiler.rb#1381 + # source://prism//lib/prism/translation/parser/compiler.rb#1443 def visit_rescue_node(node); end # def foo(*bar); end @@ -27145,13 +31733,13 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # def foo(*); end # ^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1390 + # source://prism//lib/prism/translation/parser/compiler.rb#1452 def visit_rest_parameter_node(node); end # retry # ^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1396 + # source://prism//lib/prism/translation/parser/compiler.rb#1458 def visit_retry_node(node); end # return @@ -27160,37 +31748,42 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # return 1 # ^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1405 + # source://prism//lib/prism/translation/parser/compiler.rb#1467 def visit_return_node(node); end # self # ^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1417 + # source://prism//lib/prism/translation/parser/compiler.rb#1479 def visit_self_node(node); end + # A shareable constant. + # + # source://prism//lib/prism/translation/parser/compiler.rb#1484 + def visit_shareable_constant_node(node); end + # class << self; end # ^^^^^^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1423 + # source://prism//lib/prism/translation/parser/compiler.rb#1490 def visit_singleton_class_node(node); end # __ENCODING__ # ^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1435 + # source://prism//lib/prism/translation/parser/compiler.rb#1502 def visit_source_encoding_node(node); end # __FILE__ # ^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1441 + # source://prism//lib/prism/translation/parser/compiler.rb#1508 def visit_source_file_node(node); end # __LINE__ # ^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1447 + # source://prism//lib/prism/translation/parser/compiler.rb#1514 def visit_source_line_node(node); end # foo(*bar) @@ -27202,42 +31795,42 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # def foo(*); bar(*); end # ^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1459 + # source://prism//lib/prism/translation/parser/compiler.rb#1526 def visit_splat_node(node); end # A list of statements. # - # source://prism//lib/prism/translation/parser/compiler.rb#1472 + # source://prism//lib/prism/translation/parser/compiler.rb#1539 def visit_statements_node(node); end # "foo" # ^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1478 + # source://prism//lib/prism/translation/parser/compiler.rb#1545 def visit_string_node(node); end # super(foo) # ^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1495 + # source://prism//lib/prism/translation/parser/compiler.rb#1586 def visit_super_node(node); end # :foo # ^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1518 + # source://prism//lib/prism/translation/parser/compiler.rb#1609 def visit_symbol_node(node); end # true # ^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1536 + # source://prism//lib/prism/translation/parser/compiler.rb#1641 def visit_true_node(node); end # undef foo # ^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1542 + # source://prism//lib/prism/translation/parser/compiler.rb#1647 def visit_undef_node(node); end # unless foo; bar end @@ -27246,22 +31839,22 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # bar unless foo # ^^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1551 + # source://prism//lib/prism/translation/parser/compiler.rb#1656 def visit_unless_node(node); end # until foo; bar end - # ^^^^^^^^^^^^^^^^^ + # ^^^^^^^^^^^^^^^^^^ # # bar until foo # ^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1581 + # source://prism//lib/prism/translation/parser/compiler.rb#1686 def visit_until_node(node); end # case foo; when bar; end # ^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1603 + # source://prism//lib/prism/translation/parser/compiler.rb#1708 def visit_when_node(node); end # while foo; bar end @@ -27270,13 +31863,13 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # bar while foo # ^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1617 + # source://prism//lib/prism/translation/parser/compiler.rb#1726 def visit_while_node(node); end # `foo` # ^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1639 + # source://prism//lib/prism/translation/parser/compiler.rb#1748 def visit_x_string_node(node); end # yield @@ -27285,7 +31878,7 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # yield 1 # ^^^^^^^ # - # source://prism//lib/prism/translation/parser/compiler.rb#1657 + # source://prism//lib/prism/translation/parser/compiler.rb#1780 def visit_yield_node(node); end private @@ -27293,65 +31886,89 @@ class Prism::Translation::Parser::Compiler < ::Prism::Compiler # Initialize a new compiler with the given option overrides, used to # visit a subtree with the given options. # - # source://prism//lib/prism/translation/parser/compiler.rb#1671 + # source://prism//lib/prism/translation/parser/compiler.rb#1794 def copy_compiler(forwarding: T.unsafe(nil), in_destructure: T.unsafe(nil), in_pattern: T.unsafe(nil)); end # When *, **, &, or ... are used as an argument in a method call, we # check if they were allowed by the current context. To determine that # we build this lookup table. # - # source://prism//lib/prism/translation/parser/compiler.rb#1678 + # source://prism//lib/prism/translation/parser/compiler.rb#1801 def find_forwarding(node); end + # Because we have mutated the AST to allow for newlines in the middle of + # a rational, we need to manually handle the value here. + # + # source://prism//lib/prism/translation/parser/compiler.rb#1815 + def imaginary_value(node); end + + # Negate the value of a numeric node. This is a special case where you + # have a negative sign on one line and then a number on the next line. + # In normal Ruby, this will always be a method call. The parser gem, + # however, marks this as a numeric literal. We have to massage the tree + # here to get it into the correct form. + # + # source://prism//lib/prism/translation/parser/compiler.rb#1824 + def numeric_negate(message_loc, receiver); end + # Blocks can have a special set of parameters that automatically expand # when given arrays if they have a single required parameter and no # other parameters. # # @return [Boolean] # - # source://prism//lib/prism/translation/parser/compiler.rb#1693 + # source://prism//lib/prism/translation/parser/compiler.rb#1836 def procarg0?(parameters); end + # Because we have mutated the AST to allow for newlines in the middle of + # a rational, we need to manually handle the value here. + # + # source://prism//lib/prism/translation/parser/compiler.rb#1849 + def rational_value(node); end + # Constructs a new source range from the given start and end offsets. # - # source://prism//lib/prism/translation/parser/compiler.rb#1710 + # source://prism//lib/prism/translation/parser/compiler.rb#1863 def srange(location); end # Constructs a new source range by finding the given tokens between the # given start offset and end offset. If the needle is not found, it - # returns nil. + # returns nil. Importantly it does not search past newlines or comments. # - # source://prism//lib/prism/translation/parser/compiler.rb#1722 + # Note that end_offset is allowed to be nil, in which case this will + # search until the end of the string. + # + # source://prism//lib/prism/translation/parser/compiler.rb#1878 def srange_find(start_offset, end_offset, tokens); end # Constructs a new source range from the given start and end offsets. # - # source://prism//lib/prism/translation/parser/compiler.rb#1715 + # source://prism//lib/prism/translation/parser/compiler.rb#1868 def srange_offsets(start_offset, end_offset); end # Transform a location into a token that the parser gem expects. # - # source://prism//lib/prism/translation/parser/compiler.rb#1731 + # source://prism//lib/prism/translation/parser/compiler.rb#1888 def token(location); end # Visit a block node on a call. # - # source://prism//lib/prism/translation/parser/compiler.rb#1736 + # source://prism//lib/prism/translation/parser/compiler.rb#1893 def visit_block(call, block); end # Visit a heredoc that can be either a string or an xstring. # - # source://prism//lib/prism/translation/parser/compiler.rb#1769 + # source://prism//lib/prism/translation/parser/compiler.rb#1927 def visit_heredoc(node); end # Visit a numeric node and account for the optional sign. # - # source://prism//lib/prism/translation/parser/compiler.rb#1815 + # source://prism//lib/prism/translation/parser/compiler.rb#1973 def visit_numeric(node, value); end # Within the given block, track that we're within a pattern. # - # source://prism//lib/prism/translation/parser/compiler.rb#1827 + # source://prism//lib/prism/translation/parser/compiler.rb#1985 def within_pattern; end end @@ -27364,27 +31981,11 @@ class Prism::Translation::Parser::Compiler::CompilationError < ::StandardError; # store a reference to its constant to make it slightly faster to look # up. # -# source://prism//lib/prism/translation/parser/compiler.rb#1707 +# source://prism//lib/prism/translation/parser/compiler.rb#1860 Prism::Translation::Parser::Compiler::Range = Parser::Source::Range -# The parser gem has a list of diagnostics with a hard-coded set of error -# messages. We create our own diagnostic class in order to set our own -# error messages. -# -# source://prism//lib/prism/translation/parser.rb#15 -class Prism::Translation::Parser::Diagnostic < ::Parser::Diagnostic - # Initialize a new diagnostic with the given message and location. - # - # @return [Diagnostic] a new instance of Diagnostic - # - # source://prism//lib/prism/translation/parser.rb#20 - def initialize(message, location); end - - # The message generated by prism. - # - # source://prism//lib/prism/translation/parser.rb#17 - def message; end -end +# source://prism//lib/prism/translation/parser.rb#12 +Prism::Translation::Parser::Diagnostic = Parser::Diagnostic # Accepts a list of prism tokens and converts them into the expected # format for the parser gem. @@ -27396,43 +31997,68 @@ class Prism::Translation::Parser::Lexer # # @return [Lexer] a new instance of Lexer # - # source://prism//lib/prism/translation/parser/lexer.rb#193 + # source://prism//lib/prism/translation/parser/lexer.rb#204 def initialize(source_buffer, lexed, offset_cache); end - # An array of prism tokens that we lexed. + # An array of tuples that contain prism tokens and their associated lex + # state when they were lexed. # - # source://prism//lib/prism/translation/parser/lexer.rb#186 + # source://prism//lib/prism/translation/parser/lexer.rb#197 def lexed; end # A hash that maps offsets in bytes to offsets in characters. # - # source://prism//lib/prism/translation/parser/lexer.rb#189 + # source://prism//lib/prism/translation/parser/lexer.rb#200 def offset_cache; end # The Parser::Source::Buffer that the tokens were lexed from. # - # source://prism//lib/prism/translation/parser/lexer.rb#183 + # source://prism//lib/prism/translation/parser/lexer.rb#193 def source_buffer; end # Convert the prism tokens into the expected format for the parser gem. # - # source://prism//lib/prism/translation/parser/lexer.rb#203 + # source://prism//lib/prism/translation/parser/lexer.rb#214 def to_a; end private # Parse a complex from the string representation. # - # source://prism//lib/prism/translation/parser/lexer.rb#310 + # source://prism//lib/prism/translation/parser/lexer.rb#387 def parse_complex(value); end + # Parse a float from the string representation. + # + # source://prism//lib/prism/translation/parser/lexer.rb#380 + def parse_float(value); end + + # Parse an integer from the string representation. + # + # source://prism//lib/prism/translation/parser/lexer.rb#373 + def parse_integer(value); end + # Parse a rational from the string representation. # - # source://prism//lib/prism/translation/parser/lexer.rb#323 + # source://prism//lib/prism/translation/parser/lexer.rb#402 def parse_rational(value); end end -# source://prism//lib/prism/translation/parser/lexer.rb#199 +# These constants represent flags in our lex state. We really, really +# don't want to be using them and we really, really don't want to be +# exposing them as part of our public API. Unfortunately, we don't have +# another way of matching the exact tokens that the parser gem expects +# without them. We should find another way to do this, but in the +# meantime we'll hide them from the documentation and mark them as +# private constants. +# +# source://prism//lib/prism/translation/parser/lexer.rb#187 +Prism::Translation::Parser::Lexer::EXPR_BEG = T.let(T.unsafe(nil), Integer) + +# source://prism//lib/prism/translation/parser/lexer.rb#188 +Prism::Translation::Parser::Lexer::EXPR_LABEL = T.let(T.unsafe(nil), Integer) + +# source://prism//lib/prism/translation/parser/lexer.rb#210 Prism::Translation::Parser::Lexer::Range = Parser::Source::Range # The direct translating of types between the two lexers. @@ -27440,267 +32066,1091 @@ Prism::Translation::Parser::Lexer::Range = Parser::Source::Range # source://prism//lib/prism/translation/parser/lexer.rb#10 Prism::Translation::Parser::Lexer::TYPES = T.let(T.unsafe(nil), Hash) -# source://prism//lib/prism/translation/parser.rb#26 +# The parser gem has a list of diagnostics with a hard-coded set of error +# messages. We create our own diagnostic class in order to set our own +# error messages. +# +# source://prism//lib/prism/translation/parser.rb#18 +class Prism::Translation::Parser::PrismDiagnostic < ::Parser::Diagnostic + # Initialize a new diagnostic with the given message and location. + # + # @return [PrismDiagnostic] a new instance of PrismDiagnostic + # + # source://prism//lib/prism/translation/parser.rb#23 + def initialize(message, level, reason, location); end + + # This is the cached message coming from prism. + # + # source://prism//lib/prism/translation/parser.rb#20 + def message; end +end + +# source://prism//lib/prism/translation/parser.rb#29 Prism::Translation::Parser::Racc_debug_parser = T.let(T.unsafe(nil), FalseClass) -# Note: This integration is not finished, and therefore still has many -# inconsistencies with Ripper. If you'd like to help out, pull requests would -# be greatly appreciated! -# -# This class is meant to provide 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. -# -# This class is going to necessarily be slower than the native Ripper API. It -# is meant as a stopgap until developers migrate to using prism. It is also -# meant as a test harness for the prism parser. +# 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 # -# To use this class, you treat `Prism::Translation::Ripper` effectively as you would -# treat the `Ripper` class. -# -# source://prism//lib/prism/translation/ripper.rb#21 +# 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#75 - def initialize(source); end + # 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#72 + # 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#87 + # 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#69 + # 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#92 + # source://prism//lib/prism/translation/ripper.rb#462 + sig { returns(T.nilable(Result)) } def parse; end # The source that is being parsed. # - # source://prism//lib/prism/translation/ripper.rb#66 + # source://prism//lib/prism/translation/ripper.rb#432 def source; end - # Visit an AliasGlobalVariableNode. + # alias $foo $bar + # ^^^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/ripper.rb#247 + # source://prism//lib/prism/translation/ripper.rb#561 def visit_alias_global_variable_node(node); end - # Visit an AliasMethodNode. + # alias foo bar + # ^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/ripper.rb#226 + # source://prism//lib/prism/translation/ripper.rb#551 def visit_alias_method_node(node); end - # Visit an AndNode. + # foo => bar | baz + # ^^^^^^^^^ # - # source://prism//lib/prism/translation/ripper.rb#264 - def visit_and_node(node); end + # source://prism//lib/prism/translation/ripper.rb#585 + def visit_alternation_pattern_node(node); end - # Visit an ArrayNode node. + # a and b + # ^^^^^^^ # - # source://prism//lib/prism/translation/ripper.rb#113 - def visit_array_node(node); end + # source://prism//lib/prism/translation/ripper.rb#605 + def visit_and_node(node); end - # Visit a BackReferenceReadNode. + # foo(bar) + # ^^^ # - # source://prism//lib/prism/translation/ripper.rb#258 - def visit_back_reference_read_node(node); end + # source://prism//lib/prism/translation/ripper.rb#796 + def visit_arguments_node(node); end - # Visit a BeginNode node. - # This is not at all bulletproof against different structures of begin/rescue/else/ensure/end. + # [] + # ^^ # - # source://prism//lib/prism/translation/ripper.rb#315 - def visit_begin_node(node); end + # source://prism//lib/prism/translation/ripper.rb#615 + def visit_array_node(node); end - # Visit a BlockNode. + # foo => [bar] + # ^^^^^ # - # source://prism//lib/prism/translation/ripper.rb#191 - def visit_block_node(node); end + # source://prism//lib/prism/translation/ripper.rb#775 + def visit_array_pattern_node(node); end - # Visit a BlockParametersNode. + # { a: 1 } + # ^^^^ # - # source://prism//lib/prism/translation/ripper.rb#200 - def visit_block_parameters_node(node); end + # source://prism//lib/prism/translation/ripper.rb#803 + def visit_assoc_node(node); end - # Visit a BreakNode. + # def foo(**); bar(**); end + # ^^ # - # source://prism//lib/prism/translation/ripper.rb#218 - def visit_break_node(node); end - - # Visit a CallNode node. - # Ripper distinguishes between many different method-call - # nodes -- unary and binary operators, "command" calls with - # no parentheses, and call/fcall/vcall. + # { **foo } + # ^^^^^ # - # source://prism//lib/prism/translation/ripper.rb#123 - def visit_call_node(node); end + # source://prism//lib/prism/translation/ripper.rb#816 + def visit_assoc_splat_node(node); end - # Visit an EmbeddedStatementsNode node. + # $+ + # ^^ # - # source://prism//lib/prism/translation/ripper.rb#371 - def visit_embedded_statements_node(node); end + # source://prism//lib/prism/translation/ripper.rb#825 + def visit_back_reference_read_node(node); end - # Visit a FalseNode. + # begin end + # ^^^^^^^^^ # - # source://prism//lib/prism/translation/ripper.rb#280 - def visit_false_node(node); end + # source://prism//lib/prism/translation/ripper.rb#832 + def visit_begin_node(node); end - # Visit a FloatNode node. + # foo(&bar) + # ^^^^ # - # source://prism//lib/prism/translation/ripper.rb#286 - def visit_float_node(node); end + # source://prism//lib/prism/translation/ripper.rb#896 + def visit_block_argument_node(node); end - # Visit a GlobalVariableReadNode. + # foo { |; bar| } + # ^^^ # - # source://prism//lib/prism/translation/ripper.rb#252 - def visit_global_variable_read_node(node); end + # source://prism//lib/prism/translation/ripper.rb#902 + def visit_block_local_variable_node(node); end - # Visit a ImaginaryNode node. + # Visit a BlockNode. # - # source://prism//lib/prism/translation/ripper.rb#291 - def visit_imaginary_node(node); end + # source://prism//lib/prism/translation/ripper.rb#908 + def visit_block_node(node); end - # Visit an IntegerNode node. + # def foo(&bar); end + # ^^^^ # - # source://prism//lib/prism/translation/ripper.rb#296 - def visit_integer_node(node); end + # source://prism//lib/prism/translation/ripper.rb#944 + def visit_block_parameter_node(node); end - # Visit an InterpolatedStringNode node. + # A block's parameters. # - # source://prism//lib/prism/translation/ripper.rb#366 - def visit_interpolated_string_node(node); end + # source://prism//lib/prism/translation/ripper.rb#958 + def visit_block_parameters_node(node); end - # Visit an InterpolatedSymbolNode node. + # break + # ^^^^^ # - # source://prism//lib/prism/translation/ripper.rb#381 - def visit_interpolated_symbol_node(node); end - - # Visit a LocalVariableAndWriteNode. + # break foo + # ^^^^^^^^^ # - # source://prism//lib/prism/translation/ripper.rb#168 - def visit_local_variable_and_write_node(node); end + # source://prism//lib/prism/translation/ripper.rb#982 + def visit_break_node(node); end - # Visit nodes for +=, *=, -=, etc., called LocalVariableOperatorWriteNodes. + # foo.bar &&= baz + # ^^^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/ripper.rb#178 - def visit_local_variable_operator_write_node(node); end + # 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_parameters_node(node); end + + # foo(bar: baz) + # ^^^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2227 + def visit_keyword_hash_node(node); end + + # def foo(**bar); end + # ^^^^^ + # + # def foo(**); end + # ^^ + # + # source://prism//lib/prism/translation/ripper.rb#2239 + def visit_keyword_rest_parameter_node(node); end + + # -> {} + # + # source://prism//lib/prism/translation/ripper.rb#2253 + def visit_lambda_node(node); end + + # foo &&= bar + # ^^^^^^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2350 + def visit_local_variable_and_write_node(node); end + + # foo += bar + # ^^^^^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2336 + def visit_local_variable_operator_write_node(node); end + + # foo ||= bar + # ^^^^^^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2364 + def visit_local_variable_or_write_node(node); end + + # foo + # ^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2313 + def visit_local_variable_read_node(node); end + + # foo, = bar + # ^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2378 + def visit_local_variable_target_node(node); end - # Visit a LocalVariableOrWriteNode. + # foo = 1 + # ^^^^^^^ # - # source://prism//lib/prism/translation/ripper.rb#173 - def visit_local_variable_or_write_node(node); end + # source://prism//lib/prism/translation/ripper.rb#2325 + def visit_local_variable_write_node(node); end - # Visit a LocalVariableReadNode. + # if /foo/ then end + # ^^^^^ # - # source://prism//lib/prism/translation/ripper.rb#183 - def visit_local_variable_read_node(node); end + # source://prism//lib/prism/translation/ripper.rb#2385 + def visit_match_last_line_node(node); end - # Visit a LocalVariableWriteNode. + # foo in bar + # ^^^^^^^^^^ # - # source://prism//lib/prism/translation/ripper.rb#161 - def visit_local_variable_write_node(node); end + # source://prism//lib/prism/translation/ripper.rb#2400 + def visit_match_predicate_node(node); end + + # foo => bar + # ^^^^^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2409 + def visit_match_required_node(node); end + + # /(?foo)/ =~ bar + # ^^^^^^^^^^^^^^^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2418 + 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#2424 + def visit_missing_node(node); end + + # module Foo; end + # ^^^^^^^^^^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2430 + def visit_module_node(node); end + + # (foo, bar), bar = qux + # ^^^^^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2447 + def visit_multi_target_node(node); end + + # foo, bar = baz + # ^^^^^^^^^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2501 + def visit_multi_write_node(node); end + + # next + # ^^^^ + # + # next foo + # ^^^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2521 + def visit_next_node(node); end + + # nil + # ^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2535 + def visit_nil_node(node); end + + # def foo(**nil); end + # ^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2542 + def visit_no_keywords_parameter_node(node); end + + # -> { _1 + _2 } + # ^^^^^^^^^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2551 + def visit_numbered_parameters_node(node); end + + # $1 + # ^^ + # + # source://prism//lib/prism/translation/ripper.rb#2556 + def visit_numbered_reference_read_node(node); end + + # def foo(bar: baz); end + # ^^^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2563 + def visit_optional_keyword_parameter_node(node); end + + # def foo(bar = 1); end + # ^^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2573 + def visit_optional_parameter_node(node); end - # Visit an OrNode. + # a or b + # ^^^^^^ # - # source://prism//lib/prism/translation/ripper.rb#269 + # source://prism//lib/prism/translation/ripper.rb#2583 def visit_or_node(node); end - # Visit a ParametersNode. - # This will require expanding as we support more kinds of parameters. + # def foo(bar, *baz); end + # ^^^^^^^^^ # - # source://prism//lib/prism/translation/ripper.rb#206 + # source://prism//lib/prism/translation/ripper.rb#2593 def visit_parameters_node(node); end - # Visit a ParenthesesNode node. + # () + # ^^ # - # source://prism//lib/prism/translation/ripper.rb#301 + # (1) + # ^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2620 def visit_parentheses_node(node); end - # Visit a ProgramNode node. + # foo => ^(bar) + # ^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2634 + def visit_pinned_expression_node(node); end + + # foo = 1 and bar => ^foo + # ^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2643 + def visit_pinned_variable_node(node); end + + # END {} + # ^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2649 + def visit_post_execution_node(node); end + + # BEGIN {} + # ^^^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2664 + def visit_pre_execution_node(node); end + + # The top-level program node. # - # source://prism//lib/prism/translation/ripper.rb#327 + # source://prism//lib/prism/translation/ripper.rb#2678 def visit_program_node(node); end - # Visit a RangeNode node. + # 0..5 + # ^^^^ # - # source://prism//lib/prism/translation/ripper.rb#334 + # source://prism//lib/prism/translation/ripper.rb#2689 def visit_range_node(node); end - # Visit a RationalNode node. + # 1r + # ^^ # - # source://prism//lib/prism/translation/ripper.rb#347 + # source://prism//lib/prism/translation/ripper.rb#2703 def visit_rational_node(node); end - # Visit a RequiredParameterNode. + # redo + # ^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2709 + def visit_redo_node(node); end + + # /foo/ + # ^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2716 + def visit_regular_expression_node(node); end + + # def foo(bar:); end + # ^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2738 + def visit_required_keyword_parameter_node(node); end + + # def foo(bar); end + # ^^^ # - # source://prism//lib/prism/translation/ripper.rb#212 + # source://prism//lib/prism/translation/ripper.rb#2745 def visit_required_parameter_node(node); end - # Visit a RescueNode node. + # foo rescue bar + # ^^^^^^^^^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2752 + def visit_rescue_modifier_node(node); end + + # begin; rescue; end + # ^^^^^^^ # - # source://prism//lib/prism/translation/ripper.rb#322 + # source://prism//lib/prism/translation/ripper.rb#2762 def visit_rescue_node(node); end - # Visit a StatementsNode node. + # def foo(*bar); end + # ^^^^ + # + # def foo(*); end + # ^ + # + # source://prism//lib/prism/translation/ripper.rb#2820 + def visit_rest_parameter_node(node); end + + # retry + # ^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2832 + def visit_retry_node(node); end + + # return + # ^^^^^^ + # + # return 1 + # ^^^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2842 + def visit_return_node(node); end + + # self + # ^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2856 + def visit_self_node(node); end + + # A shareable constant. + # + # source://prism//lib/prism/translation/ripper.rb#2862 + def visit_shareable_constant_node(node); end + + # class << self; end + # ^^^^^^^^^^^^^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2868 + def visit_singleton_class_node(node); end + + # __ENCODING__ + # ^^^^^^^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2878 + def visit_source_encoding_node(node); end + + # __FILE__ + # ^^^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2885 + def visit_source_file_node(node); end + + # __LINE__ + # ^^^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2892 + 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#2905 + def visit_splat_node(node); end + + # A list of statements. + # + # source://prism//lib/prism/translation/ripper.rb#2910 + def visit_statements_node(node); end + + # "foo" + # ^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#2927 + def visit_string_node(node); end + + # super(foo) + # ^^^^^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#3059 + def visit_super_node(node); end + + # :foo + # ^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#3080 + def visit_symbol_node(node); end + + # true + # ^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#3104 + def visit_true_node(node); end + + # undef foo + # ^^^^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#3111 + def visit_undef_node(node); end + + # unless foo; bar end + # ^^^^^^^^^^^^^^^^^^^ + # + # bar unless foo + # ^^^^^^^^^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#3123 + def visit_unless_node(node); end + + # until foo; bar end + # ^^^^^^^^^^^^^^^^^ + # + # bar until foo + # ^^^^^^^^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#3151 + def visit_until_node(node); end + + # case foo; when bar; end + # ^^^^^^^^^^^^^ + # + # source://prism//lib/prism/translation/ripper.rb#3175 + def visit_when_node(node); end + + # while foo; bar end + # ^^^^^^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/ripper.rb#386 - def visit_statements_node(node); end - - # Visit a StringNode node. + # bar while foo + # ^^^^^^^^^^^^^ # - # source://prism//lib/prism/translation/ripper.rb#352 - def visit_string_node(node); end + # source://prism//lib/prism/translation/ripper.rb#3196 + def visit_while_node(node); end - # Visit a SymbolNode node. + # `foo` + # ^^^^^ # - # source://prism//lib/prism/translation/ripper.rb#376 - def visit_symbol_node(node); end + # source://prism//lib/prism/translation/ripper.rb#3220 + def visit_x_string_node(node); end - # Visit a TrueNode. + # yield + # ^^^^^ # - # source://prism//lib/prism/translation/ripper.rb#274 - def visit_true_node(node); end - - # Visit an XStringNode node. + # yield 1 + # ^^^^^^^ # - # source://prism//lib/prism/translation/ripper.rb#359 - def visit_x_string_node(node); end + # source://prism//lib/prism/translation/ripper.rb#3243 + def visit_yield_node(node); end private - # source://prism//lib/prism/translation/ripper.rb#680 - def _dispatch0; end + # :stopdoc: + # + # source://prism//lib/prism/translation/ripper.rb#3383 + def _dispatch_0; end - # source://prism//lib/prism/translation/ripper.rb#681 - def _dispatch1(_); end + # source://prism//lib/prism/translation/ripper.rb#3384 + def _dispatch_1(_); end - # source://prism//lib/prism/translation/ripper.rb#682 - def _dispatch2(_, _); end + # source://prism//lib/prism/translation/ripper.rb#3385 + def _dispatch_2(_, _); end - # source://prism//lib/prism/translation/ripper.rb#683 - def _dispatch3(_, _, _); end + # source://prism//lib/prism/translation/ripper.rb#3386 + def _dispatch_3(_, _, _); end - # source://prism//lib/prism/translation/ripper.rb#684 - def _dispatch4(_, _, _, _); end + # source://prism//lib/prism/translation/ripper.rb#3387 + def _dispatch_4(_, _, _, _); end - # source://prism//lib/prism/translation/ripper.rb#685 - def _dispatch5(_, _, _, _, _); end + # source://prism//lib/prism/translation/ripper.rb#3388 + def _dispatch_5(_, _, _, _, _); end - # source://prism//lib/prism/translation/ripper.rb#686 - def _dispatch7(_, _, _, _, _, _, _); end + # source://prism//lib/prism/translation/ripper.rb#3389 + def _dispatch_7(_, _, _, _, _, _, _); end # This method is responsible for updating lineno and column information # to reflect the current node. @@ -27708,1396 +33158,1630 @@ class Prism::Translation::Ripper < ::Prism::Compiler # 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#663 + # source://prism//lib/prism/translation/ripper.rb#3373 def bounds(location); end - # If we need to do something unusual, we can directly update the line number - # and column to reflect the current node. + # 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#670 - def bounds_values(lineno, column); end + # source://prism//lib/prism/translation/ripper.rb#3411 + def compile_error(msg); end - # For CRuby et al, "no block" in an on_block_var is false + # 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#646 - def no_block_value; end + # source://prism//lib/prism/translation/ripper.rb#3426 + def dedent_string(string, width); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_BEGIN(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_CHAR(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_END(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on___end__(_); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_alias(_, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_alias_error(_, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_aref(_, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_aref_field(_, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_arg_ambiguous(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_arg_paren(_); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_args_add(_, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_args_add_block(_, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_args_add_star(_, _); end - # source://prism//lib/prism/translation/ripper.rb#680 + # source://prism//lib/prism/translation/ripper.rb#3383 def on_args_forward; end - # source://prism//lib/prism/translation/ripper.rb#680 + # source://prism//lib/prism/translation/ripper.rb#3383 def on_args_new; end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_array(_); end - # source://prism//lib/prism/translation/ripper.rb#684 + # source://prism//lib/prism/translation/ripper.rb#3387 def on_aryptn(_, _, _, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_assign(_, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_assign_error(_, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_assoc_new(_, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_assoc_splat(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_assoclist_from_args(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_backref(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_backtick(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_bare_assoc_hash(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_begin(_); end - # source://prism//lib/prism/translation/ripper.rb#683 + # source://prism//lib/prism/translation/ripper.rb#3386 def on_binary(_, _, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_block_var(_, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_blockarg(_); end - # source://prism//lib/prism/translation/ripper.rb#684 + # source://prism//lib/prism/translation/ripper.rb#3387 def on_bodystmt(_, _, _, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_brace_block(_, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_break(_); end - # source://prism//lib/prism/translation/ripper.rb#683 + # source://prism//lib/prism/translation/ripper.rb#3386 def on_call(_, _, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_case(_, _); end - # source://prism//lib/prism/translation/ripper.rb#683 + # source://prism//lib/prism/translation/ripper.rb#3386 def on_class(_, _, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_class_name_error(_, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_comma(_); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_command(_, _); end - # source://prism//lib/prism/translation/ripper.rb#684 + # source://prism//lib/prism/translation/ripper.rb#3387 def on_command_call(_, _, _, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_comment(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_const(_); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_const_path_field(_, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_const_path_ref(_, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_const_ref(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_cvar(_); end - # source://prism//lib/prism/translation/ripper.rb#683 + # source://prism//lib/prism/translation/ripper.rb#3386 def on_def(_, _, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_defined(_); end - # source://prism//lib/prism/translation/ripper.rb#685 + # source://prism//lib/prism/translation/ripper.rb#3388 def on_defs(_, _, _, _, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_do_block(_, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_dot2(_, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_dot3(_, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_dyna_symbol(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_else(_); end - # source://prism//lib/prism/translation/ripper.rb#683 + # source://prism//lib/prism/translation/ripper.rb#3386 def on_elsif(_, _, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_embdoc(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_embdoc_beg(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_embdoc_end(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_embexpr_beg(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_embexpr_end(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_embvar(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_ensure(_); end - # source://prism//lib/prism/translation/ripper.rb#680 + # source://prism//lib/prism/translation/ripper.rb#3383 def on_excessed_comma; end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_fcall(_); end - # source://prism//lib/prism/translation/ripper.rb#683 + # source://prism//lib/prism/translation/ripper.rb#3386 def on_field(_, _, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_float(_); end - # source://prism//lib/prism/translation/ripper.rb#684 + # source://prism//lib/prism/translation/ripper.rb#3387 def on_fndptn(_, _, _, _); end - # source://prism//lib/prism/translation/ripper.rb#683 + # source://prism//lib/prism/translation/ripper.rb#3386 def on_for(_, _, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_gvar(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_hash(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_heredoc_beg(_); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_heredoc_dedent(_, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_heredoc_end(_); end - # source://prism//lib/prism/translation/ripper.rb#683 + # source://prism//lib/prism/translation/ripper.rb#3386 def on_hshptn(_, _, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_ident(_); end - # source://prism//lib/prism/translation/ripper.rb#683 + # source://prism//lib/prism/translation/ripper.rb#3386 def on_if(_, _, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_if_mod(_, _); end - # source://prism//lib/prism/translation/ripper.rb#683 + # source://prism//lib/prism/translation/ripper.rb#3386 def on_ifop(_, _, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_ignored_nl(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_ignored_sp(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_imaginary(_); end - # source://prism//lib/prism/translation/ripper.rb#683 + # source://prism//lib/prism/translation/ripper.rb#3386 def on_in(_, _, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_int(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_ivar(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_kw(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_kwrest_param(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_label(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_label_end(_); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_lambda(_, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_lbrace(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_lbracket(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_lparen(_); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_magic_comment(_, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_massign(_, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_method_add_arg(_, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_method_add_block(_, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_mlhs_add(_, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_mlhs_add_post(_, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_mlhs_add_star(_, _); end - # source://prism//lib/prism/translation/ripper.rb#680 + # source://prism//lib/prism/translation/ripper.rb#3383 def on_mlhs_new; end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_mlhs_paren(_); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_module(_, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_mrhs_add(_, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_mrhs_add_star(_, _); end - # source://prism//lib/prism/translation/ripper.rb#680 + # source://prism//lib/prism/translation/ripper.rb#3383 def on_mrhs_new; end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_mrhs_new_from_args(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_next(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_nl(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_nokw_param(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_op(_); end - # source://prism//lib/prism/translation/ripper.rb#683 + # source://prism//lib/prism/translation/ripper.rb#3386 def on_opassign(_, _, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_operator_ambiguous(_, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_param_error(_, _); end - # source://prism//lib/prism/translation/ripper.rb#686 + # source://prism//lib/prism/translation/ripper.rb#3389 def on_params(_, _, _, _, _, _, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_paren(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_parse_error(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_period(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_program(_); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_qsymbols_add(_, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_qsymbols_beg(_); end - # source://prism//lib/prism/translation/ripper.rb#680 + # source://prism//lib/prism/translation/ripper.rb#3383 def on_qsymbols_new; end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_qwords_add(_, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_qwords_beg(_); end - # source://prism//lib/prism/translation/ripper.rb#680 + # source://prism//lib/prism/translation/ripper.rb#3383 def on_qwords_new; end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_rational(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_rbrace(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_rbracket(_); end - # source://prism//lib/prism/translation/ripper.rb#680 + # source://prism//lib/prism/translation/ripper.rb#3383 def on_redo; end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_regexp_add(_, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_regexp_beg(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_regexp_end(_); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_regexp_literal(_, _); end - # source://prism//lib/prism/translation/ripper.rb#680 + # source://prism//lib/prism/translation/ripper.rb#3383 def on_regexp_new; end - # source://prism//lib/prism/translation/ripper.rb#684 + # source://prism//lib/prism/translation/ripper.rb#3387 def on_rescue(_, _, _, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_rescue_mod(_, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_rest_param(_); end - # source://prism//lib/prism/translation/ripper.rb#680 + # source://prism//lib/prism/translation/ripper.rb#3383 def on_retry; end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_return(_); end - # source://prism//lib/prism/translation/ripper.rb#680 + # source://prism//lib/prism/translation/ripper.rb#3383 def on_return0; end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_rparen(_); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_sclass(_, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_semicolon(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_sp(_); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_stmts_add(_, _); end - # source://prism//lib/prism/translation/ripper.rb#680 + # source://prism//lib/prism/translation/ripper.rb#3383 def on_stmts_new; end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_string_add(_, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_string_concat(_, _); end - # source://prism//lib/prism/translation/ripper.rb#680 + # source://prism//lib/prism/translation/ripper.rb#3383 def on_string_content; end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_string_dvar(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_string_embexpr(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_string_literal(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_super(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_symbeg(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_symbol(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_symbol_literal(_); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_symbols_add(_, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_symbols_beg(_); end - # source://prism//lib/prism/translation/ripper.rb#680 + # source://prism//lib/prism/translation/ripper.rb#3383 def on_symbols_new; end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_tlambda(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_tlambeg(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_top_const_field(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_top_const_ref(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_tstring_beg(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_tstring_content(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_tstring_end(_); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_unary(_, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_undef(_); end - # source://prism//lib/prism/translation/ripper.rb#683 + # source://prism//lib/prism/translation/ripper.rb#3386 def on_unless(_, _, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_unless_mod(_, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_until(_, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_until_mod(_, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_var_alias(_, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_var_field(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_var_ref(_); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_vcall(_); end - # source://prism//lib/prism/translation/ripper.rb#680 + # source://prism//lib/prism/translation/ripper.rb#3383 def on_void_stmt; end - # source://prism//lib/prism/translation/ripper.rb#683 + # source://prism//lib/prism/translation/ripper.rb#3386 def on_when(_, _, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_while(_, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_while_mod(_, _); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_word_add(_, _); end - # source://prism//lib/prism/translation/ripper.rb#680 + # source://prism//lib/prism/translation/ripper.rb#3383 def on_word_new; end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_words_add(_, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_words_beg(_); end - # source://prism//lib/prism/translation/ripper.rb#680 + # source://prism//lib/prism/translation/ripper.rb#3383 def on_words_new; end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_words_sep(_); end - # source://prism//lib/prism/translation/ripper.rb#682 + # source://prism//lib/prism/translation/ripper.rb#3385 def on_xstring_add(_, _); end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_xstring_literal(_); end - # source://prism//lib/prism/translation/ripper.rb#680 + # source://prism//lib/prism/translation/ripper.rb#3383 def on_xstring_new; end - # source://prism//lib/prism/translation/ripper.rb#681 + # source://prism//lib/prism/translation/ripper.rb#3384 def on_yield(_); end - # source://prism//lib/prism/translation/ripper.rb#680 + # source://prism//lib/prism/translation/ripper.rb#3383 def on_yield0; end - # source://prism//lib/prism/translation/ripper.rb#680 + # source://prism//lib/prism/translation/ripper.rb#3383 def on_zsuper; end # Lazily initialize the parse result. # - # source://prism//lib/prism/translation/ripper.rb#676 + # source://prism//lib/prism/translation/ripper.rb#3269 def result; end - # In Prism this is a CallNode with :[]= as the operator. - # In Ripper it's an :aref_field. + # Returns true if there is a comma between the two locations. + # + # @return [Boolean] + # + # source://prism//lib/prism/translation/ripper.rb#3278 + def trailing_comma?(left, right); end + + # Visit one side of an alias global variable node. # - # source://prism//lib/prism/translation/ripper.rb#521 - def visit_aref_field_node(node); end + # source://prism//lib/prism/translation/ripper.rb#570 + def visit_alias_global_variable_node_value(node); end - # In Prism this is a CallNode with :[] as the operator. - # In Ripper it's an :aref. + # Visit a list of elements, like the elements of an array or arguments. # - # source://prism//lib/prism/translation/ripper.rb#513 - def visit_aref_node(node); end + # source://prism//lib/prism/translation/ripper.rb#756 + def visit_arguments(elements); end - # Visit an operation-and-assign node, such as +=. + # Visit the clauses of a begin node to form an on_bodystmt call. # - # source://prism//lib/prism/translation/ripper.rb#501 - def visit_binary_op_assign(node, operator: T.unsafe(nil)); end + # source://prism//lib/prism/translation/ripper.rb#840 + def visit_begin_node_clauses(location, node, allow_newline); end - # Visit a binary operator node like an AndNode or OrNode + # 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#652 - def visit_binary_operator(node); end + # source://prism//lib/prism/translation/ripper.rb#875 + def visit_body_node(location, node, allow_newline = T.unsafe(nil)); end - # Visit a list of elements, like the elements of an array or arguments. + # 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#2607 + def visit_destructured_parameter_node(node); end + + # Visit a string that is expressed using a <<~ heredoc. + # + # source://prism//lib/prism/translation/ripper.rb#2978 + 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#2953 + def visit_heredoc_node_whitespace(parts); end + + # Visit a heredoc node that is representing a string. # - # source://prism//lib/prism/translation/ripper.rb#474 - def visit_elements(elements); end + # source://prism//lib/prism/translation/ripper.rb#3024 + def visit_heredoc_string_node(node); end - # Visit an InterpolatedStringNode or an InterpolatedSymbolNode node. + # Visit a heredoc node that is representing an xstring. # - # source://prism//lib/prism/translation/ripper.rb#482 - def visit_enumerated_node(node); end + # source://prism//lib/prism/translation/ripper.rb#3041 + def visit_heredoc_x_string_node(node); end - # Generate Ripper events for a CallNode with no opening_loc + # Visit the targets of a multi-target node. # - # source://prism//lib/prism/translation/ripper.rb#410 - def visit_no_paren_call(node); end + # source://prism//lib/prism/translation/ripper.rb#2460 + 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#611 - def visit_number(node); end + # source://prism//lib/prism/translation/ripper.rb#3317 + def visit_number_node(node); end - # Ripper has several methods of emitting a symbol literal. Inside an alias - # sometimes it suppresses the [:symbol] wrapper around ident. If the symbol - # is also the name of a keyword (e.g. :if) it will emit a :@kw wrapper, not - # an :@ident wrapper, with similar treatment for constants and operators. + # 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#580 - def visit_symbol_literal_node(node, no_symbol_wrapper: T.unsafe(nil)); end + # source://prism//lib/prism/translation/ripper.rb#595 + def visit_pattern_node(node); end - # For most Rubies and JRuby after 9.4.6.0 this is a no-op. + # 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#634 - def visit_unary_operator(value); end + # source://prism//lib/prism/translation/ripper.rb#2919 + def visit_statements_node_body(body); end - class << self - # This is a convenience method that runs the SexpBuilderPP subclass parser. - # - # source://prism//lib/prism/translation/ripper.rb#403 - def sexp(source); end + # Visit an individual part of a string-like node. + # + # source://prism//lib/prism/translation/ripper.rb#2211 + def visit_string_content(part); end - # This is a convenience method that runs the SexpBuilder subclass parser. - # - # source://prism//lib/prism/translation/ripper.rb#398 - def sexp_raw(source); end - 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#3290 + 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#3335 + 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#3283 + 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#3402 + 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#3407 + def warning(fmt, *args); end + + class << self + # Tokenizes the Ruby program and returns an array of an array, + # which is formatted like + # [[lineno, column], type, token, state]. + # 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 + + Result = type_member end -# In an alias statement Ripper will emit @kw instead of @ident if the object -# being aliased is a Ruby keyword. For instance, in the line "alias :foo :if", -# the :if is treated as a lexer keyword. So we need to know what symbols are -# also keywords. +# 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#532 -Prism::Translation::Ripper::RUBY_KEYWORDS = T.let(T.unsafe(nil), Array) +# 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.rb#24 +# source://prism//lib/prism/translation/ripper/sexp.rb#10 class Prism::Translation::Ripper::SexpBuilder < ::Prism::Translation::Ripper - private + Result = type_member { { fixed: T::Array[T.untyped] } } + + # :stopdoc: + # + # source://prism//lib/prism/translation/ripper/sexp.rb#13 + def error; end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_BEGIN(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_CHAR(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_CHAR(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_END(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on___end__(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on___end__(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_alias(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_alias_error(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_aref(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_aref_field(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_arg_ambiguous(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_arg_paren(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_args_add(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_args_add_block(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_args_add_star(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_args_forward(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_args_new(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_array(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_aryptn(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_assign(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_assign_error(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_assoc_new(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_assoc_splat(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_assoclist_from_args(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_backref(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_backref(tok); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_backtick(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_backtick(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_bare_assoc_hash(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_begin(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_binary(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_block_var(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_blockarg(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_bodystmt(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_brace_block(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_break(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_call(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_case(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_class(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_class_name_error(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_comma(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_comma(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_command(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_command_call(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_comment(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_comment(tok); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_const(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_const(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_const_path_field(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_const_path_ref(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_const_ref(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_cvar(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_cvar(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_def(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_defined(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_defs(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_do_block(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_dot2(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_dot3(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_dyna_symbol(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_else(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_elsif(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_embdoc(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_embdoc(tok); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_embdoc_beg(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_embdoc_beg(tok); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_embdoc_end(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_embdoc_end(tok); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_embexpr_beg(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_embexpr_beg(tok); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_embexpr_end(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_embexpr_end(tok); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_embvar(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_embvar(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_ensure(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_excessed_comma(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_fcall(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_field(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_float(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_float(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_fndptn(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_for(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_gvar(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_gvar(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_hash(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_heredoc_beg(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_heredoc_beg(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 - def on_heredoc_dedent(*args); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_heredoc_end(tok); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_heredoc_end(value); end - - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_hshptn(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_ident(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_ident(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_if(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_if_mod(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_ifop(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_ignored_nl(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_ignored_nl(tok); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_ignored_sp(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_ignored_sp(tok); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_imaginary(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_imaginary(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_in(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_int(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_int(tok); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_ivar(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_ivar(tok); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_kw(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_kw(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_kwrest_param(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_label(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_label(tok); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_label_end(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_label_end(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_lambda(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_lbrace(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_lbrace(tok); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_lbracket(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_lbracket(tok); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_lparen(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_lparen(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_magic_comment(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_massign(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_method_add_arg(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_method_add_block(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_mlhs_add(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_mlhs_add_post(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_mlhs_add_star(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_mlhs_new(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_mlhs_paren(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_module(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_mrhs_add(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_mrhs_add_star(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_mrhs_new(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_mrhs_new_from_args(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_next(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_nl(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_nl(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_nokw_param(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_op(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_op(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_opassign(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_operator_ambiguous(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_param_error(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_params(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_paren(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 - def on_parse_error(*args); end - - # source://prism//lib/prism/translation/ripper.rb#34 - def on_period(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_period(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_program(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_qsymbols_add(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_qsymbols_beg(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_qsymbols_beg(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_qsymbols_new(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_qwords_add(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_qwords_beg(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_qwords_beg(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_qwords_new(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_rational(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_rational(tok); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_rbrace(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_rbrace(tok); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_rbracket(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_rbracket(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_redo(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_regexp_add(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_regexp_beg(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_regexp_beg(tok); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_regexp_end(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_regexp_end(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_regexp_literal(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_regexp_new(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_rescue(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_rescue_mod(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_rest_param(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_retry(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_return(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_return0(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_rparen(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_rparen(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_sclass(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_semicolon(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_semicolon(tok); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_sp(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_sp(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_stmts_add(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_stmts_new(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_string_add(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_string_concat(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_string_content(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_string_dvar(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_string_embexpr(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_string_literal(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_super(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_symbeg(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_symbeg(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_symbol(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_symbol_literal(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_symbols_add(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_symbols_beg(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_symbols_beg(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_symbols_new(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_tlambda(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_tlambda(tok); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_tlambeg(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_tlambeg(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_top_const_field(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_top_const_ref(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_tstring_beg(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_tstring_beg(tok); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_tstring_content(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_tstring_content(tok); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_tstring_end(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_tstring_end(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_unary(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_undef(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_unless(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_unless_mod(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_until(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_until_mod(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_var_alias(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_var_field(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_var_ref(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_vcall(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_void_stmt(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_when(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_while(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_while_mod(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_word_add(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_word_new(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_words_add(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_words_beg(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_words_beg(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_words_new(*args); end - # source://prism//lib/prism/translation/ripper.rb#34 - def on_words_sep(value); end + # source://prism//lib/prism/translation/ripper/sexp.rb#55 + def on_words_sep(tok); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_xstring_add(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_xstring_literal(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_xstring_new(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_yield(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # source://prism//lib/prism/translation/ripper/sexp.rb#47 def on_yield0(*args); end - # source://prism//lib/prism/translation/ripper.rb#28 + # 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.rb#43 +# source://prism//lib/prism/translation/ripper/sexp.rb#74 class Prism::Translation::Ripper::SexpBuilderPP < ::Prism::Translation::Ripper::SexpBuilder + Result = type_member { { fixed: T::Array[T.untyped] } } + private - # source://prism//lib/prism/translation/ripper.rb#46 + # source://prism//lib/prism/translation/ripper/sexp.rb#92 def _dispatch_event_new; end - # source://prism//lib/prism/translation/ripper.rb#50 + # source://prism//lib/prism/translation/ripper/sexp.rb#96 def _dispatch_event_push(list, item); end - # source://prism//lib/prism/translation/ripper.rb#50 + # source://prism//lib/prism/translation/ripper/sexp.rb#96 def on_args_add(list, item); end - # source://prism//lib/prism/translation/ripper.rb#46 + # source://prism//lib/prism/translation/ripper/sexp.rb#92 def on_args_new; end - # source://prism//lib/prism/translation/ripper.rb#50 + # 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.rb#46 + # 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.rb#50 + # 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.rb#46 + # source://prism//lib/prism/translation/ripper/sexp.rb#92 def on_mrhs_new; end - # source://prism//lib/prism/translation/ripper.rb#50 + # source://prism//lib/prism/translation/ripper/sexp.rb#96 def on_qsymbols_add(list, item); end - # source://prism//lib/prism/translation/ripper.rb#46 + # source://prism//lib/prism/translation/ripper/sexp.rb#92 def on_qsymbols_new; end - # source://prism//lib/prism/translation/ripper.rb#50 + # source://prism//lib/prism/translation/ripper/sexp.rb#96 def on_qwords_add(list, item); end - # source://prism//lib/prism/translation/ripper.rb#46 + # source://prism//lib/prism/translation/ripper/sexp.rb#92 def on_qwords_new; end - # source://prism//lib/prism/translation/ripper.rb#50 + # source://prism//lib/prism/translation/ripper/sexp.rb#96 def on_regexp_add(list, item); end - # source://prism//lib/prism/translation/ripper.rb#46 + # source://prism//lib/prism/translation/ripper/sexp.rb#92 def on_regexp_new; end - # source://prism//lib/prism/translation/ripper.rb#50 + # source://prism//lib/prism/translation/ripper/sexp.rb#96 def on_stmts_add(list, item); end - # source://prism//lib/prism/translation/ripper.rb#46 + # source://prism//lib/prism/translation/ripper/sexp.rb#92 def on_stmts_new; end - # source://prism//lib/prism/translation/ripper.rb#50 + # source://prism//lib/prism/translation/ripper/sexp.rb#96 def on_string_add(list, item); end - # source://prism//lib/prism/translation/ripper.rb#50 + # source://prism//lib/prism/translation/ripper/sexp.rb#96 def on_symbols_add(list, item); end - # source://prism//lib/prism/translation/ripper.rb#46 + # source://prism//lib/prism/translation/ripper/sexp.rb#92 def on_symbols_new; end - # source://prism//lib/prism/translation/ripper.rb#50 + # source://prism//lib/prism/translation/ripper/sexp.rb#96 def on_word_add(list, item); end - # source://prism//lib/prism/translation/ripper.rb#46 + # source://prism//lib/prism/translation/ripper/sexp.rb#92 def on_word_new; end - # source://prism//lib/prism/translation/ripper.rb#50 + # source://prism//lib/prism/translation/ripper/sexp.rb#96 def on_words_add(list, item); end - # source://prism//lib/prism/translation/ripper.rb#46 + # source://prism//lib/prism/translation/ripper/sexp.rb#92 def on_words_new; end - # source://prism//lib/prism/translation/ripper.rb#50 + # source://prism//lib/prism/translation/ripper/sexp.rb#96 def on_xstring_add(list, item); end - # source://prism//lib/prism/translation/ripper.rb#46 + # source://prism//lib/prism/translation/ripper/sexp.rb#92 def on_xstring_new; end end +class Prism::Translation::RipperCompiler < Prism::Compiler + Result = type_member +end + +class Prism::Translation::RubyParser::Compiler < Prism::Compiler + Result = type_member { { fixed: Sexp } } +end + # Represents the use of the literal `true` keyword. # # true # ^^^^ # -# source://prism//lib/prism/node.rb#18139 +# source://prism//lib/prism/node.rb#19158 class Prism::TrueNode < ::Prism::Node # def initialize: (Location location) -> void # # @return [TrueNode] a new instance of TrueNode # - # source://prism//lib/prism/node.rb#18141 + # source://prism//lib/prism/node.rb#19160 + sig { params(source: Prism::Source, location: Prism::Location).void } def initialize(source, location); 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#19235 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#18148 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#19167 + 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#18153 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#19172 + 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#18163 + # source://prism//lib/prism/node.rb#19182 + 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#18158 + # source://prism//lib/prism/node.rb#19177 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> TrueNode + # def copy: (?location: Location) -> TrueNode # - # source://prism//lib/prism/node.rb#18168 - sig { params(params: T.untyped).returns(Prism::TrueNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#19187 + sig { params(location: Prism::Location).returns(Prism::TrueNode) } + def copy(location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#18153 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#19172 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location } # - # source://prism//lib/prism/node.rb#18179 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#19195 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#18185 + # source://prism//lib/prism/node.rb#19200 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -29115,7 +34799,8 @@ class Prism::TrueNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#18204 + # source://prism//lib/prism/node.rb#19219 + sig { override.returns(Symbol) } def type; end class << self @@ -29126,7 +34811,7 @@ class Prism::TrueNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#18214 + # source://prism//lib/prism/node.rb#19229 def type; end end end @@ -29136,81 +34821,103 @@ end # undef :foo, :bar, :baz # ^^^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#18223 +# source://prism//lib/prism/node.rb#19244 class Prism::UndefNode < ::Prism::Node - # def initialize: (Array[Node] names, Location keyword_loc, Location location) -> void + # def initialize: (Array[SymbolNode | InterpolatedSymbolNode] names, Location keyword_loc, Location location) -> void # # @return [UndefNode] a new instance of UndefNode # - # source://prism//lib/prism/node.rb#18225 + # source://prism//lib/prism/node.rb#19246 + sig do + params( + source: Prism::Source, + names: T::Array[T.any(Prism::SymbolNode, Prism::InterpolatedSymbolNode)], + keyword_loc: Prism::Location, + location: Prism::Location + ).void + end def initialize(source, names, keyword_loc, location); 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#19340 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#18234 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#19255 + 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#18239 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#19260 + 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#18249 + # source://prism//lib/prism/node.rb#19270 + 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#18244 + # source://prism//lib/prism/node.rb#19265 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> UndefNode + # def copy: (?names: Array[SymbolNode | InterpolatedSymbolNode], ?keyword_loc: Location, ?location: Location) -> UndefNode # - # source://prism//lib/prism/node.rb#18254 - sig { params(params: T.untyped).returns(Prism::UndefNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#19275 + sig do + params( + names: T::Array[T.any(Prism::SymbolNode, Prism::InterpolatedSymbolNode)], + keyword_loc: Prism::Location, + location: Prism::Location + ).returns(Prism::UndefNode) + end + def copy(names: T.unsafe(nil), keyword_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#18239 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#19260 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { names: Array[Node], keyword_loc: Location, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { names: Array[SymbolNode | InterpolatedSymbolNode], keyword_loc: Location, location: Location } # - # source://prism//lib/prism/node.rb#18267 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#19283 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#18287 + # source://prism//lib/prism/node.rb#19303 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#18282 + # source://prism//lib/prism/node.rb#19298 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#18275 + # source://prism//lib/prism/node.rb#19291 sig { returns(Prism::Location) } def keyword_loc; end - # attr_reader names: Array[Node] + # attr_reader names: Array[SymbolNode | InterpolatedSymbolNode] # - # source://prism//lib/prism/node.rb#18272 - sig { returns(T::Array[Prism::Node]) } + # source://prism//lib/prism/node.rb#19288 + sig { returns(T::Array[T.any(Prism::SymbolNode, Prism::InterpolatedSymbolNode)]) } def names; end # Sometimes you want to check an instance of a node against a list of @@ -29228,7 +34935,8 @@ class Prism::UndefNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#18308 + # source://prism//lib/prism/node.rb#19324 + sig { override.returns(Symbol) } def type; end class << self @@ -29239,7 +34947,7 @@ class Prism::UndefNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#18318 + # source://prism//lib/prism/node.rb#19334 def type; end end end @@ -29252,119 +34960,172 @@ end # unless foo then bar end # ^^^^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#18330 +# source://prism//lib/prism/node.rb#19355 class Prism::UnlessNode < ::Prism::Node - # def initialize: (Location keyword_loc, Node predicate, Location? then_keyword_loc, StatementsNode? statements, ElseNode? consequent, Location? end_keyword_loc, Location location) -> void + # def initialize: (Location keyword_loc, Prism::node predicate, Location? then_keyword_loc, StatementsNode? statements, ElseNode? consequent, Location? end_keyword_loc, Location location) -> void # # @return [UnlessNode] a new instance of UnlessNode # - # source://prism//lib/prism/node.rb#18332 + # source://prism//lib/prism/node.rb#19357 + sig do + params( + source: Prism::Source, + keyword_loc: Prism::Location, + predicate: Prism::Node, + then_keyword_loc: T.nilable(Prism::Location), + statements: T.nilable(Prism::StatementsNode), + consequent: T.nilable(Prism::ElseNode), + end_keyword_loc: T.nilable(Prism::Location), + location: Prism::Location + ).void + end def initialize(source, keyword_loc, predicate, then_keyword_loc, statements, consequent, end_keyword_loc, location); 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#19543 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#18345 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#19370 + 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#18354 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#19379 + 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#18368 + # source://prism//lib/prism/node.rb#19393 + 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#18359 + # source://prism//lib/prism/node.rb#19384 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # attr_reader consequent: ElseNode? + # The else clause of the unless expression, if present. # - # source://prism//lib/prism/node.rb#18419 + # unless cond then bar else baz end + # ^^^^^^^^ + # + # source://prism//lib/prism/node.rb#19457 sig { returns(T.nilable(Prism::ElseNode)) } def consequent; end - # def copy: (**params) -> UnlessNode + # def copy: (?keyword_loc: Location, ?predicate: Prism::node, ?then_keyword_loc: Location?, ?statements: StatementsNode?, ?consequent: ElseNode?, ?end_keyword_loc: Location?, ?location: Location) -> UnlessNode # - # source://prism//lib/prism/node.rb#18373 - sig { params(params: T.untyped).returns(Prism::UnlessNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#19398 + sig do + params( + keyword_loc: Prism::Location, + predicate: Prism::Node, + then_keyword_loc: T.nilable(Prism::Location), + statements: T.nilable(Prism::StatementsNode), + consequent: T.nilable(Prism::ElseNode), + end_keyword_loc: T.nilable(Prism::Location), + location: Prism::Location + ).returns(Prism::UnlessNode) + end + def copy(keyword_loc: T.unsafe(nil), predicate: T.unsafe(nil), then_keyword_loc: T.unsafe(nil), statements: T.unsafe(nil), consequent: T.unsafe(nil), end_keyword_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#18354 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#19379 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { keyword_loc: Location, predicate: Node, then_keyword_loc: Location?, statements: StatementsNode?, consequent: ElseNode?, end_keyword_loc: Location?, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { keyword_loc: Location, predicate: Prism::node, then_keyword_loc: Location?, statements: StatementsNode?, consequent: ElseNode?, end_keyword_loc: Location?, location: Location } # - # source://prism//lib/prism/node.rb#18390 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#19406 + sig { params(keys: T.nilable(T::Array[Symbol])).returns(T::Hash[Symbol, T.untyped]) } def deconstruct_keys(keys); end # def end_keyword: () -> String? # - # source://prism//lib/prism/node.rb#18445 + # source://prism//lib/prism/node.rb#19486 sig { returns(T.nilable(String)) } def end_keyword; end - # attr_reader end_keyword_loc: Location? + # The location of the `end` keyword, if present. + # + # unless cond then bar end + # ^^^ # - # source://prism//lib/prism/node.rb#18422 + # source://prism//lib/prism/node.rb#19463 sig { returns(T.nilable(Prism::Location)) } def end_keyword_loc; end + sig { override.returns(T::Array[Prism::Reflection::Field]) } + def fields; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#18450 + # source://prism//lib/prism/node.rb#19491 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#18435 + # source://prism//lib/prism/node.rb#19476 sig { returns(String) } def keyword; end - # attr_reader keyword_loc: Location + # The location of the `unless` keyword. + # + # unless cond then bar end + # ^^^^^^ # - # source://prism//lib/prism/node.rb#18395 + # bar unless cond + # ^^^^^^ + # + # source://prism//lib/prism/node.rb#19417 sig { returns(Prism::Location) } def keyword_loc; end - # attr_reader predicate: Node + # 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 + # ^^^^ # - # source://prism//lib/prism/node.rb#18401 + # bar unless cond + # ^^^^ + # + # source://prism//lib/prism/node.rb#19430 sig { returns(Prism::Node) } def predicate; end - # source://prism//lib/prism/node.rb#18349 + # source://prism//lib/prism/node.rb#19374 def set_newline_flag(newline_marked); end - # attr_reader statements: StatementsNode? + # 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#18416 + # source://prism//lib/prism/node.rb#19451 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end # def then_keyword: () -> String? # - # source://prism//lib/prism/node.rb#18440 + # source://prism//lib/prism/node.rb#19481 sig { returns(T.nilable(String)) } def then_keyword; end - # attr_reader then_keyword_loc: Location? + # The location of the `then` keyword, if present. + # unless cond then bar end ^^^^ # - # source://prism//lib/prism/node.rb#18404 + # source://prism//lib/prism/node.rb#19434 sig { returns(T.nilable(Prism::Location)) } def then_keyword_loc; end @@ -29383,7 +35144,8 @@ class Prism::UnlessNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#18486 + # source://prism//lib/prism/node.rb#19527 + sig { override.returns(Symbol) } def type; end class << self @@ -29394,7 +35156,7 @@ class Prism::UnlessNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#18496 + # source://prism//lib/prism/node.rb#19537 def type; end end end @@ -29407,109 +35169,137 @@ end # until foo do bar end # ^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#18508 +# source://prism//lib/prism/node.rb#19561 class Prism::UntilNode < ::Prism::Node - # def initialize: (Integer flags, Location keyword_loc, Location? closing_loc, Node predicate, StatementsNode? statements, Location location) -> void + # def initialize: (Integer flags, Location keyword_loc, Location? closing_loc, Prism::node predicate, StatementsNode? statements, Location location) -> void # # @return [UntilNode] a new instance of UntilNode # - # source://prism//lib/prism/node.rb#18510 + # source://prism//lib/prism/node.rb#19563 + sig do + params( + source: Prism::Source, + flags: Integer, + keyword_loc: Prism::Location, + closing_loc: T.nilable(Prism::Location), + predicate: Prism::Node, + statements: T.nilable(Prism::StatementsNode), + location: Prism::Location + ).void + end def initialize(source, flags, keyword_loc, closing_loc, predicate, statements, location); 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#19707 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#18522 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#19575 + 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#18599 + # source://prism//lib/prism/node.rb#19645 sig { returns(T::Boolean) } def begin_modifier?; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#18531 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#19584 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String? # - # source://prism//lib/prism/node.rb#18609 + # source://prism//lib/prism/node.rb#19655 sig { returns(T.nilable(String)) } def closing; end # attr_reader closing_loc: Location? # - # source://prism//lib/prism/node.rb#18580 + # source://prism//lib/prism/node.rb#19626 sig { returns(T.nilable(Prism::Location)) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#18544 + # source://prism//lib/prism/node.rb#19597 + 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#18536 + # source://prism//lib/prism/node.rb#19589 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> UntilNode + # def copy: (?flags: Integer, ?keyword_loc: Location, ?closing_loc: Location?, ?predicate: Prism::node, ?statements: StatementsNode?, ?location: Location) -> UntilNode # - # source://prism//lib/prism/node.rb#18549 - sig { params(params: T.untyped).returns(Prism::UntilNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#19602 + sig do + params( + flags: Integer, + keyword_loc: Prism::Location, + closing_loc: T.nilable(Prism::Location), + predicate: Prism::Node, + statements: T.nilable(Prism::StatementsNode), + location: Prism::Location + ).returns(Prism::UntilNode) + end + def copy(flags: T.unsafe(nil), keyword_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), predicate: T.unsafe(nil), statements: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#18531 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#19584 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, keyword_loc: Location, closing_loc: Location?, predicate: Node, statements: StatementsNode?, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, keyword_loc: Location, closing_loc: Location?, predicate: Prism::node, statements: StatementsNode?, location: Location } # - # source://prism//lib/prism/node.rb#18565 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#19610 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#18614 + # source://prism//lib/prism/node.rb#19660 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#18604 + # source://prism//lib/prism/node.rb#19650 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#18574 + # source://prism//lib/prism/node.rb#19619 sig { returns(Prism::Location) } def keyword_loc; end - # attr_reader predicate: Node + # attr_reader predicate: Prism::node # - # source://prism//lib/prism/node.rb#18592 + # source://prism//lib/prism/node.rb#19639 sig { returns(Prism::Node) } def predicate; end - # source://prism//lib/prism/node.rb#18526 + # source://prism//lib/prism/node.rb#19579 def set_newline_flag(newline_marked); end # attr_reader statements: StatementsNode? # - # source://prism//lib/prism/node.rb#18595 + # source://prism//lib/prism/node.rb#19642 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end @@ -29528,14 +35318,15 @@ class Prism::UntilNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#18645 + # source://prism//lib/prism/node.rb#19691 + sig { override.returns(Symbol) } def type; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#18570 + # source://prism//lib/prism/node.rb#19615 sig { returns(Integer) } def flags; end @@ -29547,7 +35338,7 @@ class Prism::UntilNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#18655 + # source://prism//lib/prism/node.rb#19701 def type; end end end @@ -29574,893 +35365,905 @@ Prism::VERSION = T.let(T.unsafe(nil), String) # end # end # -# source://prism//lib/prism/visitor.rb#50 +# source://prism//lib/prism/visitor.rb#54 class Prism::Visitor < ::Prism::BasicVisitor # Visit a AliasGlobalVariableNode node # - # source://prism//lib/prism/visitor.rb#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # source://prism//lib/prism/visitor.rb#29 sig { params(node: Prism::InterpolatedXStringNode).void } def visit_interpolated_x_string_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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # 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#26 + # source://prism//lib/prism/visitor.rb#29 sig { params(node: Prism::YieldNode).void } def visit_yield_node(node); end end @@ -30472,89 +36275,127 @@ end # ^^^^^^^^^ # end # -# source://prism//lib/prism/node.rb#18666 +# source://prism//lib/prism/node.rb#19723 class Prism::WhenNode < ::Prism::Node - # def initialize: (Location keyword_loc, Array[Node] conditions, StatementsNode? statements, Location location) -> void + # def initialize: (Location keyword_loc, Array[Prism::node] conditions, Location? then_keyword_loc, StatementsNode? statements, Location location) -> void # # @return [WhenNode] a new instance of WhenNode # - # source://prism//lib/prism/node.rb#18668 - def initialize(source, keyword_loc, conditions, statements, location); end + # source://prism//lib/prism/node.rb#19725 + sig do + params( + source: Prism::Source, + keyword_loc: Prism::Location, + conditions: T::Array[Prism::Node], + then_keyword_loc: T.nilable(Prism::Location), + statements: T.nilable(Prism::StatementsNode), + location: Prism::Location + ).void + end + def initialize(source, keyword_loc, conditions, then_keyword_loc, statements, location); 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#19852 + def ===(other); end # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#18678 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#19736 + 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#18683 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#19741 + 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#18696 + # source://prism//lib/prism/node.rb#19754 + 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#18688 + # source://prism//lib/prism/node.rb#19746 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # attr_reader conditions: Array[Node] + # attr_reader conditions: Array[Prism::node] # - # source://prism//lib/prism/node.rb#18726 + # source://prism//lib/prism/node.rb#19779 sig { returns(T::Array[Prism::Node]) } def conditions; end - # def copy: (**params) -> WhenNode + # def copy: (?keyword_loc: Location, ?conditions: Array[Prism::node], ?then_keyword_loc: Location?, ?statements: StatementsNode?, ?location: Location) -> WhenNode # - # source://prism//lib/prism/node.rb#18701 - sig { params(params: T.untyped).returns(Prism::WhenNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#19759 + sig do + params( + keyword_loc: Prism::Location, + conditions: T::Array[Prism::Node], + then_keyword_loc: T.nilable(Prism::Location), + statements: T.nilable(Prism::StatementsNode), + location: Prism::Location + ).returns(Prism::WhenNode) + end + def copy(keyword_loc: T.unsafe(nil), conditions: T.unsafe(nil), then_keyword_loc: T.unsafe(nil), statements: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#18683 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#19741 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { keyword_loc: Location, conditions: Array[Node], statements: StatementsNode?, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { keyword_loc: Location, conditions: Array[Prism::node], then_keyword_loc: Location?, statements: StatementsNode?, location: Location } # - # source://prism//lib/prism/node.rb#18715 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#19767 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#18738 + # source://prism//lib/prism/node.rb#19808 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#18733 + # source://prism//lib/prism/node.rb#19798 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#18720 + # source://prism//lib/prism/node.rb#19772 sig { returns(Prism::Location) } def keyword_loc; end # attr_reader statements: StatementsNode? # - # source://prism//lib/prism/node.rb#18729 + # source://prism//lib/prism/node.rb#19795 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end + # def then_keyword: () -> String? + # + # source://prism//lib/prism/node.rb#19803 + sig { returns(T.nilable(String)) } + def then_keyword; end + + # attr_reader then_keyword_loc: Location? + # + # source://prism//lib/prism/node.rb#19782 + sig { returns(T.nilable(Prism::Location)) } + def then_keyword_loc; 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 @@ -30570,7 +36411,8 @@ class Prism::WhenNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#18765 + # source://prism//lib/prism/node.rb#19836 + sig { override.returns(Symbol) } def type; end class << self @@ -30581,7 +36423,7 @@ class Prism::WhenNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#18775 + # source://prism//lib/prism/node.rb#19846 def type; end end end @@ -30594,109 +36436,137 @@ end # while foo do bar end # ^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#18787 +# source://prism//lib/prism/node.rb#19869 class Prism::WhileNode < ::Prism::Node - # def initialize: (Integer flags, Location keyword_loc, Location? closing_loc, Node predicate, StatementsNode? statements, Location location) -> void + # def initialize: (Integer flags, Location keyword_loc, Location? closing_loc, Prism::node predicate, StatementsNode? statements, Location location) -> void # # @return [WhileNode] a new instance of WhileNode # - # source://prism//lib/prism/node.rb#18789 + # source://prism//lib/prism/node.rb#19871 + sig do + params( + source: Prism::Source, + flags: Integer, + keyword_loc: Prism::Location, + closing_loc: T.nilable(Prism::Location), + predicate: Prism::Node, + statements: T.nilable(Prism::StatementsNode), + location: Prism::Location + ).void + end def initialize(source, flags, keyword_loc, closing_loc, predicate, statements, location); 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#20015 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#18801 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#19883 + 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#18878 + # source://prism//lib/prism/node.rb#19953 sig { returns(T::Boolean) } def begin_modifier?; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#18810 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#19892 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String? # - # source://prism//lib/prism/node.rb#18888 + # source://prism//lib/prism/node.rb#19963 sig { returns(T.nilable(String)) } def closing; end # attr_reader closing_loc: Location? # - # source://prism//lib/prism/node.rb#18859 + # source://prism//lib/prism/node.rb#19934 sig { returns(T.nilable(Prism::Location)) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#18823 + # source://prism//lib/prism/node.rb#19905 + 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#18815 + # source://prism//lib/prism/node.rb#19897 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> WhileNode + # def copy: (?flags: Integer, ?keyword_loc: Location, ?closing_loc: Location?, ?predicate: Prism::node, ?statements: StatementsNode?, ?location: Location) -> WhileNode # - # source://prism//lib/prism/node.rb#18828 - sig { params(params: T.untyped).returns(Prism::WhileNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#19910 + sig do + params( + flags: Integer, + keyword_loc: Prism::Location, + closing_loc: T.nilable(Prism::Location), + predicate: Prism::Node, + statements: T.nilable(Prism::StatementsNode), + location: Prism::Location + ).returns(Prism::WhileNode) + end + def copy(flags: T.unsafe(nil), keyword_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), predicate: T.unsafe(nil), statements: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#18810 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#19892 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end - # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, keyword_loc: Location, closing_loc: Location?, predicate: Node, statements: StatementsNode?, location: Location } + # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, keyword_loc: Location, closing_loc: Location?, predicate: Prism::node, statements: StatementsNode?, location: Location } # - # source://prism//lib/prism/node.rb#18844 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#19918 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#18893 + # source://prism//lib/prism/node.rb#19968 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#18883 + # source://prism//lib/prism/node.rb#19958 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#18853 + # source://prism//lib/prism/node.rb#19927 sig { returns(Prism::Location) } def keyword_loc; end - # attr_reader predicate: Node + # attr_reader predicate: Prism::node # - # source://prism//lib/prism/node.rb#18871 + # source://prism//lib/prism/node.rb#19947 sig { returns(Prism::Node) } def predicate; end - # source://prism//lib/prism/node.rb#18805 + # source://prism//lib/prism/node.rb#19887 def set_newline_flag(newline_marked); end # attr_reader statements: StatementsNode? # - # source://prism//lib/prism/node.rb#18874 + # source://prism//lib/prism/node.rb#19950 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end @@ -30715,14 +36585,15 @@ class Prism::WhileNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#18924 + # source://prism//lib/prism/node.rb#19999 + sig { override.returns(Symbol) } def type; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#18849 + # source://prism//lib/prism/node.rb#19923 sig { returns(Integer) } def flags; end @@ -30734,7 +36605,7 @@ class Prism::WhileNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#18934 + # source://prism//lib/prism/node.rb#20009 def type; end end end @@ -30744,7 +36615,7 @@ end # `foo` # ^^^^^ # -# source://prism//lib/prism/node.rb#18943 +# source://prism//lib/prism/node.rb#20029 class Prism::XStringNode < ::Prism::Node include ::Prism::HeredocQuery @@ -30752,83 +36623,110 @@ class Prism::XStringNode < ::Prism::Node # # @return [XStringNode] a new instance of XStringNode # - # source://prism//lib/prism/node.rb#18945 + # source://prism//lib/prism/node.rb#20031 + sig do + params( + source: Prism::Source, + flags: Integer, + opening_loc: Prism::Location, + content_loc: Prism::Location, + closing_loc: Prism::Location, + unescaped: String, + location: Prism::Location + ).void + end def initialize(source, flags, opening_loc, content_loc, closing_loc, unescaped, location); 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#20170 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#18957 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#20043 + 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#18962 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#20048 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#19044 + # source://prism//lib/prism/node.rb#20124 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#19014 + # source://prism//lib/prism/node.rb#20094 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#18972 + # source://prism//lib/prism/node.rb#20058 + 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#18967 + # source://prism//lib/prism/node.rb#20053 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end # def content: () -> String # - # source://prism//lib/prism/node.rb#19039 + # source://prism//lib/prism/node.rb#20119 sig { returns(String) } def content; end # attr_reader content_loc: Location # - # source://prism//lib/prism/node.rb#19008 + # source://prism//lib/prism/node.rb#20087 sig { returns(Prism::Location) } def content_loc; end - # def copy: (**params) -> XStringNode + # def copy: (?flags: Integer, ?opening_loc: Location, ?content_loc: Location, ?closing_loc: Location, ?unescaped: String, ?location: Location) -> XStringNode # - # source://prism//lib/prism/node.rb#18977 - sig { params(params: T.untyped).returns(Prism::XStringNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#20063 + sig do + params( + flags: Integer, + opening_loc: Prism::Location, + content_loc: Prism::Location, + closing_loc: Prism::Location, + unescaped: String, + location: Prism::Location + ).returns(Prism::XStringNode) + end + def copy(flags: T.unsafe(nil), opening_loc: T.unsafe(nil), content_loc: T.unsafe(nil), closing_loc: T.unsafe(nil), unescaped: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#18962 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#20048 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String, location: Location } # - # source://prism//lib/prism/node.rb#18993 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#20071 + 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#19029 + # source://prism//lib/prism/node.rb#20109 sig { returns(T::Boolean) } def forced_binary_encoding?; end @@ -30836,27 +36734,38 @@ class Prism::XStringNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#19024 + # source://prism//lib/prism/node.rb#20104 sig { returns(T::Boolean) } def forced_utf8_encoding?; end + sig { returns(T::Boolean) } + def heredoc?; end + # def inspect(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#19049 + # source://prism//lib/prism/node.rb#20129 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String # - # source://prism//lib/prism/node.rb#19034 + # source://prism//lib/prism/node.rb#20114 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#19002 + # source://prism//lib/prism/node.rb#20080 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#72 + sig { returns(Prism::InterpolatedXStringNode) } + def to_interpolated; 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 @@ -30872,20 +36781,21 @@ class Prism::XStringNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#19074 + # source://prism//lib/prism/node.rb#20154 + sig { override.returns(Symbol) } def type; end # attr_reader unescaped: String # - # source://prism//lib/prism/node.rb#19020 + # source://prism//lib/prism/node.rb#20101 sig { returns(String) } def unescaped; end - private + protected - # private attr_reader flags: Integer + # protected attr_reader flags: Integer # - # source://prism//lib/prism/node.rb#18998 + # source://prism//lib/prism/node.rb#20076 sig { returns(Integer) } def flags; end @@ -30897,7 +36807,7 @@ class Prism::XStringNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#19084 + # source://prism//lib/prism/node.rb#20164 def type; end end end @@ -30907,104 +36817,130 @@ end # yield 1 # ^^^^^^^ # -# source://prism//lib/prism/node.rb#19093 +# source://prism//lib/prism/node.rb#20184 class Prism::YieldNode < ::Prism::Node # def initialize: (Location keyword_loc, Location? lparen_loc, ArgumentsNode? arguments, Location? rparen_loc, Location location) -> void # # @return [YieldNode] a new instance of YieldNode # - # source://prism//lib/prism/node.rb#19095 + # source://prism//lib/prism/node.rb#20186 + sig do + params( + source: Prism::Source, + keyword_loc: Prism::Location, + lparen_loc: T.nilable(Prism::Location), + arguments: T.nilable(Prism::ArgumentsNode), + rparen_loc: T.nilable(Prism::Location), + location: Prism::Location + ).void + end def initialize(source, keyword_loc, lparen_loc, arguments, rparen_loc, location); 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#20327 + def ===(other); end + # def accept: (Visitor visitor) -> void # - # source://prism//lib/prism/node.rb#19106 - sig { params(visitor: Prism::Visitor).void } + # source://prism//lib/prism/node.rb#20197 + sig { override.params(visitor: Prism::Visitor).returns(T.untyped) } def accept(visitor); end # attr_reader arguments: ArgumentsNode? # - # source://prism//lib/prism/node.rb#19166 + # source://prism//lib/prism/node.rb#20252 sig { returns(T.nilable(Prism::ArgumentsNode)) } def arguments; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#19111 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#20202 + 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#19123 + # source://prism//lib/prism/node.rb#20214 + 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#19116 + # source://prism//lib/prism/node.rb#20207 + sig { override.returns(T::Array[Prism::Node]) } def compact_child_nodes; end - # def copy: (**params) -> YieldNode + # def copy: (?keyword_loc: Location, ?lparen_loc: Location?, ?arguments: ArgumentsNode?, ?rparen_loc: Location?, ?location: Location) -> YieldNode # - # source://prism//lib/prism/node.rb#19128 - sig { params(params: T.untyped).returns(Prism::YieldNode) } - def copy(**params); end + # source://prism//lib/prism/node.rb#20219 + sig do + params( + keyword_loc: Prism::Location, + lparen_loc: T.nilable(Prism::Location), + arguments: T.nilable(Prism::ArgumentsNode), + rparen_loc: T.nilable(Prism::Location), + location: Prism::Location + ).returns(Prism::YieldNode) + end + def copy(keyword_loc: T.unsafe(nil), lparen_loc: T.unsafe(nil), arguments: T.unsafe(nil), rparen_loc: T.unsafe(nil), location: T.unsafe(nil)); end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#19111 - sig { returns(T::Array[T.nilable(Prism::Node)]) } + # source://prism//lib/prism/node.rb#20202 + sig { override.returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (Array[Symbol] keys) -> { keyword_loc: Location, lparen_loc: Location?, arguments: ArgumentsNode?, rparen_loc: Location?, location: Location } # - # source://prism//lib/prism/node.rb#19143 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end + # source://prism//lib/prism/node.rb#20227 + 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(NodeInspector inspector) -> String # - # source://prism//lib/prism/node.rb#19197 + # source://prism//lib/prism/node.rb#20283 + sig { params(inspector: T.untyped).returns(String) } def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#19182 + # source://prism//lib/prism/node.rb#20268 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#19148 + # source://prism//lib/prism/node.rb#20232 sig { returns(Prism::Location) } def keyword_loc; end # def lparen: () -> String? # - # source://prism//lib/prism/node.rb#19187 + # source://prism//lib/prism/node.rb#20273 sig { returns(T.nilable(String)) } def lparen; end # attr_reader lparen_loc: Location? # - # source://prism//lib/prism/node.rb#19154 + # source://prism//lib/prism/node.rb#20239 sig { returns(T.nilable(Prism::Location)) } def lparen_loc; end # def rparen: () -> String? # - # source://prism//lib/prism/node.rb#19192 + # source://prism//lib/prism/node.rb#20278 sig { returns(T.nilable(String)) } def rparen; end # attr_reader rparen_loc: Location? # - # source://prism//lib/prism/node.rb#19169 + # source://prism//lib/prism/node.rb#20255 sig { returns(T.nilable(Prism::Location)) } def rparen_loc; end @@ -31023,7 +36959,8 @@ class Prism::YieldNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#19225 + # source://prism//lib/prism/node.rb#20311 + sig { override.returns(Symbol) } def type; end class << self @@ -31034,7 +36971,13 @@ class Prism::YieldNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#19235 + # source://prism//lib/prism/node.rb#20321 def type; end end end + +# We keep this shim in here because our client libraries might not have +# ruby_parser in their bundle. +class Sexp < ::Array + Elem = type_member { { fixed: T.untyped }} +end From 9c1f69994502194697bf39b138bed553bde2cf76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20Mendon=C3=A7a=20Fran=C3=A7a?= Date: Thu, 2 May 2024 20:24:23 +0000 Subject: [PATCH 2/2] Disable tests with 2.7 We are going to drop support to 2.7, but don't want to do before a new release with #404. --- .github/workflows/ci.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 807355ad4..ebcaea520 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,6 @@ jobs: - gemfiles/Gemfile-rails-6-0 - gemfiles/Gemfile-rails-6-1 ruby: - - "2.7" - "3.0" - "3.1" - "3.2" @@ -40,7 +39,6 @@ jobs: gemfile: - Gemfile ruby: - - "2.7" - "3.0" - "3.1" - "3.2"