diff --git a/Gemfile.lock b/Gemfile.lock
index 7be4a9f0f..958755b8b 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -9,6 +9,7 @@ PATH
constant_resolver (>= 0.2.0)
parallel
parser
+ prism (>= 0.24.0)
sorbet-runtime (>= 0.5.9914)
zeitwerk (>= 2.6.1)
@@ -60,15 +61,11 @@ GEM
method_source (>= 0.6.7)
rake (>= 0.9.2.2)
method_source (1.0.0)
- mini_portile2 (2.8.4)
minitest (5.16.2)
minitest-focus (1.3.1)
minitest (>= 4, < 6)
mocha (1.14.0)
netrc (0.11.0)
- nokogiri (1.15.3)
- mini_portile2 (~> 2.8.2)
- racc (~> 1.4)
nokogiri (1.15.3-x86_64-darwin)
racc (~> 1.4)
nokogiri (1.15.3-x86_64-linux)
@@ -77,6 +74,7 @@ GEM
parser (3.2.2.0)
ast (~> 2.4.1)
prettier_print (0.1.0)
+ prism (0.24.0)
pry (0.14.1)
coderay (~> 1.1)
method_source (~> 1.0)
@@ -179,7 +177,6 @@ GEM
zeitwerk (2.6.4)
PLATFORMS
- ruby
x86_64-darwin
x86_64-darwin-20
x86_64-linux
diff --git a/lib/packwerk/file_processor.rb b/lib/packwerk/file_processor.rb
index 6c3a4c1ac..88a59ba9b 100644
--- a/lib/packwerk/file_processor.rb
+++ b/lib/packwerk/file_processor.rb
@@ -59,7 +59,7 @@ def call(relative_file)
For now, you can add this file to `packwerk.yml` `exclude` list.
Please file an issue and include this error message and stacktrace:
- #{e.message} #{e.backtrace}"
+ #{e.message} #{e.backtrace&.join("\n")}"
MSG
offense = Parsers::ParseResult.new(file: relative_file, message: message)
diff --git a/lib/packwerk/parsers/ruby.rb b/lib/packwerk/parsers/ruby.rb
index b218e20c2..b841d07fd 100644
--- a/lib/packwerk/parsers/ruby.rb
+++ b/lib/packwerk/parsers/ruby.rb
@@ -2,7 +2,7 @@
# frozen_string_literal: true
require "parser"
-require "parser/current"
+require "prism"
module Packwerk
module Parsers
@@ -11,7 +11,7 @@ class Ruby
include ParserInterface
- class RaiseExceptionsParser < Parser::CurrentRuby
+ class RaiseExceptionsParser < Prism::Translation::Parser
extend T::Sig
sig { params(builder: T.untyped).void }
diff --git a/packwerk.gemspec b/packwerk.gemspec
index e1b8edb6e..cbe1da56c 100644
--- a/packwerk.gemspec
+++ b/packwerk.gemspec
@@ -50,6 +50,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
# For ERB parsing
spec.add_dependency("better_html")
diff --git a/sorbet/rbi/gems/nokogiri@1.13.8.rbi b/sorbet/rbi/gems/nokogiri@1.15.3.rbi
similarity index 64%
rename from sorbet/rbi/gems/nokogiri@1.13.8.rbi
rename to sorbet/rbi/gems/nokogiri@1.15.3.rbi
index 7012022b7..85ac222be 100644
--- a/sorbet/rbi/gems/nokogiri@1.13.8.rbi
+++ b/sorbet/rbi/gems/nokogiri@1.15.3.rbi
@@ -1,19 +1,42 @@
-# typed: true
+# typed: false
# DO NOT EDIT MANUALLY
# This is an autogenerated file for types exported from the `nokogiri` gem.
# Please instead update this file by running `bin/tapioca gem nokogiri`.
-# --
-# DO NOT MODIFY!!!!
-# This file is automatically generated by rex 1.0.7
-# from lexical definition file "lib/nokogiri/css/tokenizer.rex".
-# ++
+# Nokogiri parses and searches XML/HTML very quickly, and also has
+# correctly implemented CSS3 selector support as well as XPath 1.0
+# support.
#
-# source://nokogiri-1.13.8/lib/nokogiri.rb:40
+# Parsing a document returns either a Nokogiri::XML::Document, or a
+# Nokogiri::HTML4::Document depending on the kind of document you parse.
+#
+# Here is an example:
+#
+# require 'nokogiri'
+# require 'open-uri'
+#
+# # Get a Nokogiri::HTML4::Document for the page weβre interested in...
+#
+# doc = Nokogiri::HTML4(URI.open('http://www.google.com/search?q=tenderlove'))
+#
+# # Do funky things with it using Nokogiri::XML::Node methods...
+#
+# ####
+# # Search for nodes by css
+# doc.css('h3.r a.l').each do |link|
+# puts link.content
+# end
+#
+# See also:
+#
+# - Nokogiri::XML::Searchable#css for more information about CSS searching
+# - Nokogiri::XML::Searchable#xpath for more information about XPath searching
+#
+# source://nokogiri-1.15.3/lib/nokogiri.rb:38
module Nokogiri
class << self
- # source://nokogiri-1.13.8/lib/nokogiri/html4.rb:10
+ # source://nokogiri-1.15.3/lib/nokogiri/html4.rb:10
def HTML(input, url = T.unsafe(nil), encoding = T.unsafe(nil), options = T.unsafe(nil), &block); end
# :call-seq:
@@ -21,7 +44,7 @@ module Nokogiri
#
# Parse HTML. Convenience method for Nokogiri::HTML4::Document.parse
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4.rb:10
+ # source://nokogiri-1.15.3/lib/nokogiri/html4.rb:10
def HTML4(input, url = T.unsafe(nil), encoding = T.unsafe(nil), options = T.unsafe(nil), &block); end
# Since v1.12.0
@@ -30,7 +53,7 @@ module Nokogiri
#
# Parse an HTML5 document. Convenience method for {Nokogiri::HTML5::Document.parse}
#
- # source://nokogiri-1.13.8/lib/nokogiri/html5.rb:30
+ # source://nokogiri-1.15.3/lib/nokogiri/html5.rb:30
def HTML5(input, url = T.unsafe(nil), encoding = T.unsafe(nil), **options, &block); end
# Parse a document and add the Slop decorator. The Slop decorator
@@ -47,12 +70,12 @@ module Nokogiri
# eohtml
# assert_equal('second', doc.html.body.p[1].text)
#
- # source://nokogiri-1.13.8/lib/nokogiri.rb:85
+ # source://nokogiri-1.15.3/lib/nokogiri.rb:91
def Slop(*args, &block); end
# Parse XML. Convenience method for Nokogiri::XML::Document.parse
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml.rb:7
+ # source://nokogiri-1.15.3/lib/nokogiri/xml.rb:7
def XML(thing, url = T.unsafe(nil), encoding = T.unsafe(nil), options = T.unsafe(nil), &block); end
# Create a Nokogiri::XSLT::Stylesheet with +stylesheet+.
@@ -61,51 +84,51 @@ module Nokogiri
#
# xslt = Nokogiri::XSLT(File.read(ARGV[0]))
#
- # source://nokogiri-1.13.8/lib/nokogiri/xslt.rb:13
+ # source://nokogiri-1.15.3/lib/nokogiri/xslt.rb:13
def XSLT(stylesheet, modules = T.unsafe(nil)); end
- # source://nokogiri-1.13.8/lib/nokogiri.rb:90
+ # source://nokogiri-1.15.3/lib/nokogiri.rb:96
def install_default_aliases; end
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/version/info.rb:204
+ # source://nokogiri-1.15.3/lib/nokogiri/version/info.rb:205
def jruby?; end
- # source://nokogiri-1.13.8/lib/nokogiri/version/info.rb:209
+ # source://nokogiri-1.15.3/lib/nokogiri/version/info.rb:210
def libxml2_patches; end
# Create a new Nokogiri::XML::DocumentFragment
#
- # source://nokogiri-1.13.8/lib/nokogiri.rb:62
+ # source://nokogiri-1.15.3/lib/nokogiri.rb:68
def make(input = T.unsafe(nil), opts = T.unsafe(nil), &blk); end
# Parse an HTML or XML document. +string+ contains the document.
#
- # source://nokogiri-1.13.8/lib/nokogiri.rb:44
+ # source://nokogiri-1.15.3/lib/nokogiri.rb:42
def parse(string, url = T.unsafe(nil), encoding = T.unsafe(nil), options = T.unsafe(nil)); end
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/version/info.rb:199
+ # source://nokogiri-1.15.3/lib/nokogiri/version/info.rb:200
def uses_gumbo?; end
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/version/info.rb:191
+ # source://nokogiri-1.15.3/lib/nokogiri/version/info.rb:192
def uses_libxml?(requirement = T.unsafe(nil)); end
end
end
# Translate a CSS selector into an XPath 1.0 query
#
-# source://nokogiri-1.13.8/lib/nokogiri/css.rb:6
+# source://nokogiri-1.15.3/lib/nokogiri/css.rb:6
module Nokogiri::CSS
class << self
# TODO: Deprecate this method ahead of 2.0 and delete it in 2.0.
# It is not used by Nokogiri and shouldn't be part of the public API.
#
- # source://nokogiri-1.13.8/lib/nokogiri/css.rb:10
+ # source://nokogiri-1.15.3/lib/nokogiri/css.rb:10
def parse(selector); end
# :call-seq:
@@ -136,415 +159,417 @@ module Nokogiri::CSS
#
# π‘ Note that translated queries are cached for performance concerns.
#
- # source://nokogiri-1.13.8/lib/nokogiri/css.rb:42
+ # @raise [TypeError]
+ #
+ # source://nokogiri-1.15.3/lib/nokogiri/css.rb:42
def xpath_for(selector, options = T.unsafe(nil)); end
end
end
-# source://nokogiri-1.13.8/lib/nokogiri/css/node.rb:5
+# source://nokogiri-1.15.3/lib/nokogiri/css/node.rb:5
class Nokogiri::CSS::Node
# Create a new Node with +type+ and +value+
#
# @return [Node] a new instance of Node
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/node.rb:14
+ # source://nokogiri-1.15.3/lib/nokogiri/css/node.rb:14
def initialize(type, value); end
# Accept +visitor+
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/node.rb:20
+ # source://nokogiri-1.15.3/lib/nokogiri/css/node.rb:20
def accept(visitor); end
# Find a node by type using +types+
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/node.rb:32
+ # source://nokogiri-1.15.3/lib/nokogiri/css/node.rb:32
def find_by_type(types); end
# Convert to array
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/node.rb:49
+ # source://nokogiri-1.15.3/lib/nokogiri/css/node.rb:49
def to_a; end
# Convert to_type
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/node.rb:42
+ # source://nokogiri-1.15.3/lib/nokogiri/css/node.rb:42
def to_type; end
# Convert this CSS node to xpath with +prefix+ using +visitor+
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/node.rb:26
+ # source://nokogiri-1.15.3/lib/nokogiri/css/node.rb:26
def to_xpath(prefix, visitor); end
# Get the type of this node
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/node.rb:9
+ # source://nokogiri-1.15.3/lib/nokogiri/css/node.rb:9
def type; end
# Get the type of this node
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/node.rb:9
+ # source://nokogiri-1.15.3/lib/nokogiri/css/node.rb:9
def type=(_arg0); end
# Get the value of this node
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/node.rb:11
+ # source://nokogiri-1.15.3/lib/nokogiri/css/node.rb:11
def value; end
# Get the value of this node
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/node.rb:11
+ # source://nokogiri-1.15.3/lib/nokogiri/css/node.rb:11
def value=(_arg0); end
end
-# source://nokogiri-1.13.8/lib/nokogiri/css/node.rb:6
+# source://nokogiri-1.15.3/lib/nokogiri/css/node.rb:6
Nokogiri::CSS::Node::ALLOW_COMBINATOR_ON_SELF = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/css/parser_extras.rb:7
+# source://nokogiri-1.15.3/lib/nokogiri/css/parser_extras.rb:7
class Nokogiri::CSS::Parser < ::Racc::Parser
# Create a new CSS parser with respect to +namespaces+
#
# @return [Parser] a new instance of Parser
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser_extras.rb:60
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser_extras.rb:60
def initialize(namespaces = T.unsafe(nil)); end
# reduce 0 omitted
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:361
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:361
def _reduce_1(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:407
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:407
def _reduce_10(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:412
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:412
def _reduce_11(val, _values, result); end
# reduce 12 omitted
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:424
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:424
def _reduce_13(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:429
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:429
def _reduce_14(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:434
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:434
def _reduce_15(val, _values, result); end
# reduce 16 omitted
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:441
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:441
def _reduce_17(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:446
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:446
def _reduce_18(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:451
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:451
def _reduce_19(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:367
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:367
def _reduce_2(val, _values, result); end
# reduce 20 omitted
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:458
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:458
def _reduce_21(val, _values, result); end
# reduce 22 omitted
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:465
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:465
def _reduce_23(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:470
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:470
def _reduce_24(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:475
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:475
def _reduce_25(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:482
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:482
def _reduce_26(val, _values, result); end
# reduce 27 omitted
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:489
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:489
def _reduce_28(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:495
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:495
def _reduce_29(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:372
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:372
def _reduce_3(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:501
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:501
def _reduce_30(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:507
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:507
def _reduce_31(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:512
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:512
def _reduce_32(val, _values, result); end
# reduce 33 omitted
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:519
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:519
def _reduce_34(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:525
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:525
def _reduce_35(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:531
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:531
def _reduce_36(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:537
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:537
def _reduce_37(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:543
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:543
def _reduce_38(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:549
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:549
def _reduce_39(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:377
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:377
def _reduce_4(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:554
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:554
def _reduce_40(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:559
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:559
def _reduce_41(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:564
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:564
def _reduce_42(val, _values, result); end
# reduce 44 omitted
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:573
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:573
def _reduce_45(val, _values, result); end
# reduce 46 omitted
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:590
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:590
def _reduce_47(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:600
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:600
def _reduce_48(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:616
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:616
def _reduce_49(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:382
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:382
def _reduce_5(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:636
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:636
def _reduce_50(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:642
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:642
def _reduce_51(val, _values, result); end
# reduce 53 omitted
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:651
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:651
def _reduce_54(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:657
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:657
def _reduce_55(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:663
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:663
def _reduce_56(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:669
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:669
def _reduce_57(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:675
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:675
def _reduce_58(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:387
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:387
def _reduce_6(val, _values, result); end
# reduce 63 omitted
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:691
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:691
def _reduce_64(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:696
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:696
def _reduce_65(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:701
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:701
def _reduce_66(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:706
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:706
def _reduce_67(val, _values, result); end
# reduce 68 omitted
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:713
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:713
def _reduce_69(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:392
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:392
def _reduce_7(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:718
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:718
def _reduce_70(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:723
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:723
def _reduce_71(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:728
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:728
def _reduce_72(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:733
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:733
def _reduce_73(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:738
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:738
def _reduce_74(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:743
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:743
def _reduce_75(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:748
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:748
def _reduce_76(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:397
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:397
def _reduce_8(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:402
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:402
def _reduce_9(val, _values, result); end
# reduce 81 omitted
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:764
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:764
def _reduce_none(val, _values, result); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser_extras.rb:89
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser_extras.rb:89
def cache_key(query, prefix, visitor); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser_extras.rb:71
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser_extras.rb:71
def next_token; end
# On CSS parser error, raise an exception
#
# @raise [SyntaxError]
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser_extras.rb:84
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser_extras.rb:84
def on_error(error_token_id, error_value, value_stack); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser_extras.rb:66
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser_extras.rb:66
def parse(string); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:26
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:26
def unescape_css_identifier(identifier); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:30
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:30
def unescape_css_string(str); end
# Get the xpath for +string+ using +options+
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser_extras.rb:76
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser_extras.rb:76
def xpath_for(string, prefix, visitor); end
class << self
# Get the css selector in +string+ from the cache
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser_extras.rb:25
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser_extras.rb:25
def [](string); end
# Set the css selector in +string+ in the cache to +value+
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser_extras.rb:32
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser_extras.rb:32
def []=(string, value); end
# Return a thread-local boolean indicating whether the CSS-to-XPath cache is active. (Default is `true`.)
#
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser_extras.rb:15
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser_extras.rb:15
def cache_on?; end
# Clear the cache
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser_extras.rb:39
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser_extras.rb:39
def clear_cache(create_new_object = T.unsafe(nil)); end
# Set a thread-local boolean to turn cacheing on and off. Truthy values turn the cache on, falsey values turn the cache off.
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser_extras.rb:20
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser_extras.rb:20
def set_cache(value); end
# Execute +block+ without cache
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/parser_extras.rb:50
+ # source://nokogiri-1.15.3/lib/nokogiri/css/parser_extras.rb:50
def without_cache(&block); end
end
end
-# source://nokogiri-1.13.8/lib/nokogiri/css/parser_extras.rb:8
+# source://nokogiri-1.15.3/lib/nokogiri/css/parser_extras.rb:8
Nokogiri::CSS::Parser::CACHE_SWITCH_NAME = T.let(T.unsafe(nil), Symbol)
-# source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:279
+# source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:279
Nokogiri::CSS::Parser::Racc_arg = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/css/parser.rb:295
+# source://nokogiri-1.15.3/lib/nokogiri/css/parser.rb:295
Nokogiri::CSS::Parser::Racc_token_to_s_table = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/css/syntax_error.rb:6
+# source://nokogiri-1.15.3/lib/nokogiri/css/syntax_error.rb:6
class Nokogiri::CSS::SyntaxError < ::Nokogiri::SyntaxError; end
-# source://nokogiri-1.13.8/lib/nokogiri/css/tokenizer.rb:11
+# source://nokogiri-1.15.3/lib/nokogiri/css/tokenizer.rb:11
class Nokogiri::CSS::Tokenizer
- # source://nokogiri-1.13.8/lib/nokogiri/css/tokenizer.rb:57
+ # source://nokogiri-1.15.3/lib/nokogiri/css/tokenizer.rb:57
def _next_token; end
- # source://nokogiri-1.13.8/lib/nokogiri/css/tokenizer.rb:26
+ # source://nokogiri-1.15.3/lib/nokogiri/css/tokenizer.rb:26
def action; end
# Returns the value of attribute filename.
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/tokenizer.rb:17
+ # source://nokogiri-1.15.3/lib/nokogiri/css/tokenizer.rb:17
def filename; end
# Returns the value of attribute lineno.
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/tokenizer.rb:16
+ # source://nokogiri-1.15.3/lib/nokogiri/css/tokenizer.rb:16
def lineno; end
- # source://nokogiri-1.13.8/lib/nokogiri/css/tokenizer.rb:36
+ # source://nokogiri-1.15.3/lib/nokogiri/css/tokenizer.rb:36
def load_file(filename); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/tokenizer.rb:49
+ # source://nokogiri-1.15.3/lib/nokogiri/css/tokenizer.rb:49
def next_token; end
- # source://nokogiri-1.13.8/lib/nokogiri/css/tokenizer.rb:30
+ # source://nokogiri-1.15.3/lib/nokogiri/css/tokenizer.rb:30
def scan(str); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/tokenizer.rb:43
+ # source://nokogiri-1.15.3/lib/nokogiri/css/tokenizer.rb:43
def scan_file(filename); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/tokenizer.rb:20
+ # source://nokogiri-1.15.3/lib/nokogiri/css/tokenizer.rb:20
def scan_setup(str); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/tokenizer.rb:30
+ # source://nokogiri-1.15.3/lib/nokogiri/css/tokenizer.rb:30
def scan_str(str); end
# Returns the value of attribute state.
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/tokenizer.rb:18
+ # source://nokogiri-1.15.3/lib/nokogiri/css/tokenizer.rb:18
def state; end
# Sets the attribute state
#
# @param value the value to set the attribute state to.
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/tokenizer.rb:18
+ # source://nokogiri-1.15.3/lib/nokogiri/css/tokenizer.rb:18
def state=(_arg0); end
end
-# source://nokogiri-1.13.8/lib/nokogiri/css/tokenizer.rb:14
+# source://nokogiri-1.15.3/lib/nokogiri/css/tokenizer.rb:14
class Nokogiri::CSS::Tokenizer::ScanError < ::StandardError; end
# When translating CSS selectors to XPath queries with Nokogiri::CSS.xpath_for, the XPathVisitor
# class allows for changing some of the behaviors related to builtin xpath functions and quirks
# of HTML5.
#
-# source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:9
+# source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:9
class Nokogiri::CSS::XPathVisitor
# :call-seq:
# new() β XPathVisitor
@@ -558,10 +583,10 @@ class Nokogiri::CSS::XPathVisitor
#
# @return [XPathVisitor] a new instance of XPathVisitor
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:57
+ # source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:57
def initialize(builtins: T.unsafe(nil), doctype: T.unsafe(nil)); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:267
+ # source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:267
def accept(node); end
# :call-seq: config() β Hash
@@ -570,136 +595,139 @@ class Nokogiri::CSS::XPathVisitor
# a Hash representing the configuration of the XPathVisitor, suitable for use as
# part of the CSS cache key.
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:74
+ # source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:74
def config; end
- # source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:263
+ # source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:263
def visit_attrib_name(node); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:154
+ # source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:154
def visit_attribute_condition(node); end
+ # source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:234
def visit_child_selector(node); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:215
+ # source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:215
def visit_class_condition(node); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:219
+ # source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:219
def visit_combinator(node); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:240
+ # source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:240
def visit_conditional_selector(node); end
+ # source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:234
def visit_descendant_selector(node); end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:234
def visit_direct_adjacent_selector(node); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:245
+ # source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:245
def visit_element_name(node); end
+ # source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:234
def visit_following_selector(node); end
# :stopdoc:
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:79
+ # source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:79
def visit_function(node); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:149
+ # source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:149
def visit_id(node); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:140
+ # source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:140
def visit_not(node); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:190
+ # source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:190
def visit_pseudo_class(node); end
private
- # source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:326
+ # source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:328
def css_class(hay, needle); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:273
+ # source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:273
def html5_element_name_needs_namespace_handling(node); end
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:316
+ # source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:318
def is_of_type_pseudo_class?(node); end
- # @raise [ArgumentError]
- #
- # source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:280
+ # source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:280
def nth(node, options = T.unsafe(nil)); end
- # source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:302
+ # source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:304
def read_a_and_positive_b(values); end
end
# Enum to direct XPathVisitor when to use Nokogiri builtin XPath functions.
#
-# source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:13
+# source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:13
module Nokogiri::CSS::XPathVisitor::BuiltinsConfig; end
# Always use Nokogiri builtin functions whenever possible. This is probably only useful for testing.
#
-# source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:19
+# source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:19
Nokogiri::CSS::XPathVisitor::BuiltinsConfig::ALWAYS = T.let(T.unsafe(nil), Symbol)
# Never use Nokogiri builtin functions, always generate vanilla XPath 1.0 queries. This is
# the default when calling Nokogiri::CSS.xpath_for directly.
#
-# source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:16
+# source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:16
Nokogiri::CSS::XPathVisitor::BuiltinsConfig::NEVER = T.let(T.unsafe(nil), Symbol)
# Only use Nokogiri builtin functions when they will be faster than vanilla XPath. This is
# the behavior chosen when searching for CSS selectors on a Nokogiri document, fragment, or
# node.
#
-# source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:24
+# source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:24
Nokogiri::CSS::XPathVisitor::BuiltinsConfig::OPTIMAL = T.let(T.unsafe(nil), Symbol)
-# source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:27
+# source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:27
Nokogiri::CSS::XPathVisitor::BuiltinsConfig::VALUES = T.let(T.unsafe(nil), Array)
# Enum to direct XPathVisitor when to tweak the XPath query to suit the nature of the document
# being searched. Note that searches for CSS selectors from a Nokogiri document, fragment, or
# node will choose the correct option automatically.
#
-# source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:33
+# source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:33
module Nokogiri::CSS::XPathVisitor::DoctypeConfig; end
# The document being searched is an HTML4 document.
#
-# source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:38
+# source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:38
Nokogiri::CSS::XPathVisitor::DoctypeConfig::HTML4 = T.let(T.unsafe(nil), Symbol)
# The document being searched is an HTML5 document.
#
-# source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:41
+# source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:41
Nokogiri::CSS::XPathVisitor::DoctypeConfig::HTML5 = T.let(T.unsafe(nil), Symbol)
-# source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:44
+# source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:44
Nokogiri::CSS::XPathVisitor::DoctypeConfig::VALUES = T.let(T.unsafe(nil), Array)
# The document being searched is an XML document. This is the default.
#
-# source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:35
+# source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:35
Nokogiri::CSS::XPathVisitor::DoctypeConfig::XML = T.let(T.unsafe(nil), Symbol)
-# source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:10
+# source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:10
Nokogiri::CSS::XPathVisitor::WILDCARD_NAMESPACES = T.let(T.unsafe(nil), TrueClass)
-# source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:337
+# source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:339
module Nokogiri::CSS::XPathVisitorAlwaysUseBuiltins
class << self
- # source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:338
+ # source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:340
def new; end
end
end
-# source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:347
+# source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:349
module Nokogiri::CSS::XPathVisitorOptimallyUseBuiltins
class << self
- # source://nokogiri-1.13.8/lib/nokogiri/css/xpath_visitor.rb:348
+ # source://nokogiri-1.15.3/lib/nokogiri/css/xpath_visitor.rb:350
def new; end
end
end
@@ -715,7 +743,7 @@ end
#
# This module is included into those key classes who need to do this.
#
-# source://nokogiri-1.13.8/lib/nokogiri/class_resolver.rb:19
+# source://nokogiri-1.15.3/lib/nokogiri/class_resolver.rb:19
module Nokogiri::ClassResolver
# :call-seq:
# related_class(class_name) β Class
@@ -740,42 +768,44 @@ module Nokogiri::ClassResolver
# ThisIsATopLevelClass.new.related_class("Document")
# # => Nokogiri::HTML4::Document
#
- # source://nokogiri-1.13.8/lib/nokogiri/class_resolver.rb:46
+ # source://nokogiri-1.15.3/lib/nokogiri/class_resolver.rb:46
def related_class(class_name); end
end
# #related_class restricts matching namespaces to those matching this set.
#
-# source://nokogiri-1.13.8/lib/nokogiri/class_resolver.rb:21
+# source://nokogiri-1.15.3/lib/nokogiri/class_resolver.rb:21
Nokogiri::ClassResolver::VALID_NAMESPACES = T.let(T.unsafe(nil), Set)
-# source://nokogiri-1.13.8/lib/nokogiri/decorators/slop.rb:4
+# source://nokogiri-1.15.3/lib/nokogiri/decorators/slop.rb:4
module Nokogiri::Decorators; end
# The Slop decorator implements method missing such that a methods may be
# used instead of XPath or CSS. See Nokogiri.Slop
#
-# source://nokogiri-1.13.8/lib/nokogiri/decorators/slop.rb:8
+# source://nokogiri-1.15.3/lib/nokogiri/decorators/slop.rb:8
module Nokogiri::Decorators::Slop
# look for node with +name+. See Nokogiri.Slop
#
- # source://nokogiri-1.13.8/lib/nokogiri/decorators/slop.rb:14
+ # source://nokogiri-1.15.3/lib/nokogiri/decorators/slop.rb:14
def method_missing(name, *args, &block); end
private
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/decorators/slop.rb:37
+ # source://nokogiri-1.15.3/lib/nokogiri/decorators/slop.rb:37
def respond_to_missing?(name, include_private = T.unsafe(nil)); end
end
# The default XPath search context for Slop
#
-# source://nokogiri-1.13.8/lib/nokogiri/decorators/slop.rb:10
+# source://nokogiri-1.15.3/lib/nokogiri/decorators/slop.rb:10
Nokogiri::Decorators::Slop::XPATH_PREFIX = T.let(T.unsafe(nil), String)
+# source://nokogiri-1.15.3/lib/nokogiri/encoding_handler.rb:5
class Nokogiri::EncodingHandler
+ # Returns the value of attribute name.
def name; end
class << self
@@ -783,38 +813,46 @@ class Nokogiri::EncodingHandler
def alias(_arg0, _arg1); end
def clear_aliases!; end
def delete(_arg0); end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/encoding_handler.rb:15
+ def install_default_aliases; end
end
end
-# source://nokogiri-1.13.8/lib/nokogiri/gumbo.rb:4
+# Popular encoding aliases not known by all iconv implementations that Nokogiri should support.
+#
+# source://nokogiri-1.15.3/lib/nokogiri/encoding_handler.rb:7
+Nokogiri::EncodingHandler::USEFUL_ALIASES = T.let(T.unsafe(nil), Hash)
+
+# source://nokogiri-1.15.3/lib/nokogiri/gumbo.rb:4
module Nokogiri::Gumbo
class << self
def fragment(_arg0, _arg1, _arg2, _arg3, _arg4, _arg5); end
- def parse(_arg0, _arg1, _arg2, _arg3, _arg4); end
+ def parse(_arg0, _arg1, _arg2, _arg3, _arg4, _arg5); end
end
end
# The default maximum number of attributes per element.
#
-# source://nokogiri-1.13.8/lib/nokogiri/gumbo.rb:6
+# source://nokogiri-1.15.3/lib/nokogiri/gumbo.rb:6
Nokogiri::Gumbo::DEFAULT_MAX_ATTRIBUTES = T.let(T.unsafe(nil), Integer)
# The default maximum number of errors for parsing a document or a fragment.
#
-# source://nokogiri-1.13.8/lib/nokogiri/gumbo.rb:9
+# source://nokogiri-1.15.3/lib/nokogiri/gumbo.rb:9
Nokogiri::Gumbo::DEFAULT_MAX_ERRORS = T.let(T.unsafe(nil), Integer)
# The default maximum depth of the DOM tree produced by parsing a document
# or fragment.
#
-# source://nokogiri-1.13.8/lib/nokogiri/gumbo.rb:13
+# source://nokogiri-1.15.3/lib/nokogiri/gumbo.rb:13
Nokogiri::Gumbo::DEFAULT_MAX_TREE_DEPTH = T.let(T.unsafe(nil), Integer)
# π‘ This module/namespace is an alias for Nokogiri::HTML4 as of v1.12.0. Before v1.12.0,
# Nokogiri::HTML4 did not exist, and this was the module/namespace for all HTML-related
# classes.
#
-# source://nokogiri-1.13.8/lib/nokogiri/html.rb:8
+# source://nokogiri-1.15.3/lib/nokogiri/html.rb:8
Nokogiri::HTML = Nokogiri::HTML4
# Since v1.12.0
@@ -822,17 +860,17 @@ Nokogiri::HTML = Nokogiri::HTML4
# π‘ Before v1.12.0, Nokogiri::HTML4 did not exist, and Nokogiri::HTML was the module/namespace
# for parsing HTML.
#
-# source://nokogiri-1.13.8/lib/nokogiri/html4.rb:19
+# source://nokogiri-1.15.3/lib/nokogiri/html4.rb:19
module Nokogiri::HTML4
class << self
# Parse a fragment from +string+ in to a NodeSet.
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4.rb:29
+ # source://nokogiri-1.15.3/lib/nokogiri/html4.rb:29
def fragment(string, encoding = T.unsafe(nil), options = T.unsafe(nil), &block); end
# Parse HTML. Convenience method for Nokogiri::HTML4::Document.parse
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4.rb:23
+ # source://nokogiri-1.15.3/lib/nokogiri/html4.rb:23
def parse(input, url = T.unsafe(nil), encoding = T.unsafe(nil), options = T.unsafe(nil), &block); end
end
end
@@ -861,25 +899,25 @@ end
# The HTML builder inherits from the XML builder, so make sure to read the
# Nokogiri::XML::Builder documentation.
#
-# source://nokogiri-1.13.8/lib/nokogiri/html.rb:31
+# source://nokogiri-1.15.3/lib/nokogiri/html.rb:31
class Nokogiri::HTML4::Builder < ::Nokogiri::XML::Builder
# Convert the builder to HTML
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4/builder.rb:32
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/builder.rb:32
def to_html; end
end
-# source://nokogiri-1.13.8/lib/nokogiri/html4/document.rb:11
+# source://nokogiri-1.15.3/lib/nokogiri/html4/document.rb:8
class Nokogiri::HTML4::Document < ::Nokogiri::XML::Document
# Create a Nokogiri::XML::DocumentFragment from +tags+
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4/document.rb:149
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/document.rb:149
def fragment(tags = T.unsafe(nil)); end
# Get the meta tag encoding for this document. If there is no meta tag,
# then nil is returned.
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4/document.rb:12
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/document.rb:12
def meta_encoding; end
# Set the meta tag encoding for this document.
@@ -898,7 +936,7 @@ class Nokogiri::HTML4::Document < ::Nokogiri::XML::Document
# Beware in CRuby, that libxml2 automatically inserts a meta tag
# into a head element.
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4/document.rb:36
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/document.rb:36
def meta_encoding=(encoding); end
# Serialize Node using +options+. Save options can also be set using a block.
@@ -915,13 +953,13 @@ class Nokogiri::HTML4::Document < ::Nokogiri::XML::Document
# config.format.as_xml
# end
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4/document.rb:142
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/document.rb:142
def serialize(options = T.unsafe(nil)); end
# Get the title string of this document. Return nil if there is
# no title tag.
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4/document.rb:70
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/document.rb:70
def title; end
# Set the title string of this document.
@@ -935,7 +973,7 @@ class Nokogiri::HTML4::Document < ::Nokogiri::XML::Document
# encoding/charset tag if any, and before any text node or
# content element (typically
) if any.
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4/document.rb:85
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/document.rb:85
def title=(text); end
def type; end
@@ -947,15 +985,15 @@ class Nokogiri::HTML4::Document < ::Nokogiri::XML::Document
#
# See XPathVisitor for more information.
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4/document.rb:159
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/document.rb:159
def xpath_doctype; end
private
- # source://nokogiri-1.13.8/lib/nokogiri/html4/document.rb:60
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/document.rb:60
def meta_content_type; end
- # source://nokogiri-1.13.8/lib/nokogiri/html4/document.rb:103
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/document.rb:103
def set_metadata_element(element); end
class << self
@@ -971,7 +1009,7 @@ class Nokogiri::HTML4::Document < ::Nokogiri::XML::Document
#
# @yield [options]
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4/document.rb:172
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/document.rb:172
def parse(string_or_io, url = T.unsafe(nil), encoding = T.unsafe(nil), options = T.unsafe(nil)); end
def read_io(_arg0, _arg1, _arg2, _arg3); end
@@ -979,92 +1017,29 @@ class Nokogiri::HTML4::Document < ::Nokogiri::XML::Document
end
end
-# source://nokogiri-1.13.8/lib/nokogiri/html4/document.rb:224
-class Nokogiri::HTML4::Document::EncodingFound < ::StandardError
- # @return [EncodingFound] a new instance of EncodingFound
- #
- # source://nokogiri-1.13.8/lib/nokogiri/html4/document.rb:227
- def initialize(encoding); end
-
- # Returns the value of attribute found_encoding.
- #
- # source://nokogiri-1.13.8/lib/nokogiri/html4/document.rb:225
- def found_encoding; end
-end
-
-# source://nokogiri-1.13.8/lib/nokogiri/html4/document.rb:234
-class Nokogiri::HTML4::Document::EncodingReader
- # @return [EncodingReader] a new instance of EncodingReader
- #
- # source://nokogiri-1.13.8/lib/nokogiri/html4/document.rb:293
- def initialize(io); end
-
- # This method is used by the C extension so that
- # Nokogiri::HTML4::Document#read_io() does not leak memory when
- # EncodingFound is raised.
- #
- # source://nokogiri-1.13.8/lib/nokogiri/html4/document.rb:302
- def encoding_found; end
-
- # source://nokogiri-1.13.8/lib/nokogiri/html4/document.rb:304
- def read(len); end
-
- class << self
- # source://nokogiri-1.13.8/lib/nokogiri/html4/document.rb:270
- def detect_encoding(chunk); end
- end
-end
-
-# source://nokogiri-1.13.8/lib/nokogiri/html4/document.rb:257
-class Nokogiri::HTML4::Document::EncodingReader::JumpSAXHandler < ::Nokogiri::HTML4::Document::EncodingReader::SAXHandler
- # @return [JumpSAXHandler] a new instance of JumpSAXHandler
- #
- # source://nokogiri-1.13.8/lib/nokogiri/html4/document.rb:258
- def initialize(jumptag); end
-
- # source://nokogiri-1.13.8/lib/nokogiri/html4/document.rb:263
- def start_element(name, attrs = T.unsafe(nil)); end
-end
-
-# source://nokogiri-1.13.8/lib/nokogiri/html4/document.rb:235
-class Nokogiri::HTML4::Document::EncodingReader::SAXHandler < ::Nokogiri::XML::SAX::Document
- # @return [SAXHandler] a new instance of SAXHandler
- #
- # source://nokogiri-1.13.8/lib/nokogiri/html4/document.rb:238
- def initialize; end
-
- # Returns the value of attribute encoding.
- #
- # source://nokogiri-1.13.8/lib/nokogiri/html4/document.rb:236
- def encoding; end
-
- # source://nokogiri-1.13.8/lib/nokogiri/html4/document.rb:243
- def start_element(name, attrs = T.unsafe(nil)); end
-end
-
-# source://nokogiri-1.13.8/lib/nokogiri/html4/document_fragment.rb:7
+# source://nokogiri-1.15.3/lib/nokogiri/html4/document_fragment.rb:5
class Nokogiri::HTML4::DocumentFragment < ::Nokogiri::XML::DocumentFragment
# @return [DocumentFragment] a new instance of DocumentFragment
# @yield [options]
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4/document_fragment.rb:27
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/document_fragment.rb:27
def initialize(document, tags = T.unsafe(nil), ctx = T.unsafe(nil), options = T.unsafe(nil)); end
class << self
# Create a Nokogiri::XML::DocumentFragment from +tags+, using +encoding+
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4/document_fragment.rb:8
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/document_fragment.rb:8
def parse(tags, encoding = T.unsafe(nil), options = T.unsafe(nil), &block); end
end
end
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description.rb:5
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description.rb:5
class Nokogiri::HTML4::ElementDescription
# Is this element a block element?
#
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4/element_description.rb:8
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/element_description.rb:8
def block?; end
def default_sub_element; end
@@ -1086,7 +1061,7 @@ class Nokogiri::HTML4::ElementDescription
# Inspection information
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4/element_description.rb:20
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/element_description.rb:20
def inspect; end
def name; end
@@ -1100,12 +1075,12 @@ class Nokogiri::HTML4::ElementDescription
# Convert this description to a string
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4/element_description.rb:14
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/element_description.rb:14
def to_s; end
private
- # source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:21
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:32
def default_desc; end
class << self
@@ -1113,93 +1088,93 @@ class Nokogiri::HTML4::ElementDescription
end
end
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:239
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:436
Nokogiri::HTML4::ElementDescription::ACTION_ATTR = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:234
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:423
Nokogiri::HTML4::ElementDescription::ALIGN_ATTR = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:173
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:239
Nokogiri::HTML4::ElementDescription::ALT_ATTR = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:180
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:246
Nokogiri::HTML4::ElementDescription::APPLET_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:183
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:258
Nokogiri::HTML4::ElementDescription::AREA_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:159
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:212
Nokogiri::HTML4::ElementDescription::ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:168
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:221
Nokogiri::HTML4::ElementDescription::A_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:185
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:268
Nokogiri::HTML4::ElementDescription::BASEFONT_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:278
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:546
Nokogiri::HTML4::ElementDescription::BGCOLOR_ATTR = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:141
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:171
Nokogiri::HTML4::ElementDescription::BLOCK = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:240
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:437
Nokogiri::HTML4::ElementDescription::BLOCKLI_ELT = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:188
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:271
Nokogiri::HTML4::ElementDescription::BODY_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:187
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:270
Nokogiri::HTML4::ElementDescription::BODY_CONTENTS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:189
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:272
Nokogiri::HTML4::ElementDescription::BODY_DEPR = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:191
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:280
Nokogiri::HTML4::ElementDescription::BUTTON_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:160
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:213
Nokogiri::HTML4::ElementDescription::CELLHALIGN = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:161
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:214
Nokogiri::HTML4::ElementDescription::CELLVALIGN = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:176
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:242
Nokogiri::HTML4::ElementDescription::CLEAR_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:194
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:292
Nokogiri::HTML4::ElementDescription::COL_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:195
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:293
Nokogiri::HTML4::ElementDescription::COL_ELT = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:199
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:297
Nokogiri::HTML4::ElementDescription::COMPACT_ATTR = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:197
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:295
Nokogiri::HTML4::ElementDescription::COMPACT_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:242
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:439
Nokogiri::HTML4::ElementDescription::CONTENT_ATTR = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:154
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:199
Nokogiri::HTML4::ElementDescription::COREATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:165
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:218
Nokogiri::HTML4::ElementDescription::CORE_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:164
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:217
Nokogiri::HTML4::ElementDescription::CORE_I18N_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:281
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:549
Nokogiri::HTML4::ElementDescription::DIR_ATTR = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:198
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:296
Nokogiri::HTML4::ElementDescription::DL_CONTENTS = T.let(T.unsafe(nil), Array)
# This is filled in down below.
#
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:19
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:30
Nokogiri::HTML4::ElementDescription::DefaultDescriptions = T.let(T.unsafe(nil), Hash)
# Methods are defined protected by method_defined? because at
@@ -1207,256 +1182,319 @@ Nokogiri::HTML4::ElementDescription::DefaultDescriptions = T.let(T.unsafe(nil),
# and we don't want to clobber any methods that have been
# defined there.
#
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:11
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:11
Nokogiri::HTML4::ElementDescription::Desc = Struct
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:196
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:294
Nokogiri::HTML4::ElementDescription::EDIT_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:223
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:377
Nokogiri::HTML4::ElementDescription::EMBED_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:147
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:192
Nokogiri::HTML4::ElementDescription::EMPTY = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:156
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:201
Nokogiri::HTML4::ElementDescription::EVENTS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:201
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:299
Nokogiri::HTML4::ElementDescription::FIELDSET_CONTENTS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:145
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:190
Nokogiri::HTML4::ElementDescription::FLOW = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:179
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:245
Nokogiri::HTML4::ElementDescription::FLOW_PARAM = T.let(T.unsafe(nil), Array)
# Attributes defined and categorized
#
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:131
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:136
Nokogiri::HTML4::ElementDescription::FONTSTYLE = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:202
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:300
Nokogiri::HTML4::ElementDescription::FONT_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:140
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:170
Nokogiri::HTML4::ElementDescription::FORMCTRL = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:206
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:318
Nokogiri::HTML4::ElementDescription::FORM_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:203
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:301
Nokogiri::HTML4::ElementDescription::FORM_CONTENTS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:210
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:339
Nokogiri::HTML4::ElementDescription::FRAMESET_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:211
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:340
Nokogiri::HTML4::ElementDescription::FRAMESET_CONTENTS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:208
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:328
Nokogiri::HTML4::ElementDescription::FRAME_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:138
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:168
Nokogiri::HTML4::ElementDescription::HEADING = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:212
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:341
Nokogiri::HTML4::ElementDescription::HEAD_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:213
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:342
Nokogiri::HTML4::ElementDescription::HEAD_CONTENTS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:175
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:241
Nokogiri::HTML4::ElementDescription::HREF_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:215
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:352
Nokogiri::HTML4::ElementDescription::HR_DEPR = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:163
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:216
Nokogiri::HTML4::ElementDescription::HTML_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:152
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:197
Nokogiri::HTML4::ElementDescription::HTML_CDATA = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:217
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:354
Nokogiri::HTML4::ElementDescription::HTML_CONTENT = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:149
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:194
Nokogiri::HTML4::ElementDescription::HTML_FLOW = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:150
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:195
Nokogiri::HTML4::ElementDescription::HTML_INLINE = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:151
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:196
Nokogiri::HTML4::ElementDescription::HTML_PCDATA = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:155
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:200
Nokogiri::HTML4::ElementDescription::I18N = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:166
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:219
Nokogiri::HTML4::ElementDescription::I18N_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:218
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:355
Nokogiri::HTML4::ElementDescription::IFRAME_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:221
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:368
Nokogiri::HTML4::ElementDescription::IMG_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:144
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:189
Nokogiri::HTML4::ElementDescription::INLINE = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:177
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:243
Nokogiri::HTML4::ElementDescription::INLINE_P = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:227
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:398
Nokogiri::HTML4::ElementDescription::INPUT_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:200
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:298
Nokogiri::HTML4::ElementDescription::LABEL_ATTR = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:232
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:421
Nokogiri::HTML4::ElementDescription::LABEL_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:259
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:484
Nokogiri::HTML4::ElementDescription::LANGUAGE_ATTR = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:233
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:422
Nokogiri::HTML4::ElementDescription::LEGEND_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:235
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:424
Nokogiri::HTML4::ElementDescription::LINK_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:139
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:169
Nokogiri::HTML4::ElementDescription::LIST = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:279
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:547
Nokogiri::HTML4::ElementDescription::LI_ELT = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:237
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:434
Nokogiri::HTML4::ElementDescription::MAP_CONTENTS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:241
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:438
Nokogiri::HTML4::ElementDescription::META_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:146
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:191
Nokogiri::HTML4::ElementDescription::MODIFIER = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:238
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:435
Nokogiri::HTML4::ElementDescription::NAME_ATTR = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:244
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:441
Nokogiri::HTML4::ElementDescription::NOFRAMES_CONTENT = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:246
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:443
Nokogiri::HTML4::ElementDescription::OBJECT_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:245
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:442
Nokogiri::HTML4::ElementDescription::OBJECT_CONTENTS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:249
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:459
Nokogiri::HTML4::ElementDescription::OBJECT_DEPR = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:250
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:460
Nokogiri::HTML4::ElementDescription::OL_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:252
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:462
Nokogiri::HTML4::ElementDescription::OPTGROUP_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:253
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:463
Nokogiri::HTML4::ElementDescription::OPTION_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:251
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:461
Nokogiri::HTML4::ElementDescription::OPTION_ELT = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:254
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:464
Nokogiri::HTML4::ElementDescription::PARAM_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:137
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:167
Nokogiri::HTML4::ElementDescription::PCDATA = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:132
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:137
Nokogiri::HTML4::ElementDescription::PHRASE = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:256
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:466
Nokogiri::HTML4::ElementDescription::PRE_CONTENT = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:231
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:420
Nokogiri::HTML4::ElementDescription::PROMPT_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:186
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:269
Nokogiri::HTML4::ElementDescription::QUOTE_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:172
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:238
Nokogiri::HTML4::ElementDescription::ROWS_COLS_ATTR = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:258
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:483
Nokogiri::HTML4::ElementDescription::SCRIPT_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:261
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:486
Nokogiri::HTML4::ElementDescription::SELECT_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:260
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:485
Nokogiri::HTML4::ElementDescription::SELECT_CONTENT = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:134
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:149
Nokogiri::HTML4::ElementDescription::SPECIAL = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:174
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:240
Nokogiri::HTML4::ElementDescription::SRC_ALT_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:263
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:497
Nokogiri::HTML4::ElementDescription::STYLE_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:264
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:498
Nokogiri::HTML4::ElementDescription::TABLE_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:267
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:510
Nokogiri::HTML4::ElementDescription::TABLE_CONTENTS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:266
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:509
Nokogiri::HTML4::ElementDescription::TABLE_DEPR = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:270
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:520
Nokogiri::HTML4::ElementDescription::TALIGN_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:171
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:237
Nokogiri::HTML4::ElementDescription::TARGET_ATTR = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:274
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:533
Nokogiri::HTML4::ElementDescription::TEXTAREA_ATTRS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:272
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:522
Nokogiri::HTML4::ElementDescription::TH_TD_ATTR = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:271
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:521
Nokogiri::HTML4::ElementDescription::TH_TD_DEPR = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:277
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:545
Nokogiri::HTML4::ElementDescription::TR_CONTENTS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:269
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:519
Nokogiri::HTML4::ElementDescription::TR_ELT = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:243
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:440
Nokogiri::HTML4::ElementDescription::TYPE_ATTR = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:280
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:548
Nokogiri::HTML4::ElementDescription::UL_DEPR = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:216
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:353
Nokogiri::HTML4::ElementDescription::VERSION_ATTR = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/element_description_defaults.rb:255
+# source://nokogiri-1.15.3/lib/nokogiri/html4/element_description_defaults.rb:465
Nokogiri::HTML4::ElementDescription::WIDTH_ATTR = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/html4/entity_lookup.rb:5
+# source://nokogiri-1.15.3/lib/nokogiri/html4/encoding_reader.rb:14
+class Nokogiri::HTML4::EncodingReader
+ # @return [EncodingReader] a new instance of EncodingReader
+ #
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/encoding_reader.rb:82
+ def initialize(io); end
+
+ # This method is used by the C extension so that
+ # Nokogiri::HTML4::Document#read_io() does not leak memory when
+ # EncodingFound is raised.
+ #
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/encoding_reader.rb:91
+ def encoding_found; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/encoding_reader.rb:93
+ def read(len); end
+
+ class << self
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/encoding_reader.rb:59
+ def detect_encoding(chunk); end
+ end
+end
+
+# source://nokogiri-1.15.3/lib/nokogiri/html4/encoding_reader.rb:15
+class Nokogiri::HTML4::EncodingReader::EncodingFound < ::StandardError
+ # @return [EncodingFound] a new instance of EncodingFound
+ #
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/encoding_reader.rb:18
+ def initialize(encoding); end
+
+ # Returns the value of attribute found_encoding.
+ #
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/encoding_reader.rb:16
+ def found_encoding; end
+end
+
+# source://nokogiri-1.15.3/lib/nokogiri/html4/encoding_reader.rb:46
+class Nokogiri::HTML4::EncodingReader::JumpSAXHandler < ::Nokogiri::HTML4::EncodingReader::SAXHandler
+ # @return [JumpSAXHandler] a new instance of JumpSAXHandler
+ #
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/encoding_reader.rb:47
+ def initialize(jumptag); end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/encoding_reader.rb:52
+ def start_element(name, attrs = T.unsafe(nil)); end
+end
+
+# source://nokogiri-1.15.3/lib/nokogiri/html4/encoding_reader.rb:24
+class Nokogiri::HTML4::EncodingReader::SAXHandler < ::Nokogiri::XML::SAX::Document
+ # @return [SAXHandler] a new instance of SAXHandler
+ #
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/encoding_reader.rb:27
+ def initialize; end
+
+ # Returns the value of attribute encoding.
+ #
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/encoding_reader.rb:25
+ def encoding; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/encoding_reader.rb:32
+ def start_element(name, attrs = T.unsafe(nil)); end
+end
+
+# source://nokogiri-1.15.3/lib/nokogiri/html4/entity_lookup.rb:5
class Nokogiri::HTML4::EntityDescription < ::Struct; end
-# source://nokogiri-1.13.8/lib/nokogiri/html4/entity_lookup.rb:7
+# source://nokogiri-1.15.3/lib/nokogiri/html4/entity_lookup.rb:7
class Nokogiri::HTML4::EntityLookup
# Look up entity with +name+
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4/entity_lookup.rb:10
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/entity_lookup.rb:10
def [](name); end
def get(_arg0); end
@@ -1464,7 +1502,7 @@ end
# Instance of Nokogiri::HTML4::EntityLookup
#
-# source://nokogiri-1.13.8/lib/nokogiri/html4.rb:35
+# source://nokogiri-1.15.3/lib/nokogiri/html4.rb:35
Nokogiri::HTML4::NamedCharacters = T.let(T.unsafe(nil), Nokogiri::HTML4::EntityLookup)
# Nokogiri lets you write a SAX parser to process HTML but get HTML correction features.
@@ -1473,7 +1511,7 @@ Nokogiri::HTML4::NamedCharacters = T.let(T.unsafe(nil), Nokogiri::HTML4::EntityL
#
# For more information on SAX parsers, see Nokogiri::XML::SAX
#
-# source://nokogiri-1.13.8/lib/nokogiri/html4/sax/parser_context.rb:5
+# source://nokogiri-1.15.3/lib/nokogiri/html4/sax/parser_context.rb:5
module Nokogiri::HTML4::SAX; end
# This class lets you perform SAX style parsing on HTML with HTML error correction.
@@ -1491,21 +1529,21 @@ module Nokogiri::HTML4::SAX; end
#
# For more information on SAX parsers, see Nokogiri::XML::SAX
#
-# source://nokogiri-1.13.8/lib/nokogiri/html4/sax/parser.rb:29
+# source://nokogiri-1.15.3/lib/nokogiri/html4/sax/parser.rb:27
class Nokogiri::HTML4::SAX::Parser < ::Nokogiri::XML::SAX::Parser
# Parse a file with +filename+
#
# @raise [ArgumentError]
# @yield [ctx]
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4/sax/parser.rb:51
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/sax/parser.rb:51
def parse_file(filename, encoding = T.unsafe(nil)); end
# Parse given +io+
#
# @yield [ctx]
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4/sax/parser.rb:41
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/sax/parser.rb:41
def parse_io(io, encoding = T.unsafe(nil)); end
# Parse html stored in +data+ using +encoding+
@@ -1513,14 +1551,14 @@ class Nokogiri::HTML4::SAX::Parser < ::Nokogiri::XML::SAX::Parser
# @raise [TypeError]
# @yield [ctx]
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4/sax/parser.rb:30
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/sax/parser.rb:30
def parse_memory(data, encoding = T.unsafe(nil)); end
end
# Context for HTML SAX parsers. This class is usually not instantiated by the user. Instead,
# you should be looking at Nokogiri::HTML4::SAX::Parser
#
-# source://nokogiri-1.13.8/lib/nokogiri/html4/sax/parser_context.rb:9
+# source://nokogiri-1.15.3/lib/nokogiri/html4/sax/parser_context.rb:9
class Nokogiri::HTML4::SAX::ParserContext < ::Nokogiri::XML::SAX::ParserContext
def parse_with(_arg0); end
@@ -1528,46 +1566,46 @@ class Nokogiri::HTML4::SAX::ParserContext < ::Nokogiri::XML::SAX::ParserContext
def file(_arg0, _arg1); end
def memory(_arg0, _arg1); end
- # source://nokogiri-1.13.8/lib/nokogiri/html4/sax/parser_context.rb:10
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/sax/parser_context.rb:10
def new(thing, encoding = T.unsafe(nil)); end
end
end
-# source://nokogiri-1.13.8/lib/nokogiri/html4/sax/push_parser.rb:6
+# source://nokogiri-1.15.3/lib/nokogiri/html4/sax/push_parser.rb:6
class Nokogiri::HTML4::SAX::PushParser < ::Nokogiri::XML::SAX::PushParser
# @return [PushParser] a new instance of PushParser
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4/sax/push_parser.rb:11
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/sax/push_parser.rb:11
def initialize(doc = T.unsafe(nil), file_name = T.unsafe(nil), encoding = T.unsafe(nil)); end
# Write a +chunk+ of HTML to the PushParser. Any callback methods
# that can be called will be called immediately.
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4/sax/push_parser.rb:23
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/sax/push_parser.rb:23
def <<(chunk, last_chunk = T.unsafe(nil)); end
# The Nokogiri::HTML4::SAX::Document on which the PushParser will be
# operating
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4/sax/push_parser.rb:9
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/sax/push_parser.rb:9
def document; end
# The Nokogiri::HTML4::SAX::Document on which the PushParser will be
# operating
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4/sax/push_parser.rb:9
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/sax/push_parser.rb:9
def document=(_arg0); end
# Finish the parsing. This method is only necessary for
# Nokogiri::HTML4::SAX::Document#end_document to be called.
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4/sax/push_parser.rb:31
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/sax/push_parser.rb:31
def finish; end
# Write a +chunk+ of HTML to the PushParser. Any callback methods
# that can be called will be called immediately.
#
- # source://nokogiri-1.13.8/lib/nokogiri/html4/sax/push_parser.rb:23
+ # source://nokogiri-1.15.3/lib/nokogiri/html4/sax/push_parser.rb:23
def write(chunk, last_chunk = T.unsafe(nil)); end
private
@@ -1771,16 +1809,13 @@ end
#
# Since v1.12.0
#
-# source://nokogiri-1.13.8/lib/nokogiri/html5/document.rb:23
+# source://nokogiri-1.15.3/lib/nokogiri/html5/document.rb:23
module Nokogiri::HTML5
class << self
- # source://nokogiri-1.13.8/lib/nokogiri/html5.rb:457
- def escape_text(text, encoding, attribute_mode); end
-
# Parse a fragment from +string+. Convenience method for
# {Nokogiri::HTML5::DocumentFragment.parse}.
#
- # source://nokogiri-1.13.8/lib/nokogiri/html5.rb:245
+ # source://nokogiri-1.15.3/lib/nokogiri/html5.rb:238
def fragment(string, encoding = T.unsafe(nil), **options); end
# Fetch and parse a HTML document from the web, following redirects,
@@ -1791,25 +1826,22 @@ module Nokogiri::HTML5
# * :follow_limit => number of redirects which are followed
# * :basic_auth => [username, password]
#
- # source://nokogiri-1.13.8/lib/nokogiri/html5.rb:256
+ # source://nokogiri-1.15.3/lib/nokogiri/html5.rb:249
def get(uri, options = T.unsafe(nil)); end
- # source://nokogiri-1.13.8/lib/nokogiri/html5.rb:265
- def get_impl(uri, options = T.unsafe(nil)); end
-
# Parse an HTML 5 document. Convenience method for {Nokogiri::HTML5::Document.parse}
#
- # source://nokogiri-1.13.8/lib/nokogiri/html5.rb:239
+ # source://nokogiri-1.15.3/lib/nokogiri/html5.rb:232
def parse(string, url = T.unsafe(nil), encoding = T.unsafe(nil), **options, &block); end
- # @return [Boolean]
- #
- # source://nokogiri-1.13.8/lib/nokogiri/html5.rb:469
- def prepend_newline?(node); end
-
- # source://nokogiri-1.13.8/lib/nokogiri/html5.rb:314
+ # source://nokogiri-1.15.3/lib/nokogiri/html5.rb:260
def read_and_encode(string, encoding); end
+ private
+
+ # source://nokogiri-1.15.3/lib/nokogiri/html5.rb:286
+ def get_impl(uri, options = T.unsafe(nil)); end
+
# Charset sniffing is a complex and controversial topic that understandably isn't done _by
# default_ by the Ruby Net::HTTP library. This being said, it is a very real problem for
# consumers of HTML as the default for HTML is iso-8859-1, most "good" producers use utf-8, and
@@ -1822,11 +1854,8 @@ module Nokogiri::HTML5
# http://bugs.ruby-lang.org/issues/2567
# http://www.w3.org/TR/html5/syntax.html#determining-the-character-encoding
#
- # source://nokogiri-1.13.8/lib/nokogiri/html5.rb:350
+ # source://nokogiri-1.15.3/lib/nokogiri/html5.rb:347
def reencode(body, content_type = T.unsafe(nil)); end
-
- # source://nokogiri-1.13.8/lib/nokogiri/html5.rb:392
- def serialize_node_internal(current_node, io, encoding, options); end
end
end
@@ -1834,42 +1863,112 @@ end
#
# π‘ HTML5 functionality is not available when running JRuby.
#
-# source://nokogiri-1.13.8/lib/nokogiri/html5/document.rb:27
+# source://nokogiri-1.15.3/lib/nokogiri/html5/document.rb:39
class Nokogiri::HTML5::Document < ::Nokogiri::HTML4::Document
- # source://nokogiri-1.13.8/lib/nokogiri/html5/document.rb:58
- def fragment(tags = T.unsafe(nil)); end
+ # @return [Document] a new instance of Document
+ #
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/document.rb:129
+ def initialize(*args); end
- # source://nokogiri-1.13.8/lib/nokogiri/html5/document.rb:62
+ # :call-seq:
+ # fragment() β Nokogiri::HTML5::DocumentFragment
+ # fragment(markup) β Nokogiri::HTML5::DocumentFragment
+ #
+ # Parse a HTML5 document fragment from +markup+, returning a Nokogiri::HTML5::DocumentFragment.
+ #
+ # [Properties]
+ # - +markup+ (String) The HTML5 markup fragment to be parsed
+ #
+ # [Returns]
+ # Nokogiri::HTML5::DocumentFragment. This object's children will be empty if `markup` is not passed, is empty, or is `nil`.
+ #
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/document.rb:147
+ def fragment(markup = T.unsafe(nil)); end
+
+ # Get the parser's quirks mode value. See HTML5::QuirksMode.
+ #
+ # This method returns `nil` if the parser was not invoked (e.g., `Nokogiri::HTML5::Document.new`).
+ #
+ # Since v1.14.0
+ #
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/document.rb:49
+ def quirks_mode; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/document.rb:151
def to_xml(options = T.unsafe(nil), &block); end
+ # Get the url name for this document, as passed into Document.parse, Document.read_io, or
+ # Document.read_memory
+ #
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/document.rb:42
+ def url; end
+
# :call-seq:
# xpath_doctype() β Nokogiri::CSS::XPathVisitor::DoctypeConfig
#
# [Returns] The document type which determines CSS-to-XPath translation.
#
- # See XPathVisitor for more information.
+ # See CSS::XPathVisitor for more information.
#
- # source://nokogiri-1.13.8/lib/nokogiri/html5/document.rb:74
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/document.rb:163
def xpath_doctype; end
class << self
- # source://nokogiri-1.13.8/lib/nokogiri/html5/document.rb:80
- def do_parse(string_or_io, url, encoding, options); end
-
+ # :call-seq:
+ # parse(input)
+ # parse(input, url=nil, encoding=nil, **options)
+ # parse(input, url=nil, encoding=nil) { |options| ... }
+ #
+ # Parse HTML5 input.
+ #
+ # [Parameters]
+ # - +input+ may be a String, or any object that responds to _read_ and _close_ such as an
+ # IO, or StringIO.
+ #
+ # - +url+ (optional) is a String indicating the canonical URI where this document is located.
+ #
+ # - +encoding+ (optional) is the encoding that should be used when processing
+ # the document.
+ #
+ # - +options+ (optional) is a configuration Hash (or keyword arguments) to set options
+ # during parsing. The three currently supported options are +:max_errors+,
+ # +:max_tree_depth+ and +:max_attributes+, described at Nokogiri::HTML5.
+ #
+ # β Note that these options are different than those made available by
+ # Nokogiri::XML::Document and Nokogiri::HTML4::Document.
+ #
+ # - +block+ (optional) is passed a configuration Hash on which parse options may be set. See
+ # Nokogiri::HTML5 for more information and usage.
+ #
+ # [Returns] Nokogiri::HTML5::Document
+ #
# @yield [options]
#
- # source://nokogiri-1.13.8/lib/nokogiri/html5/document.rb:28
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/document.rb:80
def parse(string_or_io, url = T.unsafe(nil), encoding = T.unsafe(nil), **options, &block); end
+ # Create a new document from an IO object.
+ #
+ # π‘ Most users should prefer Document.parse to this method.
+ #
# @raise [ArgumentError]
#
- # source://nokogiri-1.13.8/lib/nokogiri/html5/document.rb:46
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/document.rb:101
def read_io(io, url = T.unsafe(nil), encoding = T.unsafe(nil), **options); end
+ # Create a new document from a String.
+ #
+ # π‘ Most users should prefer Document.parse to this method.
+ #
# @raise [ArgumentError]
#
- # source://nokogiri-1.13.8/lib/nokogiri/html5/document.rb:52
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/document.rb:110
def read_memory(string, url = T.unsafe(nil), encoding = T.unsafe(nil), **options); end
+
+ private
+
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/document.rb:118
+ def do_parse(string_or_io, url, encoding, options); end
end
end
@@ -1877,76 +1976,77 @@ end
#
# π‘ HTML5 functionality is not available when running JRuby.
#
-# source://nokogiri-1.13.8/lib/nokogiri/html5/document_fragment.rb:27
+# source://nokogiri-1.15.3/lib/nokogiri/html5/document_fragment.rb:27
class Nokogiri::HTML5::DocumentFragment < ::Nokogiri::HTML4::DocumentFragment
# Create a document fragment.
#
# @return [DocumentFragment] a new instance of DocumentFragment
#
- # source://nokogiri-1.13.8/lib/nokogiri/html5/document_fragment.rb:32
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/document_fragment.rb:39
def initialize(doc, tags = T.unsafe(nil), ctx = T.unsafe(nil), options = T.unsafe(nil)); end
# Returns the value of attribute document.
#
- # source://nokogiri-1.13.8/lib/nokogiri/html5/document_fragment.rb:28
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/document_fragment.rb:28
def document; end
# Sets the attribute document
#
# @param value the value to set the attribute document to.
#
- # source://nokogiri-1.13.8/lib/nokogiri/html5/document_fragment.rb:28
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/document_fragment.rb:28
def document=(_arg0); end
# Returns the value of attribute errors.
#
- # source://nokogiri-1.13.8/lib/nokogiri/html5/document_fragment.rb:29
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/document_fragment.rb:29
def errors; end
# Sets the attribute errors
#
# @param value the value to set the attribute errors to.
#
- # source://nokogiri-1.13.8/lib/nokogiri/html5/document_fragment.rb:29
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/document_fragment.rb:29
def errors=(_arg0); end
- # source://nokogiri-1.13.8/lib/nokogiri/html5/document_fragment.rb:58
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/document_fragment.rb:65
def extract_params(params); end
- # source://nokogiri-1.13.8/lib/nokogiri/html5/document_fragment.rb:44
+ # Get the parser's quirks mode value. See HTML5::QuirksMode.
+ #
+ # This method returns `nil` if the parser was not invoked (e.g., `Nokogiri::HTML5::DocumentFragment.new(doc)`).
+ #
+ # Since v1.14.0
+ #
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/document_fragment.rb:36
+ def quirks_mode; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/document_fragment.rb:51
def serialize(options = T.unsafe(nil), &block); end
class << self
# Parse a document fragment from +tags+, returning a Nodeset.
#
- # source://nokogiri-1.13.8/lib/nokogiri/html5/document_fragment.rb:51
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/document_fragment.rb:58
def parse(tags, encoding = T.unsafe(nil), options = T.unsafe(nil)); end
end
end
-# HTML uses the XHTML namespace.
-#
-# source://nokogiri-1.13.8/lib/nokogiri/html5.rb:231
-Nokogiri::HTML5::HTML_NAMESPACE = T.let(T.unsafe(nil), String)
-
-# source://nokogiri-1.13.8/lib/nokogiri/html5.rb:232
-Nokogiri::HTML5::MATHML_NAMESPACE = T.let(T.unsafe(nil), String)
-
# Since v1.12.0
#
# π‘ HTML5 functionality is not available when running JRuby.
#
-# source://nokogiri-1.13.8/lib/nokogiri/html5/node.rb:27
+# source://nokogiri-1.15.3/lib/nokogiri/html5/node.rb:30
module Nokogiri::HTML5::Node
- # source://nokogiri-1.13.8/lib/nokogiri/html5/node.rb:67
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/node.rb:70
def fragment(tags); end
- # source://nokogiri-1.13.8/lib/nokogiri/html5/node.rb:28
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/node.rb:31
def inner_html(options = T.unsafe(nil)); end
# @yield [config]
#
- # source://nokogiri-1.13.8/lib/nokogiri/html5/node.rb:36
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/node.rb:39
def write_to(io, *options); end
private
@@ -1957,21 +2057,34 @@ module Nokogiri::HTML5::Node
# annoying with attribute names like xml:lang since libxml2 will
# actually create the xml namespace if it doesn't exist already.
#
- # source://nokogiri-1.13.8/lib/nokogiri/html5/node.rb:80
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/node.rb:83
def add_child_node_and_reparent_attrs(node); end
end
-# source://nokogiri-1.13.8/lib/nokogiri/html5.rb:233
-Nokogiri::HTML5::SVG_NAMESPACE = T.let(T.unsafe(nil), String)
+# Enum for the HTML5 parser quirks mode values. Values returned by HTML5::Document#quirks_mode
+#
+# See https://dom.spec.whatwg.org/#concept-document-quirks for more information on HTML5 quirks
+# mode.
+#
+# Since v1.14.0
+#
+# source://nokogiri-1.15.3/lib/nokogiri/html5/document.rb:30
+module Nokogiri::HTML5::QuirksMode; end
-# source://nokogiri-1.13.8/lib/nokogiri/html5.rb:234
-Nokogiri::HTML5::XLINK_NAMESPACE = T.let(T.unsafe(nil), String)
+# The document was parsed in "limited-quirks" mode
+#
+# source://nokogiri-1.15.3/lib/nokogiri/html5/document.rb:33
+Nokogiri::HTML5::QuirksMode::LIMITED_QUIRKS = T.let(T.unsafe(nil), Integer)
-# source://nokogiri-1.13.8/lib/nokogiri/html5.rb:236
-Nokogiri::HTML5::XMLNS_NAMESPACE = T.let(T.unsafe(nil), String)
+# The document was parsed in "no-quirks" mode
+#
+# source://nokogiri-1.15.3/lib/nokogiri/html5/document.rb:31
+Nokogiri::HTML5::QuirksMode::NO_QUIRKS = T.let(T.unsafe(nil), Integer)
-# source://nokogiri-1.13.8/lib/nokogiri/html5.rb:235
-Nokogiri::HTML5::XML_NAMESPACE = T.let(T.unsafe(nil), String)
+# The document was parsed in "quirks" mode
+#
+# source://nokogiri-1.15.3/lib/nokogiri/html5/document.rb:32
+Nokogiri::HTML5::QuirksMode::QUIRKS = T.let(T.unsafe(nil), Integer)
Nokogiri::LIBXML2_PATCHES = T.let(T.unsafe(nil), Array)
Nokogiri::LIBXML_COMPILED_VERSION = T.let(T.unsafe(nil), String)
@@ -1984,8 +2097,9 @@ Nokogiri::LIBXSLT_LOADED_VERSION = T.let(T.unsafe(nil), String)
Nokogiri::LIBXSLT_PATCHES = T.let(T.unsafe(nil), Array)
Nokogiri::OTHER_LIBRARY_VERSIONS = T.let(T.unsafe(nil), String)
Nokogiri::PACKAGED_LIBRARIES = T.let(T.unsafe(nil), TrueClass)
+Nokogiri::PRECOMPILED_LIBRARIES = T.let(T.unsafe(nil), TrueClass)
-# source://nokogiri-1.13.8/lib/nokogiri/syntax_error.rb:4
+# source://nokogiri-1.15.3/lib/nokogiri/syntax_error.rb:4
class Nokogiri::SyntaxError < ::StandardError; end
module Nokogiri::Test
@@ -1996,88 +2110,95 @@ end
# The version of Nokogiri you are using
#
-# source://nokogiri-1.13.8/lib/nokogiri/version/constant.rb:5
+# source://nokogiri-1.15.3/lib/nokogiri/version/constant.rb:5
Nokogiri::VERSION = T.let(T.unsafe(nil), String)
# Detailed version info about Nokogiri and the installed extension dependencies.
#
-# source://nokogiri-1.13.8/lib/nokogiri/version/info.rb:221
+# source://nokogiri-1.15.3/lib/nokogiri/version/info.rb:222
Nokogiri::VERSION_INFO = T.let(T.unsafe(nil), Hash)
-# source://nokogiri-1.13.8/lib/nokogiri/version/info.rb:7
+# source://nokogiri-1.15.3/lib/nokogiri/version/info.rb:7
class Nokogiri::VersionInfo
include ::Singleton
extend ::Singleton::SingletonClassMethods
- # source://nokogiri-1.13.8/lib/nokogiri/version/info.rb:33
+ # source://nokogiri-1.15.3/lib/nokogiri/version/info.rb:33
def compiled_libxml_version; end
- # source://nokogiri-1.13.8/lib/nokogiri/version/info.rb:44
+ # source://nokogiri-1.15.3/lib/nokogiri/version/info.rb:44
def compiled_libxslt_version; end
- # source://nokogiri-1.13.8/lib/nokogiri/version/info.rb:22
+ # source://nokogiri-1.15.3/lib/nokogiri/version/info.rb:22
def engine; end
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/version/info.rb:10
+ # source://nokogiri-1.15.3/lib/nokogiri/version/info.rb:10
def jruby?; end
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/version/info.rb:48
+ # source://nokogiri-1.15.3/lib/nokogiri/version/info.rb:48
def libxml2?; end
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/version/info.rb:52
+ # source://nokogiri-1.15.3/lib/nokogiri/version/info.rb:52
def libxml2_has_iconv?; end
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/version/info.rb:68
+ # source://nokogiri-1.15.3/lib/nokogiri/version/info.rb:68
def libxml2_precompiled?; end
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/version/info.rb:60
+ # source://nokogiri-1.15.3/lib/nokogiri/version/info.rb:60
def libxml2_using_packaged?; end
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/version/info.rb:64
+ # source://nokogiri-1.15.3/lib/nokogiri/version/info.rb:64
def libxml2_using_system?; end
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/version/info.rb:56
+ # source://nokogiri-1.15.3/lib/nokogiri/version/info.rb:56
def libxslt_has_datetime?; end
- # source://nokogiri-1.13.8/lib/nokogiri/version/info.rb:26
+ # source://nokogiri-1.15.3/lib/nokogiri/version/info.rb:26
def loaded_libxml_version; end
- # source://nokogiri-1.13.8/lib/nokogiri/version/info.rb:37
+ # source://nokogiri-1.15.3/lib/nokogiri/version/info.rb:37
def loaded_libxslt_version; end
- # source://nokogiri-1.13.8/lib/nokogiri/version/info.rb:18
+ # source://nokogiri-1.15.3/lib/nokogiri/version/info.rb:18
def ruby_minor; end
- # source://nokogiri-1.13.8/lib/nokogiri/version/info.rb:88
+ # source://nokogiri-1.15.3/lib/nokogiri/version/info.rb:88
def to_hash; end
- # source://nokogiri-1.13.8/lib/nokogiri/version/info.rb:179
+ # source://nokogiri-1.15.3/lib/nokogiri/version/info.rb:180
def to_markdown; end
- # source://nokogiri-1.13.8/lib/nokogiri/version/info.rb:72
+ # source://nokogiri-1.15.3/lib/nokogiri/version/info.rb:72
def warnings; end
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/version/info.rb:14
+ # source://nokogiri-1.15.3/lib/nokogiri/version/info.rb:14
def windows?; end
+
+ class << self
+ private
+
+ def allocate; end
+ def new(*_arg0); end
+ end
end
-# source://nokogiri-1.13.8/lib/nokogiri/xml.rb:12
+# source://nokogiri-1.15.3/lib/nokogiri/xml.rb:12
module Nokogiri::XML
class << self
# Parse an XML document using the Nokogiri::XML::Reader API. See
@@ -2085,43 +2206,90 @@ module Nokogiri::XML
#
# @yield [options]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml.rb:23
+ # source://nokogiri-1.15.3/lib/nokogiri/xml.rb:23
def Reader(string_or_io, url = T.unsafe(nil), encoding = T.unsafe(nil), options = T.unsafe(nil)); end
# Create a new Nokogiri::XML::RelaxNG document from +string_or_io+.
# See Nokogiri::XML::RelaxNG for an example.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/relax_ng.rb:9
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/relax_ng.rb:9
def RelaxNG(string_or_io, options = T.unsafe(nil)); end
# Create a new Nokogiri::XML::Schema object using a +string_or_io+
# object.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/schema.rb:9
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/schema.rb:9
def Schema(string_or_io, options = T.unsafe(nil)); end
# Parse a fragment from +string+ in to a NodeSet.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml.rb:42
+ # source://nokogiri-1.15.3/lib/nokogiri/xml.rb:42
def fragment(string, options = T.unsafe(nil), &block); end
# Parse XML. Convenience method for Nokogiri::XML::Document.parse
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml.rb:36
+ # source://nokogiri-1.15.3/lib/nokogiri/xml.rb:36
def parse(thing, url = T.unsafe(nil), encoding = T.unsafe(nil), options = T.unsafe(nil), &block); end
end
end
-# source://nokogiri-1.13.8/lib/nokogiri/xml/attr.rb:5
+# source://nokogiri-1.15.3/lib/nokogiri/xml/attr.rb:6
class Nokogiri::XML::Attr < ::Nokogiri::XML::Node
def content=(_arg0); end
+
+ # :call-seq: deconstruct_keys(array_of_names) β Hash
+ #
+ # Returns a hash describing the Attr, to use in pattern matching.
+ #
+ # Valid keys and their values:
+ # - +name+ β (String) The name of the attribute.
+ # - +value+ β (String) The value of the attribute.
+ # - +namespace+ β (Namespace, nil) The Namespace of the attribute, or +nil+ if there is no namespace.
+ #
+ # β‘ This is an experimental feature, available since v1.14.0
+ #
+ # *Example*
+ #
+ # doc = Nokogiri::XML.parse(<<~XML)
+ #
+ #
+ #
+ #
+ # XML
+ #
+ # attributes = doc.root.elements.first.attribute_nodes
+ # # => [#(Attr:0x35c { name = "foo", value = "abc" }),
+ # # #(Attr:0x370 {
+ # # name = "bar",
+ # # namespace = #(Namespace:0x384 {
+ # # prefix = "noko",
+ # # href = "http://nokogiri.org/ns/noko"
+ # # }),
+ # # value = "def"
+ # # })]
+ #
+ # attributes.first.deconstruct_keys([:name, :value, :namespace])
+ # # => {:name=>"foo", :value=>"abc", :namespace=>nil}
+ #
+ # attributes.last.deconstruct_keys([:name, :value, :namespace])
+ # # => {:name=>"bar",
+ # # :value=>"def",
+ # # :namespace=>
+ # # #(Namespace:0x384 {
+ # # prefix = "noko",
+ # # href = "http://nokogiri.org/ns/noko"
+ # # })}
+ #
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/attr.rb:55
+ def deconstruct_keys(keys); end
+
def to_s; end
def value; end
def value=(_arg0); end
private
- # source://nokogiri-1.13.8/lib/nokogiri/xml/attr.rb:12
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/attr.rb:61
def inspect_attributes; end
class << self
@@ -2131,14 +2299,16 @@ end
# Represents an attribute declaration in a DTD
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/attribute_decl.rb:7
+# source://nokogiri-1.15.3/lib/nokogiri/xml/attribute_decl.rb:7
class Nokogiri::XML::AttributeDecl < ::Nokogiri::XML::Node
def attribute_type; end
def default; end
def enumeration; end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/attribute_decl.rb:15
- def inspect; end
+ private
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/attribute_decl.rb:17
+ def inspect_attributes; end
end
# Nokogiri builder can be used for building XML and HTML documents.
@@ -2372,7 +2542,7 @@ end
#
# == Document Types
#
-# To create a document type (DTD), access use the Builder#doc method to get
+# To create a document type (DTD), use the Builder#doc method to get
# the current context document. Then call Node#create_internal_subset to
# create the DTD node.
#
@@ -2399,7 +2569,7 @@ end
#
#
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/builder.rb:264
+# source://nokogiri-1.15.3/lib/nokogiri/xml/builder.rb:264
class Nokogiri::XML::Builder
include ::Nokogiri::ClassResolver
@@ -2414,84 +2584,84 @@ class Nokogiri::XML::Builder
#
# @return [Builder] a new instance of Builder
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/builder.rb:307
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/builder.rb:307
def initialize(options = T.unsafe(nil), root = T.unsafe(nil), &block); end
# Append the given raw XML +string+ to the document
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/builder.rb:390
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/builder.rb:390
def <<(string); end
# Build a tag that is associated with namespace +ns+. Raises an
# ArgumentError if +ns+ has not been defined higher in the tree.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/builder.rb:358
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/builder.rb:358
def [](ns); end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/builder.rb:278
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/builder.rb:278
def arity; end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/builder.rb:278
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/builder.rb:278
def arity=(_arg0); end
# Create a CDATA Node with content of +string+
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/builder.rb:345
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/builder.rb:345
def cdata(string); end
# Create a Comment Node with content of +string+
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/builder.rb:351
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/builder.rb:351
def comment(string); end
# A context object for use when the block has no arguments
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/builder.rb:276
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/builder.rb:276
def context; end
# A context object for use when the block has no arguments
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/builder.rb:276
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/builder.rb:276
def context=(_arg0); end
# The current Document object being built
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/builder.rb:270
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/builder.rb:270
def doc; end
# The current Document object being built
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/builder.rb:270
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/builder.rb:270
def doc=(_arg0); end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/builder.rb:394
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/builder.rb:394
def method_missing(method, *args, &block); end
# The parent of the current node being built
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/builder.rb:273
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/builder.rb:273
def parent; end
# The parent of the current node being built
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/builder.rb:273
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/builder.rb:273
def parent=(_arg0); end
# Create a Text Node with content of +string+
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/builder.rb:339
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/builder.rb:339
def text(string); end
# Convert this Builder object to XML
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/builder.rb:377
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/builder.rb:377
def to_xml(*args); end
private
# Insert +node+ as a child of the current Node
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/builder.rb:423
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/builder.rb:423
def insert(node, &block); end
class << self
@@ -2508,36 +2678,36 @@ class Nokogiri::XML::Builder
# xml.awesome # add the "awesome" tag below "some_tag"
# end
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/builder.rb:294
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/builder.rb:294
def with(root, &block); end
end
end
-# source://nokogiri-1.13.8/lib/nokogiri/xml/builder.rb:267
+# source://nokogiri-1.15.3/lib/nokogiri/xml/builder.rb:267
Nokogiri::XML::Builder::DEFAULT_DOCUMENT_OPTIONS = T.let(T.unsafe(nil), Hash)
-# source://nokogiri-1.13.8/lib/nokogiri/xml/builder.rb:442
+# source://nokogiri-1.15.3/lib/nokogiri/xml/builder.rb:442
class Nokogiri::XML::Builder::NodeBuilder
# @return [NodeBuilder] a new instance of NodeBuilder
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/builder.rb:443
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/builder.rb:443
def initialize(node, doc_builder); end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/builder.rb:452
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/builder.rb:452
def [](k); end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/builder.rb:448
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/builder.rb:448
def []=(k, v); end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/builder.rb:456
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/builder.rb:456
def method_missing(method, *args, &block); end
end
-# source://nokogiri-1.13.8/lib/nokogiri/xml/cdata.rb:7
+# source://nokogiri-1.15.3/lib/nokogiri/xml/cdata.rb:5
class Nokogiri::XML::CDATA < ::Nokogiri::XML::Text
# Get the name of this CDATA node
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/cdata.rb:8
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/cdata.rb:8
def name; end
class << self
@@ -2545,7 +2715,7 @@ class Nokogiri::XML::CDATA < ::Nokogiri::XML::Text
end
end
-# source://nokogiri-1.13.8/lib/nokogiri/xml/character_data.rb:5
+# source://nokogiri-1.15.3/lib/nokogiri/xml/character_data.rb:5
class Nokogiri::XML::CharacterData < ::Nokogiri::XML::Node
include ::Nokogiri::XML::PP::CharacterData
end
@@ -2556,11 +2726,11 @@ class Nokogiri::XML::Comment < ::Nokogiri::XML::CharacterData
end
end
-# source://nokogiri-1.13.8/lib/nokogiri/xml/dtd.rb:5
+# source://nokogiri-1.15.3/lib/nokogiri/xml/dtd.rb:5
class Nokogiri::XML::DTD < ::Nokogiri::XML::Node
def attributes; end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/dtd.rb:17
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/dtd.rb:17
def each; end
def elements; end
@@ -2569,15 +2739,15 @@ class Nokogiri::XML::DTD < ::Nokogiri::XML::Node
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/dtd.rb:27
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/dtd.rb:27
def html5_dtd?; end
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/dtd.rb:23
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/dtd.rb:23
def html_dtd?; end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/dtd.rb:13
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/dtd.rb:13
def keys; end
def notations; end
@@ -2592,17 +2762,17 @@ end
# For searching a Document, see Nokogiri::XML::Searchable#css and
# Nokogiri::XML::Searchable#xpath
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:17
+# source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:14
class Nokogiri::XML::Document < ::Nokogiri::XML::Node
# @return [Document] a new instance of Document
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:168
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:178
def initialize(*args); end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:384
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:394
def <<(node_or_tags); end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:384
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:394
def add_child(node_or_tags); end
def canonicalize(*_arg0); end
@@ -2644,17 +2814,17 @@ class Nokogiri::XML::Document < ::Nokogiri::XML::Node
#
# {"xmlns:foo" => "baz"}
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:307
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:317
def collect_namespaces; end
# Create a CDATA Node containing +string+
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:252
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:262
def create_cdata(string, &block); end
# Create a Comment Node containing +string+
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:257
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:267
def create_comment(string, &block); end
# :call-seq:
@@ -2705,29 +2875,71 @@ class Nokogiri::XML::Document < ::Nokogiri::XML::Node
#
# doc.create_element("div") { |node| node["class"] = "blue" if before_noon? }
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:222
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:232
def create_element(name, *contents_or_attrs, &block); end
def create_entity(*_arg0); end
# Create a Text Node with +string+
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:247
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:257
def create_text_node(string, &block); end
+ # :call-seq: deconstruct_keys(array_of_names) β Hash
+ #
+ # Returns a hash describing the Document, to use in pattern matching.
+ #
+ # Valid keys and their values:
+ # - +root+ β (Node, nil) The root node of the Document, or +nil+ if the document is empty.
+ #
+ # In the future, other keys may allow accessing things like doctype and processing
+ # instructions. If you have a use case and would like this functionality, please let us know
+ # by opening an issue or a discussion on the github project.
+ #
+ # β‘ This is an experimental feature, available since v1.14.0
+ #
+ # *Example*
+ #
+ # doc = Nokogiri::XML.parse(<<~XML)
+ #
+ #
+ #
+ #
+ # XML
+ #
+ # doc.deconstruct_keys([:root])
+ # # => {:root=>
+ # # #(Element:0x35c {
+ # # name = "root",
+ # # children = [
+ # # #(Text "\n" + " "),
+ # # #(Element:0x370 { name = "child", children = [ #(Text "\n")] }),
+ # # #(Text "\n")]
+ # # })}
+ #
+ # *Example* of an empty document
+ #
+ # doc = Nokogiri::XML::Document.new
+ #
+ # doc.deconstruct_keys([:root])
+ # # => {:root=>nil}
+ #
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:458
+ def deconstruct_keys(keys); end
+
# Apply any decorators to +node+
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:355
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:365
def decorate(node); end
# Get the list of decorators given +key+
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:314
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:324
def decorators(key); end
# A reference to +self+
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:267
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:277
def document; end
def dup(*_arg0); end
@@ -2738,25 +2950,25 @@ class Nokogiri::XML::Document < ::Nokogiri::XML::Node
#
# [Returns] Array
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:119
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:128
def errors; end
# The errors found while parsing a document.
#
# [Returns] Array
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:119
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:128
def errors=(_arg0); end
# Create a Nokogiri::XML::DocumentFragment from +tags+
# Returns an empty fragment if +tags+ is nil.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:376
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:386
def fragment(tags = T.unsafe(nil)); end
# The name of this document. Always returns "document"
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:262
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:272
def name; end
# When `true`, reparented elements without a namespace will inherit their new parent's
@@ -2805,7 +3017,7 @@ class Nokogiri::XML::Document < ::Nokogiri::XML::Node
#
# Since v1.12.4
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:166
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:175
def namespace_inheritance; end
# When `true`, reparented elements without a namespace will inherit their new parent's
@@ -2854,12 +3066,12 @@ class Nokogiri::XML::Document < ::Nokogiri::XML::Node
#
# Since v1.12.4
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:166
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:175
def namespace_inheritance=(_arg0); end
# Get the hash of namespaces on the root Nokogiri::XML::Node
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:369
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:379
def namespaces; end
def remove_namespaces!; end
@@ -2881,10 +3093,10 @@ class Nokogiri::XML::Document < ::Nokogiri::XML::Node
# irb> doc.slop!
# ... which does absolutely nothing.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:344
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:354
def slop!; end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1187
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1280
def to_xml(*args, &block); end
def url; end
@@ -2892,7 +3104,7 @@ class Nokogiri::XML::Document < ::Nokogiri::XML::Node
# Validate this Document against it's DTD. Returns a list of errors on
# the document or +nil+ when there is no DTD.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:322
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:332
def validate; end
def version; end
@@ -2904,20 +3116,15 @@ class Nokogiri::XML::Document < ::Nokogiri::XML::Node
#
# See XPathVisitor for more information.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:404
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:414
def xpath_doctype; end
private
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:418
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:466
def inspect_attributes; end
class << self
- # @return [Boolean]
- #
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:410
- def empty_doc?(string_or_io); end
-
def new(*_arg0); end
# Parse an XML file.
@@ -2947,31 +3154,38 @@ class Nokogiri::XML::Document < ::Nokogiri::XML::Node
#
# @yield [options]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:48
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:48
def parse(string_or_io, url = T.unsafe(nil), encoding = T.unsafe(nil), options = T.unsafe(nil)); end
def read_io(_arg0, _arg1, _arg2, _arg3); end
def read_memory(_arg0, _arg1, _arg2, _arg3); end
+
+ private
+
+ # @return [Boolean]
+ #
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:83
+ def empty_doc?(string_or_io); end
end
end
-# source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:416
+# source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:464
Nokogiri::XML::Document::IMPLIED_XPATH_CONTEXTS = T.let(T.unsafe(nil), Array)
-# source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:19
+# source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:19
Nokogiri::XML::Document::NCNAME_CHAR = T.let(T.unsafe(nil), String)
-# source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:20
+# source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:20
Nokogiri::XML::Document::NCNAME_RE = T.let(T.unsafe(nil), Regexp)
# See http://www.w3.org/TR/REC-xml-names/#ns-decl for more details. Note that we're not
# attempting to handle unicode characters partly because libxml2 doesn't handle unicode
# characters in NCNAMEs.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/document.rb:18
+# source://nokogiri-1.15.3/lib/nokogiri/xml/document.rb:18
Nokogiri::XML::Document::NCNAME_START_CHAR = T.let(T.unsafe(nil), String)
-# source://nokogiri-1.13.8/lib/nokogiri/xml/document_fragment.rb:7
+# source://nokogiri-1.15.3/lib/nokogiri/xml/document_fragment.rb:6
class Nokogiri::XML::DocumentFragment < ::Nokogiri::XML::Node
# Create a new DocumentFragment from +tags+.
#
@@ -2982,7 +3196,7 @@ class Nokogiri::XML::DocumentFragment < ::Nokogiri::XML::Node
# @return [DocumentFragment] a new instance of DocumentFragment
# @yield [options]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document_fragment.rb:18
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document_fragment.rb:19
def initialize(document, tags = T.unsafe(nil), ctx = T.unsafe(nil), options = T.unsafe(nil)); end
# call-seq: css *rules, [namespace-bindings, custom-pseudo-class]
@@ -2992,26 +3206,70 @@ class Nokogiri::XML::DocumentFragment < ::Nokogiri::XML::Node
#
# For more information see Nokogiri::XML::Searchable#css
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document_fragment.rb:105
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document_fragment.rb:102
def css(*args); end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document_fragment.rb:41
+ # :call-seq: deconstruct() β Array
+ #
+ # Returns the root nodes of this document fragment as an array, to use in pattern matching.
+ #
+ # π‘ Note that text nodes are returned as well as elements. If you wish to operate only on
+ # root elements, you should deconstruct the array returned by
+ # DocumentFragment#elements.
+ #
+ # β‘ This is an experimental feature, available since v1.14.0
+ #
+ # *Example*
+ #
+ # frag = Nokogiri::HTML5.fragment(<<~HTML)
+ # Start
+ # This is a shortcut for you.
+ # End
+ # HTML
+ #
+ # frag.deconstruct
+ # # => [#(Element:0x35c { name = "div", children = [ #(Text "Start")] }),
+ # # #(Text "\n" + "This is a "),
+ # # #(Element:0x370 {
+ # # name = "a",
+ # # attributes = [ #(Attr:0x384 { name = "href", value = "#jump" })],
+ # # children = [ #(Text "shortcut")]
+ # # }),
+ # # #(Text " for you.\n"),
+ # # #(Element:0x398 { name = "div", children = [ #(Text "End")] }),
+ # # #(Text "\n")]
+ #
+ # *Example* only the elements, not the text nodes.
+ #
+ # frag.elements.deconstruct
+ # # => [#(Element:0x35c { name = "div", children = [ #(Text "Start")] }),
+ # # #(Element:0x370 {
+ # # name = "a",
+ # # attributes = [ #(Attr:0x384 { name = "href", value = "#jump" })],
+ # # children = [ #(Text "shortcut")]
+ # # }),
+ # # #(Element:0x398 { name = "div", children = [ #(Text "End")] })]
+ #
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document_fragment.rb:190
+ def deconstruct; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document_fragment.rb:42
def dup; end
# A list of Nokogiri::XML::SyntaxError found when parsing a document
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document_fragment.rb:139
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document_fragment.rb:136
def errors; end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document_fragment.rb:143
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document_fragment.rb:140
def errors=(things); end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document_fragment.rb:147
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document_fragment.rb:144
def fragment(data); end
# return the name for DocumentFragment
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document_fragment.rb:53
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document_fragment.rb:54
def name; end
# call-seq: search *paths, [namespace-bindings, xpath-variable-bindings, custom-handler-class]
@@ -3020,42 +3278,42 @@ class Nokogiri::XML::DocumentFragment < ::Nokogiri::XML::Node
#
# For more information see Nokogiri::XML::Searchable#search
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document_fragment.rb:124
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document_fragment.rb:121
def search(*rules); end
# Convert this DocumentFragment to a string
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document_fragment.rb:59
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document_fragment.rb:60
def serialize; end
# Convert this DocumentFragment to html
# See Nokogiri::XML::NodeSet#to_html
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document_fragment.rb:66
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document_fragment.rb:67
def to_html(*args); end
# Convert this DocumentFragment to a string
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document_fragment.rb:59
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document_fragment.rb:60
def to_s; end
# Convert this DocumentFragment to xhtml
# See Nokogiri::XML::NodeSet#to_xhtml
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document_fragment.rb:80
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document_fragment.rb:79
def to_xhtml(*args); end
# Convert this DocumentFragment to xml
# See Nokogiri::XML::NodeSet#to_xml
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document_fragment.rb:94
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document_fragment.rb:91
def to_xml(*args); end
private
# fix for issue 770
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document_fragment.rb:154
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document_fragment.rb:197
def namespace_declarations(ctx); end
class << self
@@ -3063,7 +3321,7 @@ class Nokogiri::XML::DocumentFragment < ::Nokogiri::XML::Node
# Create a Nokogiri::XML::DocumentFragment from +tags+
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/document_fragment.rb:8
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/document_fragment.rb:9
def parse(tags, options = T.unsafe(nil), &block); end
end
end
@@ -3078,19 +3336,21 @@ class Nokogiri::XML::Element < ::Nokogiri::XML::Node; end
# ]>
#
#
-# ElementContent represents the tree inside the tag shown above
-# that lists the possible content for the div1 tag.
+# ElementContent represents the binary tree inside the tag shown above that lists the
+# possible content for the div1 tag.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/element_content.rb:16
+# source://nokogiri-1.15.3/lib/nokogiri/xml/element_content.rb:16
class Nokogiri::XML::ElementContent
+ include ::Nokogiri::XML::PP::Node
+
# Get the children of this ElementContent node
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/element_content.rb:33
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/element_content.rb:35
def children; end
# Returns the value of attribute document.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/element_content.rb:29
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/element_content.rb:31
def document; end
def name; end
@@ -3102,61 +3362,66 @@ class Nokogiri::XML::ElementContent
def c1; end
def c2; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/element_content.rb:41
+ def inspect_attributes; end
end
-# source://nokogiri-1.13.8/lib/nokogiri/xml/element_content.rb:19
+# source://nokogiri-1.15.3/lib/nokogiri/xml/element_content.rb:21
Nokogiri::XML::ElementContent::ELEMENT = T.let(T.unsafe(nil), Integer)
-# source://nokogiri-1.13.8/lib/nokogiri/xml/element_content.rb:26
+# source://nokogiri-1.15.3/lib/nokogiri/xml/element_content.rb:28
Nokogiri::XML::ElementContent::MULT = T.let(T.unsafe(nil), Integer)
# Possible content occurrences
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/element_content.rb:24
+# source://nokogiri-1.15.3/lib/nokogiri/xml/element_content.rb:26
Nokogiri::XML::ElementContent::ONCE = T.let(T.unsafe(nil), Integer)
-# source://nokogiri-1.13.8/lib/nokogiri/xml/element_content.rb:25
+# source://nokogiri-1.15.3/lib/nokogiri/xml/element_content.rb:27
Nokogiri::XML::ElementContent::OPT = T.let(T.unsafe(nil), Integer)
-# source://nokogiri-1.13.8/lib/nokogiri/xml/element_content.rb:21
+# source://nokogiri-1.15.3/lib/nokogiri/xml/element_content.rb:23
Nokogiri::XML::ElementContent::OR = T.let(T.unsafe(nil), Integer)
# Possible definitions of type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/element_content.rb:18
+# source://nokogiri-1.15.3/lib/nokogiri/xml/element_content.rb:20
Nokogiri::XML::ElementContent::PCDATA = T.let(T.unsafe(nil), Integer)
-# source://nokogiri-1.13.8/lib/nokogiri/xml/element_content.rb:27
+# source://nokogiri-1.15.3/lib/nokogiri/xml/element_content.rb:29
Nokogiri::XML::ElementContent::PLUS = T.let(T.unsafe(nil), Integer)
-# source://nokogiri-1.13.8/lib/nokogiri/xml/element_content.rb:20
+# source://nokogiri-1.15.3/lib/nokogiri/xml/element_content.rb:22
Nokogiri::XML::ElementContent::SEQ = T.let(T.unsafe(nil), Integer)
-# source://nokogiri-1.13.8/lib/nokogiri/xml/element_decl.rb:5
+# source://nokogiri-1.15.3/lib/nokogiri/xml/element_decl.rb:5
class Nokogiri::XML::ElementDecl < ::Nokogiri::XML::Node
def content; end
def element_type; end
+ def prefix; end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/element_decl.rb:10
- def inspect; end
+ private
- def prefix; end
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/element_decl.rb:12
+ def inspect_attributes; end
end
-# source://nokogiri-1.13.8/lib/nokogiri/xml/entity_decl.rb:5
+# source://nokogiri-1.15.3/lib/nokogiri/xml/entity_decl.rb:5
class Nokogiri::XML::EntityDecl < ::Nokogiri::XML::Node
def content; end
def entity_type; end
def external_id; end
-
- # source://nokogiri-1.13.8/lib/nokogiri/xml/entity_decl.rb:16
- def inspect; end
-
def original_content; end
def system_id; end
+ private
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/entity_decl.rb:18
+ def inspect_attributes; end
+
class << self
- # source://nokogiri-1.13.8/lib/nokogiri/xml/entity_decl.rb:12
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/entity_decl.rb:12
def new(name, doc, *args); end
end
end
@@ -3168,12 +3433,12 @@ Nokogiri::XML::EntityDecl::INTERNAL_GENERAL = T.let(T.unsafe(nil), Integer)
Nokogiri::XML::EntityDecl::INTERNAL_PARAMETER = T.let(T.unsafe(nil), Integer)
Nokogiri::XML::EntityDecl::INTERNAL_PREDEFINED = T.let(T.unsafe(nil), Integer)
-# source://nokogiri-1.13.8/lib/nokogiri/xml/entity_reference.rb:5
+# source://nokogiri-1.15.3/lib/nokogiri/xml/entity_reference.rb:5
class Nokogiri::XML::EntityReference < ::Nokogiri::XML::Node
- # source://nokogiri-1.13.8/lib/nokogiri/xml/entity_reference.rb:6
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/entity_reference.rb:6
def children; end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/entity_reference.rb:15
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/entity_reference.rb:15
def inspect_attributes; end
class << self
@@ -3181,13 +3446,51 @@ class Nokogiri::XML::EntityReference < ::Nokogiri::XML::Node
end
end
-# source://nokogiri-1.13.8/lib/nokogiri/xml/namespace.rb:5
+# source://nokogiri-1.15.3/lib/nokogiri/xml/namespace.rb:6
class Nokogiri::XML::Namespace
include ::Nokogiri::XML::PP::Node
+ # :call-seq: deconstruct_keys(array_of_names) β Hash
+ #
+ # Returns a hash describing the Namespace, to use in pattern matching.
+ #
+ # Valid keys and their values:
+ # - +prefix+ β (String, nil) The namespace's prefix, or +nil+ if there is no prefix (e.g., default namespace).
+ # - +href+ β (String) The namespace's URI
+ #
+ # β‘ This is an experimental feature, available since v1.14.0
+ #
+ # *Example*
+ #
+ # doc = Nokogiri::XML.parse(<<~XML)
+ #
+ #
+ #
+ #
+ #
+ # XML
+ #
+ # doc.root.elements.first.namespace
+ # # => #(Namespace:0x35c { href = "http://nokogiri.org/ns/default" })
+ #
+ # doc.root.elements.first.namespace.deconstruct_keys([:prefix, :href])
+ # # => {:prefix=>nil, :href=>"http://nokogiri.org/ns/default"}
+ #
+ # doc.root.elements.last.namespace
+ # # => #(Namespace:0x370 {
+ # # prefix = "noko",
+ # # href = "http://nokogiri.org/ns/noko"
+ # # })
+ #
+ # doc.root.elements.last.namespace.deconstruct_keys([:prefix, :href])
+ # # => {:prefix=>"noko", :href=>"http://nokogiri.org/ns/noko"}
+ #
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/namespace.rb:47
+ def deconstruct_keys(keys); end
+
# Returns the value of attribute document.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/namespace.rb:7
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/namespace.rb:8
def document; end
def href; end
@@ -3195,7 +3498,7 @@ class Nokogiri::XML::Namespace
private
- # source://nokogiri-1.13.8/lib/nokogiri/xml/namespace.rb:11
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/namespace.rb:53
def inspect_attributes; end
end
@@ -3247,7 +3550,7 @@ end
#
# See the method group entitled Node@Searching+via+XPath+or+CSS+Queries for the full set of methods.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:56
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:56
class Nokogiri::XML::Node
include ::Nokogiri::HTML5::Node
include ::Nokogiri::XML::PP::Node
@@ -3277,28 +3580,30 @@ class Nokogiri::XML::Node
#
# @return [Node] a new instance of Node
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:126
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:126
def initialize(name, document); end
# Add +node_or_tags+ as a child of this Node.
- # +node_or_tags+ can be a Nokogiri::XML::Node, a ::DocumentFragment, a ::NodeSet, or a string containing markup.
#
- # Returns self, to support chaining of calls (e.g., root << child1 << child2)
+ # +node_or_tags+ can be a Nokogiri::XML::Node, a ::DocumentFragment, a ::NodeSet, or a String
+ # containing markup.
+ #
+ # Returns +self+, to support chaining of calls (e.g., root << child1 << child2)
#
# Also see related method +add_child+.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:191
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:256
def <<(node_or_tags); end
# Compare two Node objects with respect to their Document. Nodes from
# different documents cannot be compared.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1163
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1256
def <=>(other); end
# Test to see if this Node is equal to +other+
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1153
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1246
def ==(other); end
# :call-seq: [](name) β (String, nil)
@@ -3331,7 +3636,7 @@ class Nokogiri::XML::Node
# doc.at_css("child").attribute_with_ns("size", "http://example.com/widths").value
# # => "broad"
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:419
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:512
def [](name); end
# :call-seq: []=(name, value) β value
@@ -3368,22 +3673,25 @@ class Nokogiri::XML::Node
# # " \n" +
# # "\n"
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:457
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:550
def []=(name, value); end
# Accept a visitor. This method calls "visit" on +visitor+ with self.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1147
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1240
def accept(visitor); end
# Add +node_or_tags+ as a child of this Node.
- # +node_or_tags+ can be a Nokogiri::XML::Node, a ::DocumentFragment, a ::NodeSet, or a string containing markup.
#
- # Returns the reparented node (if +node_or_tags+ is a Node), or NodeSet (if +node_or_tags+ is a DocumentFragment, NodeSet, or string).
+ # +node_or_tags+ can be a Nokogiri::XML::Node, a ::DocumentFragment, a ::NodeSet, or a String
+ # containing markup.
+ #
+ # Returns the reparented node (if +node_or_tags+ is a Node), or NodeSet (if +node_or_tags+ is
+ # a DocumentFragment, NodeSet, or String).
#
# Also see related method +<<+.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:145
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:148
def add_child(node_or_tags); end
# :call-seq: add_class(names) β self
@@ -3427,50 +3735,58 @@ class Nokogiri::XML::Node
# node # =>
# node.add_class(["section", "header"]) # =>
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:622
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:715
def add_class(names); end
def add_namespace(_arg0, _arg1); end
def add_namespace_definition(_arg0, _arg1); end
# Insert +node_or_tags+ after this Node (as a sibling).
- # +node_or_tags+ can be a Nokogiri::XML::Node, a ::DocumentFragment, a ::NodeSet, or a string containing markup.
#
- # Returns the reparented node (if +node_or_tags+ is a Node), or NodeSet (if +node_or_tags+ is a DocumentFragment, NodeSet, or string).
+ # +node_or_tags+ can be a Nokogiri::XML::Node, a ::DocumentFragment, a ::NodeSet, or a String
+ # containing markup.
+ #
+ # Returns the reparented node (if +node_or_tags+ is a Node), or NodeSet (if +node_or_tags+ is
+ # a DocumentFragment, NodeSet, or String).
#
# Also see related method +after+.
#
# @raise [ArgumentError]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:217
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:288
def add_next_sibling(node_or_tags); end
# Insert +node_or_tags+ before this Node (as a sibling).
- # +node_or_tags+ can be a Nokogiri::XML::Node, a ::DocumentFragment, a ::NodeSet, or a string containing markup.
#
- # Returns the reparented node (if +node_or_tags+ is a Node), or NodeSet (if +node_or_tags+ is a DocumentFragment, NodeSet, or string).
+ # +node_or_tags+ can be a Nokogiri::XML::Node, a ::DocumentFragment, a ::NodeSet, or a String
+ # containing markup.
+ #
+ # Returns the reparented node (if +node_or_tags+ is a Node), or NodeSet (if +node_or_tags+ is
+ # a DocumentFragment, NodeSet, or String).
#
# Also see related method +before+.
#
# @raise [ArgumentError]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:203
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:271
def add_previous_sibling(node_or_tags); end
# Insert +node_or_tags+ after this node (as a sibling).
- # +node_or_tags+ can be a Nokogiri::XML::Node, a Nokogiri::XML::DocumentFragment, or a string containing markup.
#
- # Returns self, to support chaining of calls.
+ # +node_or_tags+ can be a Nokogiri::XML::Node, a Nokogiri::XML::DocumentFragment, or a String
+ # containing markup.
+ #
+ # Returns +self+, to support chaining of calls.
#
# Also see related method +add_next_sibling+.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:243
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:318
def after(node_or_tags); end
# Get a list of ancestor Node for this Node. If +selector+ is given,
# the ancestors must match +selector+
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1116
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1209
def ancestors(selector = T.unsafe(nil)); end
# :call-seq: append_class(names) β self
@@ -3512,7 +3828,7 @@ class Nokogiri::XML::Node
# node.append_class(["section", "header"]) # =>
# node.append_class(["section", "header"]) # =>
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:666
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:759
def append_class(names); end
# :call-seq: [](name) β (String, nil)
@@ -3545,7 +3861,7 @@ class Nokogiri::XML::Node
# doc.at_css("child").attribute_with_ns("size", "http://example.com/widths").value
# # => "broad"
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:419
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:512
def attr(name); end
def attribute(_arg0); end
@@ -3606,40 +3922,44 @@ class Nokogiri::XML::Node
# # value = "tall"
# # })}
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:516
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:609
def attributes; end
# Insert +node_or_tags+ before this node (as a sibling).
- # +node_or_tags+ can be a Nokogiri::XML::Node, a ::DocumentFragment, a ::NodeSet, or a string containing markup.
#
- # Returns self, to support chaining of calls.
+ # +node_or_tags+ can be a Nokogiri::XML::Node, a ::DocumentFragment, a ::NodeSet, or a String
+ # containing markup.
+ #
+ # Returns +self+, to support chaining of calls.
#
# Also see related method +add_previous_sibling+.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:231
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:304
def before(node_or_tags); end
def blank?; end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1306
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1407
def canonicalize(mode = T.unsafe(nil), inclusive_namespaces = T.unsafe(nil), with_comments = T.unsafe(nil)); end
# Returns true if this is a CDATA
#
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1037
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1130
def cdata?; end
def child; end
def children; end
- # Set the inner html for this Node +node_or_tags+
- # +node_or_tags+ can be a Nokogiri::XML::Node, a Nokogiri::XML::DocumentFragment, or a string containing markup.
+ # Set the content for this Node +node_or_tags+
+ #
+ # +node_or_tags+ can be a Nokogiri::XML::Node, a Nokogiri::XML::DocumentFragment, or a String
+ # containing markup.
#
# Also see related method +inner_html=+
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:262
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:349
def children=(node_or_tags); end
# :call-seq: classes() β Array
@@ -3661,7 +3981,7 @@ class Nokogiri::XML::Node
# node # =>
# node.classes # => ["section", "title", "header"]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:576
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:669
def classes; end
def clone(*_arg0); end
@@ -3670,14 +3990,15 @@ class Nokogiri::XML::Node
#
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1032
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1125
def comment?; end
def content; end
- # Set the Node's content to a Text node containing +string+. The string gets XML escaped, not interpreted as markup.
+ # Set the Node's content to a Text node containing +string+. The string gets XML escaped, not
+ # interpreted as markup.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:318
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:411
def content=(string); end
def create_external_subset(_arg0, _arg1, _arg2); end
@@ -3685,12 +4006,64 @@ class Nokogiri::XML::Node
# Get the path to this node as a CSS expression
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1107
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1200
def css_path; end
+ # :call-seq: deconstruct_keys(array_of_names) β Hash
+ #
+ # Returns a hash describing the Node, to use in pattern matching.
+ #
+ # Valid keys and their values:
+ # - +name+ β (String) The name of this node, or "text" if it is a Text node.
+ # - +namespace+ β (Namespace, nil) The namespace of this node, or nil if there is no namespace.
+ # - +attributes+ β (Array) The attributes of this node.
+ # - +children+ β (Array) The children of this node. π‘ Note this includes text nodes.
+ # - +elements+ β (Array) The child elements of this node. π‘ Note this does not include text nodes.
+ # - +content+ β (String) The contents of all the text nodes in this node's subtree. See #content.
+ # - +inner_html+ β (String) The inner markup for the children of this node. See #inner_html.
+ #
+ # β‘ This is an experimental feature, available since v1.14.0
+ #
+ # *Example*
+ #
+ # doc = Nokogiri::XML.parse(<<~XML)
+ #
+ #
+ # First
+ # Second
+ #
+ # XML
+ #
+ # doc.root.deconstruct_keys([:name, :namespace])
+ # # => {:name=>"parent",
+ # # :namespace=>
+ # # #(Namespace:0x35c { href = "http://nokogiri.org/ns/default" })}
+ #
+ # doc.root.deconstruct_keys([:inner_html, :content])
+ # # => {:content=>"\n" + " First\n" + " Second\n",
+ # # :inner_html=>
+ # # "\n" +
+ # # " First\n" +
+ # # " Second\n"}
+ #
+ # doc.root.elements.first.deconstruct_keys([:attributes])
+ # # => {:attributes=>
+ # # [#(Attr:0x370 { name = "foo", value = "abc" }),
+ # # #(Attr:0x384 {
+ # # name = "bar",
+ # # namespace = #(Namespace:0x398 {
+ # # prefix = "noko",
+ # # href = "http://nokogiri.org/ns/noko"
+ # # }),
+ # # value = "def"
+ # # })]}
+ #
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1468
+ def deconstruct_keys(keys); end
+
# Decorate this node with the decorators set up in this node's Document
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:132
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:132
def decorate!; end
# Adds a default namespace supplied as a string +url+ href, to self.
@@ -3699,18 +4072,18 @@ class Nokogiri::XML::Node
# now show up in #attributes, but when this node is serialized to XML an
# "xmlns" attribute will appear. See also #namespace and #namespace=
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:334
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:427
def default_namespace=(url); end
# Remove the attribute named +name+
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:550
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:643
def delete(name); end
# Fetch the Nokogiri::HTML4::ElementDescription for this node. Returns
# nil on XML documents and on unknown tags.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1074
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1167
def description; end
# Do xinclude substitution on the subtree below node. If given a block, a
@@ -3719,7 +4092,7 @@ class Nokogiri::XML::Node
#
# @yield [options]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:361
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:454
def do_xinclude(options = T.unsafe(nil)); end
def document; end
@@ -3728,28 +4101,28 @@ class Nokogiri::XML::Node
#
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1052
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1145
def document?; end
def dup(*_arg0); end
# Iterate over each attribute name and value pair for this Node.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:542
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:635
def each; end
# Returns true if this is an Element node
#
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1088
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1181
def elem?; end
# Returns true if this is an Element node
#
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1088
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1181
def element?; end
def element_children; end
@@ -3761,14 +4134,14 @@ class Nokogiri::XML::Node
# Create a DocumentFragment containing +tags+ that is relative to _this_
# context node.
#
- # source://nokogiri-1.13.8/lib/nokogiri/html5/node.rb:67
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/node.rb:70
def fragment(tags); end
# Returns true if this is a DocumentFragment
#
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1067
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1160
def fragment?; end
# :call-seq: [](name) β (String, nil)
@@ -3801,7 +4174,7 @@ class Nokogiri::XML::Node
# doc.at_css("child").attribute_with_ns("size", "http://example.com/widths").value
# # => "broad"
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:419
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:512
def get_attribute(name); end
def has_attribute?(_arg0); end
@@ -3810,20 +4183,30 @@ class Nokogiri::XML::Node
#
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1047
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1140
def html?; end
# Get the inner_html for this node's Node#children
#
- # source://nokogiri-1.13.8/lib/nokogiri/html5/node.rb:28
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/node.rb:31
def inner_html(options = T.unsafe(nil)); end
- # Set the inner html for this Node to +node_or_tags+
- # +node_or_tags+ can be a Nokogiri::XML::Node, a Nokogiri::XML::DocumentFragment, or a string containing markup.
+ # Set the content for this Node to +node_or_tags+.
+ #
+ # +node_or_tags+ can be a Nokogiri::XML::Node, a Nokogiri::XML::DocumentFragment, or a String
+ # containing markup.
+ #
+ # β Please note that despite the name, this method will *not* always parse a String argument
+ # as HTML. A String argument will be parsed with the +DocumentFragment+ parser related to this
+ # node's document.
+ #
+ # For example, if the document is an HTML4::Document then the string will be parsed as HTML4
+ # using HTML4::DocumentFragment; but if the document is an XML::Document then it will
+ # parse the string as XML using XML::DocumentFragment.
#
# Also see related method +children=+
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:253
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:338
def inner_html=(node_or_tags); end
# :section:
@@ -3834,7 +4217,7 @@ class Nokogiri::XML::Node
# Get the attribute names for this Node.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:536
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:629
def keys; end
# :call-seq:
@@ -3888,7 +4271,7 @@ class Nokogiri::XML::Node
#
# Since v1.11.0
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:799
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:892
def kwattr_add(attribute_name, keywords); end
# :call-seq:
@@ -3937,7 +4320,7 @@ class Nokogiri::XML::Node
#
# Since v1.11.0
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:852
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:945
def kwattr_append(attribute_name, keywords); end
# :call-seq:
@@ -3976,7 +4359,7 @@ class Nokogiri::XML::Node
#
# Since v1.11.0
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:895
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:988
def kwattr_remove(attribute_name, keywords); end
# :call-seq:
@@ -4005,7 +4388,7 @@ class Nokogiri::XML::Node
#
# Since v1.11.0
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:745
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:838
def kwattr_values(attribute_name); end
def lang; end
@@ -4018,7 +4401,7 @@ class Nokogiri::XML::Node
#
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:922
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1015
def matches?(selector); end
def name; end
@@ -4031,7 +4414,7 @@ class Nokogiri::XML::Node
# for this node. You probably want #default_namespace= instead, or perhaps
# #add_namespace_definition with a nil prefix argument.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:344
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:437
def namespace=(ns); end
def namespace_definitions; end
@@ -4074,22 +4457,25 @@ class Nokogiri::XML::Node
# # "xmlns"=>"http://example.com/root",
# # "xmlns:in_scope"=>"http://example.com/in_scope"}
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1023
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1116
def namespaces; end
def native_content=(_arg0); end
def next; end
# Insert +node_or_tags+ after this Node (as a sibling).
- # +node_or_tags+ can be a Nokogiri::XML::Node, a ::DocumentFragment, a ::NodeSet, or a string containing markup.
#
- # Returns the reparented node (if +node_or_tags+ is a Node), or NodeSet (if +node_or_tags+ is a DocumentFragment, NodeSet, or string).
+ # +node_or_tags+ can be a Nokogiri::XML::Node, a ::DocumentFragment, a ::NodeSet, or a String
+ # containing markup.
+ #
+ # Returns the reparented node (if +node_or_tags+ is a Node), or NodeSet (if +node_or_tags+ is
+ # a DocumentFragment, NodeSet, or String).
#
# Also see related method +after+.
#
# @raise [ArgumentError]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:217
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:288
def next=(node_or_tags); end
def next_element; end
@@ -4101,7 +4487,7 @@ class Nokogiri::XML::Node
# Set the parent Node for this Node
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:324
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:417
def parent=(parent_node); end
# Parse +string_or_io+ as a document fragment within the context of
@@ -4110,34 +4496,40 @@ class Nokogiri::XML::Node
#
# @yield [options]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:937
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1030
def parse(string_or_io, options = T.unsafe(nil)); end
def path; end
def pointer_id; end
# Add +node_or_tags+ as the first child of this Node.
- # +node_or_tags+ can be a Nokogiri::XML::Node, a ::DocumentFragment, a ::NodeSet, or a string containing markup.
#
- # Returns the reparented node (if +node_or_tags+ is a Node), or NodeSet (if +node_or_tags+ is a DocumentFragment, NodeSet, or string).
+ # +node_or_tags+ can be a Nokogiri::XML::Node, a ::DocumentFragment, a ::NodeSet, or a String
+ # containing markup.
+ #
+ # Returns the reparented node (if +node_or_tags+ is a Node), or NodeSet (if +node_or_tags+ is
+ # a DocumentFragment, NodeSet, or String).
#
# Also see related method +add_child+.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:162
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:168
def prepend_child(node_or_tags); end
def previous; end
# Insert +node_or_tags+ before this Node (as a sibling).
- # +node_or_tags+ can be a Nokogiri::XML::Node, a ::DocumentFragment, a ::NodeSet, or a string containing markup.
#
- # Returns the reparented node (if +node_or_tags+ is a Node), or NodeSet (if +node_or_tags+ is a DocumentFragment, NodeSet, or string).
+ # +node_or_tags+ can be a Nokogiri::XML::Node, a ::DocumentFragment, a ::NodeSet, or a String
+ # containing markup.
+ #
+ # Returns the reparented node (if +node_or_tags+ is a Node), or NodeSet (if +node_or_tags+ is
+ # a DocumentFragment, NodeSet, or String).
#
# Also see related method +before+.
#
# @raise [ArgumentError]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:203
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:271
def previous=(node_or_tags); end
def previous_element; end
@@ -4147,21 +4539,21 @@ class Nokogiri::XML::Node
#
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1057
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1150
def processing_instruction?; end
# Is this a read only node?
#
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1082
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1175
def read_only?; end
def remove; end
# Remove the attribute named +name+
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:550
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:643
def remove_attribute(name); end
# :call-seq:
@@ -4210,17 +4602,20 @@ class Nokogiri::XML::Node
# node # =>
# node.remove_class(["section", "float"]) # =>
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:716
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:809
def remove_class(names = T.unsafe(nil)); end
# Replace this Node with +node_or_tags+.
- # +node_or_tags+ can be a Nokogiri::XML::Node, a ::DocumentFragment, a ::NodeSet, or a string containing markup.
#
- # Returns the reparented node (if +node_or_tags+ is a Node), or NodeSet (if +node_or_tags+ is a DocumentFragment, NodeSet, or string).
+ # +node_or_tags+ can be a Nokogiri::XML::Node, a ::DocumentFragment, a ::NodeSet, or a String
+ # containing markup.
+ #
+ # Returns the reparented node (if +node_or_tags+ is a Node), or NodeSet (if +node_or_tags+ is
+ # a DocumentFragment, NodeSet, or String).
#
# Also see related method +swap+.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:279
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:369
def replace(node_or_tags); end
# Serialize Node using +options+. Save options can also be set using a block.
@@ -4229,15 +4624,13 @@ class Nokogiri::XML::Node
#
# These two statements are equivalent:
#
- # node.serialize(:encoding => 'UTF-8', :save_with => FORMAT | AS_XML)
#
# or
#
- # node.serialize(:encoding => 'UTF-8') do |config|
# config.format.as_xml
# end
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1187
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1280
def serialize(*args, &block); end
# :call-seq: []=(name, value) β value
@@ -4274,17 +4667,19 @@ class Nokogiri::XML::Node
# # " \n" +
# # "\n"
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:457
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:550
def set_attribute(name, value); end
# Swap this Node for +node_or_tags+
- # +node_or_tags+ can be a Nokogiri::XML::Node, a ::DocumentFragment, a ::NodeSet, or a string containing markup.
+ #
+ # +node_or_tags+ can be a Nokogiri::XML::Node, a ::DocumentFragment, a ::NodeSet, or a String
+ # Containing markup.
#
# Returns self, to support chaining of calls.
#
# Also see related method +replace+.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:311
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:403
def swap(node_or_tags); end
def text; end
@@ -4293,7 +4688,7 @@ class Nokogiri::XML::Node
#
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1062
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1155
def text?; end
# Serialize this Node to HTML
@@ -4303,33 +4698,31 @@ class Nokogiri::XML::Node
# See Node#write_to for a list of +options+. For formatted output,
# use Node#to_xhtml instead.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1214
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1306
def to_html(options = T.unsafe(nil)); end
# Turn this node in to a string. If the document is HTML, this method
# returns html. If the document is XML, this method returns XML.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1097
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1190
def to_s; end
def to_str; end
# Serialize this Node to XHTML using +options+
#
- # doc.to_xhtml(:indent => 5, :encoding => 'UTF-8')
#
# See Node#write_to for a list of +options+
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1235
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1327
def to_xhtml(options = T.unsafe(nil)); end
# Serialize this Node to XML using +options+
#
- # doc.to_xml(:indent => 5, :encoding => 'UTF-8')
#
# See Node#write_to for a list of +options+
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1224
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1316
def to_xml(options = T.unsafe(nil)); end
# Yields self and all children to +block+ recursively.
@@ -4337,7 +4730,7 @@ class Nokogiri::XML::Node
# @yield [_self]
# @yieldparam _self [Nokogiri::XML::Node] the object that the method was called on
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1140
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1233
def traverse(&block); end
def type; end
@@ -4347,54 +4740,100 @@ class Nokogiri::XML::Node
#
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:530
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:623
def value?(value); end
# Get the attribute values for this Node.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:524
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:617
def values; end
- # Add html around this node
+ # :call-seq:
+ # wrap(markup) -> self
+ # wrap(node) -> self
#
- # Returns self
+ # Wrap this Node with the node parsed from +markup+ or a dup of the +node+.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:177
- def wrap(html); end
+ # [Parameters]
+ # - *markup* (String)
+ # Markup that is parsed and used as the wrapper. This node's parent, if it exists, is used
+ # as the context node for parsing; otherwise the associated document is used. If the parsed
+ # fragment has multiple roots, the first root node is used as the wrapper.
+ # - *node* (Nokogiri::XML::Node)
+ # An element that is `#dup`ed and used as the wrapper.
+ #
+ # [Returns] +self+, to support chaining.
+ #
+ # Also see NodeSet#wrap
+ #
+ # *Example* with a +String+ argument:
+ #
+ # doc = Nokogiri::HTML5(<<~HTML)
+ #
+ # asdf
+ #
+ # HTML
+ # doc.at_css("a").wrap("")
+ # doc.to_html
+ # # =>
+ # #
+ # #
+ #
+ # *Example* with a +Node+ argument:
+ #
+ # doc = Nokogiri::HTML5(<<~HTML)
+ #
+ # asdf
+ #
+ # HTML
+ # doc.at_css("a").wrap(doc.create_element("div"))
+ # doc.to_html
+ # #
+ # #
+ # #
+ #
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:223
+ def wrap(node_or_tags); end
# Write Node as HTML to +io+ with +options+
#
# See Node#write_to for a list of +options+
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1283
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1384
def write_html_to(io, options = T.unsafe(nil)); end
- # Write Node to +io+ with +options+. +options+ modify the output of
- # this method. Valid options are:
+ # :call-seq:
+ # write_to(io, *options)
+ #
+ # Serialize this node or document to +io+.
+ #
+ # [Parameters]
+ # - +io+ (IO) An IO-like object to which the serialized content will be written.
+ # - +options+ (Hash) See below
#
- # * +:encoding+ for changing the encoding
- # * +:indent_text+ the indentation text, defaults to one space
- # * +:indent+ the number of +:indent_text+ to use, defaults to 2
- # * +:save_with+ a combination of SaveOptions constants.
+ # [Options]
+ # * +:encoding+ (String or Encoding) specify the encoding of the output (defaults to document encoding)
+ # * +:indent_text+ (String) the indentation text (defaults to " "
)
+ # * +:indent+ (Integer) the number of +:indent_text+ to use (defaults to +2+)
+ # * +:save_with+ (Integer) a combination of SaveOptions constants
#
# To save with UTF-8 indented twice:
#
- # node.write_to(io, :encoding => 'UTF-8', :indent => 2)
#
# To save indented with two dashes:
#
- # node.write_to(io, :indent_text => '-', :indent => 2)
+ # node.write_to(io, indent_text: '-', indent: 2)
#
# @yield [config]
#
- # source://nokogiri-1.13.8/lib/nokogiri/html5/node.rb:36
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/node.rb:39
def write_to(io, *options); end
# Write Node as XHTML to +io+ with +options+
#
# See Node#write_to for a list of +options+
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1291
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1392
def write_xhtml_to(io, options = T.unsafe(nil)); end
# Write Node as XML to +io+ with +options+
@@ -4403,57 +4842,59 @@ class Nokogiri::XML::Node
#
# See Node#write_to for a list of options
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1301
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1402
def write_xml_to(io, options = T.unsafe(nil)); end
# Returns true if this is an XML::Document node
#
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1042
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1135
def xml?; end
protected
# @raise [ArgumentError]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1318
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1482
def coerce(data); end
private
def add_child_node(_arg0); end
- # source://nokogiri-1.13.8/lib/nokogiri/html5/node.rb:80
+ # source://nokogiri-1.15.3/lib/nokogiri/html5/node.rb:83
def add_child_node_and_reparent_attrs(node); end
def add_next_sibling_node(_arg0); end
def add_previous_sibling_node(_arg0); end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1352
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1516
def add_sibling(next_or_previous, node_or_tags); end
def compare(_arg0); end
def dump_html; end
def get(_arg0); end
+ def html_standard_serialize(_arg0); end
def in_context(_arg0, _arg1); end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1391
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1555
def inspect_attributes; end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1340
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1504
def keywordify(keywords); end
def native_write_to(_arg0, _arg1, _arg2, _arg3); end
+ def prepend_newline?; end
def process_xincludes(_arg0); end
def replace_node(_arg0); end
def set(_arg0, _arg1); end
def set_namespace(_arg0); end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1377
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1541
def to_format(save_option, options); end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1384
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1548
def write_format_to(save_option, io, options); end
class << self
@@ -4463,211 +4904,259 @@ end
# Attribute declaration type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:93
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:93
Nokogiri::XML::Node::ATTRIBUTE_DECL = T.let(T.unsafe(nil), Integer)
# Attribute node type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:65
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:65
Nokogiri::XML::Node::ATTRIBUTE_NODE = T.let(T.unsafe(nil), Integer)
# CDATA node type, see Nokogiri::XML::Node#cdata?
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:69
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:69
Nokogiri::XML::Node::CDATA_SECTION_NODE = T.let(T.unsafe(nil), Integer)
# Comment node type, see Nokogiri::XML::Node#comment?
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:77
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:77
Nokogiri::XML::Node::COMMENT_NODE = T.let(T.unsafe(nil), Integer)
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1415
+Nokogiri::XML::Node::DECONSTRUCT_KEYS = T.let(T.unsafe(nil), Array)
+
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1416
+Nokogiri::XML::Node::DECONSTRUCT_METHODS = T.let(T.unsafe(nil), Hash)
+
# DOCB document node type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:103
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:103
Nokogiri::XML::Node::DOCB_DOCUMENT_NODE = T.let(T.unsafe(nil), Integer)
# Document fragment node type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:83
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:83
Nokogiri::XML::Node::DOCUMENT_FRAG_NODE = T.let(T.unsafe(nil), Integer)
# Document node type, see Nokogiri::XML::Node#xml?
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:79
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:79
Nokogiri::XML::Node::DOCUMENT_NODE = T.let(T.unsafe(nil), Integer)
# Document type node type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:81
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:81
Nokogiri::XML::Node::DOCUMENT_TYPE_NODE = T.let(T.unsafe(nil), Integer)
# DTD node type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:89
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:89
Nokogiri::XML::Node::DTD_NODE = T.let(T.unsafe(nil), Integer)
# Element declaration type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:91
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:91
Nokogiri::XML::Node::ELEMENT_DECL = T.let(T.unsafe(nil), Integer)
# Element node type, see Nokogiri::XML::Node#element?
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:63
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:63
Nokogiri::XML::Node::ELEMENT_NODE = T.let(T.unsafe(nil), Integer)
# Entity declaration type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:95
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:95
Nokogiri::XML::Node::ENTITY_DECL = T.let(T.unsafe(nil), Integer)
# Entity node type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:73
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:73
Nokogiri::XML::Node::ENTITY_NODE = T.let(T.unsafe(nil), Integer)
# Entity reference node type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:71
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:71
Nokogiri::XML::Node::ENTITY_REF_NODE = T.let(T.unsafe(nil), Integer)
# HTML document node type, see Nokogiri::XML::Node#html?
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:87
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:87
Nokogiri::XML::Node::HTML_DOCUMENT_NODE = T.let(T.unsafe(nil), Integer)
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:1395
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:1559
Nokogiri::XML::Node::IMPLIED_XPATH_CONTEXTS = T.let(T.unsafe(nil), Array)
# Namespace declaration type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:97
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:97
Nokogiri::XML::Node::NAMESPACE_DECL = T.let(T.unsafe(nil), Integer)
# Notation node type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:85
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:85
Nokogiri::XML::Node::NOTATION_NODE = T.let(T.unsafe(nil), Integer)
# PI node type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:75
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:75
Nokogiri::XML::Node::PI_NODE = T.let(T.unsafe(nil), Integer)
# Save options for serializing nodes.
# See the method group entitled Node@Serialization+and+Generating+Output for usage.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node/save_options.rb:9
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:9
class Nokogiri::XML::Node::SaveOptions
# Create a new SaveOptions object with +options+
#
# @return [SaveOptions] a new instance of SaveOptions
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node/save_options.rb:45
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:47
def initialize(options = T.unsafe(nil)); end
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:53
def as_html; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:58
def as_html?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:53
def as_xhtml; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:58
def as_xhtml?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:53
def as_xml; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:58
def as_xml?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:53
def default_html; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:58
def default_html?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:53
def default_xhtml; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:58
def default_xhtml?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:53
def default_xml; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:58
def default_xml?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:53
def format; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:58
def format?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:66
+ def inspect; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:53
def no_declaration; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:58
def no_declaration?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:53
def no_empty_tags; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:58
def no_empty_tags?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:53
def no_xhtml; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:58
def no_xhtml?; end
# Integer representation of the SaveOptions
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node/save_options.rb:42
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:44
def options; end
# Integer representation of the SaveOptions
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node/save_options.rb:42
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:44
def to_i; end
end
# Save as HTML
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node/save_options.rb:23
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:23
Nokogiri::XML::Node::SaveOptions::AS_HTML = T.let(T.unsafe(nil), Integer)
# Save as XHTML
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node/save_options.rb:19
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:19
Nokogiri::XML::Node::SaveOptions::AS_XHTML = T.let(T.unsafe(nil), Integer)
# Save as XML
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node/save_options.rb:21
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:21
Nokogiri::XML::Node::SaveOptions::AS_XML = T.let(T.unsafe(nil), Integer)
# the default for HTML document
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node/save_options.rb:36
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:38
Nokogiri::XML::Node::SaveOptions::DEFAULT_HTML = T.let(T.unsafe(nil), Integer)
# the default for XHTML document
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node/save_options.rb:39
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:40
Nokogiri::XML::Node::SaveOptions::DEFAULT_XHTML = T.let(T.unsafe(nil), Integer)
# the default for XML documents
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node/save_options.rb:34
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:36
Nokogiri::XML::Node::SaveOptions::DEFAULT_XML = T.let(T.unsafe(nil), Integer)
# Format serialized xml
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node/save_options.rb:11
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:11
Nokogiri::XML::Node::SaveOptions::FORMAT = T.let(T.unsafe(nil), Integer)
# Do not include declarations
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node/save_options.rb:13
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:13
Nokogiri::XML::Node::SaveOptions::NO_DECLARATION = T.let(T.unsafe(nil), Integer)
# Do not include empty tags
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node/save_options.rb:15
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:15
Nokogiri::XML::Node::SaveOptions::NO_EMPTY_TAGS = T.let(T.unsafe(nil), Integer)
# Do not save XHTML
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node/save_options.rb:17
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node/save_options.rb:17
Nokogiri::XML::Node::SaveOptions::NO_XHTML = T.let(T.unsafe(nil), Integer)
# Text node type, see Nokogiri::XML::Node#text?
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:67
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:67
Nokogiri::XML::Node::TEXT_NODE = T.let(T.unsafe(nil), Integer)
# XInclude end type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:101
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:101
Nokogiri::XML::Node::XINCLUDE_END = T.let(T.unsafe(nil), Integer)
# XInclude start type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node.rb:99
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node.rb:99
Nokogiri::XML::Node::XINCLUDE_START = T.let(T.unsafe(nil), Integer)
# A NodeSet contains a list of Nokogiri::XML::Node objects. Typically
# a NodeSet is return as a result of searching a Document via
# Nokogiri::XML::Searchable#css or Nokogiri::XML::Searchable#xpath
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:9
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:10
class Nokogiri::XML::NodeSet
include ::Nokogiri::XML::Searchable
include ::Enumerable
@@ -4678,7 +5167,7 @@ class Nokogiri::XML::NodeSet
# @yield [_self]
# @yieldparam _self [Nokogiri::XML::NodeSet] the object that the method was called on
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:19
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:20
def initialize(document, list = T.unsafe(nil)); end
# call-seq: search *paths, [namespace-bindings, xpath-variable-bindings, custom-handler-class]
@@ -4692,7 +5181,7 @@ class Nokogiri::XML::NodeSet
#
# node_set.at(3) # same as node_set[3]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:118
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:119
def %(*args); end
def &(_arg0); end
@@ -4704,7 +5193,7 @@ class Nokogiri::XML::NodeSet
# of elements and if each element is equal to the corresponding
# element in the other NodeSet
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:325
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:393
def ==(other); end
def [](*_arg0); end
@@ -4714,12 +5203,12 @@ class Nokogiri::XML::NodeSet
#
# See Nokogiri::XML::Node#add_class for more information.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:138
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:139
def add_class(name); end
# Insert +datum+ after the last Node in this NodeSet
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:68
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:69
def after(datum); end
# Append the class attribute +name+ to all Node objects in the
@@ -4727,7 +5216,7 @@ class Nokogiri::XML::NodeSet
#
# See Nokogiri::XML::Node#append_class for more information.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:150
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:151
def append_class(name); end
# call-seq: search *paths, [namespace-bindings, xpath-variable-bindings, custom-handler-class]
@@ -4741,7 +5230,7 @@ class Nokogiri::XML::NodeSet
#
# node_set.at(3) # same as node_set[3]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:118
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:119
def at(*args); end
# Set attributes on each Node in the NodeSet, or get an
@@ -4776,7 +5265,7 @@ class Nokogiri::XML::NodeSet
#
# node_set.attr("class") { |node| node.name }
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:202
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:203
def attr(key, value = T.unsafe(nil), &block); end
# Set attributes on each Node in the NodeSet, or get an
@@ -4811,18 +5300,18 @@ class Nokogiri::XML::NodeSet
#
# node_set.attr("class") { |node| node.name }
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:202
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:203
def attribute(key, value = T.unsafe(nil), &block); end
# Insert +datum+ before the first Node in this NodeSet
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:62
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:63
def before(datum); end
# Returns a new NodeSet containing all the children of all the nodes in
# the NodeSet
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:338
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:406
def children; end
def clone; end
@@ -4834,55 +5323,64 @@ class Nokogiri::XML::NodeSet
#
# For more information see Nokogiri::XML::Searchable#css
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:82
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:83
def css(*args); end
+ # :call-seq: deconstruct() β Array
+ #
+ # Returns the members of this NodeSet as an array, to use in pattern matching.
+ #
+ # β‘ This is an experimental feature, available since v1.14.0
+ #
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:440
+ def deconstruct; end
+
def delete(_arg0); end
# The Document this NodeSet is associated with
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:14
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:15
def document; end
# The Document this NodeSet is associated with
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:14
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:15
def document=(_arg0); end
def dup; end
# Iterate over each node, yielding to +block+
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:230
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:231
def each; end
# Is this NodeSet empty?
#
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:44
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:45
def empty?; end
# Filter this list for nodes that match +expr+
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:129
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:130
def filter(expr); end
# Get the first element of the NodeSet.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:28
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:29
def first(n = T.unsafe(nil)); end
def include?(_arg0); end
# Returns the index of the first node in self that is == to +node+ or meets the given block. Returns nil if no match is found.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:50
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:51
def index(node = T.unsafe(nil)); end
# Get the inner html of all contained Node objects
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:259
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:260
def inner_html(*args); end
# Get the inner text of all contained Node objects
@@ -4898,17 +5396,17 @@ class Nokogiri::XML::NodeSet
#
# See Nokogiri::XML::Node#content for more information.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:252
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:253
def inner_text; end
# Return a nicely formated string representation
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:359
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:427
def inspect; end
# Get the last element of the NodeSet.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:38
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:39
def last; end
def length; end
@@ -4916,7 +5414,7 @@ class Nokogiri::XML::NodeSet
# Removes the last element from set and returns it, or +nil+ if
# the set is empty
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:306
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:374
def pop; end
def push(_arg0); end
@@ -4924,12 +5422,12 @@ class Nokogiri::XML::NodeSet
# Remove the attributed named +name+ from all Node objects in the NodeSet
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:222
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:223
def remove_attr(name); end
# Remove the attributed named +name+ from all Node objects in the NodeSet
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:222
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:223
def remove_attribute(name); end
# Remove the class attribute +name+ from all Node objects in the
@@ -4937,13 +5435,13 @@ class Nokogiri::XML::NodeSet
#
# See Nokogiri::XML::Node#remove_class for more information.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:162
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:163
def remove_class(name = T.unsafe(nil)); end
# Returns a new NodeSet containing all the nodes in the NodeSet
# in reverse order
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:349
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:417
def reverse; end
# Set attributes on each Node in the NodeSet, or get an
@@ -4978,13 +5476,13 @@ class Nokogiri::XML::NodeSet
#
# node_set.attr("class") { |node| node.name }
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:202
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:203
def set(key, value = T.unsafe(nil), &block); end
# Returns the first element of the NodeSet and removes it. Returns
# +nil+ if the set is empty.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:315
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:383
def shift; end
def size; end
@@ -5003,7 +5501,7 @@ class Nokogiri::XML::NodeSet
#
# See Nokogiri::XML::Node#content for more information.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:252
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:253
def text; end
def to_a; end
@@ -5011,30 +5509,92 @@ class Nokogiri::XML::NodeSet
# Convert this NodeSet to HTML
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:277
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:341
def to_html(*args); end
# Convert this NodeSet to a string.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:271
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:335
def to_s; end
# Convert this NodeSet to XHTML
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:290
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:358
def to_xhtml(*args); end
# Convert this NodeSet to XML
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:296
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:364
def to_xml(*args); end
def unlink; end
- # Wrap this NodeSet with +html+
+ # :call-seq:
+ # wrap(markup) -> self
+ # wrap(node) -> self
+ #
+ # Wrap each member of this NodeSet with the node parsed from +markup+ or a dup of the +node+.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:265
- def wrap(html); end
+ # [Parameters]
+ # - *markup* (String)
+ # Markup that is parsed, once per member of the NodeSet, and used as the wrapper. Each
+ # node's parent, if it exists, is used as the context node for parsing; otherwise the
+ # associated document is used. If the parsed fragment has multiple roots, the first root
+ # node is used as the wrapper.
+ # - *node* (Nokogiri::XML::Node)
+ # An element that is `#dup`ed and used as the wrapper.
+ #
+ # [Returns] +self+, to support chaining.
+ #
+ # β Note that if a +String+ is passed, the markup will be parsed once per node in the
+ # NodeSet. You can avoid this overhead in cases where you know exactly the wrapper you wish to
+ # use by passing a +Node+ instead.
+ #
+ # Also see Node#wrap
+ #
+ # *Example* with a +String+ argument:
+ #
+ # doc = Nokogiri::HTML5(<<~HTML)
+ #
+ # a
+ # b
+ # c
+ # d
+ #
+ # HTML
+ # doc.css("a").wrap("")
+ # doc.to_html
+ # # =>
+ # #
+ # #
+ # #
+ # #
+ # #
+ #
+ # *Example* with a +Node+ argument
+ #
+ # π‘ Note that this is faster than the equivalent call passing a +String+ because it avoids
+ # having to reparse the wrapper markup for each node.
+ #
+ # doc = Nokogiri::HTML5(<<~HTML)
+ #
+ # a
+ # b
+ # c
+ # d
+ #
+ # HTML
+ # doc.css("a").wrap(doc.create_element("div"))
+ # doc.to_html
+ # # =>
+ # #
+ # #
+ # #
+ # #
+ # #
+ #
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:328
+ def wrap(node_or_tags); end
# call-seq: xpath *paths, [namespace-bindings, variable-bindings, custom-handler-class]
#
@@ -5043,317 +5603,521 @@ class Nokogiri::XML::NodeSet
#
# For more information see Nokogiri::XML::Searchable#xpath
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:98
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:99
def xpath(*args); end
def |(_arg0); end
end
-# source://nokogiri-1.13.8/lib/nokogiri/xml/node_set.rb:365
+# source://nokogiri-1.15.3/lib/nokogiri/xml/node_set.rb:444
Nokogiri::XML::NodeSet::IMPLIED_XPATH_CONTEXTS = T.let(T.unsafe(nil), Array)
# Struct representing an {XML Schema Notation}[https://www.w3.org/TR/xml/#Notations]
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/notation.rb:7
+# source://nokogiri-1.15.3/lib/nokogiri/xml/notation.rb:6
class Nokogiri::XML::Notation < ::Struct; end
-# source://nokogiri-1.13.8/lib/nokogiri/xml/pp/node.rb:6
+# source://nokogiri-1.15.3/lib/nokogiri/xml/pp/node.rb:6
module Nokogiri::XML::PP; end
-# source://nokogiri-1.13.8/lib/nokogiri/xml/pp/character_data.rb:7
+# source://nokogiri-1.15.3/lib/nokogiri/xml/pp/character_data.rb:7
module Nokogiri::XML::PP::CharacterData
- # source://nokogiri-1.13.8/lib/nokogiri/xml/pp/character_data.rb:15
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/pp/character_data.rb:15
def inspect; end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/pp/character_data.rb:8
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/pp/character_data.rb:8
def pretty_print(pp); end
end
-# source://nokogiri-1.13.8/lib/nokogiri/xml/pp/node.rb:7
+# source://nokogiri-1.15.3/lib/nokogiri/xml/pp/node.rb:7
module Nokogiri::XML::PP::Node
- # source://nokogiri-1.13.8/lib/nokogiri/xml/pp/node.rb:8
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/pp/node.rb:10
def inspect; end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/pp/node.rb:20
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/pp/node.rb:27
def pretty_print(pp); end
end
-# Parse options for passing to Nokogiri.XML or Nokogiri.HTML
-#
-# == Building combinations of parse options
-# You can build your own combinations of these parse options by using any of the following methods:
-# *Note*: All examples attempt to set the +RECOVER+ & +NOENT+ options.
-# [Ruby's bitwise operators] You can use the Ruby bitwise operators to set various combinations.
-# Nokogiri.XML('Chapter 1Chapter 1Chapter 1no{option} method in lowercase. You can call these methods on an instance of +ParseOptions+ to remove the option.
-# Note that this is not available for +STRICT+.
-#
-# # Setting the RECOVER & NOENT options...
-# options = Nokogiri::XML::ParseOptions.new.recover.noent
-# # later...
-# options.norecover # Removes the Nokogiri::XML::ParseOptions::RECOVER option
-# options.nonoent # Removes the Nokogiri::XML::ParseOptions::NOENT option
-#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:29
+# source://nokogiri-1.15.3/lib/nokogiri/xml/pp/node.rb:8
+Nokogiri::XML::PP::Node::COLLECTIONS = T.let(T.unsafe(nil), Array)
+
+# Options that control the parsing behavior for XML::Document, XML::DocumentFragment,
+# HTML4::Document, HTML4::DocumentFragment, XSLT::Stylesheet, and XML::Schema.
+#
+# These options directly expose libxml2's parse options, which are all boolean in the sense that
+# an option is "on" or "off".
+#
+# π‘ Note that HTML5 parsing has a separate, orthogonal set of options due to the nature of the
+# HTML5 specification. See Nokogiri::HTML5.
+#
+# β Not all parse options are supported on JRuby. Nokogiri will attempt to invoke the equivalent
+# behavior in Xerces/NekoHTML on JRuby when it's possible.
+#
+# == Setting and unsetting parse options
+#
+# You can build your own combinations of parse options by using any of the following methods:
+#
+# [ParseOptions method chaining]
+#
+# Every option has an equivalent method in lowercase. You can chain these methods together to
+# set various combinations.
+#
+# # Set the HUGE & PEDANTIC options
+# po = Nokogiri::XML::ParseOptions.new.huge.pedantic
+# doc = Nokogiri::XML::Document.parse(xml, nil, nil, po)
+#
+# Every option has an equivalent no{option}
method in lowercase. You can call these
+# methods on an instance of ParseOptions to unset the option.
+#
+# # Set the HUGE & PEDANTIC options
+# po = Nokogiri::XML::ParseOptions.new.huge.pedantic
+#
+# # later we want to modify the options
+# po.nohuge # Unset the HUGE option
+# po.nopedantic # Unset the PEDANTIC option
+#
+# π‘ Note that some options begin with "no" leading to the logical but perhaps unintuitive
+# double negative:
+#
+# po.nocdata # Set the NOCDATA parse option
+# po.nonocdata # Unset the NOCDATA parse option
+#
+# π‘ Note that negation is not available for STRICT, which is itself a negation of all other
+# features.
+#
+#
+# [Using Ruby Blocks]
+#
+# Most parsing methods will accept a block for configuration of parse options, and we
+# recommend chaining the setter methods:
+#
+# doc = Nokogiri::XML::Document.parse(xml) { |config| config.huge.pedantic }
+#
+#
+# [ParseOptions constants]
+#
+# You can also use the constants declared under Nokogiri::XML::ParseOptions to set various
+# combinations. They are bits in a bitmask, and so can be combined with bitwise operators:
+#
+# po = Nokogiri::XML::ParseOptions.new(Nokogiri::XML::ParseOptions::HUGE | Nokogiri::XML::ParseOptions::PEDANTIC)
+# doc = Nokogiri::XML::Document.parse(xml, nil, nil, po)
+#
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:67
class Nokogiri::XML::ParseOptions
# @return [ParseOptions] a new instance of ParseOptions
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:86
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:165
def initialize(options = T.unsafe(nil)); end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:119
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:198
def ==(other); end
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:173
def big_lines; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:183
def big_lines?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:173
def compact; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:183
def compact?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:173
def default_html; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:183
def default_html?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:173
def default_schema; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:183
def default_schema?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:173
def default_xml; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:183
def default_xml?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:173
def default_xslt; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:183
def default_xslt?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:173
def dtdattr; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:183
def dtdattr?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:173
def dtdload; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:183
def dtdload?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:173
def dtdvalid; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:183
def dtdvalid?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:173
def huge; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:183
def huge?; end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:125
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:204
def inspect; end
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:173
def nobasefix; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:183
def nobasefix?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:178
def nobig_lines; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:173
def noblanks; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:183
def noblanks?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:173
def nocdata; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:183
def nocdata?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:178
def nocompact; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:178
def nodefault_html; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:178
def nodefault_schema; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:178
def nodefault_xml; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:178
def nodefault_xslt; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:173
def nodict; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:183
def nodict?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:178
def nodtdattr; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:178
def nodtdload; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:178
def nodtdvalid; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:173
def noent; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:183
def noent?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:173
def noerror; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:183
def noerror?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:178
def nohuge; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:173
def nonet; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:183
def nonet?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:178
def nonobasefix; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:178
def nonoblanks; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:178
def nonocdata; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:178
def nonodict; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:178
def nonoent; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:178
def nonoerror; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:178
def nononet; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:178
def nonowarning; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:178
def nonoxincnode; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:178
def nonsclean; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:178
def noold10; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:178
def nopedantic; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:178
def norecover; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:178
def nosax1; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:173
def nowarning; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:183
def nowarning?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:178
def noxinclude; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:173
def noxincnode; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:183
def noxincnode?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:173
def nsclean; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:183
def nsclean?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:173
def old10; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:183
def old10?; end
# Returns the value of attribute options.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:84
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:163
def options; end
# Sets the attribute options
#
# @param value the value to set the attribute options to.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:84
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:163
def options=(_arg0); end
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:173
def pedantic; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:183
def pedantic?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:173
def recover; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:183
def recover?; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:173
def sax1; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:183
def sax1?; end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:110
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:189
def strict; end
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:115
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:194
def strict?; end
# Returns the value of attribute options.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:84
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:163
def to_i; end
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:173
def xinclude; end
+
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:183
def xinclude?; end
end
-# line numbers stored as long int (instead of a short int)
+# Support line numbers up to long int
(default is a short int
). On
+# by default for for XML::Document, XML::DocumentFragment, HTML4::Document,
+# HTML4::DocumentFragment, XSLT::Stylesheet, and XML::Schema.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:73
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:149
Nokogiri::XML::ParseOptions::BIG_LINES = T.let(T.unsafe(nil), Integer)
-# compact small text nodes; no modification of the tree allowed afterwards (will possibly crash if you try to modify the tree)
+# Compact small text nodes. Off by default.
+#
+# β No modification of the DOM tree is allowed after parsing. libxml2 may crash if you try to
+# modify the tree.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:65
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:133
Nokogiri::XML::ParseOptions::COMPACT = T.let(T.unsafe(nil), Integer)
-# the default options used for parsing HTML documents
+# The options mask used by default used for parsing HTML4::Document and HTML4::DocumentFragment
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:80
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:158
Nokogiri::XML::ParseOptions::DEFAULT_HTML = T.let(T.unsafe(nil), Integer)
-# the default options used for parsing XML schemas
+# The options mask used by default used for parsing XML::Schema
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:82
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:161
Nokogiri::XML::ParseOptions::DEFAULT_SCHEMA = T.let(T.unsafe(nil), Integer)
-# the default options used for parsing XML documents
+# The options mask used by default for parsing XML::Document and XML::DocumentFragment
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:76
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:152
Nokogiri::XML::ParseOptions::DEFAULT_XML = T.let(T.unsafe(nil), Integer)
-# the default options used for parsing XSLT stylesheets
+# The options mask used by default used for parsing XSLT::Stylesheet
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:78
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:155
Nokogiri::XML::ParseOptions::DEFAULT_XSLT = T.let(T.unsafe(nil), Integer)
-# Default DTD attributes
+# Default DTD attributes. On by default for XSLT::Stylesheet.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:39
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:88
Nokogiri::XML::ParseOptions::DTDATTR = T.let(T.unsafe(nil), Integer)
-# Load external subsets
+# Load external subsets. On by default for XSLT::Stylesheet.
+#
+# β It is UNSAFE to set this option when parsing untrusted documents.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:37
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:85
Nokogiri::XML::ParseOptions::DTDLOAD = T.let(T.unsafe(nil), Integer)
-# validate with the DTD
+# Validate with the DTD. Off by default.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:41
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:91
Nokogiri::XML::ParseOptions::DTDVALID = T.let(T.unsafe(nil), Integer)
-# relax any hardcoded limit from the parser
+# Relax any hardcoded limit from the parser. Off by default.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:71
+# β There may be a performance penalty when this option is set.
+#
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:144
Nokogiri::XML::ParseOptions::HUGE = T.let(T.unsafe(nil), Integer)
-# do not fixup XINCLUDE xml:base uris
+# Do not fixup XInclude xml:base uris. Off by default
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:69
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:139
Nokogiri::XML::ParseOptions::NOBASEFIX = T.let(T.unsafe(nil), Integer)
-# remove blank nodes
+# Remove blank nodes. Off by default.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:49
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:103
Nokogiri::XML::ParseOptions::NOBLANKS = T.let(T.unsafe(nil), Integer)
-# merge CDATA as text nodes
+# Merge CDATA as text nodes. On by default for XSLT::Stylesheet.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:61
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:124
Nokogiri::XML::ParseOptions::NOCDATA = T.let(T.unsafe(nil), Integer)
-# Do not reuse the context dictionary
+# Do not reuse the context dictionary. Off by default.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:57
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:118
Nokogiri::XML::ParseOptions::NODICT = T.let(T.unsafe(nil), Integer)
-# Substitute entities
+# Substitute entities. Off by default.
+#
+# β This option enables entity substitution, contrary to what the name implies.
+#
+# β It is UNSAFE to set this option when parsing untrusted documents.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:35
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:80
Nokogiri::XML::ParseOptions::NOENT = T.let(T.unsafe(nil), Integer)
-# suppress error reports
+# Suppress error reports. On by default for HTML4::Document and HTML4::DocumentFragment
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:43
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:94
Nokogiri::XML::ParseOptions::NOERROR = T.let(T.unsafe(nil), Integer)
-# Forbid network access. Recommended for dealing with untrusted documents.
+# Forbid network access. On by default for XML::Document, XML::DocumentFragment,
+# HTML4::Document, HTML4::DocumentFragment, XSLT::Stylesheet, and XML::Schema.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:55
+# β It is UNSAFE to unset this option when parsing untrusted documents.
+#
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:115
Nokogiri::XML::ParseOptions::NONET = T.let(T.unsafe(nil), Integer)
-# suppress warning reports
+# Suppress warning reports. On by default for HTML4::Document and HTML4::DocumentFragment
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:45
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:97
Nokogiri::XML::ParseOptions::NOWARNING = T.let(T.unsafe(nil), Integer)
-# do not generate XINCLUDE START/END nodes
+# Do not generate XInclude START/END nodes. Off by default.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:63
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:127
Nokogiri::XML::ParseOptions::NOXINCNODE = T.let(T.unsafe(nil), Integer)
-# remove redundant namespaces declarations
+# Remove redundant namespaces declarations. Off by default.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:59
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:121
Nokogiri::XML::ParseOptions::NSCLEAN = T.let(T.unsafe(nil), Integer)
-# parse using XML-1.0 before update 5
+# Parse using XML-1.0 before update 5. Off by default
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:67
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:136
Nokogiri::XML::ParseOptions::OLD10 = T.let(T.unsafe(nil), Integer)
-# pedantic error reporting
+# Enable pedantic error reporting. Off by default.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:47
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:100
Nokogiri::XML::ParseOptions::PEDANTIC = T.let(T.unsafe(nil), Integer)
-# Recover from errors
+# Recover from errors. On by default for XML::Document, XML::DocumentFragment,
+# HTML4::Document, HTML4::DocumentFragment, XSLT::Stylesheet, and XML::Schema.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:33
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:73
Nokogiri::XML::ParseOptions::RECOVER = T.let(T.unsafe(nil), Integer)
-# use the SAX1 interface internally
+# Use the SAX1 interface internally. Off by default.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:51
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:106
Nokogiri::XML::ParseOptions::SAX1 = T.let(T.unsafe(nil), Integer)
# Strict parsing
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:31
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:69
Nokogiri::XML::ParseOptions::STRICT = T.let(T.unsafe(nil), Integer)
-# Implement XInclude substitution
+# Implement XInclude substitution. Off by default.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/parse_options.rb:53
+# source://nokogiri-1.15.3/lib/nokogiri/xml/parse_options.rb:109
Nokogiri::XML::ParseOptions::XINCLUDE = T.let(T.unsafe(nil), Integer)
-# source://nokogiri-1.13.8/lib/nokogiri/xml/processing_instruction.rb:5
+# source://nokogiri-1.15.3/lib/nokogiri/xml/processing_instruction.rb:5
class Nokogiri::XML::ProcessingInstruction < ::Nokogiri::XML::Node
# @return [ProcessingInstruction] a new instance of ProcessingInstruction
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/processing_instruction.rb:6
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/processing_instruction.rb:6
def initialize(document, name, content); end
class << self
@@ -5388,13 +6152,13 @@ end
# The Reader parser is good for when you need the speed of a SAX parser,
# but do not want to write a Document handler.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/reader.rb:32
+# source://nokogiri-1.15.3/lib/nokogiri/xml/reader.rb:32
class Nokogiri::XML::Reader
include ::Enumerable
# @return [Reader] a new instance of Reader
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/reader.rb:79
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/reader.rb:79
def initialize(source, url = T.unsafe(nil), encoding = T.unsafe(nil)); end
def attribute(_arg0); end
@@ -5410,7 +6174,7 @@ class Nokogiri::XML::Reader
# [Returns]
# (Hash) Attribute names and values, and namespace prefixes and hrefs.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/reader.rb:92
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/reader.rb:92
def attributes; end
def attributes?; end
@@ -5420,7 +6184,7 @@ class Nokogiri::XML::Reader
# Move the cursor through the document yielding the cursor to the block
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/reader.rb:98
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/reader.rb:98
def each; end
def empty_element?; end
@@ -5428,12 +6192,12 @@ class Nokogiri::XML::Reader
# A list of errors encountered while parsing
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/reader.rb:72
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/reader.rb:72
def errors; end
# A list of errors encountered while parsing
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/reader.rb:72
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/reader.rb:72
def errors=(_arg0); end
def inner_xml; end
@@ -5450,7 +6214,7 @@ class Nokogiri::XML::Reader
# The XML source
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/reader.rb:75
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/reader.rb:75
def source; end
def state; end
@@ -5466,90 +6230,90 @@ end
# Attribute node type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/reader.rb:39
+# source://nokogiri-1.15.3/lib/nokogiri/xml/reader.rb:39
Nokogiri::XML::Reader::TYPE_ATTRIBUTE = T.let(T.unsafe(nil), Integer)
# CDATA node type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/reader.rb:43
+# source://nokogiri-1.15.3/lib/nokogiri/xml/reader.rb:43
Nokogiri::XML::Reader::TYPE_CDATA = T.let(T.unsafe(nil), Integer)
# Comment node type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/reader.rb:51
+# source://nokogiri-1.15.3/lib/nokogiri/xml/reader.rb:51
Nokogiri::XML::Reader::TYPE_COMMENT = T.let(T.unsafe(nil), Integer)
# Document node type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/reader.rb:53
+# source://nokogiri-1.15.3/lib/nokogiri/xml/reader.rb:53
Nokogiri::XML::Reader::TYPE_DOCUMENT = T.let(T.unsafe(nil), Integer)
# Document Fragment node type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/reader.rb:57
+# source://nokogiri-1.15.3/lib/nokogiri/xml/reader.rb:57
Nokogiri::XML::Reader::TYPE_DOCUMENT_FRAGMENT = T.let(T.unsafe(nil), Integer)
# Document Type node type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/reader.rb:55
+# source://nokogiri-1.15.3/lib/nokogiri/xml/reader.rb:55
Nokogiri::XML::Reader::TYPE_DOCUMENT_TYPE = T.let(T.unsafe(nil), Integer)
# Element node type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/reader.rb:37
+# source://nokogiri-1.15.3/lib/nokogiri/xml/reader.rb:37
Nokogiri::XML::Reader::TYPE_ELEMENT = T.let(T.unsafe(nil), Integer)
# Element end node type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/reader.rb:65
+# source://nokogiri-1.15.3/lib/nokogiri/xml/reader.rb:65
Nokogiri::XML::Reader::TYPE_END_ELEMENT = T.let(T.unsafe(nil), Integer)
# Entity end node type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/reader.rb:67
+# source://nokogiri-1.15.3/lib/nokogiri/xml/reader.rb:67
Nokogiri::XML::Reader::TYPE_END_ENTITY = T.let(T.unsafe(nil), Integer)
# Entity node type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/reader.rb:47
+# source://nokogiri-1.15.3/lib/nokogiri/xml/reader.rb:47
Nokogiri::XML::Reader::TYPE_ENTITY = T.let(T.unsafe(nil), Integer)
# Entity Reference node type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/reader.rb:45
+# source://nokogiri-1.15.3/lib/nokogiri/xml/reader.rb:45
Nokogiri::XML::Reader::TYPE_ENTITY_REFERENCE = T.let(T.unsafe(nil), Integer)
-# source://nokogiri-1.13.8/lib/nokogiri/xml/reader.rb:35
+# source://nokogiri-1.15.3/lib/nokogiri/xml/reader.rb:35
Nokogiri::XML::Reader::TYPE_NONE = T.let(T.unsafe(nil), Integer)
# Notation node type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/reader.rb:59
+# source://nokogiri-1.15.3/lib/nokogiri/xml/reader.rb:59
Nokogiri::XML::Reader::TYPE_NOTATION = T.let(T.unsafe(nil), Integer)
# PI node type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/reader.rb:49
+# source://nokogiri-1.15.3/lib/nokogiri/xml/reader.rb:49
Nokogiri::XML::Reader::TYPE_PROCESSING_INSTRUCTION = T.let(T.unsafe(nil), Integer)
# Significant Whitespace node type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/reader.rb:63
+# source://nokogiri-1.15.3/lib/nokogiri/xml/reader.rb:63
Nokogiri::XML::Reader::TYPE_SIGNIFICANT_WHITESPACE = T.let(T.unsafe(nil), Integer)
# Text node type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/reader.rb:41
+# source://nokogiri-1.15.3/lib/nokogiri/xml/reader.rb:41
Nokogiri::XML::Reader::TYPE_TEXT = T.let(T.unsafe(nil), Integer)
# Whitespace node type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/reader.rb:61
+# source://nokogiri-1.15.3/lib/nokogiri/xml/reader.rb:61
Nokogiri::XML::Reader::TYPE_WHITESPACE = T.let(T.unsafe(nil), Integer)
# XML Declaration node type
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/reader.rb:69
+# source://nokogiri-1.15.3/lib/nokogiri/xml/reader.rb:69
Nokogiri::XML::Reader::TYPE_XML_DECLARATION = T.let(T.unsafe(nil), Integer)
# Nokogiri::XML::RelaxNG is used for validating XML against a
@@ -5573,7 +6337,7 @@ Nokogiri::XML::Reader::TYPE_XML_DECLARATION = T.let(T.unsafe(nil), Integer)
# underlying parsing libraries to access network resources. This is counter to Nokogiri's
# "untrusted by default" security policy, but is a limitation of the underlying libraries.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/relax_ng.rb:35
+# source://nokogiri-1.15.3/lib/nokogiri/xml/relax_ng.rb:35
class Nokogiri::XML::RelaxNG < ::Nokogiri::XML::Schema
private
@@ -5625,7 +6389,7 @@ end
# deal with reading your XML, use the Nokogiri::XML::SAX::Parser. If you want to have fine grain
# control over the XML input, use the Nokogiri::XML::SAX::PushParser.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/sax/document.rb:45
+# source://nokogiri-1.15.3/lib/nokogiri/xml/sax/document.rb:45
module Nokogiri::XML::SAX; end
# This class is used for registering types of events you are interested in handling. All of
@@ -5648,12 +6412,12 @@ module Nokogiri::XML::SAX; end
# You can use this event handler for any SAX style parser included with Nokogiri. See
# Nokogiri::XML::SAX, and Nokogiri::HTML4::SAX.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/sax/document.rb:66
+# source://nokogiri-1.15.3/lib/nokogiri/xml/sax/document.rb:66
class Nokogiri::XML::SAX::Document
# Called when cdata blocks are found
# +string+ contains the cdata content
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/document.rb:155
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/document.rb:155
def cdata_block(string); end
# Characters read between a tag. This method might be called multiple
@@ -5661,24 +6425,24 @@ class Nokogiri::XML::SAX::Document
#
# +string+ contains the character data
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/document.rb:131
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/document.rb:131
def characters(string); end
# Called when comments are encountered
# +string+ contains the comment data
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/document.rb:137
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/document.rb:137
def comment(string); end
# Called when document ends parsing
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/document.rb:79
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/document.rb:79
def end_document; end
# Called at the end of an element
# +name+ is the tag name
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/document.rb:93
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/document.rb:93
def end_element(name); end
# Called at the end of an element
@@ -5686,25 +6450,25 @@ class Nokogiri::XML::SAX::Document
# +prefix+ is the namespace prefix associated with the element
# +uri+ is the associated namespace URI
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/document.rb:120
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/document.rb:120
def end_element_namespace(name, prefix = T.unsafe(nil), uri = T.unsafe(nil)); end
# Called on document errors
# +string+ contains the error
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/document.rb:149
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/document.rb:149
def error(string); end
# Called when processing instructions are found
# +name+ is the target of the instruction
# +content+ is the value of the instruction
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/document.rb:162
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/document.rb:162
def processing_instruction(name, content); end
# Called when document starts parsing
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/document.rb:74
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/document.rb:74
def start_document; end
# Called at the beginning of an element
@@ -5712,7 +6476,7 @@ class Nokogiri::XML::SAX::Document
# * +attrs+ are an assoc list of namespaces and attributes, e.g.:
# [ ["xmlns:foo", "http://sample.net"], ["size", "large"] ]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/document.rb:87
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/document.rb:87
def start_element(name, attrs = T.unsafe(nil)); end
# Called at the beginning of an element
@@ -5722,18 +6486,18 @@ class Nokogiri::XML::SAX::Document
# +uri+ is the associated namespace URI
# +ns+ is a hash of namespace prefix:urls associated with the element
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/document.rb:103
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/document.rb:103
def start_element_namespace(name, attrs = T.unsafe(nil), prefix = T.unsafe(nil), uri = T.unsafe(nil), ns = T.unsafe(nil)); end
# Called on document warnings
# +string+ contains the warning
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/document.rb:143
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/document.rb:143
def warning(string); end
# Called when an XML declaration is parsed
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/document.rb:69
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/document.rb:69
def xmldecl(version, encoding, standalone); end
end
@@ -5765,39 +6529,39 @@ end
# For more information about SAX parsers, see Nokogiri::XML::SAX. Also
# see Nokogiri::XML::SAX::Document for the available events.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/sax/parser.rb:34
+# source://nokogiri-1.15.3/lib/nokogiri/xml/sax/parser.rb:34
class Nokogiri::XML::SAX::Parser
# Create a new Parser with +doc+ and +encoding+
#
# @return [Parser] a new instance of Parser
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/parser.rb:72
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/parser.rb:72
def initialize(doc = T.unsafe(nil), encoding = T.unsafe(nil)); end
# The Nokogiri::XML::SAX::Document where events will be sent.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/parser.rb:66
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/parser.rb:66
def document; end
# The Nokogiri::XML::SAX::Document where events will be sent.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/parser.rb:66
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/parser.rb:66
def document=(_arg0); end
# The encoding beings used for this document.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/parser.rb:69
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/parser.rb:69
def encoding; end
# The encoding beings used for this document.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/parser.rb:69
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/parser.rb:69
def encoding=(_arg0); end
# Parse given +thing+ which may be a string containing xml, or an
# IO object.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/parser.rb:81
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/parser.rb:81
def parse(thing, &block); end
# Parse a file with +filename+
@@ -5805,40 +6569,40 @@ class Nokogiri::XML::SAX::Parser
# @raise [ArgumentError]
# @yield [ctx]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/parser.rb:100
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/parser.rb:99
def parse_file(filename); end
# Parse given +io+
#
# @yield [ctx]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/parser.rb:91
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/parser.rb:91
def parse_io(io, encoding = T.unsafe(nil)); end
# @yield [ctx]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/parser.rb:110
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/parser.rb:109
def parse_memory(data); end
private
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/parser.rb:118
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/parser.rb:117
def check_encoding(encoding); end
end
-# source://nokogiri-1.13.8/lib/nokogiri/xml/sax/parser.rb:35
+# source://nokogiri-1.15.3/lib/nokogiri/xml/sax/parser.rb:35
class Nokogiri::XML::SAX::Parser::Attribute < ::Struct; end
# Encodinds this parser supports
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/sax/parser.rb:39
+# source://nokogiri-1.15.3/lib/nokogiri/xml/sax/parser.rb:39
Nokogiri::XML::SAX::Parser::ENCODINGS = T.let(T.unsafe(nil), Hash)
# Context for XML SAX parsers. This class is usually not instantiated
# by the user. Instead, you should be looking at
# Nokogiri::XML::SAX::Parser
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/sax/parser_context.rb:10
+# source://nokogiri-1.15.3/lib/nokogiri/xml/sax/parser_context.rb:10
class Nokogiri::XML::SAX::ParserContext
def column; end
def line; end
@@ -5853,7 +6617,7 @@ class Nokogiri::XML::SAX::ParserContext
def io(_arg0, _arg1); end
def memory(_arg0); end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/parser_context.rb:11
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/parser_context.rb:11
def new(thing, encoding = T.unsafe(nil)); end
end
end
@@ -5879,38 +6643,38 @@ end
# parser << "/div>"
# parser.finish
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/sax/push_parser.rb:27
+# source://nokogiri-1.15.3/lib/nokogiri/xml/sax/push_parser.rb:27
class Nokogiri::XML::SAX::PushParser
# Create a new PushParser with +doc+ as the SAX Document, providing
# an optional +file_name+ and +encoding+
#
# @return [PushParser] a new instance of PushParser
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/push_parser.rb:35
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/push_parser.rb:35
def initialize(doc = T.unsafe(nil), file_name = T.unsafe(nil), encoding = T.unsafe(nil)); end
# Write a +chunk+ of XML to the PushParser. Any callback methods
# that can be called will be called immediately.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/push_parser.rb:47
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/push_parser.rb:47
def <<(chunk, last_chunk = T.unsafe(nil)); end
# The Nokogiri::XML::SAX::Document on which the PushParser will be
# operating
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/push_parser.rb:30
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/push_parser.rb:30
def document; end
# The Nokogiri::XML::SAX::Document on which the PushParser will be
# operating
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/push_parser.rb:30
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/push_parser.rb:30
def document=(_arg0); end
# Finish the parsing. This method is only necessary for
# Nokogiri::XML::SAX::Document#end_document to be called.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/push_parser.rb:55
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/push_parser.rb:55
def finish; end
def options; end
@@ -5921,7 +6685,7 @@ class Nokogiri::XML::SAX::PushParser
# Write a +chunk+ of XML to the PushParser. Any callback methods
# that can be called will be called immediately.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/sax/push_parser.rb:47
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/sax/push_parser.rb:47
def write(chunk, last_chunk = T.unsafe(nil)); end
private
@@ -5953,26 +6717,26 @@ end
# security policy. If a document is trusted, then the caller may turn off the NONET option via
# the ParseOptions to re-enable external entity resolution over a network connection.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/schema.rb:37
+# source://nokogiri-1.15.3/lib/nokogiri/xml/schema.rb:37
class Nokogiri::XML::Schema
# Errors while parsing the schema file
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/schema.rb:39
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/schema.rb:39
def errors; end
# Errors while parsing the schema file
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/schema.rb:39
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/schema.rb:39
def errors=(_arg0); end
# The Nokogiri::XML::ParseOptions used to parse the schema
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/schema.rb:41
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/schema.rb:41
def parse_options; end
# The Nokogiri::XML::ParseOptions used to parse the schema
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/schema.rb:41
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/schema.rb:41
def parse_options=(_arg0); end
# Returns true if +thing+ is a valid Nokogiri::XML::Document or
@@ -5980,7 +6744,7 @@ class Nokogiri::XML::Schema
#
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/schema.rb:68
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/schema.rb:68
def valid?(thing); end
# Validate +thing+ against this schema. +thing+ can be a
@@ -5988,7 +6752,7 @@ class Nokogiri::XML::Schema
# Nokogiri::XML::SyntaxError objects found while validating the
# +thing+ is returned.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/schema.rb:55
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/schema.rb:55
def validate(thing); end
private
@@ -6002,7 +6766,7 @@ class Nokogiri::XML::Schema
# Create a new Nokogiri::XML::Schema object using a +string_or_io+
# object.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/schema.rb:46
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/schema.rb:46
def new(string_or_io, options = T.unsafe(nil)); end
def read_memory(*_arg0); end
@@ -6015,7 +6779,7 @@ end
# as well as allowing specific implementations to specialize some
# of the important behaviors.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/searchable.rb:13
+# source://nokogiri-1.15.3/lib/nokogiri/xml/searchable.rb:13
module Nokogiri::XML::Searchable
# call-seq:
# at(*paths, [namespace-bindings, xpath-variable-bindings, custom-handler-class])
@@ -6025,7 +6789,7 @@ module Nokogiri::XML::Searchable
#
# See Searchable#search for more information.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/searchable.rb:71
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/searchable.rb:74
def %(*args); end
# call-seq:
@@ -6046,20 +6810,23 @@ module Nokogiri::XML::Searchable
# node.search('.//address[@domestic=$value]', nil, {:value => 'Yes'})
#
# π‘ Custom XPath functions and CSS pseudo-selectors may also be defined. To define custom
- # functions create a class and implement the function you want to define. The first argument
- # to the method will be the current matching NodeSet. Any other arguments are ones that you
- # pass in. Note that this class may appear anywhere in the argument list. For example:
+ # functions create a class and implement the function you want to define, which will be in the
+ # `nokogiri` namespace in XPath queries.
+ #
+ # The first argument to the method will be the current matching NodeSet. Any other arguments
+ # are ones that you pass in. Note that this class may appear anywhere in the argument
+ # list. For example:
#
# handler = Class.new {
# def regex node_set, regex
# node_set.find_all { |node| node['some_attribute'] =~ /#{regex}/ }
# end
# }.new
- # node.search('.//title[regex(., "\w+")]', 'div.employee:regex("[0-9]+")', handler)
+ # node.search('.//title[nokogiri:regex(., "\w+")]', 'div.employee:regex("[0-9]+")', handler)
#
# See Searchable#xpath and Searchable#css for further usage help.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/searchable.rb:51
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/searchable.rb:54
def /(*args); end
# :call-seq:
@@ -6067,7 +6834,7 @@ module Nokogiri::XML::Searchable
#
# Search this node's immediate children using CSS selector +selector+
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/searchable.rb:196
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/searchable.rb:201
def >(selector); end
# call-seq:
@@ -6078,7 +6845,7 @@ module Nokogiri::XML::Searchable
#
# See Searchable#search for more information.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/searchable.rb:71
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/searchable.rb:74
def at(*args); end
# call-seq:
@@ -6089,7 +6856,7 @@ module Nokogiri::XML::Searchable
#
# See Searchable#css for more information.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/searchable.rb:140
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/searchable.rb:143
def at_css(*args); end
# call-seq:
@@ -6100,7 +6867,7 @@ module Nokogiri::XML::Searchable
#
# See Searchable#xpath for more information.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/searchable.rb:188
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/searchable.rb:193
def at_xpath(*args); end
# call-seq:
@@ -6152,7 +6919,7 @@ module Nokogiri::XML::Searchable
# you'll never find anything. However, "H1" might be found in an XML document, where tags
# names are case-sensitive (e.g., "H1" is distinct from "h1").
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/searchable.rb:126
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/searchable.rb:129
def css(*args); end
# call-seq:
@@ -6173,20 +6940,23 @@ module Nokogiri::XML::Searchable
# node.search('.//address[@domestic=$value]', nil, {:value => 'Yes'})
#
# π‘ Custom XPath functions and CSS pseudo-selectors may also be defined. To define custom
- # functions create a class and implement the function you want to define. The first argument
- # to the method will be the current matching NodeSet. Any other arguments are ones that you
- # pass in. Note that this class may appear anywhere in the argument list. For example:
+ # functions create a class and implement the function you want to define, which will be in the
+ # `nokogiri` namespace in XPath queries.
+ #
+ # The first argument to the method will be the current matching NodeSet. Any other arguments
+ # are ones that you pass in. Note that this class may appear anywhere in the argument
+ # list. For example:
#
# handler = Class.new {
# def regex node_set, regex
# node_set.find_all { |node| node['some_attribute'] =~ /#{regex}/ }
# end
# }.new
- # node.search('.//title[regex(., "\w+")]', 'div.employee:regex("[0-9]+")', handler)
+ # node.search('.//title[nokogiri:regex(., "\w+")]', 'div.employee:regex("[0-9]+")', handler)
#
# See Searchable#xpath and Searchable#css for further usage help.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/searchable.rb:51
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/searchable.rb:54
def search(*args); end
# call-seq:
@@ -6207,150 +6977,152 @@ module Nokogiri::XML::Searchable
# node.xpath('.//address[@domestic=$value]', nil, {:value => 'Yes'})
#
# π‘ Custom XPath functions may also be defined. To define custom functions create a class and
- # implement the function you want to define. The first argument to the method will be the
- # current matching NodeSet. Any other arguments are ones that you pass in. Note that this
- # class may appear anywhere in the argument list. For example:
+ # implement the function you want to define, which will be in the `nokogiri` namespace.
+ #
+ # The first argument to the method will be the current matching NodeSet. Any other arguments
+ # are ones that you pass in. Note that this class may appear anywhere in the argument
+ # list. For example:
#
# handler = Class.new {
# def regex(node_set, regex)
# node_set.find_all { |node| node['some_attribute'] =~ /#{regex}/ }
# end
# }.new
- # node.xpath('.//title[regex(., "\w+")]', handler)
+ # node.xpath('.//title[nokogiri:regex(., "\w+")]', handler)
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/searchable.rb:174
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/searchable.rb:179
def xpath(*args); end
private
- # source://nokogiri-1.13.8/lib/nokogiri/xml/searchable.rb:205
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/searchable.rb:210
def css_internal(node, rules, handler, ns); end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/searchable.rb:236
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/searchable.rb:241
def css_rules_to_xpath(rules, ns); end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/searchable.rb:251
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/searchable.rb:259
def extract_params(params); end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/searchable.rb:224
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/searchable.rb:229
def xpath_impl(node, path, handler, ns, binds); end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/searchable.rb:209
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/searchable.rb:214
def xpath_internal(node, paths, handler, ns, binds); end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/searchable.rb:240
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/searchable.rb:245
def xpath_query_from_css_rule(rule, ns); end
end
# Regular expression used by Searchable#search to determine if a query
# string is CSS or XPath
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/searchable.rb:16
+# source://nokogiri-1.15.3/lib/nokogiri/xml/searchable.rb:16
Nokogiri::XML::Searchable::LOOKS_LIKE_XPATH = T.let(T.unsafe(nil), Regexp)
# This class provides information about XML SyntaxErrors. These
# exceptions are typically stored on Nokogiri::XML::Document#errors.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/syntax_error.rb:8
+# source://nokogiri-1.15.3/lib/nokogiri/xml/syntax_error.rb:8
class Nokogiri::XML::SyntaxError < ::Nokogiri::SyntaxError
# Returns the value of attribute code.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/syntax_error.rb:10
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/syntax_error.rb:10
def code; end
# Returns the value of attribute column.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/syntax_error.rb:18
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/syntax_error.rb:18
def column; end
# Returns the value of attribute domain.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/syntax_error.rb:9
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/syntax_error.rb:9
def domain; end
# return true if this is an error
#
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/syntax_error.rb:34
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/syntax_error.rb:34
def error?; end
# return true if this error is fatal
#
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/syntax_error.rb:40
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/syntax_error.rb:40
def fatal?; end
# Returns the value of attribute file.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/syntax_error.rb:12
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/syntax_error.rb:12
def file; end
# Returns the value of attribute int1.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/syntax_error.rb:17
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/syntax_error.rb:17
def int1; end
# Returns the value of attribute level.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/syntax_error.rb:11
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/syntax_error.rb:11
def level; end
# Returns the value of attribute line.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/syntax_error.rb:13
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/syntax_error.rb:13
def line; end
# return true if this is a non error
#
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/syntax_error.rb:22
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/syntax_error.rb:22
def none?; end
# Returns the value of attribute str1.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/syntax_error.rb:14
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/syntax_error.rb:14
def str1; end
# Returns the value of attribute str2.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/syntax_error.rb:15
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/syntax_error.rb:15
def str2; end
# Returns the value of attribute str3.
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/syntax_error.rb:16
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/syntax_error.rb:16
def str3; end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/syntax_error.rb:44
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/syntax_error.rb:44
def to_s; end
# return true if this is a warning
#
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/syntax_error.rb:28
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/syntax_error.rb:28
def warning?; end
private
- # source://nokogiri-1.13.8/lib/nokogiri/xml/syntax_error.rb:53
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/syntax_error.rb:53
def level_to_s; end
- # source://nokogiri-1.13.8/lib/nokogiri/xml/syntax_error.rb:65
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/syntax_error.rb:65
def location_to_s; end
# @return [Boolean]
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/syntax_error.rb:61
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/syntax_error.rb:61
def nil_or_zero?(attribute); end
end
-# source://nokogiri-1.13.8/lib/nokogiri/xml/text.rb:5
+# source://nokogiri-1.15.3/lib/nokogiri/xml/text.rb:5
class Nokogiri::XML::Text < ::Nokogiri::XML::CharacterData
- # source://nokogiri-1.13.8/lib/nokogiri/xml/text.rb:6
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/text.rb:6
def content=(string); end
class << self
@@ -6360,55 +7132,55 @@ end
# Original C14N 1.0 spec canonicalization
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml.rb:14
+# source://nokogiri-1.15.3/lib/nokogiri/xml.rb:14
Nokogiri::XML::XML_C14N_1_0 = T.let(T.unsafe(nil), Integer)
# C14N 1.1 spec canonicalization
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml.rb:18
+# source://nokogiri-1.15.3/lib/nokogiri/xml.rb:18
Nokogiri::XML::XML_C14N_1_1 = T.let(T.unsafe(nil), Integer)
# Exclusive C14N 1.0 spec canonicalization
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml.rb:16
+# source://nokogiri-1.15.3/lib/nokogiri/xml.rb:16
Nokogiri::XML::XML_C14N_EXCLUSIVE_1_0 = T.let(T.unsafe(nil), Integer)
-# source://nokogiri-1.13.8/lib/nokogiri/xml/xpath.rb:5
+# source://nokogiri-1.15.3/lib/nokogiri/xml/xpath.rb:5
module Nokogiri::XML::XPath; end
# The XPath search prefix to search direct descendants of the current element, +./+
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/xpath.rb:13
+# source://nokogiri-1.15.3/lib/nokogiri/xml/xpath.rb:13
Nokogiri::XML::XPath::CURRENT_SEARCH_PREFIX = T.let(T.unsafe(nil), String)
# The XPath search prefix to search globally, +//+
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/xpath.rb:7
+# source://nokogiri-1.15.3/lib/nokogiri/xml/xpath.rb:7
Nokogiri::XML::XPath::GLOBAL_SEARCH_PREFIX = T.let(T.unsafe(nil), String)
# The XPath search prefix to search direct descendants of the root element, +/+
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/xpath.rb:10
+# source://nokogiri-1.15.3/lib/nokogiri/xml/xpath.rb:10
Nokogiri::XML::XPath::ROOT_SEARCH_PREFIX = T.let(T.unsafe(nil), String)
# The XPath search prefix to search anywhere in the current element's subtree, +.//+
#
-# source://nokogiri-1.13.8/lib/nokogiri/xml/xpath.rb:16
+# source://nokogiri-1.15.3/lib/nokogiri/xml/xpath.rb:16
Nokogiri::XML::XPath::SUBTREE_SEARCH_PREFIX = T.let(T.unsafe(nil), String)
-# source://nokogiri-1.13.8/lib/nokogiri/xml/xpath/syntax_error.rb:6
+# source://nokogiri-1.15.3/lib/nokogiri/xml/xpath/syntax_error.rb:6
class Nokogiri::XML::XPath::SyntaxError < ::Nokogiri::XML::SyntaxError
- # source://nokogiri-1.13.8/lib/nokogiri/xml/xpath/syntax_error.rb:7
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/xpath/syntax_error.rb:7
def to_s; end
end
-# source://nokogiri-1.13.8/lib/nokogiri/xml/xpath_context.rb:5
+# source://nokogiri-1.15.3/lib/nokogiri/xml/xpath_context.rb:5
class Nokogiri::XML::XPathContext
def evaluate(*_arg0); end
# Register namespaces in +namespaces+
#
- # source://nokogiri-1.13.8/lib/nokogiri/xml/xpath_context.rb:8
+ # source://nokogiri-1.15.3/lib/nokogiri/xml/xpath_context.rb:8
def register_namespaces(namespaces); end
def register_ns(_arg0, _arg1); end
@@ -6422,12 +7194,63 @@ end
# See Nokogiri::XSLT::Stylesheet for creating and manipulating
# Stylesheet object.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xslt.rb:21
+# source://nokogiri-1.15.3/lib/nokogiri/xslt.rb:21
module Nokogiri::XSLT
class << self
- # Parse the stylesheet in +string+, register any +modules+
+ # :call-seq:
+ # parse(xsl) β Nokogiri::XSLT::Stylesheet
+ # parse(xsl, modules) β Nokogiri::XSLT::Stylesheet
+ #
+ # Parse the stylesheet in +xsl+, registering optional +modules+ as custom class handlers.
+ #
+ # [Parameters]
+ # - +xsl+ (String) XSL content to be parsed into a stylesheet
+ # - +modules+ (Hash) A hash of URI-to-handler relations for linking a
+ # namespace to a custom function handler.
+ #
+ # β The XSLT handler classes are registered *globally*.
+ #
+ # Also see Nokogiri::XSLT.register
+ #
+ # *Example*
+ #
+ # xml = Nokogiri.XML(<<~XML)
+ #
+ # Foo
+ # Bar
+ #
+ # XML
+ #
+ # handler = Class.new do
+ # def reverse(node)
+ # node.text.reverse
+ # end
+ # end
+ #
+ # xsl = <<~XSL
+ #
+ #
+ #
+ #
+ #
+ #
+ #
+ #
+ #
+ # XSL
+ #
+ # xsl = Nokogiri.XSLT(xsl, "http://nokogiri.org/xslt/myfuncs" => handler)
+ # xsl.transform(xml).to_xml
+ # # => "\n" +
+ # # "\n" +
+ # # " ooF\n" +
+ # # " raB\n" +
+ # # "\n"
#
- # source://nokogiri-1.13.8/lib/nokogiri/xslt.rb:25
+ # source://nokogiri-1.15.3/lib/nokogiri/xslt.rb:76
def parse(string, modules = T.unsafe(nil)); end
# :call-seq:
@@ -6441,7 +7264,7 @@ module Nokogiri::XSLT
#
# [Returns] Array of string parameters, with quotes correctly escaped for use with XSLT::Stylesheet.transform
#
- # source://nokogiri-1.13.8/lib/nokogiri/xslt.rb:49
+ # source://nokogiri-1.15.3/lib/nokogiri/xslt.rb:100
def quote_params(params); end
def register(_arg0, _arg1); end
@@ -6460,13 +7283,13 @@ end
# See Nokogiri::XSLT::Stylesheet#transform for more transformation
# information.
#
-# source://nokogiri-1.13.8/lib/nokogiri/xslt/stylesheet.rb:17
+# source://nokogiri-1.15.3/lib/nokogiri/xslt/stylesheet.rb:17
class Nokogiri::XSLT::Stylesheet
# Apply an XSLT stylesheet to an XML::Document.
# +params+ is an array of strings used as XSLT parameters.
# returns serialized document
#
- # source://nokogiri-1.13.8/lib/nokogiri/xslt/stylesheet.rb:22
+ # source://nokogiri-1.15.3/lib/nokogiri/xslt/stylesheet.rb:22
def apply_to(document, params = T.unsafe(nil)); end
def serialize(_arg0); end
diff --git a/sorbet/rbi/gems/prism@0.24.0.rbi b/sorbet/rbi/gems/prism@0.24.0.rbi
new file mode 100644
index 000000000..0aa3a53c6
--- /dev/null
+++ b/sorbet/rbi/gems/prism@0.24.0.rbi
@@ -0,0 +1,29982 @@
+# typed: true
+
+# DO NOT EDIT MANUALLY
+# This is an autogenerated file for types exported from the `prism` gem.
+# Please instead update this file by running `bin/tapioca gem prism`.
+
+# The Prism Ruby parser.
+#
+# "Parsing Ruby is suddenly manageable!"
+# - You, hopefully
+#
+# source://prism-0.24.0/lib/prism.rb:8
+module Prism
+ class << self
+ # Mirror the Prism.dump API by using the serialization API.
+ def dump(*_arg0); end
+
+ # Mirror the Prism.dump_file API by using the serialization API.
+ def dump_file(*_arg0); end
+
+ # Mirror the Prism.lex API by using the serialization API.
+ def lex(*_arg0); end
+
+ # :call-seq:
+ # Prism::lex_compat(source, **options) -> ParseResult
+ #
+ # Returns a parse result whose value is an array of tokens that closely
+ # resembles the return value of Ripper::lex. The main difference is that the
+ # `:on_sp` token is not emitted.
+ #
+ # For supported options, see Prism::parse.
+ #
+ # source://prism-0.24.0/lib/prism.rb:46
+ def lex_compat(source, **options); end
+
+ # Mirror the Prism.lex_file API by using the serialization API.
+ def lex_file(*_arg0); end
+
+ # :call-seq:
+ # Prism::lex_ripper(source) -> Array
+ #
+ # This lexes with the Ripper lex. It drops any space events but otherwise
+ # returns the same tokens. Raises SyntaxError if the syntax in source is
+ # invalid.
+ #
+ # source://prism-0.24.0/lib/prism.rb:56
+ def lex_ripper(source); end
+
+ # :call-seq:
+ # Prism::load(source, serialized) -> ParseResult
+ #
+ # Load the serialized AST using the source as a reference into a tree.
+ #
+ # source://prism-0.24.0/lib/prism.rb:64
+ def load(source, serialized); end
+
+ # Mirror the Prism.parse API by using the serialization API.
+ def parse(*_arg0); end
+
+ # Mirror the Prism.parse_comments API by using the serialization API.
+ def parse_comments(*_arg0); end
+
+ # :call-seq:
+ # Prism::parse_failure?(source, **options) -> bool
+ #
+ # Returns true if the source parses with errors.
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism.rb:72
+ def parse_failure?(source, **options); end
+
+ # Mirror the Prism.parse_file API by using the serialization API. This uses
+ # native strings instead of Ruby strings because it allows us to use mmap when
+ # it is available.
+ def parse_file(*_arg0); end
+
+ # Mirror the Prism.parse_file_comments API by using the serialization
+ # API. This uses native strings instead of Ruby strings because it allows us
+ # to use mmap when it is available.
+ def parse_file_comments(*_arg0); end
+
+ # :call-seq:
+ # Prism::parse_file_failure?(filepath, **options) -> bool
+ #
+ # Returns true if the file at filepath parses with errors.
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism.rb:80
+ def parse_file_failure?(filepath, **options); end
+
+ # Mirror the Prism.parse_file_success? API by using the serialization API.
+ #
+ # @return [Boolean]
+ def parse_file_success?(*_arg0); end
+
+ # Mirror the Prism.parse_lex API by using the serialization API.
+ def parse_lex(*_arg0); end
+
+ # Mirror the Prism.parse_lex_file API by using the serialization API.
+ def parse_lex_file(*_arg0); end
+
+ # Mirror the Prism.parse_success? API by using the serialization API.
+ #
+ # @return [Boolean]
+ def parse_success?(*_arg0); end
+ end
+end
+
+# Represents the use of the `alias` keyword to alias a global variable.
+#
+# alias $foo $bar
+# ^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:97
+class Prism::AliasGlobalVariableNode < ::Prism::Node
+ # def initialize: (Node new_name, Node old_name, Location keyword_loc, Location location) -> void
+ #
+ # @return [AliasGlobalVariableNode] a new instance of AliasGlobalVariableNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:99
+ def initialize(source, new_name, old_name, keyword_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:109
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:114
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:124
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:119
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> AliasGlobalVariableNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:129
+ sig { params(params: T.untyped).returns(Prism::AliasGlobalVariableNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:114
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:143
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:166
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:161
+ sig { returns(String) }
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:154
+ sig { returns(Prism::Location) }
+ def keyword_loc; end
+
+ # attr_reader new_name: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:148
+ sig { returns(Prism::Node) }
+ def new_name; end
+
+ # attr_reader old_name: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:151
+ sig { returns(Prism::Node) }
+ def old_name; 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-0.24.0/lib/prism/node.rb:190
+ def type; 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-0.24.0/lib/prism/node.rb:200
+ def type; end
+ end
+end
+
+# Represents the use of the `alias` keyword to alias a method.
+#
+# alias foo bar
+# ^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:209
+class Prism::AliasMethodNode < ::Prism::Node
+ # def initialize: (Node new_name, Node old_name, Location keyword_loc, Location location) -> void
+ #
+ # @return [AliasMethodNode] a new instance of AliasMethodNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:211
+ def initialize(source, new_name, old_name, keyword_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:221
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:226
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:236
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:231
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> AliasMethodNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:241
+ sig { params(params: T.untyped).returns(Prism::AliasMethodNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:226
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:255
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:278
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:273
+ sig { returns(String) }
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:266
+ sig { returns(Prism::Location) }
+ def keyword_loc; end
+
+ # attr_reader new_name: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:260
+ sig { returns(Prism::Node) }
+ def new_name; end
+
+ # attr_reader old_name: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:263
+ sig { returns(Prism::Node) }
+ def old_name; 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-0.24.0/lib/prism/node.rb:302
+ def type; 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-0.24.0/lib/prism/node.rb:312
+ def type; end
+ end
+end
+
+# Represents an alternation pattern in pattern matching.
+#
+# foo => bar | baz
+# ^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:321
+class Prism::AlternationPatternNode < ::Prism::Node
+ # def initialize: (Node left, Node right, Location operator_loc, Location location) -> void
+ #
+ # @return [AlternationPatternNode] a new instance of AlternationPatternNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:323
+ def initialize(source, left, right, operator_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:333
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:338
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:348
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:343
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> AlternationPatternNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:353
+ sig { params(params: T.untyped).returns(Prism::AlternationPatternNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:338
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:367
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:390
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader left: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:372
+ sig { returns(Prism::Node) }
+ def left; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:385
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:378
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # attr_reader right: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:375
+ sig { returns(Prism::Node) }
+ def right; 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-0.24.0/lib/prism/node.rb:414
+ def type; 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-0.24.0/lib/prism/node.rb:424
+ def type; end
+ end
+end
+
+# Represents the use of the `&&` operator or the `and` keyword.
+#
+# left and right
+# ^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:433
+class Prism::AndNode < ::Prism::Node
+ # def initialize: (Node left, Node right, Location operator_loc, Location location) -> void
+ #
+ # @return [AndNode] a new instance of AndNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:435
+ def initialize(source, left, right, operator_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:445
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:450
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:460
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:455
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> AndNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:465
+ sig { params(params: T.untyped).returns(Prism::AndNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:450
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:479
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:517
+ 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).
+ #
+ # left and right
+ # ^^^^
+ #
+ # 1 && 2
+ # ^
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:490
+ sig { returns(Prism::Node) }
+ def left; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:512
+ sig { returns(String) }
+ def operator; end
+
+ # The location of the `and` keyword or the `&&` operator.
+ #
+ # left and right
+ # ^^^
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:505
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # Represents the right side of the expression. It can be any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
+ #
+ # left && right
+ # ^^^^^
+ #
+ # 1 and 2
+ # ^
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:499
+ sig { returns(Prism::Node) }
+ def right; 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-0.24.0/lib/prism/node.rb:541
+ def type; 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-0.24.0/lib/prism/node.rb:551
+ def type; end
+ end
+end
+
+# Represents a set of arguments to a method or a keyword.
+#
+# return foo, bar, baz
+# ^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:560
+class Prism::ArgumentsNode < ::Prism::Node
+ # def initialize: (Integer flags, Array[Node] arguments, Location location) -> void
+ #
+ # @return [ArgumentsNode] a new instance of ArgumentsNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:562
+ def initialize(source, flags, arguments, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:571
+ def accept(visitor); end
+
+ # attr_reader arguments: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:613
+ sig { returns(T::Array[Prism::Node]) }
+ def arguments; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:576
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:586
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:581
+ def compact_child_nodes; end
+
+ # def contains_keyword_splat?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:617
+ sig { returns(T::Boolean) }
+ def contains_keyword_splat?; end
+
+ # def copy: (**params) -> ArgumentsNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:591
+ sig { params(params: T.untyped).returns(Prism::ArgumentsNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:576
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, arguments: Array[Node], location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:604
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:622
+ def inspect(inspector = T.unsafe(nil)); 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-0.24.0/lib/prism/node.rb:644
+ def type; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:609
+ 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-0.24.0/lib/prism/node.rb:654
+ def type; end
+ end
+end
+
+# Flags for arguments nodes.
+#
+# source://prism-0.24.0/lib/prism/node.rb:19241
+module Prism::ArgumentsNodeFlags; end
+
+# if arguments contain keyword splat
+#
+# source://prism-0.24.0/lib/prism/node.rb:19243
+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.
+#
+# [1, 2, 3]
+# ^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:663
+class Prism::ArrayNode < ::Prism::Node
+ # def initialize: (Integer flags, Array[Node] elements, Location? opening_loc, Location? closing_loc, Location location) -> void
+ #
+ # @return [ArrayNode] a new instance of ArrayNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:665
+ def initialize(source, flags, elements, opening_loc, closing_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:676
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:681
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:758
+ sig { returns(T.nilable(String)) }
+ def closing; end
+
+ # attr_reader closing_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:735
+ sig { returns(T.nilable(Prism::Location)) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:691
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:686
+ def compact_child_nodes; end
+
+ # def contains_splat?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:748
+ sig { returns(T::Boolean) }
+ def contains_splat?; end
+
+ # def copy: (**params) -> ArrayNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:696
+ sig { params(params: T.untyped).returns(Prism::ArrayNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:681
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:711
+ def deconstruct_keys(keys); end
+
+ # attr_reader elements: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:720
+ sig { returns(T::Array[Prism::Node]) }
+ def elements; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:763
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def opening: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:753
+ sig { returns(T.nilable(String)) }
+ def opening; end
+
+ # attr_reader opening_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:723
+ sig { returns(T.nilable(Prism::Location)) }
+ def opening_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
+ # 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-0.24.0/lib/prism/node.rb:787
+ def type; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:716
+ 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-0.24.0/lib/prism/node.rb:797
+ def type; end
+ end
+end
+
+# Flags for array nodes.
+#
+# source://prism-0.24.0/lib/prism/node.rb:19247
+module Prism::ArrayNodeFlags; end
+
+# if array contains splat nodes
+#
+# source://prism-0.24.0/lib/prism/node.rb:19249
+Prism::ArrayNodeFlags::CONTAINS_SPLAT = T.let(T.unsafe(nil), Integer)
+
+# Represents an array pattern in pattern matching.
+#
+# foo in 1, 2
+# ^^^^^^^^^^^
+#
+# foo in [1, 2]
+# ^^^^^^^^^^^^^
+#
+# foo in *1
+# ^^^^^^^^^
+#
+# foo in Bar[]
+# ^^^^^^^^^^^^
+#
+# foo in Bar[1, 2, 3]
+# ^^^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:818
+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
+ #
+ # @return [ArrayPatternNode] a new instance of ArrayPatternNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:820
+ def initialize(source, constant, requireds, rest, posts, opening_loc, closing_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:833
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:838
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:922
+ sig { returns(T.nilable(String)) }
+ def closing; end
+
+ # attr_reader closing_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:904
+ sig { returns(T.nilable(Prism::Location)) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:853
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:843
+ def compact_child_nodes; end
+
+ # attr_reader constant: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:880
+ sig { returns(T.nilable(Prism::Node)) }
+ def constant; end
+
+ # def copy: (**params) -> ArrayPatternNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:858
+ sig { params(params: T.untyped).returns(Prism::ArrayPatternNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:838
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:875
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:927
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def opening: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:917
+ sig { returns(T.nilable(String)) }
+ def opening; end
+
+ # attr_reader opening_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:892
+ sig { returns(T.nilable(Prism::Location)) }
+ def opening_loc; end
+
+ # attr_reader posts: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:889
+ sig { returns(T::Array[Prism::Node]) }
+ def posts; end
+
+ # attr_reader requireds: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:883
+ sig { returns(T::Array[Prism::Node]) }
+ def requireds; end
+
+ # attr_reader rest: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:886
+ sig { returns(T.nilable(Prism::Node)) }
+ def rest; 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-0.24.0/lib/prism/node.rb:962
+ def type; 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-0.24.0/lib/prism/node.rb:972
+ def type; end
+ end
+end
+
+# Represents a hash key/value pair.
+#
+# { a => b }
+# ^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:981
+class Prism::AssocNode < ::Prism::Node
+ # def initialize: (Node key, Node value, Location? operator_loc, Location location) -> void
+ #
+ # @return [AssocNode] a new instance of AssocNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:983
+ def initialize(source, key, value, operator_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:993
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:998
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1008
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1003
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> AssocNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1013
+ sig { params(params: T.untyped).returns(Prism::AssocNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:998
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1027
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1074
+ 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).
+ #
+ # { a: b }
+ # ^
+ #
+ # { foo => bar }
+ # ^^^
+ #
+ # { def a; end => 1 }
+ # ^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1041
+ sig { returns(Prism::Node) }
+ def key; end
+
+ # def operator: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1069
+ sig { returns(T.nilable(String)) }
+ def operator; end
+
+ # The location of the `=>` operator, if present.
+ #
+ # { foo => bar }
+ # ^^
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1056
+ sig { returns(T.nilable(Prism::Location)) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:1098
+ def type; end
+
+ # The value of the association, if present. This can be any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
+ #
+ # { foo => bar }
+ # ^^^
+ #
+ # { x: 1 }
+ # ^
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1050
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:1108
+ def type; end
+ end
+end
+
+# Represents a splat in a hash literal.
+#
+# { **foo }
+# ^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:1117
+class Prism::AssocSplatNode < ::Prism::Node
+ # def initialize: (Node? value, Location operator_loc, Location location) -> void
+ #
+ # @return [AssocSplatNode] a new instance of AssocSplatNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1119
+ def initialize(source, value, operator_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1128
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1133
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1145
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1138
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> AssocSplatNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1150
+ sig { params(params: T.untyped).returns(Prism::AssocSplatNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1133
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { value: Node?, operator_loc: Location, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1163
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1189
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1184
+ sig { returns(String) }
+ def operator; end
+
+ # The location of the `**` operator.
+ #
+ # { **x }
+ # ^^
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1177
+ sig { returns(Prism::Location) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:1215
+ def type; end
+
+ # The value to be splatted, if present. Will be missing when keyword rest argument forwarding is used.
+ #
+ # { **foo }
+ # ^^^
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1171
+ sig { returns(T.nilable(Prism::Node)) }
+ def value; 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-0.24.0/lib/prism/node.rb:1225
+ def type; end
+ end
+end
+
+Prism::BACKEND = T.let(T.unsafe(nil), Symbol)
+
+# Represents reading a reference to a field in the previous match.
+#
+# $'
+# ^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:1234
+class Prism::BackReferenceReadNode < ::Prism::Node
+ # def initialize: (Symbol name, Location location) -> void
+ #
+ # @return [BackReferenceReadNode] a new instance of BackReferenceReadNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1236
+ def initialize(source, name, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1244
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1249
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1259
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1254
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> BackReferenceReadNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1264
+ sig { params(params: T.untyped).returns(Prism::BackReferenceReadNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1249
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1276
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1289
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # The name of the back-reference variable, including the leading `$`.
+ #
+ # $& # name `:$&`
+ #
+ # $+ # name `:$+`
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1285
+ sig { returns(Symbol) }
+ def name; 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-0.24.0/lib/prism/node.rb:1309
+ def type; 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-0.24.0/lib/prism/node.rb:1319
+ def type; end
+ end
+end
+
+# A class that knows how to walk down the tree. None of the individual visit
+# methods are implemented on this visitor, so it forces the consumer to
+# implement each one that they need. For a default implementation that
+# continues walking the tree, see the Visitor class.
+#
+# source://prism-0.24.0/lib/prism/visitor.rb:13
+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-0.24.0/lib/prism/visitor.rb:16
+ def visit(node); end
+
+ # Visits each node in `nodes` by calling `accept` on each one.
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:21
+ def visit_all(nodes); end
+
+ # Visits the child nodes of `node` by calling `accept` on each one.
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_child_nodes(node); end
+end
+
+# Represents a begin statement.
+#
+# begin
+# foo
+# end
+# ^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:1330
+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-0.24.0/lib/prism/node.rb:1332
+ def initialize(source, begin_keyword_loc, statements, rescue_clause, else_clause, ensure_clause, end_keyword_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1345
+ def accept(visitor); end
+
+ # def begin_keyword: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1433
+ sig { returns(T.nilable(String)) }
+ def begin_keyword; end
+
+ # attr_reader begin_keyword_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1396
+ sig { returns(T.nilable(Prism::Location)) }
+ def begin_keyword_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1354
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1369
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1359
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> BeginNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1374
+ sig { params(params: T.untyped).returns(Prism::BeginNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1354
+ sig { 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-0.24.0/lib/prism/node.rb:1391
+ def deconstruct_keys(keys); end
+
+ # attr_reader else_clause: ElseNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1414
+ sig { returns(T.nilable(Prism::ElseNode)) }
+ def else_clause; end
+
+ # def end_keyword: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1438
+ sig { returns(T.nilable(String)) }
+ def end_keyword; end
+
+ # attr_reader end_keyword_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1420
+ sig { returns(T.nilable(Prism::Location)) }
+ def end_keyword_loc; end
+
+ # attr_reader ensure_clause: EnsureNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1417
+ sig { returns(T.nilable(Prism::EnsureNode)) }
+ def ensure_clause; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1443
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader rescue_clause: RescueNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1411
+ sig { returns(T.nilable(Prism::RescueNode)) }
+ def rescue_clause; end
+
+ # source://prism-0.24.0/lib/prism/node.rb:1349
+ def set_newline_flag(newline_marked); end
+
+ # attr_reader statements: StatementsNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1408
+ sig { returns(T.nilable(Prism::StatementsNode)) }
+ def statements; 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-0.24.0/lib/prism/node.rb:1488
+ def type; 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-0.24.0/lib/prism/node.rb:1498
+ def type; end
+ end
+end
+
+# Represents block method arguments.
+#
+# bar(&args)
+# ^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:1507
+class Prism::BlockArgumentNode < ::Prism::Node
+ # def initialize: (Node? expression, Location operator_loc, Location location) -> void
+ #
+ # @return [BlockArgumentNode] a new instance of BlockArgumentNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1509
+ def initialize(source, expression, operator_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1518
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1523
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1535
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1528
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> BlockArgumentNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1540
+ sig { params(params: T.untyped).returns(Prism::BlockArgumentNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1523
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { expression: Node?, operator_loc: Location, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1553
+ def deconstruct_keys(keys); end
+
+ # attr_reader expression: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1558
+ sig { returns(T.nilable(Prism::Node)) }
+ def expression; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1573
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1568
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1561
+ sig { returns(Prism::Location) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:1599
+ def type; 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-0.24.0/lib/prism/node.rb:1609
+ def type; end
+ end
+end
+
+# Represents a block local variable.
+#
+# a { |; b| }
+# ^
+#
+# source://prism-0.24.0/lib/prism/node.rb:1618
+class Prism::BlockLocalVariableNode < ::Prism::Node
+ # def initialize: (Integer flags, Symbol name, Location location) -> void
+ #
+ # @return [BlockLocalVariableNode] a new instance of BlockLocalVariableNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1620
+ def initialize(source, flags, name, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1629
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1634
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1644
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1639
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> BlockLocalVariableNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1649
+ sig { params(params: T.untyped).returns(Prism::BlockLocalVariableNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1634
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, name: Symbol, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1662
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1680
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1671
+ sig { returns(Symbol) }
+ def name; end
+
+ # def repeated_parameter?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1675
+ sig { returns(T::Boolean) }
+ def repeated_parameter?; 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-0.24.0/lib/prism/node.rb:1702
+ def type; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1667
+ 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-0.24.0/lib/prism/node.rb:1712
+ def type; end
+ end
+end
+
+# Represents a block of ruby code.
+#
+# [1, 2, 3].each { |i| puts x }
+# ^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:1721
+class Prism::BlockNode < ::Prism::Node
+ # def initialize: (Array[Symbol] locals, Node? parameters, Node? body, Location opening_loc, Location closing_loc, Location location) -> void
+ #
+ # @return [BlockNode] a new instance of BlockNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1723
+ def initialize(source, locals, parameters, body, opening_loc, closing_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1735
+ def accept(visitor); end
+
+ # attr_reader body: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1785
+ sig { returns(T.nilable(Prism::Node)) }
+ def body; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1740
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1806
+ sig { returns(String) }
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1794
+ sig { returns(Prism::Location) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1753
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1745
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> BlockNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1758
+ sig { params(params: T.untyped).returns(Prism::BlockNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1740
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1774
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1811
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader locals: Array[Symbol]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1779
+ sig { returns(T::Array[Symbol]) }
+ def locals; end
+
+ # def opening: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1801
+ sig { returns(String) }
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1788
+ sig { returns(Prism::Location) }
+ def opening_loc; end
+
+ # attr_reader parameters: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1782
+ sig { returns(T.nilable(Prism::Node)) }
+ def parameters; 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-0.24.0/lib/prism/node.rb:1845
+ def type; 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-0.24.0/lib/prism/node.rb:1855
+ def type; end
+ end
+end
+
+# Represents a block parameter to a method, block, or lambda definition.
+#
+# def a(&b)
+# ^^
+# end
+#
+# source://prism-0.24.0/lib/prism/node.rb:1865
+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-0.24.0/lib/prism/node.rb:1867
+ def initialize(source, flags, name, name_loc, operator_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1878
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1883
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1893
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1888
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> BlockParameterNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1898
+ sig { params(params: T.untyped).returns(Prism::BlockParameterNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1883
+ sig { 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-0.24.0/lib/prism/node.rb:1913
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1954
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1922
+ sig { returns(T.nilable(Symbol)) }
+ def name; end
+
+ # attr_reader name_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1925
+ sig { returns(T.nilable(Prism::Location)) }
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1949
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1937
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # def repeated_parameter?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1944
+ sig { returns(T::Boolean) }
+ def repeated_parameter?; 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-0.24.0/lib/prism/node.rb:1982
+ def type; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:1918
+ 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-0.24.0/lib/prism/node.rb:1992
+ def type; end
+ end
+end
+
+# Represents a block's parameters declaration.
+#
+# -> (a, b = 1; local) { }
+# ^^^^^^^^^^^^^^^^^
+#
+# foo do |a, b = 1; local|
+# ^^^^^^^^^^^^^^^^^
+# end
+#
+# source://prism-0.24.0/lib/prism/node.rb:2005
+class Prism::BlockParametersNode < ::Prism::Node
+ # def initialize: (ParametersNode? parameters, Array[Node] locals, Location? opening_loc, Location? closing_loc, Location location) -> void
+ #
+ # @return [BlockParametersNode] a new instance of BlockParametersNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2007
+ def initialize(source, parameters, locals, opening_loc, closing_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2018
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2023
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2097
+ sig { returns(T.nilable(String)) }
+ def closing; end
+
+ # attr_reader closing_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2079
+ sig { returns(T.nilable(Prism::Location)) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2036
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2028
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> BlockParametersNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2041
+ sig { params(params: T.untyped).returns(Prism::BlockParametersNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2023
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2056
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2102
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader locals: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2064
+ sig { returns(T::Array[Prism::Node]) }
+ def locals; end
+
+ # def opening: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2092
+ sig { returns(T.nilable(String)) }
+ def opening; end
+
+ # attr_reader opening_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2067
+ sig { returns(T.nilable(Prism::Location)) }
+ def opening_loc; end
+
+ # attr_reader parameters: ParametersNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2061
+ sig { returns(T.nilable(Prism::ParametersNode)) }
+ def parameters; 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-0.24.0/lib/prism/node.rb:2130
+ def type; 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-0.24.0/lib/prism/node.rb:2140
+ def type; end
+ end
+end
+
+# Represents the use of the `break` keyword.
+#
+# break foo
+# ^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:2149
+class Prism::BreakNode < ::Prism::Node
+ # def initialize: (ArgumentsNode? arguments, Location keyword_loc, Location location) -> void
+ #
+ # @return [BreakNode] a new instance of BreakNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2151
+ def initialize(source, arguments, keyword_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2160
+ def accept(visitor); end
+
+ # attr_reader arguments: ArgumentsNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2200
+ sig { returns(T.nilable(Prism::ArgumentsNode)) }
+ def arguments; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2165
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2177
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2170
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> BreakNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2182
+ sig { params(params: T.untyped).returns(Prism::BreakNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2165
+ sig { 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-0.24.0/lib/prism/node.rb:2195
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2215
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2210
+ sig { returns(String) }
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2203
+ sig { returns(Prism::Location) }
+ def 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
+ # 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-0.24.0/lib/prism/node.rb:2241
+ def type; 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-0.24.0/lib/prism/node.rb:2251
+ def type; end
+ end
+end
+
+# Represents the use of the `&&=` operator on a call.
+#
+# foo.bar &&= value
+# ^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:2260
+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
+ #
+ # @return [CallAndWriteNode] a new instance of CallAndWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2262
+ def initialize(source, flags, receiver, call_operator_loc, message_loc, read_name, write_name, operator_loc, value, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2277
+ def accept(visitor); end
+
+ # def attribute_write?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2381
+ sig { returns(T::Boolean) }
+ def attribute_write?; end
+
+ # def call_operator: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2391
+ sig { returns(T.nilable(String)) }
+ def call_operator; end
+
+ # attr_reader call_operator_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2331
+ sig { returns(T.nilable(Prism::Location)) }
+ def call_operator_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2282
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2295
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2287
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> CallAndWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2300
+ sig { params(params: T.untyped).returns(Prism::CallAndWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2282
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2319
+ def deconstruct_keys(keys); end
+
+ # def ignore_visibility?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2386
+ sig { returns(T::Boolean) }
+ def ignore_visibility?; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2406
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def message: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2396
+ sig { returns(T.nilable(String)) }
+ def message; end
+
+ # attr_reader message_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2343
+ sig { returns(T.nilable(Prism::Location)) }
+ def message_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2401
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2361
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # attr_reader read_name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2355
+ sig { returns(Symbol) }
+ def read_name; end
+
+ # attr_reader receiver: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2328
+ sig { returns(T.nilable(Prism::Node)) }
+ def receiver; end
+
+ # def safe_navigation?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2371
+ sig { returns(T::Boolean) }
+ def safe_navigation?; 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-0.24.0/lib/prism/node.rb:2440
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2367
+ sig { returns(Prism::Node) }
+ def value; end
+
+ # def variable_call?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2376
+ sig { returns(T::Boolean) }
+ def variable_call?; end
+
+ # attr_reader write_name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2358
+ sig { returns(Symbol) }
+ def write_name; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2324
+ 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-0.24.0/lib/prism/node.rb:2450
+ def type; end
+ end
+end
+
+# Represents a method call, in all of the various forms that can take.
+#
+# foo
+# ^^^
+#
+# foo()
+# ^^^^^
+#
+# +foo
+# ^^^^
+#
+# foo + bar
+# ^^^^^^^^^
+#
+# foo.bar
+# ^^^^^^^
+#
+# foo&.bar
+# ^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:2474
+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
+ #
+ # @return [CallNode] a new instance of CallNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2476
+ def initialize(source, flags, receiver, call_operator_loc, name, message_loc, opening_loc, arguments, closing_loc, block, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2492
+ def accept(visitor); end
+
+ # attr_reader arguments: ArgumentsNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2596
+ sig { returns(T.nilable(Prism::ArgumentsNode)) }
+ def arguments; end
+
+ # def attribute_write?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2625
+ sig { returns(T::Boolean) }
+ def attribute_write?; end
+
+ # attr_reader block: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2611
+ sig { returns(T.nilable(Prism::Node)) }
+ def block; end
+
+ # def call_operator: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2635
+ sig { returns(T.nilable(String)) }
+ def call_operator; end
+
+ # attr_reader call_operator_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2557
+ sig { returns(T.nilable(Prism::Location)) }
+ def call_operator_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2497
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2650
+ sig { returns(T.nilable(String)) }
+ def closing; end
+
+ # attr_reader closing_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2599
+ sig { returns(T.nilable(Prism::Location)) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2511
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2502
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> CallNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2516
+ sig { params(params: T.untyped).returns(Prism::CallNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2497
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2536
+ def deconstruct_keys(keys); end
+
+ # def ignore_visibility?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2630
+ sig { returns(T::Boolean) }
+ def ignore_visibility?; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2655
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def message: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2640
+ sig { returns(T.nilable(String)) }
+ def message; end
+
+ # attr_reader message_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2572
+ sig { returns(T.nilable(Prism::Location)) }
+ def message_loc; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2569
+ sig { returns(Symbol) }
+ def name; end
+
+ # def opening: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2645
+ sig { returns(T.nilable(String)) }
+ def opening; end
+
+ # attr_reader opening_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2584
+ sig { returns(T.nilable(Prism::Location)) }
+ def opening_loc; end
+
+ # The object that the method is being called on. This can be either `nil` or any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
+ #
+ # foo.bar
+ # ^^^
+ #
+ # +foo
+ # ^^^
+ #
+ # foo + bar
+ # ^^^
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2554
+ sig { returns(T.nilable(Prism::Node)) }
+ def receiver; end
+
+ # def safe_navigation?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2615
+ sig { returns(T::Boolean) }
+ def safe_navigation?; 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-0.24.0/lib/prism/node.rb:2699
+ def type; end
+
+ # def variable_call?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2620
+ sig { returns(T::Boolean) }
+ def variable_call?; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2541
+ 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-0.24.0/lib/prism/node.rb:2709
+ def type; end
+ end
+end
+
+# Flags for call nodes.
+#
+# source://prism-0.24.0/lib/prism/node.rb:19253
+module Prism::CallNodeFlags; end
+
+# a call that is an attribute write, so the value being written should be returned
+#
+# source://prism-0.24.0/lib/prism/node.rb:19261
+Prism::CallNodeFlags::ATTRIBUTE_WRITE = T.let(T.unsafe(nil), Integer)
+
+# a call that ignores method visibility
+#
+# source://prism-0.24.0/lib/prism/node.rb:19264
+Prism::CallNodeFlags::IGNORE_VISIBILITY = T.let(T.unsafe(nil), Integer)
+
+# &. operator
+#
+# source://prism-0.24.0/lib/prism/node.rb:19255
+Prism::CallNodeFlags::SAFE_NAVIGATION = T.let(T.unsafe(nil), Integer)
+
+# a call that could have been a local variable
+#
+# source://prism-0.24.0/lib/prism/node.rb:19258
+Prism::CallNodeFlags::VARIABLE_CALL = T.let(T.unsafe(nil), Integer)
+
+# Represents the use of an assignment operator on a call.
+#
+# foo.bar += baz
+# ^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:2718
+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
+ #
+ # @return [CallOperatorWriteNode] a new instance of CallOperatorWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2720
+ def initialize(source, flags, receiver, call_operator_loc, message_loc, read_name, write_name, operator, operator_loc, value, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2736
+ def accept(visitor); end
+
+ # def attribute_write?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2844
+ sig { returns(T::Boolean) }
+ def attribute_write?; end
+
+ # def call_operator: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2854
+ sig { returns(T.nilable(String)) }
+ def call_operator; end
+
+ # attr_reader call_operator_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2791
+ sig { returns(T.nilable(Prism::Location)) }
+ def call_operator_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2741
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2754
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2746
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> CallOperatorWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2759
+ sig { params(params: T.untyped).returns(Prism::CallOperatorWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2741
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2779
+ def deconstruct_keys(keys); end
+
+ # def ignore_visibility?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2849
+ sig { returns(T::Boolean) }
+ def ignore_visibility?; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2864
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def message: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2859
+ sig { returns(T.nilable(String)) }
+ def message; end
+
+ # attr_reader message_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2803
+ sig { returns(T.nilable(Prism::Location)) }
+ def message_loc; end
+
+ # attr_reader operator: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2821
+ sig { returns(Symbol) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2824
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # attr_reader read_name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2815
+ sig { returns(Symbol) }
+ def read_name; end
+
+ # attr_reader receiver: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2788
+ sig { returns(T.nilable(Prism::Node)) }
+ def receiver; end
+
+ # def safe_navigation?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2834
+ sig { returns(T::Boolean) }
+ def safe_navigation?; 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-0.24.0/lib/prism/node.rb:2899
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2830
+ sig { returns(Prism::Node) }
+ def value; end
+
+ # def variable_call?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2839
+ sig { returns(T::Boolean) }
+ def variable_call?; end
+
+ # attr_reader write_name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2818
+ sig { returns(Symbol) }
+ def write_name; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2784
+ 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-0.24.0/lib/prism/node.rb:2909
+ def type; end
+ end
+end
+
+# Represents the use of the `||=` operator on a call.
+#
+# foo.bar ||= value
+# ^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:2918
+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
+ #
+ # @return [CallOrWriteNode] a new instance of CallOrWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2920
+ def initialize(source, flags, receiver, call_operator_loc, message_loc, read_name, write_name, operator_loc, value, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2935
+ def accept(visitor); end
+
+ # def attribute_write?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3039
+ sig { returns(T::Boolean) }
+ def attribute_write?; end
+
+ # def call_operator: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3049
+ sig { returns(T.nilable(String)) }
+ def call_operator; end
+
+ # attr_reader call_operator_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2989
+ sig { returns(T.nilable(Prism::Location)) }
+ def call_operator_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2940
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2953
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2945
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> CallOrWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2958
+ sig { params(params: T.untyped).returns(Prism::CallOrWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2940
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2977
+ def deconstruct_keys(keys); end
+
+ # def ignore_visibility?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3044
+ sig { returns(T::Boolean) }
+ def ignore_visibility?; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3064
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def message: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3054
+ sig { returns(T.nilable(String)) }
+ def message; end
+
+ # attr_reader message_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3001
+ sig { returns(T.nilable(Prism::Location)) }
+ def message_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3059
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3019
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # attr_reader read_name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3013
+ sig { returns(Symbol) }
+ def read_name; end
+
+ # attr_reader receiver: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2986
+ sig { returns(T.nilable(Prism::Node)) }
+ def receiver; end
+
+ # def safe_navigation?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3029
+ sig { returns(T::Boolean) }
+ def safe_navigation?; 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-0.24.0/lib/prism/node.rb:3098
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3025
+ sig { returns(Prism::Node) }
+ def value; end
+
+ # def variable_call?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3034
+ sig { returns(T::Boolean) }
+ def variable_call?; end
+
+ # attr_reader write_name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3016
+ sig { returns(Symbol) }
+ def write_name; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:2982
+ 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-0.24.0/lib/prism/node.rb:3108
+ def type; end
+ end
+end
+
+# Represents assigning to a method call.
+#
+# foo.bar, = 1
+# ^^^^^^^
+#
+# begin
+# rescue => foo.bar
+# ^^^^^^^
+# end
+#
+# for foo.bar in baz do end
+# ^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:3125
+class Prism::CallTargetNode < ::Prism::Node
+ # def initialize: (Integer flags, Node receiver, Location call_operator_loc, Symbol name, Location message_loc, Location location) -> void
+ #
+ # @return [CallTargetNode] a new instance of CallTargetNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3127
+ def initialize(source, flags, receiver, call_operator_loc, name, message_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3139
+ def accept(visitor); end
+
+ # def attribute_write?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3213
+ sig { returns(T::Boolean) }
+ def attribute_write?; end
+
+ # def call_operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3223
+ sig { returns(String) }
+ def call_operator; end
+
+ # attr_reader call_operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3187
+ sig { returns(Prism::Location) }
+ def call_operator_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3144
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3154
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3149
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> CallTargetNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3159
+ sig { params(params: T.untyped).returns(Prism::CallTargetNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3144
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3175
+ def deconstruct_keys(keys); end
+
+ # def ignore_visibility?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3218
+ sig { returns(T::Boolean) }
+ def ignore_visibility?; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3233
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def message: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3228
+ sig { returns(String) }
+ def message; end
+
+ # attr_reader message_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3196
+ sig { returns(Prism::Location) }
+ def message_loc; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3193
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader receiver: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3184
+ sig { returns(Prism::Node) }
+ def receiver; end
+
+ # def safe_navigation?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3203
+ sig { returns(T::Boolean) }
+ def safe_navigation?; 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-0.24.0/lib/prism/node.rb:3259
+ def type; end
+
+ # def variable_call?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3208
+ sig { returns(T::Boolean) }
+ def variable_call?; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3180
+ 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-0.24.0/lib/prism/node.rb:3269
+ def type; end
+ end
+end
+
+# Represents assigning to a local variable in pattern matching.
+#
+# foo => [bar => baz]
+# ^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:3278
+class Prism::CapturePatternNode < ::Prism::Node
+ # def initialize: (Node value, Node target, Location operator_loc, Location location) -> void
+ #
+ # @return [CapturePatternNode] a new instance of CapturePatternNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3280
+ def initialize(source, value, target, operator_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3290
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3295
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3305
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3300
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> CapturePatternNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3310
+ sig { params(params: T.untyped).returns(Prism::CapturePatternNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3295
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3324
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3347
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3342
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3335
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # attr_reader target: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3332
+ sig { returns(Prism::Node) }
+ def target; 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-0.24.0/lib/prism/node.rb:3371
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3329
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:3381
+ def type; end
+ end
+end
+
+# Represents the use of a case statement for pattern matching.
+#
+# case true
+# in false
+# end
+# ^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:3392
+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
+ #
+ # @return [CaseMatchNode] a new instance of CaseMatchNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3394
+ def initialize(source, predicate, conditions, consequent, case_keyword_loc, end_keyword_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3406
+ def accept(visitor); end
+
+ # def case_keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3473
+ sig { returns(String) }
+ def case_keyword; end
+
+ # attr_reader case_keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3460
+ sig { returns(Prism::Location) }
+ def case_keyword_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3411
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3425
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3416
+ def compact_child_nodes; end
+
+ # attr_reader conditions: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3454
+ sig { returns(T::Array[Prism::Node]) }
+ def conditions; end
+
+ # attr_reader consequent: ElseNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3457
+ sig { returns(T.nilable(Prism::ElseNode)) }
+ def consequent; end
+
+ # def copy: (**params) -> CaseMatchNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3430
+ sig { params(params: T.untyped).returns(Prism::CaseMatchNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3411
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3446
+ def deconstruct_keys(keys); end
+
+ # def end_keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3478
+ sig { returns(String) }
+ def end_keyword; end
+
+ # attr_reader end_keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3466
+ sig { returns(Prism::Location) }
+ def end_keyword_loc; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3483
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader predicate: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3451
+ sig { returns(T.nilable(Prism::Node)) }
+ def predicate; 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-0.24.0/lib/prism/node.rb:3517
+ def type; 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-0.24.0/lib/prism/node.rb:3527
+ def type; end
+ end
+end
+
+# Represents the use of a case statement.
+#
+# case true
+# when false
+# end
+# ^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:3538
+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
+ #
+ # @return [CaseNode] a new instance of CaseNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3540
+ def initialize(source, predicate, conditions, consequent, case_keyword_loc, end_keyword_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3552
+ def accept(visitor); end
+
+ # def case_keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3619
+ sig { returns(String) }
+ def case_keyword; end
+
+ # attr_reader case_keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3606
+ sig { returns(Prism::Location) }
+ def case_keyword_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3557
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3571
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3562
+ def compact_child_nodes; end
+
+ # attr_reader conditions: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3600
+ sig { returns(T::Array[Prism::Node]) }
+ def conditions; end
+
+ # attr_reader consequent: ElseNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3603
+ sig { returns(T.nilable(Prism::ElseNode)) }
+ def consequent; end
+
+ # def copy: (**params) -> CaseNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3576
+ sig { params(params: T.untyped).returns(Prism::CaseNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3557
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3592
+ def deconstruct_keys(keys); end
+
+ # def end_keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3624
+ sig { returns(String) }
+ def end_keyword; end
+
+ # attr_reader end_keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3612
+ sig { returns(Prism::Location) }
+ def end_keyword_loc; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3629
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader predicate: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3597
+ sig { returns(T.nilable(Prism::Node)) }
+ def predicate; 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-0.24.0/lib/prism/node.rb:3663
+ def type; 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-0.24.0/lib/prism/node.rb:3673
+ def type; end
+ end
+end
+
+# Represents a class declaration involving the `class` keyword.
+#
+# class Foo end
+# ^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:3682
+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
+ #
+ # @return [ClassNode] a new instance of ClassNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3684
+ def initialize(source, locals, class_keyword_loc, constant_path, inheritance_operator_loc, superclass, body, end_keyword_loc, name, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3699
+ def accept(visitor); end
+
+ # attr_reader body: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3774
+ sig { returns(T.nilable(Prism::Node)) }
+ def body; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3704
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def class_keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3787
+ sig { returns(String) }
+ def class_keyword; end
+
+ # attr_reader class_keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3750
+ sig { returns(Prism::Location) }
+ def class_keyword_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3718
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3709
+ def compact_child_nodes; end
+
+ # attr_reader constant_path: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3756
+ sig { returns(Prism::Node) }
+ def constant_path; end
+
+ # def copy: (**params) -> ClassNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3723
+ sig { params(params: T.untyped).returns(Prism::ClassNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3704
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3742
+ def deconstruct_keys(keys); end
+
+ # def end_keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3797
+ sig { returns(String) }
+ def end_keyword; end
+
+ # attr_reader end_keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3777
+ sig { returns(Prism::Location) }
+ def end_keyword_loc; end
+
+ # def inheritance_operator: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3792
+ sig { returns(T.nilable(String)) }
+ def inheritance_operator; end
+
+ # attr_reader inheritance_operator_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3759
+ sig { returns(T.nilable(Prism::Location)) }
+ def inheritance_operator_loc; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3802
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader locals: Array[Symbol]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3747
+ sig { returns(T::Array[Symbol]) }
+ def locals; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3783
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader superclass: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3771
+ sig { returns(T.nilable(Prism::Node)) }
+ def superclass; 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-0.24.0/lib/prism/node.rb:3840
+ def type; 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-0.24.0/lib/prism/node.rb:3850
+ def type; end
+ end
+end
+
+# Represents the use of the `&&=` operator for assignment to a class variable.
+#
+# @@target &&= value
+# ^^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:3859
+class Prism::ClassVariableAndWriteNode < ::Prism::Node
+ # def initialize: (Symbol name, Location name_loc, Location operator_loc, Node value, Location location) -> void
+ #
+ # @return [ClassVariableAndWriteNode] a new instance of ClassVariableAndWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3861
+ def initialize(source, name, name_loc, operator_loc, value, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3872
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3877
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3887
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3882
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ClassVariableAndWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3892
+ sig { params(params: T.untyped).returns(Prism::ClassVariableAndWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3877
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3907
+ def deconstruct_keys(keys); end
+
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:125
+ def desugar; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3936
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3912
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3915
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3931
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3921
+ sig { returns(Prism::Location) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:3960
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3927
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:3970
+ def type; end
+ end
+end
+
+# Represents assigning to a class variable using an operator that isn't `=`.
+#
+# @@target += value
+# ^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:3979
+class Prism::ClassVariableOperatorWriteNode < ::Prism::Node
+ # def initialize: (Symbol name, Location name_loc, Location operator_loc, Node value, Symbol operator, Location location) -> void
+ #
+ # @return [ClassVariableOperatorWriteNode] a new instance of ClassVariableOperatorWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3981
+ def initialize(source, name, name_loc, operator_loc, value, operator, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3993
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3998
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4008
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4003
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ClassVariableOperatorWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4013
+ sig { params(params: T.untyped).returns(Prism::ClassVariableOperatorWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:3998
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4029
+ def deconstruct_keys(keys); end
+
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:137
+ def desugar; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4056
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4034
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4037
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # attr_reader operator: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4052
+ sig { returns(Symbol) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4043
+ sig { returns(Prism::Location) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:4081
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4049
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:4091
+ def type; end
+ end
+end
+
+# Represents the use of the `||=` operator for assignment to a class variable.
+#
+# @@target ||= value
+# ^^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:4100
+class Prism::ClassVariableOrWriteNode < ::Prism::Node
+ # def initialize: (Symbol name, Location name_loc, Location operator_loc, Node value, Location location) -> void
+ #
+ # @return [ClassVariableOrWriteNode] a new instance of ClassVariableOrWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4102
+ def initialize(source, name, name_loc, operator_loc, value, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4113
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4118
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4128
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4123
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ClassVariableOrWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4133
+ sig { params(params: T.untyped).returns(Prism::ClassVariableOrWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4118
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4148
+ def deconstruct_keys(keys); end
+
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:131
+ def desugar; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4177
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4153
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4156
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4172
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4162
+ sig { returns(Prism::Location) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:4201
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4168
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:4211
+ def type; end
+ end
+end
+
+# Represents referencing a class variable.
+#
+# @@foo
+# ^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:4220
+class Prism::ClassVariableReadNode < ::Prism::Node
+ # def initialize: (Symbol name, Location location) -> void
+ #
+ # @return [ClassVariableReadNode] a new instance of ClassVariableReadNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4222
+ def initialize(source, name, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4230
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4235
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4245
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4240
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ClassVariableReadNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4250
+ sig { params(params: T.untyped).returns(Prism::ClassVariableReadNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4235
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4262
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4275
+ 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).
+ #
+ # @@abc # name `:@@abc`
+ #
+ # @@_test # name `:@@_test`
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4271
+ sig { returns(Symbol) }
+ def name; 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-0.24.0/lib/prism/node.rb:4295
+ def type; 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-0.24.0/lib/prism/node.rb:4305
+ def type; end
+ end
+end
+
+# Represents writing to a class variable in a context that doesn't have an explicit value.
+#
+# @@foo, @@bar = baz
+# ^^^^^ ^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:4314
+class Prism::ClassVariableTargetNode < ::Prism::Node
+ # def initialize: (Symbol name, Location location) -> void
+ #
+ # @return [ClassVariableTargetNode] a new instance of ClassVariableTargetNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4316
+ def initialize(source, name, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4324
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4329
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4339
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4334
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ClassVariableTargetNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4344
+ sig { params(params: T.untyped).returns(Prism::ClassVariableTargetNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4329
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4356
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4365
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4361
+ sig { returns(Symbol) }
+ def name; 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-0.24.0/lib/prism/node.rb:4385
+ def type; 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-0.24.0/lib/prism/node.rb:4395
+ def type; end
+ end
+end
+
+# Represents writing to a class variable.
+#
+# @@foo = 1
+# ^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:4404
+class Prism::ClassVariableWriteNode < ::Prism::Node
+ # def initialize: (Symbol name, Location name_loc, Node value, Location? operator_loc, Location location) -> void
+ #
+ # @return [ClassVariableWriteNode] a new instance of ClassVariableWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4406
+ def initialize(source, name, name_loc, value, operator_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4417
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4422
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4432
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4427
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ClassVariableWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4437
+ sig { params(params: T.untyped).returns(Prism::ClassVariableWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4422
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4452
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4487
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4457
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4460
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # def operator: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4482
+ sig { returns(T.nilable(String)) }
+ def operator; end
+
+ # attr_reader operator_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4469
+ sig { returns(T.nilable(Prism::Location)) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:4511
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4466
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:4521
+ def type; end
+ end
+end
+
+# This represents a comment that was encountered during parsing. It is the
+# base class for all comment types.
+#
+# source://prism-0.24.0/lib/prism/parse_result.rb:258
+class Prism::Comment
+ # Create a new comment object with the given location.
+ #
+ # @return [Comment] a new instance of Comment
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:263
+ def initialize(location); end
+
+ # Implement the hash pattern matching interface for Comment.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:268
+ def deconstruct_keys(keys); end
+
+ # The location of this comment in the source.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:260
+ sig { returns(Prism::Location) }
+ def location; end
+
+ sig { returns(T::Boolean) }
+ def trailing?; end
+end
+
+# A compiler is a visitor that returns the value of each node as it visits.
+# This is as opposed to a visitor which will only walk the tree. This can be
+# useful when you are trying to compile a tree into a different format.
+#
+# For example, to build a representation of the tree as s-expressions, you
+# could write:
+#
+# class SExpressions < Prism::Compiler
+# def visit_arguments_node(node) = [:arguments, super]
+# def visit_call_node(node) = [:call, super]
+# def visit_integer_node(node) = [:integer]
+# def visit_program_node(node) = [:program, super]
+# end
+#
+# Prism.parse("1 + 2").value.accept(SExpressions.new)
+# # => [:program, [[[:call, [[:integer], [:arguments, [[:integer]]]]]]]]
+#
+# source://prism-0.24.0/lib/prism/compiler.rb:26
+class Prism::Compiler
+ # Visit an individual node.
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:28
+ def visit(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a AliasGlobalVariableNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_alias_global_variable_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a AliasMethodNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_alias_method_node(node); end
+
+ # Visit a list of nodes.
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:33
+ def visit_all(nodes); end
+
+ # Visit the child nodes of the given node.
+ # Compile a AlternationPatternNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_alternation_pattern_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a AndNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_and_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ArgumentsNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_arguments_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ArrayNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_array_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ArrayPatternNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_array_pattern_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a AssocNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_assoc_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a AssocSplatNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_assoc_splat_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a BackReferenceReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_back_reference_read_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a BeginNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_begin_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a BlockArgumentNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_block_argument_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a BlockLocalVariableNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_block_local_variable_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a BlockNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_block_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a BlockParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_block_parameter_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a BlockParametersNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_block_parameters_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a BreakNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_break_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a CallAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_call_and_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a CallNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_call_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a CallOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_call_operator_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a CallOrWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_call_or_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a CallTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_call_target_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a CapturePatternNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_capture_pattern_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a CaseMatchNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_case_match_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a CaseNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_case_node(node); end
+
+ # Visit the child nodes of the given node.
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_child_nodes(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ClassNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_class_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ClassVariableAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_class_variable_and_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ClassVariableOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_class_variable_operator_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ClassVariableOrWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_class_variable_or_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ClassVariableReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_class_variable_read_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ClassVariableTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_class_variable_target_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ClassVariableWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_class_variable_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ConstantAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_constant_and_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ConstantOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_constant_operator_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ConstantOrWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_constant_or_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ConstantPathAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_constant_path_and_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ConstantPathNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_constant_path_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ConstantPathOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_constant_path_operator_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ConstantPathOrWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_constant_path_or_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ConstantPathTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_constant_path_target_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ConstantPathWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_constant_path_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ConstantReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_constant_read_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ConstantTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_constant_target_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ConstantWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_constant_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a DefNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_def_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a DefinedNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_defined_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ElseNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_else_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a EmbeddedStatementsNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_embedded_statements_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a EmbeddedVariableNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_embedded_variable_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a EnsureNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_ensure_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a FalseNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_false_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a FindPatternNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_find_pattern_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a FlipFlopNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_flip_flop_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a FloatNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_float_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ForNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_for_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ForwardingArgumentsNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_forwarding_arguments_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ForwardingParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_forwarding_parameter_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ForwardingSuperNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_forwarding_super_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a GlobalVariableAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_global_variable_and_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a GlobalVariableOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_global_variable_operator_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a GlobalVariableOrWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_global_variable_or_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a GlobalVariableReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_global_variable_read_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a GlobalVariableTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_global_variable_target_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a GlobalVariableWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_global_variable_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a HashNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_hash_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a HashPatternNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_hash_pattern_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a IfNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_if_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ImaginaryNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_imaginary_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ImplicitNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_implicit_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ImplicitRestNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_implicit_rest_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a InNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_in_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a IndexAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_index_and_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a IndexOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_index_operator_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a IndexOrWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_index_or_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a IndexTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_index_target_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a InstanceVariableAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_instance_variable_and_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a InstanceVariableOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_instance_variable_operator_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a InstanceVariableOrWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_instance_variable_or_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a InstanceVariableReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_instance_variable_read_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a InstanceVariableTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_instance_variable_target_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a InstanceVariableWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_instance_variable_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a IntegerNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_integer_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a InterpolatedMatchLastLineNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_interpolated_match_last_line_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a InterpolatedRegularExpressionNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_interpolated_regular_expression_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a InterpolatedStringNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_interpolated_string_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a InterpolatedSymbolNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_interpolated_symbol_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a InterpolatedXStringNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_interpolated_x_string_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a KeywordHashNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_keyword_hash_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a KeywordRestParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_keyword_rest_parameter_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a LambdaNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_lambda_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a LocalVariableAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_local_variable_and_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a LocalVariableOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_local_variable_operator_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a LocalVariableOrWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_local_variable_or_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a LocalVariableReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_local_variable_read_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a LocalVariableTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_local_variable_target_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a LocalVariableWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_local_variable_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a MatchLastLineNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_match_last_line_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a MatchPredicateNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_match_predicate_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a MatchRequiredNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_match_required_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a MatchWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_match_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a MissingNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_missing_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ModuleNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_module_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a MultiTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_multi_target_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a MultiWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_multi_write_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a NextNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_next_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a NilNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_nil_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a NoKeywordsParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_no_keywords_parameter_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a NumberedParametersNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_numbered_parameters_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a NumberedReferenceReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_numbered_reference_read_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a OptionalKeywordParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_optional_keyword_parameter_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a OptionalParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_optional_parameter_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a OrNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_or_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ParametersNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_parameters_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ParenthesesNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_parentheses_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a PinnedExpressionNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_pinned_expression_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a PinnedVariableNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_pinned_variable_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a PostExecutionNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_post_execution_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a PreExecutionNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_pre_execution_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ProgramNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_program_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a RangeNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_range_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a RationalNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_rational_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a RedoNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_redo_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a RegularExpressionNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_regular_expression_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a RequiredKeywordParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_required_keyword_parameter_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a RequiredParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_required_parameter_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a RescueModifierNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_rescue_modifier_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a RescueNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_rescue_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a RestParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_rest_parameter_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a RetryNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_retry_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a ReturnNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_return_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a SelfNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_self_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a SingletonClassNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_singleton_class_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a SourceEncodingNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_source_encoding_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a SourceFileNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_source_file_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a SourceLineNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_source_line_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a SplatNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_splat_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a StatementsNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_statements_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a StringNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_string_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a SuperNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_super_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a SymbolNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_symbol_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a TrueNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_true_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a UndefNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_undef_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a UnlessNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_unless_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a UntilNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_until_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a WhenNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_when_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a WhileNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_while_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a XStringNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_x_string_node(node); end
+
+ # Visit the child nodes of the given node.
+ # Compile a YieldNode node
+ #
+ # source://prism-0.24.0/lib/prism/compiler.rb:38
+ def visit_yield_node(node); end
+end
+
+# Represents the use of the `&&=` operator for assignment to a constant.
+#
+# Target &&= value
+# ^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:4530
+class Prism::ConstantAndWriteNode < ::Prism::Node
+ # def initialize: (Symbol name, Location name_loc, Location operator_loc, Node value, Location location) -> void
+ #
+ # @return [ConstantAndWriteNode] a new instance of ConstantAndWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4532
+ def initialize(source, name, name_loc, operator_loc, value, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4543
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4548
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4558
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4553
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ConstantAndWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4563
+ sig { params(params: T.untyped).returns(Prism::ConstantAndWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4548
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4578
+ def deconstruct_keys(keys); end
+
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:143
+ def desugar; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4607
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4583
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4586
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4602
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4592
+ sig { returns(Prism::Location) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:4631
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4598
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:4641
+ def type; end
+ end
+end
+
+# Represents assigning to a constant using an operator that isn't `=`.
+#
+# Target += value
+# ^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:4650
+class Prism::ConstantOperatorWriteNode < ::Prism::Node
+ # def initialize: (Symbol name, Location name_loc, Location operator_loc, Node value, Symbol operator, Location location) -> void
+ #
+ # @return [ConstantOperatorWriteNode] a new instance of ConstantOperatorWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4652
+ def initialize(source, name, name_loc, operator_loc, value, operator, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4664
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4669
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4679
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4674
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ConstantOperatorWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4684
+ sig { params(params: T.untyped).returns(Prism::ConstantOperatorWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4669
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4700
+ def deconstruct_keys(keys); end
+
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:155
+ def desugar; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4727
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4705
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4708
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # attr_reader operator: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4723
+ sig { returns(Symbol) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4714
+ sig { returns(Prism::Location) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:4752
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4720
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:4762
+ def type; end
+ end
+end
+
+# Represents the use of the `||=` operator for assignment to a constant.
+#
+# Target ||= value
+# ^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:4771
+class Prism::ConstantOrWriteNode < ::Prism::Node
+ # def initialize: (Symbol name, Location name_loc, Location operator_loc, Node value, Location location) -> void
+ #
+ # @return [ConstantOrWriteNode] a new instance of ConstantOrWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4773
+ def initialize(source, name, name_loc, operator_loc, value, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4784
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4789
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4799
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4794
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ConstantOrWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4804
+ sig { params(params: T.untyped).returns(Prism::ConstantOrWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4789
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4819
+ def deconstruct_keys(keys); end
+
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:149
+ def desugar; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4848
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4824
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4827
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4843
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4833
+ sig { returns(Prism::Location) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:4872
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4839
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:4882
+ def type; end
+ end
+end
+
+# Represents the use of the `&&=` operator for assignment to a constant path.
+#
+# Parent::Child &&= value
+# ^^^^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:4891
+class Prism::ConstantPathAndWriteNode < ::Prism::Node
+ # def initialize: (ConstantPathNode target, Location operator_loc, Node value, Location location) -> void
+ #
+ # @return [ConstantPathAndWriteNode] a new instance of ConstantPathAndWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4893
+ def initialize(source, target, operator_loc, value, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4903
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4908
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4918
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4913
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ConstantPathAndWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4923
+ sig { params(params: T.untyped).returns(Prism::ConstantPathAndWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4908
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4937
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4960
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4955
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4945
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # attr_reader target: ConstantPathNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4942
+ sig { returns(Prism::ConstantPathNode) }
+ def target; 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-0.24.0/lib/prism/node.rb:4984
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:4951
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:4994
+ def type; end
+ end
+end
+
+# Represents accessing a constant through a path of `::` operators.
+#
+# Foo::Bar
+# ^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:5003
+class Prism::ConstantPathNode < ::Prism::Node
+ # def initialize: (Node? parent, Node child, Location delimiter_loc, Location location) -> void
+ #
+ # @return [ConstantPathNode] a new instance of ConstantPathNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5005
+ def initialize(source, parent, child, delimiter_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5015
+ def accept(visitor); end
+
+ # attr_reader child: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5060
+ sig { returns(Prism::Node) }
+ def child; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5020
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5033
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5025
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ConstantPathNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5038
+ sig { params(params: T.untyped).returns(Prism::ConstantPathNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5020
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5052
+ def deconstruct_keys(keys); end
+
+ # def delimiter: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5070
+ sig { returns(String) }
+ def delimiter; end
+
+ # attr_reader delimiter_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5063
+ sig { returns(Prism::Location) }
+ def delimiter_loc; end
+
+ # Returns the full name of this constant path. For example: "Foo::Bar"
+ #
+ # source://prism-0.24.0/lib/prism/node_ext.rb:129
+ def full_name; end
+
+ # Returns the list of parts for the full name of this constant path.
+ # For example: [:Foo, :Bar]
+ #
+ # source://prism-0.24.0/lib/prism/node_ext.rb:112
+ def full_name_parts; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5075
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader parent: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5057
+ sig { returns(T.nilable(Prism::Node)) }
+ def parent; 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-0.24.0/lib/prism/node.rb:5103
+ def type; 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-0.24.0/lib/prism/node.rb:5113
+ def type; end
+ end
+end
+
+# An error class raised when dynamic parts are found while computing a
+# constant path's full name. For example:
+# Foo::Bar::Baz -> does not raise because all parts of the constant path are
+# simple constants
+# var::Bar::Baz -> raises because the first part of the constant path is a
+# local variable
+#
+# source://prism-0.24.0/lib/prism/node_ext.rb:108
+class Prism::ConstantPathNode::DynamicPartsInConstantPathError < ::StandardError; end
+
+# Represents assigning to a constant path using an operator that isn't `=`.
+#
+# Parent::Child += value
+# ^^^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:5122
+class Prism::ConstantPathOperatorWriteNode < ::Prism::Node
+ # def initialize: (ConstantPathNode target, Location operator_loc, Node value, Symbol operator, Location location) -> void
+ #
+ # @return [ConstantPathOperatorWriteNode] a new instance of ConstantPathOperatorWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5124
+ def initialize(source, target, operator_loc, value, operator, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5135
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5140
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5150
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5145
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ConstantPathOperatorWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5155
+ sig { params(params: T.untyped).returns(Prism::ConstantPathOperatorWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5140
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5170
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5191
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader operator: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5187
+ sig { returns(Symbol) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5178
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # attr_reader target: ConstantPathNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5175
+ sig { returns(Prism::ConstantPathNode) }
+ def target; 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-0.24.0/lib/prism/node.rb:5216
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5184
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:5226
+ def type; end
+ end
+end
+
+# Represents the use of the `||=` operator for assignment to a constant path.
+#
+# Parent::Child ||= value
+# ^^^^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:5235
+class Prism::ConstantPathOrWriteNode < ::Prism::Node
+ # def initialize: (ConstantPathNode target, Location operator_loc, Node value, Location location) -> void
+ #
+ # @return [ConstantPathOrWriteNode] a new instance of ConstantPathOrWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5237
+ def initialize(source, target, operator_loc, value, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5247
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5252
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5262
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5257
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ConstantPathOrWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5267
+ sig { params(params: T.untyped).returns(Prism::ConstantPathOrWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5252
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5281
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5304
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5299
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5289
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # attr_reader target: ConstantPathNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5286
+ sig { returns(Prism::ConstantPathNode) }
+ def target; 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-0.24.0/lib/prism/node.rb:5328
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5295
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:5338
+ def type; end
+ end
+end
+
+# Represents writing to a constant path in a context that doesn't have an explicit value.
+#
+# Foo::Foo, Bar::Bar = baz
+# ^^^^^^^^ ^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:5347
+class Prism::ConstantPathTargetNode < ::Prism::Node
+ # def initialize: (Node? parent, Node child, Location delimiter_loc, Location location) -> void
+ #
+ # @return [ConstantPathTargetNode] a new instance of ConstantPathTargetNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5349
+ def initialize(source, parent, child, delimiter_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5359
+ def accept(visitor); end
+
+ # attr_reader child: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5404
+ sig { returns(Prism::Node) }
+ def child; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5364
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5377
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5369
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ConstantPathTargetNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5382
+ sig { params(params: T.untyped).returns(Prism::ConstantPathTargetNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5364
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5396
+ def deconstruct_keys(keys); end
+
+ # def delimiter: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5414
+ sig { returns(String) }
+ def delimiter; end
+
+ # attr_reader delimiter_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5407
+ sig { returns(Prism::Location) }
+ def delimiter_loc; end
+
+ # Returns the full name of this constant path. For example: "Foo::Bar"
+ #
+ # source://prism-0.24.0/lib/prism/node_ext.rb:152
+ def full_name; end
+
+ # Returns the list of parts for the full name of this constant path.
+ # For example: [:Foo, :Bar]
+ #
+ # source://prism-0.24.0/lib/prism/node_ext.rb:137
+ def full_name_parts; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5419
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader parent: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5401
+ sig { returns(T.nilable(Prism::Node)) }
+ def parent; 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-0.24.0/lib/prism/node.rb:5447
+ def type; 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-0.24.0/lib/prism/node.rb:5457
+ def type; end
+ end
+end
+
+# Represents writing to a constant path.
+#
+# ::Foo = 1
+# ^^^^^^^^^
+#
+# Foo::Bar = 1
+# ^^^^^^^^^^^^
+#
+# ::Foo::Bar = 1
+# ^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:5472
+class Prism::ConstantPathWriteNode < ::Prism::Node
+ # def initialize: (ConstantPathNode target, Location operator_loc, Node value, Location location) -> void
+ #
+ # @return [ConstantPathWriteNode] a new instance of ConstantPathWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5474
+ def initialize(source, target, operator_loc, value, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5484
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5489
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5499
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5494
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ConstantPathWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5504
+ sig { params(params: T.untyped).returns(Prism::ConstantPathWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5489
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5518
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5541
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5536
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5526
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # attr_reader target: ConstantPathNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5523
+ sig { returns(Prism::ConstantPathNode) }
+ def target; 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-0.24.0/lib/prism/node.rb:5565
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5532
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:5575
+ def type; end
+ end
+end
+
+# Represents referencing a constant.
+#
+# Foo
+# ^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:5584
+class Prism::ConstantReadNode < ::Prism::Node
+ # def initialize: (Symbol name, Location location) -> void
+ #
+ # @return [ConstantReadNode] a new instance of ConstantReadNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5586
+ def initialize(source, name, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5594
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5599
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5609
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5604
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ConstantReadNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5614
+ sig { params(params: T.untyped).returns(Prism::ConstantReadNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5599
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5626
+ def deconstruct_keys(keys); end
+
+ # Returns the full name of this constant. For example: "Foo"
+ #
+ # source://prism-0.24.0/lib/prism/node_ext.rb:96
+ def full_name; end
+
+ # Returns the list of parts for the full name of this constant.
+ # For example: [:Foo]
+ #
+ # source://prism-0.24.0/lib/prism/node_ext.rb:91
+ def full_name_parts; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5639
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # The name of the [constant](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#constants).
+ #
+ # X # name `:X`
+ #
+ # SOME_CONSTANT # name `:SOME_CONSTANT`
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5635
+ sig { returns(Symbol) }
+ def name; 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-0.24.0/lib/prism/node.rb:5659
+ def type; 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-0.24.0/lib/prism/node.rb:5669
+ def type; end
+ end
+end
+
+# Represents writing to a constant in a context that doesn't have an explicit value.
+#
+# Foo, Bar = baz
+# ^^^ ^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:5678
+class Prism::ConstantTargetNode < ::Prism::Node
+ # def initialize: (Symbol name, Location location) -> void
+ #
+ # @return [ConstantTargetNode] a new instance of ConstantTargetNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5680
+ def initialize(source, name, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5688
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5693
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5703
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5698
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ConstantTargetNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5708
+ sig { params(params: T.untyped).returns(Prism::ConstantTargetNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5693
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5720
+ def deconstruct_keys(keys); end
+
+ # Returns the full name of this constant. For example: "Foo"
+ #
+ # source://prism-0.24.0/lib/prism/node_ext.rb:165
+ def full_name; end
+
+ # Returns the list of parts for the full name of this constant.
+ # For example: [:Foo]
+ #
+ # source://prism-0.24.0/lib/prism/node_ext.rb:160
+ def full_name_parts; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5729
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5725
+ sig { returns(Symbol) }
+ def name; 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-0.24.0/lib/prism/node.rb:5749
+ def type; 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-0.24.0/lib/prism/node.rb:5759
+ def type; end
+ end
+end
+
+# Represents writing to a constant.
+#
+# Foo = 1
+# ^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:5768
+class Prism::ConstantWriteNode < ::Prism::Node
+ # def initialize: (Symbol name, Location name_loc, Node value, Location operator_loc, Location location) -> void
+ #
+ # @return [ConstantWriteNode] a new instance of ConstantWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5770
+ def initialize(source, name, name_loc, value, operator_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5781
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5786
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5796
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5791
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ConstantWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5801
+ sig { params(params: T.untyped).returns(Prism::ConstantWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5786
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5816
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5845
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5821
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5824
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5840
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5833
+ sig { returns(Prism::Location) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:5869
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5830
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:5879
+ 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:
+#
+# source = Prism::Source.new("[1]")
+#
+# Prism::ArrayNode.new(
+# [
+# Prism::IntegerNode.new(
+# Prism::IntegerBaseFlags::DECIMAL,
+# Prism::Location.new(source, 1, 1),
+# source
+# )
+# ],
+# Prism::Location.new(source, 0, 1),
+# Prism::Location.new(source, 2, 1),
+# source
+# )
+#
+# you could instead write:
+#
+# source = Prism::Source.new("[1]")
+#
+# ArrayNode(
+# IntegerNode(Prism::IntegerBaseFlags::DECIMAL, Location(source, 1, 1)), source),
+# Location(source, 0, 1),
+# Location(source, 2, 1),
+# source
+# )
+#
+# This is mostly helpful in the context of writing tests, but can also be used
+# to generate trees programmatically.
+#
+# source://prism-0.24.0/lib/prism/dsl.rb:40
+module Prism::DSL
+ private
+
+ # Create a new AliasGlobalVariableNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:49
+ def AliasGlobalVariableNode(new_name, old_name, keyword_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new AliasMethodNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:54
+ def AliasMethodNode(new_name, old_name, keyword_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new AlternationPatternNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:59
+ def AlternationPatternNode(left, right, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new AndNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:64
+ def AndNode(left, right, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new ArgumentsNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:69
+ def ArgumentsNode(flags, arguments, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new ArrayNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:74
+ def ArrayNode(flags, elements, opening_loc, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new ArrayPatternNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:79
+ 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-0.24.0/lib/prism/dsl.rb:84
+ def AssocNode(key, value, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new AssocSplatNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:89
+ def AssocSplatNode(value, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new BackReferenceReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:94
+ def BackReferenceReadNode(name, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new BeginNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:99
+ 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-0.24.0/lib/prism/dsl.rb:104
+ def BlockArgumentNode(expression, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new BlockLocalVariableNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:109
+ def BlockLocalVariableNode(flags, name, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new BlockNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:114
+ 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-0.24.0/lib/prism/dsl.rb:119
+ def BlockParameterNode(flags, name, name_loc, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new BlockParametersNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:124
+ def BlockParametersNode(parameters, locals, opening_loc, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new BreakNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:129
+ def BreakNode(arguments, keyword_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new CallAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:134
+ 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-0.24.0/lib/prism/dsl.rb:139
+ 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-0.24.0/lib/prism/dsl.rb:144
+ 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-0.24.0/lib/prism/dsl.rb:149
+ 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-0.24.0/lib/prism/dsl.rb:154
+ 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-0.24.0/lib/prism/dsl.rb:159
+ def CapturePatternNode(value, target, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new CaseMatchNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:164
+ 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-0.24.0/lib/prism/dsl.rb:169
+ 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-0.24.0/lib/prism/dsl.rb:174
+ 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-0.24.0/lib/prism/dsl.rb:179
+ def ClassVariableAndWriteNode(name, name_loc, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new ClassVariableOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:184
+ 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-0.24.0/lib/prism/dsl.rb:189
+ def ClassVariableOrWriteNode(name, name_loc, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new ClassVariableReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:194
+ def ClassVariableReadNode(name, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new ClassVariableTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:199
+ def ClassVariableTargetNode(name, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new ClassVariableWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:204
+ def ClassVariableWriteNode(name, name_loc, value, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new ConstantAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:209
+ def ConstantAndWriteNode(name, name_loc, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new ConstantOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:214
+ 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-0.24.0/lib/prism/dsl.rb:219
+ def ConstantOrWriteNode(name, name_loc, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new ConstantPathAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:224
+ def ConstantPathAndWriteNode(target, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new ConstantPathNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:229
+ def ConstantPathNode(parent, child, delimiter_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new ConstantPathOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:234
+ def ConstantPathOperatorWriteNode(target, operator_loc, value, operator, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new ConstantPathOrWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:239
+ def ConstantPathOrWriteNode(target, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new ConstantPathTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:244
+ def ConstantPathTargetNode(parent, child, delimiter_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new ConstantPathWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:249
+ def ConstantPathWriteNode(target, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new ConstantReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:254
+ def ConstantReadNode(name, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new ConstantTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:259
+ def ConstantTargetNode(name, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new ConstantWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:264
+ def ConstantWriteNode(name, name_loc, value, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new DefNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:269
+ 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-0.24.0/lib/prism/dsl.rb:274
+ 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-0.24.0/lib/prism/dsl.rb:279
+ 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-0.24.0/lib/prism/dsl.rb:284
+ def EmbeddedStatementsNode(opening_loc, statements, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new EmbeddedVariableNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:289
+ def EmbeddedVariableNode(operator_loc, variable, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new EnsureNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:294
+ 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-0.24.0/lib/prism/dsl.rb:299
+ def FalseNode(source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new FindPatternNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:304
+ 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-0.24.0/lib/prism/dsl.rb:309
+ def FlipFlopNode(flags, left, right, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new FloatNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:314
+ def FloatNode(source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new ForNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:319
+ 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-0.24.0/lib/prism/dsl.rb:324
+ def ForwardingArgumentsNode(source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new ForwardingParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:329
+ def ForwardingParameterNode(source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new ForwardingSuperNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:334
+ def ForwardingSuperNode(block, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new GlobalVariableAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:339
+ def GlobalVariableAndWriteNode(name, name_loc, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new GlobalVariableOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:344
+ 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-0.24.0/lib/prism/dsl.rb:349
+ def GlobalVariableOrWriteNode(name, name_loc, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new GlobalVariableReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:354
+ def GlobalVariableReadNode(name, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new GlobalVariableTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:359
+ def GlobalVariableTargetNode(name, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new GlobalVariableWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:364
+ def GlobalVariableWriteNode(name, name_loc, value, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new HashNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:369
+ def HashNode(opening_loc, elements, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new HashPatternNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:374
+ 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-0.24.0/lib/prism/dsl.rb:379
+ 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-0.24.0/lib/prism/dsl.rb:384
+ def ImaginaryNode(numeric, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new ImplicitNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:389
+ def ImplicitNode(value, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new ImplicitRestNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:394
+ def ImplicitRestNode(source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new InNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:399
+ def InNode(pattern, statements, in_loc, then_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new IndexAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:404
+ 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-0.24.0/lib/prism/dsl.rb:409
+ 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-0.24.0/lib/prism/dsl.rb:414
+ 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-0.24.0/lib/prism/dsl.rb:419
+ 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-0.24.0/lib/prism/dsl.rb:424
+ def InstanceVariableAndWriteNode(name, name_loc, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new InstanceVariableOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:429
+ 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-0.24.0/lib/prism/dsl.rb:434
+ def InstanceVariableOrWriteNode(name, name_loc, operator_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new InstanceVariableReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:439
+ def InstanceVariableReadNode(name, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new InstanceVariableTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:444
+ def InstanceVariableTargetNode(name, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new InstanceVariableWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:449
+ def InstanceVariableWriteNode(name, name_loc, value, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new IntegerNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:454
+ def IntegerNode(flags, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new InterpolatedMatchLastLineNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:459
+ def InterpolatedMatchLastLineNode(flags, opening_loc, parts, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new InterpolatedRegularExpressionNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:464
+ def InterpolatedRegularExpressionNode(flags, opening_loc, parts, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new InterpolatedStringNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:469
+ def InterpolatedStringNode(opening_loc, parts, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new InterpolatedSymbolNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:474
+ def InterpolatedSymbolNode(opening_loc, parts, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new InterpolatedXStringNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:479
+ def InterpolatedXStringNode(opening_loc, parts, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new KeywordHashNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:484
+ def KeywordHashNode(flags, elements, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new KeywordRestParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:489
+ def KeywordRestParameterNode(flags, name, name_loc, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new LambdaNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:494
+ 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-0.24.0/lib/prism/dsl.rb:499
+ 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-0.24.0/lib/prism/dsl.rb:504
+ 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-0.24.0/lib/prism/dsl.rb:509
+ 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-0.24.0/lib/prism/dsl.rb:514
+ def LocalVariableReadNode(name, depth, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new LocalVariableTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:519
+ def LocalVariableTargetNode(name, depth, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new LocalVariableWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:524
+ 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-0.24.0/lib/prism/dsl.rb:44
+ def Location(source = T.unsafe(nil), start_offset = T.unsafe(nil), length = T.unsafe(nil)); end
+
+ # Create a new MatchLastLineNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:529
+ 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-0.24.0/lib/prism/dsl.rb:534
+ def MatchPredicateNode(value, pattern, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new MatchRequiredNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:539
+ def MatchRequiredNode(value, pattern, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new MatchWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:544
+ def MatchWriteNode(call, targets, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new MissingNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:549
+ def MissingNode(source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new ModuleNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:554
+ 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-0.24.0/lib/prism/dsl.rb:559
+ 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-0.24.0/lib/prism/dsl.rb:564
+ 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-0.24.0/lib/prism/dsl.rb:569
+ def NextNode(arguments, keyword_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new NilNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:574
+ def NilNode(source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new NoKeywordsParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:579
+ def NoKeywordsParameterNode(operator_loc, keyword_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new NumberedParametersNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:584
+ def NumberedParametersNode(maximum, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new NumberedReferenceReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:589
+ def NumberedReferenceReadNode(number, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new OptionalKeywordParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:594
+ def OptionalKeywordParameterNode(flags, name, name_loc, value, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new OptionalParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:599
+ 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-0.24.0/lib/prism/dsl.rb:604
+ def OrNode(left, right, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new ParametersNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:609
+ 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-0.24.0/lib/prism/dsl.rb:614
+ def ParenthesesNode(body, opening_loc, closing_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new PinnedExpressionNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:619
+ 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-0.24.0/lib/prism/dsl.rb:624
+ def PinnedVariableNode(variable, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new PostExecutionNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:629
+ 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-0.24.0/lib/prism/dsl.rb:634
+ 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-0.24.0/lib/prism/dsl.rb:639
+ def ProgramNode(locals, statements, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new RangeNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:644
+ def RangeNode(flags, left, right, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new RationalNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:649
+ def RationalNode(numeric, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new RedoNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:654
+ def RedoNode(source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new RegularExpressionNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:659
+ 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-0.24.0/lib/prism/dsl.rb:664
+ def RequiredKeywordParameterNode(flags, name, name_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new RequiredParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:669
+ def RequiredParameterNode(flags, name, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new RescueModifierNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:674
+ def RescueModifierNode(expression, keyword_loc, rescue_expression, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new RescueNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:679
+ 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-0.24.0/lib/prism/dsl.rb:684
+ def RestParameterNode(flags, name, name_loc, operator_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new RetryNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:689
+ def RetryNode(source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new ReturnNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:694
+ def ReturnNode(keyword_loc, arguments, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new SelfNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:699
+ def SelfNode(source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new SingletonClassNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:704
+ 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-0.24.0/lib/prism/dsl.rb:709
+ def SourceEncodingNode(source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new SourceFileNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:714
+ def SourceFileNode(filepath, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new SourceLineNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:719
+ def SourceLineNode(source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new SplatNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:724
+ def SplatNode(operator_loc, expression, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new StatementsNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:729
+ def StatementsNode(body, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new StringNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:734
+ 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-0.24.0/lib/prism/dsl.rb:739
+ 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-0.24.0/lib/prism/dsl.rb:744
+ 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-0.24.0/lib/prism/dsl.rb:749
+ def TrueNode(source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new UndefNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:754
+ def UndefNode(names, keyword_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new UnlessNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:759
+ 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-0.24.0/lib/prism/dsl.rb:764
+ 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-0.24.0/lib/prism/dsl.rb:769
+ def WhenNode(keyword_loc, conditions, statements, source = T.unsafe(nil), location = T.unsafe(nil)); end
+
+ # Create a new WhileNode node
+ #
+ # source://prism-0.24.0/lib/prism/dsl.rb:774
+ 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-0.24.0/lib/prism/dsl.rb:779
+ 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-0.24.0/lib/prism/dsl.rb:784
+ def YieldNode(keyword_loc, lparen_loc, arguments, rparen_loc, source = T.unsafe(nil), location = T.unsafe(nil)); end
+end
+
+# This module is used for testing and debugging and is not meant to be used by
+# consumers of this library.
+#
+# source://prism-0.24.0/lib/prism/debug.rb:6
+module Prism::Debug
+ class << self
+ # :call-seq:
+ # Debug::cruby_locals(source) -> Array
+ #
+ # For the given source, compiles with CRuby and returns a list of all of the
+ # sets of local variables that were encountered.
+ #
+ # source://prism-0.24.0/lib/prism/debug.rb:54
+ def cruby_locals(source); end
+
+ def format_errors(_arg0, _arg1); end
+ def inspect_node(_arg0); end
+ def memsize(_arg0); end
+ def named_captures(_arg0); end
+
+ # :call-seq:
+ # Debug::newlines(source) -> Array
+ #
+ # For the given source string, return the byte offsets of every newline in
+ # the source.
+ #
+ # source://prism-0.24.0/lib/prism/debug.rb:202
+ def newlines(source); end
+
+ # :call-seq:
+ # Debug::prism_locals(source) -> Array
+ #
+ # For the given source, parses with prism and returns a list of all of the
+ # sets of local variables that were encountered.
+ #
+ # source://prism-0.24.0/lib/prism/debug.rb:98
+ def prism_locals(source); end
+
+ def profile_file(_arg0); end
+ end
+end
+
+# Used to hold the place of a local that will be in the local table but
+# cannot be accessed directly from the source code. For example, the
+# iteration variable in a for loop or the positional parameter on a method
+# definition that is destructured.
+#
+# source://prism-0.24.0/lib/prism/debug.rb:90
+Prism::Debug::AnonymousLocal = T.let(T.unsafe(nil), Object)
+
+# A wrapper around a RubyVM::InstructionSequence that provides a more
+# convenient interface for accessing parts of the iseq.
+#
+# source://prism-0.24.0/lib/prism/debug.rb:9
+class Prism::Debug::ISeq
+ # @return [ISeq] a new instance of ISeq
+ #
+ # source://prism-0.24.0/lib/prism/debug.rb:12
+ def initialize(parts); end
+
+ # source://prism-0.24.0/lib/prism/debug.rb:28
+ def each_child; end
+
+ # source://prism-0.24.0/lib/prism/debug.rb:24
+ def instructions; end
+
+ # source://prism-0.24.0/lib/prism/debug.rb:20
+ def local_table; end
+
+ # source://prism-0.24.0/lib/prism/debug.rb:10
+ def parts; end
+
+ # source://prism-0.24.0/lib/prism/debug.rb:16
+ def type; end
+end
+
+# Represents a method definition.
+#
+# def method
+# end
+# ^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:5889
+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
+ #
+ # @return [DefNode] a new instance of DefNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5891
+ 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
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5910
+ def accept(visitor); end
+
+ # attr_reader body: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5977
+ sig { returns(T.nilable(Prism::Node)) }
+ def body; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5915
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5929
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5920
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> DefNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5934
+ sig { params(params: T.untyped).returns(Prism::DefNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5915
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5957
+ def deconstruct_keys(keys); end
+
+ # def def_keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6050
+ sig { returns(String) }
+ def def_keyword; end
+
+ # attr_reader def_keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5983
+ sig { returns(Prism::Location) }
+ def def_keyword_loc; end
+
+ # def end_keyword: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6075
+ sig { returns(T.nilable(String)) }
+ def end_keyword; end
+
+ # attr_reader end_keyword_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6037
+ sig { returns(T.nilable(Prism::Location)) }
+ def end_keyword_loc; end
+
+ # def equal: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6070
+ sig { returns(T.nilable(String)) }
+ def equal; end
+
+ # attr_reader equal_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6025
+ sig { returns(T.nilable(Prism::Location)) }
+ def equal_loc; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6080
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader locals: Array[Symbol]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5980
+ sig { returns(T::Array[Symbol]) }
+ def locals; end
+
+ # def lparen: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6060
+ sig { returns(T.nilable(String)) }
+ def lparen; end
+
+ # attr_reader lparen_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6001
+ sig { returns(T.nilable(Prism::Location)) }
+ def lparen_loc; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5962
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5965
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # def operator: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6055
+ sig { returns(T.nilable(String)) }
+ def operator; end
+
+ # attr_reader operator_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5989
+ sig { returns(T.nilable(Prism::Location)) }
+ def operator_loc; end
+
+ # attr_reader parameters: ParametersNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5974
+ sig { returns(T.nilable(Prism::ParametersNode)) }
+ def parameters; end
+
+ # attr_reader receiver: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:5971
+ sig { returns(T.nilable(Prism::Node)) }
+ def receiver; end
+
+ # def rparen: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6065
+ sig { returns(T.nilable(String)) }
+ def rparen; end
+
+ # attr_reader rparen_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6013
+ sig { returns(T.nilable(Prism::Location)) }
+ def rparen_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
+ # 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-0.24.0/lib/prism/node.rb:6126
+ def type; 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-0.24.0/lib/prism/node.rb:6136
+ def type; end
+ end
+end
+
+# Represents the use of the `defined?` keyword.
+#
+# defined?(a)
+# ^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:6145
+class Prism::DefinedNode < ::Prism::Node
+ # def initialize: (Location? lparen_loc, Node value, Location? rparen_loc, Location keyword_loc, Location location) -> void
+ #
+ # @return [DefinedNode] a new instance of DefinedNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6147
+ def initialize(source, lparen_loc, value, rparen_loc, keyword_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6158
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6163
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6173
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6168
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> DefinedNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6178
+ sig { params(params: T.untyped).returns(Prism::DefinedNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6163
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6193
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6247
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6242
+ sig { returns(String) }
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6225
+ sig { returns(Prism::Location) }
+ def keyword_loc; end
+
+ # def lparen: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6232
+ sig { returns(T.nilable(String)) }
+ def lparen; end
+
+ # attr_reader lparen_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6198
+ sig { returns(T.nilable(Prism::Location)) }
+ def lparen_loc; end
+
+ # def rparen: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6237
+ sig { returns(T.nilable(String)) }
+ def rparen; end
+
+ # attr_reader rparen_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6213
+ sig { returns(T.nilable(Prism::Location)) }
+ def rparen_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
+ # 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-0.24.0/lib/prism/node.rb:6271
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6210
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:6281
+ def type; end
+ end
+end
+
+# source://prism-0.24.0/lib/prism/desugar_compiler.rb:4
+class Prism::DesugarAndWriteNode
+ # @return [DesugarAndWriteNode] a new instance of DesugarAndWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:7
+ def initialize(node, source, read_class, write_class, *arguments); end
+
+ # Returns the value of attribute arguments.
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:5
+ def arguments; end
+
+ # Desugar `x &&= y` to `x && x = y`
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:16
+ def compile; end
+
+ # Returns the value of attribute node.
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:5
+ def node; end
+
+ # Returns the value of attribute read_class.
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:5
+ def read_class; end
+
+ # Returns the value of attribute source.
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:5
+ def source; end
+
+ # Returns the value of attribute write_class.
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:5
+ def write_class; end
+end
+
+# DesugarCompiler is a compiler that desugars Ruby code into a more primitive
+# form. This is useful for consumers that want to deal with fewer node types.
+#
+# source://prism-0.24.0/lib/prism/desugar_compiler.rb:216
+class Prism::DesugarCompiler < ::Prism::MutationCompiler
+ # @@foo &&= bar
+ #
+ # becomes
+ #
+ # @@foo && @@foo = bar
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:222
+ def visit_class_variable_and_write_node(node); end
+
+ # @@foo += bar
+ #
+ # becomes
+ #
+ # @@foo = @@foo + bar
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:240
+ def visit_class_variable_operator_write_node(node); end
+
+ # @@foo ||= bar
+ #
+ # becomes
+ #
+ # defined?(@@foo) ? @@foo : @@foo = bar
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:231
+ def visit_class_variable_or_write_node(node); end
+
+ # Foo &&= bar
+ #
+ # becomes
+ #
+ # Foo && Foo = bar
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:249
+ def visit_constant_and_write_node(node); end
+
+ # Foo += bar
+ #
+ # becomes
+ #
+ # Foo = Foo + bar
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:267
+ def visit_constant_operator_write_node(node); end
+
+ # Foo ||= bar
+ #
+ # becomes
+ #
+ # defined?(Foo) ? Foo : Foo = bar
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:258
+ def visit_constant_or_write_node(node); end
+
+ # $foo &&= bar
+ #
+ # becomes
+ #
+ # $foo && $foo = bar
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:276
+ def visit_global_variable_and_write_node(node); end
+
+ # $foo += bar
+ #
+ # becomes
+ #
+ # $foo = $foo + bar
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:294
+ def visit_global_variable_operator_write_node(node); end
+
+ # $foo ||= bar
+ #
+ # becomes
+ #
+ # defined?($foo) ? $foo : $foo = bar
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:285
+ def visit_global_variable_or_write_node(node); end
+
+ # becomes
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:303
+ def visit_instance_variable_and_write_node(node); end
+
+ # becomes
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:321
+ def visit_instance_variable_operator_write_node(node); end
+
+ # becomes
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:312
+ def visit_instance_variable_or_write_node(node); end
+
+ # foo &&= bar
+ #
+ # becomes
+ #
+ # foo && foo = bar
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:330
+ def visit_local_variable_and_write_node(node); end
+
+ # foo += bar
+ #
+ # becomes
+ #
+ # foo = foo + bar
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:348
+ def visit_local_variable_operator_write_node(node); end
+
+ # foo ||= bar
+ #
+ # becomes
+ #
+ # foo || foo = bar
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:339
+ def visit_local_variable_or_write_node(node); end
+end
+
+# source://prism-0.24.0/lib/prism/desugar_compiler.rb:63
+class Prism::DesugarOperatorWriteNode
+ # @return [DesugarOperatorWriteNode] a new instance of DesugarOperatorWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:66
+ def initialize(node, source, read_class, write_class, *arguments); end
+
+ # Returns the value of attribute arguments.
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:64
+ def arguments; end
+
+ # Desugar `x += y` to `x = x + y`
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:75
+ def compile; end
+
+ # Returns the value of attribute node.
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:64
+ def node; end
+
+ # Returns the value of attribute read_class.
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:64
+ def read_class; end
+
+ # Returns the value of attribute source.
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:64
+ def source; end
+
+ # Returns the value of attribute write_class.
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:64
+ def write_class; end
+end
+
+# source://prism-0.24.0/lib/prism/desugar_compiler.rb:27
+class Prism::DesugarOrWriteDefinedNode
+ # @return [DesugarOrWriteDefinedNode] a new instance of DesugarOrWriteDefinedNode
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:30
+ def initialize(node, source, read_class, write_class, *arguments); end
+
+ # Returns the value of attribute arguments.
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:28
+ def arguments; end
+
+ # Desugar `x ||= y` to `defined?(x) ? x : x = y`
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:39
+ def compile; end
+
+ # Returns the value of attribute node.
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:28
+ def node; end
+
+ # Returns the value of attribute read_class.
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:28
+ def read_class; end
+
+ # Returns the value of attribute source.
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:28
+ def source; end
+
+ # Returns the value of attribute write_class.
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:28
+ def write_class; end
+end
+
+# source://prism-0.24.0/lib/prism/desugar_compiler.rb:99
+class Prism::DesugarOrWriteNode
+ # @return [DesugarOrWriteNode] a new instance of DesugarOrWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:102
+ def initialize(node, source, read_class, write_class, *arguments); end
+
+ # Returns the value of attribute arguments.
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:100
+ def arguments; end
+
+ # Desugar `x ||= y` to `x || x = y`
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:111
+ def compile; end
+
+ # Returns the value of attribute node.
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:100
+ def node; end
+
+ # Returns the value of attribute read_class.
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:100
+ def read_class; end
+
+ # Returns the value of attribute source.
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:100
+ def source; end
+
+ # Returns the value of attribute write_class.
+ #
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:100
+ def write_class; end
+end
+
+# The dispatcher class fires events for nodes that are found while walking an
+# AST to all registered listeners. It's useful for performing different types
+# of analysis on the AST while only having to walk the tree once.
+#
+# To use the dispatcher, you would first instantiate it and register listeners
+# for the events you're interested in:
+#
+# class OctalListener
+# def on_integer_node_enter(node)
+# if node.octal? && !node.slice.start_with?("0o")
+# warn("Octal integers should be written with the 0o prefix")
+# end
+# end
+# end
+#
+# dispatcher = Dispatcher.new
+# dispatcher.register(listener, :on_integer_node_enter)
+#
+# Then, you can walk any number of trees and dispatch events to the listeners:
+#
+# result = Prism.parse("001 + 002 + 003")
+# dispatcher.dispatch(result.value)
+#
+# Optionally, you can also use `#dispatch_once` to dispatch enter and leave
+# events for a single node without recursing further down the tree. This can
+# be useful in circumstances where you want to reuse the listeners you already
+# have registers but want to stop walking the tree at a certain point.
+#
+# integer = result.value.statements.body.first.receiver.receiver
+# dispatcher.dispatch_once(integer)
+#
+# source://prism-0.24.0/lib/prism/dispatcher.rb:40
+class Prism::Dispatcher < ::Prism::Visitor
+ # Initialize a new dispatcher.
+ #
+ # @return [Dispatcher] a new instance of Dispatcher
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:45
+ def initialize; end
+
+ # Walks `root` dispatching events to all registered listeners.
+ #
+ # def dispatch: (Node) -> void
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:16
+ def dispatch(node); end
+
+ # Dispatches a single event for `node` to all registered listeners.
+ #
+ # def dispatch_once: (Node) -> void
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:64
+ def dispatch_once(node); end
+
+ # attr_reader listeners: Hash[Symbol, Array[Listener]]
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:42
+ def listeners; end
+
+ # Register a listener for one or more events.
+ #
+ # def register: (Listener, *Symbol) -> void
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:52
+ def register(listener, *events); end
+
+ # Dispatch enter and leave events for AliasGlobalVariableNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:70
+ def visit_alias_global_variable_node(node); end
+
+ # Dispatch enter and leave events for AliasMethodNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:78
+ def visit_alias_method_node(node); end
+
+ # Dispatch enter and leave events for AlternationPatternNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:86
+ def visit_alternation_pattern_node(node); end
+
+ # Dispatch enter and leave events for AndNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:94
+ def visit_and_node(node); end
+
+ # Dispatch enter and leave events for ArgumentsNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:102
+ def visit_arguments_node(node); end
+
+ # Dispatch enter and leave events for ArrayNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:110
+ def visit_array_node(node); end
+
+ # Dispatch enter and leave events for ArrayPatternNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:118
+ def visit_array_pattern_node(node); end
+
+ # Dispatch enter and leave events for AssocNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:126
+ def visit_assoc_node(node); end
+
+ # Dispatch enter and leave events for AssocSplatNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:134
+ def visit_assoc_splat_node(node); end
+
+ # Dispatch enter and leave events for BackReferenceReadNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:142
+ def visit_back_reference_read_node(node); end
+
+ # Dispatch enter and leave events for BeginNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:150
+ def visit_begin_node(node); end
+
+ # Dispatch enter and leave events for BlockArgumentNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:158
+ def visit_block_argument_node(node); end
+
+ # Dispatch enter and leave events for BlockLocalVariableNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:166
+ def visit_block_local_variable_node(node); end
+
+ # Dispatch enter and leave events for BlockNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:174
+ def visit_block_node(node); end
+
+ # Dispatch enter and leave events for BlockParameterNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:182
+ def visit_block_parameter_node(node); end
+
+ # Dispatch enter and leave events for BlockParametersNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:190
+ def visit_block_parameters_node(node); end
+
+ # Dispatch enter and leave events for BreakNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:198
+ def visit_break_node(node); end
+
+ # Dispatch enter and leave events for CallAndWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:206
+ def visit_call_and_write_node(node); end
+
+ # Dispatch enter and leave events for CallNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:214
+ def visit_call_node(node); end
+
+ # Dispatch enter and leave events for CallOperatorWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:222
+ def visit_call_operator_write_node(node); end
+
+ # Dispatch enter and leave events for CallOrWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:230
+ def visit_call_or_write_node(node); end
+
+ # Dispatch enter and leave events for CallTargetNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:238
+ def visit_call_target_node(node); end
+
+ # Dispatch enter and leave events for CapturePatternNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:246
+ def visit_capture_pattern_node(node); end
+
+ # Dispatch enter and leave events for CaseMatchNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:254
+ def visit_case_match_node(node); end
+
+ # Dispatch enter and leave events for CaseNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:262
+ def visit_case_node(node); end
+
+ # Dispatch enter and leave events for ClassNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:270
+ def visit_class_node(node); end
+
+ # Dispatch enter and leave events for ClassVariableAndWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:278
+ def visit_class_variable_and_write_node(node); end
+
+ # Dispatch enter and leave events for ClassVariableOperatorWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:286
+ def visit_class_variable_operator_write_node(node); end
+
+ # Dispatch enter and leave events for ClassVariableOrWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:294
+ def visit_class_variable_or_write_node(node); end
+
+ # Dispatch enter and leave events for ClassVariableReadNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:302
+ def visit_class_variable_read_node(node); end
+
+ # Dispatch enter and leave events for ClassVariableTargetNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:310
+ def visit_class_variable_target_node(node); end
+
+ # Dispatch enter and leave events for ClassVariableWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:318
+ def visit_class_variable_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantAndWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:326
+ def visit_constant_and_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantOperatorWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:334
+ def visit_constant_operator_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantOrWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:342
+ def visit_constant_or_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantPathAndWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:350
+ def visit_constant_path_and_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantPathNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:358
+ def visit_constant_path_node(node); end
+
+ # Dispatch enter and leave events for ConstantPathOperatorWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:366
+ def visit_constant_path_operator_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantPathOrWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:374
+ def visit_constant_path_or_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantPathTargetNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:382
+ def visit_constant_path_target_node(node); end
+
+ # Dispatch enter and leave events for ConstantPathWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:390
+ def visit_constant_path_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantReadNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:398
+ def visit_constant_read_node(node); end
+
+ # Dispatch enter and leave events for ConstantTargetNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:406
+ def visit_constant_target_node(node); end
+
+ # Dispatch enter and leave events for ConstantWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:414
+ def visit_constant_write_node(node); end
+
+ # Dispatch enter and leave events for DefNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:422
+ def visit_def_node(node); end
+
+ # Dispatch enter and leave events for DefinedNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:430
+ def visit_defined_node(node); end
+
+ # Dispatch enter and leave events for ElseNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:438
+ def visit_else_node(node); end
+
+ # Dispatch enter and leave events for EmbeddedStatementsNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:446
+ def visit_embedded_statements_node(node); end
+
+ # Dispatch enter and leave events for EmbeddedVariableNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:454
+ def visit_embedded_variable_node(node); end
+
+ # Dispatch enter and leave events for EnsureNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:462
+ def visit_ensure_node(node); end
+
+ # Dispatch enter and leave events for FalseNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:470
+ def visit_false_node(node); end
+
+ # Dispatch enter and leave events for FindPatternNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:478
+ def visit_find_pattern_node(node); end
+
+ # Dispatch enter and leave events for FlipFlopNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:486
+ def visit_flip_flop_node(node); end
+
+ # Dispatch enter and leave events for FloatNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:494
+ def visit_float_node(node); end
+
+ # Dispatch enter and leave events for ForNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:502
+ def visit_for_node(node); end
+
+ # Dispatch enter and leave events for ForwardingArgumentsNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:510
+ def visit_forwarding_arguments_node(node); end
+
+ # Dispatch enter and leave events for ForwardingParameterNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:518
+ def visit_forwarding_parameter_node(node); end
+
+ # Dispatch enter and leave events for ForwardingSuperNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:526
+ def visit_forwarding_super_node(node); end
+
+ # Dispatch enter and leave events for GlobalVariableAndWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:534
+ def visit_global_variable_and_write_node(node); end
+
+ # Dispatch enter and leave events for GlobalVariableOperatorWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:542
+ def visit_global_variable_operator_write_node(node); end
+
+ # Dispatch enter and leave events for GlobalVariableOrWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:550
+ def visit_global_variable_or_write_node(node); end
+
+ # Dispatch enter and leave events for GlobalVariableReadNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:558
+ def visit_global_variable_read_node(node); end
+
+ # Dispatch enter and leave events for GlobalVariableTargetNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:566
+ def visit_global_variable_target_node(node); end
+
+ # Dispatch enter and leave events for GlobalVariableWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:574
+ def visit_global_variable_write_node(node); end
+
+ # Dispatch enter and leave events for HashNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:582
+ def visit_hash_node(node); end
+
+ # Dispatch enter and leave events for HashPatternNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:590
+ def visit_hash_pattern_node(node); end
+
+ # Dispatch enter and leave events for IfNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:598
+ def visit_if_node(node); end
+
+ # Dispatch enter and leave events for ImaginaryNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:606
+ def visit_imaginary_node(node); end
+
+ # Dispatch enter and leave events for ImplicitNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:614
+ def visit_implicit_node(node); end
+
+ # Dispatch enter and leave events for ImplicitRestNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:622
+ def visit_implicit_rest_node(node); end
+
+ # Dispatch enter and leave events for InNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:630
+ def visit_in_node(node); end
+
+ # Dispatch enter and leave events for IndexAndWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:638
+ def visit_index_and_write_node(node); end
+
+ # Dispatch enter and leave events for IndexOperatorWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:646
+ def visit_index_operator_write_node(node); end
+
+ # Dispatch enter and leave events for IndexOrWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:654
+ def visit_index_or_write_node(node); end
+
+ # Dispatch enter and leave events for IndexTargetNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:662
+ def visit_index_target_node(node); end
+
+ # Dispatch enter and leave events for InstanceVariableAndWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:670
+ def visit_instance_variable_and_write_node(node); end
+
+ # Dispatch enter and leave events for InstanceVariableOperatorWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:678
+ def visit_instance_variable_operator_write_node(node); end
+
+ # Dispatch enter and leave events for InstanceVariableOrWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:686
+ def visit_instance_variable_or_write_node(node); end
+
+ # Dispatch enter and leave events for InstanceVariableReadNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:694
+ def visit_instance_variable_read_node(node); end
+
+ # Dispatch enter and leave events for InstanceVariableTargetNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:702
+ def visit_instance_variable_target_node(node); end
+
+ # Dispatch enter and leave events for InstanceVariableWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:710
+ def visit_instance_variable_write_node(node); end
+
+ # Dispatch enter and leave events for IntegerNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:718
+ def visit_integer_node(node); end
+
+ # Dispatch enter and leave events for InterpolatedMatchLastLineNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:726
+ def visit_interpolated_match_last_line_node(node); end
+
+ # Dispatch enter and leave events for InterpolatedRegularExpressionNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:734
+ def visit_interpolated_regular_expression_node(node); end
+
+ # Dispatch enter and leave events for InterpolatedStringNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:742
+ def visit_interpolated_string_node(node); end
+
+ # Dispatch enter and leave events for InterpolatedSymbolNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:750
+ def visit_interpolated_symbol_node(node); end
+
+ # Dispatch enter and leave events for InterpolatedXStringNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:758
+ def visit_interpolated_x_string_node(node); end
+
+ # Dispatch enter and leave events for KeywordHashNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:766
+ def visit_keyword_hash_node(node); end
+
+ # Dispatch enter and leave events for KeywordRestParameterNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:774
+ def visit_keyword_rest_parameter_node(node); end
+
+ # Dispatch enter and leave events for LambdaNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:782
+ def visit_lambda_node(node); end
+
+ # Dispatch enter and leave events for LocalVariableAndWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:790
+ def visit_local_variable_and_write_node(node); end
+
+ # Dispatch enter and leave events for LocalVariableOperatorWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:798
+ def visit_local_variable_operator_write_node(node); end
+
+ # Dispatch enter and leave events for LocalVariableOrWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:806
+ def visit_local_variable_or_write_node(node); end
+
+ # Dispatch enter and leave events for LocalVariableReadNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:814
+ def visit_local_variable_read_node(node); end
+
+ # Dispatch enter and leave events for LocalVariableTargetNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:822
+ def visit_local_variable_target_node(node); end
+
+ # Dispatch enter and leave events for LocalVariableWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:830
+ def visit_local_variable_write_node(node); end
+
+ # Dispatch enter and leave events for MatchLastLineNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:838
+ def visit_match_last_line_node(node); end
+
+ # Dispatch enter and leave events for MatchPredicateNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:846
+ def visit_match_predicate_node(node); end
+
+ # Dispatch enter and leave events for MatchRequiredNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:854
+ def visit_match_required_node(node); end
+
+ # Dispatch enter and leave events for MatchWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:862
+ def visit_match_write_node(node); end
+
+ # Dispatch enter and leave events for MissingNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:870
+ def visit_missing_node(node); end
+
+ # Dispatch enter and leave events for ModuleNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:878
+ def visit_module_node(node); end
+
+ # Dispatch enter and leave events for MultiTargetNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:886
+ def visit_multi_target_node(node); end
+
+ # Dispatch enter and leave events for MultiWriteNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:894
+ def visit_multi_write_node(node); end
+
+ # Dispatch enter and leave events for NextNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:902
+ def visit_next_node(node); end
+
+ # Dispatch enter and leave events for NilNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:910
+ def visit_nil_node(node); end
+
+ # Dispatch enter and leave events for NoKeywordsParameterNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:918
+ def visit_no_keywords_parameter_node(node); end
+
+ # Dispatch enter and leave events for NumberedParametersNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:926
+ def visit_numbered_parameters_node(node); end
+
+ # Dispatch enter and leave events for NumberedReferenceReadNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:934
+ def visit_numbered_reference_read_node(node); end
+
+ # Dispatch enter and leave events for OptionalKeywordParameterNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:942
+ def visit_optional_keyword_parameter_node(node); end
+
+ # Dispatch enter and leave events for OptionalParameterNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:950
+ def visit_optional_parameter_node(node); end
+
+ # Dispatch enter and leave events for OrNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:958
+ def visit_or_node(node); end
+
+ # Dispatch enter and leave events for ParametersNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:966
+ def visit_parameters_node(node); end
+
+ # Dispatch enter and leave events for ParenthesesNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:974
+ def visit_parentheses_node(node); end
+
+ # Dispatch enter and leave events for PinnedExpressionNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:982
+ def visit_pinned_expression_node(node); end
+
+ # Dispatch enter and leave events for PinnedVariableNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:990
+ def visit_pinned_variable_node(node); end
+
+ # Dispatch enter and leave events for PostExecutionNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:998
+ def visit_post_execution_node(node); end
+
+ # Dispatch enter and leave events for PreExecutionNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1006
+ def visit_pre_execution_node(node); end
+
+ # Dispatch enter and leave events for ProgramNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1014
+ def visit_program_node(node); end
+
+ # Dispatch enter and leave events for RangeNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1022
+ def visit_range_node(node); end
+
+ # Dispatch enter and leave events for RationalNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1030
+ def visit_rational_node(node); end
+
+ # Dispatch enter and leave events for RedoNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1038
+ def visit_redo_node(node); end
+
+ # Dispatch enter and leave events for RegularExpressionNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1046
+ def visit_regular_expression_node(node); end
+
+ # Dispatch enter and leave events for RequiredKeywordParameterNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1054
+ def visit_required_keyword_parameter_node(node); end
+
+ # Dispatch enter and leave events for RequiredParameterNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1062
+ def visit_required_parameter_node(node); end
+
+ # Dispatch enter and leave events for RescueModifierNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1070
+ def visit_rescue_modifier_node(node); end
+
+ # Dispatch enter and leave events for RescueNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1078
+ def visit_rescue_node(node); end
+
+ # Dispatch enter and leave events for RestParameterNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1086
+ def visit_rest_parameter_node(node); end
+
+ # Dispatch enter and leave events for RetryNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1094
+ def visit_retry_node(node); end
+
+ # Dispatch enter and leave events for ReturnNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1102
+ def visit_return_node(node); end
+
+ # Dispatch enter and leave events for SelfNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1110
+ def visit_self_node(node); end
+
+ # Dispatch enter and leave events for SingletonClassNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1118
+ def visit_singleton_class_node(node); end
+
+ # Dispatch enter and leave events for SourceEncodingNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1126
+ def visit_source_encoding_node(node); end
+
+ # Dispatch enter and leave events for SourceFileNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1134
+ def visit_source_file_node(node); end
+
+ # Dispatch enter and leave events for SourceLineNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1142
+ def visit_source_line_node(node); end
+
+ # Dispatch enter and leave events for SplatNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1150
+ def visit_splat_node(node); end
+
+ # Dispatch enter and leave events for StatementsNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1158
+ def visit_statements_node(node); end
+
+ # Dispatch enter and leave events for StringNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1166
+ def visit_string_node(node); end
+
+ # Dispatch enter and leave events for SuperNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1174
+ def visit_super_node(node); end
+
+ # Dispatch enter and leave events for SymbolNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1182
+ def visit_symbol_node(node); end
+
+ # Dispatch enter and leave events for TrueNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1190
+ def visit_true_node(node); end
+
+ # Dispatch enter and leave events for UndefNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1198
+ def visit_undef_node(node); end
+
+ # Dispatch enter and leave events for UnlessNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1206
+ def visit_unless_node(node); end
+
+ # Dispatch enter and leave events for UntilNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1214
+ def visit_until_node(node); end
+
+ # Dispatch enter and leave events for WhenNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1222
+ def visit_when_node(node); end
+
+ # Dispatch enter and leave events for WhileNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1230
+ def visit_while_node(node); end
+
+ # Dispatch enter and leave events for XStringNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1238
+ def visit_x_string_node(node); end
+
+ # Dispatch enter and leave events for YieldNode nodes and continue
+ # walking the tree.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1246
+ def visit_yield_node(node); end
+end
+
+# source://prism-0.24.0/lib/prism/dispatcher.rb:1252
+class Prism::Dispatcher::DispatchOnce < ::Prism::Visitor
+ # @return [DispatchOnce] a new instance of DispatchOnce
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1255
+ def initialize(listeners); end
+
+ # Returns the value of attribute listeners.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1253
+ def listeners; end
+
+ # Dispatch enter and leave events for AliasGlobalVariableNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1260
+ def visit_alias_global_variable_node(node); end
+
+ # Dispatch enter and leave events for AliasMethodNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1266
+ def visit_alias_method_node(node); end
+
+ # Dispatch enter and leave events for AlternationPatternNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1272
+ def visit_alternation_pattern_node(node); end
+
+ # Dispatch enter and leave events for AndNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1278
+ def visit_and_node(node); end
+
+ # Dispatch enter and leave events for ArgumentsNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1284
+ def visit_arguments_node(node); end
+
+ # Dispatch enter and leave events for ArrayNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1290
+ def visit_array_node(node); end
+
+ # Dispatch enter and leave events for ArrayPatternNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1296
+ def visit_array_pattern_node(node); end
+
+ # Dispatch enter and leave events for AssocNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1302
+ def visit_assoc_node(node); end
+
+ # Dispatch enter and leave events for AssocSplatNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1308
+ def visit_assoc_splat_node(node); end
+
+ # Dispatch enter and leave events for BackReferenceReadNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1314
+ def visit_back_reference_read_node(node); end
+
+ # Dispatch enter and leave events for BeginNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1320
+ def visit_begin_node(node); end
+
+ # Dispatch enter and leave events for BlockArgumentNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1326
+ def visit_block_argument_node(node); end
+
+ # Dispatch enter and leave events for BlockLocalVariableNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1332
+ def visit_block_local_variable_node(node); end
+
+ # Dispatch enter and leave events for BlockNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1338
+ def visit_block_node(node); end
+
+ # Dispatch enter and leave events for BlockParameterNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1344
+ def visit_block_parameter_node(node); end
+
+ # Dispatch enter and leave events for BlockParametersNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1350
+ def visit_block_parameters_node(node); end
+
+ # Dispatch enter and leave events for BreakNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1356
+ def visit_break_node(node); end
+
+ # Dispatch enter and leave events for CallAndWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1362
+ def visit_call_and_write_node(node); end
+
+ # Dispatch enter and leave events for CallNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1368
+ def visit_call_node(node); end
+
+ # Dispatch enter and leave events for CallOperatorWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1374
+ def visit_call_operator_write_node(node); end
+
+ # Dispatch enter and leave events for CallOrWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1380
+ def visit_call_or_write_node(node); end
+
+ # Dispatch enter and leave events for CallTargetNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1386
+ def visit_call_target_node(node); end
+
+ # Dispatch enter and leave events for CapturePatternNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1392
+ def visit_capture_pattern_node(node); end
+
+ # Dispatch enter and leave events for CaseMatchNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1398
+ def visit_case_match_node(node); end
+
+ # Dispatch enter and leave events for CaseNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1404
+ def visit_case_node(node); end
+
+ # Dispatch enter and leave events for ClassNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1410
+ def visit_class_node(node); end
+
+ # Dispatch enter and leave events for ClassVariableAndWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1416
+ def visit_class_variable_and_write_node(node); end
+
+ # Dispatch enter and leave events for ClassVariableOperatorWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1422
+ def visit_class_variable_operator_write_node(node); end
+
+ # Dispatch enter and leave events for ClassVariableOrWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1428
+ def visit_class_variable_or_write_node(node); end
+
+ # Dispatch enter and leave events for ClassVariableReadNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1434
+ def visit_class_variable_read_node(node); end
+
+ # Dispatch enter and leave events for ClassVariableTargetNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1440
+ def visit_class_variable_target_node(node); end
+
+ # Dispatch enter and leave events for ClassVariableWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1446
+ def visit_class_variable_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantAndWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1452
+ def visit_constant_and_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantOperatorWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1458
+ def visit_constant_operator_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantOrWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1464
+ def visit_constant_or_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantPathAndWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1470
+ def visit_constant_path_and_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantPathNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1476
+ def visit_constant_path_node(node); end
+
+ # Dispatch enter and leave events for ConstantPathOperatorWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1482
+ def visit_constant_path_operator_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantPathOrWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1488
+ def visit_constant_path_or_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantPathTargetNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1494
+ def visit_constant_path_target_node(node); end
+
+ # Dispatch enter and leave events for ConstantPathWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1500
+ def visit_constant_path_write_node(node); end
+
+ # Dispatch enter and leave events for ConstantReadNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1506
+ def visit_constant_read_node(node); end
+
+ # Dispatch enter and leave events for ConstantTargetNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1512
+ def visit_constant_target_node(node); end
+
+ # Dispatch enter and leave events for ConstantWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1518
+ def visit_constant_write_node(node); end
+
+ # Dispatch enter and leave events for DefNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1524
+ def visit_def_node(node); end
+
+ # Dispatch enter and leave events for DefinedNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1530
+ def visit_defined_node(node); end
+
+ # Dispatch enter and leave events for ElseNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1536
+ def visit_else_node(node); end
+
+ # Dispatch enter and leave events for EmbeddedStatementsNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1542
+ def visit_embedded_statements_node(node); end
+
+ # Dispatch enter and leave events for EmbeddedVariableNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1548
+ def visit_embedded_variable_node(node); end
+
+ # Dispatch enter and leave events for EnsureNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1554
+ def visit_ensure_node(node); end
+
+ # Dispatch enter and leave events for FalseNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1560
+ def visit_false_node(node); end
+
+ # Dispatch enter and leave events for FindPatternNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1566
+ def visit_find_pattern_node(node); end
+
+ # Dispatch enter and leave events for FlipFlopNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1572
+ def visit_flip_flop_node(node); end
+
+ # Dispatch enter and leave events for FloatNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1578
+ def visit_float_node(node); end
+
+ # Dispatch enter and leave events for ForNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1584
+ def visit_for_node(node); end
+
+ # Dispatch enter and leave events for ForwardingArgumentsNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1590
+ def visit_forwarding_arguments_node(node); end
+
+ # Dispatch enter and leave events for ForwardingParameterNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1596
+ def visit_forwarding_parameter_node(node); end
+
+ # Dispatch enter and leave events for ForwardingSuperNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1602
+ def visit_forwarding_super_node(node); end
+
+ # Dispatch enter and leave events for GlobalVariableAndWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1608
+ def visit_global_variable_and_write_node(node); end
+
+ # Dispatch enter and leave events for GlobalVariableOperatorWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1614
+ def visit_global_variable_operator_write_node(node); end
+
+ # Dispatch enter and leave events for GlobalVariableOrWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1620
+ def visit_global_variable_or_write_node(node); end
+
+ # Dispatch enter and leave events for GlobalVariableReadNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1626
+ def visit_global_variable_read_node(node); end
+
+ # Dispatch enter and leave events for GlobalVariableTargetNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1632
+ def visit_global_variable_target_node(node); end
+
+ # Dispatch enter and leave events for GlobalVariableWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1638
+ def visit_global_variable_write_node(node); end
+
+ # Dispatch enter and leave events for HashNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1644
+ def visit_hash_node(node); end
+
+ # Dispatch enter and leave events for HashPatternNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1650
+ def visit_hash_pattern_node(node); end
+
+ # Dispatch enter and leave events for IfNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1656
+ def visit_if_node(node); end
+
+ # Dispatch enter and leave events for ImaginaryNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1662
+ def visit_imaginary_node(node); end
+
+ # Dispatch enter and leave events for ImplicitNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1668
+ def visit_implicit_node(node); end
+
+ # Dispatch enter and leave events for ImplicitRestNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1674
+ def visit_implicit_rest_node(node); end
+
+ # Dispatch enter and leave events for InNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1680
+ def visit_in_node(node); end
+
+ # Dispatch enter and leave events for IndexAndWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1686
+ def visit_index_and_write_node(node); end
+
+ # Dispatch enter and leave events for IndexOperatorWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1692
+ def visit_index_operator_write_node(node); end
+
+ # Dispatch enter and leave events for IndexOrWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1698
+ def visit_index_or_write_node(node); end
+
+ # Dispatch enter and leave events for IndexTargetNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1704
+ def visit_index_target_node(node); end
+
+ # Dispatch enter and leave events for InstanceVariableAndWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1710
+ def visit_instance_variable_and_write_node(node); end
+
+ # Dispatch enter and leave events for InstanceVariableOperatorWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1716
+ def visit_instance_variable_operator_write_node(node); end
+
+ # Dispatch enter and leave events for InstanceVariableOrWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1722
+ def visit_instance_variable_or_write_node(node); end
+
+ # Dispatch enter and leave events for InstanceVariableReadNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1728
+ def visit_instance_variable_read_node(node); end
+
+ # Dispatch enter and leave events for InstanceVariableTargetNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1734
+ def visit_instance_variable_target_node(node); end
+
+ # Dispatch enter and leave events for InstanceVariableWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1740
+ def visit_instance_variable_write_node(node); end
+
+ # Dispatch enter and leave events for IntegerNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1746
+ def visit_integer_node(node); end
+
+ # Dispatch enter and leave events for InterpolatedMatchLastLineNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1752
+ def visit_interpolated_match_last_line_node(node); end
+
+ # Dispatch enter and leave events for InterpolatedRegularExpressionNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1758
+ def visit_interpolated_regular_expression_node(node); end
+
+ # Dispatch enter and leave events for InterpolatedStringNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1764
+ def visit_interpolated_string_node(node); end
+
+ # Dispatch enter and leave events for InterpolatedSymbolNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1770
+ def visit_interpolated_symbol_node(node); end
+
+ # Dispatch enter and leave events for InterpolatedXStringNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1776
+ def visit_interpolated_x_string_node(node); end
+
+ # Dispatch enter and leave events for KeywordHashNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1782
+ def visit_keyword_hash_node(node); end
+
+ # Dispatch enter and leave events for KeywordRestParameterNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1788
+ def visit_keyword_rest_parameter_node(node); end
+
+ # Dispatch enter and leave events for LambdaNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1794
+ def visit_lambda_node(node); end
+
+ # Dispatch enter and leave events for LocalVariableAndWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1800
+ def visit_local_variable_and_write_node(node); end
+
+ # Dispatch enter and leave events for LocalVariableOperatorWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1806
+ def visit_local_variable_operator_write_node(node); end
+
+ # Dispatch enter and leave events for LocalVariableOrWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1812
+ def visit_local_variable_or_write_node(node); end
+
+ # Dispatch enter and leave events for LocalVariableReadNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1818
+ def visit_local_variable_read_node(node); end
+
+ # Dispatch enter and leave events for LocalVariableTargetNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1824
+ def visit_local_variable_target_node(node); end
+
+ # Dispatch enter and leave events for LocalVariableWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1830
+ def visit_local_variable_write_node(node); end
+
+ # Dispatch enter and leave events for MatchLastLineNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1836
+ def visit_match_last_line_node(node); end
+
+ # Dispatch enter and leave events for MatchPredicateNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1842
+ def visit_match_predicate_node(node); end
+
+ # Dispatch enter and leave events for MatchRequiredNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1848
+ def visit_match_required_node(node); end
+
+ # Dispatch enter and leave events for MatchWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1854
+ def visit_match_write_node(node); end
+
+ # Dispatch enter and leave events for MissingNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1860
+ def visit_missing_node(node); end
+
+ # Dispatch enter and leave events for ModuleNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1866
+ def visit_module_node(node); end
+
+ # Dispatch enter and leave events for MultiTargetNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1872
+ def visit_multi_target_node(node); end
+
+ # Dispatch enter and leave events for MultiWriteNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1878
+ def visit_multi_write_node(node); end
+
+ # Dispatch enter and leave events for NextNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1884
+ def visit_next_node(node); end
+
+ # Dispatch enter and leave events for NilNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1890
+ def visit_nil_node(node); end
+
+ # Dispatch enter and leave events for NoKeywordsParameterNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1896
+ def visit_no_keywords_parameter_node(node); end
+
+ # Dispatch enter and leave events for NumberedParametersNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1902
+ def visit_numbered_parameters_node(node); end
+
+ # Dispatch enter and leave events for NumberedReferenceReadNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1908
+ def visit_numbered_reference_read_node(node); end
+
+ # Dispatch enter and leave events for OptionalKeywordParameterNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1914
+ def visit_optional_keyword_parameter_node(node); end
+
+ # Dispatch enter and leave events for OptionalParameterNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1920
+ def visit_optional_parameter_node(node); end
+
+ # Dispatch enter and leave events for OrNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1926
+ def visit_or_node(node); end
+
+ # Dispatch enter and leave events for ParametersNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1932
+ def visit_parameters_node(node); end
+
+ # Dispatch enter and leave events for ParenthesesNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1938
+ def visit_parentheses_node(node); end
+
+ # Dispatch enter and leave events for PinnedExpressionNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1944
+ def visit_pinned_expression_node(node); end
+
+ # Dispatch enter and leave events for PinnedVariableNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1950
+ def visit_pinned_variable_node(node); end
+
+ # Dispatch enter and leave events for PostExecutionNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1956
+ def visit_post_execution_node(node); end
+
+ # Dispatch enter and leave events for PreExecutionNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1962
+ def visit_pre_execution_node(node); end
+
+ # Dispatch enter and leave events for ProgramNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1968
+ def visit_program_node(node); end
+
+ # Dispatch enter and leave events for RangeNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1974
+ def visit_range_node(node); end
+
+ # Dispatch enter and leave events for RationalNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1980
+ def visit_rational_node(node); end
+
+ # Dispatch enter and leave events for RedoNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1986
+ def visit_redo_node(node); end
+
+ # Dispatch enter and leave events for RegularExpressionNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1992
+ def visit_regular_expression_node(node); end
+
+ # Dispatch enter and leave events for RequiredKeywordParameterNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:1998
+ def visit_required_keyword_parameter_node(node); end
+
+ # Dispatch enter and leave events for RequiredParameterNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:2004
+ def visit_required_parameter_node(node); end
+
+ # Dispatch enter and leave events for RescueModifierNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:2010
+ def visit_rescue_modifier_node(node); end
+
+ # Dispatch enter and leave events for RescueNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:2016
+ def visit_rescue_node(node); end
+
+ # Dispatch enter and leave events for RestParameterNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:2022
+ def visit_rest_parameter_node(node); end
+
+ # Dispatch enter and leave events for RetryNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:2028
+ def visit_retry_node(node); end
+
+ # Dispatch enter and leave events for ReturnNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:2034
+ def visit_return_node(node); end
+
+ # Dispatch enter and leave events for SelfNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:2040
+ def visit_self_node(node); end
+
+ # Dispatch enter and leave events for SingletonClassNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:2046
+ def visit_singleton_class_node(node); end
+
+ # Dispatch enter and leave events for SourceEncodingNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:2052
+ def visit_source_encoding_node(node); end
+
+ # Dispatch enter and leave events for SourceFileNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:2058
+ def visit_source_file_node(node); end
+
+ # Dispatch enter and leave events for SourceLineNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:2064
+ def visit_source_line_node(node); end
+
+ # Dispatch enter and leave events for SplatNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:2070
+ def visit_splat_node(node); end
+
+ # Dispatch enter and leave events for StatementsNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:2076
+ def visit_statements_node(node); end
+
+ # Dispatch enter and leave events for StringNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:2082
+ def visit_string_node(node); end
+
+ # Dispatch enter and leave events for SuperNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:2088
+ def visit_super_node(node); end
+
+ # Dispatch enter and leave events for SymbolNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:2094
+ def visit_symbol_node(node); end
+
+ # Dispatch enter and leave events for TrueNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:2100
+ def visit_true_node(node); end
+
+ # Dispatch enter and leave events for UndefNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:2106
+ def visit_undef_node(node); end
+
+ # Dispatch enter and leave events for UnlessNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:2112
+ def visit_unless_node(node); end
+
+ # Dispatch enter and leave events for UntilNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:2118
+ def visit_until_node(node); end
+
+ # Dispatch enter and leave events for WhenNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:2124
+ def visit_when_node(node); end
+
+ # Dispatch enter and leave events for WhileNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:2130
+ def visit_while_node(node); end
+
+ # Dispatch enter and leave events for XStringNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:2136
+ def visit_x_string_node(node); end
+
+ # Dispatch enter and leave events for YieldNode nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dispatcher.rb:2142
+ 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-0.24.0/lib/prism/dot_visitor.rb:13
+class Prism::DotVisitor < ::Prism::Visitor
+ # Initialize a new dot visitor.
+ #
+ # @return [DotVisitor] a new instance of DotVisitor
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:105
+ def initialize; end
+
+ # The digraph that is being built.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:102
+ def digraph; end
+
+ # Convert this visitor into a graphviz dot graph string.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:110
+ def to_dot; end
+
+ # Visit a AliasGlobalVariableNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:115
+ def visit_alias_global_variable_node(node); end
+
+ # Visit a AliasMethodNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:140
+ def visit_alias_method_node(node); end
+
+ # Visit a AlternationPatternNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:165
+ def visit_alternation_pattern_node(node); end
+
+ # Visit a AndNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:190
+ def visit_and_node(node); end
+
+ # Visit a ArgumentsNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:215
+ def visit_arguments_node(node); end
+
+ # Visit a ArrayNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:245
+ def visit_array_node(node); end
+
+ # Visit a ArrayPatternNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:285
+ def visit_array_pattern_node(node); end
+
+ # Visit a AssocNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:347
+ def visit_assoc_node(node); end
+
+ # Visit a AssocSplatNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:374
+ def visit_assoc_splat_node(node); end
+
+ # Visit a BackReferenceReadNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:397
+ def visit_back_reference_read_node(node); end
+
+ # Visit a BeginNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:414
+ def visit_begin_node(node); end
+
+ # Visit a BlockArgumentNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:462
+ def visit_block_argument_node(node); end
+
+ # Visit a BlockLocalVariableNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:485
+ def visit_block_local_variable_node(node); end
+
+ # Visit a BlockNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:505
+ def visit_block_node(node); end
+
+ # Visit a BlockParameterNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:540
+ def visit_block_parameter_node(node); end
+
+ # Visit a BlockParametersNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:568
+ def visit_block_parameters_node(node); end
+
+ # Visit a BreakNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:611
+ def visit_break_node(node); end
+
+ # Visit a CallAndWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:634
+ def visit_call_and_write_node(node); end
+
+ # Visit a CallNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:680
+ def visit_call_node(node); end
+
+ # Visit a CallOperatorWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:738
+ def visit_call_operator_write_node(node); end
+
+ # Visit a CallOrWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:787
+ def visit_call_or_write_node(node); end
+
+ # Visit a CallTargetNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:833
+ def visit_call_target_node(node); end
+
+ # Visit a CapturePatternNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:863
+ def visit_capture_pattern_node(node); end
+
+ # Visit a CaseMatchNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:888
+ def visit_case_match_node(node); end
+
+ # Visit a CaseNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:933
+ def visit_case_node(node); end
+
+ # Visit a ClassNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:978
+ def visit_class_node(node); end
+
+ # Visit a ClassVariableAndWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1025
+ def visit_class_variable_and_write_node(node); end
+
+ # Visit a ClassVariableOperatorWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1052
+ def visit_class_variable_operator_write_node(node); end
+
+ # Visit a ClassVariableOrWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1082
+ def visit_class_variable_or_write_node(node); end
+
+ # Visit a ClassVariableReadNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1109
+ def visit_class_variable_read_node(node); end
+
+ # Visit a ClassVariableTargetNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1126
+ def visit_class_variable_target_node(node); end
+
+ # Visit a ClassVariableWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1143
+ def visit_class_variable_write_node(node); end
+
+ # Visit a ConstantAndWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1172
+ def visit_constant_and_write_node(node); end
+
+ # Visit a ConstantOperatorWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1199
+ def visit_constant_operator_write_node(node); end
+
+ # Visit a ConstantOrWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1229
+ def visit_constant_or_write_node(node); end
+
+ # Visit a ConstantPathAndWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1256
+ def visit_constant_path_and_write_node(node); end
+
+ # Visit a ConstantPathNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1281
+ def visit_constant_path_node(node); end
+
+ # Visit a ConstantPathOperatorWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1308
+ def visit_constant_path_operator_write_node(node); end
+
+ # Visit a ConstantPathOrWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1336
+ def visit_constant_path_or_write_node(node); end
+
+ # Visit a ConstantPathTargetNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1361
+ def visit_constant_path_target_node(node); end
+
+ # Visit a ConstantPathWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1388
+ def visit_constant_path_write_node(node); end
+
+ # Visit a ConstantReadNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1413
+ def visit_constant_read_node(node); end
+
+ # Visit a ConstantTargetNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1430
+ def visit_constant_target_node(node); end
+
+ # Visit a ConstantWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1447
+ def visit_constant_write_node(node); end
+
+ # Visit a DefNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1474
+ def visit_def_node(node); end
+
+ # Visit a DefinedNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1543
+ def visit_defined_node(node); end
+
+ # Visit a ElseNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1574
+ def visit_else_node(node); end
+
+ # Visit a EmbeddedStatementsNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1602
+ def visit_embedded_statements_node(node); end
+
+ # Visit a EmbeddedVariableNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1628
+ def visit_embedded_variable_node(node); end
+
+ # Visit a EnsureNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1649
+ def visit_ensure_node(node); end
+
+ # Visit a FalseNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1675
+ def visit_false_node(node); end
+
+ # Visit a FindPatternNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1689
+ def visit_find_pattern_node(node); end
+
+ # Visit a FlipFlopNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1740
+ def visit_flip_flop_node(node); end
+
+ # Visit a FloatNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1772
+ def visit_float_node(node); end
+
+ # Visit a ForNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1786
+ def visit_for_node(node); end
+
+ # Visit a ForwardingArgumentsNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1828
+ def visit_forwarding_arguments_node(node); end
+
+ # Visit a ForwardingParameterNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1842
+ def visit_forwarding_parameter_node(node); end
+
+ # Visit a ForwardingSuperNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1856
+ def visit_forwarding_super_node(node); end
+
+ # Visit a GlobalVariableAndWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1876
+ def visit_global_variable_and_write_node(node); end
+
+ # Visit a GlobalVariableOperatorWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1903
+ def visit_global_variable_operator_write_node(node); end
+
+ # Visit a GlobalVariableOrWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1933
+ def visit_global_variable_or_write_node(node); end
+
+ # Visit a GlobalVariableReadNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1960
+ def visit_global_variable_read_node(node); end
+
+ # Visit a GlobalVariableTargetNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1977
+ def visit_global_variable_target_node(node); end
+
+ # Visit a GlobalVariableWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:1994
+ def visit_global_variable_write_node(node); end
+
+ # Visit a HashNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2021
+ def visit_hash_node(node); end
+
+ # Visit a HashPatternNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2054
+ def visit_hash_pattern_node(node); end
+
+ # Visit a IfNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2103
+ def visit_if_node(node); end
+
+ # Visit a ImaginaryNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2148
+ def visit_imaginary_node(node); end
+
+ # Visit a ImplicitNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2166
+ def visit_implicit_node(node); end
+
+ # Visit a ImplicitRestNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2184
+ def visit_implicit_rest_node(node); end
+
+ # Visit a InNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2198
+ def visit_in_node(node); end
+
+ # Visit a IndexAndWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2230
+ def visit_index_and_write_node(node); end
+
+ # Visit a IndexOperatorWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2283
+ def visit_index_operator_write_node(node); end
+
+ # Visit a IndexOrWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2339
+ def visit_index_or_write_node(node); end
+
+ # Visit a IndexTargetNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2392
+ def visit_index_target_node(node); end
+
+ # Visit a InstanceVariableAndWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2431
+ def visit_instance_variable_and_write_node(node); end
+
+ # Visit a InstanceVariableOperatorWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2458
+ def visit_instance_variable_operator_write_node(node); end
+
+ # Visit a InstanceVariableOrWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2488
+ def visit_instance_variable_or_write_node(node); end
+
+ # Visit a InstanceVariableReadNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2515
+ def visit_instance_variable_read_node(node); end
+
+ # Visit a InstanceVariableTargetNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2532
+ def visit_instance_variable_target_node(node); end
+
+ # Visit a InstanceVariableWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2549
+ def visit_instance_variable_write_node(node); end
+
+ # Visit a IntegerNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2576
+ def visit_integer_node(node); end
+
+ # Visit a InterpolatedMatchLastLineNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2593
+ def visit_interpolated_match_last_line_node(node); end
+
+ # Visit a InterpolatedRegularExpressionNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2629
+ def visit_interpolated_regular_expression_node(node); end
+
+ # Visit a InterpolatedStringNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2665
+ def visit_interpolated_string_node(node); end
+
+ # Visit a InterpolatedSymbolNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2702
+ def visit_interpolated_symbol_node(node); end
+
+ # Visit a InterpolatedXStringNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2739
+ def visit_interpolated_x_string_node(node); end
+
+ # Visit a KeywordHashNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2772
+ def visit_keyword_hash_node(node); end
+
+ # Visit a KeywordRestParameterNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2802
+ def visit_keyword_rest_parameter_node(node); end
+
+ # Visit a LambdaNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2830
+ def visit_lambda_node(node); end
+
+ # Visit a LocalVariableAndWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2868
+ def visit_local_variable_and_write_node(node); end
+
+ # Visit a LocalVariableOperatorWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2898
+ def visit_local_variable_operator_write_node(node); end
+
+ # Visit a LocalVariableOrWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2931
+ def visit_local_variable_or_write_node(node); end
+
+ # Visit a LocalVariableReadNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2961
+ def visit_local_variable_read_node(node); end
+
+ # Visit a LocalVariableTargetNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:2981
+ def visit_local_variable_target_node(node); end
+
+ # Visit a LocalVariableWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3001
+ def visit_local_variable_write_node(node); end
+
+ # Visit a MatchLastLineNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3031
+ def visit_match_last_line_node(node); end
+
+ # Visit a MatchPredicateNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3060
+ def visit_match_predicate_node(node); end
+
+ # Visit a MatchRequiredNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3085
+ def visit_match_required_node(node); end
+
+ # Visit a MatchWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3110
+ def visit_match_write_node(node); end
+
+ # Visit a MissingNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3141
+ def visit_missing_node(node); end
+
+ # Visit a ModuleNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3155
+ def visit_module_node(node); end
+
+ # Visit a MultiTargetNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3191
+ def visit_multi_target_node(node); end
+
+ # Visit a MultiWriteNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3247
+ def visit_multi_write_node(node); end
+
+ # Visit a NextNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3310
+ def visit_next_node(node); end
+
+ # Visit a NilNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3333
+ def visit_nil_node(node); end
+
+ # Visit a NoKeywordsParameterNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3347
+ def visit_no_keywords_parameter_node(node); end
+
+ # Visit a NumberedParametersNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3367
+ def visit_numbered_parameters_node(node); end
+
+ # Visit a NumberedReferenceReadNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3384
+ def visit_numbered_reference_read_node(node); end
+
+ # Visit a OptionalKeywordParameterNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3401
+ def visit_optional_keyword_parameter_node(node); end
+
+ # Visit a OptionalParameterNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3428
+ def visit_optional_parameter_node(node); end
+
+ # Visit a OrNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3458
+ def visit_or_node(node); end
+
+ # Visit a ParametersNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3483
+ def visit_parameters_node(node); end
+
+ # Visit a ParenthesesNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3567
+ def visit_parentheses_node(node); end
+
+ # Visit a PinnedExpressionNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3593
+ def visit_pinned_expression_node(node); end
+
+ # Visit a PinnedVariableNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3620
+ def visit_pinned_variable_node(node); end
+
+ # Visit a PostExecutionNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3641
+ def visit_post_execution_node(node); end
+
+ # Visit a PreExecutionNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3670
+ def visit_pre_execution_node(node); end
+
+ # Visit a ProgramNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3699
+ def visit_program_node(node); end
+
+ # Visit a RangeNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3720
+ def visit_range_node(node); end
+
+ # Visit a RationalNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3752
+ def visit_rational_node(node); end
+
+ # Visit a RedoNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3770
+ def visit_redo_node(node); end
+
+ # Visit a RegularExpressionNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3784
+ def visit_regular_expression_node(node); end
+
+ # Visit a RequiredKeywordParameterNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3813
+ def visit_required_keyword_parameter_node(node); end
+
+ # Visit a RequiredParameterNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3836
+ def visit_required_parameter_node(node); end
+
+ # Visit a RescueModifierNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3856
+ def visit_rescue_modifier_node(node); end
+
+ # Visit a RescueNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3881
+ def visit_rescue_node(node); end
+
+ # Visit a RestParameterNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3934
+ def visit_rest_parameter_node(node); end
+
+ # Visit a RetryNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3962
+ def visit_retry_node(node); end
+
+ # Visit a ReturnNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3976
+ def visit_return_node(node); end
+
+ # Visit a SelfNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:3999
+ def visit_self_node(node); end
+
+ # Visit a SingletonClassNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:4013
+ def visit_singleton_class_node(node); end
+
+ # Visit a SourceEncodingNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:4049
+ def visit_source_encoding_node(node); end
+
+ # Visit a SourceFileNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:4063
+ def visit_source_file_node(node); end
+
+ # Visit a SourceLineNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:4080
+ def visit_source_line_node(node); end
+
+ # Visit a SplatNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:4094
+ def visit_splat_node(node); end
+
+ # Visit a StatementsNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:4117
+ def visit_statements_node(node); end
+
+ # Visit a StringNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:4144
+ def visit_string_node(node); end
+
+ # Visit a SuperNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:4177
+ def visit_super_node(node); end
+
+ # Visit a SymbolNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:4216
+ def visit_symbol_node(node); end
+
+ # Visit a TrueNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:4251
+ def visit_true_node(node); end
+
+ # Visit a UndefNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:4265
+ def visit_undef_node(node); end
+
+ # Visit a UnlessNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:4295
+ def visit_unless_node(node); end
+
+ # Visit a UntilNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:4338
+ def visit_until_node(node); end
+
+ # Visit a WhenNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:4373
+ def visit_when_node(node); end
+
+ # Visit a WhileNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:4409
+ def visit_while_node(node); end
+
+ # Visit a XStringNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:4444
+ def visit_x_string_node(node); end
+
+ # Visit a YieldNode node.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:4473
+ def visit_yield_node(node); end
+
+ private
+
+ # Inspect a node that has arguments_node_flags flags to display the flags as a
+ # comma-separated list.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:4519
+ 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-0.24.0/lib/prism/dot_visitor.rb:4527
+ 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-0.24.0/lib/prism/dot_visitor.rb:4535
+ 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-0.24.0/lib/prism/dot_visitor.rb:4546
+ 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-0.24.0/lib/prism/dot_visitor.rb:4555
+ def integer_base_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-0.24.0/lib/prism/dot_visitor.rb:4566
+ def keyword_hash_node_flags_inspect(node); end
+
+ # Inspect a location to display the start and end line and column numbers.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:4513
+ def location_inspect(location); end
+
+ # Inspect a node that has loop_flags flags to display the flags as a
+ # comma-separated list.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:4574
+ def loop_flags_inspect(node); end
+
+ # Generate a unique node ID for a node throughout the digraph.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:4508
+ def node_id(node); end
+
+ # Inspect a node that has parameter_flags flags to display the flags as a
+ # comma-separated list.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:4582
+ 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-0.24.0/lib/prism/dot_visitor.rb:4590
+ 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-0.24.0/lib/prism/dot_visitor.rb:4598
+ def regular_expression_flags_inspect(node); end
+
+ # Inspect a node that has string_flags flags to display the flags as a
+ # comma-separated list.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:4616
+ 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-0.24.0/lib/prism/dot_visitor.rb:4626
+ def symbol_flags_inspect(node); end
+end
+
+# source://prism-0.24.0/lib/prism/dot_visitor.rb:58
+class Prism::DotVisitor::Digraph
+ # @return [Digraph] a new instance of Digraph
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:61
+ def initialize; end
+
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:75
+ def edge(value); end
+
+ # Returns the value of attribute edges.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:59
+ def edges; end
+
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:67
+ def node(value); end
+
+ # Returns the value of attribute nodes.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:59
+ def nodes; end
+
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:79
+ def to_dot; end
+
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:71
+ def waypoint(value); end
+
+ # Returns the value of attribute waypoints.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:59
+ def waypoints; end
+end
+
+# source://prism-0.24.0/lib/prism/dot_visitor.rb:14
+class Prism::DotVisitor::Field
+ # @return [Field] a new instance of Field
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:17
+ def initialize(name, value, port); end
+
+ # Returns the value of attribute name.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:15
+ def name; end
+
+ # Returns the value of attribute port.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:15
+ def port; end
+
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:23
+ def to_dot; end
+
+ # Returns the value of attribute value.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:15
+ def value; end
+end
+
+# source://prism-0.24.0/lib/prism/dot_visitor.rb:32
+class Prism::DotVisitor::Table
+ # @return [Table] a new instance of Table
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:35
+ def initialize(name); end
+
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:40
+ def field(name, value = T.unsafe(nil), port: T.unsafe(nil)); end
+
+ # Returns the value of attribute fields.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:33
+ def fields; end
+
+ # Returns the value of attribute name.
+ #
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:33
+ def name; end
+
+ # source://prism-0.24.0/lib/prism/dot_visitor.rb:44
+ def to_dot; end
+end
+
+# Represents an `else` clause in a `case`, `if`, or `unless` statement.
+#
+# if a then b else c end
+# ^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:6290
+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-0.24.0/lib/prism/node.rb:6292
+ def initialize(source, else_keyword_loc, statements, end_keyword_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6302
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6307
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6319
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6312
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ElseNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6324
+ sig { params(params: T.untyped).returns(Prism::ElseNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6307
+ sig { 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-0.24.0/lib/prism/node.rb:6338
+ def deconstruct_keys(keys); end
+
+ # def else_keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6365
+ sig { returns(String) }
+ def else_keyword; end
+
+ # attr_reader else_keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6343
+ sig { returns(Prism::Location) }
+ def else_keyword_loc; end
+
+ # def end_keyword: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6370
+ sig { returns(T.nilable(String)) }
+ def end_keyword; end
+
+ # attr_reader end_keyword_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6352
+ sig { returns(T.nilable(Prism::Location)) }
+ def end_keyword_loc; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6375
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader statements: StatementsNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6349
+ sig { returns(T.nilable(Prism::StatementsNode)) }
+ def statements; 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-0.24.0/lib/prism/node.rb:6402
+ def type; 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-0.24.0/lib/prism/node.rb:6412
+ def type; end
+ end
+end
+
+# EmbDocComment objects correspond to comments that are surrounded by =begin
+# and =end.
+#
+# source://prism-0.24.0/lib/prism/parse_result.rb:290
+class Prism::EmbDocComment < ::Prism::Comment
+ # Returns a string representation of this comment.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:297
+ def inspect; end
+
+ # This can only be true for inline comments.
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:292
+ def trailing?; end
+end
+
+# Represents an interpolated set of statements.
+#
+# "foo #{bar}"
+# ^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:6421
+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-0.24.0/lib/prism/node.rb:6423
+ def initialize(source, opening_loc, statements, closing_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6433
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6438
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6495
+ sig { returns(String) }
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6483
+ sig { returns(Prism::Location) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6450
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6443
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> EmbeddedStatementsNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6455
+ sig { params(params: T.untyped).returns(Prism::EmbeddedStatementsNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6438
+ sig { 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-0.24.0/lib/prism/node.rb:6469
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6500
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def opening: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6490
+ sig { returns(String) }
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6474
+ sig { returns(Prism::Location) }
+ def opening_loc; end
+
+ # attr_reader statements: StatementsNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6480
+ sig { returns(T.nilable(Prism::StatementsNode)) }
+ def statements; 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-0.24.0/lib/prism/node.rb:6527
+ def type; 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-0.24.0/lib/prism/node.rb:6537
+ def type; end
+ end
+end
+
+# Represents an interpolated variable.
+#
+# "foo #@bar"
+# ^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:6546
+class Prism::EmbeddedVariableNode < ::Prism::Node
+ # def initialize: (Location operator_loc, Node variable, Location location) -> void
+ #
+ # @return [EmbeddedVariableNode] a new instance of EmbeddedVariableNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6548
+ def initialize(source, operator_loc, variable, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6557
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6562
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6572
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6567
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> EmbeddedVariableNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6577
+ sig { params(params: T.untyped).returns(Prism::EmbeddedVariableNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6562
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { operator_loc: Location, variable: Node, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6590
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6610
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6605
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6595
+ sig { returns(Prism::Location) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:6632
+ def type; end
+
+ # attr_reader variable: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6601
+ sig { returns(Prism::Node) }
+ def variable; 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-0.24.0/lib/prism/node.rb:6642
+ def type; end
+ end
+end
+
+# Flags for nodes that have unescaped content.
+#
+# source://prism-0.24.0/lib/prism/node.rb:19268
+module Prism::EncodingFlags; end
+
+# internal bytes forced the encoding to binary
+#
+# source://prism-0.24.0/lib/prism/node.rb:19273
+Prism::EncodingFlags::FORCED_BINARY_ENCODING = T.let(T.unsafe(nil), Integer)
+
+# internal bytes forced the encoding to UTF-8
+#
+# source://prism-0.24.0/lib/prism/node.rb:19270
+Prism::EncodingFlags::FORCED_UTF8_ENCODING = T.let(T.unsafe(nil), Integer)
+
+# Represents an `ensure` clause in a `begin` statement.
+#
+# begin
+# foo
+# ensure
+# ^^^^^^
+# bar
+# end
+#
+# source://prism-0.24.0/lib/prism/node.rb:6655
+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-0.24.0/lib/prism/node.rb:6657
+ def initialize(source, ensure_keyword_loc, statements, end_keyword_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6667
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6672
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6684
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6677
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> EnsureNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6689
+ sig { params(params: T.untyped).returns(Prism::EnsureNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6672
+ sig { 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-0.24.0/lib/prism/node.rb:6703
+ def deconstruct_keys(keys); end
+
+ # def end_keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6729
+ sig { returns(String) }
+ def end_keyword; end
+
+ # attr_reader end_keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6717
+ sig { returns(Prism::Location) }
+ def end_keyword_loc; end
+
+ # def ensure_keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6724
+ sig { returns(String) }
+ def ensure_keyword; end
+
+ # attr_reader ensure_keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6708
+ sig { returns(Prism::Location) }
+ def ensure_keyword_loc; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6734
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader statements: StatementsNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6714
+ sig { returns(T.nilable(Prism::StatementsNode)) }
+ def statements; 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-0.24.0/lib/prism/node.rb:6761
+ def type; 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-0.24.0/lib/prism/node.rb:6771
+ def type; end
+ end
+end
+
+# Represents the use of the literal `false` keyword.
+#
+# false
+# ^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:6780
+class Prism::FalseNode < ::Prism::Node
+ # def initialize: (Location location) -> void
+ #
+ # @return [FalseNode] a new instance of FalseNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6782
+ def initialize(source, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6789
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6794
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6804
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6799
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> FalseNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6809
+ sig { params(params: T.untyped).returns(Prism::FalseNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6794
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6820
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6826
+ def inspect(inspector = T.unsafe(nil)); 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-0.24.0/lib/prism/node.rb:6845
+ def type; 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-0.24.0/lib/prism/node.rb:6855
+ def type; end
+ end
+end
+
+# Represents a find pattern in pattern matching.
+#
+# foo in *bar, baz, *qux
+# ^^^^^^^^^^^^^^^
+#
+# foo in [*bar, baz, *qux]
+# ^^^^^^^^^^^^^^^^^
+#
+# foo in Foo(*bar, baz, *qux)
+# ^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:6870
+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
+ #
+ # @return [FindPatternNode] a new instance of FindPatternNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6872
+ def initialize(source, constant, left, requireds, right, opening_loc, closing_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6885
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6890
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6974
+ sig { returns(T.nilable(String)) }
+ def closing; end
+
+ # attr_reader closing_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6956
+ sig { returns(T.nilable(Prism::Location)) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6905
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6895
+ def compact_child_nodes; end
+
+ # attr_reader constant: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6932
+ sig { returns(T.nilable(Prism::Node)) }
+ def constant; end
+
+ # def copy: (**params) -> FindPatternNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6910
+ sig { params(params: T.untyped).returns(Prism::FindPatternNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6890
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6927
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6979
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader left: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6935
+ sig { returns(Prism::Node) }
+ def left; end
+
+ # def opening: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6969
+ sig { returns(T.nilable(String)) }
+ def opening; end
+
+ # attr_reader opening_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6944
+ sig { returns(T.nilable(Prism::Location)) }
+ def opening_loc; end
+
+ # attr_reader requireds: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6938
+ sig { returns(T::Array[Prism::Node]) }
+ def requireds; end
+
+ # attr_reader right: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:6941
+ sig { returns(Prism::Node) }
+ def right; 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-0.24.0/lib/prism/node.rb:7011
+ def type; 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-0.24.0/lib/prism/node.rb:7021
+ def type; end
+ end
+end
+
+# Represents the use of the `..` or `...` operators to create flip flops.
+#
+# baz if foo .. bar
+# ^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:7030
+class Prism::FlipFlopNode < ::Prism::Node
+ # def initialize: (Integer flags, Node? left, Node? right, Location operator_loc, Location location) -> void
+ #
+ # @return [FlipFlopNode] a new instance of FlipFlopNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7032
+ def initialize(source, flags, left, right, operator_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7043
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7048
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7061
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7053
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> FlipFlopNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7066
+ sig { params(params: T.untyped).returns(Prism::FlipFlopNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7048
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7081
+ def deconstruct_keys(keys); end
+
+ # def exclude_end?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7103
+ sig { returns(T::Boolean) }
+ def exclude_end?; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7113
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader left: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7090
+ sig { returns(T.nilable(Prism::Node)) }
+ def left; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7108
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7096
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # attr_reader right: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7093
+ sig { returns(T.nilable(Prism::Node)) }
+ def right; 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-0.24.0/lib/prism/node.rb:7147
+ def type; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7086
+ 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-0.24.0/lib/prism/node.rb:7157
+ def type; end
+ end
+end
+
+# Represents a floating point number literal.
+#
+# 1.0
+# ^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:7166
+class Prism::FloatNode < ::Prism::Node
+ # def initialize: (Location location) -> void
+ #
+ # @return [FloatNode] a new instance of FloatNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7168
+ def initialize(source, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7175
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7180
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7190
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7185
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> FloatNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7195
+ sig { params(params: T.untyped).returns(Prism::FloatNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7180
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7206
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7212
+ def inspect(inspector = T.unsafe(nil)); 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-0.24.0/lib/prism/node.rb:7231
+ def type; end
+
+ # Returns the value of the node as a Ruby Float.
+ #
+ # source://prism-0.24.0/lib/prism/node_ext.rb:62
+ def value; 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-0.24.0/lib/prism/node.rb:7241
+ def type; end
+ end
+end
+
+# Represents the use of the `for` keyword.
+#
+# for i in a end
+# ^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:7250
+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
+ #
+ # @return [ForNode] a new instance of ForNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7252
+ def initialize(source, index, collection, statements, for_keyword_loc, in_keyword_loc, do_keyword_loc, end_keyword_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7266
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7271
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # attr_reader collection: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7316
+ sig { returns(Prism::Node) }
+ def collection; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7285
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7276
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ForNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7290
+ sig { params(params: T.untyped).returns(Prism::ForNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7271
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7308
+ def deconstruct_keys(keys); end
+
+ # def do_keyword: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7363
+ sig { returns(T.nilable(String)) }
+ def do_keyword; end
+
+ # attr_reader do_keyword_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7334
+ sig { returns(T.nilable(Prism::Location)) }
+ def do_keyword_loc; end
+
+ # def end_keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7368
+ sig { returns(String) }
+ def end_keyword; end
+
+ # attr_reader end_keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7346
+ sig { returns(Prism::Location) }
+ def end_keyword_loc; end
+
+ # def for_keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7353
+ sig { returns(String) }
+ def for_keyword; end
+
+ # attr_reader for_keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7322
+ sig { returns(Prism::Location) }
+ def for_keyword_loc; end
+
+ # def in_keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7358
+ sig { returns(String) }
+ def in_keyword; end
+
+ # attr_reader in_keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7328
+ sig { returns(Prism::Location) }
+ def in_keyword_loc; end
+
+ # attr_reader index: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7313
+ sig { returns(Prism::Node) }
+ def index; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7373
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader statements: StatementsNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7319
+ sig { returns(T.nilable(Prism::StatementsNode)) }
+ def statements; 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-0.24.0/lib/prism/node.rb:7406
+ def type; 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-0.24.0/lib/prism/node.rb:7416
+ def type; end
+ end
+end
+
+# Represents forwarding all arguments to this method to another method.
+#
+# def foo(...)
+# bar(...)
+# ^^^
+# end
+#
+# source://prism-0.24.0/lib/prism/node.rb:7427
+class Prism::ForwardingArgumentsNode < ::Prism::Node
+ # def initialize: (Location location) -> void
+ #
+ # @return [ForwardingArgumentsNode] a new instance of ForwardingArgumentsNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7429
+ def initialize(source, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7436
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7441
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7451
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7446
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ForwardingArgumentsNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7456
+ sig { params(params: T.untyped).returns(Prism::ForwardingArgumentsNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7441
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7467
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7473
+ def inspect(inspector = T.unsafe(nil)); 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-0.24.0/lib/prism/node.rb:7492
+ def type; 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-0.24.0/lib/prism/node.rb:7502
+ def type; end
+ end
+end
+
+# Represents the use of the forwarding parameter in a method, block, or lambda declaration.
+#
+# def foo(...)
+# ^^^
+# end
+#
+# source://prism-0.24.0/lib/prism/node.rb:7512
+class Prism::ForwardingParameterNode < ::Prism::Node
+ # def initialize: (Location location) -> void
+ #
+ # @return [ForwardingParameterNode] a new instance of ForwardingParameterNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7514
+ def initialize(source, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7521
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7526
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7536
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7531
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ForwardingParameterNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7541
+ sig { params(params: T.untyped).returns(Prism::ForwardingParameterNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7526
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7552
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7558
+ def inspect(inspector = T.unsafe(nil)); 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-0.24.0/lib/prism/node.rb:7577
+ def type; 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-0.24.0/lib/prism/node.rb:7587
+ def type; end
+ end
+end
+
+# Represents the use of the `super` keyword without parentheses or arguments.
+#
+# super
+# ^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:7596
+class Prism::ForwardingSuperNode < ::Prism::Node
+ # def initialize: (BlockNode? block, Location location) -> void
+ #
+ # @return [ForwardingSuperNode] a new instance of ForwardingSuperNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7598
+ def initialize(source, block, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7606
+ def accept(visitor); end
+
+ # attr_reader block: BlockNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7645
+ sig { returns(T.nilable(Prism::BlockNode)) }
+ def block; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7611
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7623
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7616
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ForwardingSuperNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7628
+ sig { params(params: T.untyped).returns(Prism::ForwardingSuperNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7611
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { block: BlockNode?, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7640
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7649
+ def inspect(inspector = T.unsafe(nil)); 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-0.24.0/lib/prism/node.rb:7674
+ def type; 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-0.24.0/lib/prism/node.rb:7684
+ def type; end
+ end
+end
+
+# Represents the use of the `&&=` operator for assignment to a global variable.
+#
+# $target &&= value
+# ^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:7693
+class Prism::GlobalVariableAndWriteNode < ::Prism::Node
+ # def initialize: (Symbol name, Location name_loc, Location operator_loc, Node value, Location location) -> void
+ #
+ # @return [GlobalVariableAndWriteNode] a new instance of GlobalVariableAndWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7695
+ def initialize(source, name, name_loc, operator_loc, value, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7706
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7711
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7721
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7716
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> GlobalVariableAndWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7726
+ sig { params(params: T.untyped).returns(Prism::GlobalVariableAndWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7711
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7741
+ def deconstruct_keys(keys); end
+
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:161
+ def desugar; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7770
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7746
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7749
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7765
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7755
+ sig { returns(Prism::Location) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:7794
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7761
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:7804
+ def type; end
+ end
+end
+
+# Represents assigning to a global variable using an operator that isn't `=`.
+#
+# $target += value
+# ^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:7813
+class Prism::GlobalVariableOperatorWriteNode < ::Prism::Node
+ # def initialize: (Symbol name, Location name_loc, Location operator_loc, Node value, Symbol operator, Location location) -> void
+ #
+ # @return [GlobalVariableOperatorWriteNode] a new instance of GlobalVariableOperatorWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7815
+ def initialize(source, name, name_loc, operator_loc, value, operator, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7827
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7832
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7842
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7837
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> GlobalVariableOperatorWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7847
+ sig { params(params: T.untyped).returns(Prism::GlobalVariableOperatorWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7832
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7863
+ def deconstruct_keys(keys); end
+
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:173
+ def desugar; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7890
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7868
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7871
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # attr_reader operator: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7886
+ sig { returns(Symbol) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7877
+ sig { returns(Prism::Location) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:7915
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7883
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:7925
+ def type; end
+ end
+end
+
+# Represents the use of the `||=` operator for assignment to a global variable.
+#
+# $target ||= value
+# ^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:7934
+class Prism::GlobalVariableOrWriteNode < ::Prism::Node
+ # def initialize: (Symbol name, Location name_loc, Location operator_loc, Node value, Location location) -> void
+ #
+ # @return [GlobalVariableOrWriteNode] a new instance of GlobalVariableOrWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7936
+ def initialize(source, name, name_loc, operator_loc, value, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7947
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7952
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7962
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7957
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> GlobalVariableOrWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7967
+ sig { params(params: T.untyped).returns(Prism::GlobalVariableOrWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7952
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7982
+ def deconstruct_keys(keys); end
+
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:167
+ def desugar; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8011
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7987
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7990
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8006
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:7996
+ sig { returns(Prism::Location) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:8035
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8002
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:8045
+ def type; end
+ end
+end
+
+# Represents referencing a global variable.
+#
+# $foo
+# ^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:8054
+class Prism::GlobalVariableReadNode < ::Prism::Node
+ # def initialize: (Symbol name, Location location) -> void
+ #
+ # @return [GlobalVariableReadNode] a new instance of GlobalVariableReadNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8056
+ def initialize(source, name, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8064
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8069
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8079
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8074
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> GlobalVariableReadNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8084
+ sig { params(params: T.untyped).returns(Prism::GlobalVariableReadNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8069
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8096
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8109
+ 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.
+ #
+ # $foo # name `:$foo`
+ #
+ # $_Test # name `:$_Test`
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8105
+ sig { returns(Symbol) }
+ def name; 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-0.24.0/lib/prism/node.rb:8129
+ def type; 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-0.24.0/lib/prism/node.rb:8139
+ def type; end
+ end
+end
+
+# Represents writing to a global variable in a context that doesn't have an explicit value.
+#
+# $foo, $bar = baz
+# ^^^^ ^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:8148
+class Prism::GlobalVariableTargetNode < ::Prism::Node
+ # def initialize: (Symbol name, Location location) -> void
+ #
+ # @return [GlobalVariableTargetNode] a new instance of GlobalVariableTargetNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8150
+ def initialize(source, name, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8158
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8163
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8173
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8168
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> GlobalVariableTargetNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8178
+ sig { params(params: T.untyped).returns(Prism::GlobalVariableTargetNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8163
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8190
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8199
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8195
+ sig { returns(Symbol) }
+ def name; 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-0.24.0/lib/prism/node.rb:8219
+ def type; 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-0.24.0/lib/prism/node.rb:8229
+ def type; end
+ end
+end
+
+# Represents writing to a global variable.
+#
+# $foo = 1
+# ^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:8238
+class Prism::GlobalVariableWriteNode < ::Prism::Node
+ # def initialize: (Symbol name, Location name_loc, Node value, Location operator_loc, Location location) -> void
+ #
+ # @return [GlobalVariableWriteNode] a new instance of GlobalVariableWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8240
+ def initialize(source, name, name_loc, value, operator_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8251
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8256
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8266
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8261
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> GlobalVariableWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8271
+ sig { params(params: T.untyped).returns(Prism::GlobalVariableWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8256
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8286
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8315
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8291
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8294
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8310
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8303
+ sig { returns(Prism::Location) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:8339
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8300
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:8349
+ def type; end
+ end
+end
+
+# Represents a hash literal.
+#
+# { a => b }
+# ^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:8358
+class Prism::HashNode < ::Prism::Node
+ # def initialize: (Location opening_loc, Array[Node] elements, Location closing_loc, Location location) -> void
+ #
+ # @return [HashNode] a new instance of HashNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8360
+ def initialize(source, opening_loc, elements, closing_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8370
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8375
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8442
+ sig { returns(String) }
+ def closing; end
+
+ # The location of the closing brace.
+ #
+ # { a => b }
+ # ^
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8430
+ sig { returns(Prism::Location) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8385
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8380
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> HashNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8390
+ sig { params(params: T.untyped).returns(Prism::HashNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8375
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8404
+ def deconstruct_keys(keys); end
+
+ # The elements of the hash. These can be either `AssocNode`s or `AssocSplatNode`s.
+ #
+ # { a: b }
+ # ^^^^
+ #
+ # { **foo }
+ # ^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8424
+ sig { returns(T::Array[Prism::Node]) }
+ def elements; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8447
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def opening: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8437
+ sig { returns(String) }
+ def opening; end
+
+ # The location of the opening brace.
+ #
+ # { a => b }
+ # ^
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8412
+ sig { returns(Prism::Location) }
+ def opening_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
+ # 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-0.24.0/lib/prism/node.rb:8469
+ def type; 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-0.24.0/lib/prism/node.rb:8479
+ def type; end
+ end
+end
+
+# Represents a hash pattern in pattern matching.
+#
+# foo => { a: 1, b: 2 }
+# ^^^^^^^^^^^^^^
+#
+# foo => { a: 1, b: 2, **c }
+# ^^^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:8491
+class Prism::HashPatternNode < ::Prism::Node
+ # def initialize: (Node? constant, Array[Node] elements, Node? rest, Location? opening_loc, Location? closing_loc, Location location) -> void
+ #
+ # @return [HashPatternNode] a new instance of HashPatternNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8493
+ def initialize(source, constant, elements, rest, opening_loc, closing_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8505
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8510
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8589
+ sig { returns(T.nilable(String)) }
+ def closing; end
+
+ # attr_reader closing_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8571
+ sig { returns(T.nilable(Prism::Location)) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8524
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8515
+ def compact_child_nodes; end
+
+ # attr_reader constant: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8550
+ sig { returns(T.nilable(Prism::Node)) }
+ def constant; end
+
+ # def copy: (**params) -> HashPatternNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8529
+ sig { params(params: T.untyped).returns(Prism::HashPatternNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8510
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8545
+ def deconstruct_keys(keys); end
+
+ # attr_reader elements: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8553
+ sig { returns(T::Array[Prism::Node]) }
+ def elements; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8594
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def opening: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8584
+ sig { returns(T.nilable(String)) }
+ def opening; end
+
+ # attr_reader opening_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8559
+ sig { returns(T.nilable(Prism::Location)) }
+ def opening_loc; end
+
+ # attr_reader rest: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8556
+ sig { returns(T.nilable(Prism::Node)) }
+ def rest; 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-0.24.0/lib/prism/node.rb:8628
+ def type; 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-0.24.0/lib/prism/node.rb:8638
+ def type; end
+ end
+end
+
+# source://prism-0.24.0/lib/prism/node_ext.rb:35
+module Prism::HeredocQuery
+ # Returns true if this node was represented as a heredoc in the source code.
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node_ext.rb:37
+ def heredoc?; end
+end
+
+# Represents the use of the `if` keyword, either in the block form or the modifier form.
+#
+# bar if foo
+# ^^^^^^^^^^
+#
+# if foo then bar end
+# ^^^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:8650
+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
+ #
+ # @return [IfNode] a new instance of IfNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8652
+ def initialize(source, if_keyword_loc, predicate, then_keyword_loc, statements, consequent, end_keyword_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8665
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8674
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8688
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8679
+ def compact_child_nodes; end
+
+ # attr_reader consequent: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8745
+ sig { returns(T.nilable(Prism::Node)) }
+ def consequent; end
+
+ # def copy: (**params) -> IfNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8693
+ sig { params(params: T.untyped).returns(Prism::IfNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8674
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8710
+ def deconstruct_keys(keys); end
+
+ # def end_keyword: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8771
+ sig { returns(T.nilable(String)) }
+ def end_keyword; end
+
+ # attr_reader end_keyword_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8748
+ sig { returns(T.nilable(Prism::Location)) }
+ def end_keyword_loc; end
+
+ # def if_keyword: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8761
+ sig { returns(T.nilable(String)) }
+ def if_keyword; end
+
+ # attr_reader if_keyword_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8715
+ sig { returns(T.nilable(Prism::Location)) }
+ def if_keyword_loc; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8776
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader predicate: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8727
+ sig { returns(Prism::Node) }
+ def predicate; end
+
+ # source://prism-0.24.0/lib/prism/node.rb:8669
+ def set_newline_flag(newline_marked); end
+
+ # attr_reader statements: StatementsNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8742
+ sig { returns(T.nilable(Prism::StatementsNode)) }
+ def statements; end
+
+ # def then_keyword: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8766
+ sig { returns(T.nilable(String)) }
+ def then_keyword; end
+
+ # attr_reader then_keyword_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8730
+ 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
+ # 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-0.24.0/lib/prism/node.rb:8812
+ def type; 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-0.24.0/lib/prism/node.rb:8822
+ def type; end
+ end
+end
+
+# Represents an imaginary number literal.
+#
+# 1.0i
+# ^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:8831
+class Prism::ImaginaryNode < ::Prism::Node
+ # def initialize: (Node numeric, Location location) -> void
+ #
+ # @return [ImaginaryNode] a new instance of ImaginaryNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8833
+ def initialize(source, numeric, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8841
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8846
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8856
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8851
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ImaginaryNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8861
+ sig { params(params: T.untyped).returns(Prism::ImaginaryNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8846
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { numeric: Node, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8873
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8882
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader numeric: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8878
+ sig { returns(Prism::Node) }
+ def numeric; 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-0.24.0/lib/prism/node.rb:8903
+ def type; end
+
+ # Returns the value of the node as a Ruby Complex.
+ #
+ # source://prism-0.24.0/lib/prism/node_ext.rb:69
+ def value; 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-0.24.0/lib/prism/node.rb:8913
+ def type; end
+ end
+end
+
+# Represents a node that is implicitly being added to the tree but doesn't correspond directly to a node in the source.
+#
+# { foo: }
+# ^^^^
+#
+# { Foo: }
+# ^^^^
+#
+# foo in { bar: }
+# ^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:8928
+class Prism::ImplicitNode < ::Prism::Node
+ # def initialize: (Node value, Location location) -> void
+ #
+ # @return [ImplicitNode] a new instance of ImplicitNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8930
+ def initialize(source, value, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8938
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8943
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8953
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8948
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ImplicitNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8958
+ sig { params(params: T.untyped).returns(Prism::ImplicitNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8943
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { value: Node, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8970
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8979
+ def inspect(inspector = T.unsafe(nil)); 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-0.24.0/lib/prism/node.rb:9000
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:8975
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:9010
+ def type; end
+ end
+end
+
+# Represents using a trailing comma to indicate an implicit rest parameter.
+#
+# foo { |bar,| }
+# ^
+#
+# foo in [bar,]
+# ^
+#
+# for foo, in bar do end
+# ^
+#
+# foo, = bar
+# ^
+#
+# source://prism-0.24.0/lib/prism/node.rb:9028
+class Prism::ImplicitRestNode < ::Prism::Node
+ # def initialize: (Location location) -> void
+ #
+ # @return [ImplicitRestNode] a new instance of ImplicitRestNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9030
+ def initialize(source, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9037
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9042
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9052
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9047
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ImplicitRestNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9057
+ sig { params(params: T.untyped).returns(Prism::ImplicitRestNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9042
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9068
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9074
+ def inspect(inspector = T.unsafe(nil)); 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-0.24.0/lib/prism/node.rb:9093
+ def type; 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-0.24.0/lib/prism/node.rb:9103
+ def type; end
+ end
+end
+
+# Represents the use of the `in` keyword in a case statement.
+#
+# case a; in b then c end
+# ^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:9112
+class Prism::InNode < ::Prism::Node
+ # def initialize: (Node pattern, StatementsNode? statements, Location in_loc, Location? then_loc, Location location) -> void
+ #
+ # @return [InNode] a new instance of InNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9114
+ def initialize(source, pattern, statements, in_loc, then_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9125
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9130
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9143
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9135
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> InNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9148
+ sig { params(params: T.untyped).returns(Prism::InNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9130
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9163
+ def deconstruct_keys(keys); end
+
+ # def in: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9193
+ sig { returns(String) }
+ def in; end
+
+ # attr_reader in_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9174
+ sig { returns(Prism::Location) }
+ def in_loc; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9203
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader pattern: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9168
+ sig { returns(Prism::Node) }
+ def pattern; end
+
+ # attr_reader statements: StatementsNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9171
+ sig { returns(T.nilable(Prism::StatementsNode)) }
+ def statements; end
+
+ # def then: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9198
+ sig { returns(T.nilable(String)) }
+ def then; end
+
+ # attr_reader then_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9180
+ sig { returns(T.nilable(Prism::Location)) }
+ def then_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
+ # 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-0.24.0/lib/prism/node.rb:9232
+ def type; 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-0.24.0/lib/prism/node.rb:9242
+ def type; end
+ end
+end
+
+# Represents the use of the `&&=` operator on a call to the `[]` method.
+#
+# foo.bar[baz] &&= value
+# ^^^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:9251
+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
+ #
+ # @return [IndexAndWriteNode] a new instance of IndexAndWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9253
+ def initialize(source, flags, receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, operator_loc, value, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9269
+ def accept(visitor); end
+
+ # attr_reader arguments: ArgumentsNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9344
+ sig { returns(T.nilable(Prism::ArgumentsNode)) }
+ def arguments; end
+
+ # def attribute_write?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9376
+ sig { returns(T::Boolean) }
+ def attribute_write?; end
+
+ # attr_reader block: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9353
+ sig { returns(T.nilable(Prism::Node)) }
+ def block; end
+
+ # def call_operator: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9386
+ sig { returns(T.nilable(String)) }
+ def call_operator; end
+
+ # attr_reader call_operator_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9326
+ sig { returns(T.nilable(Prism::Location)) }
+ def call_operator_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9274
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9396
+ sig { returns(String) }
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9347
+ sig { returns(Prism::Location) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9289
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9279
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> IndexAndWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9294
+ sig { params(params: T.untyped).returns(Prism::IndexAndWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9274
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9314
+ def deconstruct_keys(keys); end
+
+ # def ignore_visibility?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9381
+ sig { returns(T::Boolean) }
+ def ignore_visibility?; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9406
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def opening: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9391
+ sig { returns(String) }
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9338
+ sig { returns(Prism::Location) }
+ def opening_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9401
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9356
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # attr_reader receiver: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9323
+ sig { returns(T.nilable(Prism::Node)) }
+ def receiver; end
+
+ # def safe_navigation?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9366
+ sig { returns(T::Boolean) }
+ def safe_navigation?; 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-0.24.0/lib/prism/node.rb:9451
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9362
+ sig { returns(Prism::Node) }
+ def value; end
+
+ # def variable_call?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9371
+ sig { returns(T::Boolean) }
+ def variable_call?; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9319
+ 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-0.24.0/lib/prism/node.rb:9461
+ def type; end
+ end
+end
+
+# Represents the use of an assignment operator on a call to `[]`.
+#
+# foo.bar[baz] += value
+# ^^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:9470
+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
+ #
+ # @return [IndexOperatorWriteNode] a new instance of IndexOperatorWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9472
+ def initialize(source, flags, receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, operator, operator_loc, value, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9489
+ def accept(visitor); end
+
+ # attr_reader arguments: ArgumentsNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9565
+ sig { returns(T.nilable(Prism::ArgumentsNode)) }
+ def arguments; end
+
+ # def attribute_write?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9600
+ sig { returns(T::Boolean) }
+ def attribute_write?; end
+
+ # attr_reader block: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9574
+ sig { returns(T.nilable(Prism::Node)) }
+ def block; end
+
+ # def call_operator: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9610
+ sig { returns(T.nilable(String)) }
+ def call_operator; end
+
+ # attr_reader call_operator_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9547
+ sig { returns(T.nilable(Prism::Location)) }
+ def call_operator_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9494
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9620
+ sig { returns(String) }
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9568
+ sig { returns(Prism::Location) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9509
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9499
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> IndexOperatorWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9514
+ sig { params(params: T.untyped).returns(Prism::IndexOperatorWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9494
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9535
+ def deconstruct_keys(keys); end
+
+ # def ignore_visibility?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9605
+ sig { returns(T::Boolean) }
+ def ignore_visibility?; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9625
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def opening: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9615
+ sig { returns(String) }
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9559
+ sig { returns(Prism::Location) }
+ def opening_loc; end
+
+ # attr_reader operator: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9577
+ sig { returns(Symbol) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9580
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # attr_reader receiver: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9544
+ sig { returns(T.nilable(Prism::Node)) }
+ def receiver; end
+
+ # def safe_navigation?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9590
+ sig { returns(T::Boolean) }
+ def safe_navigation?; 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-0.24.0/lib/prism/node.rb:9671
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9586
+ sig { returns(Prism::Node) }
+ def value; end
+
+ # def variable_call?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9595
+ sig { returns(T::Boolean) }
+ def variable_call?; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9540
+ 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-0.24.0/lib/prism/node.rb:9681
+ def type; end
+ end
+end
+
+# Represents the use of the `||=` operator on a call to `[]`.
+#
+# foo.bar[baz] ||= value
+# ^^^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:9690
+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
+ #
+ # @return [IndexOrWriteNode] a new instance of IndexOrWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9692
+ def initialize(source, flags, receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, operator_loc, value, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9708
+ def accept(visitor); end
+
+ # attr_reader arguments: ArgumentsNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9783
+ sig { returns(T.nilable(Prism::ArgumentsNode)) }
+ def arguments; end
+
+ # def attribute_write?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9815
+ sig { returns(T::Boolean) }
+ def attribute_write?; end
+
+ # attr_reader block: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9792
+ sig { returns(T.nilable(Prism::Node)) }
+ def block; end
+
+ # def call_operator: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9825
+ sig { returns(T.nilable(String)) }
+ def call_operator; end
+
+ # attr_reader call_operator_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9765
+ sig { returns(T.nilable(Prism::Location)) }
+ def call_operator_loc; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9713
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9835
+ sig { returns(String) }
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9786
+ sig { returns(Prism::Location) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9728
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9718
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> IndexOrWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9733
+ sig { params(params: T.untyped).returns(Prism::IndexOrWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9713
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9753
+ def deconstruct_keys(keys); end
+
+ # def ignore_visibility?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9820
+ sig { returns(T::Boolean) }
+ def ignore_visibility?; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9845
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def opening: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9830
+ sig { returns(String) }
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9777
+ sig { returns(Prism::Location) }
+ def opening_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9840
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9795
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # attr_reader receiver: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9762
+ sig { returns(T.nilable(Prism::Node)) }
+ def receiver; end
+
+ # def safe_navigation?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9805
+ sig { returns(T::Boolean) }
+ def safe_navigation?; 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-0.24.0/lib/prism/node.rb:9890
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9801
+ sig { returns(Prism::Node) }
+ def value; end
+
+ # def variable_call?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9810
+ sig { returns(T::Boolean) }
+ def variable_call?; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9758
+ 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-0.24.0/lib/prism/node.rb:9900
+ def type; end
+ end
+end
+
+# Represents assigning to an index.
+#
+# foo[bar], = 1
+# ^^^^^^^^
+#
+# begin
+# rescue => foo[bar]
+# ^^^^^^^^
+# end
+#
+# for foo[bar] in baz do end
+# ^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:9917
+class Prism::IndexTargetNode < ::Prism::Node
+ # def initialize: (Integer flags, Node receiver, Location opening_loc, ArgumentsNode? arguments, Location closing_loc, Node? block, Location location) -> void
+ #
+ # @return [IndexTargetNode] a new instance of IndexTargetNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9919
+ def initialize(source, flags, receiver, opening_loc, arguments, closing_loc, block, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9932
+ def accept(visitor); end
+
+ # attr_reader arguments: ArgumentsNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9991
+ sig { returns(T.nilable(Prism::ArgumentsNode)) }
+ def arguments; end
+
+ # def attribute_write?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10014
+ sig { returns(T::Boolean) }
+ def attribute_write?; end
+
+ # attr_reader block: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10000
+ sig { returns(T.nilable(Prism::Node)) }
+ def block; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9937
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10029
+ sig { returns(String) }
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9994
+ sig { returns(Prism::Location) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9951
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9942
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> IndexTargetNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9956
+ sig { params(params: T.untyped).returns(Prism::IndexTargetNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9937
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9973
+ def deconstruct_keys(keys); end
+
+ # def ignore_visibility?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10019
+ sig { returns(T::Boolean) }
+ def ignore_visibility?; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10034
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def opening: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10024
+ sig { returns(String) }
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9985
+ sig { returns(Prism::Location) }
+ def opening_loc; end
+
+ # attr_reader receiver: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9982
+ sig { returns(Prism::Node) }
+ def receiver; end
+
+ # def safe_navigation?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10004
+ sig { returns(T::Boolean) }
+ def safe_navigation?; 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-0.24.0/lib/prism/node.rb:10071
+ def type; end
+
+ # def variable_call?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10009
+ sig { returns(T::Boolean) }
+ def variable_call?; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:9978
+ 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-0.24.0/lib/prism/node.rb:10081
+ def type; end
+ end
+end
+
+# InlineComment objects are the most common. They correspond to comments in
+# the source file like this one that start with #.
+#
+# source://prism-0.24.0/lib/prism/parse_result.rb:275
+class Prism::InlineComment < ::Prism::Comment
+ # Returns a string representation of this comment.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:283
+ def inspect; end
+
+ # Returns true if this comment happens on the same line as other code and
+ # false if the comment is by itself.
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:278
+ sig { override.returns(T::Boolean) }
+ def trailing?; end
+end
+
+# Represents the use of the `&&=` operator for assignment to an instance variable.
+#
+# @target &&= value
+# ^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:10090
+class Prism::InstanceVariableAndWriteNode < ::Prism::Node
+ # def initialize: (Symbol name, Location name_loc, Location operator_loc, Node value, Location location) -> void
+ #
+ # @return [InstanceVariableAndWriteNode] a new instance of InstanceVariableAndWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10092
+ def initialize(source, name, name_loc, operator_loc, value, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10103
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10108
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10118
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10113
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> InstanceVariableAndWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10123
+ sig { params(params: T.untyped).returns(Prism::InstanceVariableAndWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10108
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10138
+ def deconstruct_keys(keys); end
+
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:179
+ def desugar; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10167
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10143
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10146
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10162
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10152
+ sig { returns(Prism::Location) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:10191
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10158
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:10201
+ def type; end
+ end
+end
+
+# Represents assigning to an instance variable using an operator that isn't `=`.
+#
+# @target += value
+# ^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:10210
+class Prism::InstanceVariableOperatorWriteNode < ::Prism::Node
+ # def initialize: (Symbol name, Location name_loc, Location operator_loc, Node value, Symbol operator, Location location) -> void
+ #
+ # @return [InstanceVariableOperatorWriteNode] a new instance of InstanceVariableOperatorWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10212
+ def initialize(source, name, name_loc, operator_loc, value, operator, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10224
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10229
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10239
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10234
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> InstanceVariableOperatorWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10244
+ sig { params(params: T.untyped).returns(Prism::InstanceVariableOperatorWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10229
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10260
+ def deconstruct_keys(keys); end
+
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:191
+ def desugar; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10287
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10265
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10268
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # attr_reader operator: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10283
+ sig { returns(Symbol) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10274
+ sig { returns(Prism::Location) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:10312
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10280
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:10322
+ def type; end
+ end
+end
+
+# Represents the use of the `||=` operator for assignment to an instance variable.
+#
+# @target ||= value
+# ^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:10331
+class Prism::InstanceVariableOrWriteNode < ::Prism::Node
+ # def initialize: (Symbol name, Location name_loc, Location operator_loc, Node value, Location location) -> void
+ #
+ # @return [InstanceVariableOrWriteNode] a new instance of InstanceVariableOrWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10333
+ def initialize(source, name, name_loc, operator_loc, value, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10344
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10349
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10359
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10354
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> InstanceVariableOrWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10364
+ sig { params(params: T.untyped).returns(Prism::InstanceVariableOrWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10349
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10379
+ def deconstruct_keys(keys); end
+
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:185
+ def desugar; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10408
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10384
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10387
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10403
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10393
+ sig { returns(Prism::Location) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:10432
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10399
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:10442
+ def type; end
+ end
+end
+
+# Represents referencing an instance variable.
+#
+# @foo
+# ^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:10451
+class Prism::InstanceVariableReadNode < ::Prism::Node
+ # def initialize: (Symbol name, Location location) -> void
+ #
+ # @return [InstanceVariableReadNode] a new instance of InstanceVariableReadNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10453
+ def initialize(source, name, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10461
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10466
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10476
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10471
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> InstanceVariableReadNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10481
+ sig { params(params: T.untyped).returns(Prism::InstanceVariableReadNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10466
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10493
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10506
+ 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).
+ #
+ # @x # name `:@x`
+ #
+ # @_test # name `:@_test`
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10502
+ sig { returns(Symbol) }
+ def name; 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-0.24.0/lib/prism/node.rb:10526
+ def type; 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-0.24.0/lib/prism/node.rb:10536
+ def type; end
+ end
+end
+
+# Represents writing to an instance variable in a context that doesn't have an explicit value.
+#
+# @foo, @bar = baz
+# ^^^^ ^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:10545
+class Prism::InstanceVariableTargetNode < ::Prism::Node
+ # def initialize: (Symbol name, Location location) -> void
+ #
+ # @return [InstanceVariableTargetNode] a new instance of InstanceVariableTargetNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10547
+ def initialize(source, name, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10555
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10560
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10570
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10565
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> InstanceVariableTargetNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10575
+ sig { params(params: T.untyped).returns(Prism::InstanceVariableTargetNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10560
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10587
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10596
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10592
+ sig { returns(Symbol) }
+ def name; 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-0.24.0/lib/prism/node.rb:10616
+ def type; 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-0.24.0/lib/prism/node.rb:10626
+ def type; end
+ end
+end
+
+# Represents writing to an instance variable.
+#
+# @foo = 1
+# ^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:10635
+class Prism::InstanceVariableWriteNode < ::Prism::Node
+ # def initialize: (Symbol name, Location name_loc, Node value, Location operator_loc, Location location) -> void
+ #
+ # @return [InstanceVariableWriteNode] a new instance of InstanceVariableWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10637
+ def initialize(source, name, name_loc, value, operator_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10648
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10653
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10663
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10658
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> InstanceVariableWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10668
+ sig { params(params: T.untyped).returns(Prism::InstanceVariableWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10653
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10683
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10712
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10688
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10691
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10707
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10700
+ sig { returns(Prism::Location) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:10736
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10697
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:10746
+ def type; end
+ end
+end
+
+# Flags for integer nodes that correspond to the base of the integer.
+#
+# source://prism-0.24.0/lib/prism/node.rb:19277
+module Prism::IntegerBaseFlags; end
+
+# 0b prefix
+#
+# source://prism-0.24.0/lib/prism/node.rb:19279
+Prism::IntegerBaseFlags::BINARY = T.let(T.unsafe(nil), Integer)
+
+# 0d or no prefix
+#
+# source://prism-0.24.0/lib/prism/node.rb:19282
+Prism::IntegerBaseFlags::DECIMAL = T.let(T.unsafe(nil), Integer)
+
+# 0x prefix
+#
+# source://prism-0.24.0/lib/prism/node.rb:19288
+Prism::IntegerBaseFlags::HEXADECIMAL = T.let(T.unsafe(nil), Integer)
+
+# 0o or 0 prefix
+#
+# source://prism-0.24.0/lib/prism/node.rb:19285
+Prism::IntegerBaseFlags::OCTAL = T.let(T.unsafe(nil), Integer)
+
+# Represents an integer number literal.
+#
+# 1
+# ^
+#
+# source://prism-0.24.0/lib/prism/node.rb:10755
+class Prism::IntegerNode < ::Prism::Node
+ # def initialize: (Integer flags, Location location) -> void
+ #
+ # @return [IntegerNode] a new instance of IntegerNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10757
+ def initialize(source, flags, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10765
+ def accept(visitor); end
+
+ # def binary?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10807
+ sig { returns(T::Boolean) }
+ def binary?; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10770
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10780
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10775
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> IntegerNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10785
+ sig { params(params: T.untyped).returns(Prism::IntegerNode) }
+ def copy(**params); end
+
+ # def decimal?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10812
+ sig { returns(T::Boolean) }
+ def decimal?; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10770
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10797
+ def deconstruct_keys(keys); end
+
+ # def hexadecimal?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10822
+ sig { returns(T::Boolean) }
+ def hexadecimal?; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10827
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def octal?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10817
+ sig { returns(T::Boolean) }
+ def octal?; 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-0.24.0/lib/prism/node.rb:10848
+ def type; end
+
+ # Returns the value of the node as a Ruby Integer.
+ #
+ # source://prism-0.24.0/lib/prism/node_ext.rb:76
+ def value; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10802
+ 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-0.24.0/lib/prism/node.rb:10858
+ def type; end
+ end
+end
+
+# Represents a regular expression literal that contains interpolation that is being used in the predicate of a conditional to implicitly match against the last line read by an IO object.
+#
+# if /foo #{bar} baz/ then end
+# ^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:10867
+class Prism::InterpolatedMatchLastLineNode < ::Prism::Node
+ include ::Prism::RegularExpressionOptions
+
+ # def initialize: (Integer flags, Location opening_loc, Array[Node] parts, Location closing_loc, Location location) -> void
+ #
+ # @return [InterpolatedMatchLastLineNode] a new instance of InterpolatedMatchLastLineNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10869
+ def initialize(source, flags, opening_loc, parts, closing_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10880
+ def accept(visitor); end
+
+ # def ascii_8bit?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10970
+ sig { returns(T::Boolean) }
+ def ascii_8bit?; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10890
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11005
+ sig { returns(String) }
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10938
+ sig { returns(Prism::Location) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10900
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10895
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> InterpolatedMatchLastLineNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10905
+ sig { params(params: T.untyped).returns(Prism::InterpolatedMatchLastLineNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10890
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10920
+ def deconstruct_keys(keys); end
+
+ # def euc_jp?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10965
+ sig { returns(T::Boolean) }
+ def euc_jp?; end
+
+ # def extended?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10950
+ sig { returns(T::Boolean) }
+ def extended?; end
+
+ # def forced_binary_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10990
+ sig { returns(T::Boolean) }
+ def forced_binary_encoding?; end
+
+ # def forced_us_ascii_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10995
+ sig { returns(T::Boolean) }
+ def forced_us_ascii_encoding?; end
+
+ # def forced_utf8_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10985
+ sig { returns(T::Boolean) }
+ def forced_utf8_encoding?; end
+
+ # def ignore_case?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10945
+ sig { returns(T::Boolean) }
+ def ignore_case?; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11010
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def multi_line?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10955
+ sig { returns(T::Boolean) }
+ def multi_line?; end
+
+ # def once?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10960
+ sig { returns(T::Boolean) }
+ def once?; end
+
+ # def opening: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11000
+ sig { returns(String) }
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10929
+ sig { returns(Prism::Location) }
+ def opening_loc; end
+
+ # attr_reader parts: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10935
+ sig { returns(T::Array[Prism::Node]) }
+ def parts; end
+
+ # source://prism-0.24.0/lib/prism/node.rb:10884
+ def set_newline_flag(newline_marked); 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-0.24.0/lib/prism/node.rb:11034
+ def type; end
+
+ # def utf_8?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10980
+ sig { returns(T::Boolean) }
+ def utf_8?; end
+
+ # def windows_31j?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10975
+ sig { returns(T::Boolean) }
+ def windows_31j?; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:10925
+ 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-0.24.0/lib/prism/node.rb:11044
+ def type; end
+ end
+end
+
+# Represents a regular expression literal that contains interpolation.
+#
+# /foo #{bar} baz/
+# ^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:11053
+class Prism::InterpolatedRegularExpressionNode < ::Prism::Node
+ include ::Prism::RegularExpressionOptions
+
+ # def initialize: (Integer flags, Location opening_loc, Array[Node] parts, Location closing_loc, Location location) -> void
+ #
+ # @return [InterpolatedRegularExpressionNode] a new instance of InterpolatedRegularExpressionNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11055
+ def initialize(source, flags, opening_loc, parts, closing_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11066
+ def accept(visitor); end
+
+ # def ascii_8bit?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11156
+ sig { returns(T::Boolean) }
+ def ascii_8bit?; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11076
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11191
+ sig { returns(String) }
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11124
+ sig { returns(Prism::Location) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11086
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11081
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> InterpolatedRegularExpressionNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11091
+ sig { params(params: T.untyped).returns(Prism::InterpolatedRegularExpressionNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11076
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11106
+ def deconstruct_keys(keys); end
+
+ # def euc_jp?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11151
+ sig { returns(T::Boolean) }
+ def euc_jp?; end
+
+ # def extended?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11136
+ sig { returns(T::Boolean) }
+ def extended?; end
+
+ # def forced_binary_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11176
+ sig { returns(T::Boolean) }
+ def forced_binary_encoding?; end
+
+ # def forced_us_ascii_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11181
+ sig { returns(T::Boolean) }
+ def forced_us_ascii_encoding?; end
+
+ # def forced_utf8_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11171
+ sig { returns(T::Boolean) }
+ def forced_utf8_encoding?; end
+
+ # def ignore_case?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11131
+ sig { returns(T::Boolean) }
+ def ignore_case?; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11196
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def multi_line?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11141
+ sig { returns(T::Boolean) }
+ def multi_line?; end
+
+ # def once?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11146
+ sig { returns(T::Boolean) }
+ def once?; end
+
+ # def opening: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11186
+ sig { returns(String) }
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11115
+ sig { returns(Prism::Location) }
+ def opening_loc; end
+
+ # attr_reader parts: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11121
+ sig { returns(T::Array[Prism::Node]) }
+ def parts; end
+
+ # source://prism-0.24.0/lib/prism/node.rb:11070
+ def set_newline_flag(newline_marked); 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-0.24.0/lib/prism/node.rb:11220
+ def type; end
+
+ # def utf_8?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11166
+ sig { returns(T::Boolean) }
+ def utf_8?; end
+
+ # def windows_31j?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11161
+ sig { returns(T::Boolean) }
+ def windows_31j?; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11111
+ 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-0.24.0/lib/prism/node.rb:11230
+ def type; end
+ end
+end
+
+# Represents a string literal that contains interpolation.
+#
+# "foo #{bar} baz"
+# ^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:11239
+class Prism::InterpolatedStringNode < ::Prism::Node
+ include ::Prism::HeredocQuery
+
+ # def initialize: (Location? opening_loc, Array[Node] parts, Location? closing_loc, Location location) -> void
+ #
+ # @return [InterpolatedStringNode] a new instance of InterpolatedStringNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11241
+ def initialize(source, opening_loc, parts, closing_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11251
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11261
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11328
+ sig { returns(T.nilable(String)) }
+ def closing; end
+
+ # attr_reader closing_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11310
+ sig { returns(T.nilable(Prism::Location)) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11271
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11266
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> InterpolatedStringNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11276
+ sig { params(params: T.untyped).returns(Prism::InterpolatedStringNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11261
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11290
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11333
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def opening: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11323
+ sig { returns(T.nilable(String)) }
+ def opening; end
+
+ # attr_reader opening_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11295
+ sig { returns(T.nilable(Prism::Location)) }
+ def opening_loc; end
+
+ # attr_reader parts: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11307
+ sig { returns(T::Array[Prism::Node]) }
+ def parts; end
+
+ # source://prism-0.24.0/lib/prism/node.rb:11255
+ def set_newline_flag(newline_marked); 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-0.24.0/lib/prism/node.rb:11355
+ def type; 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-0.24.0/lib/prism/node.rb:11365
+ def type; end
+ end
+end
+
+# Represents a symbol literal that contains interpolation.
+#
+# :"foo #{bar} baz"
+# ^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:11374
+class Prism::InterpolatedSymbolNode < ::Prism::Node
+ # def initialize: (Location? opening_loc, Array[Node] parts, Location? closing_loc, Location location) -> void
+ #
+ # @return [InterpolatedSymbolNode] a new instance of InterpolatedSymbolNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11376
+ def initialize(source, opening_loc, parts, closing_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11386
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11396
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11463
+ sig { returns(T.nilable(String)) }
+ def closing; end
+
+ # attr_reader closing_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11445
+ sig { returns(T.nilable(Prism::Location)) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11406
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11401
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> InterpolatedSymbolNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11411
+ sig { params(params: T.untyped).returns(Prism::InterpolatedSymbolNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11396
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11425
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11468
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def opening: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11458
+ sig { returns(T.nilable(String)) }
+ def opening; end
+
+ # attr_reader opening_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11430
+ sig { returns(T.nilable(Prism::Location)) }
+ def opening_loc; end
+
+ # attr_reader parts: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11442
+ sig { returns(T::Array[Prism::Node]) }
+ def parts; end
+
+ # source://prism-0.24.0/lib/prism/node.rb:11390
+ def set_newline_flag(newline_marked); 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-0.24.0/lib/prism/node.rb:11490
+ def type; 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-0.24.0/lib/prism/node.rb:11500
+ def type; end
+ end
+end
+
+# Represents an xstring literal that contains interpolation.
+#
+# `foo #{bar} baz`
+# ^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:11509
+class Prism::InterpolatedXStringNode < ::Prism::Node
+ include ::Prism::HeredocQuery
+
+ # def initialize: (Location opening_loc, Array[Node] parts, Location closing_loc, Location location) -> void
+ #
+ # @return [InterpolatedXStringNode] a new instance of InterpolatedXStringNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11511
+ def initialize(source, opening_loc, parts, closing_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11521
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11531
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11586
+ sig { returns(String) }
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11574
+ sig { returns(Prism::Location) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11541
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11536
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> InterpolatedXStringNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11546
+ sig { params(params: T.untyped).returns(Prism::InterpolatedXStringNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11531
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11560
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11591
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def opening: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11581
+ sig { returns(String) }
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11565
+ sig { returns(Prism::Location) }
+ def opening_loc; end
+
+ # attr_reader parts: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11571
+ sig { returns(T::Array[Prism::Node]) }
+ def parts; end
+
+ # source://prism-0.24.0/lib/prism/node.rb:11525
+ def set_newline_flag(newline_marked); 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-0.24.0/lib/prism/node.rb:11613
+ def type; 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-0.24.0/lib/prism/node.rb:11623
+ def type; end
+ end
+end
+
+# Represents a hash literal without opening and closing braces.
+#
+# foo(a: b)
+# ^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:11632
+class Prism::KeywordHashNode < ::Prism::Node
+ # def initialize: (Integer flags, Array[Node] elements, Location location) -> void
+ #
+ # @return [KeywordHashNode] a new instance of KeywordHashNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11634
+ def initialize(source, flags, elements, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11643
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11648
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11658
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11653
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> KeywordHashNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11663
+ sig { params(params: T.untyped).returns(Prism::KeywordHashNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11648
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, elements: Array[Node], location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11676
+ def deconstruct_keys(keys); end
+
+ # attr_reader elements: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11685
+ sig { returns(T::Array[Prism::Node]) }
+ def elements; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11694
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def symbol_keys?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/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
+ # 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-0.24.0/lib/prism/node.rb:11716
+ def type; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/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.
+ # 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-0.24.0/lib/prism/node.rb:11726
+ def type; end
+ end
+end
+
+# Flags for keyword hash nodes.
+#
+# source://prism-0.24.0/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-0.24.0/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.
+#
+# def a(**b)
+# ^^^
+# end
+#
+# source://prism-0.24.0/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
+ #
+ # @return [KeywordRestParameterNode] a new instance of KeywordRestParameterNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11738
+ def initialize(source, flags, name, name_loc, operator_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11749
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11754
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11764
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11759
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> KeywordRestParameterNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11769
+ sig { params(params: T.untyped).returns(Prism::KeywordRestParameterNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11754
+ sig { 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-0.24.0/lib/prism/node.rb:11784
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11825
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11793
+ sig { returns(T.nilable(Symbol)) }
+ def name; end
+
+ # attr_reader name_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11796
+ sig { returns(T.nilable(Prism::Location)) }
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11820
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11808
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # def repeated_parameter?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11815
+ sig { returns(T::Boolean) }
+ def repeated_parameter?; 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-0.24.0/lib/prism/node.rb:11853
+ def type; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11789
+ 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-0.24.0/lib/prism/node.rb:11863
+ def type; end
+ end
+end
+
+# Represents using a lambda literal (not the lambda method call).
+#
+# ->(value) { value * 2 }
+# ^^^^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:11872
+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
+ #
+ # @return [LambdaNode] a new instance of LambdaNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11874
+ def initialize(source, locals, operator_loc, opening_loc, closing_loc, parameters, body, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11887
+ def accept(visitor); end
+
+ # attr_reader body: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11956
+ sig { returns(T.nilable(Prism::Node)) }
+ def body; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11892
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11970
+ sig { returns(String) }
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11947
+ sig { returns(Prism::Location) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11905
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11897
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> LambdaNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11910
+ sig { params(params: T.untyped).returns(Prism::LambdaNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11892
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11927
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11975
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader locals: Array[Symbol]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11932
+ sig { returns(T::Array[Symbol]) }
+ def locals; end
+
+ # def opening: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11965
+ sig { returns(String) }
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11941
+ sig { returns(Prism::Location) }
+ def opening_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11960
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11935
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # attr_reader parameters: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:11953
+ sig { returns(T.nilable(Prism::Node)) }
+ def parameters; 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-0.24.0/lib/prism/node.rb:12010
+ def type; 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-0.24.0/lib/prism/node.rb:12020
+ def type; end
+ end
+end
+
+# This class is responsible for lexing the source using prism and then
+# converting those tokens to be compatible with Ripper. In the vast majority
+# of cases, this is a one-to-one mapping of the token type. Everything else
+# generally lines up. However, there are a few cases that require special
+# handling.
+#
+# source://prism-0.24.0/lib/prism/lex_compat.rb:12
+class Prism::LexCompat
+ # @return [LexCompat] a new instance of LexCompat
+ #
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:600
+ def initialize(source, **options); end
+
+ # Returns the value of attribute options.
+ #
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:598
+ def options; end
+
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:605
+ def result; end
+
+ # Returns the value of attribute source.
+ #
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:598
+ 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-0.24.0/lib/prism/lex_compat.rb:211
+class Prism::LexCompat::EndContentToken < ::Prism::LexCompat::Token
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:212
+ def ==(other); end
+end
+
+# A heredoc in this case is a list of tokens that belong to the body of the
+# heredoc that should be appended onto the list of tokens when the heredoc
+# closes.
+#
+# source://prism-0.24.0/lib/prism/lex_compat.rb:272
+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-0.24.0/lib/prism/lex_compat.rb:584
+ def build(opening); end
+ end
+end
+
+# Dash heredocs are a little more complicated. They are a list of tokens
+# that need to be split on "\\\n" to mimic Ripper's behavior. We also need
+# to keep track of the state that the heredoc was opened in.
+#
+# source://prism-0.24.0/lib/prism/lex_compat.rb:296
+class Prism::LexCompat::Heredoc::DashHeredoc
+ # @return [DashHeredoc] a new instance of DashHeredoc
+ #
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:299
+ def initialize(split); end
+
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:304
+ def <<(token); end
+
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:297
+ def split; end
+
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:308
+ def to_a; end
+
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:297
+ def tokens; end
+end
+
+# Heredocs that are dedenting heredocs are a little more complicated.
+# Ripper outputs on_ignored_sp tokens for the whitespace that is being
+# removed from the output. prism only modifies the node itself and keeps
+# the token the same. This simplifies prism, but makes comparing against
+# Ripper much harder because there is a length mismatch.
+#
+# Fortunately, we already have to pull out the heredoc tokens in order to
+# insert them into the stream in the correct order. As such, we can do
+# some extra manipulation on the tokens to make them match Ripper's
+# output by mirroring the dedent logic that Ripper uses.
+#
+# source://prism-0.24.0/lib/prism/lex_compat.rb:355
+class Prism::LexCompat::Heredoc::DedentingHeredoc
+ # @return [DedentingHeredoc] a new instance of DedentingHeredoc
+ #
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:360
+ 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-0.24.0/lib/prism/lex_compat.rb:371
+ def <<(token); end
+
+ # Returns the value of attribute dedent.
+ #
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:358
+ def dedent; end
+
+ # Returns the value of attribute dedent_next.
+ #
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:358
+ def dedent_next; end
+
+ # Returns the value of attribute embexpr_balance.
+ #
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:358
+ def embexpr_balance; end
+
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:408
+ def to_a; end
+
+ # Returns the value of attribute tokens.
+ #
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:358
+ def tokens; end
+end
+
+# source://prism-0.24.0/lib/prism/lex_compat.rb:356
+Prism::LexCompat::Heredoc::DedentingHeredoc::TAB_WIDTH = T.let(T.unsafe(nil), Integer)
+
+# Heredocs that are no dash or tilde heredocs are just a list of tokens.
+# We need to keep them around so that we can insert them in the correct
+# order back into the token stream and set the state of the last token to
+# the state that the heredoc was opened in.
+#
+# source://prism-0.24.0/lib/prism/lex_compat.rb:277
+class Prism::LexCompat::Heredoc::PlainHeredoc
+ # @return [PlainHeredoc] a new instance of PlainHeredoc
+ #
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:280
+ def initialize; end
+
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:284
+ def <<(token); end
+
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:288
+ def to_a; end
+
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:278
+ def tokens; end
+end
+
+# Ident tokens for the most part are exactly the same, except sometimes we
+# know an ident is a local when ripper doesn't (when they are introduced
+# through named captures in regular expressions). In that case we don't
+# compare the state.
+#
+# source://prism-0.24.0/lib/prism/lex_compat.rb:229
+class Prism::LexCompat::IdentToken < ::Prism::LexCompat::Token
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:230
+ def ==(other); end
+end
+
+# Tokens where state should be ignored
+# used for :on_comment, :on_heredoc_end, :on_embexpr_end
+#
+# source://prism-0.24.0/lib/prism/lex_compat.rb:219
+class Prism::LexCompat::IgnoreStateToken < ::Prism::LexCompat::Token
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:220
+ def ==(other); end
+end
+
+# Ignored newlines can occasionally have a LABEL state attached to them, so
+# we compare the state differently here.
+#
+# source://prism-0.24.0/lib/prism/lex_compat.rb:240
+class Prism::LexCompat::IgnoredNewlineToken < ::Prism::LexCompat::Token
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:241
+ def ==(other); end
+end
+
+# If we have an identifier that follows a method name like:
+#
+# def foo bar
+#
+# then Ripper will mark bar as END|LABEL if there is a local in a parent
+# scope named bar because it hasn't pushed the local table yet. We do this
+# more accurately, so we need to allow comparing against both END and
+# END|LABEL.
+#
+# source://prism-0.24.0/lib/prism/lex_compat.rb:260
+class Prism::LexCompat::ParamToken < ::Prism::LexCompat::Token
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:261
+ def ==(other); end
+end
+
+# This is a mapping of prism token types to Ripper token types. This is a
+# many-to-one mapping because we split up our token types, whereas Ripper
+# tends to group them.
+#
+# source://prism-0.24.0/lib/prism/lex_compat.rb:16
+Prism::LexCompat::RIPPER = T.let(T.unsafe(nil), Hash)
+
+# 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-0.24.0/lib/prism/lex_compat.rb:187
+class Prism::LexCompat::Token < ::SimpleDelegator
+ # The type of the token.
+ #
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:194
+ def event; end
+
+ # The location of the token in the source.
+ #
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:189
+ def location; end
+
+ # The state of the lexer when this token was produced.
+ #
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:204
+ def state; end
+
+ # The slice of the source that this token represents.
+ #
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:199
+ def value; end
+end
+
+# This is a class that wraps the Ripper lexer to produce almost exactly the
+# same tokens.
+#
+# source://prism-0.24.0/lib/prism/lex_compat.rb:853
+class Prism::LexRipper
+ # @return [LexRipper] a new instance of LexRipper
+ #
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:856
+ def initialize(source); end
+
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:860
+ def result; end
+
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:854
+ def source; end
+
+ private
+
+ # source://prism-0.24.0/lib/prism/lex_compat.rb:894
+ def lex(source); end
+end
+
+# Represents the use of the `&&=` operator for assignment to a local variable.
+#
+# target &&= value
+# ^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:12029
+class Prism::LocalVariableAndWriteNode < ::Prism::Node
+ # def initialize: (Location name_loc, Location operator_loc, Node value, Symbol name, Integer depth, Location location) -> void
+ #
+ # @return [LocalVariableAndWriteNode] a new instance of LocalVariableAndWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12031
+ def initialize(source, name_loc, operator_loc, value, name, depth, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12043
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12048
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12058
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12053
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> LocalVariableAndWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12063
+ sig { params(params: T.untyped).returns(Prism::LocalVariableAndWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12048
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12079
+ def deconstruct_keys(keys); end
+
+ # attr_reader depth: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12102
+ sig { returns(Integer) }
+ def depth; end
+
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:197
+ def desugar; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12111
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12099
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12084
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12106
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12090
+ sig { returns(Prism::Location) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:12136
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12096
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:12146
+ def type; end
+ end
+end
+
+# Represents assigning to a local variable using an operator that isn't `=`.
+#
+# target += value
+# ^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:12155
+class Prism::LocalVariableOperatorWriteNode < ::Prism::Node
+ # def initialize: (Location name_loc, Location operator_loc, Node value, Symbol name, Symbol operator, Integer depth, Location location) -> void
+ #
+ # @return [LocalVariableOperatorWriteNode] a new instance of LocalVariableOperatorWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12157
+ def initialize(source, name_loc, operator_loc, value, name, operator, depth, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12170
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12175
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12185
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12180
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> LocalVariableOperatorWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12190
+ sig { params(params: T.untyped).returns(Prism::LocalVariableOperatorWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12175
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12207
+ def deconstruct_keys(keys); end
+
+ # attr_reader depth: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12233
+ sig { returns(Integer) }
+ def depth; end
+
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:209
+ def desugar; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12237
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12227
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12212
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # attr_reader operator: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12230
+ sig { returns(Symbol) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12218
+ sig { returns(Prism::Location) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:12263
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12224
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:12273
+ def type; end
+ end
+end
+
+# Represents the use of the `||=` operator for assignment to a local variable.
+#
+# target ||= value
+# ^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:12282
+class Prism::LocalVariableOrWriteNode < ::Prism::Node
+ # def initialize: (Location name_loc, Location operator_loc, Node value, Symbol name, Integer depth, Location location) -> void
+ #
+ # @return [LocalVariableOrWriteNode] a new instance of LocalVariableOrWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12284
+ def initialize(source, name_loc, operator_loc, value, name, depth, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12296
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12301
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12311
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12306
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> LocalVariableOrWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12316
+ sig { params(params: T.untyped).returns(Prism::LocalVariableOrWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12301
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12332
+ def deconstruct_keys(keys); end
+
+ # attr_reader depth: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12355
+ sig { returns(Integer) }
+ def depth; end
+
+ # source://prism-0.24.0/lib/prism/desugar_compiler.rb:203
+ def desugar; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12364
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12352
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12337
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12359
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12343
+ sig { returns(Prism::Location) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:12389
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12349
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:12399
+ def type; end
+ end
+end
+
+# Represents reading a local variable. Note that this requires that a local variable of the same name has already been written to in the same scope, otherwise it is parsed as a method call.
+#
+# foo
+# ^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:12408
+class Prism::LocalVariableReadNode < ::Prism::Node
+ # def initialize: (Symbol name, Integer depth, Location location) -> void
+ #
+ # @return [LocalVariableReadNode] a new instance of LocalVariableReadNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12410
+ def initialize(source, name, depth, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12419
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12424
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12434
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12429
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> LocalVariableReadNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12439
+ sig { params(params: T.untyped).returns(Prism::LocalVariableReadNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12424
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, depth: Integer, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12452
+ def deconstruct_keys(keys); end
+
+ # The number of visible scopes that should be searched to find the origin of this local variable.
+ #
+ # foo = 1; foo # depth 0
+ #
+ # bar = 2; tap { bar } # depth 1
+ #
+ # The specific rules for calculating the depth may differ from individual Ruby implementations, as they are not specified by the language. For more information, see [the Prism documentation](https://github.com/ruby/prism/blob/main/docs/local_variable_depth.md).
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12478
+ sig { returns(Integer) }
+ def depth; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12482
+ 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).
+ #
+ # x # name `:x`
+ #
+ # _Test # name `:_Test`
+ #
+ # Note that this can also be an underscore followed by a number for the default block parameters.
+ #
+ # _1 # name `:_1`
+ #
+ # Finally, for the default `it` block parameter, the name is `0it`. This is to distinguish it from an `it` local variable that is explicitly declared.
+ #
+ # it # name `:0it`
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12469
+ sig { returns(Symbol) }
+ def name; 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-0.24.0/lib/prism/node.rb:12503
+ def type; 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-0.24.0/lib/prism/node.rb:12513
+ def type; end
+ end
+end
+
+# Represents writing to a local variable in a context that doesn't have an explicit value.
+#
+# foo, bar = baz
+# ^^^ ^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:12522
+class Prism::LocalVariableTargetNode < ::Prism::Node
+ # def initialize: (Symbol name, Integer depth, Location location) -> void
+ #
+ # @return [LocalVariableTargetNode] a new instance of LocalVariableTargetNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12524
+ def initialize(source, name, depth, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12533
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12538
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12548
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12543
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> LocalVariableTargetNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12553
+ sig { params(params: T.untyped).returns(Prism::LocalVariableTargetNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12538
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { name: Symbol, depth: Integer, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12566
+ def deconstruct_keys(keys); end
+
+ # attr_reader depth: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12574
+ sig { returns(Integer) }
+ def depth; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12578
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12571
+ sig { returns(Symbol) }
+ def name; 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-0.24.0/lib/prism/node.rb:12599
+ def type; 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-0.24.0/lib/prism/node.rb:12609
+ def type; end
+ end
+end
+
+# Represents writing to a local variable.
+#
+# foo = 1
+# ^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:12618
+class Prism::LocalVariableWriteNode < ::Prism::Node
+ # def initialize: (Symbol name, Integer depth, Location name_loc, Node value, Location operator_loc, Location location) -> void
+ #
+ # @return [LocalVariableWriteNode] a new instance of LocalVariableWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12620
+ def initialize(source, name, depth, name_loc, value, operator_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12632
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12637
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12647
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12642
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> LocalVariableWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12652
+ sig { params(params: T.untyped).returns(Prism::LocalVariableWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12637
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12668
+ def deconstruct_keys(keys); end
+
+ # attr_reader depth: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12676
+ sig { returns(Integer) }
+ def depth; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12700
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12673
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12679
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12695
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12688
+ sig { returns(Prism::Location) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:12725
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12685
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:12735
+ def type; end
+ end
+end
+
+# This represents a location in the source.
+#
+# source://prism-0.24.0/lib/prism/parse_result.rb:98
+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-0.24.0/lib/prism/parse_result.rb:116
+ def initialize(source, start_offset, length); end
+
+ # Returns true if the given other location is equal to this location.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:232
+ def ==(other); end
+
+ # The list of comments attached to this location
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:112
+ sig { returns(T::Array[Prism::Comment]) }
+ def comments; end
+
+ # Create a new location object with the given options.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:124
+ sig { params(options: T.untyped).returns(Prism::Location) }
+ def copy(**options); end
+
+ # Implement the hash pattern matching interface for Location.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:222
+ def deconstruct_keys(keys); end
+
+ # The column number in characters where this location ends from the start of
+ # the line.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:211
+ def end_character_column; end
+
+ # The character offset from the beginning of the source where this location
+ # ends.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:160
+ 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-0.24.0/lib/prism/parse_result.rb:217
+ 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-0.24.0/lib/prism/parse_result.rb:165
+ 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-0.24.0/lib/prism/parse_result.rb:205
+ sig { returns(Integer) }
+ def end_column; end
+
+ # The line number where this location ends.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:181
+ sig { returns(Integer) }
+ def end_line; end
+
+ # The byte offset from the beginning of the source where this location ends.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:154
+ sig { returns(Integer) }
+ def end_offset; end
+
+ # Returns a string representation of this location.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:133
+ 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-0.24.0/lib/prism/parse_result.rb:241
+ def join(other); end
+
+ # The length of this location in bytes.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:109
+ def length; end
+
+ # Implement the pretty print interface for Location.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:227
+ def pretty_print(q); end
+
+ # The source code that this location represents.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:138
+ sig { returns(String) }
+ def slice; end
+
+ # The column number in characters where this location ends from the start of
+ # the line.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:193
+ def start_character_column; end
+
+ # The character offset from the beginning of the source where this location
+ # starts.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:144
+ 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-0.24.0/lib/prism/parse_result.rb:199
+ 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-0.24.0/lib/prism/parse_result.rb:149
+ 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-0.24.0/lib/prism/parse_result.rb:187
+ sig { returns(Integer) }
+ def start_column; end
+
+ # The line number where this location starts.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:170
+ sig { returns(Integer) }
+ def start_line; end
+
+ # The content of the line where this location starts before this location.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:175
+ def start_line_slice; end
+
+ # The byte offset from the beginning of the source where this location
+ # starts.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:106
+ sig { returns(Integer) }
+ def start_offset; end
+
+ protected
+
+ # A Source object that is used to determine more information from the given
+ # offset and length.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:101
+ 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-0.24.0/lib/prism/parse_result.rb:251
+ def null; end
+ end
+end
+
+# Flags for while and until loop nodes.
+#
+# source://prism-0.24.0/lib/prism/node.rb:19298
+module Prism::LoopFlags; end
+
+# a loop after a begin statement, so the body is executed first before the condition
+#
+# source://prism-0.24.0/lib/prism/node.rb:19300
+Prism::LoopFlags::BEGIN_MODIFIER = T.let(T.unsafe(nil), Integer)
+
+# This represents a magic comment that was encountered during parsing.
+#
+# source://prism-0.24.0/lib/prism/parse_result.rb:303
+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-0.24.0/lib/prism/parse_result.rb:311
+ def initialize(key_loc, value_loc); end
+
+ # Implement the hash pattern matching interface for MagicComment.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:327
+ def deconstruct_keys(keys); end
+
+ # Returns a string representation of this magic comment.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:332
+ def inspect; end
+
+ # Returns the key of the magic comment by slicing it from the source code.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:317
+ def key; end
+
+ # A Location object representing the location of the key in the source.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:305
+ def key_loc; end
+
+ # Returns the value of the magic comment by slicing it from the source code.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:322
+ def value; end
+
+ # A Location object representing the location of the value in the source.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:308
+ def value_loc; end
+end
+
+# Represents a regular expression literal used in the predicate of a conditional to implicitly match against the last line read by an IO object.
+#
+# if /foo/i then end
+# ^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:12744
+class Prism::MatchLastLineNode < ::Prism::Node
+ include ::Prism::RegularExpressionOptions
+
+ # def initialize: (Integer flags, Location opening_loc, Location content_loc, Location closing_loc, String unescaped, Location location) -> void
+ #
+ # @return [MatchLastLineNode] a new instance of MatchLastLineNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12746
+ def initialize(source, flags, opening_loc, content_loc, closing_loc, unescaped, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12758
+ def accept(visitor); end
+
+ # def ascii_8bit?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12850
+ sig { returns(T::Boolean) }
+ def ascii_8bit?; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12763
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12890
+ sig { returns(String) }
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12815
+ sig { returns(Prism::Location) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12773
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12768
+ def compact_child_nodes; end
+
+ # def content: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12885
+ sig { returns(String) }
+ def content; end
+
+ # attr_reader content_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12809
+ sig { returns(Prism::Location) }
+ def content_loc; end
+
+ # def copy: (**params) -> MatchLastLineNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12778
+ sig { params(params: T.untyped).returns(Prism::MatchLastLineNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12763
+ sig { 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-0.24.0/lib/prism/node.rb:12794
+ def deconstruct_keys(keys); end
+
+ # def euc_jp?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12845
+ sig { returns(T::Boolean) }
+ def euc_jp?; end
+
+ # def extended?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12830
+ sig { returns(T::Boolean) }
+ def extended?; end
+
+ # def forced_binary_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12870
+ sig { returns(T::Boolean) }
+ def forced_binary_encoding?; end
+
+ # def forced_us_ascii_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12875
+ sig { returns(T::Boolean) }
+ def forced_us_ascii_encoding?; end
+
+ # def forced_utf8_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12865
+ sig { returns(T::Boolean) }
+ def forced_utf8_encoding?; end
+
+ # def ignore_case?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12825
+ sig { returns(T::Boolean) }
+ def ignore_case?; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12895
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def multi_line?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12835
+ sig { returns(T::Boolean) }
+ def multi_line?; end
+
+ # def once?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12840
+ sig { returns(T::Boolean) }
+ def once?; end
+
+ # def opening: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12880
+ sig { returns(String) }
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12803
+ sig { returns(Prism::Location) }
+ def opening_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
+ # 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-0.24.0/lib/prism/node.rb:12920
+ def type; end
+
+ # attr_reader unescaped: String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12821
+ sig { returns(String) }
+ def unescaped; end
+
+ # def utf_8?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12860
+ sig { returns(T::Boolean) }
+ def utf_8?; end
+
+ # def windows_31j?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12855
+ sig { returns(T::Boolean) }
+ def windows_31j?; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12799
+ 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-0.24.0/lib/prism/node.rb:12930
+ def type; end
+ end
+end
+
+# Represents the use of the modifier `in` operator.
+#
+# foo in bar
+# ^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:12939
+class Prism::MatchPredicateNode < ::Prism::Node
+ # def initialize: (Node value, Node pattern, Location operator_loc, Location location) -> void
+ #
+ # @return [MatchPredicateNode] a new instance of MatchPredicateNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12941
+ def initialize(source, value, pattern, operator_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12951
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12956
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12966
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12961
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> MatchPredicateNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12971
+ sig { params(params: T.untyped).returns(Prism::MatchPredicateNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12956
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12985
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13008
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13003
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12996
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # attr_reader pattern: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12993
+ sig { returns(Prism::Node) }
+ def pattern; 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-0.24.0/lib/prism/node.rb:13032
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:12990
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:13042
+ def type; end
+ end
+end
+
+# Represents the use of the `=>` operator.
+#
+# foo => bar
+# ^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:13051
+class Prism::MatchRequiredNode < ::Prism::Node
+ # def initialize: (Node value, Node pattern, Location operator_loc, Location location) -> void
+ #
+ # @return [MatchRequiredNode] a new instance of MatchRequiredNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13053
+ def initialize(source, value, pattern, operator_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13063
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13068
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13078
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13073
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> MatchRequiredNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13083
+ sig { params(params: T.untyped).returns(Prism::MatchRequiredNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13068
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13097
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13120
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13115
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13108
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # attr_reader pattern: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13105
+ sig { returns(Prism::Node) }
+ def pattern; 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-0.24.0/lib/prism/node.rb:13144
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13102
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:13154
+ def type; end
+ end
+end
+
+# Represents writing local variables using a regular expression match with named capture groups.
+#
+# /(?bar)/ =~ baz
+# ^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:13163
+class Prism::MatchWriteNode < ::Prism::Node
+ # def initialize: (CallNode call, Array[Node] targets, Location location) -> void
+ #
+ # @return [MatchWriteNode] a new instance of MatchWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13165
+ def initialize(source, call, targets, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13174
+ def accept(visitor); end
+
+ # attr_reader call: CallNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13212
+ sig { returns(Prism::CallNode) }
+ def call; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13179
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13189
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13184
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> MatchWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13194
+ sig { params(params: T.untyped).returns(Prism::MatchWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13179
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { call: CallNode, targets: Array[Node], location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13207
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13219
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader targets: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13215
+ sig { returns(T::Array[Prism::Node]) }
+ def targets; 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-0.24.0/lib/prism/node.rb:13241
+ def type; 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-0.24.0/lib/prism/node.rb:13251
+ def type; end
+ end
+end
+
+# Represents a node that is missing from the source and results in a syntax error.
+#
+# source://prism-0.24.0/lib/prism/node.rb:13257
+class Prism::MissingNode < ::Prism::Node
+ # def initialize: (Location location) -> void
+ #
+ # @return [MissingNode] a new instance of MissingNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13259
+ def initialize(source, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13266
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13271
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13281
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13276
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> MissingNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13286
+ sig { params(params: T.untyped).returns(Prism::MissingNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13271
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13297
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13303
+ def inspect(inspector = T.unsafe(nil)); 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-0.24.0/lib/prism/node.rb:13322
+ def type; 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-0.24.0/lib/prism/node.rb:13332
+ def type; end
+ end
+end
+
+# Represents a module declaration involving the `module` keyword.
+#
+# module Foo end
+# ^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:13341
+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
+ #
+ # @return [ModuleNode] a new instance of ModuleNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13343
+ def initialize(source, locals, module_keyword_loc, constant_path, body, end_keyword_loc, name, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13356
+ def accept(visitor); end
+
+ # attr_reader body: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13413
+ sig { returns(T.nilable(Prism::Node)) }
+ def body; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13361
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13374
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13366
+ def compact_child_nodes; end
+
+ # attr_reader constant_path: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13410
+ sig { returns(Prism::Node) }
+ def constant_path; end
+
+ # def copy: (**params) -> ModuleNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13379
+ sig { params(params: T.untyped).returns(Prism::ModuleNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13361
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13396
+ def deconstruct_keys(keys); end
+
+ # def end_keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13431
+ sig { returns(String) }
+ def end_keyword; end
+
+ # attr_reader end_keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13416
+ sig { returns(Prism::Location) }
+ def end_keyword_loc; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13436
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader locals: Array[Symbol]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13401
+ sig { returns(T::Array[Symbol]) }
+ def locals; end
+
+ # def module_keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13426
+ sig { returns(String) }
+ def module_keyword; end
+
+ # attr_reader module_keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13404
+ sig { returns(Prism::Location) }
+ def module_keyword_loc; end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13422
+ sig { returns(Symbol) }
+ def name; 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-0.24.0/lib/prism/node.rb:13467
+ def type; 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-0.24.0/lib/prism/node.rb:13477
+ def type; end
+ end
+end
+
+# Represents a multi-target expression.
+#
+# a, (b, c) = 1, 2, 3
+# ^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:13486
+class Prism::MultiTargetNode < ::Prism::Node
+ # def initialize: (Array[Node] lefts, Node? rest, Array[Node] rights, Location? lparen_loc, Location? rparen_loc, Location location) -> void
+ #
+ # @return [MultiTargetNode] a new instance of MultiTargetNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13488
+ def initialize(source, lefts, rest, rights, lparen_loc, rparen_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13500
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13505
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13519
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13510
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> MultiTargetNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13524
+ sig { params(params: T.untyped).returns(Prism::MultiTargetNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13505
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13540
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13589
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader lefts: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13545
+ sig { returns(T::Array[Prism::Node]) }
+ def lefts; end
+
+ # def lparen: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13579
+ sig { returns(T.nilable(String)) }
+ def lparen; end
+
+ # attr_reader lparen_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13554
+ sig { returns(T.nilable(Prism::Location)) }
+ def lparen_loc; end
+
+ # attr_reader rest: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13548
+ sig { returns(T.nilable(Prism::Node)) }
+ def rest; end
+
+ # attr_reader rights: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13551
+ sig { returns(T::Array[Prism::Node]) }
+ def rights; end
+
+ # def rparen: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13584
+ sig { returns(T.nilable(String)) }
+ def rparen; end
+
+ # attr_reader rparen_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13566
+ sig { returns(T.nilable(Prism::Location)) }
+ def rparen_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
+ # 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-0.24.0/lib/prism/node.rb:13618
+ def type; 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-0.24.0/lib/prism/node.rb:13628
+ def type; end
+ end
+end
+
+# Represents a write to a multi-target expression.
+#
+# a, b, c = 1, 2, 3
+# ^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:13637
+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
+ #
+ # @return [MultiWriteNode] a new instance of MultiWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13639
+ def initialize(source, lefts, rest, rights, lparen_loc, rparen_loc, operator_loc, value, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13653
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13658
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13673
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13663
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> MultiWriteNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13678
+ sig { params(params: T.untyped).returns(Prism::MultiWriteNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13658
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13696
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13759
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader lefts: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13701
+ sig { returns(T::Array[Prism::Node]) }
+ def lefts; end
+
+ # def lparen: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13744
+ sig { returns(T.nilable(String)) }
+ def lparen; end
+
+ # attr_reader lparen_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13710
+ sig { returns(T.nilable(Prism::Location)) }
+ def lparen_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13754
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13734
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # attr_reader rest: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13704
+ sig { returns(T.nilable(Prism::Node)) }
+ def rest; end
+
+ # attr_reader rights: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13707
+ sig { returns(T::Array[Prism::Node]) }
+ def rights; end
+
+ # def rparen: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13749
+ sig { returns(T.nilable(String)) }
+ def rparen; end
+
+ # attr_reader rparen_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13722
+ sig { returns(T.nilable(Prism::Location)) }
+ def rparen_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
+ # 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-0.24.0/lib/prism/node.rb:13791
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13740
+ sig { returns(Prism::Node) }
+ def value; 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-0.24.0/lib/prism/node.rb:13801
+ def type; end
+ end
+end
+
+# This visitor walks through the tree and copies each node as it is being
+# visited. This is useful for consumers that want to mutate the tree, as you
+# can change subtrees in place without effecting the rest of the tree.
+#
+# source://prism-0.24.0/lib/prism/mutation_compiler.rb:12
+class Prism::MutationCompiler < ::Prism::Compiler
+ # Copy a AliasGlobalVariableNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:14
+ def visit_alias_global_variable_node(node); end
+
+ # Copy a AliasMethodNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:19
+ def visit_alias_method_node(node); end
+
+ # Copy a AlternationPatternNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:24
+ def visit_alternation_pattern_node(node); end
+
+ # Copy a AndNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:29
+ def visit_and_node(node); end
+
+ # Copy a ArgumentsNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:34
+ def visit_arguments_node(node); end
+
+ # Copy a ArrayNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:39
+ def visit_array_node(node); end
+
+ # Copy a ArrayPatternNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:44
+ def visit_array_pattern_node(node); end
+
+ # Copy a AssocNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:49
+ def visit_assoc_node(node); end
+
+ # Copy a AssocSplatNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:54
+ def visit_assoc_splat_node(node); end
+
+ # Copy a BackReferenceReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:59
+ def visit_back_reference_read_node(node); end
+
+ # Copy a BeginNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:64
+ def visit_begin_node(node); end
+
+ # Copy a BlockArgumentNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:69
+ def visit_block_argument_node(node); end
+
+ # Copy a BlockLocalVariableNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:74
+ def visit_block_local_variable_node(node); end
+
+ # Copy a BlockNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:79
+ def visit_block_node(node); end
+
+ # Copy a BlockParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:84
+ def visit_block_parameter_node(node); end
+
+ # Copy a BlockParametersNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:89
+ def visit_block_parameters_node(node); end
+
+ # Copy a BreakNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:94
+ def visit_break_node(node); end
+
+ # Copy a CallAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:99
+ def visit_call_and_write_node(node); end
+
+ # Copy a CallNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:104
+ def visit_call_node(node); end
+
+ # Copy a CallOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:109
+ def visit_call_operator_write_node(node); end
+
+ # Copy a CallOrWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:114
+ def visit_call_or_write_node(node); end
+
+ # Copy a CallTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:119
+ def visit_call_target_node(node); end
+
+ # Copy a CapturePatternNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:124
+ def visit_capture_pattern_node(node); end
+
+ # Copy a CaseMatchNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:129
+ def visit_case_match_node(node); end
+
+ # Copy a CaseNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:134
+ def visit_case_node(node); end
+
+ # Copy a ClassNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:139
+ def visit_class_node(node); end
+
+ # Copy a ClassVariableAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:144
+ def visit_class_variable_and_write_node(node); end
+
+ # Copy a ClassVariableOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:149
+ def visit_class_variable_operator_write_node(node); end
+
+ # Copy a ClassVariableOrWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:154
+ def visit_class_variable_or_write_node(node); end
+
+ # Copy a ClassVariableReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:159
+ def visit_class_variable_read_node(node); end
+
+ # Copy a ClassVariableTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:164
+ def visit_class_variable_target_node(node); end
+
+ # Copy a ClassVariableWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:169
+ def visit_class_variable_write_node(node); end
+
+ # Copy a ConstantAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:174
+ def visit_constant_and_write_node(node); end
+
+ # Copy a ConstantOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:179
+ def visit_constant_operator_write_node(node); end
+
+ # Copy a ConstantOrWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:184
+ def visit_constant_or_write_node(node); end
+
+ # Copy a ConstantPathAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:189
+ def visit_constant_path_and_write_node(node); end
+
+ # Copy a ConstantPathNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:194
+ def visit_constant_path_node(node); end
+
+ # Copy a ConstantPathOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:199
+ def visit_constant_path_operator_write_node(node); end
+
+ # Copy a ConstantPathOrWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:204
+ def visit_constant_path_or_write_node(node); end
+
+ # Copy a ConstantPathTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:209
+ def visit_constant_path_target_node(node); end
+
+ # Copy a ConstantPathWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:214
+ def visit_constant_path_write_node(node); end
+
+ # Copy a ConstantReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:219
+ def visit_constant_read_node(node); end
+
+ # Copy a ConstantTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:224
+ def visit_constant_target_node(node); end
+
+ # Copy a ConstantWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:229
+ def visit_constant_write_node(node); end
+
+ # Copy a DefNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:234
+ def visit_def_node(node); end
+
+ # Copy a DefinedNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:239
+ def visit_defined_node(node); end
+
+ # Copy a ElseNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:244
+ def visit_else_node(node); end
+
+ # Copy a EmbeddedStatementsNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:249
+ def visit_embedded_statements_node(node); end
+
+ # Copy a EmbeddedVariableNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:254
+ def visit_embedded_variable_node(node); end
+
+ # Copy a EnsureNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:259
+ def visit_ensure_node(node); end
+
+ # Copy a FalseNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:264
+ def visit_false_node(node); end
+
+ # Copy a FindPatternNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:269
+ def visit_find_pattern_node(node); end
+
+ # Copy a FlipFlopNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:274
+ def visit_flip_flop_node(node); end
+
+ # Copy a FloatNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:279
+ def visit_float_node(node); end
+
+ # Copy a ForNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:284
+ def visit_for_node(node); end
+
+ # Copy a ForwardingArgumentsNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:289
+ def visit_forwarding_arguments_node(node); end
+
+ # Copy a ForwardingParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:294
+ def visit_forwarding_parameter_node(node); end
+
+ # Copy a ForwardingSuperNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:299
+ def visit_forwarding_super_node(node); end
+
+ # Copy a GlobalVariableAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:304
+ def visit_global_variable_and_write_node(node); end
+
+ # Copy a GlobalVariableOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:309
+ def visit_global_variable_operator_write_node(node); end
+
+ # Copy a GlobalVariableOrWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:314
+ def visit_global_variable_or_write_node(node); end
+
+ # Copy a GlobalVariableReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:319
+ def visit_global_variable_read_node(node); end
+
+ # Copy a GlobalVariableTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:324
+ def visit_global_variable_target_node(node); end
+
+ # Copy a GlobalVariableWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:329
+ def visit_global_variable_write_node(node); end
+
+ # Copy a HashNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:334
+ def visit_hash_node(node); end
+
+ # Copy a HashPatternNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:339
+ def visit_hash_pattern_node(node); end
+
+ # Copy a IfNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:344
+ def visit_if_node(node); end
+
+ # Copy a ImaginaryNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:349
+ def visit_imaginary_node(node); end
+
+ # Copy a ImplicitNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:354
+ def visit_implicit_node(node); end
+
+ # Copy a ImplicitRestNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:359
+ def visit_implicit_rest_node(node); end
+
+ # Copy a InNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:364
+ def visit_in_node(node); end
+
+ # Copy a IndexAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:369
+ def visit_index_and_write_node(node); end
+
+ # Copy a IndexOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:374
+ def visit_index_operator_write_node(node); end
+
+ # Copy a IndexOrWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:379
+ def visit_index_or_write_node(node); end
+
+ # Copy a IndexTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:384
+ def visit_index_target_node(node); end
+
+ # Copy a InstanceVariableAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:389
+ def visit_instance_variable_and_write_node(node); end
+
+ # Copy a InstanceVariableOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:394
+ def visit_instance_variable_operator_write_node(node); end
+
+ # Copy a InstanceVariableOrWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:399
+ def visit_instance_variable_or_write_node(node); end
+
+ # Copy a InstanceVariableReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:404
+ def visit_instance_variable_read_node(node); end
+
+ # Copy a InstanceVariableTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:409
+ def visit_instance_variable_target_node(node); end
+
+ # Copy a InstanceVariableWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:414
+ def visit_instance_variable_write_node(node); end
+
+ # Copy a IntegerNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:419
+ def visit_integer_node(node); end
+
+ # Copy a InterpolatedMatchLastLineNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:424
+ def visit_interpolated_match_last_line_node(node); end
+
+ # Copy a InterpolatedRegularExpressionNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:429
+ def visit_interpolated_regular_expression_node(node); end
+
+ # Copy a InterpolatedStringNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:434
+ def visit_interpolated_string_node(node); end
+
+ # Copy a InterpolatedSymbolNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:439
+ def visit_interpolated_symbol_node(node); end
+
+ # Copy a InterpolatedXStringNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:444
+ def visit_interpolated_x_string_node(node); end
+
+ # Copy a KeywordHashNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:449
+ def visit_keyword_hash_node(node); end
+
+ # Copy a KeywordRestParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:454
+ def visit_keyword_rest_parameter_node(node); end
+
+ # Copy a LambdaNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:459
+ def visit_lambda_node(node); end
+
+ # Copy a LocalVariableAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:464
+ def visit_local_variable_and_write_node(node); end
+
+ # Copy a LocalVariableOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:469
+ def visit_local_variable_operator_write_node(node); end
+
+ # Copy a LocalVariableOrWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:474
+ def visit_local_variable_or_write_node(node); end
+
+ # Copy a LocalVariableReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:479
+ def visit_local_variable_read_node(node); end
+
+ # Copy a LocalVariableTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:484
+ def visit_local_variable_target_node(node); end
+
+ # Copy a LocalVariableWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:489
+ def visit_local_variable_write_node(node); end
+
+ # Copy a MatchLastLineNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:494
+ def visit_match_last_line_node(node); end
+
+ # Copy a MatchPredicateNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:499
+ def visit_match_predicate_node(node); end
+
+ # Copy a MatchRequiredNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:504
+ def visit_match_required_node(node); end
+
+ # Copy a MatchWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:509
+ def visit_match_write_node(node); end
+
+ # Copy a MissingNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:514
+ def visit_missing_node(node); end
+
+ # Copy a ModuleNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:519
+ def visit_module_node(node); end
+
+ # Copy a MultiTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:524
+ def visit_multi_target_node(node); end
+
+ # Copy a MultiWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:529
+ def visit_multi_write_node(node); end
+
+ # Copy a NextNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:534
+ def visit_next_node(node); end
+
+ # Copy a NilNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:539
+ def visit_nil_node(node); end
+
+ # Copy a NoKeywordsParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:544
+ def visit_no_keywords_parameter_node(node); end
+
+ # Copy a NumberedParametersNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:549
+ def visit_numbered_parameters_node(node); end
+
+ # Copy a NumberedReferenceReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:554
+ def visit_numbered_reference_read_node(node); end
+
+ # Copy a OptionalKeywordParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:559
+ def visit_optional_keyword_parameter_node(node); end
+
+ # Copy a OptionalParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:564
+ def visit_optional_parameter_node(node); end
+
+ # Copy a OrNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:569
+ def visit_or_node(node); end
+
+ # Copy a ParametersNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:574
+ def visit_parameters_node(node); end
+
+ # Copy a ParenthesesNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:579
+ def visit_parentheses_node(node); end
+
+ # Copy a PinnedExpressionNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:584
+ def visit_pinned_expression_node(node); end
+
+ # Copy a PinnedVariableNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:589
+ def visit_pinned_variable_node(node); end
+
+ # Copy a PostExecutionNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:594
+ def visit_post_execution_node(node); end
+
+ # Copy a PreExecutionNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:599
+ def visit_pre_execution_node(node); end
+
+ # Copy a ProgramNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:604
+ def visit_program_node(node); end
+
+ # Copy a RangeNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:609
+ def visit_range_node(node); end
+
+ # Copy a RationalNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:614
+ def visit_rational_node(node); end
+
+ # Copy a RedoNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:619
+ def visit_redo_node(node); end
+
+ # Copy a RegularExpressionNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:624
+ def visit_regular_expression_node(node); end
+
+ # Copy a RequiredKeywordParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:629
+ def visit_required_keyword_parameter_node(node); end
+
+ # Copy a RequiredParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:634
+ def visit_required_parameter_node(node); end
+
+ # Copy a RescueModifierNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:639
+ def visit_rescue_modifier_node(node); end
+
+ # Copy a RescueNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:644
+ def visit_rescue_node(node); end
+
+ # Copy a RestParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:649
+ def visit_rest_parameter_node(node); end
+
+ # Copy a RetryNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:654
+ def visit_retry_node(node); end
+
+ # Copy a ReturnNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:659
+ def visit_return_node(node); end
+
+ # Copy a SelfNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:664
+ def visit_self_node(node); end
+
+ # Copy a SingletonClassNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:669
+ def visit_singleton_class_node(node); end
+
+ # Copy a SourceEncodingNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:674
+ def visit_source_encoding_node(node); end
+
+ # Copy a SourceFileNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:679
+ def visit_source_file_node(node); end
+
+ # Copy a SourceLineNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:684
+ def visit_source_line_node(node); end
+
+ # Copy a SplatNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:689
+ def visit_splat_node(node); end
+
+ # Copy a StatementsNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:694
+ def visit_statements_node(node); end
+
+ # Copy a StringNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:699
+ def visit_string_node(node); end
+
+ # Copy a SuperNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:704
+ def visit_super_node(node); end
+
+ # Copy a SymbolNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:709
+ def visit_symbol_node(node); end
+
+ # Copy a TrueNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:714
+ def visit_true_node(node); end
+
+ # Copy a UndefNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:719
+ def visit_undef_node(node); end
+
+ # Copy a UnlessNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:724
+ def visit_unless_node(node); end
+
+ # Copy a UntilNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:729
+ def visit_until_node(node); end
+
+ # Copy a WhenNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:734
+ def visit_when_node(node); end
+
+ # Copy a WhileNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:739
+ def visit_while_node(node); end
+
+ # Copy a XStringNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:744
+ def visit_x_string_node(node); end
+
+ # Copy a YieldNode node
+ #
+ # source://prism-0.24.0/lib/prism/mutation_compiler.rb:749
+ def visit_yield_node(node); end
+end
+
+# Represents the use of the `next` keyword.
+#
+# next 1
+# ^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:13810
+class Prism::NextNode < ::Prism::Node
+ # def initialize: (ArgumentsNode? arguments, Location keyword_loc, Location location) -> void
+ #
+ # @return [NextNode] a new instance of NextNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13812
+ def initialize(source, arguments, keyword_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13821
+ def accept(visitor); end
+
+ # attr_reader arguments: ArgumentsNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13861
+ sig { returns(T.nilable(Prism::ArgumentsNode)) }
+ def arguments; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13826
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13838
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13831
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> NextNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13843
+ sig { params(params: T.untyped).returns(Prism::NextNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13826
+ sig { 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-0.24.0/lib/prism/node.rb:13856
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13876
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13871
+ sig { returns(String) }
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13864
+ sig { returns(Prism::Location) }
+ def 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
+ # 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-0.24.0/lib/prism/node.rb:13902
+ def type; 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-0.24.0/lib/prism/node.rb:13912
+ def type; end
+ end
+end
+
+# Represents the use of the `nil` keyword.
+#
+# nil
+# ^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:13921
+class Prism::NilNode < ::Prism::Node
+ # def initialize: (Location location) -> void
+ #
+ # @return [NilNode] a new instance of NilNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13923
+ def initialize(source, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13930
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13935
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13945
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13940
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> NilNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13950
+ sig { params(params: T.untyped).returns(Prism::NilNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13935
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13961
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13967
+ def inspect(inspector = T.unsafe(nil)); 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-0.24.0/lib/prism/node.rb:13986
+ def type; 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-0.24.0/lib/prism/node.rb:13996
+ def type; end
+ end
+end
+
+# Represents the use of `**nil` inside method arguments.
+#
+# def a(**nil)
+# ^^^^^
+# end
+#
+# source://prism-0.24.0/lib/prism/node.rb:14006
+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-0.24.0/lib/prism/node.rb:14008
+ def initialize(source, operator_loc, keyword_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14017
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14022
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14032
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14027
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> NoKeywordsParameterNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14037
+ sig { params(params: T.untyped).returns(Prism::NoKeywordsParameterNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14022
+ sig { 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-0.24.0/lib/prism/node.rb:14050
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14078
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14073
+ sig { returns(String) }
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14061
+ sig { returns(Prism::Location) }
+ def keyword_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14068
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14055
+ sig { returns(Prism::Location) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:14099
+ def type; 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-0.24.0/lib/prism/node.rb:14109
+ def type; end
+ end
+end
+
+# This represents a node in the tree. It is the parent class of all of the
+# various node types.
+#
+# source://prism-0.24.0/lib/prism/node.rb:11
+class Prism::Node
+ # Accepts a visitor and calls back into the specialized visit function.
+ #
+ # @raise [NoMethodError]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:62
+ def accept(visitor); end
+
+ # Returns an array of child nodes, including `nil`s in the place of optional
+ # nodes that were not present.
+ #
+ # @raise [NoMethodError]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:68
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # Returns an array of child nodes and locations that could potentially have
+ # comments attached to them.
+ #
+ # @raise [NoMethodError]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:82
+ def comment_targets; end
+
+ # Returns an array of child nodes, excluding any `nil`s in the place of
+ # optional nodes that were not present.
+ #
+ # @raise [NoMethodError]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:76
+ sig { returns(T::Array[Prism::Node]) }
+ def compact_child_nodes; end
+
+ # Returns an array of child nodes, including `nil`s in the place of optional
+ # nodes that were not present.
+ #
+ # @raise [NoMethodError]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:68
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # A Location instance that represents the location of this node in the
+ # source.
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18
+ sig { returns(Prism::Location) }
+ def location; end
+
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:23
+ def newline?; end
+
+ # Similar to inspect, but respects the current level of indentation given by
+ # the pretty print object.
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:42
+ def pretty_print(q); end
+
+ # source://prism-0.24.0/lib/prism/node.rb:27
+ def set_newline_flag(newline_marked); end
+
+ # Slice the location of the node from the source.
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:36
+ sig { returns(String) }
+ def slice; end
+
+ # Convert this node into a graphviz dot graph string.
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:50
+ sig { returns(String) }
+ def to_dot; end
+
+ # Returns a symbol symbolizing the type of node that this represents. This
+ # is particularly useful for case statements and array comparisons.
+ #
+ # @raise [NoMethodError]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:88
+ sig { returns(Symbol) }
+ def type; end
+
+ private
+
+ # A pointer to the source that this node was created from.
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:13
+ def source; end
+end
+
+# This object is responsible for generating the output for the inspect method
+# implementations of child nodes.
+#
+# source://prism-0.24.0/lib/prism/node_inspector.rb:6
+class Prism::NodeInspector
+ # @return [NodeInspector] a new instance of NodeInspector
+ #
+ # source://prism-0.24.0/lib/prism/node_inspector.rb:9
+ def initialize(prefix = T.unsafe(nil)); end
+
+ # Appends a line to the output with the current prefix.
+ #
+ # source://prism-0.24.0/lib/prism/node_inspector.rb:15
+ def <<(line); end
+
+ # Returns a new inspector that can be used to inspect a child node.
+ #
+ # source://prism-0.24.0/lib/prism/node_inspector.rb:59
+ def child_inspector(append); end
+
+ # Generates a string that represents a child node.
+ #
+ # source://prism-0.24.0/lib/prism/node_inspector.rb:54
+ 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-0.24.0/lib/prism/node_inspector.rb:21
+ 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-0.24.0/lib/prism/node_inspector.rb:31
+ def list(prefix, nodes); end
+
+ # Generates a string that represents a location field on a node.
+ #
+ # source://prism-0.24.0/lib/prism/node_inspector.rb:45
+ def location(value); end
+
+ # source://prism-0.24.0/lib/prism/node_inspector.rb:7
+ sig { returns(String) }
+ def output; end
+
+ # source://prism-0.24.0/lib/prism/node_inspector.rb:7
+ sig { returns(String) }
+ def prefix; end
+
+ # Returns the output as a string.
+ #
+ # source://prism-0.24.0/lib/prism/node_inspector.rb:64
+ sig { returns(String) }
+ def to_str; end
+end
+
+# Represents an implicit set of parameters through the use of numbered parameters within a block or lambda.
+#
+# -> { _1 + _2 }
+# ^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:14118
+class Prism::NumberedParametersNode < ::Prism::Node
+ # def initialize: (Integer maximum, Location location) -> void
+ #
+ # @return [NumberedParametersNode] a new instance of NumberedParametersNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14120
+ def initialize(source, maximum, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14128
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14133
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14143
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14138
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> NumberedParametersNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14148
+ sig { params(params: T.untyped).returns(Prism::NumberedParametersNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14133
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { maximum: Integer, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14160
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14169
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader maximum: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14165
+ sig { returns(Integer) }
+ def maximum; 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-0.24.0/lib/prism/node.rb:14189
+ def type; 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-0.24.0/lib/prism/node.rb:14199
+ def type; end
+ end
+end
+
+# Represents reading a numbered reference to a capture in the previous match.
+#
+# $1
+# ^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:14208
+class Prism::NumberedReferenceReadNode < ::Prism::Node
+ # def initialize: (Integer number, Location location) -> void
+ #
+ # @return [NumberedReferenceReadNode] a new instance of NumberedReferenceReadNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14210
+ def initialize(source, number, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14218
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14223
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14233
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14228
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> NumberedReferenceReadNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14238
+ sig { params(params: T.untyped).returns(Prism::NumberedReferenceReadNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14223
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { number: Integer, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14250
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14265
+ 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`.
+ #
+ # $1 # number `1`
+ #
+ # $5432 # number `5432`
+ #
+ # $4294967296 # number `4294967295`
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14261
+ sig { returns(Integer) }
+ def number; 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-0.24.0/lib/prism/node.rb:14285
+ def type; 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-0.24.0/lib/prism/node.rb:14295
+ def type; end
+ end
+end
+
+# Represents an optional keyword parameter to a method, block, or lambda definition.
+#
+# def a(b: 1)
+# ^^^^
+# end
+#
+# source://prism-0.24.0/lib/prism/node.rb:14305
+class Prism::OptionalKeywordParameterNode < ::Prism::Node
+ # def initialize: (Integer flags, Symbol name, Location name_loc, Node value, Location location) -> void
+ #
+ # @return [OptionalKeywordParameterNode] a new instance of OptionalKeywordParameterNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14307
+ def initialize(source, flags, name, name_loc, value, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14318
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14323
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14333
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14328
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> OptionalKeywordParameterNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14338
+ sig { params(params: T.untyped).returns(Prism::OptionalKeywordParameterNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14323
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14353
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14380
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14362
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14365
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # def repeated_parameter?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14375
+ sig { returns(T::Boolean) }
+ def repeated_parameter?; 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-0.24.0/lib/prism/node.rb:14405
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14371
+ sig { returns(Prism::Node) }
+ def value; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14358
+ 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-0.24.0/lib/prism/node.rb:14415
+ def type; end
+ end
+end
+
+# Represents an optional parameter to a method, block, or lambda definition.
+#
+# def a(b = 1)
+# ^^^^^
+# end
+#
+# source://prism-0.24.0/lib/prism/node.rb:14425
+class Prism::OptionalParameterNode < ::Prism::Node
+ # def initialize: (Integer flags, Symbol name, Location name_loc, Location operator_loc, Node value, Location location) -> void
+ #
+ # @return [OptionalParameterNode] a new instance of OptionalParameterNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14427
+ def initialize(source, flags, name, name_loc, operator_loc, value, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14439
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14444
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14454
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14449
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> OptionalParameterNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14459
+ sig { params(params: T.untyped).returns(Prism::OptionalParameterNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14444
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14475
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14513
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14484
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14487
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14508
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14493
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # def repeated_parameter?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14503
+ sig { returns(T::Boolean) }
+ def repeated_parameter?; 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-0.24.0/lib/prism/node.rb:14539
+ def type; end
+
+ # attr_reader value: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14499
+ sig { returns(Prism::Node) }
+ def value; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14480
+ 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-0.24.0/lib/prism/node.rb:14549
+ def type; end
+ end
+end
+
+# Represents the use of the `||` operator or the `or` keyword.
+#
+# left or right
+# ^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:14558
+class Prism::OrNode < ::Prism::Node
+ # def initialize: (Node left, Node right, Location operator_loc, Location location) -> void
+ #
+ # @return [OrNode] a new instance of OrNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14560
+ def initialize(source, left, right, operator_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14570
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14575
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14585
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14580
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> OrNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14590
+ sig { params(params: T.untyped).returns(Prism::OrNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14575
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14604
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14642
+ 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).
+ #
+ # left or right
+ # ^^^^
+ #
+ # 1 || 2
+ # ^
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14615
+ sig { returns(Prism::Node) }
+ def left; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14637
+ sig { returns(String) }
+ def operator; end
+
+ # The location of the `or` keyword or the `||` operator.
+ #
+ # left or right
+ # ^^
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14630
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # Represents the right side of the expression. It can be any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
+ #
+ # left || right
+ # ^^^^^
+ #
+ # 1 or 2
+ # ^
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14624
+ sig { returns(Prism::Node) }
+ def right; 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-0.24.0/lib/prism/node.rb:14666
+ def type; 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-0.24.0/lib/prism/node.rb:14676
+ def type; end
+ end
+end
+
+# A parser for the pack template language.
+#
+# source://prism-0.24.0/lib/prism/pack.rb:5
+module Prism::Pack
+ class << self
+ def parse(_arg0, _arg1, _arg2); end
+ end
+end
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::AGNOSTIC_ENDIAN = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::BACK = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::BER = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::BIG_ENDIAN = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::COMMENT = T.let(T.unsafe(nil), Symbol)
+
+# A directive in the pack template language.
+#
+# source://prism-0.24.0/lib/prism/pack.rb:59
+class Prism::Pack::Directive
+ # Initialize a new directive with the given values.
+ #
+ # @return [Directive] a new instance of Directive
+ #
+ # source://prism-0.24.0/lib/prism/pack.rb:88
+ def initialize(version, variant, source, type, signed, endian, size, length_type, length); end
+
+ # Provide a human-readable description of the directive.
+ #
+ # source://prism-0.24.0/lib/prism/pack.rb:130
+ def describe; end
+
+ # The type of endianness of the directive.
+ #
+ # source://prism-0.24.0/lib/prism/pack.rb:76
+ def endian; end
+
+ # The length of this directive (used for integers).
+ #
+ # source://prism-0.24.0/lib/prism/pack.rb:85
+ def length; end
+
+ # The length type of this directive (used for integers).
+ #
+ # source://prism-0.24.0/lib/prism/pack.rb:82
+ def length_type; end
+
+ # The type of signedness of the directive.
+ #
+ # source://prism-0.24.0/lib/prism/pack.rb:73
+ def signed; end
+
+ # The size of the directive.
+ #
+ # source://prism-0.24.0/lib/prism/pack.rb:79
+ def size; end
+
+ # A byteslice of the source string that this directive represents.
+ #
+ # source://prism-0.24.0/lib/prism/pack.rb:67
+ def source; end
+
+ # The type of the directive.
+ #
+ # source://prism-0.24.0/lib/prism/pack.rb:70
+ def type; end
+
+ # A symbol representing whether or not we are packing or unpacking.
+ #
+ # source://prism-0.24.0/lib/prism/pack.rb:64
+ def variant; end
+
+ # A symbol representing the version of Ruby.
+ #
+ # source://prism-0.24.0/lib/prism/pack.rb:61
+ def version; end
+end
+
+# The descriptions of the various types of endianness.
+#
+# source://prism-0.24.0/lib/prism/pack.rb:101
+Prism::Pack::Directive::ENDIAN_DESCRIPTIONS = T.let(T.unsafe(nil), Hash)
+
+# The descriptions of the various types of signedness.
+#
+# source://prism-0.24.0/lib/prism/pack.rb:110
+Prism::Pack::Directive::SIGNED_DESCRIPTIONS = T.let(T.unsafe(nil), Hash)
+
+# The descriptions of the various types of sizes.
+#
+# source://prism-0.24.0/lib/prism/pack.rb:117
+Prism::Pack::Directive::SIZE_DESCRIPTIONS = T.let(T.unsafe(nil), Hash)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::ENDIAN_NA = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::FLOAT = T.let(T.unsafe(nil), Symbol)
+
+# The result of parsing a pack template.
+#
+# source://prism-0.24.0/lib/prism/pack.rb:195
+class Prism::Pack::Format
+ # Create a new Format with the given directives and encoding.
+ #
+ # @return [Format] a new instance of Format
+ #
+ # source://prism-0.24.0/lib/prism/pack.rb:203
+ def initialize(directives, encoding); end
+
+ # Provide a human-readable description of the format.
+ #
+ # source://prism-0.24.0/lib/prism/pack.rb:209
+ def describe; end
+
+ # A list of the directives in the template.
+ #
+ # source://prism-0.24.0/lib/prism/pack.rb:197
+ def directives; end
+
+ # The encoding of the template.
+ #
+ # source://prism-0.24.0/lib/prism/pack.rb:200
+ def encoding; end
+end
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::INTEGER = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::LENGTH_FIXED = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::LENGTH_MAX = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::LENGTH_NA = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::LENGTH_RELATIVE = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::LITTLE_ENDIAN = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::MOVE = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::NATIVE_ENDIAN = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::NULL = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::SIGNED = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::SIGNED_NA = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::SIZE_16 = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::SIZE_32 = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::SIZE_64 = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::SIZE_8 = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::SIZE_INT = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::SIZE_LONG = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::SIZE_LONG_LONG = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::SIZE_NA = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::SIZE_P = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::SIZE_SHORT = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::SPACE = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::STRING_BASE64 = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::STRING_FIXED = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::STRING_HEX_HIGH = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::STRING_HEX_LOW = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::STRING_LSB = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::STRING_MIME = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::STRING_MSB = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::STRING_NULL_PADDED = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::STRING_NULL_TERMINATED = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::STRING_POINTER = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::STRING_SPACE_PADDED = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::STRING_UU = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::UNSIGNED = T.let(T.unsafe(nil), Symbol)
+
+# source://prism-0.24.0/lib/prism/pack.rb:55
+Prism::Pack::UTF8 = T.let(T.unsafe(nil), Symbol)
+
+# Flags for parameter nodes.
+#
+# source://prism-0.24.0/lib/prism/node.rb:19304
+module Prism::ParameterFlags; end
+
+# a parameter name that has been repeated in the method signature
+#
+# source://prism-0.24.0/lib/prism/node.rb:19306
+Prism::ParameterFlags::REPEATED_PARAMETER = T.let(T.unsafe(nil), Integer)
+
+# Represents the list of parameters on a method, block, or lambda definition.
+#
+# def a(b, c, d)
+# ^^^^^^^
+# end
+#
+# source://prism-0.24.0/lib/prism/node.rb:14686
+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
+ #
+ # @return [ParametersNode] a new instance of ParametersNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14688
+ def initialize(source, requireds, optionals, rest, posts, keywords, keyword_rest, block, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14702
+ def accept(visitor); end
+
+ # attr_reader block: BlockParameterNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14771
+ sig { returns(T.nilable(Prism::BlockParameterNode)) }
+ def block; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14707
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14725
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14712
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ParametersNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14730
+ sig { params(params: T.untyped).returns(Prism::ParametersNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14707
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14748
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14775
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader keyword_rest: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14768
+ sig { returns(T.nilable(Prism::Node)) }
+ def keyword_rest; end
+
+ # attr_reader keywords: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14765
+ sig { returns(T::Array[Prism::Node]) }
+ def keywords; end
+
+ # attr_reader optionals: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14756
+ sig { returns(T::Array[Prism::Node]) }
+ def optionals; end
+
+ # attr_reader posts: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14762
+ sig { returns(T::Array[Prism::Node]) }
+ def posts; end
+
+ # attr_reader requireds: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14753
+ sig { returns(T::Array[Prism::Node]) }
+ def requireds; end
+
+ # attr_reader rest: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14759
+ sig { returns(T.nilable(Prism::Node)) }
+ def rest; end
+
+ # Mirrors the Method#parameters method.
+ #
+ # source://prism-0.24.0/lib/prism/node_ext.rb:172
+ def signature; 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-0.24.0/lib/prism/node.rb:14816
+ def type; 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-0.24.0/lib/prism/node.rb:14826
+ def type; end
+ end
+end
+
+# Represents a parenthesized expression
+#
+# (10 + 34)
+# ^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:14835
+class Prism::ParenthesesNode < ::Prism::Node
+ # def initialize: (Node? body, Location opening_loc, Location closing_loc, Location location) -> void
+ #
+ # @return [ParenthesesNode] a new instance of ParenthesesNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14837
+ def initialize(source, body, opening_loc, closing_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14847
+ def accept(visitor); end
+
+ # attr_reader body: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14892
+ sig { returns(T.nilable(Prism::Node)) }
+ def body; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14856
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14913
+ sig { returns(String) }
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14901
+ sig { returns(Prism::Location) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14868
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14861
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ParenthesesNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14873
+ sig { params(params: T.untyped).returns(Prism::ParenthesesNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14856
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14887
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14918
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def opening: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14908
+ sig { returns(String) }
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14895
+ sig { returns(Prism::Location) }
+ def opening_loc; end
+
+ # source://prism-0.24.0/lib/prism/node.rb:14851
+ def set_newline_flag(newline_marked); 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-0.24.0/lib/prism/node.rb:14945
+ def type; 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-0.24.0/lib/prism/node.rb:14955
+ def type; end
+ end
+end
+
+# This represents an error that was encountered during parsing.
+#
+# source://prism-0.24.0/lib/prism/parse_result.rb:338
+class Prism::ParseError
+ # Create a new error object with the given message and location.
+ #
+ # @return [ParseError] a new instance of ParseError
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:349
+ def initialize(message, location, level); end
+
+ # Implement the hash pattern matching interface for ParseError.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:356
+ def deconstruct_keys(keys); end
+
+ # Returns a string representation of this error.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:361
+ def inspect; end
+
+ # The level of this error.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:346
+ def level; end
+
+ # A Location object representing the location of this error in the source.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:343
+ sig { returns(Prism::Location) }
+ def location; end
+
+ # The message associated with this error.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:340
+ sig { returns(String) }
+ def message; 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.
+#
+# source://prism-0.24.0/lib/prism/parse_result.rb:398
+class Prism::ParseResult
+ # Create a new parse result object with the given values.
+ #
+ # @return [ParseResult] a new instance of ParseResult
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:425
+ 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-0.24.0/lib/prism/parse_result/comments.rb:173
+ def attach_comments!; end
+
+ # The list of comments that were encountered during parsing.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:405
+ 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-0.24.0/lib/prism/parse_result.rb:413
+ def data_loc; end
+
+ # Implement the hash pattern matching interface for ParseResult.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:436
+ def deconstruct_keys(keys); end
+
+ # The list of errors that were generated during parsing.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:416
+ 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-0.24.0/lib/prism/parse_result.rb:448
+ def failure?; end
+
+ # The list of magic comments that were encountered during parsing.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:408
+ def magic_comments; end
+
+ # Walk the tree and mark nodes that are on a new line.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result/newlines.rb:60
+ def mark_newlines!; end
+
+ # A Source instance that represents the source code that was parsed.
+ #
+ # source://prism-0.24.0/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-0.24.0/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-0.24.0/lib/prism/parse_result.rb:402
+ sig { returns(Prism::ProgramNode) }
+ def value; end
+
+ # The list of warnings that were generated during parsing.
+ #
+ # source://prism-0.24.0/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
+# comments that we found in the source. This class is responsible for
+# walking the tree and finding the nearest location to attach each comment.
+#
+# It does this by first finding the nearest locations to each comment.
+# Locations can either come from nodes directly or from location fields on
+# nodes. For example, a `ClassNode` has an overall location encompassing the
+# entire class, but it also has a location for the `class` keyword.
+#
+# Once the nearest locations are found, it determines which one to attach
+# to. If it's a trailing comment (a comment on the same line as other source
+# code), it will favor attaching to the nearest location that occurs before
+# the comment. Otherwise it will favor attaching to the nearest location
+# that is after the comment.
+#
+# source://prism-0.24.0/lib/prism/parse_result/comments.rb:19
+class Prism::ParseResult::Comments
+ # Create a new Comments object that will attach comments to the given
+ # parse result.
+ #
+ # @return [Comments] a new instance of Comments
+ #
+ # source://prism-0.24.0/lib/prism/parse_result/comments.rb:78
+ def initialize(parse_result); end
+
+ # Attach the comments to their respective locations in the tree by
+ # mutating the parse result.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result/comments.rb:84
+ def attach!; end
+
+ # The parse result that we are attaching comments to.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result/comments.rb:74
+ def parse_result; end
+
+ private
+
+ # Responsible for finding the nearest targets to the given comment within
+ # the context of the given encapsulating node.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result/comments.rb:103
+ 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-0.24.0/lib/prism/parse_result/comments.rb:49
+class Prism::ParseResult::Comments::LocationTarget
+ # @return [LocationTarget] a new instance of LocationTarget
+ #
+ # source://prism-0.24.0/lib/prism/parse_result/comments.rb:52
+ def initialize(location); end
+
+ # source://prism-0.24.0/lib/prism/parse_result/comments.rb:68
+ def <<(comment); end
+
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/parse_result/comments.rb:64
+ def encloses?(comment); end
+
+ # source://prism-0.24.0/lib/prism/parse_result/comments.rb:60
+ def end_offset; end
+
+ # source://prism-0.24.0/lib/prism/parse_result/comments.rb:50
+ def location; end
+
+ # source://prism-0.24.0/lib/prism/parse_result/comments.rb:56
+ def start_offset; end
+end
+
+# A target for attaching comments that is based on a specific node's
+# location.
+#
+# source://prism-0.24.0/lib/prism/parse_result/comments.rb:22
+class Prism::ParseResult::Comments::NodeTarget
+ # @return [NodeTarget] a new instance of NodeTarget
+ #
+ # source://prism-0.24.0/lib/prism/parse_result/comments.rb:25
+ def initialize(node); end
+
+ # source://prism-0.24.0/lib/prism/parse_result/comments.rb:42
+ def <<(comment); end
+
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/parse_result/comments.rb:37
+ def encloses?(comment); end
+
+ # source://prism-0.24.0/lib/prism/parse_result/comments.rb:33
+ def end_offset; end
+
+ # source://prism-0.24.0/lib/prism/parse_result/comments.rb:23
+ def node; end
+
+ # source://prism-0.24.0/lib/prism/parse_result/comments.rb:29
+ def start_offset; end
+end
+
+# The :line tracepoint event gets fired whenever the Ruby VM encounters an
+# expression on a new line. The types of expressions that can trigger this
+# event are:
+#
+# * if statements
+# * unless statements
+# * nodes that are children of statements lists
+#
+# In order to keep track of the newlines, we have a list of offsets that
+# come back from the parser. We assign these offsets to the first nodes that
+# we find in the tree that are on those lines.
+#
+# Note that the logic in this file should be kept in sync with the Java
+# MarkNewlinesVisitor, since that visitor is responsible for marking the
+# newlines for JRuby/TruffleRuby.
+#
+# source://prism-0.24.0/lib/prism/parse_result/newlines.rb:20
+class Prism::ParseResult::Newlines < ::Prism::Visitor
+ # Create a new Newlines visitor with the given newline offsets.
+ #
+ # @return [Newlines] a new instance of Newlines
+ #
+ # source://prism-0.24.0/lib/prism/parse_result/newlines.rb:22
+ def initialize(newline_marked); end
+
+ # Permit block/lambda nodes to mark newlines within themselves.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result/newlines.rb:27
+ def visit_block_node(node); end
+
+ # Mark if/unless nodes as newlines.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result/newlines.rb:41
+ def visit_if_node(node); end
+
+ # Permit block/lambda nodes to mark newlines within themselves.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result/newlines.rb:27
+ def visit_lambda_node(node); end
+
+ # Permit statements lists to mark newlines within themselves.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result/newlines.rb:49
+ def visit_statements_node(node); end
+
+ # Mark if/unless nodes as newlines.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result/newlines.rb:41
+ def visit_unless_node(node); end
+end
+
+# This represents a warning that was encountered during parsing.
+#
+# source://prism-0.24.0/lib/prism/parse_result.rb:367
+class Prism::ParseWarning
+ # Create a new warning object with the given message and location.
+ #
+ # @return [ParseWarning] a new instance of ParseWarning
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:378
+ def initialize(message, location, level); end
+
+ # Implement the hash pattern matching interface for ParseWarning.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:385
+ def deconstruct_keys(keys); end
+
+ # Returns a string representation of this warning.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:390
+ def inspect; end
+
+ # The level of this warning.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:375
+ def level; end
+
+ # A Location object representing the location of this warning in the source.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:372
+ sig { returns(Prism::Location) }
+ def location; end
+
+ # The message associated with this warning.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:369
+ sig { returns(String) }
+ def message; end
+end
+
+# A pattern is an object that wraps a Ruby pattern matching expression. The
+# expression would normally be passed to an `in` clause within a `case`
+# expression or a rightward assignment expression. For example, in the
+# following snippet:
+#
+# case node
+# in ConstantPathNode[ConstantReadNode[name: :Prism], ConstantReadNode[name: :Pattern]]
+# end
+#
+# the pattern is the ConstantPathNode[...] expression.
+#
+# The pattern gets compiled into an object that responds to #call by running
+# the #compile method. This method itself will run back through Prism to
+# parse the expression into a tree, then walk the tree to generate the
+# necessary callable objects. For example, if you wanted to compile the
+# expression above into a callable, you would:
+#
+# callable = Prism::Pattern.new("ConstantPathNode[ConstantReadNode[name: :Prism], ConstantReadNode[name: :Pattern]]").compile
+# callable.call(node)
+#
+# The callable object returned by #compile is guaranteed to respond to #call
+# with a single argument, which is the node to match against. It also is
+# guaranteed to respond to #===, which means it itself can be used in a `case`
+# expression, as in:
+#
+# case node
+# when callable
+# end
+#
+# If the query given to the initializer cannot be compiled into a valid
+# matcher (either because of a syntax error or because it is using syntax we
+# do not yet support) then a Prism::Pattern::CompilationError will be
+# raised.
+#
+# source://prism-0.24.0/lib/prism/pattern.rb:37
+class Prism::Pattern
+ # Create a new pattern with the given query. The query should be a string
+ # containing a Ruby pattern matching expression.
+ #
+ # @return [Pattern] a new instance of Pattern
+ #
+ # source://prism-0.24.0/lib/prism/pattern.rb:63
+ def initialize(query); end
+
+ # Compile the query into a callable object that can be used to match against
+ # nodes.
+ #
+ # source://prism-0.24.0/lib/prism/pattern.rb:70
+ def compile; end
+
+ # The query that this pattern was initialized with.
+ #
+ # source://prism-0.24.0/lib/prism/pattern.rb:59
+ def query; end
+
+ # Scan the given node and all of its children for nodes that match the
+ # pattern. If a block is given, it will be called with each node that
+ # matches the pattern. If no block is given, an enumerator will be returned
+ # that will yield each node that matches the pattern.
+ #
+ # source://prism-0.24.0/lib/prism/pattern.rb:79
+ def scan(root); end
+
+ private
+
+ # Shortcut for combining two procs into one that returns true if both return
+ # true.
+ #
+ # source://prism-0.24.0/lib/prism/pattern.rb:95
+ def combine_and(left, right); end
+
+ # Shortcut for combining two procs into one that returns true if either
+ # returns true.
+ #
+ # source://prism-0.24.0/lib/prism/pattern.rb:101
+ def combine_or(left, right); end
+
+ # in foo | bar
+ #
+ # source://prism-0.24.0/lib/prism/pattern.rb:136
+ def compile_alternation_pattern_node(node); end
+
+ # in [foo, bar, baz]
+ #
+ # source://prism-0.24.0/lib/prism/pattern.rb:111
+ def compile_array_pattern_node(node); end
+
+ # in Prism::ConstantReadNode
+ #
+ # source://prism-0.24.0/lib/prism/pattern.rb:141
+ def compile_constant_path_node(node); end
+
+ # in ConstantReadNode
+ # in String
+ #
+ # source://prism-0.24.0/lib/prism/pattern.rb:153
+ def compile_constant_read_node(node); end
+
+ # Raise an error because the given node is not supported.
+ #
+ # @raise [CompilationError]
+ #
+ # source://prism-0.24.0/lib/prism/pattern.rb:106
+ def compile_error(node); end
+
+ # in InstanceVariableReadNode[name: Symbol]
+ # in { name: Symbol }
+ #
+ # source://prism-0.24.0/lib/prism/pattern.rb:171
+ def compile_hash_pattern_node(node); end
+
+ # in nil
+ #
+ # source://prism-0.24.0/lib/prism/pattern.rb:196
+ 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-0.24.0/lib/prism/pattern.rb:225
+ def compile_node(node); end
+
+ # in /foo/
+ #
+ # source://prism-0.24.0/lib/prism/pattern.rb:201
+ def compile_regular_expression_node(node); end
+
+ # in ""
+ # in "foo"
+ #
+ # source://prism-0.24.0/lib/prism/pattern.rb:209
+ def compile_string_node(node); end
+
+ # in :+
+ # in :foo
+ #
+ # source://prism-0.24.0/lib/prism/pattern.rb:217
+ def compile_symbol_node(node); end
+end
+
+# Raised when the query given to a pattern is either invalid Ruby syntax or
+# is using syntax that we don't yet support.
+#
+# source://prism-0.24.0/lib/prism/pattern.rb:40
+class Prism::Pattern::CompilationError < ::StandardError
+ # Create a new CompilationError with the given representation of the node
+ # that caused the error.
+ #
+ # @return [CompilationError] a new instance of CompilationError
+ #
+ # source://prism-0.24.0/lib/prism/pattern.rb:43
+ def initialize(repr); end
+end
+
+# Represents the use of the `^` operator for pinning an expression in a pattern matching expression.
+#
+# foo in ^(bar)
+# ^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:14964
+class Prism::PinnedExpressionNode < ::Prism::Node
+ # def initialize: (Node expression, Location operator_loc, Location lparen_loc, Location rparen_loc, Location location) -> void
+ #
+ # @return [PinnedExpressionNode] a new instance of PinnedExpressionNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14966
+ def initialize(source, expression, operator_loc, lparen_loc, rparen_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14977
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14982
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14992
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14987
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> PinnedExpressionNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14997
+ sig { params(params: T.untyped).returns(Prism::PinnedExpressionNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:14982
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15012
+ def deconstruct_keys(keys); end
+
+ # attr_reader expression: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15017
+ sig { returns(Prism::Node) }
+ def expression; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15054
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def lparen: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15044
+ sig { returns(String) }
+ def lparen; end
+
+ # attr_reader lparen_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15026
+ sig { returns(Prism::Location) }
+ def lparen_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15039
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15020
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # def rparen: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15049
+ sig { returns(String) }
+ def rparen; end
+
+ # attr_reader rparen_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15032
+ sig { returns(Prism::Location) }
+ def rparen_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
+ # 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-0.24.0/lib/prism/node.rb:15078
+ def type; 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-0.24.0/lib/prism/node.rb:15088
+ def type; end
+ end
+end
+
+# Represents the use of the `^` operator for pinning a variable in a pattern matching expression.
+#
+# foo in ^bar
+# ^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:15097
+class Prism::PinnedVariableNode < ::Prism::Node
+ # def initialize: (Node variable, Location operator_loc, Location location) -> void
+ #
+ # @return [PinnedVariableNode] a new instance of PinnedVariableNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15099
+ def initialize(source, variable, operator_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15108
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15113
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15123
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15118
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> PinnedVariableNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15128
+ sig { params(params: T.untyped).returns(Prism::PinnedVariableNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15113
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { variable: Node, operator_loc: Location, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15141
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15161
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15156
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15149
+ sig { returns(Prism::Location) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:15183
+ def type; end
+
+ # attr_reader variable: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15146
+ sig { returns(Prism::Node) }
+ def variable; 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-0.24.0/lib/prism/node.rb:15193
+ def type; end
+ end
+end
+
+# Represents the use of the `END` keyword.
+#
+# END { foo }
+# ^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:15202
+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-0.24.0/lib/prism/node.rb:15204
+ def initialize(source, statements, keyword_loc, opening_loc, closing_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15215
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15220
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15289
+ sig { returns(String) }
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15272
+ sig { returns(Prism::Location) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15232
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15225
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> PostExecutionNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15237
+ sig { params(params: T.untyped).returns(Prism::PostExecutionNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15220
+ sig { 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-0.24.0/lib/prism/node.rb:15252
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15294
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15279
+ sig { returns(String) }
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15260
+ sig { returns(Prism::Location) }
+ def keyword_loc; end
+
+ # def opening: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15284
+ sig { returns(String) }
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15266
+ sig { returns(Prism::Location) }
+ def opening_loc; end
+
+ # attr_reader statements: StatementsNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15257
+ sig { returns(T.nilable(Prism::StatementsNode)) }
+ def statements; 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-0.24.0/lib/prism/node.rb:15322
+ def type; 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-0.24.0/lib/prism/node.rb:15332
+ def type; end
+ end
+end
+
+# Represents the use of the `BEGIN` keyword.
+#
+# BEGIN { foo }
+# ^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:15341
+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-0.24.0/lib/prism/node.rb:15343
+ def initialize(source, statements, keyword_loc, opening_loc, closing_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15354
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15359
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15428
+ sig { returns(String) }
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15411
+ sig { returns(Prism::Location) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15371
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15364
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> PreExecutionNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15376
+ sig { params(params: T.untyped).returns(Prism::PreExecutionNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15359
+ sig { 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-0.24.0/lib/prism/node.rb:15391
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15433
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15418
+ sig { returns(String) }
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15399
+ sig { returns(Prism::Location) }
+ def keyword_loc; end
+
+ # def opening: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15423
+ sig { returns(String) }
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15405
+ sig { returns(Prism::Location) }
+ def opening_loc; end
+
+ # attr_reader statements: StatementsNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15396
+ sig { returns(T.nilable(Prism::StatementsNode)) }
+ def statements; 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-0.24.0/lib/prism/node.rb:15461
+ def type; 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-0.24.0/lib/prism/node.rb:15471
+ def type; end
+ end
+end
+
+# The top level node of any parse tree.
+#
+# source://prism-0.24.0/lib/prism/node.rb:15477
+class Prism::ProgramNode < ::Prism::Node
+ # def initialize: (Array[Symbol] locals, StatementsNode statements, Location location) -> void
+ #
+ # @return [ProgramNode] a new instance of ProgramNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15479
+ def initialize(source, locals, statements, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15488
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15493
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15503
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15498
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ProgramNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15508
+ sig { params(params: T.untyped).returns(Prism::ProgramNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15493
+ sig { 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-0.24.0/lib/prism/node.rb:15521
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15533
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader locals: Array[Symbol]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15526
+ sig { returns(T::Array[Symbol]) }
+ def locals; end
+
+ # attr_reader statements: StatementsNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15529
+ sig { returns(Prism::StatementsNode) }
+ def statements; 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-0.24.0/lib/prism/node.rb:15555
+ def type; 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-0.24.0/lib/prism/node.rb:15565
+ def type; end
+ end
+end
+
+# Flags for range and flip-flop nodes.
+#
+# source://prism-0.24.0/lib/prism/node.rb:19310
+module Prism::RangeFlags; end
+
+# ... operator
+#
+# source://prism-0.24.0/lib/prism/node.rb:19312
+Prism::RangeFlags::EXCLUDE_END = T.let(T.unsafe(nil), Integer)
+
+# Represents the use of the `..` or `...` operators.
+#
+# 1..2
+# ^^^^
+#
+# c if a =~ /left/ ... b =~ /right/
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:15577
+class Prism::RangeNode < ::Prism::Node
+ # def initialize: (Integer flags, Node? left, Node? right, Location operator_loc, Location location) -> void
+ #
+ # @return [RangeNode] a new instance of RangeNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15579
+ def initialize(source, flags, left, right, operator_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15590
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15595
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15608
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15600
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> RangeNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15613
+ sig { params(params: T.untyped).returns(Prism::RangeNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15595
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15628
+ def deconstruct_keys(keys); end
+
+ # def exclude_end?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15663
+ sig { returns(T::Boolean) }
+ def exclude_end?; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15673
+ 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).
+ #
+ # 1...
+ # ^
+ #
+ # hello...goodbye
+ # ^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15643
+ sig { returns(T.nilable(Prism::Node)) }
+ def left; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15668
+ sig { returns(String) }
+ def operator; end
+
+ # The location of the `..` or `...` operator.
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15656
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # The right-hand side of the range, if present. It can be either `nil` or any [non-void expression](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
+ #
+ # ..5
+ # ^
+ #
+ # 1...foo
+ # ^^^
+ # If neither right-hand or left-hand side was included, this will be a MissingNode.
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15653
+ sig { returns(T.nilable(Prism::Node)) }
+ def right; 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-0.24.0/lib/prism/node.rb:15707
+ def type; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15633
+ 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-0.24.0/lib/prism/node.rb:15717
+ def type; end
+ end
+end
+
+# Represents a rational number literal.
+#
+# 1.0r
+# ^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:15726
+class Prism::RationalNode < ::Prism::Node
+ # def initialize: (Node numeric, Location location) -> void
+ #
+ # @return [RationalNode] a new instance of RationalNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15728
+ def initialize(source, numeric, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15736
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15741
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15751
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15746
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> RationalNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15756
+ sig { params(params: T.untyped).returns(Prism::RationalNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15741
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { numeric: Node, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15768
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15777
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader numeric: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15773
+ sig { returns(Prism::Node) }
+ def numeric; 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-0.24.0/lib/prism/node.rb:15798
+ def type; end
+
+ # Returns the value of the node as a Ruby Rational.
+ #
+ # source://prism-0.24.0/lib/prism/node_ext.rb:83
+ def value; 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-0.24.0/lib/prism/node.rb:15808
+ def type; end
+ end
+end
+
+# Represents the use of the `redo` keyword.
+#
+# redo
+# ^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:15817
+class Prism::RedoNode < ::Prism::Node
+ # def initialize: (Location location) -> void
+ #
+ # @return [RedoNode] a new instance of RedoNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15819
+ def initialize(source, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15826
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15831
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15841
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15836
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> RedoNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15846
+ sig { params(params: T.untyped).returns(Prism::RedoNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15831
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15857
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15863
+ def inspect(inspector = T.unsafe(nil)); 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-0.24.0/lib/prism/node.rb:15882
+ def type; 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-0.24.0/lib/prism/node.rb:15892
+ def type; end
+ end
+end
+
+# Flags for regular expression and match last line nodes.
+#
+# source://prism-0.24.0/lib/prism/node.rb:19316
+module Prism::RegularExpressionFlags; end
+
+# n - forces the ASCII-8BIT encoding
+#
+# source://prism-0.24.0/lib/prism/node.rb:19333
+Prism::RegularExpressionFlags::ASCII_8BIT = T.let(T.unsafe(nil), Integer)
+
+# e - forces the EUC-JP encoding
+#
+# source://prism-0.24.0/lib/prism/node.rb:19330
+Prism::RegularExpressionFlags::EUC_JP = T.let(T.unsafe(nil), Integer)
+
+# x - ignores whitespace and allows comments in regular expressions
+#
+# source://prism-0.24.0/lib/prism/node.rb:19321
+Prism::RegularExpressionFlags::EXTENDED = T.let(T.unsafe(nil), Integer)
+
+# internal bytes forced the encoding to binary
+#
+# source://prism-0.24.0/lib/prism/node.rb:19345
+Prism::RegularExpressionFlags::FORCED_BINARY_ENCODING = T.let(T.unsafe(nil), Integer)
+
+# internal bytes forced the encoding to US-ASCII
+#
+# source://prism-0.24.0/lib/prism/node.rb:19348
+Prism::RegularExpressionFlags::FORCED_US_ASCII_ENCODING = T.let(T.unsafe(nil), Integer)
+
+# internal bytes forced the encoding to UTF-8
+#
+# source://prism-0.24.0/lib/prism/node.rb:19342
+Prism::RegularExpressionFlags::FORCED_UTF8_ENCODING = T.let(T.unsafe(nil), Integer)
+
+# i - ignores the case of characters when matching
+#
+# source://prism-0.24.0/lib/prism/node.rb:19318
+Prism::RegularExpressionFlags::IGNORE_CASE = T.let(T.unsafe(nil), Integer)
+
+# m - allows $ to match the end of lines within strings
+#
+# source://prism-0.24.0/lib/prism/node.rb:19324
+Prism::RegularExpressionFlags::MULTI_LINE = T.let(T.unsafe(nil), Integer)
+
+# o - only interpolates values into the regular expression once
+#
+# source://prism-0.24.0/lib/prism/node.rb:19327
+Prism::RegularExpressionFlags::ONCE = T.let(T.unsafe(nil), Integer)
+
+# u - forces the UTF-8 encoding
+#
+# source://prism-0.24.0/lib/prism/node.rb:19339
+Prism::RegularExpressionFlags::UTF_8 = T.let(T.unsafe(nil), Integer)
+
+# s - forces the Windows-31J encoding
+#
+# source://prism-0.24.0/lib/prism/node.rb:19336
+Prism::RegularExpressionFlags::WINDOWS_31J = T.let(T.unsafe(nil), Integer)
+
+# Represents a regular expression literal with no interpolation.
+#
+# /foo/i
+# ^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:15901
+class Prism::RegularExpressionNode < ::Prism::Node
+ include ::Prism::RegularExpressionOptions
+
+ # def initialize: (Integer flags, Location opening_loc, Location content_loc, Location closing_loc, String unescaped, Location location) -> void
+ #
+ # @return [RegularExpressionNode] a new instance of RegularExpressionNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15903
+ def initialize(source, flags, opening_loc, content_loc, closing_loc, unescaped, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15915
+ def accept(visitor); end
+
+ # def ascii_8bit?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16007
+ sig { returns(T::Boolean) }
+ def ascii_8bit?; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15920
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16047
+ sig { returns(String) }
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15972
+ sig { returns(Prism::Location) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15930
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15925
+ def compact_child_nodes; end
+
+ # def content: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16042
+ sig { returns(String) }
+ def content; end
+
+ # attr_reader content_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15966
+ sig { returns(Prism::Location) }
+ def content_loc; end
+
+ # def copy: (**params) -> RegularExpressionNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15935
+ sig { params(params: T.untyped).returns(Prism::RegularExpressionNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15920
+ sig { 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-0.24.0/lib/prism/node.rb:15951
+ def deconstruct_keys(keys); end
+
+ # def euc_jp?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16002
+ sig { returns(T::Boolean) }
+ def euc_jp?; end
+
+ # def extended?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15987
+ sig { returns(T::Boolean) }
+ def extended?; end
+
+ # def forced_binary_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16027
+ sig { returns(T::Boolean) }
+ def forced_binary_encoding?; end
+
+ # def forced_us_ascii_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16032
+ sig { returns(T::Boolean) }
+ def forced_us_ascii_encoding?; end
+
+ # def forced_utf8_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16022
+ sig { returns(T::Boolean) }
+ def forced_utf8_encoding?; end
+
+ # def ignore_case?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15982
+ sig { returns(T::Boolean) }
+ def ignore_case?; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16052
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def multi_line?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15992
+ sig { returns(T::Boolean) }
+ def multi_line?; end
+
+ # def once?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15997
+ sig { returns(T::Boolean) }
+ def once?; end
+
+ # def opening: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16037
+ sig { returns(String) }
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15960
+ sig { returns(Prism::Location) }
+ def opening_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
+ # 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-0.24.0/lib/prism/node.rb:16077
+ def type; end
+
+ # attr_reader unescaped: String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15978
+ sig { returns(String) }
+ def unescaped; end
+
+ # def utf_8?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16017
+ sig { returns(T::Boolean) }
+ def utf_8?; end
+
+ # def windows_31j?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16012
+ sig { returns(T::Boolean) }
+ def windows_31j?; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:15956
+ 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-0.24.0/lib/prism/node.rb:16087
+ def type; end
+ end
+end
+
+# source://prism-0.24.0/lib/prism/node_ext.rb:6
+module Prism::RegularExpressionOptions
+ # Returns a numeric value that represents the flags that were used to create
+ # the regular expression.
+ #
+ # source://prism-0.24.0/lib/prism/node_ext.rb:9
+ def options; end
+end
+
+# Represents a required keyword parameter to a method, block, or lambda definition.
+#
+# def a(b: )
+# ^^
+# end
+#
+# source://prism-0.24.0/lib/prism/node.rb:16097
+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-0.24.0/lib/prism/node.rb:16099
+ def initialize(source, flags, name, name_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16109
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16114
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16124
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16119
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> RequiredKeywordParameterNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16129
+ sig { params(params: T.untyped).returns(Prism::RequiredKeywordParameterNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16114
+ sig { 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-0.24.0/lib/prism/node.rb:16143
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16167
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16152
+ sig { returns(Symbol) }
+ def name; end
+
+ # attr_reader name_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16155
+ sig { returns(Prism::Location) }
+ def name_loc; end
+
+ # def repeated_parameter?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16162
+ sig { returns(T::Boolean) }
+ def repeated_parameter?; 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-0.24.0/lib/prism/node.rb:16190
+ def type; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16148
+ 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-0.24.0/lib/prism/node.rb:16200
+ def type; end
+ end
+end
+
+# Represents a required parameter to a method, block, or lambda definition.
+#
+# def a(b)
+# ^
+# end
+#
+# source://prism-0.24.0/lib/prism/node.rb:16210
+class Prism::RequiredParameterNode < ::Prism::Node
+ # def initialize: (Integer flags, Symbol name, Location location) -> void
+ #
+ # @return [RequiredParameterNode] a new instance of RequiredParameterNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16212
+ def initialize(source, flags, name, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16221
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16226
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16236
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16231
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> RequiredParameterNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16241
+ sig { params(params: T.untyped).returns(Prism::RequiredParameterNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16226
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { flags: Integer, name: Symbol, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16254
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16272
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16263
+ sig { returns(Symbol) }
+ def name; end
+
+ # def repeated_parameter?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16267
+ sig { returns(T::Boolean) }
+ def repeated_parameter?; 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-0.24.0/lib/prism/node.rb:16294
+ def type; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16259
+ 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-0.24.0/lib/prism/node.rb:16304
+ def type; end
+ end
+end
+
+# Represents an expression modified with a rescue.
+#
+# foo rescue nil
+# ^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:16313
+class Prism::RescueModifierNode < ::Prism::Node
+ # def initialize: (Node expression, Location keyword_loc, Node rescue_expression, Location location) -> void
+ #
+ # @return [RescueModifierNode] a new instance of RescueModifierNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16315
+ def initialize(source, expression, keyword_loc, rescue_expression, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16325
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16334
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16344
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16339
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> RescueModifierNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16349
+ sig { params(params: T.untyped).returns(Prism::RescueModifierNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16334
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16363
+ def deconstruct_keys(keys); end
+
+ # attr_reader expression: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16368
+ sig { returns(Prism::Node) }
+ def expression; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16386
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16381
+ sig { returns(String) }
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16371
+ sig { returns(Prism::Location) }
+ def keyword_loc; end
+
+ # attr_reader rescue_expression: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16377
+ sig { returns(Prism::Node) }
+ def rescue_expression; end
+
+ # source://prism-0.24.0/lib/prism/node.rb:16329
+ def set_newline_flag(newline_marked); 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-0.24.0/lib/prism/node.rb:16410
+ def type; 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-0.24.0/lib/prism/node.rb:16420
+ def type; end
+ end
+end
+
+# Represents a rescue statement.
+#
+# begin
+# rescue Foo, *splat, Bar => ex
+# foo
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+# end
+#
+# `Foo, *splat, Bar` are in the `exceptions` field. `ex` is in the `exception` field.
+#
+# source://prism-0.24.0/lib/prism/node.rb:16434
+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
+ #
+ # @return [RescueNode] a new instance of RescueNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16436
+ def initialize(source, keyword_loc, exceptions, operator_loc, reference, statements, consequent, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16449
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16454
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16469
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16459
+ def compact_child_nodes; end
+
+ # attr_reader consequent: RescueNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16523
+ sig { returns(T.nilable(Prism::RescueNode)) }
+ def consequent; end
+
+ # def copy: (**params) -> RescueNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16474
+ sig { params(params: T.untyped).returns(Prism::RescueNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16454
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16491
+ def deconstruct_keys(keys); end
+
+ # attr_reader exceptions: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16502
+ sig { returns(T::Array[Prism::Node]) }
+ def exceptions; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16537
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16527
+ sig { returns(String) }
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16496
+ sig { returns(Prism::Location) }
+ def keyword_loc; end
+
+ # def operator: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16532
+ sig { returns(T.nilable(String)) }
+ def operator; end
+
+ # attr_reader operator_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16505
+ sig { returns(T.nilable(Prism::Location)) }
+ def operator_loc; end
+
+ # attr_reader reference: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16517
+ sig { returns(T.nilable(Prism::Node)) }
+ def reference; end
+
+ # attr_reader statements: StatementsNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16520
+ sig { returns(T.nilable(Prism::StatementsNode)) }
+ def statements; 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-0.24.0/lib/prism/node.rb:16577
+ def type; 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-0.24.0/lib/prism/node.rb:16587
+ def type; end
+ end
+end
+
+# Represents a rest parameter to a method, block, or lambda definition.
+#
+# def a(*b)
+# ^^
+# end
+#
+# source://prism-0.24.0/lib/prism/node.rb:16597
+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-0.24.0/lib/prism/node.rb:16599
+ def initialize(source, flags, name, name_loc, operator_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16610
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16615
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16625
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16620
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> RestParameterNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16630
+ sig { params(params: T.untyped).returns(Prism::RestParameterNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16615
+ sig { 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-0.24.0/lib/prism/node.rb:16645
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16686
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader name: Symbol?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16654
+ sig { returns(T.nilable(Symbol)) }
+ def name; end
+
+ # attr_reader name_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16657
+ sig { returns(T.nilable(Prism::Location)) }
+ def name_loc; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16681
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16669
+ sig { returns(Prism::Location) }
+ def operator_loc; end
+
+ # def repeated_parameter?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16676
+ sig { returns(T::Boolean) }
+ def repeated_parameter?; 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-0.24.0/lib/prism/node.rb:16714
+ def type; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16650
+ 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-0.24.0/lib/prism/node.rb:16724
+ def type; end
+ end
+end
+
+# Represents the use of the `retry` keyword.
+#
+# retry
+# ^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:16733
+class Prism::RetryNode < ::Prism::Node
+ # def initialize: (Location location) -> void
+ #
+ # @return [RetryNode] a new instance of RetryNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16735
+ def initialize(source, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16742
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16747
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16757
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16752
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> RetryNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16762
+ sig { params(params: T.untyped).returns(Prism::RetryNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16747
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16773
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16779
+ def inspect(inspector = T.unsafe(nil)); 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-0.24.0/lib/prism/node.rb:16798
+ def type; 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-0.24.0/lib/prism/node.rb:16808
+ def type; end
+ end
+end
+
+# Represents the use of the `return` keyword.
+#
+# return 1
+# ^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:16817
+class Prism::ReturnNode < ::Prism::Node
+ # def initialize: (Location keyword_loc, ArgumentsNode? arguments, Location location) -> void
+ #
+ # @return [ReturnNode] a new instance of ReturnNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16819
+ def initialize(source, keyword_loc, arguments, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16828
+ def accept(visitor); end
+
+ # attr_reader arguments: ArgumentsNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16874
+ sig { returns(T.nilable(Prism::ArgumentsNode)) }
+ def arguments; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16833
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16845
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16838
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> ReturnNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16850
+ sig { params(params: T.untyped).returns(Prism::ReturnNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16833
+ sig { 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-0.24.0/lib/prism/node.rb:16863
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16883
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16878
+ sig { returns(String) }
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16868
+ sig { returns(Prism::Location) }
+ def 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
+ # 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-0.24.0/lib/prism/node.rb:16909
+ def type; 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-0.24.0/lib/prism/node.rb:16919
+ def type; end
+ end
+end
+
+# Represents the `self` keyword.
+#
+# self
+# ^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:16928
+class Prism::SelfNode < ::Prism::Node
+ # def initialize: (Location location) -> void
+ #
+ # @return [SelfNode] a new instance of SelfNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16930
+ def initialize(source, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16937
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16942
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16952
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16947
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> SelfNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16957
+ sig { params(params: T.untyped).returns(Prism::SelfNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16942
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16968
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:16974
+ def inspect(inspector = T.unsafe(nil)); 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-0.24.0/lib/prism/node.rb:16993
+ def type; 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-0.24.0/lib/prism/node.rb:17003
+ def type; end
+ end
+end
+
+# A module responsible for deserializing parse results.
+#
+# source://prism-0.24.0/lib/prism/serialize.rb:23
+module Prism::Serialize
+ class << self
+ # Deserialize the AST represented by the given string into a parse result.
+ #
+ # source://prism-0.24.0/lib/prism/serialize.rb:37
+ def load(input, serialized); end
+
+ # Deserialize the tokens represented by the given string into a parse
+ # result.
+ #
+ # source://prism-0.24.0/lib/prism/serialize.rb:49
+ def load_tokens(source, serialized); end
+ end
+end
+
+# source://prism-0.24.0/lib/prism/serialize.rb:53
+class Prism::Serialize::Loader
+ # @return [Loader] a new instance of Loader
+ #
+ # source://prism-0.24.0/lib/prism/serialize.rb:58
+ def initialize(source, serialized); end
+
+ # Returns the value of attribute constant_pool.
+ #
+ # source://prism-0.24.0/lib/prism/serialize.rb:55
+ def constant_pool; end
+
+ # Returns the value of attribute constant_pool_offset.
+ #
+ # source://prism-0.24.0/lib/prism/serialize.rb:55
+ def constant_pool_offset; end
+
+ # Returns the value of attribute encoding.
+ #
+ # source://prism-0.24.0/lib/prism/serialize.rb:54
+ def encoding; end
+
+ # Returns the value of attribute input.
+ #
+ # source://prism-0.24.0/lib/prism/serialize.rb:54
+ def input; end
+
+ # Returns the value of attribute io.
+ #
+ # source://prism-0.24.0/lib/prism/serialize.rb:54
+ def io; end
+
+ # source://prism-0.24.0/lib/prism/serialize.rb:96
+ def load_comments; end
+
+ # source://prism-0.24.0/lib/prism/serialize.rb:82
+ def load_encoding; end
+
+ # source://prism-0.24.0/lib/prism/serialize.rb:73
+ def load_header; end
+
+ # source://prism-0.24.0/lib/prism/serialize.rb:92
+ def load_line_offsets; end
+
+ # source://prism-0.24.0/lib/prism/serialize.rb:106
+ def load_metadata; end
+
+ # source://prism-0.24.0/lib/prism/serialize.rb:140
+ def load_nodes; end
+
+ # source://prism-0.24.0/lib/prism/serialize.rb:154
+ def load_result; end
+
+ # source://prism-0.24.0/lib/prism/serialize.rb:88
+ def load_start_line; end
+
+ # source://prism-0.24.0/lib/prism/serialize.rb:115
+ def load_tokens; end
+
+ # source://prism-0.24.0/lib/prism/serialize.rb:128
+ def load_tokens_result; end
+
+ # Returns the value of attribute serialized.
+ #
+ # source://prism-0.24.0/lib/prism/serialize.rb:54
+ def serialized; end
+
+ # Returns the value of attribute source.
+ #
+ # source://prism-0.24.0/lib/prism/serialize.rb:55
+ def source; end
+
+ # Returns the value of attribute start_line.
+ #
+ # source://prism-0.24.0/lib/prism/serialize.rb:56
+ def start_line; end
+
+ private
+
+ # source://prism-0.24.0/lib/prism/serialize.rb:217
+ def load_constant(index); end
+
+ # source://prism-0.24.0/lib/prism/serialize.rb:193
+ def load_embedded_string; end
+
+ # source://prism-0.24.0/lib/prism/serialize.rb:247
+ def load_error_level; end
+
+ # source://prism-0.24.0/lib/prism/serialize.rb:209
+ def load_location; end
+
+ # source://prism-0.24.0/lib/prism/serialize.rb:274
+ def load_node; end
+
+ # source://prism-0.24.0/lib/prism/serialize.rb:242
+ def load_optional_constant; end
+
+ # source://prism-0.24.0/lib/prism/serialize.rb:213
+ def load_optional_location; end
+
+ # source://prism-0.24.0/lib/prism/serialize.rb:186
+ def load_optional_node; end
+
+ # source://prism-0.24.0/lib/prism/serialize.rb:238
+ def load_required_constant; end
+
+ # source://prism-0.24.0/lib/prism/serialize.rb:182
+ def load_serialized_length; end
+
+ # source://prism-0.24.0/lib/prism/serialize.rb:197
+ def load_string; end
+
+ # source://prism-0.24.0/lib/prism/serialize.rb:177
+ 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-0.24.0/lib/prism/serialize.rb:163
+ def load_varuint; end
+
+ # source://prism-0.24.0/lib/prism/serialize.rb:260
+ def load_warning_level; end
+end
+
+# The major version of prism that we are expecting to find in the serialized
+# strings.
+#
+# source://prism-0.24.0/lib/prism/serialize.rb:26
+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-0.24.0/lib/prism/serialize.rb:30
+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-0.24.0/lib/prism/serialize.rb:34
+Prism::Serialize::PATCH_VERSION = T.let(T.unsafe(nil), Integer)
+
+# The token types that can be indexed by their enum values.
+#
+# source://prism-0.24.0/lib/prism/serialize.rb:1482
+Prism::Serialize::TOKEN_TYPES = T.let(T.unsafe(nil), Array)
+
+# Represents a singleton class declaration involving the `class` keyword.
+#
+# class << self end
+# ^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/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
+ #
+ # @return [SingletonClassNode] a new instance of SingletonClassNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17014
+ def initialize(source, locals, class_keyword_loc, operator_loc, expression, body, end_keyword_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17027
+ def accept(visitor); end
+
+ # attr_reader body: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17090
+ sig { returns(T.nilable(Prism::Node)) }
+ def body; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17032
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def class_keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17100
+ sig { returns(String) }
+ def class_keyword; end
+
+ # attr_reader class_keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17075
+ sig { returns(Prism::Location) }
+ def class_keyword_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17045
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17037
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> SingletonClassNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17050
+ sig { params(params: T.untyped).returns(Prism::SingletonClassNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17032
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17067
+ def deconstruct_keys(keys); end
+
+ # def end_keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17110
+ sig { returns(String) }
+ def end_keyword; end
+
+ # attr_reader end_keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17093
+ sig { returns(Prism::Location) }
+ def end_keyword_loc; end
+
+ # attr_reader expression: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17087
+ sig { returns(Prism::Node) }
+ def expression; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17115
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # attr_reader locals: Array[Symbol]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17072
+ sig { returns(T::Array[Symbol]) }
+ def locals; end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17105
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17081
+ sig { returns(Prism::Location) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:17146
+ def type; 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-0.24.0/lib/prism/node.rb:17156
+ def type; end
+ end
+end
+
+# This represents a source of Ruby code that has been parsed. It is used in
+# conjunction with locations to allow them to resolve line numbers and source
+# ranges.
+#
+# source://prism-0.24.0/lib/prism/parse_result.rb:7
+class Prism::Source
+ # Create a new source object with the given source code.
+ #
+ # @return [Source] a new instance of Source
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:18
+ 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-0.24.0/lib/prism/parse_result.rb:53
+ def character_column(byte_offset); end
+
+ # Return the character offset for the given byte offset.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:48
+ def character_offset(byte_offset); end
+
+ # Returns the column number in code units for the given encoding for the
+ # given byte offset.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:70
+ def code_units_column(byte_offset, encoding); end
+
+ # Returns the offset from the start of the file for the given byte offset
+ # counting in code units for the given encoding.
+ #
+ # This method is tested with UTF-8, UTF-16, and UTF-32. If there is the
+ # concept of code units that differs from the number of characters in other
+ # encodings, it is not captured here.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:63
+ def code_units_offset(byte_offset, encoding); end
+
+ # Return the column number for the given byte offset.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:43
+ def column(byte_offset); end
+
+ # Binary search through the offsets to find the line number for the given
+ # byte offset.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:32
+ 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-0.24.0/lib/prism/parse_result.rb:38
+ def line_start(byte_offset); end
+
+ # The list of newline byte offsets in the source code.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:15
+ sig { returns(T::Array[Integer]) }
+ def offsets; end
+
+ # Perform a byteslice on the source code using the given byte offset and
+ # byte length.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:26
+ def slice(byte_offset, length); end
+
+ # The source code that this source object represents.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:9
+ sig { returns(String) }
+ def source; end
+
+ # The line number where this source starts.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:12
+ def start_line; end
+
+ private
+
+ # Binary search through the offsets to find the line number for the given
+ # byte offset.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:78
+ def find_line(byte_offset); end
+end
+
+# Represents the use of the `__ENCODING__` keyword.
+#
+# __ENCODING__
+# ^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:17165
+class Prism::SourceEncodingNode < ::Prism::Node
+ # def initialize: (Location location) -> void
+ #
+ # @return [SourceEncodingNode] a new instance of SourceEncodingNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17167
+ def initialize(source, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17174
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17179
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17189
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17184
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> SourceEncodingNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17194
+ sig { params(params: T.untyped).returns(Prism::SourceEncodingNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17179
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17205
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17211
+ def inspect(inspector = T.unsafe(nil)); 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-0.24.0/lib/prism/node.rb:17230
+ def type; 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-0.24.0/lib/prism/node.rb:17240
+ def type; end
+ end
+end
+
+# Represents the use of the `__FILE__` keyword.
+#
+# __FILE__
+# ^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:17249
+class Prism::SourceFileNode < ::Prism::Node
+ # def initialize: (String filepath, Location location) -> void
+ #
+ # @return [SourceFileNode] a new instance of SourceFileNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17251
+ def initialize(source, filepath, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17259
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17264
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17274
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17269
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> SourceFileNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17279
+ sig { params(params: T.untyped).returns(Prism::SourceFileNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17264
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { filepath: String, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17291
+ def deconstruct_keys(keys); end
+
+ # attr_reader filepath: String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17296
+ sig { returns(String) }
+ def filepath; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17300
+ def inspect(inspector = T.unsafe(nil)); 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-0.24.0/lib/prism/node.rb:17320
+ def type; 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-0.24.0/lib/prism/node.rb:17330
+ def type; end
+ end
+end
+
+# Represents the use of the `__LINE__` keyword.
+#
+# __LINE__
+# ^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:17339
+class Prism::SourceLineNode < ::Prism::Node
+ # def initialize: (Location location) -> void
+ #
+ # @return [SourceLineNode] a new instance of SourceLineNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17341
+ def initialize(source, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17348
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17353
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17363
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17358
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> SourceLineNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17368
+ sig { params(params: T.untyped).returns(Prism::SourceLineNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17353
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17379
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17385
+ def inspect(inspector = T.unsafe(nil)); 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-0.24.0/lib/prism/node.rb:17404
+ def type; 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-0.24.0/lib/prism/node.rb:17414
+ def type; end
+ end
+end
+
+# Represents the use of the splat operator.
+#
+# [*a]
+# ^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:17423
+class Prism::SplatNode < ::Prism::Node
+ # def initialize: (Location operator_loc, Node? expression, Location location) -> void
+ #
+ # @return [SplatNode] a new instance of SplatNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17425
+ def initialize(source, operator_loc, expression, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17434
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17439
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17451
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17444
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> SplatNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17456
+ sig { params(params: T.untyped).returns(Prism::SplatNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17439
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { operator_loc: Location, expression: Node?, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17469
+ def deconstruct_keys(keys); end
+
+ # attr_reader expression: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17480
+ sig { returns(T.nilable(Prism::Node)) }
+ def expression; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17489
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def operator: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17484
+ sig { returns(String) }
+ def operator; end
+
+ # attr_reader operator_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17474
+ sig { returns(Prism::Location) }
+ def operator_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
+ # 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-0.24.0/lib/prism/node.rb:17515
+ def type; 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-0.24.0/lib/prism/node.rb:17525
+ def type; end
+ end
+end
+
+# Represents a set of statements contained within some scope.
+#
+# foo; bar; baz
+# ^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:17534
+class Prism::StatementsNode < ::Prism::Node
+ # def initialize: (Array[Node] body, Location location) -> void
+ #
+ # @return [StatementsNode] a new instance of StatementsNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17536
+ def initialize(source, body, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17544
+ def accept(visitor); end
+
+ # attr_reader body: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17581
+ sig { returns(T::Array[Prism::Node]) }
+ def body; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17549
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17559
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17554
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> StatementsNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17564
+ sig { params(params: T.untyped).returns(Prism::StatementsNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17549
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { body: Array[Node], location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17576
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17585
+ def inspect(inspector = T.unsafe(nil)); 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-0.24.0/lib/prism/node.rb:17605
+ def type; 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-0.24.0/lib/prism/node.rb:17615
+ def type; end
+ end
+end
+
+# Flags for string nodes.
+#
+# source://prism-0.24.0/lib/prism/node.rb:19352
+module Prism::StringFlags; end
+
+# internal bytes forced the encoding to binary
+#
+# source://prism-0.24.0/lib/prism/node.rb:19357
+Prism::StringFlags::FORCED_BINARY_ENCODING = T.let(T.unsafe(nil), Integer)
+
+# internal bytes forced the encoding to UTF-8
+#
+# source://prism-0.24.0/lib/prism/node.rb:19354
+Prism::StringFlags::FORCED_UTF8_ENCODING = T.let(T.unsafe(nil), Integer)
+
+# frozen by virtue of a `frozen_string_literal` comment
+#
+# source://prism-0.24.0/lib/prism/node.rb:19360
+Prism::StringFlags::FROZEN = T.let(T.unsafe(nil), Integer)
+
+# Represents a string literal, a string contained within a `%w` list, or plain string content within an interpolated string.
+#
+# "foo"
+# ^^^^^
+#
+# %w[foo]
+# ^^^
+#
+# "foo #{bar} baz"
+# ^^^^ ^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:17630
+class Prism::StringNode < ::Prism::Node
+ include ::Prism::HeredocQuery
+
+ # def initialize: (Integer flags, Location? opening_loc, Location content_loc, Location? closing_loc, String unescaped, Location location) -> void
+ #
+ # @return [StringNode] a new instance of StringNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17632
+ def initialize(source, flags, opening_loc, content_loc, closing_loc, unescaped, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17644
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17649
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17748
+ sig { returns(T.nilable(String)) }
+ def closing; end
+
+ # attr_reader closing_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17707
+ sig { returns(T.nilable(Prism::Location)) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17659
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17654
+ def compact_child_nodes; end
+
+ # def content: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17743
+ sig { returns(String) }
+ def content; end
+
+ # attr_reader content_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17701
+ sig { returns(Prism::Location) }
+ def content_loc; end
+
+ # def copy: (**params) -> StringNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17664
+ sig { params(params: T.untyped).returns(Prism::StringNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17649
+ sig { 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-0.24.0/lib/prism/node.rb:17680
+ def deconstruct_keys(keys); end
+
+ # def forced_binary_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17728
+ sig { returns(T::Boolean) }
+ def forced_binary_encoding?; end
+
+ # def forced_utf8_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17723
+ sig { returns(T::Boolean) }
+ def forced_utf8_encoding?; end
+
+ # def frozen?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17733
+ sig { returns(T::Boolean) }
+ def frozen?; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17753
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def opening: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17738
+ sig { returns(T.nilable(String)) }
+ def opening; end
+
+ # attr_reader opening_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17689
+ sig { returns(T.nilable(Prism::Location)) }
+ def opening_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
+ # 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-0.24.0/lib/prism/node.rb:17778
+ def type; end
+
+ # attr_reader unescaped: String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17719
+ sig { returns(String) }
+ def unescaped; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17685
+ 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-0.24.0/lib/prism/node.rb:17788
+ def type; end
+ end
+end
+
+# Represents the use of the `super` keyword with parentheses or arguments.
+#
+# super()
+# ^^^^^^^
+#
+# super foo, bar
+# ^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:17800
+class Prism::SuperNode < ::Prism::Node
+ # def initialize: (Location keyword_loc, Location? lparen_loc, ArgumentsNode? arguments, Location? rparen_loc, Node? block, Location location) -> void
+ #
+ # @return [SuperNode] a new instance of SuperNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17802
+ def initialize(source, keyword_loc, lparen_loc, arguments, rparen_loc, block, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17814
+ def accept(visitor); end
+
+ # attr_reader arguments: ArgumentsNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17876
+ sig { returns(T.nilable(Prism::ArgumentsNode)) }
+ def arguments; end
+
+ # attr_reader block: Node?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17891
+ sig { returns(T.nilable(Prism::Node)) }
+ def block; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17819
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17832
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17824
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> SuperNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17837
+ sig { params(params: T.untyped).returns(Prism::SuperNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17819
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17853
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17910
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17895
+ sig { returns(String) }
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17858
+ sig { returns(Prism::Location) }
+ def keyword_loc; end
+
+ # def lparen: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17900
+ sig { returns(T.nilable(String)) }
+ def lparen; end
+
+ # attr_reader lparen_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17864
+ sig { returns(T.nilable(Prism::Location)) }
+ def lparen_loc; end
+
+ # def rparen: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17905
+ sig { returns(T.nilable(String)) }
+ def rparen; end
+
+ # attr_reader rparen_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17879
+ sig { returns(T.nilable(Prism::Location)) }
+ def rparen_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
+ # 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-0.24.0/lib/prism/node.rb:17944
+ def type; 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-0.24.0/lib/prism/node.rb:17954
+ def type; end
+ end
+end
+
+# Flags for symbol nodes.
+#
+# source://prism-0.24.0/lib/prism/node.rb:19364
+module Prism::SymbolFlags; end
+
+# internal bytes forced the encoding to binary
+#
+# source://prism-0.24.0/lib/prism/node.rb:19369
+Prism::SymbolFlags::FORCED_BINARY_ENCODING = T.let(T.unsafe(nil), Integer)
+
+# internal bytes forced the encoding to US-ASCII
+#
+# source://prism-0.24.0/lib/prism/node.rb:19372
+Prism::SymbolFlags::FORCED_US_ASCII_ENCODING = T.let(T.unsafe(nil), Integer)
+
+# internal bytes forced the encoding to UTF-8
+#
+# source://prism-0.24.0/lib/prism/node.rb:19366
+Prism::SymbolFlags::FORCED_UTF8_ENCODING = T.let(T.unsafe(nil), Integer)
+
+# Represents a symbol literal or a symbol contained within a `%i` list.
+#
+# :foo
+# ^^^^
+#
+# %i[foo]
+# ^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:17966
+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-0.24.0/lib/prism/node.rb:17968
+ def initialize(source, flags, opening_loc, value_loc, closing_loc, unescaped, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17980
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17985
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18090
+ sig { returns(T.nilable(String)) }
+ def closing; end
+
+ # attr_reader closing_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18049
+ sig { returns(T.nilable(Prism::Location)) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17995
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17990
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> SymbolNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18000
+ sig { params(params: T.untyped).returns(Prism::SymbolNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:17985
+ sig { 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-0.24.0/lib/prism/node.rb:18016
+ def deconstruct_keys(keys); end
+
+ # def forced_binary_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18070
+ sig { returns(T::Boolean) }
+ def forced_binary_encoding?; end
+
+ # def forced_us_ascii_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18075
+ sig { returns(T::Boolean) }
+ def forced_us_ascii_encoding?; end
+
+ # def forced_utf8_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18065
+ sig { returns(T::Boolean) }
+ def forced_utf8_encoding?; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18095
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def opening: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18080
+ sig { returns(T.nilable(String)) }
+ def opening; end
+
+ # attr_reader opening_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18025
+ sig { returns(T.nilable(Prism::Location)) }
+ def opening_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
+ # 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-0.24.0/lib/prism/node.rb:18120
+ def type; end
+
+ # attr_reader unescaped: String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18061
+ sig { returns(String) }
+ def unescaped; end
+
+ # def value: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18085
+ sig { returns(T.nilable(String)) }
+ def value; end
+
+ # attr_reader value_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18037
+ sig { returns(T.nilable(Prism::Location)) }
+ def value_loc; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18021
+ 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-0.24.0/lib/prism/node.rb:18130
+ def type; end
+ end
+end
+
+# This represents a token from the Ruby source.
+#
+# source://prism-0.24.0/lib/prism/parse_result.rb:454
+class Prism::Token
+ # Create a new token object with the given type, value, and location.
+ #
+ # @return [Token] a new instance of Token
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:466
+ def initialize(source, type, value, location); end
+
+ # Returns true if the given other token is equal to this token.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:500
+ def ==(other); end
+
+ # Implement the hash pattern matching interface for Token.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:474
+ def deconstruct_keys(keys); end
+
+ # A Location object representing the location of this token in the source.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:479
+ sig { returns(Prism::Location) }
+ def location; end
+
+ # Implement the pretty print interface for Token.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:485
+ def pretty_print(q); end
+
+ # The type of token that this token is.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:460
+ sig { returns(T.untyped) }
+ def type; end
+
+ # A byteslice of the source that this token represents.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:463
+ sig { returns(String) }
+ def value; end
+
+ private
+
+ # The Source object that represents the source this token came from.
+ #
+ # source://prism-0.24.0/lib/prism/parse_result.rb:456
+ def source; end
+end
+
+# This module is responsible for converting the prism syntax tree into other
+# syntax trees.
+#
+# source://prism-0.24.0/lib/prism/translation.rb:6
+module Prism::Translation; end
+
+# This class is the entry-point for converting a prism syntax tree into the
+# whitequark/parser gem's syntax tree. It inherits from the base parser for
+# the parser gem, and overrides the parse* methods to parse with prism and
+# then translate.
+#
+# source://prism-0.24.0/lib/prism/translation/parser.rb:11
+class Prism::Translation::Parser < ::Parser::Base
+ # The default encoding for Ruby files is UTF-8.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser.rb:33
+ def default_encoding; end
+
+ # Parses a source buffer and returns the AST.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser.rb:41
+ def parse(source_buffer); end
+
+ # Parses a source buffer and returns the AST and the source code comments.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser.rb:54
+ 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-0.24.0/lib/prism/translation/parser.rb:71
+ 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-0.24.0/lib/prism/translation/parser.rb:97
+ def try_declare_numparam(node); end
+
+ # source://prism-0.24.0/lib/prism/translation/parser.rb:28
+ def version; end
+
+ # source://prism-0.24.0/lib/prism/translation/parser.rb:37
+ def yyerror; end
+
+ private
+
+ # Build the parser gem AST from the prism AST.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser.rb:146
+ def build_ast(program, offset_cache); end
+
+ # Build the parser gem comments from the prism comments.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser.rb:151
+ def build_comments(comments, offset_cache); end
+
+ # Prism deals with offsets in bytes, while the parser gem deals with
+ # offsets in characters. We need to handle this conversion in order to
+ # build the parser gem AST.
+ #
+ # If the bytesize of the source is the same as the length, then we can
+ # 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-0.24.0/lib/prism/translation/parser.rb:129
+ def build_offset_cache(source); end
+
+ # Build a range from a prism location.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser.rb:163
+ def build_range(location, offset_cache); end
+
+ # Build the parser gem tokens from the prism tokens.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser.rb:158
+ def build_tokens(tokens, offset_cache); end
+
+ # Converts the version format handled by Parser to the format handled by Prism.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser.rb:172
+ def convert_for_prism(version); end
+
+ # If there was a error generated during the parse, then raise an
+ # appropriate syntax error. Otherwise return the result.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser.rb:111
+ def unwrap(result, offset_cache); end
+
+ # This is a hook to allow consumers to disable some errors if they don't
+ # want them to block creating the syntax tree.
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser.rb:105
+ def valid_error?(error); end
+end
+
+# A visitor that knows how to convert a prism syntax tree into the
+# whitequark/parser gem's syntax tree.
+#
+# source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:8
+class Prism::Translation::Parser::Compiler < ::Prism::Compiler
+ # Initialize a new compiler with the given parser, offset cache, and
+ # options.
+ #
+ # @return [Compiler] a new instance of Compiler
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:39
+ def initialize(parser, offset_cache, forwarding: T.unsafe(nil), in_destructure: T.unsafe(nil), in_pattern: T.unsafe(nil)); end
+
+ # The Parser::Builders::Default instance that is being used to build the
+ # AST.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:18
+ def builder; end
+
+ # The types of values that can be forwarded in the current scope.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:29
+ def forwarding; end
+
+ # Whether or not the current node is in a destructure.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:32
+ def in_destructure; end
+
+ # Whether or not the current node is in a pattern.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:35
+ def in_pattern; end
+
+ # The offset cache that is used to map between byte and character
+ # offsets in the file.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:26
+ def offset_cache; end
+
+ # The Parser::Base instance that is being used to build the AST.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:14
+ def parser; end
+
+ # The Parser::Source::Buffer instance that is holding a reference to the
+ # source code.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:22
+ def source_buffer; end
+
+ # alias $foo $bar
+ # ^^^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:58
+ def visit_alias_global_variable_node(node); end
+
+ # alias foo bar
+ # ^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:52
+ def visit_alias_method_node(node); end
+
+ # foo => bar | baz
+ # ^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:64
+ def visit_alternation_pattern_node(node); end
+
+ # a and b
+ # ^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:70
+ def visit_and_node(node); end
+
+ # foo(bar)
+ # ^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:101
+ def visit_arguments_node(node); end
+
+ # []
+ # ^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:76
+ def visit_array_node(node); end
+
+ # foo => [bar]
+ # ^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:82
+ def visit_array_pattern_node(node); end
+
+ # { a: 1 }
+ # ^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:107
+ def visit_assoc_node(node); end
+
+ # def foo(**); bar(**); end
+ # ^^
+ #
+ # { **foo }
+ # ^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:141
+ def visit_assoc_splat_node(node); end
+
+ # $+
+ # ^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:151
+ def visit_back_reference_read_node(node); end
+
+ # begin end
+ # ^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:157
+ def visit_begin_node(node); end
+
+ # foo(&bar)
+ # ^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:195
+ def visit_block_argument_node(node); end
+
+ # foo { |; bar| }
+ # ^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:201
+ def visit_block_local_variable_node(node); end
+
+ # A block on a keyword or method call.
+ #
+ # @raise [CompilationError]
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:206
+ def visit_block_node(node); end
+
+ # def foo(&bar); end
+ # ^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:212
+ def visit_block_parameter_node(node); end
+
+ # A block's parameters.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:217
+ def visit_block_parameters_node(node); end
+
+ # break
+ # ^^^^^
+ #
+ # break foo
+ # ^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:226
+ def visit_break_node(node); end
+
+ # foo.bar += baz
+ # ^^^^^^^^^^^^^^^
+ # foo.bar &&= baz
+ # ^^^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:300
+ def visit_call_and_write_node(node); end
+
+ # foo
+ # ^^^
+ #
+ # foo.bar
+ # ^^^^^^^
+ #
+ # foo.bar() {}
+ # ^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:238
+ def visit_call_node(node); end
+
+ # foo.bar += baz
+ # ^^^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:300
+ def visit_call_operator_write_node(node); end
+
+ # foo.bar += baz
+ # ^^^^^^^^^^^^^^^
+ # foo.bar ||= baz
+ # ^^^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:300
+ def visit_call_or_write_node(node); end
+
+ # foo.bar, = 1
+ # ^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:327
+ def visit_call_target_node(node); end
+
+ # foo => bar => baz
+ # ^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:339
+ def visit_capture_pattern_node(node); end
+
+ # case foo; in bar; end
+ # ^^^^^^^^^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:358
+ def visit_case_match_node(node); end
+
+ # case foo; when bar; end
+ # ^^^^^^^^^^^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:345
+ def visit_case_node(node); end
+
+ # class Foo; end
+ # ^^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:371
+ def visit_class_node(node); end
+
+ # @@foo += bar
+ # ^^^^^^^^^^^^
+ # @@foo &&= bar
+ # ^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:403
+ def visit_class_variable_and_write_node(node); end
+
+ # @@foo += bar
+ # ^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:403
+ def visit_class_variable_operator_write_node(node); end
+
+ # @@foo += bar
+ # ^^^^^^^^^^^^
+ # @@foo ||= bar
+ # ^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:403
+ def visit_class_variable_or_write_node(node); end
+
+ # @@foo
+ # ^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:384
+ def visit_class_variable_read_node(node); end
+
+ # @@foo, = bar
+ # ^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:421
+ def visit_class_variable_target_node(node); end
+
+ # @@foo = 1
+ # ^^^^^^^^^
+ #
+ # @@foo, @@bar = 1
+ # ^^^^^ ^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:393
+ def visit_class_variable_write_node(node); end
+
+ # Foo += bar
+ # ^^^^^^^^^^^
+ # Foo &&= bar
+ # ^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:442
+ def visit_constant_and_write_node(node); end
+
+ # Foo += bar
+ # ^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:442
+ def visit_constant_operator_write_node(node); end
+
+ # Foo += bar
+ # ^^^^^^^^^^^
+ # Foo ||= bar
+ # ^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:442
+ def visit_constant_or_write_node(node); end
+
+ # Foo::Bar += baz
+ # ^^^^^^^^^^^^^^^
+ # Foo::Bar &&= baz
+ # ^^^^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:496
+ def visit_constant_path_and_write_node(node); end
+
+ # Foo::Bar
+ # ^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:466
+ def visit_constant_path_node(node); end
+
+ # Foo::Bar += baz
+ # ^^^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:496
+ def visit_constant_path_operator_write_node(node); end
+
+ # Foo::Bar += baz
+ # ^^^^^^^^^^^^^^^
+ # Foo::Bar ||= baz
+ # ^^^^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:496
+ def visit_constant_path_or_write_node(node); end
+
+ # Foo::Bar, = baz
+ # ^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:514
+ def visit_constant_path_target_node(node); end
+
+ # Foo::Bar = 1
+ # ^^^^^^^^^^^^
+ #
+ # Foo::Foo, Bar::Bar = 1
+ # ^^^^^^^^ ^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:486
+ def visit_constant_path_write_node(node); end
+
+ # Foo
+ # ^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:427
+ def visit_constant_read_node(node); end
+
+ # Foo, = bar
+ # ^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:460
+ def visit_constant_target_node(node); end
+
+ # Foo = 1
+ # ^^^^^^^
+ #
+ # Foo, Bar = 1
+ # ^^^ ^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:436
+ def visit_constant_write_node(node); end
+
+ # def foo; end
+ # ^^^^^^^^^^^^
+ #
+ # def self.foo; end
+ # ^^^^^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:523
+ def visit_def_node(node); end
+
+ # defined? a
+ # ^^^^^^^^^^
+ #
+ # defined?(a)
+ # ^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:570
+ def visit_defined_node(node); end
+
+ # if foo then bar else baz end
+ # ^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:582
+ def visit_else_node(node); end
+
+ # "foo #{bar}"
+ # ^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:588
+ def visit_embedded_statements_node(node); end
+
+ # "foo #@bar"
+ # ^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:598
+ def visit_embedded_variable_node(node); end
+
+ # begin; foo; ensure; bar; end
+ # ^^^^^^^^^^^^
+ #
+ # @raise [CompilationError]
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:604
+ def visit_ensure_node(node); end
+
+ # false
+ # ^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:610
+ def visit_false_node(node); end
+
+ # foo => [*, bar, *]
+ # ^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:616
+ def visit_find_pattern_node(node); end
+
+ # 0..5
+ # ^^^^
+ # if foo .. bar; end
+ # ^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1302
+ def visit_flip_flop_node(node); end
+
+ # 1.0
+ # ^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:628
+ def visit_float_node(node); end
+
+ # for foo in bar do end
+ # ^^^^^^^^^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:634
+ def visit_for_node(node); end
+
+ # def foo(...); bar(...); end
+ # ^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:652
+ def visit_forwarding_arguments_node(node); end
+
+ # def foo(...); end
+ # ^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:658
+ def visit_forwarding_parameter_node(node); end
+
+ # super
+ # ^^^^^
+ #
+ # super {}
+ # ^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:667
+ def visit_forwarding_super_node(node); end
+
+ # $foo += bar
+ # ^^^^^^^^^^^
+ # $foo &&= bar
+ # ^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:698
+ def visit_global_variable_and_write_node(node); end
+
+ # $foo += bar
+ # ^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:698
+ def visit_global_variable_operator_write_node(node); end
+
+ # $foo += bar
+ # ^^^^^^^^^^^
+ # $foo ||= bar
+ # ^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:698
+ def visit_global_variable_or_write_node(node); end
+
+ # $foo
+ # ^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:679
+ def visit_global_variable_read_node(node); end
+
+ # $foo, = bar
+ # ^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:716
+ def visit_global_variable_target_node(node); end
+
+ # $foo = 1
+ # ^^^^^^^^
+ #
+ # $foo, $bar = 1
+ # ^^^^ ^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:688
+ def visit_global_variable_write_node(node); end
+
+ # {}
+ # ^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:722
+ def visit_hash_node(node); end
+
+ # foo => {}
+ # ^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:732
+ def visit_hash_pattern_node(node); end
+
+ # if foo then bar end
+ # ^^^^^^^^^^^^^^^^^^^
+ #
+ # bar if foo
+ # ^^^^^^^^^^
+ #
+ # foo ? bar : baz
+ # ^^^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:750
+ def visit_if_node(node); end
+
+ # 1i
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:791
+ def visit_imaginary_node(node); end
+
+ # { foo: }
+ # ^^^^
+ #
+ # @raise [CompilationError]
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:797
+ def visit_implicit_node(node); end
+
+ # foo { |bar,| }
+ # ^
+ #
+ # @raise [CompilationError]
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:803
+ def visit_implicit_rest_node(node); end
+
+ # case foo; in bar; end
+ # ^^^^^^^^^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:809
+ def visit_in_node(node); end
+
+ # foo[bar] += baz
+ # ^^^^^^^^^^^^^^^
+ # foo[bar] &&= baz
+ # ^^^^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:835
+ def visit_index_and_write_node(node); end
+
+ # foo[bar] += baz
+ # ^^^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:835
+ def visit_index_operator_write_node(node); end
+
+ # foo[bar] += baz
+ # ^^^^^^^^^^^^^^^
+ # foo[bar] ||= baz
+ # ^^^^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:835
+ def visit_index_or_write_node(node); end
+
+ # foo[bar], = 1
+ # ^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:861
+ def visit_index_target_node(node); end
+
+ # ^^^^^^^^^^^
+ # ^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:891
+ def visit_instance_variable_and_write_node(node); end
+
+ # ^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:891
+ def visit_instance_variable_operator_write_node(node); end
+
+ # ^^^^^^^^^^^
+ # ^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:891
+ def visit_instance_variable_or_write_node(node); end
+
+ # ^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:872
+ def visit_instance_variable_read_node(node); end
+
+ # @foo, = bar
+ # ^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:909
+ def visit_instance_variable_target_node(node); end
+
+ # ^^^^^^^^
+ #
+ # @foo, @bar = 1
+ # ^^^^ ^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:881
+ def visit_instance_variable_write_node(node); end
+
+ # 1
+ # ^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:915
+ def visit_integer_node(node); end
+
+ # /foo #{bar}/
+ # ^^^^^^^^^^^^
+ # if /foo #{bar}/ then end
+ # ^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:921
+ def visit_interpolated_match_last_line_node(node); end
+
+ # /foo #{bar}/
+ # ^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:921
+ def visit_interpolated_regular_expression_node(node); end
+
+ # "foo #{bar}"
+ # ^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:936
+ def visit_interpolated_string_node(node); end
+
+ # :"foo #{bar}"
+ # ^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:951
+ def visit_interpolated_symbol_node(node); end
+
+ # `foo #{bar}`
+ # ^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:961
+ def visit_interpolated_x_string_node(node); end
+
+ # foo(bar: baz)
+ # ^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:976
+ def visit_keyword_hash_node(node); end
+
+ # def foo(**bar); end
+ # ^^^^^
+ #
+ # def foo(**); end
+ # ^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:985
+ def visit_keyword_rest_parameter_node(node); end
+
+ # -> {}
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:993
+ def visit_lambda_node(node); end
+
+ # foo += bar
+ # ^^^^^^^^^^
+ # foo &&= bar
+ # ^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1037
+ def visit_local_variable_and_write_node(node); end
+
+ # foo += bar
+ # ^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1037
+ def visit_local_variable_operator_write_node(node); end
+
+ # foo += bar
+ # ^^^^^^^^^^
+ # foo ||= bar
+ # ^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1037
+ def visit_local_variable_or_write_node(node); end
+
+ # foo
+ # ^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1018
+ def visit_local_variable_read_node(node); end
+
+ # foo, = bar
+ # ^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1055
+ def visit_local_variable_target_node(node); end
+
+ # foo = 1
+ # ^^^^^^^
+ #
+ # foo, bar = 1
+ # ^^^ ^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1027
+ def visit_local_variable_write_node(node); end
+
+ # /foo/
+ # ^^^^^
+ # if /foo/ then end
+ # ^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1336
+ def visit_match_last_line_node(node); end
+
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1066
+ def visit_match_predicate_node(node); end
+
+ # foo => bar
+ # ^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1085
+ def visit_match_required_node(node); end
+
+ # /(?foo)/ =~ bar
+ # ^^^^^^^^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1095
+ 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-0.24.0/lib/prism/translation/parser/compiler.rb:1106
+ def visit_missing_node(node); end
+
+ # module Foo; end
+ # ^^^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1112
+ def visit_module_node(node); end
+
+ # foo, bar = baz
+ # ^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1123
+ def visit_multi_target_node(node); end
+
+ # foo, bar = baz
+ # ^^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1137
+ def visit_multi_write_node(node); end
+
+ # next
+ # ^^^^
+ #
+ # next foo
+ # ^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1158
+ def visit_next_node(node); end
+
+ # nil
+ # ^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1170
+ def visit_nil_node(node); end
+
+ # def foo(**nil); end
+ # ^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1176
+ def visit_no_keywords_parameter_node(node); end
+
+ # -> { _1 + _2 }
+ # ^^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1186
+ def visit_numbered_parameters_node(node); end
+
+ # $1
+ # ^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1192
+ def visit_numbered_reference_read_node(node); end
+
+ # def foo(bar: baz); end
+ # ^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1198
+ def visit_optional_keyword_parameter_node(node); end
+
+ # def foo(bar = 1); end
+ # ^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1204
+ def visit_optional_parameter_node(node); end
+
+ # a or b
+ # ^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1210
+ def visit_or_node(node); end
+
+ # def foo(bar, *baz); end
+ # ^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1216
+ def visit_parameters_node(node); end
+
+ # ()
+ # ^^
+ #
+ # (1)
+ # ^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1255
+ def visit_parentheses_node(node); end
+
+ # foo => ^(bar)
+ # ^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1265
+ def visit_pinned_expression_node(node); end
+
+ # foo = 1 and bar => ^foo
+ # ^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1271
+ def visit_pinned_variable_node(node); end
+
+ # END {}
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1276
+ def visit_post_execution_node(node); end
+
+ # BEGIN {}
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1286
+ def visit_pre_execution_node(node); end
+
+ # The top-level program node.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1296
+ def visit_program_node(node); end
+
+ # 0..5
+ # ^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1302
+ def visit_range_node(node); end
+
+ # 1r
+ # ^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1324
+ def visit_rational_node(node); end
+
+ # redo
+ # ^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1330
+ def visit_redo_node(node); end
+
+ # /foo/
+ # ^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1336
+ def visit_regular_expression_node(node); end
+
+ # def foo(bar:); end
+ # ^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1351
+ def visit_required_keyword_parameter_node(node); end
+
+ # def foo(bar); end
+ # ^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1357
+ def visit_required_parameter_node(node); end
+
+ # foo rescue bar
+ # ^^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1363
+ def visit_rescue_modifier_node(node); end
+
+ # begin; rescue; end
+ # ^^^^^^^
+ #
+ # @raise [CompilationError]
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1381
+ def visit_rescue_node(node); end
+
+ # def foo(*bar); end
+ # ^^^^
+ #
+ # def foo(*); end
+ # ^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1390
+ def visit_rest_parameter_node(node); end
+
+ # retry
+ # ^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1396
+ def visit_retry_node(node); end
+
+ # return
+ # ^^^^^^
+ #
+ # return 1
+ # ^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1405
+ def visit_return_node(node); end
+
+ # self
+ # ^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1417
+ def visit_self_node(node); end
+
+ # class << self; end
+ # ^^^^^^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1423
+ def visit_singleton_class_node(node); end
+
+ # __ENCODING__
+ # ^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1435
+ def visit_source_encoding_node(node); end
+
+ # __FILE__
+ # ^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1441
+ def visit_source_file_node(node); end
+
+ # __LINE__
+ # ^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1447
+ def visit_source_line_node(node); end
+
+ # foo(*bar)
+ # ^^^^
+ #
+ # def foo((bar, *baz)); end
+ # ^^^^
+ #
+ # def foo(*); bar(*); end
+ # ^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1459
+ def visit_splat_node(node); end
+
+ # A list of statements.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1472
+ def visit_statements_node(node); end
+
+ # "foo"
+ # ^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1478
+ def visit_string_node(node); end
+
+ # super(foo)
+ # ^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1495
+ def visit_super_node(node); end
+
+ # :foo
+ # ^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1518
+ def visit_symbol_node(node); end
+
+ # true
+ # ^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1536
+ def visit_true_node(node); end
+
+ # undef foo
+ # ^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1542
+ def visit_undef_node(node); end
+
+ # unless foo; bar end
+ # ^^^^^^^^^^^^^^^^^^^
+ #
+ # bar unless foo
+ # ^^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1551
+ def visit_unless_node(node); end
+
+ # until foo; bar end
+ # ^^^^^^^^^^^^^^^^^
+ #
+ # bar until foo
+ # ^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1581
+ def visit_until_node(node); end
+
+ # case foo; when bar; end
+ # ^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1603
+ def visit_when_node(node); end
+
+ # while foo; bar end
+ # ^^^^^^^^^^^^^^^^^^
+ #
+ # bar while foo
+ # ^^^^^^^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1617
+ def visit_while_node(node); end
+
+ # `foo`
+ # ^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1639
+ def visit_x_string_node(node); end
+
+ # yield
+ # ^^^^^
+ #
+ # yield 1
+ # ^^^^^^^
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1657
+ def visit_yield_node(node); end
+
+ private
+
+ # Initialize a new compiler with the given option overrides, used to
+ # visit a subtree with the given options.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1671
+ 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-0.24.0/lib/prism/translation/parser/compiler.rb:1678
+ def find_forwarding(node); 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-0.24.0/lib/prism/translation/parser/compiler.rb:1693
+ def procarg0?(parameters); end
+
+ # Constructs a new source range from the given start and end offsets.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1710
+ 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.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1722
+ def srange_find(start_offset, end_offset, tokens); end
+
+ # Constructs a new source range from the given start and end offsets.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1715
+ def srange_offsets(start_offset, end_offset); end
+
+ # Transform a location into a token that the parser gem expects.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1731
+ def token(location); end
+
+ # Visit a block node on a call.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1736
+ def visit_block(call, block); end
+
+ # Visit a heredoc that can be either a string or an xstring.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1769
+ def visit_heredoc(node); end
+
+ # Visit a numeric node and account for the optional sign.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1815
+ def visit_numeric(node, value); end
+
+ # Within the given block, track that we're within a pattern.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1827
+ def within_pattern; end
+end
+
+# Raised when the tree is malformed or there is a bug in the compiler.
+#
+# source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:10
+class Prism::Translation::Parser::Compiler::CompilationError < ::StandardError; end
+
+# Locations in the parser gem AST are generated using this class. We
+# store a reference to its constant to make it slightly faster to look
+# up.
+#
+# source://prism-0.24.0/lib/prism/translation/parser/compiler.rb:1707
+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-0.24.0/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-0.24.0/lib/prism/translation/parser.rb:20
+ def initialize(message, location); end
+
+ # The message generated by prism.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser.rb:17
+ def message; end
+end
+
+# Accepts a list of prism tokens and converts them into the expected
+# format for the parser gem.
+#
+# source://prism-0.24.0/lib/prism/translation/parser/lexer.rb:8
+class Prism::Translation::Parser::Lexer
+ # Initialize the lexer with the given source buffer, prism tokens, and
+ # offset cache.
+ #
+ # @return [Lexer] a new instance of Lexer
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/lexer.rb:193
+ def initialize(source_buffer, lexed, offset_cache); end
+
+ # An array of prism tokens that we lexed.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/lexer.rb:186
+ def lexed; end
+
+ # A hash that maps offsets in bytes to offsets in characters.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/lexer.rb:189
+ def offset_cache; end
+
+ # The Parser::Source::Buffer that the tokens were lexed from.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/lexer.rb:183
+ def source_buffer; end
+
+ # Convert the prism tokens into the expected format for the parser gem.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/lexer.rb:203
+ def to_a; end
+
+ private
+
+ # Parse a complex from the string representation.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/lexer.rb:310
+ def parse_complex(value); end
+
+ # Parse a rational from the string representation.
+ #
+ # source://prism-0.24.0/lib/prism/translation/parser/lexer.rb:323
+ def parse_rational(value); end
+end
+
+# source://prism-0.24.0/lib/prism/translation/parser/lexer.rb:199
+Prism::Translation::Parser::Lexer::Range = Parser::Source::Range
+
+# The direct translating of types between the two lexers.
+#
+# source://prism-0.24.0/lib/prism/translation/parser/lexer.rb:10
+Prism::Translation::Parser::Lexer::TYPES = T.let(T.unsafe(nil), Hash)
+
+# 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.
+#
+# To use this class, you treat `Prism::Translation::Ripper` effectively as you would
+# treat the `Ripper` class.
+#
+# source://prism-0.24.0/lib/prism/translation/ripper.rb:21
+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-0.24.0/lib/prism/translation/ripper.rb:75
+ def initialize(source); end
+
+ # The current column number of the parser.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:72
+ def column; end
+
+ # True if the parser encountered an error during parsing.
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:87
+ def error?; end
+
+ # The current line number of the parser.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:69
+ def lineno; end
+
+ # Parse the source and return the result.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:92
+ def parse; end
+
+ # The source that is being parsed.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:66
+ def source; end
+
+ # Visit an AliasGlobalVariableNode.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:247
+ def visit_alias_global_variable_node(node); end
+
+ # Visit an AliasMethodNode.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:226
+ def visit_alias_method_node(node); end
+
+ # Visit an AndNode.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:264
+ def visit_and_node(node); end
+
+ # Visit an ArrayNode node.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:113
+ def visit_array_node(node); end
+
+ # Visit a BackReferenceReadNode.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:258
+ def visit_back_reference_read_node(node); end
+
+ # Visit a BeginNode node.
+ # This is not at all bulletproof against different structures of begin/rescue/else/ensure/end.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:315
+ def visit_begin_node(node); end
+
+ # Visit a BlockNode.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:191
+ def visit_block_node(node); end
+
+ # Visit a BlockParametersNode.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:200
+ def visit_block_parameters_node(node); end
+
+ # Visit a BreakNode.
+ #
+ # source://prism-0.24.0/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.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:123
+ def visit_call_node(node); end
+
+ # Visit an EmbeddedStatementsNode node.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:371
+ def visit_embedded_statements_node(node); end
+
+ # Visit a FalseNode.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:280
+ def visit_false_node(node); end
+
+ # Visit a FloatNode node.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:286
+ def visit_float_node(node); end
+
+ # Visit a GlobalVariableReadNode.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:252
+ def visit_global_variable_read_node(node); end
+
+ # Visit a ImaginaryNode node.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:291
+ def visit_imaginary_node(node); end
+
+ # Visit an IntegerNode node.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:296
+ def visit_integer_node(node); end
+
+ # Visit an InterpolatedStringNode node.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:366
+ def visit_interpolated_string_node(node); end
+
+ # Visit an InterpolatedSymbolNode node.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:381
+ def visit_interpolated_symbol_node(node); end
+
+ # Visit a LocalVariableAndWriteNode.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:168
+ def visit_local_variable_and_write_node(node); end
+
+ # Visit nodes for +=, *=, -=, etc., called LocalVariableOperatorWriteNodes.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:178
+ def visit_local_variable_operator_write_node(node); end
+
+ # Visit a LocalVariableOrWriteNode.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:173
+ def visit_local_variable_or_write_node(node); end
+
+ # Visit a LocalVariableReadNode.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:183
+ def visit_local_variable_read_node(node); end
+
+ # Visit a LocalVariableWriteNode.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:161
+ def visit_local_variable_write_node(node); end
+
+ # Visit an OrNode.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:269
+ def visit_or_node(node); end
+
+ # Visit a ParametersNode.
+ # This will require expanding as we support more kinds of parameters.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:206
+ def visit_parameters_node(node); end
+
+ # Visit a ParenthesesNode node.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:301
+ def visit_parentheses_node(node); end
+
+ # Visit a ProgramNode node.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:327
+ def visit_program_node(node); end
+
+ # Visit a RangeNode node.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:334
+ def visit_range_node(node); end
+
+ # Visit a RationalNode node.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:347
+ def visit_rational_node(node); end
+
+ # Visit a RequiredParameterNode.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:212
+ def visit_required_parameter_node(node); end
+
+ # Visit a RescueNode node.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:322
+ def visit_rescue_node(node); end
+
+ # Visit a StatementsNode node.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:386
+ def visit_statements_node(node); end
+
+ # Visit a StringNode node.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:352
+ def visit_string_node(node); end
+
+ # Visit a SymbolNode node.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:376
+ def visit_symbol_node(node); end
+
+ # Visit a TrueNode.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:274
+ def visit_true_node(node); end
+
+ # Visit an XStringNode node.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:359
+ def visit_x_string_node(node); end
+
+ private
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:680
+ def _dispatch0; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def _dispatch1(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def _dispatch2(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:683
+ def _dispatch3(_, _, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:684
+ def _dispatch4(_, _, _, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:685
+ def _dispatch5(_, _, _, _, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:686
+ def _dispatch7(_, _, _, _, _, _, _); end
+
+ # This method is responsible for updating lineno and column information
+ # to reflect the current node.
+ #
+ # This method could be drastically improved with some caching on the start
+ # of every line, but for now it's good enough.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:663
+ 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.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:670
+ def bounds_values(lineno, column); end
+
+ # For CRuby et al, "no block" in an on_block_var is false
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:646
+ def no_block_value; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_BEGIN(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_CHAR(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_END(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on___end__(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_alias(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_alias_error(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_aref(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_aref_field(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_arg_ambiguous(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_arg_paren(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_args_add(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_args_add_block(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_args_add_star(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:680
+ def on_args_forward; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:680
+ def on_args_new; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_array(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:684
+ def on_aryptn(_, _, _, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_assign(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_assign_error(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_assoc_new(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_assoc_splat(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_assoclist_from_args(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_backref(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_backtick(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_bare_assoc_hash(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_begin(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:683
+ def on_binary(_, _, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_block_var(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_blockarg(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:684
+ def on_bodystmt(_, _, _, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_brace_block(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_break(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:683
+ def on_call(_, _, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_case(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:683
+ def on_class(_, _, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_class_name_error(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_comma(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_command(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:684
+ def on_command_call(_, _, _, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_comment(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_const(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_const_path_field(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_const_path_ref(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_const_ref(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_cvar(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:683
+ def on_def(_, _, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_defined(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:685
+ def on_defs(_, _, _, _, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_do_block(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_dot2(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_dot3(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_dyna_symbol(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_else(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:683
+ def on_elsif(_, _, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_embdoc(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_embdoc_beg(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_embdoc_end(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_embexpr_beg(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_embexpr_end(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_embvar(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_ensure(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:680
+ def on_excessed_comma; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_fcall(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:683
+ def on_field(_, _, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_float(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:684
+ def on_fndptn(_, _, _, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:683
+ def on_for(_, _, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_gvar(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_hash(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_heredoc_beg(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_heredoc_dedent(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_heredoc_end(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:683
+ def on_hshptn(_, _, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_ident(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:683
+ def on_if(_, _, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_if_mod(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:683
+ def on_ifop(_, _, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_ignored_nl(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_ignored_sp(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_imaginary(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:683
+ def on_in(_, _, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_int(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_ivar(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_kw(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_kwrest_param(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_label(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_label_end(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_lambda(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_lbrace(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_lbracket(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_lparen(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_magic_comment(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_massign(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_method_add_arg(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_method_add_block(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_mlhs_add(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_mlhs_add_post(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_mlhs_add_star(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:680
+ def on_mlhs_new; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_mlhs_paren(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_module(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_mrhs_add(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_mrhs_add_star(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:680
+ def on_mrhs_new; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_mrhs_new_from_args(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_next(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_nl(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_nokw_param(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_op(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:683
+ def on_opassign(_, _, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_operator_ambiguous(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_param_error(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:686
+ def on_params(_, _, _, _, _, _, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_paren(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_parse_error(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_period(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_program(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_qsymbols_add(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_qsymbols_beg(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:680
+ def on_qsymbols_new; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_qwords_add(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_qwords_beg(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:680
+ def on_qwords_new; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_rational(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_rbrace(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_rbracket(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:680
+ def on_redo; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_regexp_add(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_regexp_beg(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_regexp_end(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_regexp_literal(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:680
+ def on_regexp_new; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:684
+ def on_rescue(_, _, _, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_rescue_mod(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_rest_param(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:680
+ def on_retry; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_return(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:680
+ def on_return0; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_rparen(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_sclass(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_semicolon(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_sp(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_stmts_add(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:680
+ def on_stmts_new; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_string_add(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_string_concat(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:680
+ def on_string_content; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_string_dvar(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_string_embexpr(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_string_literal(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_super(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_symbeg(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_symbol(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_symbol_literal(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_symbols_add(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_symbols_beg(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:680
+ def on_symbols_new; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_tlambda(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_tlambeg(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_top_const_field(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_top_const_ref(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_tstring_beg(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_tstring_content(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_tstring_end(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_unary(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_undef(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:683
+ def on_unless(_, _, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_unless_mod(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_until(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_until_mod(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_var_alias(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_var_field(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_var_ref(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_vcall(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:680
+ def on_void_stmt; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:683
+ def on_when(_, _, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_while(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_while_mod(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_word_add(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:680
+ def on_word_new; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_words_add(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_words_beg(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:680
+ def on_words_new; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_words_sep(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:682
+ def on_xstring_add(_, _); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_xstring_literal(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:680
+ def on_xstring_new; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:681
+ def on_yield(_); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:680
+ def on_yield0; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:680
+ def on_zsuper; end
+
+ # Lazily initialize the parse result.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:676
+ def result; end
+
+ # In Prism this is a CallNode with :[]= as the operator.
+ # In Ripper it's an :aref_field.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:521
+ def visit_aref_field_node(node); end
+
+ # In Prism this is a CallNode with :[] as the operator.
+ # In Ripper it's an :aref.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:513
+ def visit_aref_node(node); end
+
+ # Visit an operation-and-assign node, such as +=.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:501
+ def visit_binary_op_assign(node, operator: T.unsafe(nil)); end
+
+ # Visit a binary operator node like an AndNode or OrNode
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:652
+ def visit_binary_operator(node); end
+
+ # Visit a list of elements, like the elements of an array or arguments.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:474
+ def visit_elements(elements); end
+
+ # Visit an InterpolatedStringNode or an InterpolatedSymbolNode node.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:482
+ def visit_enumerated_node(node); end
+
+ # Generate Ripper events for a CallNode with no opening_loc
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:410
+ def visit_no_paren_call(node); end
+
+ # Visit a node that represents a number. We need to explicitly handle the
+ # unary - operator.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:611
+ def visit_number(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.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:580
+ def visit_symbol_literal_node(node, no_symbol_wrapper: T.unsafe(nil)); end
+
+ # For most Rubies and JRuby after 9.4.6.0 this is a no-op.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:634
+ def visit_unary_operator(value); end
+
+ class << self
+ # This is a convenience method that runs the SexpBuilderPP subclass parser.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:403
+ def sexp(source); end
+
+ # This is a convenience method that runs the SexpBuilder subclass parser.
+ #
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:398
+ def sexp_raw(source); end
+ end
+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.
+#
+# source://prism-0.24.0/lib/prism/translation/ripper.rb:532
+Prism::Translation::Ripper::RUBY_KEYWORDS = T.let(T.unsafe(nil), Array)
+
+# This class mirrors the ::Ripper::SexpBuilder subclass of ::Ripper that
+# returns the arrays of [type, *children].
+#
+# source://prism-0.24.0/lib/prism/translation/ripper.rb:24
+class Prism::Translation::Ripper::SexpBuilder < ::Prism::Translation::Ripper
+ private
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_BEGIN(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_CHAR(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_END(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on___end__(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_alias(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_alias_error(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_aref(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_aref_field(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_arg_ambiguous(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_arg_paren(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_args_add(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_args_add_block(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_args_add_star(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_args_forward(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_args_new(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_array(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_aryptn(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_assign(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_assign_error(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_assoc_new(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_assoc_splat(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_assoclist_from_args(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_backref(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_backtick(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_bare_assoc_hash(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_begin(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_binary(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_block_var(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_blockarg(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_bodystmt(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_brace_block(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_break(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_call(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_case(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_class(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_class_name_error(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_comma(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_command(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_command_call(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_comment(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_const(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_const_path_field(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_const_path_ref(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_const_ref(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_cvar(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_def(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_defined(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_defs(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_do_block(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_dot2(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_dot3(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_dyna_symbol(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_else(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_elsif(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_embdoc(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_embdoc_beg(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_embdoc_end(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_embexpr_beg(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_embexpr_end(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_embvar(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_ensure(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_excessed_comma(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_fcall(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_field(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_float(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_fndptn(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_for(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_gvar(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_hash(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_heredoc_beg(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_heredoc_dedent(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_heredoc_end(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_hshptn(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_ident(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_if(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_if_mod(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_ifop(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_ignored_nl(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_ignored_sp(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_imaginary(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_in(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_int(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_ivar(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_kw(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_kwrest_param(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_label(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_label_end(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_lambda(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_lbrace(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_lbracket(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_lparen(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_magic_comment(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_massign(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_method_add_arg(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_method_add_block(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_mlhs_add(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_mlhs_add_post(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_mlhs_add_star(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_mlhs_new(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_mlhs_paren(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_module(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_mrhs_add(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_mrhs_add_star(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_mrhs_new(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_mrhs_new_from_args(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_next(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_nl(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_nokw_param(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_op(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_opassign(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_operator_ambiguous(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_param_error(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_params(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_paren(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_parse_error(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_period(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_program(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_qsymbols_add(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_qsymbols_beg(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_qsymbols_new(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_qwords_add(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_qwords_beg(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_qwords_new(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_rational(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_rbrace(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_rbracket(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_redo(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_regexp_add(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_regexp_beg(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_regexp_end(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_regexp_literal(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_regexp_new(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_rescue(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_rescue_mod(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_rest_param(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_retry(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_return(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_return0(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_rparen(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_sclass(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_semicolon(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_sp(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_stmts_add(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_stmts_new(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_string_add(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_string_concat(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_string_content(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_string_dvar(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_string_embexpr(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_string_literal(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_super(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_symbeg(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_symbol(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_symbol_literal(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_symbols_add(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_symbols_beg(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_symbols_new(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_tlambda(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_tlambeg(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_top_const_field(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_top_const_ref(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_tstring_beg(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_tstring_content(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_tstring_end(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_unary(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_undef(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_unless(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_unless_mod(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_until(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_until_mod(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_var_alias(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_var_field(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_var_ref(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_vcall(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_void_stmt(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_when(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_while(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_while_mod(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_word_add(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_word_new(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_words_add(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_words_beg(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_words_new(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:34
+ def on_words_sep(value); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_xstring_add(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_xstring_literal(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_xstring_new(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_yield(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_yield0(*args); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:28
+ def on_zsuper(*args); 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-0.24.0/lib/prism/translation/ripper.rb:43
+class Prism::Translation::Ripper::SexpBuilderPP < ::Prism::Translation::Ripper::SexpBuilder
+ private
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:46
+ def _dispatch_event_new; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:50
+ def _dispatch_event_push(list, item); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:50
+ def on_args_add(list, item); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:46
+ def on_args_new; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:50
+ def on_mlhs_add(list, item); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:46
+ def on_mlhs_new; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:50
+ def on_mrhs_add(list, item); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:46
+ def on_mrhs_new; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:50
+ def on_qsymbols_add(list, item); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:46
+ def on_qsymbols_new; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:50
+ def on_qwords_add(list, item); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:46
+ def on_qwords_new; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:50
+ def on_regexp_add(list, item); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:46
+ def on_regexp_new; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:50
+ def on_stmts_add(list, item); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:46
+ def on_stmts_new; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:50
+ def on_string_add(list, item); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:50
+ def on_symbols_add(list, item); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:46
+ def on_symbols_new; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:50
+ def on_word_add(list, item); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:46
+ def on_word_new; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:50
+ def on_words_add(list, item); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:46
+ def on_words_new; end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:50
+ def on_xstring_add(list, item); end
+
+ # source://prism-0.24.0/lib/prism/translation/ripper.rb:46
+ def on_xstring_new; end
+end
+
+# Represents the use of the literal `true` keyword.
+#
+# true
+# ^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:18139
+class Prism::TrueNode < ::Prism::Node
+ # def initialize: (Location location) -> void
+ #
+ # @return [TrueNode] a new instance of TrueNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18141
+ def initialize(source, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18148
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18153
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18163
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18158
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> TrueNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18168
+ sig { params(params: T.untyped).returns(Prism::TrueNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18153
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18179
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18185
+ def inspect(inspector = T.unsafe(nil)); 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-0.24.0/lib/prism/node.rb:18204
+ def type; 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-0.24.0/lib/prism/node.rb:18214
+ def type; end
+ end
+end
+
+# Represents the use of the `undef` keyword.
+#
+# undef :foo, :bar, :baz
+# ^^^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:18223
+class Prism::UndefNode < ::Prism::Node
+ # def initialize: (Array[Node] names, Location keyword_loc, Location location) -> void
+ #
+ # @return [UndefNode] a new instance of UndefNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18225
+ def initialize(source, names, keyword_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18234
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18239
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18249
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18244
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> UndefNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18254
+ sig { params(params: T.untyped).returns(Prism::UndefNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18239
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def deconstruct; end
+
+ # def deconstruct_keys: (Array[Symbol] keys) -> { names: Array[Node], keyword_loc: Location, location: Location }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18267
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18287
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18282
+ sig { returns(String) }
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18275
+ sig { returns(Prism::Location) }
+ def keyword_loc; end
+
+ # attr_reader names: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18272
+ sig { returns(T::Array[Prism::Node]) }
+ def names; 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-0.24.0/lib/prism/node.rb:18308
+ def type; 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-0.24.0/lib/prism/node.rb:18318
+ def type; end
+ end
+end
+
+# Represents the use of the `unless` keyword, either in the block form or the modifier form.
+#
+# bar unless foo
+# ^^^^^^^^^^^^^^
+#
+# unless foo then bar end
+# ^^^^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:18330
+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
+ #
+ # @return [UnlessNode] a new instance of UnlessNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18332
+ def initialize(source, keyword_loc, predicate, then_keyword_loc, statements, consequent, end_keyword_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18345
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18354
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18368
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18359
+ def compact_child_nodes; end
+
+ # attr_reader consequent: ElseNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18419
+ sig { returns(T.nilable(Prism::ElseNode)) }
+ def consequent; end
+
+ # def copy: (**params) -> UnlessNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18373
+ sig { params(params: T.untyped).returns(Prism::UnlessNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18354
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18390
+ def deconstruct_keys(keys); end
+
+ # def end_keyword: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18445
+ sig { returns(T.nilable(String)) }
+ def end_keyword; end
+
+ # attr_reader end_keyword_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18422
+ sig { returns(T.nilable(Prism::Location)) }
+ def end_keyword_loc; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18450
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18435
+ sig { returns(String) }
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18395
+ sig { returns(Prism::Location) }
+ def keyword_loc; end
+
+ # attr_reader predicate: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18401
+ sig { returns(Prism::Node) }
+ def predicate; end
+
+ # source://prism-0.24.0/lib/prism/node.rb:18349
+ def set_newline_flag(newline_marked); end
+
+ # attr_reader statements: StatementsNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18416
+ sig { returns(T.nilable(Prism::StatementsNode)) }
+ def statements; end
+
+ # def then_keyword: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18440
+ sig { returns(T.nilable(String)) }
+ def then_keyword; end
+
+ # attr_reader then_keyword_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18404
+ 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
+ # 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-0.24.0/lib/prism/node.rb:18486
+ def type; 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-0.24.0/lib/prism/node.rb:18496
+ def type; end
+ end
+end
+
+# Represents the use of the `until` keyword, either in the block form or the modifier form.
+#
+# bar until foo
+# ^^^^^^^^^^^^^
+#
+# until foo do bar end
+# ^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:18508
+class Prism::UntilNode < ::Prism::Node
+ # def initialize: (Integer flags, Location keyword_loc, Location? closing_loc, Node predicate, StatementsNode? statements, Location location) -> void
+ #
+ # @return [UntilNode] a new instance of UntilNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18510
+ def initialize(source, flags, keyword_loc, closing_loc, predicate, statements, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18522
+ def accept(visitor); end
+
+ # def begin_modifier?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18599
+ sig { returns(T::Boolean) }
+ def begin_modifier?; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18531
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18609
+ sig { returns(T.nilable(String)) }
+ def closing; end
+
+ # attr_reader closing_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18580
+ sig { returns(T.nilable(Prism::Location)) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18544
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18536
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> UntilNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18549
+ sig { params(params: T.untyped).returns(Prism::UntilNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18531
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18565
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18614
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18604
+ sig { returns(String) }
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18574
+ sig { returns(Prism::Location) }
+ def keyword_loc; end
+
+ # attr_reader predicate: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18592
+ sig { returns(Prism::Node) }
+ def predicate; end
+
+ # source://prism-0.24.0/lib/prism/node.rb:18526
+ def set_newline_flag(newline_marked); end
+
+ # attr_reader statements: StatementsNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18595
+ sig { returns(T.nilable(Prism::StatementsNode)) }
+ def statements; 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-0.24.0/lib/prism/node.rb:18645
+ def type; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18570
+ 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-0.24.0/lib/prism/node.rb:18655
+ def type; end
+ end
+end
+
+# The version constant is set by reading the result of calling pm_version.
+Prism::VERSION = T.let(T.unsafe(nil), String)
+
+# A visitor is a class that provides a default implementation for every accept
+# method defined on the nodes. This means it can walk a tree without the
+# caller needing to define any special handling. This allows you to handle a
+# subset of the tree, while still walking the whole tree.
+#
+# For example, to find all of the method calls that call the `foo` method, you
+# could write:
+#
+# class FooCalls < Prism::Visitor
+# def visit_call_node(node)
+# if node.name == "foo"
+# # Do something with the node
+# end
+#
+# # Call super so that the visitor continues walking the tree
+# super
+# end
+# end
+#
+# source://prism-0.24.0/lib/prism/visitor.rb:50
+class Prism::Visitor < ::Prism::BasicVisitor
+ # Visit a AliasGlobalVariableNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_alias_global_variable_node(node); end
+
+ # Visit a AliasMethodNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_alias_method_node(node); end
+
+ # Visit a AlternationPatternNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_alternation_pattern_node(node); end
+
+ # Visit a AndNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_and_node(node); end
+
+ # Visit a ArgumentsNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_arguments_node(node); end
+
+ # Visit a ArrayNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_array_node(node); end
+
+ # Visit a ArrayPatternNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_array_pattern_node(node); end
+
+ # Visit a AssocNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_assoc_node(node); end
+
+ # Visit a AssocSplatNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_assoc_splat_node(node); end
+
+ # Visit a BackReferenceReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_back_reference_read_node(node); end
+
+ # Visit a BeginNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_begin_node(node); end
+
+ # Visit a BlockArgumentNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_block_argument_node(node); end
+
+ # Visit a BlockLocalVariableNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_block_local_variable_node(node); end
+
+ # Visit a BlockNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_block_node(node); end
+
+ # Visit a BlockParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_block_parameter_node(node); end
+
+ # Visit a BlockParametersNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_block_parameters_node(node); end
+
+ # Visit a BreakNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_break_node(node); end
+
+ # Visit a CallAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_call_and_write_node(node); end
+
+ # Visit a CallNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_call_node(node); end
+
+ # Visit a CallOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_call_operator_write_node(node); end
+
+ # Visit a CallOrWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_call_or_write_node(node); end
+
+ # Visit a CallTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_call_target_node(node); end
+
+ # Visit a CapturePatternNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_capture_pattern_node(node); end
+
+ # Visit a CaseMatchNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_case_match_node(node); end
+
+ # Visit a CaseNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_case_node(node); end
+
+ # Visit a ClassNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_class_node(node); end
+
+ # Visit a ClassVariableAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_class_variable_and_write_node(node); end
+
+ # Visit a ClassVariableOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_class_variable_operator_write_node(node); end
+
+ # Visit a ClassVariableOrWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_class_variable_or_write_node(node); end
+
+ # Visit a ClassVariableReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_class_variable_read_node(node); end
+
+ # Visit a ClassVariableTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_class_variable_target_node(node); end
+
+ # Visit a ClassVariableWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_class_variable_write_node(node); end
+
+ # Visit a ConstantAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_constant_and_write_node(node); end
+
+ # Visit a ConstantOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_constant_operator_write_node(node); end
+
+ # Visit a ConstantOrWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_constant_or_write_node(node); end
+
+ # Visit a ConstantPathAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_constant_path_and_write_node(node); end
+
+ # Visit a ConstantPathNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_constant_path_node(node); end
+
+ # Visit a ConstantPathOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_constant_path_operator_write_node(node); end
+
+ # Visit a ConstantPathOrWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_constant_path_or_write_node(node); end
+
+ # Visit a ConstantPathTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_constant_path_target_node(node); end
+
+ # Visit a ConstantPathWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_constant_path_write_node(node); end
+
+ # Visit a ConstantReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_constant_read_node(node); end
+
+ # Visit a ConstantTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_constant_target_node(node); end
+
+ # Visit a ConstantWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_constant_write_node(node); end
+
+ # Visit a DefNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_def_node(node); end
+
+ # Visit a DefinedNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_defined_node(node); end
+
+ # Visit a ElseNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_else_node(node); end
+
+ # Visit a EmbeddedStatementsNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_embedded_statements_node(node); end
+
+ # Visit a EmbeddedVariableNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_embedded_variable_node(node); end
+
+ # Visit a EnsureNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_ensure_node(node); end
+
+ # Visit a FalseNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_false_node(node); end
+
+ # Visit a FindPatternNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_find_pattern_node(node); end
+
+ # Visit a FlipFlopNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_flip_flop_node(node); end
+
+ # Visit a FloatNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_float_node(node); end
+
+ # Visit a ForNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_for_node(node); end
+
+ # Visit a ForwardingArgumentsNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_forwarding_arguments_node(node); end
+
+ # Visit a ForwardingParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_forwarding_parameter_node(node); end
+
+ # Visit a ForwardingSuperNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_forwarding_super_node(node); end
+
+ # Visit a GlobalVariableAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_global_variable_and_write_node(node); end
+
+ # Visit a GlobalVariableOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_global_variable_operator_write_node(node); end
+
+ # Visit a GlobalVariableOrWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_global_variable_or_write_node(node); end
+
+ # Visit a GlobalVariableReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_global_variable_read_node(node); end
+
+ # Visit a GlobalVariableTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_global_variable_target_node(node); end
+
+ # Visit a GlobalVariableWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_global_variable_write_node(node); end
+
+ # Visit a HashNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_hash_node(node); end
+
+ # Visit a HashPatternNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_hash_pattern_node(node); end
+
+ # Visit a IfNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_if_node(node); end
+
+ # Visit a ImaginaryNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_imaginary_node(node); end
+
+ # Visit a ImplicitNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_implicit_node(node); end
+
+ # Visit a ImplicitRestNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_implicit_rest_node(node); end
+
+ # Visit a InNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_in_node(node); end
+
+ # Visit a IndexAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_index_and_write_node(node); end
+
+ # Visit a IndexOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_index_operator_write_node(node); end
+
+ # Visit a IndexOrWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_index_or_write_node(node); end
+
+ # Visit a IndexTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_index_target_node(node); end
+
+ # Visit a InstanceVariableAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_instance_variable_and_write_node(node); end
+
+ # Visit a InstanceVariableOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_instance_variable_operator_write_node(node); end
+
+ # Visit a InstanceVariableOrWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_instance_variable_or_write_node(node); end
+
+ # Visit a InstanceVariableReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_instance_variable_read_node(node); end
+
+ # Visit a InstanceVariableTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_instance_variable_target_node(node); end
+
+ # Visit a InstanceVariableWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_instance_variable_write_node(node); end
+
+ # Visit a IntegerNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_integer_node(node); end
+
+ # Visit a InterpolatedMatchLastLineNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_interpolated_match_last_line_node(node); end
+
+ # Visit a InterpolatedRegularExpressionNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_interpolated_regular_expression_node(node); end
+
+ # Visit a InterpolatedStringNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_interpolated_string_node(node); end
+
+ # Visit a InterpolatedSymbolNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_interpolated_symbol_node(node); end
+
+ # Visit a InterpolatedXStringNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_interpolated_x_string_node(node); end
+
+ # Visit a KeywordHashNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_keyword_hash_node(node); end
+
+ # Visit a KeywordRestParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_keyword_rest_parameter_node(node); end
+
+ # Visit a LambdaNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_lambda_node(node); end
+
+ # Visit a LocalVariableAndWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_local_variable_and_write_node(node); end
+
+ # Visit a LocalVariableOperatorWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_local_variable_operator_write_node(node); end
+
+ # Visit a LocalVariableOrWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_local_variable_or_write_node(node); end
+
+ # Visit a LocalVariableReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_local_variable_read_node(node); end
+
+ # Visit a LocalVariableTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_local_variable_target_node(node); end
+
+ # Visit a LocalVariableWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_local_variable_write_node(node); end
+
+ # Visit a MatchLastLineNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_match_last_line_node(node); end
+
+ # Visit a MatchPredicateNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_match_predicate_node(node); end
+
+ # Visit a MatchRequiredNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_match_required_node(node); end
+
+ # Visit a MatchWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_match_write_node(node); end
+
+ # Visit a MissingNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_missing_node(node); end
+
+ # Visit a ModuleNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_module_node(node); end
+
+ # Visit a MultiTargetNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_multi_target_node(node); end
+
+ # Visit a MultiWriteNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_multi_write_node(node); end
+
+ # Visit a NextNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_next_node(node); end
+
+ # Visit a NilNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_nil_node(node); end
+
+ # Visit a NoKeywordsParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_no_keywords_parameter_node(node); end
+
+ # Visit a NumberedParametersNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_numbered_parameters_node(node); end
+
+ # Visit a NumberedReferenceReadNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_numbered_reference_read_node(node); end
+
+ # Visit a OptionalKeywordParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_optional_keyword_parameter_node(node); end
+
+ # Visit a OptionalParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_optional_parameter_node(node); end
+
+ # Visit a OrNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_or_node(node); end
+
+ # Visit a ParametersNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_parameters_node(node); end
+
+ # Visit a ParenthesesNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_parentheses_node(node); end
+
+ # Visit a PinnedExpressionNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_pinned_expression_node(node); end
+
+ # Visit a PinnedVariableNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_pinned_variable_node(node); end
+
+ # Visit a PostExecutionNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_post_execution_node(node); end
+
+ # Visit a PreExecutionNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_pre_execution_node(node); end
+
+ # Visit a ProgramNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_program_node(node); end
+
+ # Visit a RangeNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_range_node(node); end
+
+ # Visit a RationalNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_rational_node(node); end
+
+ # Visit a RedoNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_redo_node(node); end
+
+ # Visit a RegularExpressionNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_regular_expression_node(node); end
+
+ # Visit a RequiredKeywordParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_required_keyword_parameter_node(node); end
+
+ # Visit a RequiredParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_required_parameter_node(node); end
+
+ # Visit a RescueModifierNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_rescue_modifier_node(node); end
+
+ # Visit a RescueNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_rescue_node(node); end
+
+ # Visit a RestParameterNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_rest_parameter_node(node); end
+
+ # Visit a RetryNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_retry_node(node); end
+
+ # Visit a ReturnNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_return_node(node); end
+
+ # Visit a SelfNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_self_node(node); end
+
+ # Visit a SingletonClassNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_singleton_class_node(node); end
+
+ # Visit a SourceEncodingNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_source_encoding_node(node); end
+
+ # Visit a SourceFileNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_source_file_node(node); end
+
+ # Visit a SourceLineNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_source_line_node(node); end
+
+ # Visit a SplatNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_splat_node(node); end
+
+ # Visit a StatementsNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_statements_node(node); end
+
+ # Visit a StringNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_string_node(node); end
+
+ # Visit a SuperNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_super_node(node); end
+
+ # Visit a SymbolNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_symbol_node(node); end
+
+ # Visit a TrueNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_true_node(node); end
+
+ # Visit a UndefNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_undef_node(node); end
+
+ # Visit a UnlessNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_unless_node(node); end
+
+ # Visit a UntilNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_until_node(node); end
+
+ # Visit a WhenNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_when_node(node); end
+
+ # Visit a WhileNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_while_node(node); end
+
+ # Visit a XStringNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_x_string_node(node); end
+
+ # Visit a YieldNode node
+ #
+ # source://prism-0.24.0/lib/prism/visitor.rb:26
+ def visit_yield_node(node); end
+end
+
+# Represents the use of the `when` keyword within a case statement.
+#
+# case true
+# when true
+# ^^^^^^^^^
+# end
+#
+# source://prism-0.24.0/lib/prism/node.rb:18666
+class Prism::WhenNode < ::Prism::Node
+ # def initialize: (Location keyword_loc, Array[Node] conditions, StatementsNode? statements, Location location) -> void
+ #
+ # @return [WhenNode] a new instance of WhenNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18668
+ def initialize(source, keyword_loc, conditions, statements, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18678
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18683
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18696
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18688
+ def compact_child_nodes; end
+
+ # attr_reader conditions: Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18726
+ sig { returns(T::Array[Prism::Node]) }
+ def conditions; end
+
+ # def copy: (**params) -> WhenNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18701
+ sig { params(params: T.untyped).returns(Prism::WhenNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18683
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18715
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18738
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18733
+ sig { returns(String) }
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18720
+ sig { returns(Prism::Location) }
+ def keyword_loc; end
+
+ # attr_reader statements: StatementsNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18729
+ sig { returns(T.nilable(Prism::StatementsNode)) }
+ def statements; 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-0.24.0/lib/prism/node.rb:18765
+ def type; 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-0.24.0/lib/prism/node.rb:18775
+ def type; end
+ end
+end
+
+# Represents the use of the `while` keyword, either in the block form or the modifier form.
+#
+# bar while foo
+# ^^^^^^^^^^^^^
+#
+# while foo do bar end
+# ^^^^^^^^^^^^^^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:18787
+class Prism::WhileNode < ::Prism::Node
+ # def initialize: (Integer flags, Location keyword_loc, Location? closing_loc, Node predicate, StatementsNode? statements, Location location) -> void
+ #
+ # @return [WhileNode] a new instance of WhileNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18789
+ def initialize(source, flags, keyword_loc, closing_loc, predicate, statements, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18801
+ def accept(visitor); end
+
+ # def begin_modifier?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18878
+ sig { returns(T::Boolean) }
+ def begin_modifier?; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18810
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18888
+ sig { returns(T.nilable(String)) }
+ def closing; end
+
+ # attr_reader closing_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18859
+ sig { returns(T.nilable(Prism::Location)) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18823
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18815
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> WhileNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18828
+ sig { params(params: T.untyped).returns(Prism::WhileNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18810
+ sig { 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 }
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18844
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18893
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18883
+ sig { returns(String) }
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18853
+ sig { returns(Prism::Location) }
+ def keyword_loc; end
+
+ # attr_reader predicate: Node
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18871
+ sig { returns(Prism::Node) }
+ def predicate; end
+
+ # source://prism-0.24.0/lib/prism/node.rb:18805
+ def set_newline_flag(newline_marked); end
+
+ # attr_reader statements: StatementsNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18874
+ sig { returns(T.nilable(Prism::StatementsNode)) }
+ def statements; 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-0.24.0/lib/prism/node.rb:18924
+ def type; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18849
+ 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-0.24.0/lib/prism/node.rb:18934
+ def type; end
+ end
+end
+
+# Represents an xstring literal with no interpolation.
+#
+# `foo`
+# ^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:18943
+class Prism::XStringNode < ::Prism::Node
+ include ::Prism::HeredocQuery
+
+ # def initialize: (Integer flags, Location opening_loc, Location content_loc, Location closing_loc, String unescaped, Location location) -> void
+ #
+ # @return [XStringNode] a new instance of XStringNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18945
+ def initialize(source, flags, opening_loc, content_loc, closing_loc, unescaped, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18957
+ def accept(visitor); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18962
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def closing: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:19044
+ sig { returns(String) }
+ def closing; end
+
+ # attr_reader closing_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:19014
+ sig { returns(Prism::Location) }
+ def closing_loc; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18972
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18967
+ def compact_child_nodes; end
+
+ # def content: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:19039
+ sig { returns(String) }
+ def content; end
+
+ # attr_reader content_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:19008
+ sig { returns(Prism::Location) }
+ def content_loc; end
+
+ # def copy: (**params) -> XStringNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18977
+ sig { params(params: T.untyped).returns(Prism::XStringNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18962
+ sig { 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-0.24.0/lib/prism/node.rb:18993
+ def deconstruct_keys(keys); end
+
+ # def forced_binary_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:19029
+ sig { returns(T::Boolean) }
+ def forced_binary_encoding?; end
+
+ # def forced_utf8_encoding?: () -> bool
+ #
+ # @return [Boolean]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:19024
+ sig { returns(T::Boolean) }
+ def forced_utf8_encoding?; end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:19049
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def opening: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:19034
+ sig { returns(String) }
+ def opening; end
+
+ # attr_reader opening_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:19002
+ sig { returns(Prism::Location) }
+ def opening_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
+ # 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-0.24.0/lib/prism/node.rb:19074
+ def type; end
+
+ # attr_reader unescaped: String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:19020
+ sig { returns(String) }
+ def unescaped; end
+
+ private
+
+ # private attr_reader flags: Integer
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:18998
+ 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-0.24.0/lib/prism/node.rb:19084
+ def type; end
+ end
+end
+
+# Represents the use of the `yield` keyword.
+#
+# yield 1
+# ^^^^^^^
+#
+# source://prism-0.24.0/lib/prism/node.rb:19093
+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-0.24.0/lib/prism/node.rb:19095
+ def initialize(source, keyword_loc, lparen_loc, arguments, rparen_loc, location); end
+
+ # def accept: (Visitor visitor) -> void
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:19106
+ def accept(visitor); end
+
+ # attr_reader arguments: ArgumentsNode?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:19166
+ sig { returns(T.nilable(Prism::ArgumentsNode)) }
+ def arguments; end
+
+ # def child_nodes: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:19111
+ sig { returns(T::Array[T.nilable(Prism::Node)]) }
+ def child_nodes; end
+
+ # def comment_targets: () -> Array[Node | Location]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:19123
+ def comment_targets; end
+
+ # def compact_child_nodes: () -> Array[Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:19116
+ def compact_child_nodes; end
+
+ # def copy: (**params) -> YieldNode
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:19128
+ sig { params(params: T.untyped).returns(Prism::YieldNode) }
+ def copy(**params); end
+
+ # def child_nodes: () -> Array[nil | Node]
+ # def deconstruct: () -> Array[nil | Node]
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:19111
+ sig { 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-0.24.0/lib/prism/node.rb:19143
+ def deconstruct_keys(keys); end
+
+ # def inspect(NodeInspector inspector) -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:19197
+ def inspect(inspector = T.unsafe(nil)); end
+
+ # def keyword: () -> String
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:19182
+ sig { returns(String) }
+ def keyword; end
+
+ # attr_reader keyword_loc: Location
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:19148
+ sig { returns(Prism::Location) }
+ def keyword_loc; end
+
+ # def lparen: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:19187
+ sig { returns(T.nilable(String)) }
+ def lparen; end
+
+ # attr_reader lparen_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:19154
+ sig { returns(T.nilable(Prism::Location)) }
+ def lparen_loc; end
+
+ # def rparen: () -> String?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:19192
+ sig { returns(T.nilable(String)) }
+ def rparen; end
+
+ # attr_reader rparen_loc: Location?
+ #
+ # source://prism-0.24.0/lib/prism/node.rb:19169
+ sig { returns(T.nilable(Prism::Location)) }
+ def rparen_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
+ # 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-0.24.0/lib/prism/node.rb:19225
+ def type; 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-0.24.0/lib/prism/node.rb:19235
+ def type; end
+ end
+end
+
+# source://rubocop-1.34.1/lib/rubocop/target_ruby.rb:7
+RuboCop::TargetRuby::KNOWN_RUBIES = T.let(T.unsafe(nil), Array)
diff --git a/test/unit/packwerk/file_processor_test.rb b/test/unit/packwerk/file_processor_test.rb
index 4b3b49821..9ddca2daa 100644
--- a/test/unit/packwerk/file_processor_test.rb
+++ b/test/unit/packwerk/file_processor_test.rb
@@ -116,7 +116,7 @@ class FileProcessorTest < Minitest::Test
assert_equal 0, processed_file.unresolved_references.count
offenses = processed_file.offenses
assert_equal 1, offenses.length
- assert_equal "Syntax error: unexpected token $end", offenses.first.message
+ assert_equal "Syntax error: expected a delimiter to close the parameters", offenses.first.message
end
test "#call with a path that can't be parsed outputs error message" do