diff --git a/Gemfile.lock b/Gemfile.lock index 94b146e4..103adda7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -2,7 +2,7 @@ PATH remote: . specs: rbi (0.1.5) - prism (>= 0.18.0, < 0.19) + prism (>= 0.18.0, < 0.20) sorbet-runtime (>= 0.5.9204) GEM @@ -27,7 +27,7 @@ GEM ast (~> 2.4.1) racc prettier_print (1.2.1) - prism (0.18.0) + prism (0.19.0) racc (1.7.3) rainbow (3.1.1) rake (13.1.0) diff --git a/rbi.gemspec b/rbi.gemspec index d2b41fd7..d4c20f4f 100644 --- a/rbi.gemspec +++ b/rbi.gemspec @@ -24,6 +24,6 @@ Gem::Specification.new do |spec| "Rakefile", ] - spec.add_dependency("prism", ">= 0.18.0", "< 0.19") + spec.add_dependency("prism", ">= 0.18.0", "< 0.20") spec.add_dependency("sorbet-runtime", ">= 0.5.9204") end diff --git a/sorbet/rbi/gems/erubi@1.12.0.rbi b/sorbet/rbi/gems/erubi@1.12.0.rbi new file mode 100644 index 00000000..c52738fa --- /dev/null +++ b/sorbet/rbi/gems/erubi@1.12.0.rbi @@ -0,0 +1,145 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for types exported from the `erubi` gem. +# Please instead update this file by running `bin/tapioca gem erubi`. + +# source://erubi//lib/erubi.rb#3 +module Erubi + class << self + def h(_arg0); end + end +end + +# source://erubi//lib/erubi.rb#54 +class Erubi::Engine + # Initialize a new Erubi::Engine. Options: + # +:bufval+ :: The value to use for the buffer variable, as a string (default '::String.new'). + # +:bufvar+ :: The variable name to use for the buffer variable, as a string. + # +:chain_appends+ :: Whether to chain << calls to the buffer variable. Offers better + # performance, but can cause issues when the buffer variable is reassigned during + # template rendering (default +false+). + # +:ensure+ :: Wrap the template in a begin/ensure block restoring the previous value of bufvar. + # +:escapefunc+ :: The function to use for escaping, as a string (default: '::Erubi.h'). + # +:escape+ :: Whether to make <%= escape by default, and <%== not escape by default. + # +:escape_html+ :: Same as +:escape+, with lower priority. + # +:filename+ :: The filename for the template. + # the resulting source code. Note this may cause problems if you are wrapping the resulting + # source code in other code, because the magic comment only has an effect at the beginning of + # the file, and having the magic comment later in the file can trigger warnings. + # +:freeze_template_literals+ :: Whether to suffix all literal strings for template code with .freeze + # (default: +true+ on Ruby 2.1+, +false+ on Ruby 2.0 and older). + # Can be set to +false+ on Ruby 2.3+ when frozen string literals are enabled + # in order to improve performance. + # +:literal_prefix+ :: The prefix to output when using escaped tag delimiters (default '<%'). + # +:literal_postfix+ :: The postfix to output when using escaped tag delimiters (default '%>'). + # +:outvar+ :: Same as +:bufvar+, with lower priority. + # +:postamble+ :: The postamble for the template, by default returns the resulting source code. + # +:preamble+ :: The preamble for the template, by default initializes the buffer variable. + # +:regexp+ :: The regexp to use for scanning. + # +:src+ :: The initial value to use for the source code, an empty string by default. + # +:trim+ :: Whether to trim leading and trailing whitespace, true by default. + # + # @return [Engine] a new instance of Engine + # + # source://erubi//lib/erubi.rb#94 + def initialize(input, properties = T.unsafe(nil)); end + + # The variable name used for the buffer variable. + # + # source://erubi//lib/erubi.rb#65 + def bufvar; end + + # The filename of the template, if one was given. + # + # source://erubi//lib/erubi.rb#62 + def filename; end + + # The frozen ruby source code generated from the template, which can be evaled. + # + # source://erubi//lib/erubi.rb#59 + def src; end + + private + + # Add ruby code to the template + # + # source://erubi//lib/erubi.rb#226 + def add_code(code); end + + # Add the given ruby expression result to the template, + # escaping it based on the indicator given and escape flag. + # + # source://erubi//lib/erubi.rb#235 + def add_expression(indicator, code); end + + # Add the result of Ruby expression to the template + # + # source://erubi//lib/erubi.rb#244 + def add_expression_result(code); end + + # Add the escaped result of Ruby expression to the template + # + # source://erubi//lib/erubi.rb#249 + def add_expression_result_escaped(code); end + + # Add the given postamble to the src. Can be overridden in subclasses + # to make additional changes to src that depend on the current state. + # + # source://erubi//lib/erubi.rb#255 + def add_postamble(postamble); end + + # Add raw text to the template. Modifies argument if argument is mutable as a memory optimization. + # Must be called with a string, cannot be called with nil (Rails's subclass depends on it). + # + # source://erubi//lib/erubi.rb#213 + def add_text(text); end + + # Raise an exception, as the base engine class does not support handling other indicators. + # + # @raise [ArgumentError] + # + # source://erubi//lib/erubi.rb#261 + def handle(indicator, code, tailch, rspace, lspace); end + + # Make sure that any current expression has been terminated. + # The default is to terminate all expressions, but when + # the chain_appends option is used, expressions may not be + # terminated. + # + # source://erubi//lib/erubi.rb#289 + def terminate_expression; end + + # Make sure the buffer variable is the target of the next append + # before yielding to the block. Mark that the buffer is the target + # of the next append after the block executes. + # + # This method should only be called if the block will result in + # code where << will append to the bufvar. + # + # source://erubi//lib/erubi.rb#271 + def with_buffer; end +end + +# The default regular expression used for scanning. +# +# source://erubi//lib/erubi.rb#56 +Erubi::Engine::DEFAULT_REGEXP = T.let(T.unsafe(nil), Regexp) + +# source://erubi//lib/erubi.rb#17 +Erubi::FREEZE_TEMPLATE_LITERALS = T.let(T.unsafe(nil), TrueClass) + +# source://erubi//lib/erubi.rb#15 +Erubi::MATCH_METHOD = T.let(T.unsafe(nil), Symbol) + +# source://erubi//lib/erubi.rb#8 +Erubi::RANGE_FIRST = T.let(T.unsafe(nil), Integer) + +# source://erubi//lib/erubi.rb#9 +Erubi::RANGE_LAST = T.let(T.unsafe(nil), Integer) + +# source://erubi//lib/erubi.rb#16 +Erubi::SKIP_DEFINED_FOR_INSTANCE_VARIABLE = T.let(T.unsafe(nil), TrueClass) + +# source://erubi//lib/erubi.rb#4 +Erubi::VERSION = T.let(T.unsafe(nil), String) diff --git a/sorbet/rbi/gems/minitest-reporters@1.6.0.rbi b/sorbet/rbi/gems/minitest-reporters@1.6.1.rbi similarity index 96% rename from sorbet/rbi/gems/minitest-reporters@1.6.0.rbi rename to sorbet/rbi/gems/minitest-reporters@1.6.1.rbi index bcc1b1db..3dea314d 100644 --- a/sorbet/rbi/gems/minitest-reporters@1.6.0.rbi +++ b/sorbet/rbi/gems/minitest-reporters@1.6.1.rbi @@ -7,73 +7,79 @@ # source://minitest-reporters//lib/minitest/reporters.rb#3 module Minitest class << self - # source://minitest/5.18.0/lib/minitest.rb#173 + # source://minitest/5.20.0/lib/minitest.rb#176 def __run(reporter, options); end - # source://minitest/5.18.0/lib/minitest.rb#94 + # source://minitest/5.20.0/lib/minitest.rb#97 def after_run(&block); end - # source://minitest/5.18.0/lib/minitest.rb#66 + # source://minitest/5.20.0/lib/minitest.rb#19 + def allow_fork; end + + # source://minitest/5.20.0/lib/minitest.rb#19 + def allow_fork=(_arg0); end + + # source://minitest/5.20.0/lib/minitest.rb#69 def autorun; end - # source://minitest/5.18.0/lib/minitest.rb#19 + # source://minitest/5.20.0/lib/minitest.rb#19 def backtrace_filter; end - # source://minitest/5.18.0/lib/minitest.rb#19 + # source://minitest/5.20.0/lib/minitest.rb#19 def backtrace_filter=(_arg0); end - # source://minitest/5.18.0/lib/minitest.rb#18 + # source://minitest/5.20.0/lib/minitest.rb#18 def cattr_accessor(name); end - # source://minitest/5.18.0/lib/minitest.rb#1059 + # source://minitest/5.20.0/lib/minitest.rb#1102 def clock_time; end - # source://minitest/5.18.0/lib/minitest.rb#19 + # source://minitest/5.20.0/lib/minitest.rb#19 def extensions; end - # source://minitest/5.18.0/lib/minitest.rb#19 + # source://minitest/5.20.0/lib/minitest.rb#19 def extensions=(_arg0); end - # source://minitest/5.18.0/lib/minitest.rb#264 + # source://minitest/5.20.0/lib/minitest.rb#267 def filter_backtrace(bt); end - # source://minitest/5.18.0/lib/minitest.rb#19 + # source://minitest/5.20.0/lib/minitest.rb#19 def info_signal; end - # source://minitest/5.18.0/lib/minitest.rb#19 + # source://minitest/5.20.0/lib/minitest.rb#19 def info_signal=(_arg0); end - # source://minitest/5.18.0/lib/minitest.rb#98 + # source://minitest/5.20.0/lib/minitest.rb#101 def init_plugins(options); end - # source://minitest/5.18.0/lib/minitest.rb#105 + # source://minitest/5.20.0/lib/minitest.rb#108 def load_plugins; end - # source://minitest/5.18.0/lib/minitest.rb#19 + # source://minitest/5.20.0/lib/minitest.rb#19 def parallel_executor; end - # source://minitest/5.18.0/lib/minitest.rb#19 + # source://minitest/5.20.0/lib/minitest.rb#19 def parallel_executor=(_arg0); end - # source://minitest/5.18.0/lib/minitest.rb#186 + # source://minitest/5.20.0/lib/minitest.rb#189 def process_args(args = T.unsafe(nil)); end - # source://minitest/5.18.0/lib/minitest.rb#19 + # source://minitest/5.20.0/lib/minitest.rb#19 def reporter; end - # source://minitest/5.18.0/lib/minitest.rb#19 + # source://minitest/5.20.0/lib/minitest.rb#19 def reporter=(_arg0); end - # source://minitest/5.18.0/lib/minitest.rb#140 + # source://minitest/5.20.0/lib/minitest.rb#143 def run(args = T.unsafe(nil)); end - # source://minitest/5.18.0/lib/minitest.rb#1050 + # source://minitest/5.20.0/lib/minitest.rb#1093 def run_one_method(klass, method_name); end - # source://minitest/5.18.0/lib/minitest.rb#19 + # source://minitest/5.20.0/lib/minitest.rb#19 def seed; end - # source://minitest/5.18.0/lib/minitest.rb#19 + # source://minitest/5.20.0/lib/minitest.rb#19 def seed=(_arg0); end end end diff --git a/sorbet/rbi/gems/minitest@5.18.1.rbi b/sorbet/rbi/gems/minitest@5.20.0.rbi similarity index 84% rename from sorbet/rbi/gems/minitest@5.18.1.rbi rename to sorbet/rbi/gems/minitest@5.20.0.rbi index f68a238d..de27f9c6 100644 --- a/sorbet/rbi/gems/minitest@5.18.1.rbi +++ b/sorbet/rbi/gems/minitest@5.20.0.rbi @@ -12,7 +12,7 @@ module Minitest # Internal run method. Responsible for telling all Runnable # sub-classes to run. # - # source://minitest//lib/minitest.rb#173 + # source://minitest//lib/minitest.rb#176 def __run(reporter, options); end # A simple hook allowing you to run a block of code after everything @@ -20,12 +20,18 @@ module Minitest # # Minitest.after_run { p $debugging_info } # - # source://minitest//lib/minitest.rb#94 + # source://minitest//lib/minitest.rb#97 def after_run(&block); end + # source://minitest//lib/minitest.rb#19 + def allow_fork; end + + # source://minitest//lib/minitest.rb#19 + def allow_fork=(_arg0); end + # Registers Minitest to run at process exit # - # source://minitest//lib/minitest.rb#66 + # source://minitest//lib/minitest.rb#69 def autorun; end # source://minitest//lib/minitest.rb#19 @@ -37,7 +43,7 @@ module Minitest # source://minitest//lib/minitest.rb#18 def cattr_accessor(name); end - # source://minitest//lib/minitest.rb#1073 + # source://minitest//lib/minitest.rb#1102 def clock_time; end # source://minitest//lib/minitest.rb#19 @@ -46,7 +52,7 @@ module Minitest # source://minitest//lib/minitest.rb#19 def extensions=(_arg0); end - # source://minitest//lib/minitest.rb#264 + # source://minitest//lib/minitest.rb#267 def filter_backtrace(bt); end # source://minitest//lib/minitest.rb#19 @@ -55,10 +61,10 @@ module Minitest # source://minitest//lib/minitest.rb#19 def info_signal=(_arg0); end - # source://minitest//lib/minitest.rb#98 + # source://minitest//lib/minitest.rb#101 def init_plugins(options); end - # source://minitest//lib/minitest.rb#105 + # source://minitest//lib/minitest.rb#108 def load_plugins; end # source://minitest//lib/minitest.rb#19 @@ -67,7 +73,7 @@ module Minitest # source://minitest//lib/minitest.rb#19 def parallel_executor=(_arg0); end - # source://minitest//lib/minitest.rb#186 + # source://minitest//lib/minitest.rb#189 def process_args(args = T.unsafe(nil)); end # source://minitest//lib/minitest.rb#19 @@ -92,10 +98,10 @@ module Minitest # Minitest.run_one_method(klass, runnable_method) # klass.new(runnable_method).run # - # source://minitest//lib/minitest.rb#140 + # source://minitest//lib/minitest.rb#143 def run(args = T.unsafe(nil)); end - # source://minitest//lib/minitest.rb#1064 + # source://minitest//lib/minitest.rb#1093 def run_one_method(klass, method_name); end # source://minitest//lib/minitest.rb#19 @@ -109,7 +115,7 @@ end # Defines the API for Reporters. Subclass this and override whatever # you want. Go nuts. # -# source://minitest//lib/minitest.rb#592 +# source://minitest//lib/minitest.rb#621 class Minitest::AbstractReporter include ::Mutex_m @@ -123,13 +129,13 @@ class Minitest::AbstractReporter # # @return [Boolean] # - # source://minitest//lib/minitest.rb#626 + # source://minitest//lib/minitest.rb#655 def passed?; end # About to start running a test. This allows a reporter to show # that it is starting or that we are in the middle of a test run. # - # source://minitest//lib/minitest.rb#605 + # source://minitest//lib/minitest.rb#634 def prerecord(klass, name); end # Output and record the result of the test. Call @@ -137,17 +143,17 @@ class Minitest::AbstractReporter # result character string. Stores the result of the run if the run # did not pass. # - # source://minitest//lib/minitest.rb#614 + # source://minitest//lib/minitest.rb#643 def record(result); end # Outputs the summary of the run. # - # source://minitest//lib/minitest.rb#620 + # source://minitest//lib/minitest.rb#649 def report; end # Starts reporting on the run. # - # source://minitest//lib/minitest.rb#598 + # source://minitest//lib/minitest.rb#627 def start; end # source://mutex_m/0.1.2/mutex_m.rb#78 @@ -162,20 +168,20 @@ end # Represents run failures. # -# source://minitest//lib/minitest.rb#909 +# source://minitest//lib/minitest.rb#938 class Minitest::Assertion < ::Exception - # source://minitest//lib/minitest.rb#910 + # source://minitest//lib/minitest.rb#939 def error; end # Where was this run before an assertion was raised? # - # source://minitest//lib/minitest.rb#917 + # source://minitest//lib/minitest.rb#946 def location; end - # source://minitest//lib/minitest.rb#926 + # source://minitest//lib/minitest.rb#955 def result_code; end - # source://minitest//lib/minitest.rb#930 + # source://minitest//lib/minitest.rb#959 def result_label; end end @@ -618,60 +624,60 @@ Minitest::Assertions::UNDEFINED = T.let(T.unsafe(nil), Object) # # See Minitest.backtrace_filter=. # -# source://minitest//lib/minitest.rb#1041 +# source://minitest//lib/minitest.rb#1070 class Minitest::BacktraceFilter # Filter +bt+ to something useful. Returns the whole thing if # $DEBUG (ruby) or $MT_DEBUG (env). # - # source://minitest//lib/minitest.rb#1049 + # source://minitest//lib/minitest.rb#1078 def filter(bt); end end -# source://minitest//lib/minitest.rb#1043 +# source://minitest//lib/minitest.rb#1072 Minitest::BacktraceFilter::MT_RE = T.let(T.unsafe(nil), Regexp) # Dispatch to multiple reporters as one. # -# source://minitest//lib/minitest.rb#858 +# source://minitest//lib/minitest.rb#887 class Minitest::CompositeReporter < ::Minitest::AbstractReporter # @return [CompositeReporter] a new instance of CompositeReporter # - # source://minitest//lib/minitest.rb#864 + # source://minitest//lib/minitest.rb#893 def initialize(*reporters); end # Add another reporter to the mix. # - # source://minitest//lib/minitest.rb#876 + # source://minitest//lib/minitest.rb#905 def <<(reporter); end - # source://minitest//lib/minitest.rb#869 + # source://minitest//lib/minitest.rb#898 def io; end # @return [Boolean] # - # source://minitest//lib/minitest.rb#880 + # source://minitest//lib/minitest.rb#909 def passed?; end - # source://minitest//lib/minitest.rb#888 + # source://minitest//lib/minitest.rb#917 def prerecord(klass, name); end - # source://minitest//lib/minitest.rb#895 + # source://minitest//lib/minitest.rb#924 def record(result); end - # source://minitest//lib/minitest.rb#901 + # source://minitest//lib/minitest.rb#930 def report; end # The list of reporters to dispatch to. # - # source://minitest//lib/minitest.rb#862 + # source://minitest//lib/minitest.rb#891 def reporters; end # The list of reporters to dispatch to. # - # source://minitest//lib/minitest.rb#862 + # source://minitest//lib/minitest.rb#891 def reporters=(_arg0); end - # source://minitest//lib/minitest.rb#884 + # source://minitest//lib/minitest.rb#913 def start; end end @@ -689,48 +695,48 @@ end # # ... lots of test methods ... # end # -# source://minitest//lib/minitest.rb#985 +# source://minitest//lib/minitest.rb#1014 module Minitest::Guard # Is this running on jruby? # # @return [Boolean] # - # source://minitest//lib/minitest.rb#990 + # source://minitest//lib/minitest.rb#1019 def jruby?(platform = T.unsafe(nil)); end # Is this running on maglev? # # @return [Boolean] # - # source://minitest//lib/minitest.rb#997 + # source://minitest//lib/minitest.rb#1026 def maglev?(platform = T.unsafe(nil)); end # Is this running on mri? # # @return [Boolean] # - # source://minitest//lib/minitest.rb#1007 + # source://minitest//lib/minitest.rb#1036 def mri?(platform = T.unsafe(nil)); end # Is this running on macOS? # # @return [Boolean] # - # source://minitest//lib/minitest.rb#1014 + # source://minitest//lib/minitest.rb#1043 def osx?(platform = T.unsafe(nil)); end # Is this running on rubinius? # # @return [Boolean] # - # source://minitest//lib/minitest.rb#1021 + # source://minitest//lib/minitest.rb#1050 def rubinius?(platform = T.unsafe(nil)); end # Is this running on windows? # # @return [Boolean] # - # source://minitest//lib/minitest.rb#1031 + # source://minitest//lib/minitest.rb#1060 def windows?(platform = T.unsafe(nil)); end end @@ -793,36 +799,36 @@ end # plugin, pull this out of the composite and replace it with your # own. # -# source://minitest//lib/minitest.rb#657 +# source://minitest//lib/minitest.rb#686 class Minitest::ProgressReporter < ::Minitest::Reporter - # source://minitest//lib/minitest.rb#658 + # source://minitest//lib/minitest.rb#687 def prerecord(klass, name); end - # source://minitest//lib/minitest.rb#665 + # source://minitest//lib/minitest.rb#694 def record(result); end end # Shared code for anything that can get passed to a Reporter. See # Minitest::Test & Minitest::Result. # -# source://minitest//lib/minitest.rb#489 +# source://minitest//lib/minitest.rb#517 module Minitest::Reportable # @raise [NotImplementedError] # - # source://minitest//lib/minitest.rb#509 + # source://minitest//lib/minitest.rb#537 def class_name; end # Did this run error? # # @return [Boolean] # - # source://minitest//lib/minitest.rb#530 + # source://minitest//lib/minitest.rb#558 def error?; end # The location identifier of this test. Depends on a method # existing called class_name. # - # source://minitest//lib/minitest.rb#504 + # source://minitest//lib/minitest.rb#532 def location; end # Did this run pass? @@ -832,47 +838,47 @@ module Minitest::Reportable # # @return [Boolean] # - # source://minitest//lib/minitest.rb#496 + # source://minitest//lib/minitest.rb#524 def passed?; end # Returns ".", "F", or "E" based on the result of the run. # - # source://minitest//lib/minitest.rb#516 + # source://minitest//lib/minitest.rb#544 def result_code; end # Was this run skipped? # # @return [Boolean] # - # source://minitest//lib/minitest.rb#523 + # source://minitest//lib/minitest.rb#551 def skipped?; end end -# source://minitest//lib/minitest.rb#633 +# source://minitest//lib/minitest.rb#662 class Minitest::Reporter < ::Minitest::AbstractReporter # @return [Reporter] a new instance of Reporter # - # source://minitest//lib/minitest.rb#642 + # source://minitest//lib/minitest.rb#671 def initialize(io = T.unsafe(nil), options = T.unsafe(nil)); end # The IO used to report. # - # source://minitest//lib/minitest.rb#635 + # source://minitest//lib/minitest.rb#664 def io; end # The IO used to report. # - # source://minitest//lib/minitest.rb#635 + # source://minitest//lib/minitest.rb#664 def io=(_arg0); end # Command-line options for this run. # - # source://minitest//lib/minitest.rb#640 + # source://minitest//lib/minitest.rb#669 def options; end # Command-line options for this run. # - # source://minitest//lib/minitest.rb#640 + # source://minitest//lib/minitest.rb#669 def options=(_arg0); end end @@ -882,90 +888,112 @@ end # blow up. By using Result.from(a_test) you can be reasonably sure # that the test result can be marshalled. # -# source://minitest//lib/minitest.rb#542 +# source://minitest//lib/minitest.rb#570 class Minitest::Result < ::Minitest::Runnable include ::Minitest::Reportable - # source://minitest//lib/minitest.rb#575 + # source://minitest//lib/minitest.rb#604 def class_name; end # The class name of the test result. # - # source://minitest//lib/minitest.rb#551 + # source://minitest//lib/minitest.rb#579 def klass; end # The class name of the test result. # - # source://minitest//lib/minitest.rb#551 + # source://minitest//lib/minitest.rb#579 def klass=(_arg0); end # The location of the test method. # - # source://minitest//lib/minitest.rb#556 + # source://minitest//lib/minitest.rb#584 def source_location; end # The location of the test method. # - # source://minitest//lib/minitest.rb#556 + # source://minitest//lib/minitest.rb#584 def source_location=(_arg0); end - # source://minitest//lib/minitest.rb#579 + # source://minitest//lib/minitest.rb#608 def to_s; end class << self # Create a new test result from a Runnable instance. # - # source://minitest//lib/minitest.rb#561 + # source://minitest//lib/minitest.rb#589 def from(runnable); end end end # re-open # -# source://minitest//lib/minitest.rb#277 +# source://minitest//lib/minitest.rb#280 class Minitest::Runnable # @return [Runnable] a new instance of Runnable # - # source://minitest//lib/minitest.rb#445 + # source://minitest//lib/minitest.rb#448 def initialize(name); end # Number of assertions executed in this run. # - # source://minitest//lib/minitest.rb#281 + # source://minitest//lib/minitest.rb#284 def assertions; end # Number of assertions executed in this run. # - # source://minitest//lib/minitest.rb#281 + # source://minitest//lib/minitest.rb#284 def assertions=(_arg0); end - # source://minitest//lib/minitest.rb#441 + # source://minitest//lib/minitest.rb#444 def failure; end # An assertion raised during the run, if any. # - # source://minitest//lib/minitest.rb#286 + # source://minitest//lib/minitest.rb#289 def failures; end # An assertion raised during the run, if any. # - # source://minitest//lib/minitest.rb#286 + # source://minitest//lib/minitest.rb#289 def failures=(_arg0); end - # source://minitest//lib/minitest.rb#427 + # source://minitest//lib/minitest.rb#430 def marshal_dump; end - # source://minitest//lib/minitest.rb#437 + # source://minitest//lib/minitest.rb#440 def marshal_load(ary); end + # Metadata you attach to the test results that get sent to the reporter. + # + # Lazily initializes to a hash, to keep memory down. + # + # NOTE: this data *must* be plain (read: marshal-able) data! + # Hashes! Arrays! Strings! + # + # source://minitest//lib/minitest.rb#463 + def metadata; end + + # Sets metadata, mainly used for +Result.from+. + # + # source://minitest//lib/minitest.rb#470 + def metadata=(_arg0); end + + # Returns true if metadata exists. + # + # @return [Boolean] + # + # source://minitest//lib/minitest.rb#475 + def metadata?; end + # Name of the run. # - # source://minitest//lib/minitest.rb#304 + # source://minitest//lib/minitest.rb#307 def name; end # Set the name of the run. # - # source://minitest//lib/minitest.rb#311 + # source://minitest//lib/minitest.rb#314 def name=(o); end # Did this run pass? @@ -976,7 +1004,7 @@ class Minitest::Runnable # @raise [NotImplementedError] # @return [Boolean] # - # source://minitest//lib/minitest.rb#464 + # source://minitest//lib/minitest.rb#492 def passed?; end # Returns a single character string to print based on the result @@ -985,14 +1013,14 @@ class Minitest::Runnable # # @raise [NotImplementedError] # - # source://minitest//lib/minitest.rb#473 + # source://minitest//lib/minitest.rb#501 def result_code; end # Runs a single method. Needs to return self. # # @raise [NotImplementedError] # - # source://minitest//lib/minitest.rb#454 + # source://minitest//lib/minitest.rb#482 def run; end # Was this run skipped? See #passed? for more information. @@ -1000,42 +1028,42 @@ class Minitest::Runnable # @raise [NotImplementedError] # @return [Boolean] # - # source://minitest//lib/minitest.rb#480 + # source://minitest//lib/minitest.rb#508 def skipped?; end # The time it took to run. # - # source://minitest//lib/minitest.rb#291 + # source://minitest//lib/minitest.rb#294 def time; end # The time it took to run. # - # source://minitest//lib/minitest.rb#291 + # source://minitest//lib/minitest.rb#294 def time=(_arg0); end - # source://minitest//lib/minitest.rb#293 + # source://minitest//lib/minitest.rb#296 def time_it; end class << self - # source://minitest//lib/minitest.rb#1083 + # source://minitest//lib/minitest.rb#1112 def inherited(klass); end # Returns all instance methods matching the pattern +re+. # - # source://minitest//lib/minitest.rb#318 + # source://minitest//lib/minitest.rb#321 def methods_matching(re); end - # source://minitest//lib/minitest.rb#397 + # source://minitest//lib/minitest.rb#400 def on_signal(name, action); end - # source://minitest//lib/minitest.rb#322 + # source://minitest//lib/minitest.rb#325 def reset; end # Responsible for running all runnable methods in a given class, # each in its own instance. Each instance is passed to the # reporter to record. # - # source://minitest//lib/minitest.rb#333 + # source://minitest//lib/minitest.rb#336 def run(reporter, options = T.unsafe(nil)); end # Runs a single method and has the reporter record the result. @@ -1043,7 +1071,7 @@ class Minitest::Runnable # that subclasses can specialize the running of an individual # test. See Minitest::ParallelTest::ClassMethods for an example. # - # source://minitest//lib/minitest.rb#369 + # source://minitest//lib/minitest.rb#372 def run_one_method(klass, method_name, reporter); end # Each subclass of Runnable is responsible for overriding this @@ -1051,33 +1079,33 @@ class Minitest::Runnable # # @raise [NotImplementedError] # - # source://minitest//lib/minitest.rb#414 + # source://minitest//lib/minitest.rb#417 def runnable_methods; end # Returns all subclasses of Runnable. # - # source://minitest//lib/minitest.rb#421 + # source://minitest//lib/minitest.rb#424 def runnables; end # Defines the order to run tests (:random by default). Override # this or use a convenience method to change it for your tests. # - # source://minitest//lib/minitest.rb#378 + # source://minitest//lib/minitest.rb#381 def test_order; end - # source://minitest//lib/minitest.rb#382 + # source://minitest//lib/minitest.rb#385 def with_info_handler(reporter, &block); end end end -# source://minitest//lib/minitest.rb#395 +# source://minitest//lib/minitest.rb#398 Minitest::Runnable::SIGNALS = T.let(T.unsafe(nil), Hash) # Assertion raised when skipping a run. # -# source://minitest//lib/minitest.rb#938 +# source://minitest//lib/minitest.rb#967 class Minitest::Skip < ::Minitest::Assertion - # source://minitest//lib/minitest.rb#939 + # source://minitest//lib/minitest.rb#968 def result_label; end end @@ -1101,113 +1129,113 @@ end # end # end # -# source://minitest//lib/minitest.rb#693 +# source://minitest//lib/minitest.rb#722 class Minitest::StatisticsReporter < ::Minitest::Reporter # @return [StatisticsReporter] a new instance of StatisticsReporter # - # source://minitest//lib/minitest.rb#737 + # source://minitest//lib/minitest.rb#766 def initialize(io = T.unsafe(nil), options = T.unsafe(nil)); end # Total number of assertions. # - # source://minitest//lib/minitest.rb#697 + # source://minitest//lib/minitest.rb#726 def assertions; end # Total number of assertions. # - # source://minitest//lib/minitest.rb#697 + # source://minitest//lib/minitest.rb#726 def assertions=(_arg0); end # Total number of test cases. # - # source://minitest//lib/minitest.rb#702 + # source://minitest//lib/minitest.rb#731 def count; end # Total number of test cases. # - # source://minitest//lib/minitest.rb#702 + # source://minitest//lib/minitest.rb#731 def count=(_arg0); end # Total number of tests that erred. # - # source://minitest//lib/minitest.rb#730 + # source://minitest//lib/minitest.rb#759 def errors; end # Total number of tests that erred. # - # source://minitest//lib/minitest.rb#730 + # source://minitest//lib/minitest.rb#759 def errors=(_arg0); end # Total number of tests that failed. # - # source://minitest//lib/minitest.rb#725 + # source://minitest//lib/minitest.rb#754 def failures; end # Total number of tests that failed. # - # source://minitest//lib/minitest.rb#725 + # source://minitest//lib/minitest.rb#754 def failures=(_arg0); end # @return [Boolean] # - # source://minitest//lib/minitest.rb#750 + # source://minitest//lib/minitest.rb#779 def passed?; end - # source://minitest//lib/minitest.rb#758 + # source://minitest//lib/minitest.rb#787 def record(result); end # Report on the tracked statistics. # - # source://minitest//lib/minitest.rb#768 + # source://minitest//lib/minitest.rb#797 def report; end # An +Array+ of test cases that failed or were skipped. # - # source://minitest//lib/minitest.rb#707 + # source://minitest//lib/minitest.rb#736 def results; end # An +Array+ of test cases that failed or were skipped. # - # source://minitest//lib/minitest.rb#707 + # source://minitest//lib/minitest.rb#736 def results=(_arg0); end # Total number of tests that where skipped. # - # source://minitest//lib/minitest.rb#735 + # source://minitest//lib/minitest.rb#764 def skips; end # Total number of tests that where skipped. # - # source://minitest//lib/minitest.rb#735 + # source://minitest//lib/minitest.rb#764 def skips=(_arg0); end - # source://minitest//lib/minitest.rb#754 + # source://minitest//lib/minitest.rb#783 def start; end # Time the test run started. If available, the monotonic clock is # used and this is a +Float+, otherwise it's an instance of # +Time+. # - # source://minitest//lib/minitest.rb#714 + # source://minitest//lib/minitest.rb#743 def start_time; end # Time the test run started. If available, the monotonic clock is # used and this is a +Float+, otherwise it's an instance of # +Time+. # - # source://minitest//lib/minitest.rb#714 + # source://minitest//lib/minitest.rb#743 def start_time=(_arg0); end # Test run time. If available, the monotonic clock is used and # this is a +Float+, otherwise it's an instance of +Time+. # - # source://minitest//lib/minitest.rb#720 + # source://minitest//lib/minitest.rb#749 def total_time; end # Test run time. If available, the monotonic clock is used and # this is a +Float+, otherwise it's an instance of +Time+. # - # source://minitest//lib/minitest.rb#720 + # source://minitest//lib/minitest.rb#749 def total_time=(_arg0); end end @@ -1219,48 +1247,48 @@ end # plugin, pull this out of the composite and replace it with your # own. # -# source://minitest//lib/minitest.rb#788 +# source://minitest//lib/minitest.rb#817 class Minitest::SummaryReporter < ::Minitest::StatisticsReporter - # source://minitest//lib/minitest.rb#823 + # source://minitest//lib/minitest.rb#852 def aggregated_results(io); end # Returns the value of attribute old_sync. # - # source://minitest//lib/minitest.rb#791 + # source://minitest//lib/minitest.rb#820 def old_sync; end # Sets the attribute old_sync # # @param value the value to set the attribute old_sync to. # - # source://minitest//lib/minitest.rb#791 + # source://minitest//lib/minitest.rb#820 def old_sync=(_arg0); end - # source://minitest//lib/minitest.rb#806 + # source://minitest//lib/minitest.rb#835 def report; end # :startdoc: # - # source://minitest//lib/minitest.rb#794 + # source://minitest//lib/minitest.rb#823 def start; end - # source://minitest//lib/minitest.rb#818 + # source://minitest//lib/minitest.rb#847 def statistics; end - # source://minitest//lib/minitest.rb#843 + # source://minitest//lib/minitest.rb#872 def summary; end # :stopdoc: # - # source://minitest//lib/minitest.rb#790 + # source://minitest//lib/minitest.rb#819 def sync; end # :stopdoc: # - # source://minitest//lib/minitest.rb#790 + # source://minitest//lib/minitest.rb#819 def sync=(_arg0); end - # source://minitest//lib/minitest.rb#839 + # source://minitest//lib/minitest.rb#868 def to_s; end end @@ -1398,7 +1426,7 @@ module Minitest::Test::LifecycleHooks # end # end # - # class MiniTest::Test + # class Minitest::Test # include MyMinitestPlugin # end # @@ -1438,54 +1466,32 @@ Minitest::Test::TEARDOWN_METHODS = T.let(T.unsafe(nil), Array) # Assertion wrapping an unexpected error that was raised during a run. # -# source://minitest//lib/minitest.rb#947 +# source://minitest//lib/minitest.rb#976 class Minitest::UnexpectedError < ::Minitest::Assertion # @return [UnexpectedError] a new instance of UnexpectedError # - # source://minitest//lib/minitest.rb#951 + # source://minitest//lib/minitest.rb#980 def initialize(error); end - # source://minitest//lib/minitest.rb#956 + # source://minitest//lib/minitest.rb#985 def backtrace; end # TODO: figure out how to use `cause` instead # - # source://minitest//lib/minitest.rb#949 + # source://minitest//lib/minitest.rb#978 def error; end # TODO: figure out how to use `cause` instead # - # source://minitest//lib/minitest.rb#949 + # source://minitest//lib/minitest.rb#978 def error=(_arg0); end - # source://minitest//lib/minitest.rb#960 + # source://minitest//lib/minitest.rb#989 def message; end - # source://minitest//lib/minitest.rb#965 + # source://minitest//lib/minitest.rb#994 def result_label; end end -# source://minitest//lib/minitest/unit.rb#20 -class Minitest::Unit - class << self - # source://minitest//lib/minitest/unit.rb#36 - def after_tests(&b); end - - # source://minitest//lib/minitest/unit.rb#30 - def autorun; end - end -end - -# source://minitest//lib/minitest/unit.rb#22 -class Minitest::Unit::TestCase < ::Minitest::Test - class << self - # source://minitest//lib/minitest/unit.rb#23 - def inherited(klass); end - end -end - -# source://minitest//lib/minitest/unit.rb#21 -Minitest::Unit::VERSION = T.let(T.unsafe(nil), String) - # source://minitest//lib/minitest.rb#12 Minitest::VERSION = T.let(T.unsafe(nil), String) diff --git a/sorbet/rbi/gems/parser@3.2.2.3.rbi b/sorbet/rbi/gems/parser@3.2.2.4.rbi similarity index 98% rename from sorbet/rbi/gems/parser@3.2.2.3.rbi rename to sorbet/rbi/gems/parser@3.2.2.4.rbi index 79fb0cf0..ac559e2e 100644 --- a/sorbet/rbi/gems/parser@3.2.2.3.rbi +++ b/sorbet/rbi/gems/parser@3.2.2.4.rbi @@ -1291,184 +1291,184 @@ class Parser::Builders::Default private - # source://parser//lib/parser/builders/default.rb#1798 + # source://parser//lib/parser/builders/default.rb#1808 def arg_name_collides?(this_name, that_name); end - # source://parser//lib/parser/builders/default.rb#1994 + # source://parser//lib/parser/builders/default.rb#2004 def arg_prefix_map(op_t, name_t = T.unsafe(nil)); end - # source://parser//lib/parser/builders/default.rb#1968 + # source://parser//lib/parser/builders/default.rb#1978 def binary_op_map(left_e, op_t, right_e); end - # source://parser//lib/parser/builders/default.rb#2096 + # source://parser//lib/parser/builders/default.rb#2106 def block_map(receiver_l, begin_t, end_t); end - # source://parser//lib/parser/builders/default.rb#1773 + # source://parser//lib/parser/builders/default.rb#1783 def check_assignment_to_numparam(name, loc); end # source://parser//lib/parser/builders/default.rb#1675 def check_condition(cond); end - # source://parser//lib/parser/builders/default.rb#1744 + # source://parser//lib/parser/builders/default.rb#1754 def check_duplicate_arg(this_arg, map = T.unsafe(nil)); end - # source://parser//lib/parser/builders/default.rb#1719 + # source://parser//lib/parser/builders/default.rb#1729 def check_duplicate_args(args, map = T.unsafe(nil)); end - # source://parser//lib/parser/builders/default.rb#1831 + # source://parser//lib/parser/builders/default.rb#1841 def check_duplicate_pattern_key(name, loc); end - # source://parser//lib/parser/builders/default.rb#1821 + # source://parser//lib/parser/builders/default.rb#1831 def check_duplicate_pattern_variable(name, loc); end - # source://parser//lib/parser/builders/default.rb#1813 + # source://parser//lib/parser/builders/default.rb#1823 def check_lvar_name(name, loc); end - # source://parser//lib/parser/builders/default.rb#1788 + # source://parser//lib/parser/builders/default.rb#1798 def check_reserved_for_numparam(name, loc); end - # source://parser//lib/parser/builders/default.rb#2253 + # source://parser//lib/parser/builders/default.rb#2263 def collapse_string_parts?(parts); end - # source://parser//lib/parser/builders/default.rb#1919 + # source://parser//lib/parser/builders/default.rb#1929 def collection_map(begin_t, parts, end_t); end - # source://parser//lib/parser/builders/default.rb#2123 + # source://parser//lib/parser/builders/default.rb#2133 def condition_map(keyword_t, cond_e, begin_t, body_e, else_t, else_e, end_t); end - # source://parser//lib/parser/builders/default.rb#1954 + # source://parser//lib/parser/builders/default.rb#1964 def constant_map(scope, colon2_t, name_t); end - # source://parser//lib/parser/builders/default.rb#2027 + # source://parser//lib/parser/builders/default.rb#2037 def definition_map(keyword_t, operator_t, name_t, end_t); end - # source://parser//lib/parser/builders/default.rb#1860 + # source://parser//lib/parser/builders/default.rb#1870 def delimited_string_map(string_t); end - # source://parser//lib/parser/builders/default.rb#2275 + # source://parser//lib/parser/builders/default.rb#2285 def diagnostic(type, reason, arguments, location, highlights = T.unsafe(nil)); end - # source://parser//lib/parser/builders/default.rb#2167 + # source://parser//lib/parser/builders/default.rb#2177 def eh_keyword_map(compstmt_e, keyword_t, body_es, else_t, else_e); end - # source://parser//lib/parser/builders/default.rb#2033 + # source://parser//lib/parser/builders/default.rb#2043 def endless_definition_map(keyword_t, operator_t, name_t, assignment_t, body_e); end - # source://parser//lib/parser/builders/default.rb#1915 + # source://parser//lib/parser/builders/default.rb#1925 def expr_map(loc); end - # source://parser//lib/parser/builders/default.rb#2148 + # source://parser//lib/parser/builders/default.rb#2158 def for_map(keyword_t, in_t, begin_t, end_t); end - # source://parser//lib/parser/builders/default.rb#2195 + # source://parser//lib/parser/builders/default.rb#2205 def guard_map(keyword_t, guard_body_e); end - # source://parser//lib/parser/builders/default.rb#2085 + # source://parser//lib/parser/builders/default.rb#2095 def index_map(receiver_e, lbrack_t, rbrack_t); end - # source://parser//lib/parser/builders/default.rb#1851 + # source://parser//lib/parser/builders/default.rb#1861 def join_exprs(left_expr, right_expr); end - # source://parser//lib/parser/builders/default.rb#2101 + # source://parser//lib/parser/builders/default.rb#2111 def keyword_map(keyword_t, begin_t, args, end_t); end - # source://parser//lib/parser/builders/default.rb#2118 + # source://parser//lib/parser/builders/default.rb#2128 def keyword_mod_map(pre_e, keyword_t, post_e); end - # source://parser//lib/parser/builders/default.rb#2004 + # source://parser//lib/parser/builders/default.rb#2014 def kwarg_map(name_t, value_e = T.unsafe(nil)); end - # source://parser//lib/parser/builders/default.rb#2306 + # source://parser//lib/parser/builders/default.rb#2316 def kwargs?(node); end - # source://parser//lib/parser/builders/default.rb#2270 + # source://parser//lib/parser/builders/default.rb#2280 def loc(token); end - # source://parser//lib/parser/builders/default.rb#2017 + # source://parser//lib/parser/builders/default.rb#2027 def module_definition_map(keyword_t, name_e, operator_t, end_t); end - # source://parser//lib/parser/builders/default.rb#1843 + # source://parser//lib/parser/builders/default.rb#1853 def n(type, children, source_map); end - # source://parser//lib/parser/builders/default.rb#1847 + # source://parser//lib/parser/builders/default.rb#1857 def n0(type, source_map); end # source://parser//lib/parser/builders/default.rb#288 def numeric(kind, token); end - # source://parser//lib/parser/builders/default.rb#1885 + # source://parser//lib/parser/builders/default.rb#1895 def pair_keyword_map(key_t, value_e); end - # source://parser//lib/parser/builders/default.rb#1900 + # source://parser//lib/parser/builders/default.rb#1910 def pair_quoted_map(begin_t, end_t, value_e); end - # source://parser//lib/parser/builders/default.rb#1871 + # source://parser//lib/parser/builders/default.rb#1881 def prefix_string_map(symbol); end - # source://parser//lib/parser/builders/default.rb#1982 + # source://parser//lib/parser/builders/default.rb#1992 def range_map(start_e, op_t, end_e); end - # source://parser//lib/parser/builders/default.rb#1949 + # source://parser//lib/parser/builders/default.rb#1959 def regexp_map(begin_t, end_t, options_e); end - # source://parser//lib/parser/builders/default.rb#2154 + # source://parser//lib/parser/builders/default.rb#2164 def rescue_body_map(keyword_t, exc_list_e, assoc_t, exc_var_e, then_t, compstmt_e); end - # source://parser//lib/parser/builders/default.rb#2296 + # source://parser//lib/parser/builders/default.rb#2306 def rewrite_hash_args_to_kwargs(args); end - # source://parser//lib/parser/builders/default.rb#2067 + # source://parser//lib/parser/builders/default.rb#2077 def send_binary_op_map(lhs_e, selector_t, rhs_e); end - # source://parser//lib/parser/builders/default.rb#2090 + # source://parser//lib/parser/builders/default.rb#2100 def send_index_map(receiver_e, lbrack_t, rbrack_t); end - # source://parser//lib/parser/builders/default.rb#2041 + # source://parser//lib/parser/builders/default.rb#2051 def send_map(receiver_e, dot_t, selector_t, begin_t = T.unsafe(nil), args = T.unsafe(nil), end_t = T.unsafe(nil)); end - # source://parser//lib/parser/builders/default.rb#2073 + # source://parser//lib/parser/builders/default.rb#2083 def send_unary_op_map(selector_t, arg_e); end - # source://parser//lib/parser/builders/default.rb#2226 + # source://parser//lib/parser/builders/default.rb#2236 def static_regexp(parts, options); end - # source://parser//lib/parser/builders/default.rb#2246 + # source://parser//lib/parser/builders/default.rb#2256 def static_regexp_node(node); end - # source://parser//lib/parser/builders/default.rb#2209 + # source://parser//lib/parser/builders/default.rb#2219 def static_string(nodes); end - # source://parser//lib/parser/builders/default.rb#1935 + # source://parser//lib/parser/builders/default.rb#1945 def string_map(begin_t, parts, end_t); end - # source://parser//lib/parser/builders/default.rb#2262 + # source://parser//lib/parser/builders/default.rb#2272 def string_value(token); end - # source://parser//lib/parser/builders/default.rb#2143 + # source://parser//lib/parser/builders/default.rb#2153 def ternary_map(begin_e, question_t, mid_e, colon_t, end_e); end - # source://parser//lib/parser/builders/default.rb#1856 + # source://parser//lib/parser/builders/default.rb#1866 def token_map(token); end - # source://parser//lib/parser/builders/default.rb#1972 + # source://parser//lib/parser/builders/default.rb#1982 def unary_op_map(op_t, arg_e = T.unsafe(nil)); end - # source://parser//lib/parser/builders/default.rb#1880 + # source://parser//lib/parser/builders/default.rb#1890 def unquoted_map(token); end - # source://parser//lib/parser/builders/default.rb#2284 + # source://parser//lib/parser/builders/default.rb#2294 def validate_definee(definee); end - # source://parser//lib/parser/builders/default.rb#1758 + # source://parser//lib/parser/builders/default.rb#1768 def validate_no_forward_arg_after_restarg(args); end - # source://parser//lib/parser/builders/default.rb#2258 + # source://parser//lib/parser/builders/default.rb#2268 def value(token); end - # source://parser//lib/parser/builders/default.rb#2061 + # source://parser//lib/parser/builders/default.rb#2071 def var_send_map(variable_e); end - # source://parser//lib/parser/builders/default.rb#1964 + # source://parser//lib/parser/builders/default.rb#1974 def variable_map(name_t); end class << self @@ -3650,7 +3650,7 @@ class Parser::Source::Comment::Associator # source://parser//lib/parser/source/comment/associator.rb#115 def associate_by_identity; end - # source://parser//lib/parser/source/comment/associator.rb#103 + # source://parser//lib/parser/source/comment/associator.rb#104 def associate_locations; end # source://parser//lib/parser/source/comment/associator.rb#46 diff --git a/sorbet/rbi/gems/prism@0.17.1.rbi b/sorbet/rbi/gems/prism@0.19.0.rbi similarity index 78% rename from sorbet/rbi/gems/prism@0.17.1.rbi rename to sorbet/rbi/gems/prism@0.19.0.rbi index 3930100e..901807f8 100644 --- a/sorbet/rbi/gems/prism@0.17.1.rbi +++ b/sorbet/rbi/gems/prism@0.19.0.rbi @@ -28,15 +28,15 @@ module Prism def lex(*_arg0); end # :call-seq: - # Prism::lex_compat(source, **options) -> Array + # Prism::lex_compat(source, **options) -> ParseResult # - # Returns an array of tokens that closely resembles that of the Ripper lexer. - # The only difference is that since we don't keep track of lexer state in the - # same way, it's going to always return the NONE state. + # Returns a parse result whose value is an array of tokens that closely + # resembles the return value of Ripper::lex. The main difference is that the + # `:on_sp` token is not emitted. # # For supported options, see Prism::parse. # - # source://prism//lib/prism.rb#45 + # source://prism//lib/prism.rb#46 def lex_compat(source, **options); end # Mirror the Prism.lex_file API by using the serialization API. @@ -49,7 +49,7 @@ module Prism # returns the same tokens. Raises SyntaxError if the syntax in source is # invalid. # - # source://prism//lib/prism.rb#55 + # source://prism//lib/prism.rb#56 def lex_ripper(source); end # :call-seq: @@ -57,7 +57,7 @@ module Prism # # Load the serialized AST using the source as a reference into a tree. # - # source://prism//lib/prism.rb#63 + # source://prism//lib/prism.rb#64 def load(source, serialized); end # Mirror the Prism.parse API by using the serialization API. @@ -66,6 +66,16 @@ module Prism # Mirror the Prism.parse_comments API by using the serialization API. def parse_comments(*_arg0); end + # :call-seq: + # Prism::parse_failure?(source, **options) -> bool + # + # Returns true if the source parses with errors. + # + # @return [Boolean] + # + # source://prism//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. @@ -76,11 +86,31 @@ module Prism # to use mmap when it is available. def parse_file_comments(*_arg0); end + # :call-seq: + # Prism::parse_file_failure?(filepath, **options) -> bool + # + # Returns true if the file at filepath parses with errors. + # + # @return [Boolean] + # + # source://prism//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 @@ -89,13 +119,13 @@ end # alias $foo $bar # ^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#47 +# source://prism//lib/prism/node.rb#52 class Prism::AliasGlobalVariableNode < ::Prism::Node # def initialize: (new_name: Node, old_name: Node, keyword_loc: Location, location: Location) -> void # # @return [AliasGlobalVariableNode] a new instance of AliasGlobalVariableNode # - # source://prism//lib/prism/node.rb#58 + # source://prism//lib/prism/node.rb#63 sig do params( new_name: Prism::Node, @@ -108,42 +138,42 @@ class Prism::AliasGlobalVariableNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#66 + # source://prism//lib/prism/node.rb#71 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#71 + # source://prism//lib/prism/node.rb#76 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#81 + # source://prism//lib/prism/node.rb#86 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#76 + # source://prism//lib/prism/node.rb#81 def compact_child_nodes; end # def copy: (**params) -> AliasGlobalVariableNode # - # source://prism//lib/prism/node.rb#86 + # source://prism//lib/prism/node.rb#91 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//lib/prism/node.rb#71 + # source://prism//lib/prism/node.rb#76 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#99 + # source://prism//lib/prism/node.rb#104 sig do params( keys: T::Array[Symbol] @@ -153,30 +183,30 @@ class Prism::AliasGlobalVariableNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#109 + # source://prism//lib/prism/node.rb#114 def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#104 + # source://prism//lib/prism/node.rb#109 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#55 + # source://prism//lib/prism/node.rb#60 sig { returns(Prism::Location) } def keyword_loc; end # attr_reader new_name: Node # - # source://prism//lib/prism/node.rb#49 + # source://prism//lib/prism/node.rb#54 sig { returns(Prism::Node) } def new_name; end # attr_reader old_name: Node # - # source://prism//lib/prism/node.rb#52 + # source://prism//lib/prism/node.rb#57 sig { returns(Prism::Node) } def old_name; end @@ -195,7 +225,7 @@ class Prism::AliasGlobalVariableNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#133 + # source://prism//lib/prism/node.rb#138 def type; end class << self @@ -206,7 +236,7 @@ class Prism::AliasGlobalVariableNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#143 + # source://prism//lib/prism/node.rb#148 def type; end end end @@ -216,13 +246,13 @@ end # alias foo bar # ^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#152 +# source://prism//lib/prism/node.rb#157 class Prism::AliasMethodNode < ::Prism::Node # def initialize: (new_name: Node, old_name: Node, keyword_loc: Location, location: Location) -> void # # @return [AliasMethodNode] a new instance of AliasMethodNode # - # source://prism//lib/prism/node.rb#163 + # source://prism//lib/prism/node.rb#168 sig do params( new_name: Prism::Node, @@ -235,42 +265,42 @@ class Prism::AliasMethodNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#171 + # source://prism//lib/prism/node.rb#176 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#176 + # source://prism//lib/prism/node.rb#181 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#186 + # source://prism//lib/prism/node.rb#191 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#181 + # source://prism//lib/prism/node.rb#186 def compact_child_nodes; end # def copy: (**params) -> AliasMethodNode # - # source://prism//lib/prism/node.rb#191 + # source://prism//lib/prism/node.rb#196 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//lib/prism/node.rb#176 + # source://prism//lib/prism/node.rb#181 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#204 + # source://prism//lib/prism/node.rb#209 sig do params( keys: T::Array[Symbol] @@ -280,30 +310,30 @@ class Prism::AliasMethodNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#214 + # source://prism//lib/prism/node.rb#219 def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#209 + # source://prism//lib/prism/node.rb#214 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#160 + # source://prism//lib/prism/node.rb#165 sig { returns(Prism::Location) } def keyword_loc; end # attr_reader new_name: Node # - # source://prism//lib/prism/node.rb#154 + # source://prism//lib/prism/node.rb#159 sig { returns(Prism::Node) } def new_name; end # attr_reader old_name: Node # - # source://prism//lib/prism/node.rb#157 + # source://prism//lib/prism/node.rb#162 sig { returns(Prism::Node) } def old_name; end @@ -322,7 +352,7 @@ class Prism::AliasMethodNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#238 + # source://prism//lib/prism/node.rb#243 def type; end class << self @@ -333,7 +363,7 @@ class Prism::AliasMethodNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#248 + # source://prism//lib/prism/node.rb#253 def type; end end end @@ -343,54 +373,54 @@ end # foo => bar | baz # ^^^^^^^^^ # -# source://prism//lib/prism/node.rb#257 +# source://prism//lib/prism/node.rb#262 class Prism::AlternationPatternNode < ::Prism::Node # def initialize: (left: Node, right: Node, operator_loc: Location, location: Location) -> void # # @return [AlternationPatternNode] a new instance of AlternationPatternNode # - # source://prism//lib/prism/node.rb#268 + # source://prism//lib/prism/node.rb#273 sig { params(left: Prism::Node, right: Prism::Node, operator_loc: Prism::Location, location: Prism::Location).void } def initialize(left, right, operator_loc, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#276 + # source://prism//lib/prism/node.rb#281 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#281 + # source://prism//lib/prism/node.rb#286 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#291 + # source://prism//lib/prism/node.rb#296 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#286 + # source://prism//lib/prism/node.rb#291 def compact_child_nodes; end # def copy: (**params) -> AlternationPatternNode # - # source://prism//lib/prism/node.rb#296 + # source://prism//lib/prism/node.rb#301 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//lib/prism/node.rb#281 + # source://prism//lib/prism/node.rb#286 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#309 + # source://prism//lib/prism/node.rb#314 sig do params( keys: T::Array[Symbol] @@ -400,30 +430,30 @@ class Prism::AlternationPatternNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#319 + # source://prism//lib/prism/node.rb#324 def inspect(inspector = T.unsafe(nil)); end # attr_reader left: Node # - # source://prism//lib/prism/node.rb#259 + # source://prism//lib/prism/node.rb#264 sig { returns(Prism::Node) } def left; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#314 + # source://prism//lib/prism/node.rb#319 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#265 + # source://prism//lib/prism/node.rb#270 sig { returns(Prism::Location) } def operator_loc; end # attr_reader right: Node # - # source://prism//lib/prism/node.rb#262 + # source://prism//lib/prism/node.rb#267 sig { returns(Prism::Node) } def right; end @@ -442,7 +472,7 @@ class Prism::AlternationPatternNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#343 + # source://prism//lib/prism/node.rb#348 def type; end class << self @@ -453,7 +483,7 @@ class Prism::AlternationPatternNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#353 + # source://prism//lib/prism/node.rb#358 def type; end end end @@ -463,54 +493,54 @@ end # left and right # ^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#362 +# source://prism//lib/prism/node.rb#367 class Prism::AndNode < ::Prism::Node # def initialize: (left: Node, right: Node, operator_loc: Location, location: Location) -> void # # @return [AndNode] a new instance of AndNode # - # source://prism//lib/prism/node.rb#373 + # source://prism//lib/prism/node.rb#378 sig { params(left: Prism::Node, right: Prism::Node, operator_loc: Prism::Location, location: Prism::Location).void } def initialize(left, right, operator_loc, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#381 + # source://prism//lib/prism/node.rb#386 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#386 + # source://prism//lib/prism/node.rb#391 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#396 + # source://prism//lib/prism/node.rb#401 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#391 + # source://prism//lib/prism/node.rb#396 def compact_child_nodes; end # def copy: (**params) -> AndNode # - # source://prism//lib/prism/node.rb#401 + # source://prism//lib/prism/node.rb#406 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//lib/prism/node.rb#386 + # source://prism//lib/prism/node.rb#391 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#414 + # source://prism//lib/prism/node.rb#419 sig do params( keys: T::Array[Symbol] @@ -520,30 +550,30 @@ class Prism::AndNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#424 + # source://prism//lib/prism/node.rb#429 def inspect(inspector = T.unsafe(nil)); end # attr_reader left: Node # - # source://prism//lib/prism/node.rb#364 + # source://prism//lib/prism/node.rb#369 sig { returns(Prism::Node) } def left; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#419 + # source://prism//lib/prism/node.rb#424 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#370 + # source://prism//lib/prism/node.rb#375 sig { returns(Prism::Location) } def operator_loc; end # attr_reader right: Node # - # source://prism//lib/prism/node.rb#367 + # source://prism//lib/prism/node.rb#372 sig { returns(Prism::Node) } def right; end @@ -562,7 +592,7 @@ class Prism::AndNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#448 + # source://prism//lib/prism/node.rb#453 def type; end class << self @@ -573,7 +603,7 @@ class Prism::AndNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#458 + # source://prism//lib/prism/node.rb#463 def type; end end end @@ -583,60 +613,68 @@ end # return foo, bar, baz # ^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#467 +# source://prism//lib/prism/node.rb#472 class Prism::ArgumentsNode < ::Prism::Node - # def initialize: (arguments: Array[Node], flags: Integer, location: Location) -> void + # def initialize: (flags: Integer, arguments: Array[Node], location: Location) -> void # # @return [ArgumentsNode] a new instance of ArgumentsNode # - # source://prism//lib/prism/node.rb#475 - sig { params(arguments: T::Array[Prism::Node], flags: Integer, location: Prism::Location).void } - def initialize(arguments, flags, location); end + # source://prism//lib/prism/node.rb#480 + sig { params(flags: Integer, arguments: T::Array[Prism::Node], location: Prism::Location).void } + def initialize(flags, arguments, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#482 + # source://prism//lib/prism/node.rb#487 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # attr_reader arguments: Array[Node] # - # source://prism//lib/prism/node.rb#469 + # source://prism//lib/prism/node.rb#477 sig { returns(T::Array[Prism::Node]) } def arguments; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#487 + # source://prism//lib/prism/node.rb#492 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#497 + # source://prism//lib/prism/node.rb#502 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#492 + # source://prism//lib/prism/node.rb#497 def compact_child_nodes; end + # def contains_keyword_splat?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#524 + sig { returns(T::Boolean) } + def contains_keyword_splat?; end + # def copy: (**params) -> ArgumentsNode # - # source://prism//lib/prism/node.rb#502 + # source://prism//lib/prism/node.rb#507 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//lib/prism/node.rb#487 + # source://prism//lib/prism/node.rb#492 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#514 + # source://prism//lib/prism/node.rb#519 sig do params( keys: T::Array[Symbol] @@ -646,17 +684,9 @@ class Prism::ArgumentsNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#524 + # source://prism//lib/prism/node.rb#529 def inspect(inspector = T.unsafe(nil)); end - # def keyword_splat?: () -> bool - # - # @return [Boolean] - # - # source://prism//lib/prism/node.rb#519 - sig { returns(T::Boolean) } - def keyword_splat?; 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 @@ -672,14 +702,14 @@ class Prism::ArgumentsNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#546 + # source://prism//lib/prism/node.rb#551 def type; end private # Returns the value of attribute flags. # - # source://prism//lib/prism/node.rb#472 + # source://prism//lib/prism/node.rb#474 sig { returns(Integer) } def flags; end @@ -691,20 +721,20 @@ class Prism::ArgumentsNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#556 + # source://prism//lib/prism/node.rb#561 def type; end end end # Flags for arguments nodes. # -# source://prism//lib/prism/node.rb#16536 +# source://prism//lib/prism/node.rb#17277 module Prism::ArgumentsNodeFlags; end # if arguments contain keyword splat # -# source://prism//lib/prism/node.rb#16538 -Prism::ArgumentsNodeFlags::KEYWORD_SPLAT = T.let(T.unsafe(nil), Integer) +# source://prism//lib/prism/node.rb#17279 +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. @@ -712,73 +742,82 @@ Prism::ArgumentsNodeFlags::KEYWORD_SPLAT = T.let(T.unsafe(nil), Integer) # [1, 2, 3] # ^^^^^^^^^ # -# source://prism//lib/prism/node.rb#566 +# source://prism//lib/prism/node.rb#571 class Prism::ArrayNode < ::Prism::Node - # def initialize: (elements: Array[Node], opening_loc: Location?, closing_loc: Location?, location: Location) -> void + # def initialize: (flags: Integer, elements: Array[Node], opening_loc: Location?, closing_loc: Location?, location: Location) -> void # # @return [ArrayNode] a new instance of ArrayNode # - # source://prism//lib/prism/node.rb#577 + # source://prism//lib/prism/node.rb#585 sig do params( + flags: Integer, elements: T::Array[Prism::Node], opening_loc: T.nilable(Prism::Location), closing_loc: T.nilable(Prism::Location), location: Prism::Location ).void end - def initialize(elements, opening_loc, closing_loc, location); end + def initialize(flags, elements, opening_loc, closing_loc, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#585 + # source://prism//lib/prism/node.rb#594 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#590 + # source://prism//lib/prism/node.rb#599 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String? # - # source://prism//lib/prism/node.rb#628 + # source://prism//lib/prism/node.rb#643 sig { returns(T.nilable(String)) } def closing; end # attr_reader closing_loc: Location? # - # source://prism//lib/prism/node.rb#574 + # source://prism//lib/prism/node.rb#582 sig { returns(T.nilable(Prism::Location)) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#600 + # source://prism//lib/prism/node.rb#609 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#595 + # source://prism//lib/prism/node.rb#604 def compact_child_nodes; end + # def contains_splat?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#633 + sig { returns(T::Boolean) } + def contains_splat?; end + # def copy: (**params) -> ArrayNode # - # source://prism//lib/prism/node.rb#605 + # source://prism//lib/prism/node.rb#614 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//lib/prism/node.rb#590 + # source://prism//lib/prism/node.rb#599 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#618 + # source://prism//lib/prism/node.rb#628 sig do params( keys: T::Array[Symbol] @@ -788,24 +827,24 @@ class Prism::ArrayNode < ::Prism::Node # attr_reader elements: Array[Node] # - # source://prism//lib/prism/node.rb#568 + # source://prism//lib/prism/node.rb#576 sig { returns(T::Array[Prism::Node]) } def elements; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#633 + # source://prism//lib/prism/node.rb#648 def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String? # - # source://prism//lib/prism/node.rb#623 + # source://prism//lib/prism/node.rb#638 sig { returns(T.nilable(String)) } def opening; end # attr_reader opening_loc: Location? # - # source://prism//lib/prism/node.rb#571 + # source://prism//lib/prism/node.rb#579 sig { returns(T.nilable(Prism::Location)) } def opening_loc; end @@ -824,9 +863,17 @@ class Prism::ArrayNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#655 + # source://prism//lib/prism/node.rb#672 def type; end + private + + # Returns the value of attribute flags. + # + # source://prism//lib/prism/node.rb#573 + 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. @@ -835,11 +882,21 @@ class Prism::ArrayNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#665 + # source://prism//lib/prism/node.rb#682 def type; end end end +# Flags for array nodes. +# +# source://prism//lib/prism/node.rb#17283 +module Prism::ArrayNodeFlags; end + +# if array contains splat nodes +# +# source://prism//lib/prism/node.rb#17285 +Prism::ArrayNodeFlags::CONTAINS_SPLAT = T.let(T.unsafe(nil), Integer) + # Represents an array pattern in pattern matching. # # foo in 1, 2 @@ -857,13 +914,13 @@ end # foo in Bar[1, 2, 3] # ^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#686 +# source://prism//lib/prism/node.rb#703 class Prism::ArrayPatternNode < ::Prism::Node # def initialize: (constant: Node?, requireds: Array[Node], rest: Node?, posts: Array[Node], opening_loc: Location?, closing_loc: Location?, location: Location) -> void # # @return [ArrayPatternNode] a new instance of ArrayPatternNode # - # source://prism//lib/prism/node.rb#706 + # source://prism//lib/prism/node.rb#723 sig do params( constant: T.nilable(Prism::Node), @@ -879,60 +936,60 @@ class Prism::ArrayPatternNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#717 + # source://prism//lib/prism/node.rb#734 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#722 + # source://prism//lib/prism/node.rb#739 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String? # - # source://prism//lib/prism/node.rb#768 + # source://prism//lib/prism/node.rb#785 sig { returns(T.nilable(String)) } def closing; end # attr_reader closing_loc: Location? # - # source://prism//lib/prism/node.rb#703 + # source://prism//lib/prism/node.rb#720 sig { returns(T.nilable(Prism::Location)) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#737 + # source://prism//lib/prism/node.rb#754 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#727 + # source://prism//lib/prism/node.rb#744 def compact_child_nodes; end # attr_reader constant: Node? # - # source://prism//lib/prism/node.rb#688 + # source://prism//lib/prism/node.rb#705 sig { returns(T.nilable(Prism::Node)) } def constant; end # def copy: (**params) -> ArrayPatternNode # - # source://prism//lib/prism/node.rb#742 + # source://prism//lib/prism/node.rb#759 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//lib/prism/node.rb#722 + # source://prism//lib/prism/node.rb#739 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#758 + # source://prism//lib/prism/node.rb#775 sig do params( keys: T::Array[Symbol] @@ -942,36 +999,36 @@ class Prism::ArrayPatternNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#773 + # source://prism//lib/prism/node.rb#790 def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String? # - # source://prism//lib/prism/node.rb#763 + # source://prism//lib/prism/node.rb#780 sig { returns(T.nilable(String)) } def opening; end # attr_reader opening_loc: Location? # - # source://prism//lib/prism/node.rb#700 + # source://prism//lib/prism/node.rb#717 sig { returns(T.nilable(Prism::Location)) } def opening_loc; end # attr_reader posts: Array[Node] # - # source://prism//lib/prism/node.rb#697 + # source://prism//lib/prism/node.rb#714 sig { returns(T::Array[Prism::Node]) } def posts; end # attr_reader requireds: Array[Node] # - # source://prism//lib/prism/node.rb#691 + # source://prism//lib/prism/node.rb#708 sig { returns(T::Array[Prism::Node]) } def requireds; end # attr_reader rest: Node? # - # source://prism//lib/prism/node.rb#694 + # source://prism//lib/prism/node.rb#711 sig { returns(T.nilable(Prism::Node)) } def rest; end @@ -990,7 +1047,7 @@ class Prism::ArrayPatternNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#808 + # source://prism//lib/prism/node.rb#825 def type; end class << self @@ -1001,7 +1058,7 @@ class Prism::ArrayPatternNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#818 + # source://prism//lib/prism/node.rb#835 def type; end end end @@ -1011,13 +1068,13 @@ end # { a => b } # ^^^^^^ # -# source://prism//lib/prism/node.rb#827 +# source://prism//lib/prism/node.rb#844 class Prism::AssocNode < ::Prism::Node # def initialize: (key: Node, value: Node?, operator_loc: Location?, location: Location) -> void # # @return [AssocNode] a new instance of AssocNode # - # source://prism//lib/prism/node.rb#838 + # source://prism//lib/prism/node.rb#855 sig do params( key: Prism::Node, @@ -1030,42 +1087,42 @@ class Prism::AssocNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#846 + # source://prism//lib/prism/node.rb#863 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#851 + # source://prism//lib/prism/node.rb#868 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#864 + # source://prism//lib/prism/node.rb#881 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#856 + # source://prism//lib/prism/node.rb#873 def compact_child_nodes; end # def copy: (**params) -> AssocNode # - # source://prism//lib/prism/node.rb#869 + # source://prism//lib/prism/node.rb#886 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//lib/prism/node.rb#851 + # source://prism//lib/prism/node.rb#868 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#882 + # source://prism//lib/prism/node.rb#899 sig do params( keys: T::Array[Symbol] @@ -1075,24 +1132,24 @@ class Prism::AssocNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#892 + # source://prism//lib/prism/node.rb#909 def inspect(inspector = T.unsafe(nil)); end # attr_reader key: Node # - # source://prism//lib/prism/node.rb#829 + # source://prism//lib/prism/node.rb#846 sig { returns(Prism::Node) } def key; end # def operator: () -> String? # - # source://prism//lib/prism/node.rb#887 + # source://prism//lib/prism/node.rb#904 sig { returns(T.nilable(String)) } def operator; end # attr_reader operator_loc: Location? # - # source://prism//lib/prism/node.rb#835 + # source://prism//lib/prism/node.rb#852 sig { returns(T.nilable(Prism::Location)) } def operator_loc; end @@ -1111,12 +1168,12 @@ class Prism::AssocNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#920 + # source://prism//lib/prism/node.rb#937 def type; end # attr_reader value: Node? # - # source://prism//lib/prism/node.rb#832 + # source://prism//lib/prism/node.rb#849 sig { returns(T.nilable(Prism::Node)) } def value; end @@ -1128,7 +1185,7 @@ class Prism::AssocNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#930 + # source://prism//lib/prism/node.rb#947 def type; end end end @@ -1138,54 +1195,54 @@ end # { **foo } # ^^^^^ # -# source://prism//lib/prism/node.rb#939 +# source://prism//lib/prism/node.rb#956 class Prism::AssocSplatNode < ::Prism::Node # def initialize: (value: Node?, operator_loc: Location, location: Location) -> void # # @return [AssocSplatNode] a new instance of AssocSplatNode # - # source://prism//lib/prism/node.rb#947 + # source://prism//lib/prism/node.rb#964 sig { params(value: T.nilable(Prism::Node), operator_loc: Prism::Location, location: Prism::Location).void } def initialize(value, operator_loc, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#954 + # source://prism//lib/prism/node.rb#971 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#959 + # source://prism//lib/prism/node.rb#976 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#971 + # source://prism//lib/prism/node.rb#988 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#964 + # source://prism//lib/prism/node.rb#981 def compact_child_nodes; end # def copy: (**params) -> AssocSplatNode # - # source://prism//lib/prism/node.rb#976 + # source://prism//lib/prism/node.rb#993 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//lib/prism/node.rb#959 + # source://prism//lib/prism/node.rb#976 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#988 + # source://prism//lib/prism/node.rb#1005 sig do params( keys: T::Array[Symbol] @@ -1195,18 +1252,18 @@ class Prism::AssocSplatNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#998 + # source://prism//lib/prism/node.rb#1015 def inspect(inspector = T.unsafe(nil)); end # def operator: () -> String # - # source://prism//lib/prism/node.rb#993 + # source://prism//lib/prism/node.rb#1010 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#944 + # source://prism//lib/prism/node.rb#961 sig { returns(Prism::Location) } def operator_loc; end @@ -1225,12 +1282,12 @@ class Prism::AssocSplatNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#1024 + # source://prism//lib/prism/node.rb#1041 def type; end # attr_reader value: Node? # - # source://prism//lib/prism/node.rb#941 + # source://prism//lib/prism/node.rb#958 sig { returns(T.nilable(Prism::Node)) } def value; end @@ -1242,7 +1299,7 @@ class Prism::AssocSplatNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#1034 + # source://prism//lib/prism/node.rb#1051 def type; end end end @@ -1254,54 +1311,54 @@ Prism::BACKEND = T.let(T.unsafe(nil), Symbol) # $' # ^^ # -# source://prism//lib/prism/node.rb#1043 +# source://prism//lib/prism/node.rb#1060 class Prism::BackReferenceReadNode < ::Prism::Node # def initialize: (name: Symbol, location: Location) -> void # # @return [BackReferenceReadNode] a new instance of BackReferenceReadNode # - # source://prism//lib/prism/node.rb#1048 + # source://prism//lib/prism/node.rb#1065 sig { params(name: Symbol, location: Prism::Location).void } def initialize(name, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#1054 + # source://prism//lib/prism/node.rb#1071 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#1059 + # source://prism//lib/prism/node.rb#1076 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#1069 + # source://prism//lib/prism/node.rb#1086 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#1064 + # source://prism//lib/prism/node.rb#1081 def compact_child_nodes; end # def copy: (**params) -> BackReferenceReadNode # - # source://prism//lib/prism/node.rb#1074 + # source://prism//lib/prism/node.rb#1091 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//lib/prism/node.rb#1059 + # source://prism//lib/prism/node.rb#1076 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#1085 + # source://prism//lib/prism/node.rb#1102 sig do params( keys: T::Array[Symbol] @@ -1311,12 +1368,12 @@ class Prism::BackReferenceReadNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#1090 + # source://prism//lib/prism/node.rb#1107 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#1045 + # source://prism//lib/prism/node.rb#1062 sig { returns(Symbol) } def name; end @@ -1335,7 +1392,7 @@ class Prism::BackReferenceReadNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#1110 + # source://prism//lib/prism/node.rb#1127 def type; end class << self @@ -1346,7 +1403,7 @@ class Prism::BackReferenceReadNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#1120 + # source://prism//lib/prism/node.rb#1137 def type; end end end @@ -1385,13 +1442,13 @@ end # end # ^^^^^ # -# source://prism//lib/prism/node.rb#1131 +# source://prism//lib/prism/node.rb#1148 class Prism::BeginNode < ::Prism::Node # def initialize: (begin_keyword_loc: Location?, statements: StatementsNode?, rescue_clause: RescueNode?, else_clause: ElseNode?, ensure_clause: EnsureNode?, end_keyword_loc: Location?, location: Location) -> void # # @return [BeginNode] a new instance of BeginNode # - # source://prism//lib/prism/node.rb#1151 + # source://prism//lib/prism/node.rb#1168 sig do params( begin_keyword_loc: T.nilable(Prism::Location), @@ -1407,54 +1464,54 @@ class Prism::BeginNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#1162 + # source://prism//lib/prism/node.rb#1179 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def begin_keyword: () -> String? # - # source://prism//lib/prism/node.rb#1212 + # source://prism//lib/prism/node.rb#1229 sig { returns(T.nilable(String)) } def begin_keyword; end # attr_reader begin_keyword_loc: Location? # - # source://prism//lib/prism/node.rb#1133 + # source://prism//lib/prism/node.rb#1150 sig { returns(T.nilable(Prism::Location)) } def begin_keyword_loc; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#1171 + # source://prism//lib/prism/node.rb#1188 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#1186 + # source://prism//lib/prism/node.rb#1203 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#1176 + # source://prism//lib/prism/node.rb#1193 def compact_child_nodes; end # def copy: (**params) -> BeginNode # - # source://prism//lib/prism/node.rb#1191 + # source://prism//lib/prism/node.rb#1208 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//lib/prism/node.rb#1171 + # source://prism//lib/prism/node.rb#1188 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#1207 + # source://prism//lib/prism/node.rb#1224 sig do params( keys: T::Array[Symbol] @@ -1464,45 +1521,45 @@ class Prism::BeginNode < ::Prism::Node # attr_reader else_clause: ElseNode? # - # source://prism//lib/prism/node.rb#1142 + # source://prism//lib/prism/node.rb#1159 sig { returns(T.nilable(Prism::ElseNode)) } def else_clause; end # def end_keyword: () -> String? # - # source://prism//lib/prism/node.rb#1217 + # source://prism//lib/prism/node.rb#1234 sig { returns(T.nilable(String)) } def end_keyword; end # attr_reader end_keyword_loc: Location? # - # source://prism//lib/prism/node.rb#1148 + # source://prism//lib/prism/node.rb#1165 sig { returns(T.nilable(Prism::Location)) } def end_keyword_loc; end # attr_reader ensure_clause: EnsureNode? # - # source://prism//lib/prism/node.rb#1145 + # source://prism//lib/prism/node.rb#1162 sig { returns(T.nilable(Prism::EnsureNode)) } def ensure_clause; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#1222 + # source://prism//lib/prism/node.rb#1239 def inspect(inspector = T.unsafe(nil)); end # attr_reader rescue_clause: RescueNode? # - # source://prism//lib/prism/node.rb#1139 + # source://prism//lib/prism/node.rb#1156 sig { returns(T.nilable(Prism::RescueNode)) } def rescue_clause; end - # source://prism//lib/prism/node.rb#1166 + # source://prism//lib/prism/node.rb#1183 def set_newline_flag(newline_marked); end # attr_reader statements: StatementsNode? # - # source://prism//lib/prism/node.rb#1136 + # source://prism//lib/prism/node.rb#1153 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end @@ -1521,7 +1578,7 @@ class Prism::BeginNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#1267 + # source://prism//lib/prism/node.rb#1284 def type; end class << self @@ -1532,7 +1589,7 @@ class Prism::BeginNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#1277 + # source://prism//lib/prism/node.rb#1294 def type; end end end @@ -1542,54 +1599,54 @@ end # bar(&args) # ^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#1286 +# source://prism//lib/prism/node.rb#1303 class Prism::BlockArgumentNode < ::Prism::Node # def initialize: (expression: Node?, operator_loc: Location, location: Location) -> void # # @return [BlockArgumentNode] a new instance of BlockArgumentNode # - # source://prism//lib/prism/node.rb#1294 + # source://prism//lib/prism/node.rb#1311 sig { params(expression: T.nilable(Prism::Node), operator_loc: Prism::Location, location: Prism::Location).void } def initialize(expression, operator_loc, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#1301 + # source://prism//lib/prism/node.rb#1318 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#1306 + # source://prism//lib/prism/node.rb#1323 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#1318 + # source://prism//lib/prism/node.rb#1335 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#1311 + # source://prism//lib/prism/node.rb#1328 def compact_child_nodes; end # def copy: (**params) -> BlockArgumentNode # - # source://prism//lib/prism/node.rb#1323 + # source://prism//lib/prism/node.rb#1340 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//lib/prism/node.rb#1306 + # source://prism//lib/prism/node.rb#1323 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#1335 + # source://prism//lib/prism/node.rb#1352 sig do params( keys: T::Array[Symbol] @@ -1599,24 +1656,24 @@ class Prism::BlockArgumentNode < ::Prism::Node # attr_reader expression: Node? # - # source://prism//lib/prism/node.rb#1288 + # source://prism//lib/prism/node.rb#1305 sig { returns(T.nilable(Prism::Node)) } def expression; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#1345 + # source://prism//lib/prism/node.rb#1362 def inspect(inspector = T.unsafe(nil)); end # def operator: () -> String # - # source://prism//lib/prism/node.rb#1340 + # source://prism//lib/prism/node.rb#1357 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#1291 + # source://prism//lib/prism/node.rb#1308 sig { returns(Prism::Location) } def operator_loc; end @@ -1635,7 +1692,7 @@ class Prism::BlockArgumentNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#1371 + # source://prism//lib/prism/node.rb#1388 def type; end class << self @@ -1646,7 +1703,7 @@ class Prism::BlockArgumentNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#1381 + # source://prism//lib/prism/node.rb#1398 def type; end end end @@ -1656,54 +1713,54 @@ end # a { |; b| } # ^ # -# source://prism//lib/prism/node.rb#1390 +# source://prism//lib/prism/node.rb#1407 class Prism::BlockLocalVariableNode < ::Prism::Node # def initialize: (name: Symbol, location: Location) -> void # # @return [BlockLocalVariableNode] a new instance of BlockLocalVariableNode # - # source://prism//lib/prism/node.rb#1395 + # source://prism//lib/prism/node.rb#1412 sig { params(name: Symbol, location: Prism::Location).void } def initialize(name, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#1401 + # source://prism//lib/prism/node.rb#1418 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#1406 + # source://prism//lib/prism/node.rb#1423 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#1416 + # source://prism//lib/prism/node.rb#1433 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#1411 + # source://prism//lib/prism/node.rb#1428 def compact_child_nodes; end # def copy: (**params) -> BlockLocalVariableNode # - # source://prism//lib/prism/node.rb#1421 + # source://prism//lib/prism/node.rb#1438 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//lib/prism/node.rb#1406 + # source://prism//lib/prism/node.rb#1423 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#1432 + # source://prism//lib/prism/node.rb#1449 sig do params( keys: T::Array[Symbol] @@ -1713,12 +1770,12 @@ class Prism::BlockLocalVariableNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#1437 + # source://prism//lib/prism/node.rb#1454 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#1392 + # source://prism//lib/prism/node.rb#1409 sig { returns(Symbol) } def name; end @@ -1737,7 +1794,7 @@ class Prism::BlockLocalVariableNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#1457 + # source://prism//lib/prism/node.rb#1474 def type; end class << self @@ -1748,7 +1805,7 @@ class Prism::BlockLocalVariableNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#1467 + # source://prism//lib/prism/node.rb#1484 def type; end end end @@ -1758,81 +1815,82 @@ end # [1, 2, 3].each { |i| puts x } # ^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#1476 +# source://prism//lib/prism/node.rb#1493 class Prism::BlockNode < ::Prism::Node - # def initialize: (locals: Array[Symbol], parameters: BlockParametersNode?, body: Node?, opening_loc: Location, closing_loc: Location, location: Location) -> void + # def initialize: (locals: Array[Symbol], locals_body_index: Integer, parameters: Node?, body: Node?, opening_loc: Location, closing_loc: Location, location: Location) -> void # # @return [BlockNode] a new instance of BlockNode # - # source://prism//lib/prism/node.rb#1493 + # source://prism//lib/prism/node.rb#1513 sig do params( locals: T::Array[Symbol], - parameters: T.nilable(Prism::BlockParametersNode), + locals_body_index: Integer, + parameters: T.nilable(Prism::Node), body: T.nilable(Prism::Node), opening_loc: Prism::Location, closing_loc: Prism::Location, location: Prism::Location ).void end - def initialize(locals, parameters, body, opening_loc, closing_loc, location); end + def initialize(locals, locals_body_index, parameters, body, opening_loc, closing_loc, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#1503 + # source://prism//lib/prism/node.rb#1524 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # attr_reader body: Node? # - # source://prism//lib/prism/node.rb#1484 + # source://prism//lib/prism/node.rb#1504 sig { returns(T.nilable(Prism::Node)) } def body; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#1508 + # source://prism//lib/prism/node.rb#1529 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#1551 + # source://prism//lib/prism/node.rb#1573 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#1490 + # source://prism//lib/prism/node.rb#1510 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#1521 + # source://prism//lib/prism/node.rb#1542 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#1513 + # source://prism//lib/prism/node.rb#1534 def compact_child_nodes; end # def copy: (**params) -> BlockNode # - # source://prism//lib/prism/node.rb#1526 + # source://prism//lib/prism/node.rb#1547 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//lib/prism/node.rb#1508 + # source://prism//lib/prism/node.rb#1529 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#1541 + # source://prism//lib/prism/node.rb#1563 sig do params( keys: T::Array[Symbol] @@ -1842,31 +1900,37 @@ class Prism::BlockNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#1556 + # source://prism//lib/prism/node.rb#1578 def inspect(inspector = T.unsafe(nil)); end # attr_reader locals: Array[Symbol] # - # source://prism//lib/prism/node.rb#1478 + # source://prism//lib/prism/node.rb#1495 sig { returns(T::Array[Symbol]) } def locals; end + # attr_reader locals_body_index: Integer + # + # source://prism//lib/prism/node.rb#1498 + sig { returns(Integer) } + def locals_body_index; end + # def opening: () -> String # - # source://prism//lib/prism/node.rb#1546 + # source://prism//lib/prism/node.rb#1568 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#1487 + # source://prism//lib/prism/node.rb#1507 sig { returns(Prism::Location) } def opening_loc; end - # attr_reader parameters: BlockParametersNode? + # attr_reader parameters: Node? # - # source://prism//lib/prism/node.rb#1481 - sig { returns(T.nilable(Prism::BlockParametersNode)) } + # source://prism//lib/prism/node.rb#1501 + sig { returns(T.nilable(Prism::Node)) } def parameters; end # Sometimes you want to check an instance of a node against a list of @@ -1884,7 +1948,7 @@ class Prism::BlockNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#1590 + # source://prism//lib/prism/node.rb#1613 def type; end class << self @@ -1895,7 +1959,7 @@ class Prism::BlockNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#1600 + # source://prism//lib/prism/node.rb#1623 def type; end end end @@ -1906,13 +1970,13 @@ end # ^^ # end # -# source://prism//lib/prism/node.rb#1610 +# source://prism//lib/prism/node.rb#1633 class Prism::BlockParameterNode < ::Prism::Node # def initialize: (name: Symbol?, name_loc: Location?, operator_loc: Location, location: Location) -> void # # @return [BlockParameterNode] a new instance of BlockParameterNode # - # source://prism//lib/prism/node.rb#1621 + # source://prism//lib/prism/node.rb#1644 sig do params( name: T.nilable(Symbol), @@ -1925,42 +1989,42 @@ class Prism::BlockParameterNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#1629 + # source://prism//lib/prism/node.rb#1652 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#1634 + # source://prism//lib/prism/node.rb#1657 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#1644 + # source://prism//lib/prism/node.rb#1667 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#1639 + # source://prism//lib/prism/node.rb#1662 def compact_child_nodes; end # def copy: (**params) -> BlockParameterNode # - # source://prism//lib/prism/node.rb#1649 + # source://prism//lib/prism/node.rb#1672 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//lib/prism/node.rb#1634 + # source://prism//lib/prism/node.rb#1657 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#1662 + # source://prism//lib/prism/node.rb#1685 sig do params( keys: T::Array[Symbol] @@ -1970,30 +2034,30 @@ class Prism::BlockParameterNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#1672 + # source://prism//lib/prism/node.rb#1695 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol? # - # source://prism//lib/prism/node.rb#1612 + # source://prism//lib/prism/node.rb#1635 sig { returns(T.nilable(Symbol)) } def name; end # attr_reader name_loc: Location? # - # source://prism//lib/prism/node.rb#1615 + # source://prism//lib/prism/node.rb#1638 sig { returns(T.nilable(Prism::Location)) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#1667 + # source://prism//lib/prism/node.rb#1690 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#1618 + # source://prism//lib/prism/node.rb#1641 sig { returns(Prism::Location) } def operator_loc; end @@ -2012,7 +2076,7 @@ class Prism::BlockParameterNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#1698 + # source://prism//lib/prism/node.rb#1721 def type; end class << self @@ -2023,7 +2087,7 @@ class Prism::BlockParameterNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#1708 + # source://prism//lib/prism/node.rb#1731 def type; end end end @@ -2037,13 +2101,13 @@ end # ^^^^^^^^^^^^^^^^^ # end # -# source://prism//lib/prism/node.rb#1721 +# source://prism//lib/prism/node.rb#1744 class Prism::BlockParametersNode < ::Prism::Node # def initialize: (parameters: ParametersNode?, locals: Array[Node], opening_loc: Location?, closing_loc: Location?, location: Location) -> void # # @return [BlockParametersNode] a new instance of BlockParametersNode # - # source://prism//lib/prism/node.rb#1735 + # source://prism//lib/prism/node.rb#1758 sig do params( parameters: T.nilable(Prism::ParametersNode), @@ -2057,54 +2121,54 @@ class Prism::BlockParametersNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#1744 + # source://prism//lib/prism/node.rb#1767 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#1749 + # source://prism//lib/prism/node.rb#1772 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String? # - # source://prism//lib/prism/node.rb#1791 + # source://prism//lib/prism/node.rb#1814 sig { returns(T.nilable(String)) } def closing; end # attr_reader closing_loc: Location? # - # source://prism//lib/prism/node.rb#1732 + # source://prism//lib/prism/node.rb#1755 sig { returns(T.nilable(Prism::Location)) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#1762 + # source://prism//lib/prism/node.rb#1785 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#1754 + # source://prism//lib/prism/node.rb#1777 def compact_child_nodes; end # def copy: (**params) -> BlockParametersNode # - # source://prism//lib/prism/node.rb#1767 + # source://prism//lib/prism/node.rb#1790 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//lib/prism/node.rb#1749 + # source://prism//lib/prism/node.rb#1772 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#1781 + # source://prism//lib/prism/node.rb#1804 sig do params( keys: T::Array[Symbol] @@ -2114,30 +2178,30 @@ class Prism::BlockParametersNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#1796 + # source://prism//lib/prism/node.rb#1819 def inspect(inspector = T.unsafe(nil)); end # attr_reader locals: Array[Node] # - # source://prism//lib/prism/node.rb#1726 + # source://prism//lib/prism/node.rb#1749 sig { returns(T::Array[Prism::Node]) } def locals; end # def opening: () -> String? # - # source://prism//lib/prism/node.rb#1786 + # source://prism//lib/prism/node.rb#1809 sig { returns(T.nilable(String)) } def opening; end # attr_reader opening_loc: Location? # - # source://prism//lib/prism/node.rb#1729 + # source://prism//lib/prism/node.rb#1752 sig { returns(T.nilable(Prism::Location)) } def opening_loc; end # attr_reader parameters: ParametersNode? # - # source://prism//lib/prism/node.rb#1723 + # source://prism//lib/prism/node.rb#1746 sig { returns(T.nilable(Prism::ParametersNode)) } def parameters; end @@ -2156,7 +2220,7 @@ class Prism::BlockParametersNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#1824 + # source://prism//lib/prism/node.rb#1847 def type; end class << self @@ -2167,7 +2231,7 @@ class Prism::BlockParametersNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#1834 + # source://prism//lib/prism/node.rb#1857 def type; end end end @@ -2177,13 +2241,13 @@ end # break foo # ^^^^^^^^^ # -# source://prism//lib/prism/node.rb#1843 +# source://prism//lib/prism/node.rb#1866 class Prism::BreakNode < ::Prism::Node # def initialize: (arguments: ArgumentsNode?, keyword_loc: Location, location: Location) -> void # # @return [BreakNode] a new instance of BreakNode # - # source://prism//lib/prism/node.rb#1851 + # source://prism//lib/prism/node.rb#1874 sig do params( arguments: T.nilable(Prism::ArgumentsNode), @@ -2195,48 +2259,48 @@ class Prism::BreakNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#1858 + # source://prism//lib/prism/node.rb#1881 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # attr_reader arguments: ArgumentsNode? # - # source://prism//lib/prism/node.rb#1845 + # source://prism//lib/prism/node.rb#1868 sig { returns(T.nilable(Prism::ArgumentsNode)) } def arguments; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#1863 + # source://prism//lib/prism/node.rb#1886 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#1875 + # source://prism//lib/prism/node.rb#1898 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#1868 + # source://prism//lib/prism/node.rb#1891 def compact_child_nodes; end # def copy: (**params) -> BreakNode # - # source://prism//lib/prism/node.rb#1880 + # source://prism//lib/prism/node.rb#1903 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//lib/prism/node.rb#1863 + # source://prism//lib/prism/node.rb#1886 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#1892 + # source://prism//lib/prism/node.rb#1915 sig do params( keys: T::Array[Symbol] @@ -2246,18 +2310,18 @@ class Prism::BreakNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#1902 + # source://prism//lib/prism/node.rb#1925 def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#1897 + # source://prism//lib/prism/node.rb#1920 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#1848 + # source://prism//lib/prism/node.rb#1871 sig { returns(Prism::Location) } def keyword_loc; end @@ -2276,7 +2340,7 @@ class Prism::BreakNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#1928 + # source://prism//lib/prism/node.rb#1951 def type; end class << self @@ -2287,7 +2351,7 @@ class Prism::BreakNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#1938 + # source://prism//lib/prism/node.rb#1961 def type; end end end @@ -2297,19 +2361,19 @@ end # foo.bar &&= value # ^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#1947 +# source://prism//lib/prism/node.rb#1970 class Prism::CallAndWriteNode < ::Prism::Node - # def initialize: (receiver: Node?, call_operator_loc: Location?, message_loc: Location?, flags: Integer, read_name: Symbol, write_name: Symbol, operator_loc: Location, value: Node, location: Location) -> void + # def initialize: (flags: Integer, receiver: Node?, call_operator_loc: Location?, message_loc: Location?, read_name: Symbol, write_name: Symbol, operator_loc: Location, value: Node, location: Location) -> void # # @return [CallAndWriteNode] a new instance of CallAndWriteNode # - # source://prism//lib/prism/node.rb#1973 + # source://prism//lib/prism/node.rb#1996 sig do params( + flags: Integer, receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), message_loc: T.nilable(Prism::Location), - flags: Integer, read_name: Symbol, write_name: Symbol, operator_loc: Prism::Location, @@ -2317,58 +2381,66 @@ class Prism::CallAndWriteNode < ::Prism::Node location: Prism::Location ).void end - def initialize(receiver, call_operator_loc, message_loc, flags, read_name, write_name, operator_loc, value, location); end + def initialize(flags, receiver, call_operator_loc, message_loc, read_name, write_name, operator_loc, value, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#1986 + # source://prism//lib/prism/node.rb#2009 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end + # def attribute_write?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#2065 + sig { returns(T::Boolean) } + def attribute_write?; end + # def call_operator: () -> String? # - # source://prism//lib/prism/node.rb#2032 + # source://prism//lib/prism/node.rb#2070 sig { returns(T.nilable(String)) } def call_operator; end # attr_reader call_operator_loc: Location? # - # source://prism//lib/prism/node.rb#1952 + # source://prism//lib/prism/node.rb#1978 sig { returns(T.nilable(Prism::Location)) } def call_operator_loc; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#1991 + # source://prism//lib/prism/node.rb#2014 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#2004 + # source://prism//lib/prism/node.rb#2027 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#1996 + # source://prism//lib/prism/node.rb#2019 def compact_child_nodes; end # def copy: (**params) -> CallAndWriteNode # - # source://prism//lib/prism/node.rb#2009 + # source://prism//lib/prism/node.rb#2032 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//lib/prism/node.rb#1991 + # source://prism//lib/prism/node.rb#2014 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#2027 + # source://prism//lib/prism/node.rb#2050 sig do params( keys: T::Array[Symbol] @@ -2378,42 +2450,42 @@ class Prism::CallAndWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#2057 + # source://prism//lib/prism/node.rb#2085 def inspect(inspector = T.unsafe(nil)); end # def message: () -> String? # - # source://prism//lib/prism/node.rb#2037 + # source://prism//lib/prism/node.rb#2075 sig { returns(T.nilable(String)) } def message; end # attr_reader message_loc: Location? # - # source://prism//lib/prism/node.rb#1955 + # source://prism//lib/prism/node.rb#1981 sig { returns(T.nilable(Prism::Location)) } def message_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#2052 + # source://prism//lib/prism/node.rb#2080 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#1967 + # source://prism//lib/prism/node.rb#1990 sig { returns(Prism::Location) } def operator_loc; end # attr_reader read_name: Symbol # - # source://prism//lib/prism/node.rb#1961 + # source://prism//lib/prism/node.rb#1984 sig { returns(Symbol) } def read_name; end # attr_reader receiver: Node? # - # source://prism//lib/prism/node.rb#1949 + # source://prism//lib/prism/node.rb#1975 sig { returns(T.nilable(Prism::Node)) } def receiver; end @@ -2421,7 +2493,7 @@ class Prism::CallAndWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#2042 + # source://prism//lib/prism/node.rb#2055 sig { returns(T::Boolean) } def safe_navigation?; end @@ -2440,12 +2512,12 @@ class Prism::CallAndWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#2091 + # source://prism//lib/prism/node.rb#2119 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#1970 + # source://prism//lib/prism/node.rb#1993 sig { returns(Prism::Node) } def value; end @@ -2453,13 +2525,13 @@ class Prism::CallAndWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#2047 + # source://prism//lib/prism/node.rb#2060 sig { returns(T::Boolean) } def variable_call?; end # attr_reader write_name: Symbol # - # source://prism//lib/prism/node.rb#1964 + # source://prism//lib/prism/node.rb#1987 sig { returns(Symbol) } def write_name; end @@ -2467,7 +2539,7 @@ class Prism::CallAndWriteNode < ::Prism::Node # Returns the value of attribute flags. # - # source://prism//lib/prism/node.rb#1958 + # source://prism//lib/prism/node.rb#1972 sig { returns(Integer) } def flags; end @@ -2479,7 +2551,7 @@ class Prism::CallAndWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#2101 + # source://prism//lib/prism/node.rb#2129 def type; end end end @@ -2504,103 +2576,111 @@ end # foo&.bar # ^^^^^^^^ # -# source://prism//lib/prism/node.rb#2125 +# source://prism//lib/prism/node.rb#2153 class Prism::CallNode < ::Prism::Node - # def initialize: (receiver: Node?, call_operator_loc: Location?, message_loc: Location?, opening_loc: Location?, arguments: ArgumentsNode?, closing_loc: Location?, block: Node?, flags: Integer, name: Symbol, location: Location) -> void + # def initialize: (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) -> void # # @return [CallNode] a new instance of CallNode # - # source://prism//lib/prism/node.rb#2154 + # source://prism//lib/prism/node.rb#2182 sig do params( + flags: Integer, receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), + name: Symbol, message_loc: T.nilable(Prism::Location), opening_loc: T.nilable(Prism::Location), arguments: T.nilable(Prism::ArgumentsNode), closing_loc: T.nilable(Prism::Location), block: T.nilable(Prism::Node), - flags: Integer, - name: Symbol, location: Prism::Location ).void end - def initialize(receiver, call_operator_loc, message_loc, opening_loc, arguments, closing_loc, block, flags, name, location); end + def initialize(flags, receiver, call_operator_loc, name, message_loc, opening_loc, arguments, closing_loc, block, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#2168 + # source://prism//lib/prism/node.rb#2196 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # attr_reader arguments: ArgumentsNode? # - # source://prism//lib/prism/node.rb#2139 + # source://prism//lib/prism/node.rb#2173 sig { returns(T.nilable(Prism::ArgumentsNode)) } def arguments; end + # def attribute_write?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#2254 + sig { returns(T::Boolean) } + def attribute_write?; end + # attr_reader block: Node? # - # source://prism//lib/prism/node.rb#2145 + # source://prism//lib/prism/node.rb#2179 sig { returns(T.nilable(Prism::Node)) } def block; end # def call_operator: () -> String? # - # source://prism//lib/prism/node.rb#2216 + # source://prism//lib/prism/node.rb#2259 sig { returns(T.nilable(String)) } def call_operator; end # attr_reader call_operator_loc: Location? # - # source://prism//lib/prism/node.rb#2130 + # source://prism//lib/prism/node.rb#2161 sig { returns(T.nilable(Prism::Location)) } def call_operator_loc; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#2173 + # source://prism//lib/prism/node.rb#2201 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String? # - # source://prism//lib/prism/node.rb#2231 + # source://prism//lib/prism/node.rb#2274 sig { returns(T.nilable(String)) } def closing; end # attr_reader closing_loc: Location? # - # source://prism//lib/prism/node.rb#2142 + # source://prism//lib/prism/node.rb#2176 sig { returns(T.nilable(Prism::Location)) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#2187 + # source://prism//lib/prism/node.rb#2215 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#2178 + # source://prism//lib/prism/node.rb#2206 def compact_child_nodes; end # def copy: (**params) -> CallNode # - # source://prism//lib/prism/node.rb#2192 + # source://prism//lib/prism/node.rb#2220 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//lib/prism/node.rb#2173 + # source://prism//lib/prism/node.rb#2201 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#2211 + # source://prism//lib/prism/node.rb#2239 sig do params( keys: T::Array[Symbol] @@ -2610,42 +2690,42 @@ class Prism::CallNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#2246 + # source://prism//lib/prism/node.rb#2279 def inspect(inspector = T.unsafe(nil)); end # def message: () -> String? # - # source://prism//lib/prism/node.rb#2221 + # source://prism//lib/prism/node.rb#2264 sig { returns(T.nilable(String)) } def message; end # attr_reader message_loc: Location? # - # source://prism//lib/prism/node.rb#2133 + # source://prism//lib/prism/node.rb#2167 sig { returns(T.nilable(Prism::Location)) } def message_loc; end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#2151 + # source://prism//lib/prism/node.rb#2164 sig { returns(Symbol) } def name; end # def opening: () -> String? # - # source://prism//lib/prism/node.rb#2226 + # source://prism//lib/prism/node.rb#2269 sig { returns(T.nilable(String)) } def opening; end # attr_reader opening_loc: Location? # - # source://prism//lib/prism/node.rb#2136 + # source://prism//lib/prism/node.rb#2170 sig { returns(T.nilable(Prism::Location)) } def opening_loc; end # attr_reader receiver: Node? # - # source://prism//lib/prism/node.rb#2127 + # source://prism//lib/prism/node.rb#2158 sig { returns(T.nilable(Prism::Node)) } def receiver; end @@ -2653,7 +2733,7 @@ class Prism::CallNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#2236 + # source://prism//lib/prism/node.rb#2244 sig { returns(T::Boolean) } def safe_navigation?; end @@ -2672,14 +2752,14 @@ class Prism::CallNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#2290 + # source://prism//lib/prism/node.rb#2323 def type; end # def variable_call?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#2241 + # source://prism//lib/prism/node.rb#2249 sig { returns(T::Boolean) } def variable_call?; end @@ -2687,7 +2767,7 @@ class Prism::CallNode < ::Prism::Node # Returns the value of attribute flags. # - # source://prism//lib/prism/node.rb#2148 + # source://prism//lib/prism/node.rb#2155 sig { returns(Integer) } def flags; end @@ -2699,24 +2779,29 @@ class Prism::CallNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#2300 + # source://prism//lib/prism/node.rb#2333 def type; end end end # Flags for call nodes. # -# source://prism//lib/prism/node.rb#16542 +# source://prism//lib/prism/node.rb#17289 module Prism::CallNodeFlags; end +# a call that is an attribute write, so the value being written should be returned +# +# source://prism//lib/prism/node.rb#17297 +Prism::CallNodeFlags::ATTRIBUTE_WRITE = T.let(T.unsafe(nil), Integer) + # &. operator # -# source://prism//lib/prism/node.rb#16544 +# source://prism//lib/prism/node.rb#17291 Prism::CallNodeFlags::SAFE_NAVIGATION = T.let(T.unsafe(nil), Integer) # a call that could have been a local variable # -# source://prism//lib/prism/node.rb#16547 +# source://prism//lib/prism/node.rb#17294 Prism::CallNodeFlags::VARIABLE_CALL = T.let(T.unsafe(nil), Integer) # Represents the use of an assignment operator on a call. @@ -2724,19 +2809,19 @@ Prism::CallNodeFlags::VARIABLE_CALL = T.let(T.unsafe(nil), Integer) # foo.bar += baz # ^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#2309 +# source://prism//lib/prism/node.rb#2342 class Prism::CallOperatorWriteNode < ::Prism::Node - # def initialize: (receiver: Node?, call_operator_loc: Location?, message_loc: Location?, flags: Integer, read_name: Symbol, write_name: Symbol, operator: Symbol, operator_loc: Location, value: Node, location: Location) -> void + # def initialize: (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) -> void # # @return [CallOperatorWriteNode] a new instance of CallOperatorWriteNode # - # source://prism//lib/prism/node.rb#2338 + # source://prism//lib/prism/node.rb#2371 sig do params( + flags: Integer, receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), message_loc: T.nilable(Prism::Location), - flags: Integer, read_name: Symbol, write_name: Symbol, operator: Symbol, @@ -2745,58 +2830,66 @@ class Prism::CallOperatorWriteNode < ::Prism::Node location: Prism::Location ).void end - def initialize(receiver, call_operator_loc, message_loc, flags, read_name, write_name, operator, operator_loc, value, location); end + def initialize(flags, receiver, call_operator_loc, message_loc, read_name, write_name, operator, operator_loc, value, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#2352 + # source://prism//lib/prism/node.rb#2385 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end + # def attribute_write?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#2442 + sig { returns(T::Boolean) } + def attribute_write?; end + # def call_operator: () -> String? # - # source://prism//lib/prism/node.rb#2399 + # source://prism//lib/prism/node.rb#2447 sig { returns(T.nilable(String)) } def call_operator; end # attr_reader call_operator_loc: Location? # - # source://prism//lib/prism/node.rb#2314 + # source://prism//lib/prism/node.rb#2350 sig { returns(T.nilable(Prism::Location)) } def call_operator_loc; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#2357 + # source://prism//lib/prism/node.rb#2390 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#2370 + # source://prism//lib/prism/node.rb#2403 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#2362 + # source://prism//lib/prism/node.rb#2395 def compact_child_nodes; end # def copy: (**params) -> CallOperatorWriteNode # - # source://prism//lib/prism/node.rb#2375 + # source://prism//lib/prism/node.rb#2408 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//lib/prism/node.rb#2357 + # source://prism//lib/prism/node.rb#2390 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#2394 + # source://prism//lib/prism/node.rb#2427 sig do params( keys: T::Array[Symbol] @@ -2806,42 +2899,42 @@ class Prism::CallOperatorWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#2419 + # source://prism//lib/prism/node.rb#2457 def inspect(inspector = T.unsafe(nil)); end # def message: () -> String? # - # source://prism//lib/prism/node.rb#2404 + # source://prism//lib/prism/node.rb#2452 sig { returns(T.nilable(String)) } def message; end # attr_reader message_loc: Location? # - # source://prism//lib/prism/node.rb#2317 + # source://prism//lib/prism/node.rb#2353 sig { returns(T.nilable(Prism::Location)) } def message_loc; end # attr_reader operator: Symbol # - # source://prism//lib/prism/node.rb#2329 + # source://prism//lib/prism/node.rb#2362 sig { returns(Symbol) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#2332 + # source://prism//lib/prism/node.rb#2365 sig { returns(Prism::Location) } def operator_loc; end # attr_reader read_name: Symbol # - # source://prism//lib/prism/node.rb#2323 + # source://prism//lib/prism/node.rb#2356 sig { returns(Symbol) } def read_name; end # attr_reader receiver: Node? # - # source://prism//lib/prism/node.rb#2311 + # source://prism//lib/prism/node.rb#2347 sig { returns(T.nilable(Prism::Node)) } def receiver; end @@ -2849,7 +2942,7 @@ class Prism::CallOperatorWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#2409 + # source://prism//lib/prism/node.rb#2432 sig { returns(T::Boolean) } def safe_navigation?; end @@ -2868,12 +2961,12 @@ class Prism::CallOperatorWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#2454 + # source://prism//lib/prism/node.rb#2492 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#2335 + # source://prism//lib/prism/node.rb#2368 sig { returns(Prism::Node) } def value; end @@ -2881,13 +2974,13 @@ class Prism::CallOperatorWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#2414 + # source://prism//lib/prism/node.rb#2437 sig { returns(T::Boolean) } def variable_call?; end # attr_reader write_name: Symbol # - # source://prism//lib/prism/node.rb#2326 + # source://prism//lib/prism/node.rb#2359 sig { returns(Symbol) } def write_name; end @@ -2895,7 +2988,7 @@ class Prism::CallOperatorWriteNode < ::Prism::Node # Returns the value of attribute flags. # - # source://prism//lib/prism/node.rb#2320 + # source://prism//lib/prism/node.rb#2344 sig { returns(Integer) } def flags; end @@ -2907,7 +3000,7 @@ class Prism::CallOperatorWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#2464 + # source://prism//lib/prism/node.rb#2502 def type; end end end @@ -2917,19 +3010,19 @@ end # foo.bar ||= value # ^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#2473 +# source://prism//lib/prism/node.rb#2511 class Prism::CallOrWriteNode < ::Prism::Node - # def initialize: (receiver: Node?, call_operator_loc: Location?, message_loc: Location?, flags: Integer, read_name: Symbol, write_name: Symbol, operator_loc: Location, value: Node, location: Location) -> void + # def initialize: (flags: Integer, receiver: Node?, call_operator_loc: Location?, message_loc: Location?, read_name: Symbol, write_name: Symbol, operator_loc: Location, value: Node, location: Location) -> void # # @return [CallOrWriteNode] a new instance of CallOrWriteNode # - # source://prism//lib/prism/node.rb#2499 + # source://prism//lib/prism/node.rb#2537 sig do params( + flags: Integer, receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), message_loc: T.nilable(Prism::Location), - flags: Integer, read_name: Symbol, write_name: Symbol, operator_loc: Prism::Location, @@ -2937,58 +3030,66 @@ class Prism::CallOrWriteNode < ::Prism::Node location: Prism::Location ).void end - def initialize(receiver, call_operator_loc, message_loc, flags, read_name, write_name, operator_loc, value, location); end + def initialize(flags, receiver, call_operator_loc, message_loc, read_name, write_name, operator_loc, value, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#2512 + # source://prism//lib/prism/node.rb#2550 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end + # def attribute_write?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#2606 + sig { returns(T::Boolean) } + def attribute_write?; end + # def call_operator: () -> String? # - # source://prism//lib/prism/node.rb#2558 + # source://prism//lib/prism/node.rb#2611 sig { returns(T.nilable(String)) } def call_operator; end # attr_reader call_operator_loc: Location? # - # source://prism//lib/prism/node.rb#2478 + # source://prism//lib/prism/node.rb#2519 sig { returns(T.nilable(Prism::Location)) } def call_operator_loc; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#2517 + # source://prism//lib/prism/node.rb#2555 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#2530 + # source://prism//lib/prism/node.rb#2568 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#2522 + # source://prism//lib/prism/node.rb#2560 def compact_child_nodes; end # def copy: (**params) -> CallOrWriteNode # - # source://prism//lib/prism/node.rb#2535 + # source://prism//lib/prism/node.rb#2573 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//lib/prism/node.rb#2517 + # source://prism//lib/prism/node.rb#2555 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#2553 + # source://prism//lib/prism/node.rb#2591 sig do params( keys: T::Array[Symbol] @@ -2998,42 +3099,42 @@ class Prism::CallOrWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#2583 + # source://prism//lib/prism/node.rb#2626 def inspect(inspector = T.unsafe(nil)); end # def message: () -> String? # - # source://prism//lib/prism/node.rb#2563 + # source://prism//lib/prism/node.rb#2616 sig { returns(T.nilable(String)) } def message; end # attr_reader message_loc: Location? # - # source://prism//lib/prism/node.rb#2481 + # source://prism//lib/prism/node.rb#2522 sig { returns(T.nilable(Prism::Location)) } def message_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#2578 + # source://prism//lib/prism/node.rb#2621 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#2493 + # source://prism//lib/prism/node.rb#2531 sig { returns(Prism::Location) } def operator_loc; end # attr_reader read_name: Symbol # - # source://prism//lib/prism/node.rb#2487 + # source://prism//lib/prism/node.rb#2525 sig { returns(Symbol) } def read_name; end # attr_reader receiver: Node? # - # source://prism//lib/prism/node.rb#2475 + # source://prism//lib/prism/node.rb#2516 sig { returns(T.nilable(Prism::Node)) } def receiver; end @@ -3041,7 +3142,7 @@ class Prism::CallOrWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#2568 + # source://prism//lib/prism/node.rb#2596 sig { returns(T::Boolean) } def safe_navigation?; end @@ -3060,12 +3161,12 @@ class Prism::CallOrWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#2617 + # source://prism//lib/prism/node.rb#2660 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#2496 + # source://prism//lib/prism/node.rb#2534 sig { returns(Prism::Node) } def value; end @@ -3073,13 +3174,13 @@ class Prism::CallOrWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#2573 + # source://prism//lib/prism/node.rb#2601 sig { returns(T::Boolean) } def variable_call?; end # attr_reader write_name: Symbol # - # source://prism//lib/prism/node.rb#2490 + # source://prism//lib/prism/node.rb#2528 sig { returns(Symbol) } def write_name; end @@ -3087,7 +3188,7 @@ class Prism::CallOrWriteNode < ::Prism::Node # Returns the value of attribute flags. # - # source://prism//lib/prism/node.rb#2484 + # source://prism//lib/prism/node.rb#2513 sig { returns(Integer) } def flags; end @@ -3099,71 +3200,101 @@ class Prism::CallOrWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#2627 + # source://prism//lib/prism/node.rb#2670 def type; end end end -# Represents assigning to a local variable in pattern matching. +# Represents assigning to a method call. # -# foo => [bar => baz] -# ^^^^^^^^^^^^ +# foo.bar, = 1 +# ^^^^^^^ # -# source://prism//lib/prism/node.rb#2636 -class Prism::CapturePatternNode < ::Prism::Node - # def initialize: (value: Node, target: Node, operator_loc: Location, location: Location) -> void +# begin +# rescue => foo.bar +# ^^^^^^^ +# end +# +# for foo.bar in baz do end +# ^^^^^^^ +# +# source://prism//lib/prism/node.rb#2687 +class Prism::CallTargetNode < ::Prism::Node + # def initialize: (flags: Integer, receiver: Node, call_operator_loc: Location, name: Symbol, message_loc: Location, location: Location) -> void # - # @return [CapturePatternNode] a new instance of CapturePatternNode + # @return [CallTargetNode] a new instance of CallTargetNode # - # source://prism//lib/prism/node.rb#2647 + # source://prism//lib/prism/node.rb#2704 sig do params( - value: Prism::Node, - target: Prism::Node, - operator_loc: Prism::Location, + flags: Integer, + receiver: Prism::Node, + call_operator_loc: Prism::Location, + name: Symbol, + message_loc: Prism::Location, location: Prism::Location ).void end - def initialize(value, target, operator_loc, location); end + def initialize(flags, receiver, call_operator_loc, name, message_loc, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#2655 + # source://prism//lib/prism/node.rb#2714 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end + # def attribute_write?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#2764 + sig { returns(T::Boolean) } + def attribute_write?; end + + # def call_operator: () -> String + # + # source://prism//lib/prism/node.rb#2769 + sig { returns(String) } + def call_operator; end + + # attr_reader call_operator_loc: Location + # + # source://prism//lib/prism/node.rb#2695 + sig { returns(Prism::Location) } + def call_operator_loc; end + # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#2660 + # source://prism//lib/prism/node.rb#2719 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#2670 + # source://prism//lib/prism/node.rb#2729 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#2665 + # source://prism//lib/prism/node.rb#2724 def compact_child_nodes; end - # def copy: (**params) -> CapturePatternNode + # def copy: (**params) -> CallTargetNode # - # source://prism//lib/prism/node.rb#2675 - sig { params(params: T.untyped).returns(Prism::CapturePatternNode) } + # source://prism//lib/prism/node.rb#2734 + 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//lib/prism/node.rb#2660 + # source://prism//lib/prism/node.rb#2719 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#2688 + # source://prism//lib/prism/node.rb#2749 sig do params( keys: T::Array[Symbol] @@ -3173,24 +3304,175 @@ class Prism::CapturePatternNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#2698 + # source://prism//lib/prism/node.rb#2779 def inspect(inspector = T.unsafe(nil)); end - # def operator: () -> String + # def message: () -> String # - # source://prism//lib/prism/node.rb#2693 + # source://prism//lib/prism/node.rb#2774 + sig { returns(String) } + def message; end + + # attr_reader message_loc: Location + # + # source://prism//lib/prism/node.rb#2701 + sig { returns(Prism::Location) } + def message_loc; end + + # attr_reader name: Symbol + # + # source://prism//lib/prism/node.rb#2698 + sig { returns(Symbol) } + def name; end + + # attr_reader receiver: Node + # + # source://prism//lib/prism/node.rb#2692 + sig { returns(Prism::Node) } + def receiver; end + + # def safe_navigation?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#2754 + 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//lib/prism/node.rb#2805 + def type; end + + # def variable_call?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#2759 + sig { returns(T::Boolean) } + def variable_call?; end + + private + + # Returns the value of attribute flags. + # + # source://prism//lib/prism/node.rb#2689 + sig { returns(Integer) } + def flags; end + + class << self + # Similar to #type, this method returns a symbol that you can use for + # splitting on the type of the node without having to do a long === chain. + # Note that like #type, it will still be slower than using == for a single + # class, but should be faster in a case statement or an array comparison. + # + # def self.type: () -> Symbol + # + # source://prism//lib/prism/node.rb#2815 + def type; end + end +end + +# Represents assigning to a local variable in pattern matching. +# +# foo => [bar => baz] +# ^^^^^^^^^^^^ +# +# source://prism//lib/prism/node.rb#2824 +class Prism::CapturePatternNode < ::Prism::Node + # def initialize: (value: Node, target: Node, operator_loc: Location, location: Location) -> void + # + # @return [CapturePatternNode] a new instance of CapturePatternNode + # + # source://prism//lib/prism/node.rb#2835 + sig do + params( + value: Prism::Node, + target: Prism::Node, + operator_loc: Prism::Location, + location: Prism::Location + ).void + end + def initialize(value, target, operator_loc, location); end + + # def accept: (visitor: Visitor) -> void + # + # source://prism//lib/prism/node.rb#2843 + sig { params(visitor: Prism::Visitor).void } + def accept(visitor); end + + # def child_nodes: () -> Array[nil | Node] + # + # source://prism//lib/prism/node.rb#2848 + sig { returns(T::Array[T.nilable(Prism::Node)]) } + def child_nodes; end + + # def comment_targets: () -> Array[Node | Location] + # + # source://prism//lib/prism/node.rb#2858 + def comment_targets; end + + # def compact_child_nodes: () -> Array[Node] + # + # source://prism//lib/prism/node.rb#2853 + def compact_child_nodes; end + + # def copy: (**params) -> CapturePatternNode + # + # source://prism//lib/prism/node.rb#2863 + 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//lib/prism/node.rb#2848 + sig { returns(T::Array[T.nilable(Prism::Node)]) } + def deconstruct; end + + # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] + # + # source://prism//lib/prism/node.rb#2876 + sig do + params( + keys: T::Array[Symbol] + ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) + end + def deconstruct_keys(keys); end + + # def inspect(inspector: NodeInspector) -> String + # + # source://prism//lib/prism/node.rb#2886 + def inspect(inspector = T.unsafe(nil)); end + + # def operator: () -> String + # + # source://prism//lib/prism/node.rb#2881 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#2644 + # source://prism//lib/prism/node.rb#2832 sig { returns(Prism::Location) } def operator_loc; end # attr_reader target: Node # - # source://prism//lib/prism/node.rb#2641 + # source://prism//lib/prism/node.rb#2829 sig { returns(Prism::Node) } def target; end @@ -3209,12 +3491,12 @@ class Prism::CapturePatternNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#2722 + # source://prism//lib/prism/node.rb#2910 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#2638 + # source://prism//lib/prism/node.rb#2826 sig { returns(Prism::Node) } def value; end @@ -3226,25 +3508,25 @@ class Prism::CapturePatternNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#2732 + # source://prism//lib/prism/node.rb#2920 def type; end end end -# Represents the use of a case statement. +# Represents the use of a case statement for pattern matching. # # case true -# when false +# in false # end -# ^^^^^^^^^^ +# ^^^^^^^^^ # -# source://prism//lib/prism/node.rb#2743 -class Prism::CaseNode < ::Prism::Node +# source://prism//lib/prism/node.rb#2931 +class Prism::CaseMatchNode < ::Prism::Node # def initialize: (predicate: Node?, conditions: Array[Node], consequent: ElseNode?, case_keyword_loc: Location, end_keyword_loc: Location, location: Location) -> void # - # @return [CaseNode] a new instance of CaseNode + # @return [CaseMatchNode] a new instance of CaseMatchNode # - # source://prism//lib/prism/node.rb#2760 + # source://prism//lib/prism/node.rb#2948 sig do params( predicate: T.nilable(Prism::Node), @@ -3259,66 +3541,66 @@ class Prism::CaseNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#2770 + # source://prism//lib/prism/node.rb#2958 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def case_keyword: () -> String # - # source://prism//lib/prism/node.rb#2814 + # source://prism//lib/prism/node.rb#3002 sig { returns(String) } def case_keyword; end # attr_reader case_keyword_loc: Location # - # source://prism//lib/prism/node.rb#2754 + # source://prism//lib/prism/node.rb#2942 sig { returns(Prism::Location) } def case_keyword_loc; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#2775 + # source://prism//lib/prism/node.rb#2963 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#2789 + # source://prism//lib/prism/node.rb#2977 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#2780 + # source://prism//lib/prism/node.rb#2968 def compact_child_nodes; end # attr_reader conditions: Array[Node] # - # source://prism//lib/prism/node.rb#2748 + # source://prism//lib/prism/node.rb#2936 sig { returns(T::Array[Prism::Node]) } def conditions; end # attr_reader consequent: ElseNode? # - # source://prism//lib/prism/node.rb#2751 + # source://prism//lib/prism/node.rb#2939 sig { returns(T.nilable(Prism::ElseNode)) } def consequent; end - # def copy: (**params) -> CaseNode + # def copy: (**params) -> CaseMatchNode # - # source://prism//lib/prism/node.rb#2794 - sig { params(params: T.untyped).returns(Prism::CaseNode) } + # source://prism//lib/prism/node.rb#2982 + 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//lib/prism/node.rb#2775 + # source://prism//lib/prism/node.rb#2963 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#2809 + # source://prism//lib/prism/node.rb#2997 sig do params( keys: T::Array[Symbol] @@ -3328,24 +3610,24 @@ class Prism::CaseNode < ::Prism::Node # def end_keyword: () -> String # - # source://prism//lib/prism/node.rb#2819 + # source://prism//lib/prism/node.rb#3007 sig { returns(String) } def end_keyword; end # attr_reader end_keyword_loc: Location # - # source://prism//lib/prism/node.rb#2757 + # source://prism//lib/prism/node.rb#2945 sig { returns(Prism::Location) } def end_keyword_loc; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#2824 + # source://prism//lib/prism/node.rb#3012 def inspect(inspector = T.unsafe(nil)); end # attr_reader predicate: Node? # - # source://prism//lib/prism/node.rb#2745 + # source://prism//lib/prism/node.rb#2933 sig { returns(T.nilable(Prism::Node)) } def predicate; end @@ -3364,7 +3646,7 @@ class Prism::CaseNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#2858 + # source://prism//lib/prism/node.rb#3046 def type; end class << self @@ -3375,100 +3657,99 @@ class Prism::CaseNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#2868 + # source://prism//lib/prism/node.rb#3056 def type; end end end -# Represents a class declaration involving the `class` keyword. +# Represents the use of a case statement. # -# class Foo end -# ^^^^^^^^^^^^^ +# case true +# when false +# end +# ^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#2877 -class Prism::ClassNode < ::Prism::Node - # def initialize: (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) -> void +# source://prism//lib/prism/node.rb#3067 +class Prism::CaseNode < ::Prism::Node + # def initialize: (predicate: Node?, conditions: Array[Node], consequent: ElseNode?, case_keyword_loc: Location, end_keyword_loc: Location, location: Location) -> void # - # @return [ClassNode] a new instance of ClassNode + # @return [CaseNode] a new instance of CaseNode # - # source://prism//lib/prism/node.rb#2903 + # source://prism//lib/prism/node.rb#3084 sig do params( - locals: T::Array[Symbol], - class_keyword_loc: Prism::Location, - constant_path: Prism::Node, - inheritance_operator_loc: T.nilable(Prism::Location), - superclass: T.nilable(Prism::Node), - body: T.nilable(Prism::Node), + predicate: T.nilable(Prism::Node), + conditions: T::Array[Prism::Node], + consequent: T.nilable(Prism::ElseNode), + case_keyword_loc: Prism::Location, end_keyword_loc: Prism::Location, - name: Symbol, location: Prism::Location ).void end - def initialize(locals, class_keyword_loc, constant_path, inheritance_operator_loc, superclass, body, end_keyword_loc, name, location); end + def initialize(predicate, conditions, consequent, case_keyword_loc, end_keyword_loc, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#2916 + # source://prism//lib/prism/node.rb#3094 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end - # attr_reader body: Node? + # def case_keyword: () -> String # - # source://prism//lib/prism/node.rb#2894 - sig { returns(T.nilable(Prism::Node)) } - def body; end + # source://prism//lib/prism/node.rb#3138 + sig { returns(String) } + def case_keyword; end + + # attr_reader case_keyword_loc: Location + # + # source://prism//lib/prism/node.rb#3078 + sig { returns(Prism::Location) } + def case_keyword_loc; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#2921 + # source://prism//lib/prism/node.rb#3099 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end - # def class_keyword: () -> String - # - # source://prism//lib/prism/node.rb#2963 - sig { returns(String) } - def class_keyword; end - - # attr_reader class_keyword_loc: Location - # - # source://prism//lib/prism/node.rb#2882 - sig { returns(Prism::Location) } - def class_keyword_loc; end - # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#2935 + # source://prism//lib/prism/node.rb#3113 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#2926 + # source://prism//lib/prism/node.rb#3104 def compact_child_nodes; end - # attr_reader constant_path: Node + # attr_reader conditions: Array[Node] # - # source://prism//lib/prism/node.rb#2885 - sig { returns(Prism::Node) } - def constant_path; end + # source://prism//lib/prism/node.rb#3072 + sig { returns(T::Array[Prism::Node]) } + def conditions; end - # def copy: (**params) -> ClassNode + # attr_reader consequent: ElseNode? # - # source://prism//lib/prism/node.rb#2940 - sig { params(params: T.untyped).returns(Prism::ClassNode) } + # source://prism//lib/prism/node.rb#3075 + sig { returns(T.nilable(Prism::ElseNode)) } + def consequent; end + + # def copy: (**params) -> CaseNode + # + # source://prism//lib/prism/node.rb#3118 + 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//lib/prism/node.rb#2921 + # source://prism//lib/prism/node.rb#3099 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#2958 + # source://prism//lib/prism/node.rb#3133 sig do params( keys: T::Array[Symbol] @@ -3478,50 +3759,26 @@ class Prism::ClassNode < ::Prism::Node # def end_keyword: () -> String # - # source://prism//lib/prism/node.rb#2973 + # source://prism//lib/prism/node.rb#3143 sig { returns(String) } def end_keyword; end # attr_reader end_keyword_loc: Location # - # source://prism//lib/prism/node.rb#2897 + # source://prism//lib/prism/node.rb#3081 sig { returns(Prism::Location) } def end_keyword_loc; end - # def inheritance_operator: () -> String? - # - # source://prism//lib/prism/node.rb#2968 - sig { returns(T.nilable(String)) } - def inheritance_operator; end - - # attr_reader inheritance_operator_loc: Location? - # - # source://prism//lib/prism/node.rb#2888 - sig { returns(T.nilable(Prism::Location)) } - def inheritance_operator_loc; end - # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#2978 + # source://prism//lib/prism/node.rb#3148 def inspect(inspector = T.unsafe(nil)); end - # attr_reader locals: Array[Symbol] - # - # source://prism//lib/prism/node.rb#2879 - sig { returns(T::Array[Symbol]) } - def locals; end - - # attr_reader name: Symbol - # - # source://prism//lib/prism/node.rb#2900 - sig { returns(Symbol) } - def name; end - - # attr_reader superclass: Node? + # attr_reader predicate: Node? # - # source://prism//lib/prism/node.rb#2891 + # source://prism//lib/prism/node.rb#3069 sig { returns(T.nilable(Prism::Node)) } - def superclass; end + 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 @@ -3538,7 +3795,7 @@ class Prism::ClassNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#3016 + # source://prism//lib/prism/node.rb#3182 def type; end class << self @@ -3549,29 +3806,203 @@ class Prism::ClassNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#3026 + # source://prism//lib/prism/node.rb#3192 def type; end end end -# Represents the use of the `&&=` operator for assignment to a class variable. +# Represents a class declaration involving the `class` keyword. # -# @@target &&= value -# ^^^^^^^^^^^^^^^^^^ +# class Foo end +# ^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#3035 -class Prism::ClassVariableAndWriteNode < ::Prism::Node - # def initialize: (name: Symbol, name_loc: Location, operator_loc: Location, value: Node, location: Location) -> void +# source://prism//lib/prism/node.rb#3201 +class Prism::ClassNode < ::Prism::Node + # def initialize: (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) -> void # - # @return [ClassVariableAndWriteNode] a new instance of ClassVariableAndWriteNode + # @return [ClassNode] a new instance of ClassNode # - # source://prism//lib/prism/node.rb#3049 + # source://prism//lib/prism/node.rb#3227 sig do params( - name: Symbol, - name_loc: Prism::Location, - operator_loc: Prism::Location, - value: Prism::Node, + locals: T::Array[Symbol], + class_keyword_loc: Prism::Location, + constant_path: Prism::Node, + inheritance_operator_loc: T.nilable(Prism::Location), + superclass: T.nilable(Prism::Node), + body: T.nilable(Prism::Node), + end_keyword_loc: Prism::Location, + name: Symbol, + location: Prism::Location + ).void + end + def initialize(locals, class_keyword_loc, constant_path, inheritance_operator_loc, superclass, body, end_keyword_loc, name, location); end + + # def accept: (visitor: Visitor) -> void + # + # source://prism//lib/prism/node.rb#3240 + sig { params(visitor: Prism::Visitor).void } + def accept(visitor); end + + # attr_reader body: Node? + # + # source://prism//lib/prism/node.rb#3218 + sig { returns(T.nilable(Prism::Node)) } + def body; end + + # def child_nodes: () -> Array[nil | Node] + # + # source://prism//lib/prism/node.rb#3245 + sig { returns(T::Array[T.nilable(Prism::Node)]) } + def child_nodes; end + + # def class_keyword: () -> String + # + # source://prism//lib/prism/node.rb#3287 + sig { returns(String) } + def class_keyword; end + + # attr_reader class_keyword_loc: Location + # + # source://prism//lib/prism/node.rb#3206 + sig { returns(Prism::Location) } + def class_keyword_loc; end + + # def comment_targets: () -> Array[Node | Location] + # + # source://prism//lib/prism/node.rb#3259 + def comment_targets; end + + # def compact_child_nodes: () -> Array[Node] + # + # source://prism//lib/prism/node.rb#3250 + def compact_child_nodes; end + + # attr_reader constant_path: Node + # + # source://prism//lib/prism/node.rb#3209 + sig { returns(Prism::Node) } + def constant_path; end + + # def copy: (**params) -> ClassNode + # + # source://prism//lib/prism/node.rb#3264 + 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//lib/prism/node.rb#3245 + sig { returns(T::Array[T.nilable(Prism::Node)]) } + def deconstruct; end + + # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] + # + # source://prism//lib/prism/node.rb#3282 + sig do + params( + keys: T::Array[Symbol] + ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) + end + def deconstruct_keys(keys); end + + # def end_keyword: () -> String + # + # source://prism//lib/prism/node.rb#3297 + sig { returns(String) } + def end_keyword; end + + # attr_reader end_keyword_loc: Location + # + # source://prism//lib/prism/node.rb#3221 + sig { returns(Prism::Location) } + def end_keyword_loc; end + + # def inheritance_operator: () -> String? + # + # source://prism//lib/prism/node.rb#3292 + sig { returns(T.nilable(String)) } + def inheritance_operator; end + + # attr_reader inheritance_operator_loc: Location? + # + # source://prism//lib/prism/node.rb#3212 + sig { returns(T.nilable(Prism::Location)) } + def inheritance_operator_loc; end + + # def inspect(inspector: NodeInspector) -> String + # + # source://prism//lib/prism/node.rb#3302 + def inspect(inspector = T.unsafe(nil)); end + + # attr_reader locals: Array[Symbol] + # + # source://prism//lib/prism/node.rb#3203 + sig { returns(T::Array[Symbol]) } + def locals; end + + # attr_reader name: Symbol + # + # source://prism//lib/prism/node.rb#3224 + sig { returns(Symbol) } + def name; end + + # attr_reader superclass: Node? + # + # source://prism//lib/prism/node.rb#3215 + 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//lib/prism/node.rb#3340 + 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//lib/prism/node.rb#3350 + def type; end + end +end + +# Represents the use of the `&&=` operator for assignment to a class variable. +# +# @@target &&= value +# ^^^^^^^^^^^^^^^^^^ +# +# source://prism//lib/prism/node.rb#3359 +class Prism::ClassVariableAndWriteNode < ::Prism::Node + # def initialize: (name: Symbol, name_loc: Location, operator_loc: Location, value: Node, location: Location) -> void + # + # @return [ClassVariableAndWriteNode] a new instance of ClassVariableAndWriteNode + # + # source://prism//lib/prism/node.rb#3373 + sig do + params( + name: Symbol, + name_loc: Prism::Location, + operator_loc: Prism::Location, + value: Prism::Node, location: Prism::Location ).void end @@ -3579,42 +4010,42 @@ class Prism::ClassVariableAndWriteNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#3058 + # source://prism//lib/prism/node.rb#3382 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#3063 + # source://prism//lib/prism/node.rb#3387 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#3073 + # source://prism//lib/prism/node.rb#3397 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#3068 + # source://prism//lib/prism/node.rb#3392 def compact_child_nodes; end # def copy: (**params) -> ClassVariableAndWriteNode # - # source://prism//lib/prism/node.rb#3078 + # source://prism//lib/prism/node.rb#3402 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//lib/prism/node.rb#3063 + # source://prism//lib/prism/node.rb#3387 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#3092 + # source://prism//lib/prism/node.rb#3416 sig do params( keys: T::Array[Symbol] @@ -3624,30 +4055,30 @@ class Prism::ClassVariableAndWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#3102 + # source://prism//lib/prism/node.rb#3426 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#3037 + # source://prism//lib/prism/node.rb#3361 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#3040 + # source://prism//lib/prism/node.rb#3364 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#3097 + # source://prism//lib/prism/node.rb#3421 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#3043 + # source://prism//lib/prism/node.rb#3367 sig { returns(Prism::Location) } def operator_loc; end @@ -3666,12 +4097,12 @@ class Prism::ClassVariableAndWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#3126 + # source://prism//lib/prism/node.rb#3450 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#3046 + # source://prism//lib/prism/node.rb#3370 sig { returns(Prism::Node) } def value; end @@ -3683,7 +4114,7 @@ class Prism::ClassVariableAndWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#3136 + # source://prism//lib/prism/node.rb#3460 def type; end end end @@ -3693,13 +4124,13 @@ end # @@target += value # ^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#3145 +# source://prism//lib/prism/node.rb#3469 class Prism::ClassVariableOperatorWriteNode < ::Prism::Node # def initialize: (name: Symbol, name_loc: Location, operator_loc: Location, value: Node, operator: Symbol, location: Location) -> void # # @return [ClassVariableOperatorWriteNode] a new instance of ClassVariableOperatorWriteNode # - # source://prism//lib/prism/node.rb#3162 + # source://prism//lib/prism/node.rb#3486 sig do params( name: Symbol, @@ -3714,42 +4145,42 @@ class Prism::ClassVariableOperatorWriteNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#3172 + # source://prism//lib/prism/node.rb#3496 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#3177 + # source://prism//lib/prism/node.rb#3501 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#3187 + # source://prism//lib/prism/node.rb#3511 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#3182 + # source://prism//lib/prism/node.rb#3506 def compact_child_nodes; end # def copy: (**params) -> ClassVariableOperatorWriteNode # - # source://prism//lib/prism/node.rb#3192 + # source://prism//lib/prism/node.rb#3516 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//lib/prism/node.rb#3177 + # source://prism//lib/prism/node.rb#3501 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#3207 + # source://prism//lib/prism/node.rb#3531 sig do params( keys: T::Array[Symbol] @@ -3759,30 +4190,30 @@ class Prism::ClassVariableOperatorWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#3212 + # source://prism//lib/prism/node.rb#3536 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#3147 + # source://prism//lib/prism/node.rb#3471 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#3150 + # source://prism//lib/prism/node.rb#3474 sig { returns(Prism::Location) } def name_loc; end # attr_reader operator: Symbol # - # source://prism//lib/prism/node.rb#3159 + # source://prism//lib/prism/node.rb#3483 sig { returns(Symbol) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#3153 + # source://prism//lib/prism/node.rb#3477 sig { returns(Prism::Location) } def operator_loc; end @@ -3801,12 +4232,12 @@ class Prism::ClassVariableOperatorWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#3237 + # source://prism//lib/prism/node.rb#3561 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#3156 + # source://prism//lib/prism/node.rb#3480 sig { returns(Prism::Node) } def value; end @@ -3818,7 +4249,7 @@ class Prism::ClassVariableOperatorWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#3247 + # source://prism//lib/prism/node.rb#3571 def type; end end end @@ -3828,13 +4259,13 @@ end # @@target ||= value # ^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#3256 +# source://prism//lib/prism/node.rb#3580 class Prism::ClassVariableOrWriteNode < ::Prism::Node # def initialize: (name: Symbol, name_loc: Location, operator_loc: Location, value: Node, location: Location) -> void # # @return [ClassVariableOrWriteNode] a new instance of ClassVariableOrWriteNode # - # source://prism//lib/prism/node.rb#3270 + # source://prism//lib/prism/node.rb#3594 sig do params( name: Symbol, @@ -3848,42 +4279,42 @@ class Prism::ClassVariableOrWriteNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#3279 + # source://prism//lib/prism/node.rb#3603 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#3284 + # source://prism//lib/prism/node.rb#3608 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#3294 + # source://prism//lib/prism/node.rb#3618 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#3289 + # source://prism//lib/prism/node.rb#3613 def compact_child_nodes; end # def copy: (**params) -> ClassVariableOrWriteNode # - # source://prism//lib/prism/node.rb#3299 + # source://prism//lib/prism/node.rb#3623 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//lib/prism/node.rb#3284 + # source://prism//lib/prism/node.rb#3608 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#3313 + # source://prism//lib/prism/node.rb#3637 sig do params( keys: T::Array[Symbol] @@ -3893,30 +4324,30 @@ class Prism::ClassVariableOrWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#3323 + # source://prism//lib/prism/node.rb#3647 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#3258 + # source://prism//lib/prism/node.rb#3582 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#3261 + # source://prism//lib/prism/node.rb#3585 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#3318 + # source://prism//lib/prism/node.rb#3642 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#3264 + # source://prism//lib/prism/node.rb#3588 sig { returns(Prism::Location) } def operator_loc; end @@ -3935,12 +4366,12 @@ class Prism::ClassVariableOrWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#3347 + # source://prism//lib/prism/node.rb#3671 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#3267 + # source://prism//lib/prism/node.rb#3591 sig { returns(Prism::Node) } def value; end @@ -3952,7 +4383,7 @@ class Prism::ClassVariableOrWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#3357 + # source://prism//lib/prism/node.rb#3681 def type; end end end @@ -3962,54 +4393,54 @@ end # @@foo # ^^^^^ # -# source://prism//lib/prism/node.rb#3366 +# source://prism//lib/prism/node.rb#3690 class Prism::ClassVariableReadNode < ::Prism::Node # def initialize: (name: Symbol, location: Location) -> void # # @return [ClassVariableReadNode] a new instance of ClassVariableReadNode # - # source://prism//lib/prism/node.rb#3371 + # source://prism//lib/prism/node.rb#3695 sig { params(name: Symbol, location: Prism::Location).void } def initialize(name, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#3377 + # source://prism//lib/prism/node.rb#3701 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#3382 + # source://prism//lib/prism/node.rb#3706 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#3392 + # source://prism//lib/prism/node.rb#3716 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#3387 + # source://prism//lib/prism/node.rb#3711 def compact_child_nodes; end # def copy: (**params) -> ClassVariableReadNode # - # source://prism//lib/prism/node.rb#3397 + # source://prism//lib/prism/node.rb#3721 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//lib/prism/node.rb#3382 + # source://prism//lib/prism/node.rb#3706 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#3408 + # source://prism//lib/prism/node.rb#3732 sig do params( keys: T::Array[Symbol] @@ -4019,12 +4450,12 @@ class Prism::ClassVariableReadNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#3413 + # source://prism//lib/prism/node.rb#3737 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#3368 + # source://prism//lib/prism/node.rb#3692 sig { returns(Symbol) } def name; end @@ -4043,7 +4474,7 @@ class Prism::ClassVariableReadNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#3433 + # source://prism//lib/prism/node.rb#3757 def type; end class << self @@ -4054,7 +4485,7 @@ class Prism::ClassVariableReadNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#3443 + # source://prism//lib/prism/node.rb#3767 def type; end end end @@ -4064,54 +4495,54 @@ end # @@foo, @@bar = baz # ^^^^^ ^^^^^ # -# source://prism//lib/prism/node.rb#3452 +# source://prism//lib/prism/node.rb#3776 class Prism::ClassVariableTargetNode < ::Prism::Node # def initialize: (name: Symbol, location: Location) -> void # # @return [ClassVariableTargetNode] a new instance of ClassVariableTargetNode # - # source://prism//lib/prism/node.rb#3457 + # source://prism//lib/prism/node.rb#3781 sig { params(name: Symbol, location: Prism::Location).void } def initialize(name, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#3463 + # source://prism//lib/prism/node.rb#3787 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#3468 + # source://prism//lib/prism/node.rb#3792 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#3478 + # source://prism//lib/prism/node.rb#3802 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#3473 + # source://prism//lib/prism/node.rb#3797 def compact_child_nodes; end # def copy: (**params) -> ClassVariableTargetNode # - # source://prism//lib/prism/node.rb#3483 + # source://prism//lib/prism/node.rb#3807 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//lib/prism/node.rb#3468 + # source://prism//lib/prism/node.rb#3792 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#3494 + # source://prism//lib/prism/node.rb#3818 sig do params( keys: T::Array[Symbol] @@ -4121,12 +4552,12 @@ class Prism::ClassVariableTargetNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#3499 + # source://prism//lib/prism/node.rb#3823 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#3454 + # source://prism//lib/prism/node.rb#3778 sig { returns(Symbol) } def name; end @@ -4145,7 +4576,7 @@ class Prism::ClassVariableTargetNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#3519 + # source://prism//lib/prism/node.rb#3843 def type; end class << self @@ -4156,7 +4587,7 @@ class Prism::ClassVariableTargetNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#3529 + # source://prism//lib/prism/node.rb#3853 def type; end end end @@ -4166,13 +4597,13 @@ end # @@foo = 1 # ^^^^^^^^^ # -# source://prism//lib/prism/node.rb#3538 +# source://prism//lib/prism/node.rb#3862 class Prism::ClassVariableWriteNode < ::Prism::Node # def initialize: (name: Symbol, name_loc: Location, value: Node, operator_loc: Location?, location: Location) -> void # # @return [ClassVariableWriteNode] a new instance of ClassVariableWriteNode # - # source://prism//lib/prism/node.rb#3552 + # source://prism//lib/prism/node.rb#3876 sig do params( name: Symbol, @@ -4186,42 +4617,42 @@ class Prism::ClassVariableWriteNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#3561 + # source://prism//lib/prism/node.rb#3885 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#3566 + # source://prism//lib/prism/node.rb#3890 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#3576 + # source://prism//lib/prism/node.rb#3900 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#3571 + # source://prism//lib/prism/node.rb#3895 def compact_child_nodes; end # def copy: (**params) -> ClassVariableWriteNode # - # source://prism//lib/prism/node.rb#3581 + # source://prism//lib/prism/node.rb#3905 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//lib/prism/node.rb#3566 + # source://prism//lib/prism/node.rb#3890 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#3595 + # source://prism//lib/prism/node.rb#3919 sig do params( keys: T::Array[Symbol] @@ -4231,30 +4662,30 @@ class Prism::ClassVariableWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#3605 + # source://prism//lib/prism/node.rb#3929 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#3540 + # source://prism//lib/prism/node.rb#3864 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#3543 + # source://prism//lib/prism/node.rb#3867 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String? # - # source://prism//lib/prism/node.rb#3600 + # source://prism//lib/prism/node.rb#3924 sig { returns(T.nilable(String)) } def operator; end # attr_reader operator_loc: Location? # - # source://prism//lib/prism/node.rb#3549 + # source://prism//lib/prism/node.rb#3873 sig { returns(T.nilable(Prism::Location)) } def operator_loc; end @@ -4273,12 +4704,12 @@ class Prism::ClassVariableWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#3629 + # source://prism//lib/prism/node.rb#3953 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#3546 + # source://prism//lib/prism/node.rb#3870 sig { returns(Prism::Node) } def value; end @@ -4290,7 +4721,7 @@ class Prism::ClassVariableWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#3639 + # source://prism//lib/prism/node.rb#3963 def type; end end end @@ -4298,31 +4729,26 @@ end # This represents a comment that was encountered during parsing. It is the # base class for all comment types. # -# source://prism//lib/prism/parse_result.rb#194 +# source://prism//lib/prism/parse_result.rb#228 class Prism::Comment # Create a new comment object with the given location. # # @return [Comment] a new instance of Comment # - # source://prism//lib/prism/parse_result.rb#199 + # source://prism//lib/prism/parse_result.rb#233 def initialize(location); end # Implement the hash pattern matching interface for Comment. # - # source://prism//lib/prism/parse_result.rb#204 + # source://prism//lib/prism/parse_result.rb#238 def deconstruct_keys(keys); end # The location of this comment in the source. # - # source://prism//lib/prism/parse_result.rb#196 + # source://prism//lib/prism/parse_result.rb#230 sig { returns(Prism::Location) } def location; end - # This can only be true for inline comments. - # - # @return [Boolean] - # - # source://prism//lib/prism/parse_result.rb#209 sig { returns(T::Boolean) } def trailing?; end end @@ -4482,12 +4908,24 @@ class Prism::Compiler # source://prism//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//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//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//lib/prism/compiler.rb#38 + def visit_case_match_node(node); end + # Visit the child nodes of the given node. # Compile a CaseNode node # @@ -4763,6 +5201,12 @@ class Prism::Compiler # source://prism//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//lib/prism/compiler.rb#38 + def visit_implicit_rest_node(node); end + # Visit the child nodes of the given node. # Compile a InNode node # @@ -4787,6 +5231,12 @@ class Prism::Compiler # source://prism//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//lib/prism/compiler.rb#38 + def visit_index_target_node(node); end + # Visit the child nodes of the given node. # Compile a InstanceVariableAndWriteNode node # @@ -4979,6 +5429,12 @@ class Prism::Compiler # source://prism//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//lib/prism/compiler.rb#38 + def visit_numbered_parameters_node(node); end + # Visit the child nodes of the given node. # Compile a NumberedReferenceReadNode node # @@ -5153,12 +5609,6 @@ class Prism::Compiler # source://prism//lib/prism/compiler.rb#38 def visit_statements_node(node); end - # Visit the child nodes of the given node. - # Compile a StringConcatNode node - # - # source://prism//lib/prism/compiler.rb#38 - def visit_string_concat_node(node); end - # Visit the child nodes of the given node. # Compile a StringNode node # @@ -5231,13 +5681,13 @@ end # Target &&= value # ^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#3648 +# source://prism//lib/prism/node.rb#3972 class Prism::ConstantAndWriteNode < ::Prism::Node # def initialize: (name: Symbol, name_loc: Location, operator_loc: Location, value: Node, location: Location) -> void # # @return [ConstantAndWriteNode] a new instance of ConstantAndWriteNode # - # source://prism//lib/prism/node.rb#3662 + # source://prism//lib/prism/node.rb#3986 sig do params( name: Symbol, @@ -5251,42 +5701,42 @@ class Prism::ConstantAndWriteNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#3671 + # source://prism//lib/prism/node.rb#3995 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#3676 + # source://prism//lib/prism/node.rb#4000 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#3686 + # source://prism//lib/prism/node.rb#4010 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#3681 + # source://prism//lib/prism/node.rb#4005 def compact_child_nodes; end # def copy: (**params) -> ConstantAndWriteNode # - # source://prism//lib/prism/node.rb#3691 + # source://prism//lib/prism/node.rb#4015 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//lib/prism/node.rb#3676 + # source://prism//lib/prism/node.rb#4000 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#3705 + # source://prism//lib/prism/node.rb#4029 sig do params( keys: T::Array[Symbol] @@ -5296,30 +5746,30 @@ class Prism::ConstantAndWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#3715 + # source://prism//lib/prism/node.rb#4039 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#3650 + # source://prism//lib/prism/node.rb#3974 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#3653 + # source://prism//lib/prism/node.rb#3977 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#3710 + # source://prism//lib/prism/node.rb#4034 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#3656 + # source://prism//lib/prism/node.rb#3980 sig { returns(Prism::Location) } def operator_loc; end @@ -5338,12 +5788,12 @@ class Prism::ConstantAndWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#3739 + # source://prism//lib/prism/node.rb#4063 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#3659 + # source://prism//lib/prism/node.rb#3983 sig { returns(Prism::Node) } def value; end @@ -5355,7 +5805,7 @@ class Prism::ConstantAndWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#3749 + # source://prism//lib/prism/node.rb#4073 def type; end end end @@ -5365,13 +5815,13 @@ end # Target += value # ^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#3758 +# source://prism//lib/prism/node.rb#4082 class Prism::ConstantOperatorWriteNode < ::Prism::Node # def initialize: (name: Symbol, name_loc: Location, operator_loc: Location, value: Node, operator: Symbol, location: Location) -> void # # @return [ConstantOperatorWriteNode] a new instance of ConstantOperatorWriteNode # - # source://prism//lib/prism/node.rb#3775 + # source://prism//lib/prism/node.rb#4099 sig do params( name: Symbol, @@ -5386,42 +5836,42 @@ class Prism::ConstantOperatorWriteNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#3785 + # source://prism//lib/prism/node.rb#4109 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#3790 + # source://prism//lib/prism/node.rb#4114 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#3800 + # source://prism//lib/prism/node.rb#4124 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#3795 + # source://prism//lib/prism/node.rb#4119 def compact_child_nodes; end # def copy: (**params) -> ConstantOperatorWriteNode # - # source://prism//lib/prism/node.rb#3805 + # source://prism//lib/prism/node.rb#4129 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//lib/prism/node.rb#3790 + # source://prism//lib/prism/node.rb#4114 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#3820 + # source://prism//lib/prism/node.rb#4144 sig do params( keys: T::Array[Symbol] @@ -5431,30 +5881,30 @@ class Prism::ConstantOperatorWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#3825 + # source://prism//lib/prism/node.rb#4149 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#3760 + # source://prism//lib/prism/node.rb#4084 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#3763 + # source://prism//lib/prism/node.rb#4087 sig { returns(Prism::Location) } def name_loc; end # attr_reader operator: Symbol # - # source://prism//lib/prism/node.rb#3772 + # source://prism//lib/prism/node.rb#4096 sig { returns(Symbol) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#3766 + # source://prism//lib/prism/node.rb#4090 sig { returns(Prism::Location) } def operator_loc; end @@ -5473,12 +5923,12 @@ class Prism::ConstantOperatorWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#3850 + # source://prism//lib/prism/node.rb#4174 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#3769 + # source://prism//lib/prism/node.rb#4093 sig { returns(Prism::Node) } def value; end @@ -5490,7 +5940,7 @@ class Prism::ConstantOperatorWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#3860 + # source://prism//lib/prism/node.rb#4184 def type; end end end @@ -5500,13 +5950,13 @@ end # Target ||= value # ^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#3869 +# source://prism//lib/prism/node.rb#4193 class Prism::ConstantOrWriteNode < ::Prism::Node # def initialize: (name: Symbol, name_loc: Location, operator_loc: Location, value: Node, location: Location) -> void # # @return [ConstantOrWriteNode] a new instance of ConstantOrWriteNode # - # source://prism//lib/prism/node.rb#3883 + # source://prism//lib/prism/node.rb#4207 sig do params( name: Symbol, @@ -5520,42 +5970,42 @@ class Prism::ConstantOrWriteNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#3892 + # source://prism//lib/prism/node.rb#4216 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#3897 + # source://prism//lib/prism/node.rb#4221 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#3907 + # source://prism//lib/prism/node.rb#4231 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#3902 + # source://prism//lib/prism/node.rb#4226 def compact_child_nodes; end # def copy: (**params) -> ConstantOrWriteNode # - # source://prism//lib/prism/node.rb#3912 + # source://prism//lib/prism/node.rb#4236 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//lib/prism/node.rb#3897 + # source://prism//lib/prism/node.rb#4221 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#3926 + # source://prism//lib/prism/node.rb#4250 sig do params( keys: T::Array[Symbol] @@ -5565,30 +6015,30 @@ class Prism::ConstantOrWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#3936 + # source://prism//lib/prism/node.rb#4260 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#3871 + # source://prism//lib/prism/node.rb#4195 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#3874 + # source://prism//lib/prism/node.rb#4198 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#3931 + # source://prism//lib/prism/node.rb#4255 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#3877 + # source://prism//lib/prism/node.rb#4201 sig { returns(Prism::Location) } def operator_loc; end @@ -5607,12 +6057,12 @@ class Prism::ConstantOrWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#3960 + # source://prism//lib/prism/node.rb#4284 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#3880 + # source://prism//lib/prism/node.rb#4204 sig { returns(Prism::Node) } def value; end @@ -5624,7 +6074,7 @@ class Prism::ConstantOrWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#3970 + # source://prism//lib/prism/node.rb#4294 def type; end end end @@ -5634,13 +6084,13 @@ end # Parent::Child &&= value # ^^^^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#3979 +# source://prism//lib/prism/node.rb#4303 class Prism::ConstantPathAndWriteNode < ::Prism::Node # def initialize: (target: ConstantPathNode, operator_loc: Location, value: Node, location: Location) -> void # # @return [ConstantPathAndWriteNode] a new instance of ConstantPathAndWriteNode # - # source://prism//lib/prism/node.rb#3990 + # source://prism//lib/prism/node.rb#4314 sig do params( target: Prism::ConstantPathNode, @@ -5653,42 +6103,42 @@ class Prism::ConstantPathAndWriteNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#3998 + # source://prism//lib/prism/node.rb#4322 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#4003 + # source://prism//lib/prism/node.rb#4327 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#4013 + # source://prism//lib/prism/node.rb#4337 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#4008 + # source://prism//lib/prism/node.rb#4332 def compact_child_nodes; end # def copy: (**params) -> ConstantPathAndWriteNode # - # source://prism//lib/prism/node.rb#4018 + # source://prism//lib/prism/node.rb#4342 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//lib/prism/node.rb#4003 + # source://prism//lib/prism/node.rb#4327 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#4031 + # source://prism//lib/prism/node.rb#4355 sig do params( keys: T::Array[Symbol] @@ -5698,24 +6148,24 @@ class Prism::ConstantPathAndWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#4041 + # source://prism//lib/prism/node.rb#4365 def inspect(inspector = T.unsafe(nil)); end # def operator: () -> String # - # source://prism//lib/prism/node.rb#4036 + # source://prism//lib/prism/node.rb#4360 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#3984 + # source://prism//lib/prism/node.rb#4308 sig { returns(Prism::Location) } def operator_loc; end # attr_reader target: ConstantPathNode # - # source://prism//lib/prism/node.rb#3981 + # source://prism//lib/prism/node.rb#4305 sig { returns(Prism::ConstantPathNode) } def target; end @@ -5734,12 +6184,12 @@ class Prism::ConstantPathAndWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#4065 + # source://prism//lib/prism/node.rb#4389 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#3987 + # source://prism//lib/prism/node.rb#4311 sig { returns(Prism::Node) } def value; end @@ -5751,7 +6201,7 @@ class Prism::ConstantPathAndWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#4075 + # source://prism//lib/prism/node.rb#4399 def type; end end end @@ -5761,13 +6211,13 @@ end # Foo::Bar # ^^^^^^^^ # -# source://prism//lib/prism/node.rb#4084 +# source://prism//lib/prism/node.rb#4408 class Prism::ConstantPathNode < ::Prism::Node # def initialize: (parent: Node?, child: Node, delimiter_loc: Location, location: Location) -> void # # @return [ConstantPathNode] a new instance of ConstantPathNode # - # source://prism//lib/prism/node.rb#4095 + # source://prism//lib/prism/node.rb#4419 sig do params( parent: T.nilable(Prism::Node), @@ -5780,48 +6230,48 @@ class Prism::ConstantPathNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#4103 + # source://prism//lib/prism/node.rb#4427 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # attr_reader child: Node # - # source://prism//lib/prism/node.rb#4089 + # source://prism//lib/prism/node.rb#4413 sig { returns(Prism::Node) } def child; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#4108 + # source://prism//lib/prism/node.rb#4432 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#4121 + # source://prism//lib/prism/node.rb#4445 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#4113 + # source://prism//lib/prism/node.rb#4437 def compact_child_nodes; end # def copy: (**params) -> ConstantPathNode # - # source://prism//lib/prism/node.rb#4126 + # source://prism//lib/prism/node.rb#4450 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//lib/prism/node.rb#4108 + # source://prism//lib/prism/node.rb#4432 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#4139 + # source://prism//lib/prism/node.rb#4463 sig do params( keys: T::Array[Symbol] @@ -5831,34 +6281,35 @@ class Prism::ConstantPathNode < ::Prism::Node # def delimiter: () -> String # - # source://prism//lib/prism/node.rb#4144 + # source://prism//lib/prism/node.rb#4468 sig { returns(String) } def delimiter; end # attr_reader delimiter_loc: Location # - # source://prism//lib/prism/node.rb#4092 + # source://prism//lib/prism/node.rb#4416 sig { returns(Prism::Location) } def delimiter_loc; end # Returns the full name of this constant path. For example: "Foo::Bar" # - # source://prism//lib/prism/node_ext.rb#90 + # source://prism//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] + # Returns the list of parts for the full name of this constant path. + # For example: [:Foo, :Bar] # - # source://prism//lib/prism/node_ext.rb#77 + # source://prism//lib/prism/node_ext.rb#112 def full_name_parts; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#4149 + # source://prism//lib/prism/node.rb#4473 def inspect(inspector = T.unsafe(nil)); end # attr_reader parent: Node? # - # source://prism//lib/prism/node.rb#4086 + # source://prism//lib/prism/node.rb#4410 sig { returns(T.nilable(Prism::Node)) } def parent; end @@ -5877,7 +6328,7 @@ class Prism::ConstantPathNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#4177 + # source://prism//lib/prism/node.rb#4501 def type; end class << self @@ -5888,23 +6339,33 @@ class Prism::ConstantPathNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#4187 + # source://prism//lib/prism/node.rb#4511 def type; end end end +# An error class raised when dynamic parts are found while computing a +# constant path's full name. For example: +# Foo::Bar::Baz -> does not raise because all parts of the constant path are +# simple constants +# var::Bar::Baz -> raises because the first part of the constant path is a +# local variable +# +# source://prism//lib/prism/node_ext.rb#108 +class Prism::ConstantPathNode::DynamicPartsInConstantPathError < ::StandardError; end + # Represents assigning to a constant path using an operator that isn't `=`. # # Parent::Child += value # ^^^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#4196 +# source://prism//lib/prism/node.rb#4520 class Prism::ConstantPathOperatorWriteNode < ::Prism::Node # def initialize: (target: ConstantPathNode, operator_loc: Location, value: Node, operator: Symbol, location: Location) -> void # # @return [ConstantPathOperatorWriteNode] a new instance of ConstantPathOperatorWriteNode # - # source://prism//lib/prism/node.rb#4210 + # source://prism//lib/prism/node.rb#4534 sig do params( target: Prism::ConstantPathNode, @@ -5918,42 +6379,42 @@ class Prism::ConstantPathOperatorWriteNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#4219 + # source://prism//lib/prism/node.rb#4543 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#4224 + # source://prism//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//lib/prism/node.rb#4234 + # source://prism//lib/prism/node.rb#4558 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#4229 + # source://prism//lib/prism/node.rb#4553 def compact_child_nodes; end # def copy: (**params) -> ConstantPathOperatorWriteNode # - # source://prism//lib/prism/node.rb#4239 + # source://prism//lib/prism/node.rb#4563 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//lib/prism/node.rb#4224 + # source://prism//lib/prism/node.rb#4548 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#4253 + # source://prism//lib/prism/node.rb#4577 sig do params( keys: T::Array[Symbol] @@ -5963,24 +6424,24 @@ class Prism::ConstantPathOperatorWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#4258 + # source://prism//lib/prism/node.rb#4582 def inspect(inspector = T.unsafe(nil)); end # attr_reader operator: Symbol # - # source://prism//lib/prism/node.rb#4207 + # source://prism//lib/prism/node.rb#4531 sig { returns(Symbol) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#4201 + # source://prism//lib/prism/node.rb#4525 sig { returns(Prism::Location) } def operator_loc; end # attr_reader target: ConstantPathNode # - # source://prism//lib/prism/node.rb#4198 + # source://prism//lib/prism/node.rb#4522 sig { returns(Prism::ConstantPathNode) } def target; end @@ -5999,12 +6460,12 @@ class Prism::ConstantPathOperatorWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#4283 + # source://prism//lib/prism/node.rb#4607 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#4204 + # source://prism//lib/prism/node.rb#4528 sig { returns(Prism::Node) } def value; end @@ -6016,7 +6477,7 @@ class Prism::ConstantPathOperatorWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#4293 + # source://prism//lib/prism/node.rb#4617 def type; end end end @@ -6026,13 +6487,13 @@ end # Parent::Child ||= value # ^^^^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#4302 +# source://prism//lib/prism/node.rb#4626 class Prism::ConstantPathOrWriteNode < ::Prism::Node # def initialize: (target: ConstantPathNode, operator_loc: Location, value: Node, location: Location) -> void # # @return [ConstantPathOrWriteNode] a new instance of ConstantPathOrWriteNode # - # source://prism//lib/prism/node.rb#4313 + # source://prism//lib/prism/node.rb#4637 sig do params( target: Prism::ConstantPathNode, @@ -6045,42 +6506,42 @@ class Prism::ConstantPathOrWriteNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#4321 + # source://prism//lib/prism/node.rb#4645 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#4326 + # source://prism//lib/prism/node.rb#4650 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#4336 + # source://prism//lib/prism/node.rb#4660 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#4331 + # source://prism//lib/prism/node.rb#4655 def compact_child_nodes; end # def copy: (**params) -> ConstantPathOrWriteNode # - # source://prism//lib/prism/node.rb#4341 + # source://prism//lib/prism/node.rb#4665 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//lib/prism/node.rb#4326 + # source://prism//lib/prism/node.rb#4650 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#4354 + # source://prism//lib/prism/node.rb#4678 sig do params( keys: T::Array[Symbol] @@ -6090,24 +6551,24 @@ class Prism::ConstantPathOrWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#4364 + # source://prism//lib/prism/node.rb#4688 def inspect(inspector = T.unsafe(nil)); end # def operator: () -> String # - # source://prism//lib/prism/node.rb#4359 + # source://prism//lib/prism/node.rb#4683 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#4307 + # source://prism//lib/prism/node.rb#4631 sig { returns(Prism::Location) } def operator_loc; end # attr_reader target: ConstantPathNode # - # source://prism//lib/prism/node.rb#4304 + # source://prism//lib/prism/node.rb#4628 sig { returns(Prism::ConstantPathNode) } def target; end @@ -6126,12 +6587,12 @@ class Prism::ConstantPathOrWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#4388 + # source://prism//lib/prism/node.rb#4712 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#4310 + # source://prism//lib/prism/node.rb#4634 sig { returns(Prism::Node) } def value; end @@ -6143,7 +6604,7 @@ class Prism::ConstantPathOrWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#4398 + # source://prism//lib/prism/node.rb#4722 def type; end end end @@ -6153,13 +6614,13 @@ end # Foo::Foo, Bar::Bar = baz # ^^^^^^^^ ^^^^^^^^ # -# source://prism//lib/prism/node.rb#4407 +# source://prism//lib/prism/node.rb#4731 class Prism::ConstantPathTargetNode < ::Prism::Node # def initialize: (parent: Node?, child: Node, delimiter_loc: Location, location: Location) -> void # # @return [ConstantPathTargetNode] a new instance of ConstantPathTargetNode # - # source://prism//lib/prism/node.rb#4418 + # source://prism//lib/prism/node.rb#4742 sig do params( parent: T.nilable(Prism::Node), @@ -6172,48 +6633,48 @@ class Prism::ConstantPathTargetNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#4426 + # source://prism//lib/prism/node.rb#4750 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # attr_reader child: Node # - # source://prism//lib/prism/node.rb#4412 + # source://prism//lib/prism/node.rb#4736 sig { returns(Prism::Node) } def child; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#4431 + # source://prism//lib/prism/node.rb#4755 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#4444 + # source://prism//lib/prism/node.rb#4768 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#4436 + # source://prism//lib/prism/node.rb#4760 def compact_child_nodes; end # def copy: (**params) -> ConstantPathTargetNode # - # source://prism//lib/prism/node.rb#4449 + # source://prism//lib/prism/node.rb#4773 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//lib/prism/node.rb#4431 + # source://prism//lib/prism/node.rb#4755 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#4462 + # source://prism//lib/prism/node.rb#4786 sig do params( keys: T::Array[Symbol] @@ -6223,34 +6684,35 @@ class Prism::ConstantPathTargetNode < ::Prism::Node # def delimiter: () -> String # - # source://prism//lib/prism/node.rb#4467 + # source://prism//lib/prism/node.rb#4791 sig { returns(String) } def delimiter; end # attr_reader delimiter_loc: Location # - # source://prism//lib/prism/node.rb#4415 + # source://prism//lib/prism/node.rb#4739 sig { returns(Prism::Location) } def delimiter_loc; end # Returns the full name of this constant path. For example: "Foo::Bar" # - # source://prism//lib/prism/node_ext.rb#102 + # source://prism//lib/prism/node_ext.rb#142 def full_name; end - # Returns the list of parts for the full name of this constant path. For example: [:Foo, :Bar] + # Returns the list of parts for the full name of this constant path. + # For example: [:Foo, :Bar] # - # source://prism//lib/prism/node_ext.rb#97 + # source://prism//lib/prism/node_ext.rb#137 def full_name_parts; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#4472 + # source://prism//lib/prism/node.rb#4796 def inspect(inspector = T.unsafe(nil)); end # attr_reader parent: Node? # - # source://prism//lib/prism/node.rb#4409 + # source://prism//lib/prism/node.rb#4733 sig { returns(T.nilable(Prism::Node)) } def parent; end @@ -6269,7 +6731,7 @@ class Prism::ConstantPathTargetNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#4500 + # source://prism//lib/prism/node.rb#4824 def type; end class << self @@ -6280,7 +6742,7 @@ class Prism::ConstantPathTargetNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#4510 + # source://prism//lib/prism/node.rb#4834 def type; end end end @@ -6296,13 +6758,13 @@ end # ::Foo::Bar = 1 # ^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#4525 +# source://prism//lib/prism/node.rb#4849 class Prism::ConstantPathWriteNode < ::Prism::Node # def initialize: (target: ConstantPathNode, operator_loc: Location, value: Node, location: Location) -> void # # @return [ConstantPathWriteNode] a new instance of ConstantPathWriteNode # - # source://prism//lib/prism/node.rb#4536 + # source://prism//lib/prism/node.rb#4860 sig do params( target: Prism::ConstantPathNode, @@ -6315,42 +6777,42 @@ class Prism::ConstantPathWriteNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#4544 + # source://prism//lib/prism/node.rb#4868 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#4549 + # source://prism//lib/prism/node.rb#4873 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#4559 + # source://prism//lib/prism/node.rb#4883 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#4554 + # source://prism//lib/prism/node.rb#4878 def compact_child_nodes; end # def copy: (**params) -> ConstantPathWriteNode # - # source://prism//lib/prism/node.rb#4564 + # source://prism//lib/prism/node.rb#4888 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//lib/prism/node.rb#4549 + # source://prism//lib/prism/node.rb#4873 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#4577 + # source://prism//lib/prism/node.rb#4901 sig do params( keys: T::Array[Symbol] @@ -6360,24 +6822,24 @@ class Prism::ConstantPathWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#4587 + # source://prism//lib/prism/node.rb#4911 def inspect(inspector = T.unsafe(nil)); end # def operator: () -> String # - # source://prism//lib/prism/node.rb#4582 + # source://prism//lib/prism/node.rb#4906 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#4530 + # source://prism//lib/prism/node.rb#4854 sig { returns(Prism::Location) } def operator_loc; end # attr_reader target: ConstantPathNode # - # source://prism//lib/prism/node.rb#4527 + # source://prism//lib/prism/node.rb#4851 sig { returns(Prism::ConstantPathNode) } def target; end @@ -6396,12 +6858,12 @@ class Prism::ConstantPathWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#4611 + # source://prism//lib/prism/node.rb#4935 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#4533 + # source://prism//lib/prism/node.rb#4857 sig { returns(Prism::Node) } def value; end @@ -6413,7 +6875,7 @@ class Prism::ConstantPathWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#4621 + # source://prism//lib/prism/node.rb#4945 def type; end end end @@ -6423,54 +6885,54 @@ end # Foo # ^^^ # -# source://prism//lib/prism/node.rb#4630 +# source://prism//lib/prism/node.rb#4954 class Prism::ConstantReadNode < ::Prism::Node # def initialize: (name: Symbol, location: Location) -> void # # @return [ConstantReadNode] a new instance of ConstantReadNode # - # source://prism//lib/prism/node.rb#4635 + # source://prism//lib/prism/node.rb#4959 sig { params(name: Symbol, location: Prism::Location).void } def initialize(name, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#4641 + # source://prism//lib/prism/node.rb#4965 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#4646 + # source://prism//lib/prism/node.rb#4970 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#4656 + # source://prism//lib/prism/node.rb#4980 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#4651 + # source://prism//lib/prism/node.rb#4975 def compact_child_nodes; end # def copy: (**params) -> ConstantReadNode # - # source://prism//lib/prism/node.rb#4661 + # source://prism//lib/prism/node.rb#4985 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//lib/prism/node.rb#4646 + # source://prism//lib/prism/node.rb#4970 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#4672 + # source://prism//lib/prism/node.rb#4996 sig do params( keys: T::Array[Symbol] @@ -6480,22 +6942,23 @@ class Prism::ConstantReadNode < ::Prism::Node # Returns the full name of this constant. For example: "Foo" # - # source://prism//lib/prism/node_ext.rb#70 + # source://prism//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] + # Returns the list of parts for the full name of this constant. + # For example: [:Foo] # - # source://prism//lib/prism/node_ext.rb#65 + # source://prism//lib/prism/node_ext.rb#91 def full_name_parts; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#4677 + # source://prism//lib/prism/node.rb#5001 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#4632 + # source://prism//lib/prism/node.rb#4956 sig { returns(Symbol) } def name; end @@ -6514,7 +6977,7 @@ class Prism::ConstantReadNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#4697 + # source://prism//lib/prism/node.rb#5021 def type; end class << self @@ -6525,7 +6988,7 @@ class Prism::ConstantReadNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#4707 + # source://prism//lib/prism/node.rb#5031 def type; end end end @@ -6535,54 +6998,54 @@ end # Foo, Bar = baz # ^^^ ^^^ # -# source://prism//lib/prism/node.rb#4716 +# source://prism//lib/prism/node.rb#5040 class Prism::ConstantTargetNode < ::Prism::Node # def initialize: (name: Symbol, location: Location) -> void # # @return [ConstantTargetNode] a new instance of ConstantTargetNode # - # source://prism//lib/prism/node.rb#4721 + # source://prism//lib/prism/node.rb#5045 sig { params(name: Symbol, location: Prism::Location).void } def initialize(name, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#4727 + # source://prism//lib/prism/node.rb#5051 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#4732 + # source://prism//lib/prism/node.rb#5056 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#4742 + # source://prism//lib/prism/node.rb#5066 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#4737 + # source://prism//lib/prism/node.rb#5061 def compact_child_nodes; end # def copy: (**params) -> ConstantTargetNode # - # source://prism//lib/prism/node.rb#4747 + # source://prism//lib/prism/node.rb#5071 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//lib/prism/node.rb#4732 + # source://prism//lib/prism/node.rb#5056 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#4758 + # source://prism//lib/prism/node.rb#5082 sig do params( keys: T::Array[Symbol] @@ -6592,12 +7055,12 @@ class Prism::ConstantTargetNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#4763 + # source://prism//lib/prism/node.rb#5087 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#4718 + # source://prism//lib/prism/node.rb#5042 sig { returns(Symbol) } def name; end @@ -6616,7 +7079,7 @@ class Prism::ConstantTargetNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#4783 + # source://prism//lib/prism/node.rb#5107 def type; end class << self @@ -6627,7 +7090,7 @@ class Prism::ConstantTargetNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#4793 + # source://prism//lib/prism/node.rb#5117 def type; end end end @@ -6637,13 +7100,13 @@ end # Foo = 1 # ^^^^^^^ # -# source://prism//lib/prism/node.rb#4802 +# source://prism//lib/prism/node.rb#5126 class Prism::ConstantWriteNode < ::Prism::Node # def initialize: (name: Symbol, name_loc: Location, value: Node, operator_loc: Location, location: Location) -> void # # @return [ConstantWriteNode] a new instance of ConstantWriteNode # - # source://prism//lib/prism/node.rb#4816 + # source://prism//lib/prism/node.rb#5140 sig do params( name: Symbol, @@ -6657,42 +7120,42 @@ class Prism::ConstantWriteNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#4825 + # source://prism//lib/prism/node.rb#5149 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#4830 + # source://prism//lib/prism/node.rb#5154 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#4840 + # source://prism//lib/prism/node.rb#5164 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#4835 + # source://prism//lib/prism/node.rb#5159 def compact_child_nodes; end # def copy: (**params) -> ConstantWriteNode # - # source://prism//lib/prism/node.rb#4845 + # source://prism//lib/prism/node.rb#5169 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//lib/prism/node.rb#4830 + # source://prism//lib/prism/node.rb#5154 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#4859 + # source://prism//lib/prism/node.rb#5183 sig do params( keys: T::Array[Symbol] @@ -6702,30 +7165,30 @@ class Prism::ConstantWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#4869 + # source://prism//lib/prism/node.rb#5193 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#4804 + # source://prism//lib/prism/node.rb#5128 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#4807 + # source://prism//lib/prism/node.rb#5131 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#4864 + # source://prism//lib/prism/node.rb#5188 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#4813 + # source://prism//lib/prism/node.rb#5137 sig { returns(Prism::Location) } def operator_loc; end @@ -6744,12 +7207,12 @@ class Prism::ConstantWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#4893 + # source://prism//lib/prism/node.rb#5217 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#4810 + # source://prism//lib/prism/node.rb#5134 sig { returns(Prism::Node) } def value; end @@ -6761,21 +7224,12 @@ class Prism::ConstantWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#4903 + # source://prism//lib/prism/node.rb#5227 def type; end end end -# DATAComment objects correspond to comments that are after the __END__ -# keyword in a source file. -# -# source://prism//lib/prism/parse_result.rb#240 -class Prism::DATAComment < ::Prism::Comment - # Returns a string representation of this comment. - # - # source://prism//lib/prism/parse_result.rb#242 - def inspect; 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: @@ -6833,12 +7287,12 @@ module Prism::DSL # Create a new ArgumentsNode node # # source://prism//lib/prism/dsl.rb#66 - def ArgumentsNode(arguments, flags, location = T.unsafe(nil)); end + def ArgumentsNode(flags, arguments, location = T.unsafe(nil)); end # Create a new ArrayNode node # # source://prism//lib/prism/dsl.rb#71 - def ArrayNode(elements, opening_loc, closing_loc, location = T.unsafe(nil)); end + def ArrayNode(flags, elements, opening_loc, closing_loc, location = T.unsafe(nil)); end # Create a new ArrayPatternNode node # @@ -6878,7 +7332,7 @@ module Prism::DSL # Create a new BlockNode node # # source://prism//lib/prism/dsl.rb#111 - def BlockNode(locals, parameters, body, opening_loc, closing_loc, location = T.unsafe(nil)); end + def BlockNode(locals, locals_body_index, parameters, body, opening_loc, closing_loc, location = T.unsafe(nil)); end # Create a new BlockParameterNode node # @@ -6898,376 +7352,396 @@ module Prism::DSL # Create a new CallAndWriteNode node # # source://prism//lib/prism/dsl.rb#131 - def CallAndWriteNode(receiver, call_operator_loc, message_loc, flags, read_name, write_name, operator_loc, value, location = T.unsafe(nil)); end + def CallAndWriteNode(flags, receiver, call_operator_loc, message_loc, read_name, write_name, operator_loc, value, location = T.unsafe(nil)); end # Create a new CallNode node # # source://prism//lib/prism/dsl.rb#136 - def CallNode(receiver, call_operator_loc, message_loc, opening_loc, arguments, closing_loc, block, flags, name, location = T.unsafe(nil)); end + def CallNode(flags, receiver, call_operator_loc, name, message_loc, opening_loc, arguments, closing_loc, block, location = T.unsafe(nil)); end # Create a new CallOperatorWriteNode node # # source://prism//lib/prism/dsl.rb#141 - def CallOperatorWriteNode(receiver, call_operator_loc, message_loc, flags, read_name, write_name, operator, operator_loc, value, location = T.unsafe(nil)); end + def CallOperatorWriteNode(flags, receiver, call_operator_loc, message_loc, read_name, write_name, operator, operator_loc, value, location = T.unsafe(nil)); end # Create a new CallOrWriteNode node # # source://prism//lib/prism/dsl.rb#146 - def CallOrWriteNode(receiver, call_operator_loc, message_loc, flags, read_name, write_name, operator_loc, value, location = T.unsafe(nil)); end + def CallOrWriteNode(flags, receiver, call_operator_loc, message_loc, read_name, write_name, operator_loc, value, location = T.unsafe(nil)); end - # Create a new CapturePatternNode node + # Create a new CallTargetNode node # # source://prism//lib/prism/dsl.rb#151 + def CallTargetNode(flags, receiver, call_operator_loc, name, message_loc, location = T.unsafe(nil)); end + + # Create a new CapturePatternNode node + # + # source://prism//lib/prism/dsl.rb#156 def CapturePatternNode(value, target, operator_loc, location = T.unsafe(nil)); end + # Create a new CaseMatchNode node + # + # source://prism//lib/prism/dsl.rb#161 + def CaseMatchNode(predicate, conditions, consequent, case_keyword_loc, end_keyword_loc, location = T.unsafe(nil)); end + # Create a new CaseNode node # - # source://prism//lib/prism/dsl.rb#156 + # source://prism//lib/prism/dsl.rb#166 def CaseNode(predicate, conditions, consequent, case_keyword_loc, end_keyword_loc, location = T.unsafe(nil)); end # Create a new ClassNode node # - # source://prism//lib/prism/dsl.rb#161 + # source://prism//lib/prism/dsl.rb#171 def ClassNode(locals, class_keyword_loc, constant_path, inheritance_operator_loc, superclass, body, end_keyword_loc, name, location = T.unsafe(nil)); end # Create a new ClassVariableAndWriteNode node # - # source://prism//lib/prism/dsl.rb#166 + # source://prism//lib/prism/dsl.rb#176 def ClassVariableAndWriteNode(name, name_loc, operator_loc, value, location = T.unsafe(nil)); end # Create a new ClassVariableOperatorWriteNode node # - # source://prism//lib/prism/dsl.rb#171 + # source://prism//lib/prism/dsl.rb#181 def ClassVariableOperatorWriteNode(name, name_loc, operator_loc, value, operator, location = T.unsafe(nil)); end # Create a new ClassVariableOrWriteNode node # - # source://prism//lib/prism/dsl.rb#176 + # source://prism//lib/prism/dsl.rb#186 def ClassVariableOrWriteNode(name, name_loc, operator_loc, value, location = T.unsafe(nil)); end # Create a new ClassVariableReadNode node # - # source://prism//lib/prism/dsl.rb#181 + # source://prism//lib/prism/dsl.rb#191 def ClassVariableReadNode(name, location = T.unsafe(nil)); end # Create a new ClassVariableTargetNode node # - # source://prism//lib/prism/dsl.rb#186 + # source://prism//lib/prism/dsl.rb#196 def ClassVariableTargetNode(name, location = T.unsafe(nil)); end # Create a new ClassVariableWriteNode node # - # source://prism//lib/prism/dsl.rb#191 + # source://prism//lib/prism/dsl.rb#201 def ClassVariableWriteNode(name, name_loc, value, operator_loc, location = T.unsafe(nil)); end # Create a new ConstantAndWriteNode node # - # source://prism//lib/prism/dsl.rb#196 + # source://prism//lib/prism/dsl.rb#206 def ConstantAndWriteNode(name, name_loc, operator_loc, value, location = T.unsafe(nil)); end # Create a new ConstantOperatorWriteNode node # - # source://prism//lib/prism/dsl.rb#201 + # source://prism//lib/prism/dsl.rb#211 def ConstantOperatorWriteNode(name, name_loc, operator_loc, value, operator, location = T.unsafe(nil)); end # Create a new ConstantOrWriteNode node # - # source://prism//lib/prism/dsl.rb#206 + # source://prism//lib/prism/dsl.rb#216 def ConstantOrWriteNode(name, name_loc, operator_loc, value, location = T.unsafe(nil)); end # Create a new ConstantPathAndWriteNode node # - # source://prism//lib/prism/dsl.rb#211 + # source://prism//lib/prism/dsl.rb#221 def ConstantPathAndWriteNode(target, operator_loc, value, location = T.unsafe(nil)); end # Create a new ConstantPathNode node # - # source://prism//lib/prism/dsl.rb#216 + # source://prism//lib/prism/dsl.rb#226 def ConstantPathNode(parent, child, delimiter_loc, location = T.unsafe(nil)); end # Create a new ConstantPathOperatorWriteNode node # - # source://prism//lib/prism/dsl.rb#221 + # source://prism//lib/prism/dsl.rb#231 def ConstantPathOperatorWriteNode(target, operator_loc, value, operator, location = T.unsafe(nil)); end # Create a new ConstantPathOrWriteNode node # - # source://prism//lib/prism/dsl.rb#226 + # source://prism//lib/prism/dsl.rb#236 def ConstantPathOrWriteNode(target, operator_loc, value, location = T.unsafe(nil)); end # Create a new ConstantPathTargetNode node # - # source://prism//lib/prism/dsl.rb#231 + # source://prism//lib/prism/dsl.rb#241 def ConstantPathTargetNode(parent, child, delimiter_loc, location = T.unsafe(nil)); end # Create a new ConstantPathWriteNode node # - # source://prism//lib/prism/dsl.rb#236 + # source://prism//lib/prism/dsl.rb#246 def ConstantPathWriteNode(target, operator_loc, value, location = T.unsafe(nil)); end # Create a new ConstantReadNode node # - # source://prism//lib/prism/dsl.rb#241 + # source://prism//lib/prism/dsl.rb#251 def ConstantReadNode(name, location = T.unsafe(nil)); end # Create a new ConstantTargetNode node # - # source://prism//lib/prism/dsl.rb#246 + # source://prism//lib/prism/dsl.rb#256 def ConstantTargetNode(name, location = T.unsafe(nil)); end # Create a new ConstantWriteNode node # - # source://prism//lib/prism/dsl.rb#251 + # source://prism//lib/prism/dsl.rb#261 def ConstantWriteNode(name, name_loc, value, operator_loc, location = T.unsafe(nil)); end # Create a new DefNode node # - # source://prism//lib/prism/dsl.rb#256 - def DefNode(name, name_loc, receiver, parameters, body, locals, def_keyword_loc, operator_loc, lparen_loc, rparen_loc, equal_loc, end_keyword_loc, location = T.unsafe(nil)); end + # source://prism//lib/prism/dsl.rb#266 + def DefNode(name, name_loc, receiver, parameters, body, locals, locals_body_index, def_keyword_loc, operator_loc, lparen_loc, rparen_loc, equal_loc, end_keyword_loc, location = T.unsafe(nil)); end # Create a new DefinedNode node # - # source://prism//lib/prism/dsl.rb#261 + # source://prism//lib/prism/dsl.rb#271 def DefinedNode(lparen_loc, value, rparen_loc, keyword_loc, location = T.unsafe(nil)); end # Create a new ElseNode node # - # source://prism//lib/prism/dsl.rb#266 + # source://prism//lib/prism/dsl.rb#276 def ElseNode(else_keyword_loc, statements, end_keyword_loc, location = T.unsafe(nil)); end # Create a new EmbeddedStatementsNode node # - # source://prism//lib/prism/dsl.rb#271 + # source://prism//lib/prism/dsl.rb#281 def EmbeddedStatementsNode(opening_loc, statements, closing_loc, location = T.unsafe(nil)); end # Create a new EmbeddedVariableNode node # - # source://prism//lib/prism/dsl.rb#276 + # source://prism//lib/prism/dsl.rb#286 def EmbeddedVariableNode(operator_loc, variable, location = T.unsafe(nil)); end # Create a new EnsureNode node # - # source://prism//lib/prism/dsl.rb#281 + # source://prism//lib/prism/dsl.rb#291 def EnsureNode(ensure_keyword_loc, statements, end_keyword_loc, location = T.unsafe(nil)); end # Create a new FalseNode node # - # source://prism//lib/prism/dsl.rb#286 + # source://prism//lib/prism/dsl.rb#296 def FalseNode(location = T.unsafe(nil)); end # Create a new FindPatternNode node # - # source://prism//lib/prism/dsl.rb#291 + # source://prism//lib/prism/dsl.rb#301 def FindPatternNode(constant, left, requireds, right, opening_loc, closing_loc, location = T.unsafe(nil)); end # Create a new FlipFlopNode node # - # source://prism//lib/prism/dsl.rb#296 - def FlipFlopNode(left, right, operator_loc, flags, location = T.unsafe(nil)); end + # source://prism//lib/prism/dsl.rb#306 + def FlipFlopNode(flags, left, right, operator_loc, location = T.unsafe(nil)); end # Create a new FloatNode node # - # source://prism//lib/prism/dsl.rb#301 + # source://prism//lib/prism/dsl.rb#311 def FloatNode(location = T.unsafe(nil)); end # Create a new ForNode node # - # source://prism//lib/prism/dsl.rb#306 + # source://prism//lib/prism/dsl.rb#316 def ForNode(index, collection, statements, for_keyword_loc, in_keyword_loc, do_keyword_loc, end_keyword_loc, location = T.unsafe(nil)); end # Create a new ForwardingArgumentsNode node # - # source://prism//lib/prism/dsl.rb#311 + # source://prism//lib/prism/dsl.rb#321 def ForwardingArgumentsNode(location = T.unsafe(nil)); end # Create a new ForwardingParameterNode node # - # source://prism//lib/prism/dsl.rb#316 + # source://prism//lib/prism/dsl.rb#326 def ForwardingParameterNode(location = T.unsafe(nil)); end # Create a new ForwardingSuperNode node # - # source://prism//lib/prism/dsl.rb#321 + # source://prism//lib/prism/dsl.rb#331 def ForwardingSuperNode(block, location = T.unsafe(nil)); end # Create a new GlobalVariableAndWriteNode node # - # source://prism//lib/prism/dsl.rb#326 + # source://prism//lib/prism/dsl.rb#336 def GlobalVariableAndWriteNode(name, name_loc, operator_loc, value, location = T.unsafe(nil)); end # Create a new GlobalVariableOperatorWriteNode node # - # source://prism//lib/prism/dsl.rb#331 + # source://prism//lib/prism/dsl.rb#341 def GlobalVariableOperatorWriteNode(name, name_loc, operator_loc, value, operator, location = T.unsafe(nil)); end # Create a new GlobalVariableOrWriteNode node # - # source://prism//lib/prism/dsl.rb#336 + # source://prism//lib/prism/dsl.rb#346 def GlobalVariableOrWriteNode(name, name_loc, operator_loc, value, location = T.unsafe(nil)); end # Create a new GlobalVariableReadNode node # - # source://prism//lib/prism/dsl.rb#341 + # source://prism//lib/prism/dsl.rb#351 def GlobalVariableReadNode(name, location = T.unsafe(nil)); end # Create a new GlobalVariableTargetNode node # - # source://prism//lib/prism/dsl.rb#346 + # source://prism//lib/prism/dsl.rb#356 def GlobalVariableTargetNode(name, location = T.unsafe(nil)); end # Create a new GlobalVariableWriteNode node # - # source://prism//lib/prism/dsl.rb#351 + # source://prism//lib/prism/dsl.rb#361 def GlobalVariableWriteNode(name, name_loc, value, operator_loc, location = T.unsafe(nil)); end # Create a new HashNode node # - # source://prism//lib/prism/dsl.rb#356 + # source://prism//lib/prism/dsl.rb#366 def HashNode(opening_loc, elements, closing_loc, location = T.unsafe(nil)); end # Create a new HashPatternNode node # - # source://prism//lib/prism/dsl.rb#361 + # source://prism//lib/prism/dsl.rb#371 def HashPatternNode(constant, elements, rest, opening_loc, closing_loc, location = T.unsafe(nil)); end # Create a new IfNode node # - # source://prism//lib/prism/dsl.rb#366 - def IfNode(if_keyword_loc, predicate, statements, consequent, end_keyword_loc, location = T.unsafe(nil)); end + # source://prism//lib/prism/dsl.rb#376 + def IfNode(if_keyword_loc, predicate, then_keyword_loc, statements, consequent, end_keyword_loc, location = T.unsafe(nil)); end # Create a new ImaginaryNode node # - # source://prism//lib/prism/dsl.rb#371 + # source://prism//lib/prism/dsl.rb#381 def ImaginaryNode(numeric, location = T.unsafe(nil)); end # Create a new ImplicitNode node # - # source://prism//lib/prism/dsl.rb#376 + # source://prism//lib/prism/dsl.rb#386 def ImplicitNode(value, location = T.unsafe(nil)); end + # Create a new ImplicitRestNode node + # + # source://prism//lib/prism/dsl.rb#391 + def ImplicitRestNode(location = T.unsafe(nil)); end + # Create a new InNode node # - # source://prism//lib/prism/dsl.rb#381 + # source://prism//lib/prism/dsl.rb#396 def InNode(pattern, statements, in_loc, then_loc, location = T.unsafe(nil)); end # Create a new IndexAndWriteNode node # - # source://prism//lib/prism/dsl.rb#386 - def IndexAndWriteNode(receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, flags, operator_loc, value, location = T.unsafe(nil)); end + # source://prism//lib/prism/dsl.rb#401 + def IndexAndWriteNode(flags, receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, operator_loc, value, location = T.unsafe(nil)); end # Create a new IndexOperatorWriteNode node # - # source://prism//lib/prism/dsl.rb#391 - def IndexOperatorWriteNode(receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, flags, operator, operator_loc, value, location = T.unsafe(nil)); end + # source://prism//lib/prism/dsl.rb#406 + def IndexOperatorWriteNode(flags, receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, operator, operator_loc, value, location = T.unsafe(nil)); end # Create a new IndexOrWriteNode node # - # source://prism//lib/prism/dsl.rb#396 - def IndexOrWriteNode(receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, flags, operator_loc, value, location = T.unsafe(nil)); end + # source://prism//lib/prism/dsl.rb#411 + def IndexOrWriteNode(flags, receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, operator_loc, value, location = T.unsafe(nil)); end + + # Create a new IndexTargetNode node + # + # source://prism//lib/prism/dsl.rb#416 + def IndexTargetNode(flags, receiver, opening_loc, arguments, closing_loc, block, location = T.unsafe(nil)); end # Create a new InstanceVariableAndWriteNode node # - # source://prism//lib/prism/dsl.rb#401 + # source://prism//lib/prism/dsl.rb#421 def InstanceVariableAndWriteNode(name, name_loc, operator_loc, value, location = T.unsafe(nil)); end # Create a new InstanceVariableOperatorWriteNode node # - # source://prism//lib/prism/dsl.rb#406 + # source://prism//lib/prism/dsl.rb#426 def InstanceVariableOperatorWriteNode(name, name_loc, operator_loc, value, operator, location = T.unsafe(nil)); end # Create a new InstanceVariableOrWriteNode node # - # source://prism//lib/prism/dsl.rb#411 + # source://prism//lib/prism/dsl.rb#431 def InstanceVariableOrWriteNode(name, name_loc, operator_loc, value, location = T.unsafe(nil)); end # Create a new InstanceVariableReadNode node # - # source://prism//lib/prism/dsl.rb#416 + # source://prism//lib/prism/dsl.rb#436 def InstanceVariableReadNode(name, location = T.unsafe(nil)); end # Create a new InstanceVariableTargetNode node # - # source://prism//lib/prism/dsl.rb#421 + # source://prism//lib/prism/dsl.rb#441 def InstanceVariableTargetNode(name, location = T.unsafe(nil)); end # Create a new InstanceVariableWriteNode node # - # source://prism//lib/prism/dsl.rb#426 + # source://prism//lib/prism/dsl.rb#446 def InstanceVariableWriteNode(name, name_loc, value, operator_loc, location = T.unsafe(nil)); end # Create a new IntegerNode node # - # source://prism//lib/prism/dsl.rb#431 + # source://prism//lib/prism/dsl.rb#451 def IntegerNode(flags, location = T.unsafe(nil)); end # Create a new InterpolatedMatchLastLineNode node # - # source://prism//lib/prism/dsl.rb#436 - def InterpolatedMatchLastLineNode(opening_loc, parts, closing_loc, flags, location = T.unsafe(nil)); end + # source://prism//lib/prism/dsl.rb#456 + def InterpolatedMatchLastLineNode(flags, opening_loc, parts, closing_loc, location = T.unsafe(nil)); end # Create a new InterpolatedRegularExpressionNode node # - # source://prism//lib/prism/dsl.rb#441 - def InterpolatedRegularExpressionNode(opening_loc, parts, closing_loc, flags, location = T.unsafe(nil)); end + # source://prism//lib/prism/dsl.rb#461 + def InterpolatedRegularExpressionNode(flags, opening_loc, parts, closing_loc, location = T.unsafe(nil)); end # Create a new InterpolatedStringNode node # - # source://prism//lib/prism/dsl.rb#446 + # source://prism//lib/prism/dsl.rb#466 def InterpolatedStringNode(opening_loc, parts, closing_loc, location = T.unsafe(nil)); end # Create a new InterpolatedSymbolNode node # - # source://prism//lib/prism/dsl.rb#451 + # source://prism//lib/prism/dsl.rb#471 def InterpolatedSymbolNode(opening_loc, parts, closing_loc, location = T.unsafe(nil)); end # Create a new InterpolatedXStringNode node # - # source://prism//lib/prism/dsl.rb#456 + # source://prism//lib/prism/dsl.rb#476 def InterpolatedXStringNode(opening_loc, parts, closing_loc, location = T.unsafe(nil)); end # Create a new KeywordHashNode node # - # source://prism//lib/prism/dsl.rb#461 - def KeywordHashNode(elements, location = T.unsafe(nil)); end + # source://prism//lib/prism/dsl.rb#481 + def KeywordHashNode(flags, elements, location = T.unsafe(nil)); end # Create a new KeywordRestParameterNode node # - # source://prism//lib/prism/dsl.rb#466 + # source://prism//lib/prism/dsl.rb#486 def KeywordRestParameterNode(name, name_loc, operator_loc, location = T.unsafe(nil)); end # Create a new LambdaNode node # - # source://prism//lib/prism/dsl.rb#471 - def LambdaNode(locals, operator_loc, opening_loc, closing_loc, parameters, body, location = T.unsafe(nil)); end + # source://prism//lib/prism/dsl.rb#491 + def LambdaNode(locals, locals_body_index, operator_loc, opening_loc, closing_loc, parameters, body, location = T.unsafe(nil)); end # Create a new LocalVariableAndWriteNode node # - # source://prism//lib/prism/dsl.rb#476 + # source://prism//lib/prism/dsl.rb#496 def LocalVariableAndWriteNode(name_loc, operator_loc, value, name, depth, location = T.unsafe(nil)); end # Create a new LocalVariableOperatorWriteNode node # - # source://prism//lib/prism/dsl.rb#481 + # source://prism//lib/prism/dsl.rb#501 def LocalVariableOperatorWriteNode(name_loc, operator_loc, value, name, operator, depth, location = T.unsafe(nil)); end # Create a new LocalVariableOrWriteNode node # - # source://prism//lib/prism/dsl.rb#486 + # source://prism//lib/prism/dsl.rb#506 def LocalVariableOrWriteNode(name_loc, operator_loc, value, name, depth, location = T.unsafe(nil)); end # Create a new LocalVariableReadNode node # - # source://prism//lib/prism/dsl.rb#491 + # source://prism//lib/prism/dsl.rb#511 def LocalVariableReadNode(name, depth, location = T.unsafe(nil)); end # Create a new LocalVariableTargetNode node # - # source://prism//lib/prism/dsl.rb#496 + # source://prism//lib/prism/dsl.rb#516 def LocalVariableTargetNode(name, depth, location = T.unsafe(nil)); end # Create a new LocalVariableWriteNode node # - # source://prism//lib/prism/dsl.rb#501 + # source://prism//lib/prism/dsl.rb#521 def LocalVariableWriteNode(name, depth, name_loc, value, operator_loc, location = T.unsafe(nil)); end # Create a new Location object @@ -7277,262 +7751,262 @@ module Prism::DSL # Create a new MatchLastLineNode node # - # source://prism//lib/prism/dsl.rb#506 - def MatchLastLineNode(opening_loc, content_loc, closing_loc, unescaped, flags, location = T.unsafe(nil)); end + # source://prism//lib/prism/dsl.rb#526 + def MatchLastLineNode(flags, opening_loc, content_loc, closing_loc, unescaped, location = T.unsafe(nil)); end # Create a new MatchPredicateNode node # - # source://prism//lib/prism/dsl.rb#511 + # source://prism//lib/prism/dsl.rb#531 def MatchPredicateNode(value, pattern, operator_loc, location = T.unsafe(nil)); end # Create a new MatchRequiredNode node # - # source://prism//lib/prism/dsl.rb#516 + # source://prism//lib/prism/dsl.rb#536 def MatchRequiredNode(value, pattern, operator_loc, location = T.unsafe(nil)); end # Create a new MatchWriteNode node # - # source://prism//lib/prism/dsl.rb#521 - def MatchWriteNode(call, locals, location = T.unsafe(nil)); end + # source://prism//lib/prism/dsl.rb#541 + def MatchWriteNode(call, targets, location = T.unsafe(nil)); end # Create a new MissingNode node # - # source://prism//lib/prism/dsl.rb#526 + # source://prism//lib/prism/dsl.rb#546 def MissingNode(location = T.unsafe(nil)); end # Create a new ModuleNode node # - # source://prism//lib/prism/dsl.rb#531 + # source://prism//lib/prism/dsl.rb#551 def ModuleNode(locals, module_keyword_loc, constant_path, body, end_keyword_loc, name, location = T.unsafe(nil)); end # Create a new MultiTargetNode node # - # source://prism//lib/prism/dsl.rb#536 + # source://prism//lib/prism/dsl.rb#556 def MultiTargetNode(lefts, rest, rights, lparen_loc, rparen_loc, location = T.unsafe(nil)); end # Create a new MultiWriteNode node # - # source://prism//lib/prism/dsl.rb#541 + # source://prism//lib/prism/dsl.rb#561 def MultiWriteNode(lefts, rest, rights, lparen_loc, rparen_loc, operator_loc, value, location = T.unsafe(nil)); end # Create a new NextNode node # - # source://prism//lib/prism/dsl.rb#546 + # source://prism//lib/prism/dsl.rb#566 def NextNode(arguments, keyword_loc, location = T.unsafe(nil)); end # Create a new NilNode node # - # source://prism//lib/prism/dsl.rb#551 + # source://prism//lib/prism/dsl.rb#571 def NilNode(location = T.unsafe(nil)); end # Create a new NoKeywordsParameterNode node # - # source://prism//lib/prism/dsl.rb#556 + # source://prism//lib/prism/dsl.rb#576 def NoKeywordsParameterNode(operator_loc, keyword_loc, location = T.unsafe(nil)); end + # Create a new NumberedParametersNode node + # + # source://prism//lib/prism/dsl.rb#581 + def NumberedParametersNode(maximum, location = T.unsafe(nil)); end + # Create a new NumberedReferenceReadNode node # - # source://prism//lib/prism/dsl.rb#561 + # source://prism//lib/prism/dsl.rb#586 def NumberedReferenceReadNode(number, location = T.unsafe(nil)); end # Create a new OptionalKeywordParameterNode node # - # source://prism//lib/prism/dsl.rb#566 + # source://prism//lib/prism/dsl.rb#591 def OptionalKeywordParameterNode(name, name_loc, value, location = T.unsafe(nil)); end # Create a new OptionalParameterNode node # - # source://prism//lib/prism/dsl.rb#571 + # source://prism//lib/prism/dsl.rb#596 def OptionalParameterNode(name, name_loc, operator_loc, value, location = T.unsafe(nil)); end # Create a new OrNode node # - # source://prism//lib/prism/dsl.rb#576 + # source://prism//lib/prism/dsl.rb#601 def OrNode(left, right, operator_loc, location = T.unsafe(nil)); end # Create a new ParametersNode node # - # source://prism//lib/prism/dsl.rb#581 + # source://prism//lib/prism/dsl.rb#606 def ParametersNode(requireds, optionals, rest, posts, keywords, keyword_rest, block, location = T.unsafe(nil)); end # Create a new ParenthesesNode node # - # source://prism//lib/prism/dsl.rb#586 + # source://prism//lib/prism/dsl.rb#611 def ParenthesesNode(body, opening_loc, closing_loc, location = T.unsafe(nil)); end # Create a new PinnedExpressionNode node # - # source://prism//lib/prism/dsl.rb#591 + # source://prism//lib/prism/dsl.rb#616 def PinnedExpressionNode(expression, operator_loc, lparen_loc, rparen_loc, location = T.unsafe(nil)); end # Create a new PinnedVariableNode node # - # source://prism//lib/prism/dsl.rb#596 + # source://prism//lib/prism/dsl.rb#621 def PinnedVariableNode(variable, operator_loc, location = T.unsafe(nil)); end # Create a new PostExecutionNode node # - # source://prism//lib/prism/dsl.rb#601 + # source://prism//lib/prism/dsl.rb#626 def PostExecutionNode(statements, keyword_loc, opening_loc, closing_loc, location = T.unsafe(nil)); end # Create a new PreExecutionNode node # - # source://prism//lib/prism/dsl.rb#606 + # source://prism//lib/prism/dsl.rb#631 def PreExecutionNode(statements, keyword_loc, opening_loc, closing_loc, location = T.unsafe(nil)); end # Create a new ProgramNode node # - # source://prism//lib/prism/dsl.rb#611 + # source://prism//lib/prism/dsl.rb#636 def ProgramNode(locals, statements, location = T.unsafe(nil)); end # Create a new RangeNode node # - # source://prism//lib/prism/dsl.rb#616 - def RangeNode(left, right, operator_loc, flags, location = T.unsafe(nil)); end + # source://prism//lib/prism/dsl.rb#641 + def RangeNode(flags, left, right, operator_loc, location = T.unsafe(nil)); end # Create a new RationalNode node # - # source://prism//lib/prism/dsl.rb#621 + # source://prism//lib/prism/dsl.rb#646 def RationalNode(numeric, location = T.unsafe(nil)); end # Create a new RedoNode node # - # source://prism//lib/prism/dsl.rb#626 + # source://prism//lib/prism/dsl.rb#651 def RedoNode(location = T.unsafe(nil)); end # Create a new RegularExpressionNode node # - # source://prism//lib/prism/dsl.rb#631 - def RegularExpressionNode(opening_loc, content_loc, closing_loc, unescaped, flags, location = T.unsafe(nil)); end + # source://prism//lib/prism/dsl.rb#656 + def RegularExpressionNode(flags, opening_loc, content_loc, closing_loc, unescaped, location = T.unsafe(nil)); end # Create a new RequiredKeywordParameterNode node # - # source://prism//lib/prism/dsl.rb#636 + # source://prism//lib/prism/dsl.rb#661 def RequiredKeywordParameterNode(name, name_loc, location = T.unsafe(nil)); end # Create a new RequiredParameterNode node # - # source://prism//lib/prism/dsl.rb#641 + # source://prism//lib/prism/dsl.rb#666 def RequiredParameterNode(name, location = T.unsafe(nil)); end # Create a new RescueModifierNode node # - # source://prism//lib/prism/dsl.rb#646 + # source://prism//lib/prism/dsl.rb#671 def RescueModifierNode(expression, keyword_loc, rescue_expression, location = T.unsafe(nil)); end # Create a new RescueNode node # - # source://prism//lib/prism/dsl.rb#651 + # source://prism//lib/prism/dsl.rb#676 def RescueNode(keyword_loc, exceptions, operator_loc, reference, statements, consequent, location = T.unsafe(nil)); end # Create a new RestParameterNode node # - # source://prism//lib/prism/dsl.rb#656 + # source://prism//lib/prism/dsl.rb#681 def RestParameterNode(name, name_loc, operator_loc, location = T.unsafe(nil)); end # Create a new RetryNode node # - # source://prism//lib/prism/dsl.rb#661 + # source://prism//lib/prism/dsl.rb#686 def RetryNode(location = T.unsafe(nil)); end # Create a new ReturnNode node # - # source://prism//lib/prism/dsl.rb#666 + # source://prism//lib/prism/dsl.rb#691 def ReturnNode(keyword_loc, arguments, location = T.unsafe(nil)); end # Create a new SelfNode node # - # source://prism//lib/prism/dsl.rb#671 + # source://prism//lib/prism/dsl.rb#696 def SelfNode(location = T.unsafe(nil)); end # Create a new SingletonClassNode node # - # source://prism//lib/prism/dsl.rb#676 + # source://prism//lib/prism/dsl.rb#701 def SingletonClassNode(locals, class_keyword_loc, operator_loc, expression, body, end_keyword_loc, location = T.unsafe(nil)); end # Create a new SourceEncodingNode node # - # source://prism//lib/prism/dsl.rb#681 + # source://prism//lib/prism/dsl.rb#706 def SourceEncodingNode(location = T.unsafe(nil)); end # Create a new SourceFileNode node # - # source://prism//lib/prism/dsl.rb#686 + # source://prism//lib/prism/dsl.rb#711 def SourceFileNode(filepath, location = T.unsafe(nil)); end # Create a new SourceLineNode node # - # source://prism//lib/prism/dsl.rb#691 + # source://prism//lib/prism/dsl.rb#716 def SourceLineNode(location = T.unsafe(nil)); end # Create a new SplatNode node # - # source://prism//lib/prism/dsl.rb#696 + # source://prism//lib/prism/dsl.rb#721 def SplatNode(operator_loc, expression, location = T.unsafe(nil)); end # Create a new StatementsNode node # - # source://prism//lib/prism/dsl.rb#701 + # source://prism//lib/prism/dsl.rb#726 def StatementsNode(body, location = T.unsafe(nil)); end - # Create a new StringConcatNode node - # - # source://prism//lib/prism/dsl.rb#706 - def StringConcatNode(left, right, location = T.unsafe(nil)); end - # Create a new StringNode node # - # source://prism//lib/prism/dsl.rb#711 + # source://prism//lib/prism/dsl.rb#731 def StringNode(flags, opening_loc, content_loc, closing_loc, unescaped, location = T.unsafe(nil)); end # Create a new SuperNode node # - # source://prism//lib/prism/dsl.rb#716 + # source://prism//lib/prism/dsl.rb#736 def SuperNode(keyword_loc, lparen_loc, arguments, rparen_loc, block, location = T.unsafe(nil)); end # Create a new SymbolNode node # - # source://prism//lib/prism/dsl.rb#721 - def SymbolNode(opening_loc, value_loc, closing_loc, unescaped, location = T.unsafe(nil)); end + # source://prism//lib/prism/dsl.rb#741 + def SymbolNode(flags, opening_loc, value_loc, closing_loc, unescaped, location = T.unsafe(nil)); end # Create a new TrueNode node # - # source://prism//lib/prism/dsl.rb#726 + # source://prism//lib/prism/dsl.rb#746 def TrueNode(location = T.unsafe(nil)); end # Create a new UndefNode node # - # source://prism//lib/prism/dsl.rb#731 + # source://prism//lib/prism/dsl.rb#751 def UndefNode(names, keyword_loc, location = T.unsafe(nil)); end # Create a new UnlessNode node # - # source://prism//lib/prism/dsl.rb#736 - def UnlessNode(keyword_loc, predicate, statements, consequent, end_keyword_loc, location = T.unsafe(nil)); end + # source://prism//lib/prism/dsl.rb#756 + def UnlessNode(keyword_loc, predicate, then_keyword_loc, statements, consequent, end_keyword_loc, location = T.unsafe(nil)); end # Create a new UntilNode node # - # source://prism//lib/prism/dsl.rb#741 - def UntilNode(keyword_loc, closing_loc, predicate, statements, flags, location = T.unsafe(nil)); end + # source://prism//lib/prism/dsl.rb#761 + def UntilNode(flags, keyword_loc, closing_loc, predicate, statements, location = T.unsafe(nil)); end # Create a new WhenNode node # - # source://prism//lib/prism/dsl.rb#746 + # source://prism//lib/prism/dsl.rb#766 def WhenNode(keyword_loc, conditions, statements, location = T.unsafe(nil)); end # Create a new WhileNode node # - # source://prism//lib/prism/dsl.rb#751 - def WhileNode(keyword_loc, closing_loc, predicate, statements, flags, location = T.unsafe(nil)); end + # source://prism//lib/prism/dsl.rb#771 + def WhileNode(flags, keyword_loc, closing_loc, predicate, statements, location = T.unsafe(nil)); end # Create a new XStringNode node # - # source://prism//lib/prism/dsl.rb#756 - def XStringNode(opening_loc, content_loc, closing_loc, unescaped, location = T.unsafe(nil)); end + # source://prism//lib/prism/dsl.rb#776 + def XStringNode(flags, opening_loc, content_loc, closing_loc, unescaped, location = T.unsafe(nil)); end # Create a new YieldNode node # - # source://prism//lib/prism/dsl.rb#761 + # source://prism//lib/prism/dsl.rb#781 def YieldNode(keyword_loc, lparen_loc, arguments, rparen_loc, location = T.unsafe(nil)); end end @@ -7561,7 +8035,7 @@ module Prism::Debug # For the given source string, return the byte offsets of every newline in # the source. # - # source://prism//lib/prism/debug.rb#187 + # source://prism//lib/prism/debug.rb#196 def newlines(source); end # :call-seq: @@ -7617,13 +8091,13 @@ end # end # ^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#4913 +# source://prism//lib/prism/node.rb#5237 class Prism::DefNode < ::Prism::Node - # def initialize: (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) -> void + # def initialize: (name: Symbol, name_loc: Location, receiver: Node?, parameters: ParametersNode?, body: Node?, locals: Array[Symbol], locals_body_index: Integer, def_keyword_loc: Location, operator_loc: Location?, lparen_loc: Location?, rparen_loc: Location?, equal_loc: Location?, end_keyword_loc: Location?, location: Location) -> void # # @return [DefNode] a new instance of DefNode # - # source://prism//lib/prism/node.rb#4951 + # source://prism//lib/prism/node.rb#5278 sig do params( name: Symbol, @@ -7632,6 +8106,7 @@ class Prism::DefNode < ::Prism::Node parameters: T.nilable(Prism::ParametersNode), body: T.nilable(Prism::Node), locals: T::Array[Symbol], + locals_body_index: Integer, def_keyword_loc: Prism::Location, operator_loc: T.nilable(Prism::Location), lparen_loc: T.nilable(Prism::Location), @@ -7641,52 +8116,52 @@ class Prism::DefNode < ::Prism::Node location: Prism::Location ).void end - def initialize(name, name_loc, receiver, parameters, body, locals, def_keyword_loc, operator_loc, lparen_loc, rparen_loc, equal_loc, end_keyword_loc, location); end + def initialize(name, name_loc, receiver, parameters, body, locals, locals_body_index, def_keyword_loc, operator_loc, lparen_loc, rparen_loc, equal_loc, end_keyword_loc, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#4968 + # source://prism//lib/prism/node.rb#5296 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # attr_reader body: Node? # - # source://prism//lib/prism/node.rb#4927 + # source://prism//lib/prism/node.rb#5251 sig { returns(T.nilable(Prism::Node)) } def body; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#4973 + # source://prism//lib/prism/node.rb#5301 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#4987 + # source://prism//lib/prism/node.rb#5315 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#4978 + # source://prism//lib/prism/node.rb#5306 def compact_child_nodes; end # def copy: (**params) -> DefNode # - # source://prism//lib/prism/node.rb#4992 + # source://prism//lib/prism/node.rb#5320 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//lib/prism/node.rb#4973 + # source://prism//lib/prism/node.rb#5301 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#5014 + # source://prism//lib/prism/node.rb#5343 sig do params( keys: T::Array[Symbol] @@ -7696,108 +8171,114 @@ class Prism::DefNode < ::Prism::Node # def def_keyword: () -> String # - # source://prism//lib/prism/node.rb#5019 + # source://prism//lib/prism/node.rb#5348 sig { returns(String) } def def_keyword; end # attr_reader def_keyword_loc: Location # - # source://prism//lib/prism/node.rb#4933 + # source://prism//lib/prism/node.rb#5260 sig { returns(Prism::Location) } def def_keyword_loc; end # def end_keyword: () -> String? # - # source://prism//lib/prism/node.rb#5044 + # source://prism//lib/prism/node.rb#5373 sig { returns(T.nilable(String)) } def end_keyword; end # attr_reader end_keyword_loc: Location? # - # source://prism//lib/prism/node.rb#4948 + # source://prism//lib/prism/node.rb#5275 sig { returns(T.nilable(Prism::Location)) } def end_keyword_loc; end # def equal: () -> String? # - # source://prism//lib/prism/node.rb#5039 + # source://prism//lib/prism/node.rb#5368 sig { returns(T.nilable(String)) } def equal; end # attr_reader equal_loc: Location? # - # source://prism//lib/prism/node.rb#4945 + # source://prism//lib/prism/node.rb#5272 sig { returns(T.nilable(Prism::Location)) } def equal_loc; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#5049 + # source://prism//lib/prism/node.rb#5378 def inspect(inspector = T.unsafe(nil)); end # attr_reader locals: Array[Symbol] # - # source://prism//lib/prism/node.rb#4930 + # source://prism//lib/prism/node.rb#5254 sig { returns(T::Array[Symbol]) } def locals; end + # attr_reader locals_body_index: Integer + # + # source://prism//lib/prism/node.rb#5257 + sig { returns(Integer) } + def locals_body_index; end + # def lparen: () -> String? # - # source://prism//lib/prism/node.rb#5029 + # source://prism//lib/prism/node.rb#5358 sig { returns(T.nilable(String)) } def lparen; end # attr_reader lparen_loc: Location? # - # source://prism//lib/prism/node.rb#4939 + # source://prism//lib/prism/node.rb#5266 sig { returns(T.nilable(Prism::Location)) } def lparen_loc; end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#4915 + # source://prism//lib/prism/node.rb#5239 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#4918 + # source://prism//lib/prism/node.rb#5242 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String? # - # source://prism//lib/prism/node.rb#5024 + # source://prism//lib/prism/node.rb#5353 sig { returns(T.nilable(String)) } def operator; end # attr_reader operator_loc: Location? # - # source://prism//lib/prism/node.rb#4936 + # source://prism//lib/prism/node.rb#5263 sig { returns(T.nilable(Prism::Location)) } def operator_loc; end # attr_reader parameters: ParametersNode? # - # source://prism//lib/prism/node.rb#4924 + # source://prism//lib/prism/node.rb#5248 sig { returns(T.nilable(Prism::ParametersNode)) } def parameters; end # attr_reader receiver: Node? # - # source://prism//lib/prism/node.rb#4921 + # source://prism//lib/prism/node.rb#5245 sig { returns(T.nilable(Prism::Node)) } def receiver; end # def rparen: () -> String? # - # source://prism//lib/prism/node.rb#5034 + # source://prism//lib/prism/node.rb#5363 sig { returns(T.nilable(String)) } def rparen; end # attr_reader rparen_loc: Location? # - # source://prism//lib/prism/node.rb#4942 + # source://prism//lib/prism/node.rb#5269 sig { returns(T.nilable(Prism::Location)) } def rparen_loc; end @@ -7816,7 +8297,7 @@ class Prism::DefNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#5095 + # source://prism//lib/prism/node.rb#5425 def type; end class << self @@ -7827,7 +8308,7 @@ class Prism::DefNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#5105 + # source://prism//lib/prism/node.rb#5435 def type; end end end @@ -7837,13 +8318,13 @@ end # defined?(a) # ^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#5114 +# source://prism//lib/prism/node.rb#5444 class Prism::DefinedNode < ::Prism::Node # def initialize: (lparen_loc: Location?, value: Node, rparen_loc: Location?, keyword_loc: Location, location: Location) -> void # # @return [DefinedNode] a new instance of DefinedNode # - # source://prism//lib/prism/node.rb#5128 + # source://prism//lib/prism/node.rb#5458 sig do params( lparen_loc: T.nilable(Prism::Location), @@ -7857,42 +8338,42 @@ class Prism::DefinedNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#5137 + # source://prism//lib/prism/node.rb#5467 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#5142 + # source://prism//lib/prism/node.rb#5472 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#5152 + # source://prism//lib/prism/node.rb#5482 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#5147 + # source://prism//lib/prism/node.rb#5477 def compact_child_nodes; end # def copy: (**params) -> DefinedNode # - # source://prism//lib/prism/node.rb#5157 + # source://prism//lib/prism/node.rb#5487 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//lib/prism/node.rb#5142 + # source://prism//lib/prism/node.rb#5472 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#5171 + # source://prism//lib/prism/node.rb#5501 sig do params( keys: T::Array[Symbol] @@ -7902,42 +8383,42 @@ class Prism::DefinedNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#5191 + # source://prism//lib/prism/node.rb#5521 def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#5186 + # source://prism//lib/prism/node.rb#5516 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#5125 + # source://prism//lib/prism/node.rb#5455 sig { returns(Prism::Location) } def keyword_loc; end # def lparen: () -> String? # - # source://prism//lib/prism/node.rb#5176 + # source://prism//lib/prism/node.rb#5506 sig { returns(T.nilable(String)) } def lparen; end # attr_reader lparen_loc: Location? # - # source://prism//lib/prism/node.rb#5116 + # source://prism//lib/prism/node.rb#5446 sig { returns(T.nilable(Prism::Location)) } def lparen_loc; end # def rparen: () -> String? # - # source://prism//lib/prism/node.rb#5181 + # source://prism//lib/prism/node.rb#5511 sig { returns(T.nilable(String)) } def rparen; end # attr_reader rparen_loc: Location? # - # source://prism//lib/prism/node.rb#5122 + # source://prism//lib/prism/node.rb#5452 sig { returns(T.nilable(Prism::Location)) } def rparen_loc; end @@ -7956,12 +8437,12 @@ class Prism::DefinedNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#5215 + # source://prism//lib/prism/node.rb#5545 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#5119 + # source://prism//lib/prism/node.rb#5449 sig { returns(Prism::Node) } def value; end @@ -7973,7 +8454,7 @@ class Prism::DefinedNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#5225 + # source://prism//lib/prism/node.rb#5555 def type; end end end @@ -8321,1476 +8802,2446 @@ class Prism::Dispatcher < ::Prism::Visitor # source://prism//lib/prism/dispatcher.rb#230 def visit_call_or_write_node(node); end - # Dispatch enter and leave events for CapturePatternNode nodes and continue + # Dispatch enter and leave events for CallTargetNode nodes and continue # walking the tree. # # source://prism//lib/prism/dispatcher.rb#238 - def visit_capture_pattern_node(node); end + def visit_call_target_node(node); end - # Dispatch enter and leave events for CaseNode nodes and continue + # Dispatch enter and leave events for CapturePatternNode nodes and continue # walking the tree. # # source://prism//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//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//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//lib/prism/dispatcher.rb#254 + # source://prism//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//lib/prism/dispatcher.rb#262 + # source://prism//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//lib/prism/dispatcher.rb#270 + # source://prism//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//lib/prism/dispatcher.rb#278 + # source://prism//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//lib/prism/dispatcher.rb#286 + # source://prism//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//lib/prism/dispatcher.rb#294 + # source://prism//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//lib/prism/dispatcher.rb#302 + # source://prism//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//lib/prism/dispatcher.rb#310 + # source://prism//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//lib/prism/dispatcher.rb#318 + # source://prism//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//lib/prism/dispatcher.rb#326 + # source://prism//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//lib/prism/dispatcher.rb#334 + # source://prism//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//lib/prism/dispatcher.rb#342 + # source://prism//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//lib/prism/dispatcher.rb#350 + # source://prism//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//lib/prism/dispatcher.rb#358 + # source://prism//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//lib/prism/dispatcher.rb#366 + # source://prism//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//lib/prism/dispatcher.rb#374 + # source://prism//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//lib/prism/dispatcher.rb#382 + # source://prism//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//lib/prism/dispatcher.rb#390 + # source://prism//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//lib/prism/dispatcher.rb#398 + # source://prism//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//lib/prism/dispatcher.rb#406 + # source://prism//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//lib/prism/dispatcher.rb#414 + # source://prism//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//lib/prism/dispatcher.rb#422 + # source://prism//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//lib/prism/dispatcher.rb#430 + # source://prism//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//lib/prism/dispatcher.rb#438 + # source://prism//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//lib/prism/dispatcher.rb#446 + # source://prism//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//lib/prism/dispatcher.rb#454 + # source://prism//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//lib/prism/dispatcher.rb#462 + # source://prism//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//lib/prism/dispatcher.rb#470 + # source://prism//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//lib/prism/dispatcher.rb#478 + # source://prism//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//lib/prism/dispatcher.rb#486 + # source://prism//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//lib/prism/dispatcher.rb#494 + # source://prism//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//lib/prism/dispatcher.rb#502 + # source://prism//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//lib/prism/dispatcher.rb#510 + # source://prism//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//lib/prism/dispatcher.rb#518 + # source://prism//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//lib/prism/dispatcher.rb#526 + # source://prism//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//lib/prism/dispatcher.rb#534 + # source://prism//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//lib/prism/dispatcher.rb#542 + # source://prism//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//lib/prism/dispatcher.rb#550 + # source://prism//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//lib/prism/dispatcher.rb#558 + # source://prism//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//lib/prism/dispatcher.rb#566 + # source://prism//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//lib/prism/dispatcher.rb#574 + # source://prism//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//lib/prism/dispatcher.rb#582 + # source://prism//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//lib/prism/dispatcher.rb#590 + # source://prism//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//lib/prism/dispatcher.rb#598 + # source://prism//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//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//lib/prism/dispatcher.rb#606 + # source://prism//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//lib/prism/dispatcher.rb#614 + # source://prism//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//lib/prism/dispatcher.rb#622 + # source://prism//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//lib/prism/dispatcher.rb#630 + # source://prism//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//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//lib/prism/dispatcher.rb#638 + # source://prism//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//lib/prism/dispatcher.rb#646 + # source://prism//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//lib/prism/dispatcher.rb#654 + # source://prism//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//lib/prism/dispatcher.rb#662 + # source://prism//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//lib/prism/dispatcher.rb#670 + # source://prism//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//lib/prism/dispatcher.rb#678 + # source://prism//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//lib/prism/dispatcher.rb#686 + # source://prism//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//lib/prism/dispatcher.rb#694 + # source://prism//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//lib/prism/dispatcher.rb#702 + # source://prism//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//lib/prism/dispatcher.rb#710 + # source://prism//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//lib/prism/dispatcher.rb#718 + # source://prism//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//lib/prism/dispatcher.rb#726 + # source://prism//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//lib/prism/dispatcher.rb#734 + # source://prism//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//lib/prism/dispatcher.rb#742 + # source://prism//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//lib/prism/dispatcher.rb#750 + # source://prism//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//lib/prism/dispatcher.rb#758 + # source://prism//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//lib/prism/dispatcher.rb#766 + # source://prism//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//lib/prism/dispatcher.rb#774 + # source://prism//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//lib/prism/dispatcher.rb#782 + # source://prism//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//lib/prism/dispatcher.rb#790 + # source://prism//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//lib/prism/dispatcher.rb#798 + # source://prism//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//lib/prism/dispatcher.rb#806 + # source://prism//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//lib/prism/dispatcher.rb#814 + # source://prism//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//lib/prism/dispatcher.rb#822 + # source://prism//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//lib/prism/dispatcher.rb#830 + # source://prism//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//lib/prism/dispatcher.rb#838 + # source://prism//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//lib/prism/dispatcher.rb#846 + # source://prism//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//lib/prism/dispatcher.rb#854 + # source://prism//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//lib/prism/dispatcher.rb#862 + # source://prism//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//lib/prism/dispatcher.rb#870 + # source://prism//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//lib/prism/dispatcher.rb#878 + # source://prism//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//lib/prism/dispatcher.rb#886 + # source://prism//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//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//lib/prism/dispatcher.rb#894 + # source://prism//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//lib/prism/dispatcher.rb#902 + # source://prism//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//lib/prism/dispatcher.rb#910 + # source://prism//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//lib/prism/dispatcher.rb#918 + # source://prism//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//lib/prism/dispatcher.rb#926 + # source://prism//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//lib/prism/dispatcher.rb#934 + # source://prism//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//lib/prism/dispatcher.rb#942 + # source://prism//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//lib/prism/dispatcher.rb#950 + # source://prism//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//lib/prism/dispatcher.rb#958 + # source://prism//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//lib/prism/dispatcher.rb#966 + # source://prism//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//lib/prism/dispatcher.rb#974 + # source://prism//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//lib/prism/dispatcher.rb#982 + # source://prism//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//lib/prism/dispatcher.rb#990 + # source://prism//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//lib/prism/dispatcher.rb#998 + # source://prism//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//lib/prism/dispatcher.rb#1006 + # source://prism//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//lib/prism/dispatcher.rb#1014 + # source://prism//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//lib/prism/dispatcher.rb#1022 + # source://prism//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//lib/prism/dispatcher.rb#1030 + # source://prism//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//lib/prism/dispatcher.rb#1038 + # source://prism//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//lib/prism/dispatcher.rb#1046 + # source://prism//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//lib/prism/dispatcher.rb#1054 + # source://prism//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//lib/prism/dispatcher.rb#1062 + # source://prism//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//lib/prism/dispatcher.rb#1070 + # source://prism//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//lib/prism/dispatcher.rb#1078 + # source://prism//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//lib/prism/dispatcher.rb#1086 + # source://prism//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//lib/prism/dispatcher.rb#1094 + # source://prism//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//lib/prism/dispatcher.rb#1102 + # source://prism//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//lib/prism/dispatcher.rb#1110 + # source://prism//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//lib/prism/dispatcher.rb#1118 + # source://prism//lib/prism/dispatcher.rb#1158 def visit_statements_node(node); end - # Dispatch enter and leave events for StringConcatNode nodes and continue - # walking the tree. - # - # source://prism//lib/prism/dispatcher.rb#1126 - def visit_string_concat_node(node); end - # Dispatch enter and leave events for StringNode nodes and continue # walking the tree. # - # source://prism//lib/prism/dispatcher.rb#1134 + # source://prism//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//lib/prism/dispatcher.rb#1142 + # source://prism//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//lib/prism/dispatcher.rb#1150 + # source://prism//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//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//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//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//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//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//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//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//lib/prism/dispatcher.rb#1246 + def visit_yield_node(node); end +end + +# source://prism//lib/prism/dispatcher.rb#1252 +class Prism::Dispatcher::DispatchOnce < ::Prism::Visitor + # @return [DispatchOnce] a new instance of DispatchOnce + # + # source://prism//lib/prism/dispatcher.rb#1255 + def initialize(listeners); end + + # Returns the value of attribute listeners. + # + # source://prism//lib/prism/dispatcher.rb#1253 + def listeners; end + + # Dispatch enter and leave events for AliasGlobalVariableNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1260 + def visit_alias_global_variable_node(node); end + + # Dispatch enter and leave events for AliasMethodNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1266 + def visit_alias_method_node(node); end + + # Dispatch enter and leave events for AlternationPatternNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1272 + def visit_alternation_pattern_node(node); end + + # Dispatch enter and leave events for AndNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1278 + def visit_and_node(node); end + + # Dispatch enter and leave events for ArgumentsNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1284 + def visit_arguments_node(node); end + + # Dispatch enter and leave events for ArrayNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1290 + def visit_array_node(node); end + + # Dispatch enter and leave events for ArrayPatternNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1296 + def visit_array_pattern_node(node); end + + # Dispatch enter and leave events for AssocNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1302 + def visit_assoc_node(node); end + + # Dispatch enter and leave events for AssocSplatNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1308 + def visit_assoc_splat_node(node); end + + # Dispatch enter and leave events for BackReferenceReadNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1314 + def visit_back_reference_read_node(node); end + + # Dispatch enter and leave events for BeginNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1320 + def visit_begin_node(node); end + + # Dispatch enter and leave events for BlockArgumentNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1326 + def visit_block_argument_node(node); end + + # Dispatch enter and leave events for BlockLocalVariableNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1332 + def visit_block_local_variable_node(node); end + + # Dispatch enter and leave events for BlockNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1338 + def visit_block_node(node); end + + # Dispatch enter and leave events for BlockParameterNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1344 + def visit_block_parameter_node(node); end + + # Dispatch enter and leave events for BlockParametersNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1350 + def visit_block_parameters_node(node); end + + # Dispatch enter and leave events for BreakNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1356 + def visit_break_node(node); end + + # Dispatch enter and leave events for CallAndWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1362 + def visit_call_and_write_node(node); end + + # Dispatch enter and leave events for CallNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1368 + def visit_call_node(node); end + + # Dispatch enter and leave events for CallOperatorWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1374 + def visit_call_operator_write_node(node); end + + # Dispatch enter and leave events for CallOrWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1380 + def visit_call_or_write_node(node); end + + # Dispatch enter and leave events for CallTargetNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1386 + def visit_call_target_node(node); end + + # Dispatch enter and leave events for CapturePatternNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1392 + def visit_capture_pattern_node(node); end + + # Dispatch enter and leave events for CaseMatchNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1398 + def visit_case_match_node(node); end + + # Dispatch enter and leave events for CaseNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1404 + def visit_case_node(node); end + + # Dispatch enter and leave events for ClassNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1410 + def visit_class_node(node); end + + # Dispatch enter and leave events for ClassVariableAndWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1416 + def visit_class_variable_and_write_node(node); end + + # Dispatch enter and leave events for ClassVariableOperatorWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1422 + def visit_class_variable_operator_write_node(node); end + + # Dispatch enter and leave events for ClassVariableOrWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1428 + def visit_class_variable_or_write_node(node); end + + # Dispatch enter and leave events for ClassVariableReadNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1434 + def visit_class_variable_read_node(node); end + + # Dispatch enter and leave events for ClassVariableTargetNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1440 + def visit_class_variable_target_node(node); end + + # Dispatch enter and leave events for ClassVariableWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1446 + def visit_class_variable_write_node(node); end + + # Dispatch enter and leave events for ConstantAndWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1452 + def visit_constant_and_write_node(node); end + + # Dispatch enter and leave events for ConstantOperatorWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1458 + def visit_constant_operator_write_node(node); end + + # Dispatch enter and leave events for ConstantOrWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1464 + def visit_constant_or_write_node(node); end + + # Dispatch enter and leave events for ConstantPathAndWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1470 + def visit_constant_path_and_write_node(node); end + + # Dispatch enter and leave events for ConstantPathNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1476 + def visit_constant_path_node(node); end + + # Dispatch enter and leave events for ConstantPathOperatorWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1482 + def visit_constant_path_operator_write_node(node); end + + # Dispatch enter and leave events for ConstantPathOrWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1488 + def visit_constant_path_or_write_node(node); end + + # Dispatch enter and leave events for ConstantPathTargetNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1494 + def visit_constant_path_target_node(node); end + + # Dispatch enter and leave events for ConstantPathWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1500 + def visit_constant_path_write_node(node); end + + # Dispatch enter and leave events for ConstantReadNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1506 + def visit_constant_read_node(node); end + + # Dispatch enter and leave events for ConstantTargetNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1512 + def visit_constant_target_node(node); end + + # Dispatch enter and leave events for ConstantWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1518 + def visit_constant_write_node(node); end + + # Dispatch enter and leave events for DefNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1524 + def visit_def_node(node); end + + # Dispatch enter and leave events for DefinedNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1530 + def visit_defined_node(node); end + + # Dispatch enter and leave events for ElseNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1536 + def visit_else_node(node); end + + # Dispatch enter and leave events for EmbeddedStatementsNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1542 + def visit_embedded_statements_node(node); end + + # Dispatch enter and leave events for EmbeddedVariableNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1548 + def visit_embedded_variable_node(node); end + + # Dispatch enter and leave events for EnsureNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1554 + def visit_ensure_node(node); end + + # Dispatch enter and leave events for FalseNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1560 + def visit_false_node(node); end + + # Dispatch enter and leave events for FindPatternNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1566 + def visit_find_pattern_node(node); end + + # Dispatch enter and leave events for FlipFlopNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1572 + def visit_flip_flop_node(node); end + + # Dispatch enter and leave events for FloatNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1578 + def visit_float_node(node); end + + # Dispatch enter and leave events for ForNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1584 + def visit_for_node(node); end + + # Dispatch enter and leave events for ForwardingArgumentsNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1590 + def visit_forwarding_arguments_node(node); end + + # Dispatch enter and leave events for ForwardingParameterNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1596 + def visit_forwarding_parameter_node(node); end + + # Dispatch enter and leave events for ForwardingSuperNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1602 + def visit_forwarding_super_node(node); end + + # Dispatch enter and leave events for GlobalVariableAndWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1608 + def visit_global_variable_and_write_node(node); end + + # Dispatch enter and leave events for GlobalVariableOperatorWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1614 + def visit_global_variable_operator_write_node(node); end + + # Dispatch enter and leave events for GlobalVariableOrWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1620 + def visit_global_variable_or_write_node(node); end + + # Dispatch enter and leave events for GlobalVariableReadNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1626 + def visit_global_variable_read_node(node); end + + # Dispatch enter and leave events for GlobalVariableTargetNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1632 + def visit_global_variable_target_node(node); end + + # Dispatch enter and leave events for GlobalVariableWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1638 + def visit_global_variable_write_node(node); end + + # Dispatch enter and leave events for HashNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1644 + def visit_hash_node(node); end + + # Dispatch enter and leave events for HashPatternNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1650 + def visit_hash_pattern_node(node); end + + # Dispatch enter and leave events for IfNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1656 + def visit_if_node(node); end + + # Dispatch enter and leave events for ImaginaryNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1662 + def visit_imaginary_node(node); end + + # Dispatch enter and leave events for ImplicitNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1668 + def visit_implicit_node(node); end + + # Dispatch enter and leave events for ImplicitRestNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1674 + def visit_implicit_rest_node(node); end + + # Dispatch enter and leave events for InNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1680 + def visit_in_node(node); end + + # Dispatch enter and leave events for IndexAndWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1686 + def visit_index_and_write_node(node); end + + # Dispatch enter and leave events for IndexOperatorWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1692 + def visit_index_operator_write_node(node); end + + # Dispatch enter and leave events for IndexOrWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1698 + def visit_index_or_write_node(node); end + + # Dispatch enter and leave events for IndexTargetNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1704 + def visit_index_target_node(node); end + + # Dispatch enter and leave events for InstanceVariableAndWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1710 + def visit_instance_variable_and_write_node(node); end + + # Dispatch enter and leave events for InstanceVariableOperatorWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1716 + def visit_instance_variable_operator_write_node(node); end + + # Dispatch enter and leave events for InstanceVariableOrWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1722 + def visit_instance_variable_or_write_node(node); end + + # Dispatch enter and leave events for InstanceVariableReadNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1728 + def visit_instance_variable_read_node(node); end + + # Dispatch enter and leave events for InstanceVariableTargetNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1734 + def visit_instance_variable_target_node(node); end + + # Dispatch enter and leave events for InstanceVariableWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1740 + def visit_instance_variable_write_node(node); end + + # Dispatch enter and leave events for IntegerNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1746 + def visit_integer_node(node); end + + # Dispatch enter and leave events for InterpolatedMatchLastLineNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1752 + def visit_interpolated_match_last_line_node(node); end + + # Dispatch enter and leave events for InterpolatedRegularExpressionNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1758 + def visit_interpolated_regular_expression_node(node); end + + # Dispatch enter and leave events for InterpolatedStringNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1764 + def visit_interpolated_string_node(node); end + + # Dispatch enter and leave events for InterpolatedSymbolNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1770 + def visit_interpolated_symbol_node(node); end + + # Dispatch enter and leave events for InterpolatedXStringNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1776 + def visit_interpolated_x_string_node(node); end + + # Dispatch enter and leave events for KeywordHashNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1782 + def visit_keyword_hash_node(node); end + + # Dispatch enter and leave events for KeywordRestParameterNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1788 + def visit_keyword_rest_parameter_node(node); end + + # Dispatch enter and leave events for LambdaNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1794 + def visit_lambda_node(node); end + + # Dispatch enter and leave events for LocalVariableAndWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1800 + def visit_local_variable_and_write_node(node); end + + # Dispatch enter and leave events for LocalVariableOperatorWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1806 + def visit_local_variable_operator_write_node(node); end + + # Dispatch enter and leave events for LocalVariableOrWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1812 + def visit_local_variable_or_write_node(node); end + + # Dispatch enter and leave events for LocalVariableReadNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1818 + def visit_local_variable_read_node(node); end + + # Dispatch enter and leave events for LocalVariableTargetNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1824 + def visit_local_variable_target_node(node); end + + # Dispatch enter and leave events for LocalVariableWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1830 + def visit_local_variable_write_node(node); end + + # Dispatch enter and leave events for MatchLastLineNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1836 + def visit_match_last_line_node(node); end + + # Dispatch enter and leave events for MatchPredicateNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1842 + def visit_match_predicate_node(node); end + + # Dispatch enter and leave events for MatchRequiredNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1848 + def visit_match_required_node(node); end + + # Dispatch enter and leave events for MatchWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1854 + def visit_match_write_node(node); end + + # Dispatch enter and leave events for MissingNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1860 + def visit_missing_node(node); end + + # Dispatch enter and leave events for ModuleNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1866 + def visit_module_node(node); end + + # Dispatch enter and leave events for MultiTargetNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1872 + def visit_multi_target_node(node); end + + # Dispatch enter and leave events for MultiWriteNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1878 + def visit_multi_write_node(node); end + + # Dispatch enter and leave events for NextNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1884 + def visit_next_node(node); end + + # Dispatch enter and leave events for NilNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1890 + def visit_nil_node(node); end + + # Dispatch enter and leave events for NoKeywordsParameterNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1896 + def visit_no_keywords_parameter_node(node); end + + # Dispatch enter and leave events for NumberedParametersNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1902 + def visit_numbered_parameters_node(node); end + + # Dispatch enter and leave events for NumberedReferenceReadNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1908 + def visit_numbered_reference_read_node(node); end + + # Dispatch enter and leave events for OptionalKeywordParameterNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1914 + def visit_optional_keyword_parameter_node(node); end + + # Dispatch enter and leave events for OptionalParameterNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1920 + def visit_optional_parameter_node(node); end + + # Dispatch enter and leave events for OrNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1926 + def visit_or_node(node); end + + # Dispatch enter and leave events for ParametersNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1932 + def visit_parameters_node(node); end + + # Dispatch enter and leave events for ParenthesesNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1938 + def visit_parentheses_node(node); end + + # Dispatch enter and leave events for PinnedExpressionNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1944 + def visit_pinned_expression_node(node); end + + # Dispatch enter and leave events for PinnedVariableNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1950 + def visit_pinned_variable_node(node); end + + # Dispatch enter and leave events for PostExecutionNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1956 + def visit_post_execution_node(node); end + + # Dispatch enter and leave events for PreExecutionNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1962 + def visit_pre_execution_node(node); end + + # Dispatch enter and leave events for ProgramNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1968 + def visit_program_node(node); end + + # Dispatch enter and leave events for RangeNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1974 + def visit_range_node(node); end + + # Dispatch enter and leave events for RationalNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1980 + def visit_rational_node(node); end + + # Dispatch enter and leave events for RedoNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1986 + def visit_redo_node(node); end + + # Dispatch enter and leave events for RegularExpressionNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1992 + def visit_regular_expression_node(node); end + + # Dispatch enter and leave events for RequiredKeywordParameterNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#1998 + def visit_required_keyword_parameter_node(node); end + + # Dispatch enter and leave events for RequiredParameterNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#2004 + def visit_required_parameter_node(node); end + + # Dispatch enter and leave events for RescueModifierNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#2010 + def visit_rescue_modifier_node(node); end + + # Dispatch enter and leave events for RescueNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#2016 + def visit_rescue_node(node); end + + # Dispatch enter and leave events for RestParameterNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#2022 + def visit_rest_parameter_node(node); end + + # Dispatch enter and leave events for RetryNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#2028 + def visit_retry_node(node); end + + # Dispatch enter and leave events for ReturnNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#2034 + def visit_return_node(node); end + + # Dispatch enter and leave events for SelfNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#2040 + def visit_self_node(node); end + + # Dispatch enter and leave events for SingletonClassNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#2046 + def visit_singleton_class_node(node); end + + # Dispatch enter and leave events for SourceEncodingNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#2052 + def visit_source_encoding_node(node); end + + # Dispatch enter and leave events for SourceFileNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#2058 + def visit_source_file_node(node); end + + # Dispatch enter and leave events for SourceLineNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#2064 + def visit_source_line_node(node); end + + # Dispatch enter and leave events for SplatNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#2070 + def visit_splat_node(node); end + + # Dispatch enter and leave events for StatementsNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#2076 + def visit_statements_node(node); end + + # Dispatch enter and leave events for StringNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#2082 + def visit_string_node(node); end + + # Dispatch enter and leave events for SuperNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#2088 + def visit_super_node(node); end + + # Dispatch enter and leave events for SymbolNode nodes. + # + # source://prism//lib/prism/dispatcher.rb#2094 def visit_symbol_node(node); end - # Dispatch enter and leave events for TrueNode nodes and continue - # walking the tree. + # Dispatch enter and leave events for TrueNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1158 + # source://prism//lib/prism/dispatcher.rb#2100 def visit_true_node(node); end - # Dispatch enter and leave events for UndefNode nodes and continue - # walking the tree. + # Dispatch enter and leave events for UndefNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1166 + # source://prism//lib/prism/dispatcher.rb#2106 def visit_undef_node(node); end - # Dispatch enter and leave events for UnlessNode nodes and continue - # walking the tree. + # Dispatch enter and leave events for UnlessNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1174 + # source://prism//lib/prism/dispatcher.rb#2112 def visit_unless_node(node); end - # Dispatch enter and leave events for UntilNode nodes and continue - # walking the tree. + # Dispatch enter and leave events for UntilNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1182 + # source://prism//lib/prism/dispatcher.rb#2118 def visit_until_node(node); end - # Dispatch enter and leave events for WhenNode nodes and continue - # walking the tree. + # Dispatch enter and leave events for WhenNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1190 + # source://prism//lib/prism/dispatcher.rb#2124 def visit_when_node(node); end - # Dispatch enter and leave events for WhileNode nodes and continue - # walking the tree. + # Dispatch enter and leave events for WhileNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1198 + # source://prism//lib/prism/dispatcher.rb#2130 def visit_while_node(node); end - # Dispatch enter and leave events for XStringNode nodes and continue - # walking the tree. + # Dispatch enter and leave events for XStringNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1206 + # source://prism//lib/prism/dispatcher.rb#2136 def visit_x_string_node(node); end - # Dispatch enter and leave events for YieldNode nodes and continue - # walking the tree. + # Dispatch enter and leave events for YieldNode nodes. # - # source://prism//lib/prism/dispatcher.rb#1214 + # source://prism//lib/prism/dispatcher.rb#2142 def visit_yield_node(node); end end -# source://prism//lib/prism/dispatcher.rb#1220 -class Prism::Dispatcher::DispatchOnce < ::Prism::Visitor - # @return [DispatchOnce] a new instance of DispatchOnce +# This visitor provides the ability to call Node#to_dot, which converts a +# subtree into a graphviz dot graph. +# +# source://prism//lib/prism/dot_visitor.rb#13 +class Prism::DotVisitor < ::Prism::Visitor + # Initialize a new dot visitor. # - # source://prism//lib/prism/dispatcher.rb#1223 - def initialize(listeners); end + # @return [DotVisitor] a new instance of DotVisitor + # + # source://prism//lib/prism/dot_visitor.rb#105 + def initialize; end - # Returns the value of attribute listeners. + # The digraph that is being built. # - # source://prism//lib/prism/dispatcher.rb#1221 - def listeners; end + # source://prism//lib/prism/dot_visitor.rb#102 + def digraph; end - # Dispatch enter and leave events for AliasGlobalVariableNode nodes. + # Convert this visitor into a graphviz dot graph string. # - # source://prism//lib/prism/dispatcher.rb#1228 + # source://prism//lib/prism/dot_visitor.rb#110 + def to_dot; end + + # Visit a AliasGlobalVariableNode node. + # + # source://prism//lib/prism/dot_visitor.rb#115 def visit_alias_global_variable_node(node); end - # Dispatch enter and leave events for AliasMethodNode nodes. + # Visit a AliasMethodNode node. # - # source://prism//lib/prism/dispatcher.rb#1234 + # source://prism//lib/prism/dot_visitor.rb#140 def visit_alias_method_node(node); end - # Dispatch enter and leave events for AlternationPatternNode nodes. + # Visit a AlternationPatternNode node. # - # source://prism//lib/prism/dispatcher.rb#1240 + # source://prism//lib/prism/dot_visitor.rb#165 def visit_alternation_pattern_node(node); end - # Dispatch enter and leave events for AndNode nodes. + # Visit a AndNode node. # - # source://prism//lib/prism/dispatcher.rb#1246 + # source://prism//lib/prism/dot_visitor.rb#190 def visit_and_node(node); end - # Dispatch enter and leave events for ArgumentsNode nodes. + # Visit a ArgumentsNode node. # - # source://prism//lib/prism/dispatcher.rb#1252 + # source://prism//lib/prism/dot_visitor.rb#215 def visit_arguments_node(node); end - # Dispatch enter and leave events for ArrayNode nodes. + # Visit a ArrayNode node. # - # source://prism//lib/prism/dispatcher.rb#1258 + # source://prism//lib/prism/dot_visitor.rb#245 def visit_array_node(node); end - # Dispatch enter and leave events for ArrayPatternNode nodes. + # Visit a ArrayPatternNode node. # - # source://prism//lib/prism/dispatcher.rb#1264 + # source://prism//lib/prism/dot_visitor.rb#285 def visit_array_pattern_node(node); end - # Dispatch enter and leave events for AssocNode nodes. + # Visit a AssocNode node. # - # source://prism//lib/prism/dispatcher.rb#1270 + # source://prism//lib/prism/dot_visitor.rb#347 def visit_assoc_node(node); end - # Dispatch enter and leave events for AssocSplatNode nodes. + # Visit a AssocSplatNode node. # - # source://prism//lib/prism/dispatcher.rb#1276 + # source://prism//lib/prism/dot_visitor.rb#376 def visit_assoc_splat_node(node); end - # Dispatch enter and leave events for BackReferenceReadNode nodes. + # Visit a BackReferenceReadNode node. # - # source://prism//lib/prism/dispatcher.rb#1282 + # source://prism//lib/prism/dot_visitor.rb#399 def visit_back_reference_read_node(node); end - # Dispatch enter and leave events for BeginNode nodes. + # Visit a BeginNode node. # - # source://prism//lib/prism/dispatcher.rb#1288 + # source://prism//lib/prism/dot_visitor.rb#416 def visit_begin_node(node); end - # Dispatch enter and leave events for BlockArgumentNode nodes. + # Visit a BlockArgumentNode node. # - # source://prism//lib/prism/dispatcher.rb#1294 + # source://prism//lib/prism/dot_visitor.rb#464 def visit_block_argument_node(node); end - # Dispatch enter and leave events for BlockLocalVariableNode nodes. + # Visit a BlockLocalVariableNode node. # - # source://prism//lib/prism/dispatcher.rb#1300 + # source://prism//lib/prism/dot_visitor.rb#487 def visit_block_local_variable_node(node); end - # Dispatch enter and leave events for BlockNode nodes. + # Visit a BlockNode node. # - # source://prism//lib/prism/dispatcher.rb#1306 + # source://prism//lib/prism/dot_visitor.rb#504 def visit_block_node(node); end - # Dispatch enter and leave events for BlockParameterNode nodes. + # Visit a BlockParameterNode node. # - # source://prism//lib/prism/dispatcher.rb#1312 + # source://prism//lib/prism/dot_visitor.rb#542 def visit_block_parameter_node(node); end - # Dispatch enter and leave events for BlockParametersNode nodes. + # Visit a BlockParametersNode node. # - # source://prism//lib/prism/dispatcher.rb#1318 + # source://prism//lib/prism/dot_visitor.rb#567 def visit_block_parameters_node(node); end - # Dispatch enter and leave events for BreakNode nodes. + # Visit a BreakNode node. # - # source://prism//lib/prism/dispatcher.rb#1324 + # source://prism//lib/prism/dot_visitor.rb#610 def visit_break_node(node); end - # Dispatch enter and leave events for CallAndWriteNode nodes. + # Visit a CallAndWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1330 + # source://prism//lib/prism/dot_visitor.rb#633 def visit_call_and_write_node(node); end - # Dispatch enter and leave events for CallNode nodes. + # Visit a CallNode node. # - # source://prism//lib/prism/dispatcher.rb#1336 + # source://prism//lib/prism/dot_visitor.rb#679 def visit_call_node(node); end - # Dispatch enter and leave events for CallOperatorWriteNode nodes. + # Visit a CallOperatorWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1342 + # source://prism//lib/prism/dot_visitor.rb#737 def visit_call_operator_write_node(node); end - # Dispatch enter and leave events for CallOrWriteNode nodes. + # Visit a CallOrWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1348 + # source://prism//lib/prism/dot_visitor.rb#786 def visit_call_or_write_node(node); end - # Dispatch enter and leave events for CapturePatternNode nodes. + # Visit a CallTargetNode node. + # + # source://prism//lib/prism/dot_visitor.rb#832 + def visit_call_target_node(node); end + + # Visit a CapturePatternNode node. # - # source://prism//lib/prism/dispatcher.rb#1354 + # source://prism//lib/prism/dot_visitor.rb#862 def visit_capture_pattern_node(node); end - # Dispatch enter and leave events for CaseNode nodes. + # Visit a CaseMatchNode node. # - # source://prism//lib/prism/dispatcher.rb#1360 + # source://prism//lib/prism/dot_visitor.rb#887 + def visit_case_match_node(node); end + + # Visit a CaseNode node. + # + # source://prism//lib/prism/dot_visitor.rb#932 def visit_case_node(node); end - # Dispatch enter and leave events for ClassNode nodes. + # Visit a ClassNode node. # - # source://prism//lib/prism/dispatcher.rb#1366 + # source://prism//lib/prism/dot_visitor.rb#977 def visit_class_node(node); end - # Dispatch enter and leave events for ClassVariableAndWriteNode nodes. + # Visit a ClassVariableAndWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1372 + # source://prism//lib/prism/dot_visitor.rb#1024 def visit_class_variable_and_write_node(node); end - # Dispatch enter and leave events for ClassVariableOperatorWriteNode nodes. + # Visit a ClassVariableOperatorWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1378 + # source://prism//lib/prism/dot_visitor.rb#1051 def visit_class_variable_operator_write_node(node); end - # Dispatch enter and leave events for ClassVariableOrWriteNode nodes. + # Visit a ClassVariableOrWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1384 + # source://prism//lib/prism/dot_visitor.rb#1081 def visit_class_variable_or_write_node(node); end - # Dispatch enter and leave events for ClassVariableReadNode nodes. + # Visit a ClassVariableReadNode node. # - # source://prism//lib/prism/dispatcher.rb#1390 + # source://prism//lib/prism/dot_visitor.rb#1108 def visit_class_variable_read_node(node); end - # Dispatch enter and leave events for ClassVariableTargetNode nodes. + # Visit a ClassVariableTargetNode node. # - # source://prism//lib/prism/dispatcher.rb#1396 + # source://prism//lib/prism/dot_visitor.rb#1125 def visit_class_variable_target_node(node); end - # Dispatch enter and leave events for ClassVariableWriteNode nodes. + # Visit a ClassVariableWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1402 + # source://prism//lib/prism/dot_visitor.rb#1142 def visit_class_variable_write_node(node); end - # Dispatch enter and leave events for ConstantAndWriteNode nodes. + # Visit a ConstantAndWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1408 + # source://prism//lib/prism/dot_visitor.rb#1171 def visit_constant_and_write_node(node); end - # Dispatch enter and leave events for ConstantOperatorWriteNode nodes. + # Visit a ConstantOperatorWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1414 + # source://prism//lib/prism/dot_visitor.rb#1198 def visit_constant_operator_write_node(node); end - # Dispatch enter and leave events for ConstantOrWriteNode nodes. + # Visit a ConstantOrWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1420 + # source://prism//lib/prism/dot_visitor.rb#1228 def visit_constant_or_write_node(node); end - # Dispatch enter and leave events for ConstantPathAndWriteNode nodes. + # Visit a ConstantPathAndWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1426 + # source://prism//lib/prism/dot_visitor.rb#1255 def visit_constant_path_and_write_node(node); end - # Dispatch enter and leave events for ConstantPathNode nodes. + # Visit a ConstantPathNode node. # - # source://prism//lib/prism/dispatcher.rb#1432 + # source://prism//lib/prism/dot_visitor.rb#1280 def visit_constant_path_node(node); end - # Dispatch enter and leave events for ConstantPathOperatorWriteNode nodes. + # Visit a ConstantPathOperatorWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1438 + # source://prism//lib/prism/dot_visitor.rb#1307 def visit_constant_path_operator_write_node(node); end - # Dispatch enter and leave events for ConstantPathOrWriteNode nodes. + # Visit a ConstantPathOrWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1444 + # source://prism//lib/prism/dot_visitor.rb#1335 def visit_constant_path_or_write_node(node); end - # Dispatch enter and leave events for ConstantPathTargetNode nodes. + # Visit a ConstantPathTargetNode node. # - # source://prism//lib/prism/dispatcher.rb#1450 + # source://prism//lib/prism/dot_visitor.rb#1360 def visit_constant_path_target_node(node); end - # Dispatch enter and leave events for ConstantPathWriteNode nodes. + # Visit a ConstantPathWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1456 + # source://prism//lib/prism/dot_visitor.rb#1387 def visit_constant_path_write_node(node); end - # Dispatch enter and leave events for ConstantReadNode nodes. + # Visit a ConstantReadNode node. # - # source://prism//lib/prism/dispatcher.rb#1462 + # source://prism//lib/prism/dot_visitor.rb#1412 def visit_constant_read_node(node); end - # Dispatch enter and leave events for ConstantTargetNode nodes. + # Visit a ConstantTargetNode node. # - # source://prism//lib/prism/dispatcher.rb#1468 + # source://prism//lib/prism/dot_visitor.rb#1429 def visit_constant_target_node(node); end - # Dispatch enter and leave events for ConstantWriteNode nodes. + # Visit a ConstantWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1474 + # source://prism//lib/prism/dot_visitor.rb#1446 def visit_constant_write_node(node); end - # Dispatch enter and leave events for DefNode nodes. + # Visit a DefNode node. # - # source://prism//lib/prism/dispatcher.rb#1480 + # source://prism//lib/prism/dot_visitor.rb#1473 def visit_def_node(node); end - # Dispatch enter and leave events for DefinedNode nodes. + # Visit a DefinedNode node. # - # source://prism//lib/prism/dispatcher.rb#1486 + # source://prism//lib/prism/dot_visitor.rb#1545 def visit_defined_node(node); end - # Dispatch enter and leave events for ElseNode nodes. + # Visit a ElseNode node. # - # source://prism//lib/prism/dispatcher.rb#1492 + # source://prism//lib/prism/dot_visitor.rb#1576 def visit_else_node(node); end - # Dispatch enter and leave events for EmbeddedStatementsNode nodes. + # Visit a EmbeddedStatementsNode node. # - # source://prism//lib/prism/dispatcher.rb#1498 + # source://prism//lib/prism/dot_visitor.rb#1604 def visit_embedded_statements_node(node); end - # Dispatch enter and leave events for EmbeddedVariableNode nodes. + # Visit a EmbeddedVariableNode node. # - # source://prism//lib/prism/dispatcher.rb#1504 + # source://prism//lib/prism/dot_visitor.rb#1630 def visit_embedded_variable_node(node); end - # Dispatch enter and leave events for EnsureNode nodes. + # Visit a EnsureNode node. # - # source://prism//lib/prism/dispatcher.rb#1510 + # source://prism//lib/prism/dot_visitor.rb#1651 def visit_ensure_node(node); end - # Dispatch enter and leave events for FalseNode nodes. + # Visit a FalseNode node. # - # source://prism//lib/prism/dispatcher.rb#1516 + # source://prism//lib/prism/dot_visitor.rb#1677 def visit_false_node(node); end - # Dispatch enter and leave events for FindPatternNode nodes. + # Visit a FindPatternNode node. # - # source://prism//lib/prism/dispatcher.rb#1522 + # source://prism//lib/prism/dot_visitor.rb#1691 def visit_find_pattern_node(node); end - # Dispatch enter and leave events for FlipFlopNode nodes. + # Visit a FlipFlopNode node. # - # source://prism//lib/prism/dispatcher.rb#1528 + # source://prism//lib/prism/dot_visitor.rb#1742 def visit_flip_flop_node(node); end - # Dispatch enter and leave events for FloatNode nodes. + # Visit a FloatNode node. # - # source://prism//lib/prism/dispatcher.rb#1534 + # source://prism//lib/prism/dot_visitor.rb#1774 def visit_float_node(node); end - # Dispatch enter and leave events for ForNode nodes. + # Visit a ForNode node. # - # source://prism//lib/prism/dispatcher.rb#1540 + # source://prism//lib/prism/dot_visitor.rb#1788 def visit_for_node(node); end - # Dispatch enter and leave events for ForwardingArgumentsNode nodes. + # Visit a ForwardingArgumentsNode node. # - # source://prism//lib/prism/dispatcher.rb#1546 + # source://prism//lib/prism/dot_visitor.rb#1830 def visit_forwarding_arguments_node(node); end - # Dispatch enter and leave events for ForwardingParameterNode nodes. + # Visit a ForwardingParameterNode node. # - # source://prism//lib/prism/dispatcher.rb#1552 + # source://prism//lib/prism/dot_visitor.rb#1844 def visit_forwarding_parameter_node(node); end - # Dispatch enter and leave events for ForwardingSuperNode nodes. + # Visit a ForwardingSuperNode node. # - # source://prism//lib/prism/dispatcher.rb#1558 + # source://prism//lib/prism/dot_visitor.rb#1858 def visit_forwarding_super_node(node); end - # Dispatch enter and leave events for GlobalVariableAndWriteNode nodes. + # Visit a GlobalVariableAndWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1564 + # source://prism//lib/prism/dot_visitor.rb#1878 def visit_global_variable_and_write_node(node); end - # Dispatch enter and leave events for GlobalVariableOperatorWriteNode nodes. + # Visit a GlobalVariableOperatorWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1570 + # source://prism//lib/prism/dot_visitor.rb#1905 def visit_global_variable_operator_write_node(node); end - # Dispatch enter and leave events for GlobalVariableOrWriteNode nodes. + # Visit a GlobalVariableOrWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1576 + # source://prism//lib/prism/dot_visitor.rb#1935 def visit_global_variable_or_write_node(node); end - # Dispatch enter and leave events for GlobalVariableReadNode nodes. + # Visit a GlobalVariableReadNode node. # - # source://prism//lib/prism/dispatcher.rb#1582 + # source://prism//lib/prism/dot_visitor.rb#1962 def visit_global_variable_read_node(node); end - # Dispatch enter and leave events for GlobalVariableTargetNode nodes. + # Visit a GlobalVariableTargetNode node. # - # source://prism//lib/prism/dispatcher.rb#1588 + # source://prism//lib/prism/dot_visitor.rb#1979 def visit_global_variable_target_node(node); end - # Dispatch enter and leave events for GlobalVariableWriteNode nodes. + # Visit a GlobalVariableWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1594 + # source://prism//lib/prism/dot_visitor.rb#1996 def visit_global_variable_write_node(node); end - # Dispatch enter and leave events for HashNode nodes. + # Visit a HashNode node. # - # source://prism//lib/prism/dispatcher.rb#1600 + # source://prism//lib/prism/dot_visitor.rb#2023 def visit_hash_node(node); end - # Dispatch enter and leave events for HashPatternNode nodes. + # Visit a HashPatternNode node. # - # source://prism//lib/prism/dispatcher.rb#1606 + # source://prism//lib/prism/dot_visitor.rb#2056 def visit_hash_pattern_node(node); end - # Dispatch enter and leave events for IfNode nodes. + # Visit a IfNode node. # - # source://prism//lib/prism/dispatcher.rb#1612 + # source://prism//lib/prism/dot_visitor.rb#2105 def visit_if_node(node); end - # Dispatch enter and leave events for ImaginaryNode nodes. + # Visit a ImaginaryNode node. # - # source://prism//lib/prism/dispatcher.rb#1618 + # source://prism//lib/prism/dot_visitor.rb#2150 def visit_imaginary_node(node); end - # Dispatch enter and leave events for ImplicitNode nodes. + # Visit a ImplicitNode node. # - # source://prism//lib/prism/dispatcher.rb#1624 + # source://prism//lib/prism/dot_visitor.rb#2168 def visit_implicit_node(node); end - # Dispatch enter and leave events for InNode nodes. + # Visit a ImplicitRestNode node. + # + # source://prism//lib/prism/dot_visitor.rb#2186 + def visit_implicit_rest_node(node); end + + # Visit a InNode node. # - # source://prism//lib/prism/dispatcher.rb#1630 + # source://prism//lib/prism/dot_visitor.rb#2200 def visit_in_node(node); end - # Dispatch enter and leave events for IndexAndWriteNode nodes. + # Visit a IndexAndWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1636 + # source://prism//lib/prism/dot_visitor.rb#2232 def visit_index_and_write_node(node); end - # Dispatch enter and leave events for IndexOperatorWriteNode nodes. + # Visit a IndexOperatorWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1642 + # source://prism//lib/prism/dot_visitor.rb#2285 def visit_index_operator_write_node(node); end - # Dispatch enter and leave events for IndexOrWriteNode nodes. + # Visit a IndexOrWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1648 + # source://prism//lib/prism/dot_visitor.rb#2341 def visit_index_or_write_node(node); end - # Dispatch enter and leave events for InstanceVariableAndWriteNode nodes. + # Visit a IndexTargetNode node. + # + # source://prism//lib/prism/dot_visitor.rb#2394 + def visit_index_target_node(node); end + + # Visit a InstanceVariableAndWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1654 + # source://prism//lib/prism/dot_visitor.rb#2433 def visit_instance_variable_and_write_node(node); end - # Dispatch enter and leave events for InstanceVariableOperatorWriteNode nodes. + # Visit a InstanceVariableOperatorWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1660 + # source://prism//lib/prism/dot_visitor.rb#2460 def visit_instance_variable_operator_write_node(node); end - # Dispatch enter and leave events for InstanceVariableOrWriteNode nodes. + # Visit a InstanceVariableOrWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1666 + # source://prism//lib/prism/dot_visitor.rb#2490 def visit_instance_variable_or_write_node(node); end - # Dispatch enter and leave events for InstanceVariableReadNode nodes. + # Visit a InstanceVariableReadNode node. # - # source://prism//lib/prism/dispatcher.rb#1672 + # source://prism//lib/prism/dot_visitor.rb#2517 def visit_instance_variable_read_node(node); end - # Dispatch enter and leave events for InstanceVariableTargetNode nodes. + # Visit a InstanceVariableTargetNode node. # - # source://prism//lib/prism/dispatcher.rb#1678 + # source://prism//lib/prism/dot_visitor.rb#2534 def visit_instance_variable_target_node(node); end - # Dispatch enter and leave events for InstanceVariableWriteNode nodes. + # Visit a InstanceVariableWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1684 + # source://prism//lib/prism/dot_visitor.rb#2551 def visit_instance_variable_write_node(node); end - # Dispatch enter and leave events for IntegerNode nodes. + # Visit a IntegerNode node. # - # source://prism//lib/prism/dispatcher.rb#1690 + # source://prism//lib/prism/dot_visitor.rb#2578 def visit_integer_node(node); end - # Dispatch enter and leave events for InterpolatedMatchLastLineNode nodes. + # Visit a InterpolatedMatchLastLineNode node. # - # source://prism//lib/prism/dispatcher.rb#1696 + # source://prism//lib/prism/dot_visitor.rb#2595 def visit_interpolated_match_last_line_node(node); end - # Dispatch enter and leave events for InterpolatedRegularExpressionNode nodes. + # Visit a InterpolatedRegularExpressionNode node. # - # source://prism//lib/prism/dispatcher.rb#1702 + # source://prism//lib/prism/dot_visitor.rb#2631 def visit_interpolated_regular_expression_node(node); end - # Dispatch enter and leave events for InterpolatedStringNode nodes. + # Visit a InterpolatedStringNode node. # - # source://prism//lib/prism/dispatcher.rb#1708 + # source://prism//lib/prism/dot_visitor.rb#2667 def visit_interpolated_string_node(node); end - # Dispatch enter and leave events for InterpolatedSymbolNode nodes. + # Visit a InterpolatedSymbolNode node. # - # source://prism//lib/prism/dispatcher.rb#1714 + # source://prism//lib/prism/dot_visitor.rb#2704 def visit_interpolated_symbol_node(node); end - # Dispatch enter and leave events for InterpolatedXStringNode nodes. + # Visit a InterpolatedXStringNode node. # - # source://prism//lib/prism/dispatcher.rb#1720 + # source://prism//lib/prism/dot_visitor.rb#2741 def visit_interpolated_x_string_node(node); end - # Dispatch enter and leave events for KeywordHashNode nodes. + # Visit a KeywordHashNode node. # - # source://prism//lib/prism/dispatcher.rb#1726 + # source://prism//lib/prism/dot_visitor.rb#2774 def visit_keyword_hash_node(node); end - # Dispatch enter and leave events for KeywordRestParameterNode nodes. + # Visit a KeywordRestParameterNode node. # - # source://prism//lib/prism/dispatcher.rb#1732 + # source://prism//lib/prism/dot_visitor.rb#2804 def visit_keyword_rest_parameter_node(node); end - # Dispatch enter and leave events for LambdaNode nodes. + # Visit a LambdaNode node. # - # source://prism//lib/prism/dispatcher.rb#1738 + # source://prism//lib/prism/dot_visitor.rb#2829 def visit_lambda_node(node); end - # Dispatch enter and leave events for LocalVariableAndWriteNode nodes. + # Visit a LocalVariableAndWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1744 + # source://prism//lib/prism/dot_visitor.rb#2870 def visit_local_variable_and_write_node(node); end - # Dispatch enter and leave events for LocalVariableOperatorWriteNode nodes. + # Visit a LocalVariableOperatorWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1750 + # source://prism//lib/prism/dot_visitor.rb#2900 def visit_local_variable_operator_write_node(node); end - # Dispatch enter and leave events for LocalVariableOrWriteNode nodes. + # Visit a LocalVariableOrWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1756 + # source://prism//lib/prism/dot_visitor.rb#2933 def visit_local_variable_or_write_node(node); end - # Dispatch enter and leave events for LocalVariableReadNode nodes. + # Visit a LocalVariableReadNode node. # - # source://prism//lib/prism/dispatcher.rb#1762 + # source://prism//lib/prism/dot_visitor.rb#2963 def visit_local_variable_read_node(node); end - # Dispatch enter and leave events for LocalVariableTargetNode nodes. + # Visit a LocalVariableTargetNode node. # - # source://prism//lib/prism/dispatcher.rb#1768 + # source://prism//lib/prism/dot_visitor.rb#2983 def visit_local_variable_target_node(node); end - # Dispatch enter and leave events for LocalVariableWriteNode nodes. + # Visit a LocalVariableWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1774 + # source://prism//lib/prism/dot_visitor.rb#3003 def visit_local_variable_write_node(node); end - # Dispatch enter and leave events for MatchLastLineNode nodes. + # Visit a MatchLastLineNode node. # - # source://prism//lib/prism/dispatcher.rb#1780 + # source://prism//lib/prism/dot_visitor.rb#3033 def visit_match_last_line_node(node); end - # Dispatch enter and leave events for MatchPredicateNode nodes. + # Visit a MatchPredicateNode node. # - # source://prism//lib/prism/dispatcher.rb#1786 + # source://prism//lib/prism/dot_visitor.rb#3062 def visit_match_predicate_node(node); end - # Dispatch enter and leave events for MatchRequiredNode nodes. + # Visit a MatchRequiredNode node. # - # source://prism//lib/prism/dispatcher.rb#1792 + # source://prism//lib/prism/dot_visitor.rb#3087 def visit_match_required_node(node); end - # Dispatch enter and leave events for MatchWriteNode nodes. + # Visit a MatchWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1798 + # source://prism//lib/prism/dot_visitor.rb#3112 def visit_match_write_node(node); end - # Dispatch enter and leave events for MissingNode nodes. + # Visit a MissingNode node. # - # source://prism//lib/prism/dispatcher.rb#1804 + # source://prism//lib/prism/dot_visitor.rb#3143 def visit_missing_node(node); end - # Dispatch enter and leave events for ModuleNode nodes. + # Visit a ModuleNode node. # - # source://prism//lib/prism/dispatcher.rb#1810 + # source://prism//lib/prism/dot_visitor.rb#3157 def visit_module_node(node); end - # Dispatch enter and leave events for MultiTargetNode nodes. + # Visit a MultiTargetNode node. # - # source://prism//lib/prism/dispatcher.rb#1816 + # source://prism//lib/prism/dot_visitor.rb#3193 def visit_multi_target_node(node); end - # Dispatch enter and leave events for MultiWriteNode nodes. + # Visit a MultiWriteNode node. # - # source://prism//lib/prism/dispatcher.rb#1822 + # source://prism//lib/prism/dot_visitor.rb#3249 def visit_multi_write_node(node); end - # Dispatch enter and leave events for NextNode nodes. + # Visit a NextNode node. # - # source://prism//lib/prism/dispatcher.rb#1828 + # source://prism//lib/prism/dot_visitor.rb#3312 def visit_next_node(node); end - # Dispatch enter and leave events for NilNode nodes. + # Visit a NilNode node. # - # source://prism//lib/prism/dispatcher.rb#1834 + # source://prism//lib/prism/dot_visitor.rb#3335 def visit_nil_node(node); end - # Dispatch enter and leave events for NoKeywordsParameterNode nodes. + # Visit a NoKeywordsParameterNode node. # - # source://prism//lib/prism/dispatcher.rb#1840 + # source://prism//lib/prism/dot_visitor.rb#3349 def visit_no_keywords_parameter_node(node); end - # Dispatch enter and leave events for NumberedReferenceReadNode nodes. + # Visit a NumberedParametersNode node. + # + # source://prism//lib/prism/dot_visitor.rb#3369 + def visit_numbered_parameters_node(node); end + + # Visit a NumberedReferenceReadNode node. # - # source://prism//lib/prism/dispatcher.rb#1846 + # source://prism//lib/prism/dot_visitor.rb#3386 def visit_numbered_reference_read_node(node); end - # Dispatch enter and leave events for OptionalKeywordParameterNode nodes. + # Visit a OptionalKeywordParameterNode node. # - # source://prism//lib/prism/dispatcher.rb#1852 + # source://prism//lib/prism/dot_visitor.rb#3403 def visit_optional_keyword_parameter_node(node); end - # Dispatch enter and leave events for OptionalParameterNode nodes. + # Visit a OptionalParameterNode node. # - # source://prism//lib/prism/dispatcher.rb#1858 + # source://prism//lib/prism/dot_visitor.rb#3427 def visit_optional_parameter_node(node); end - # Dispatch enter and leave events for OrNode nodes. + # Visit a OrNode node. # - # source://prism//lib/prism/dispatcher.rb#1864 + # source://prism//lib/prism/dot_visitor.rb#3454 def visit_or_node(node); end - # Dispatch enter and leave events for ParametersNode nodes. + # Visit a ParametersNode node. # - # source://prism//lib/prism/dispatcher.rb#1870 + # source://prism//lib/prism/dot_visitor.rb#3479 def visit_parameters_node(node); end - # Dispatch enter and leave events for ParenthesesNode nodes. + # Visit a ParenthesesNode node. # - # source://prism//lib/prism/dispatcher.rb#1876 + # source://prism//lib/prism/dot_visitor.rb#3563 def visit_parentheses_node(node); end - # Dispatch enter and leave events for PinnedExpressionNode nodes. + # Visit a PinnedExpressionNode node. # - # source://prism//lib/prism/dispatcher.rb#1882 + # source://prism//lib/prism/dot_visitor.rb#3589 def visit_pinned_expression_node(node); end - # Dispatch enter and leave events for PinnedVariableNode nodes. + # Visit a PinnedVariableNode node. # - # source://prism//lib/prism/dispatcher.rb#1888 + # source://prism//lib/prism/dot_visitor.rb#3616 def visit_pinned_variable_node(node); end - # Dispatch enter and leave events for PostExecutionNode nodes. + # Visit a PostExecutionNode node. # - # source://prism//lib/prism/dispatcher.rb#1894 + # source://prism//lib/prism/dot_visitor.rb#3637 def visit_post_execution_node(node); end - # Dispatch enter and leave events for PreExecutionNode nodes. + # Visit a PreExecutionNode node. # - # source://prism//lib/prism/dispatcher.rb#1900 + # source://prism//lib/prism/dot_visitor.rb#3666 def visit_pre_execution_node(node); end - # Dispatch enter and leave events for ProgramNode nodes. + # Visit a ProgramNode node. # - # source://prism//lib/prism/dispatcher.rb#1906 + # source://prism//lib/prism/dot_visitor.rb#3695 def visit_program_node(node); end - # Dispatch enter and leave events for RangeNode nodes. + # Visit a RangeNode node. # - # source://prism//lib/prism/dispatcher.rb#1912 + # source://prism//lib/prism/dot_visitor.rb#3716 def visit_range_node(node); end - # Dispatch enter and leave events for RationalNode nodes. + # Visit a RationalNode node. # - # source://prism//lib/prism/dispatcher.rb#1918 + # source://prism//lib/prism/dot_visitor.rb#3748 def visit_rational_node(node); end - # Dispatch enter and leave events for RedoNode nodes. + # Visit a RedoNode node. # - # source://prism//lib/prism/dispatcher.rb#1924 + # source://prism//lib/prism/dot_visitor.rb#3766 def visit_redo_node(node); end - # Dispatch enter and leave events for RegularExpressionNode nodes. + # Visit a RegularExpressionNode node. + # + # source://prism//lib/prism/dot_visitor.rb#3780 + def visit_regular_expression_node(node); end + + # Visit a RequiredKeywordParameterNode node. + # + # source://prism//lib/prism/dot_visitor.rb#3809 + def visit_required_keyword_parameter_node(node); end + + # Visit a RequiredParameterNode node. + # + # source://prism//lib/prism/dot_visitor.rb#3829 + def visit_required_parameter_node(node); end + + # Visit a RescueModifierNode node. + # + # source://prism//lib/prism/dot_visitor.rb#3846 + def visit_rescue_modifier_node(node); end + + # Visit a RescueNode node. + # + # source://prism//lib/prism/dot_visitor.rb#3871 + def visit_rescue_node(node); end + + # Visit a RestParameterNode node. + # + # source://prism//lib/prism/dot_visitor.rb#3924 + def visit_rest_parameter_node(node); end + + # Visit a RetryNode node. + # + # source://prism//lib/prism/dot_visitor.rb#3949 + def visit_retry_node(node); end + + # Visit a ReturnNode node. + # + # source://prism//lib/prism/dot_visitor.rb#3963 + def visit_return_node(node); end + + # Visit a SelfNode node. + # + # source://prism//lib/prism/dot_visitor.rb#3986 + def visit_self_node(node); end + + # Visit a SingletonClassNode node. + # + # source://prism//lib/prism/dot_visitor.rb#4000 + def visit_singleton_class_node(node); end + + # Visit a SourceEncodingNode node. + # + # source://prism//lib/prism/dot_visitor.rb#4036 + def visit_source_encoding_node(node); end + + # Visit a SourceFileNode node. + # + # source://prism//lib/prism/dot_visitor.rb#4050 + def visit_source_file_node(node); end + + # Visit a SourceLineNode node. + # + # source://prism//lib/prism/dot_visitor.rb#4067 + def visit_source_line_node(node); end + + # Visit a SplatNode node. + # + # source://prism//lib/prism/dot_visitor.rb#4081 + def visit_splat_node(node); end + + # Visit a StatementsNode node. + # + # source://prism//lib/prism/dot_visitor.rb#4104 + def visit_statements_node(node); end + + # Visit a StringNode node. + # + # source://prism//lib/prism/dot_visitor.rb#4131 + def visit_string_node(node); end + + # Visit a SuperNode node. + # + # source://prism//lib/prism/dot_visitor.rb#4164 + def visit_super_node(node); end + + # Visit a SymbolNode node. + # + # source://prism//lib/prism/dot_visitor.rb#4203 + def visit_symbol_node(node); end + + # Visit a TrueNode node. + # + # source://prism//lib/prism/dot_visitor.rb#4238 + def visit_true_node(node); end + + # Visit a UndefNode node. + # + # source://prism//lib/prism/dot_visitor.rb#4252 + def visit_undef_node(node); end + + # Visit a UnlessNode node. + # + # source://prism//lib/prism/dot_visitor.rb#4282 + def visit_unless_node(node); end + + # Visit a UntilNode node. + # + # source://prism//lib/prism/dot_visitor.rb#4325 + def visit_until_node(node); end + + # Visit a WhenNode node. + # + # source://prism//lib/prism/dot_visitor.rb#4360 + def visit_when_node(node); end + + # Visit a WhileNode node. + # + # source://prism//lib/prism/dot_visitor.rb#4396 + def visit_while_node(node); end + + # Visit a XStringNode node. + # + # source://prism//lib/prism/dot_visitor.rb#4431 + def visit_x_string_node(node); end + + # Visit a YieldNode node. + # + # source://prism//lib/prism/dot_visitor.rb#4460 + def visit_yield_node(node); end + + private + + # Inspect a node that has arguments_node_flags flags to display the flags as a + # comma-separated list. # - # source://prism//lib/prism/dispatcher.rb#1930 - def visit_regular_expression_node(node); end + # source://prism//lib/prism/dot_visitor.rb#4506 + def arguments_node_flags_inspect(node); end - # Dispatch enter and leave events for RequiredKeywordParameterNode nodes. + # Inspect a node that has array_node_flags flags to display the flags as a + # comma-separated list. # - # source://prism//lib/prism/dispatcher.rb#1936 - def visit_required_keyword_parameter_node(node); end + # source://prism//lib/prism/dot_visitor.rb#4514 + def array_node_flags_inspect(node); end - # Dispatch enter and leave events for RequiredParameterNode nodes. + # Inspect a node that has call_node_flags flags to display the flags as a + # comma-separated list. # - # source://prism//lib/prism/dispatcher.rb#1942 - def visit_required_parameter_node(node); end + # source://prism//lib/prism/dot_visitor.rb#4522 + def call_node_flags_inspect(node); end - # Dispatch enter and leave events for RescueModifierNode nodes. + # Inspect a node that has encoding_flags flags to display the flags as a + # comma-separated list. # - # source://prism//lib/prism/dispatcher.rb#1948 - def visit_rescue_modifier_node(node); end + # source://prism//lib/prism/dot_visitor.rb#4532 + def encoding_flags_inspect(node); end - # Dispatch enter and leave events for RescueNode nodes. + # Inspect a node that has integer_base_flags flags to display the flags as a + # comma-separated list. # - # source://prism//lib/prism/dispatcher.rb#1954 - def visit_rescue_node(node); end + # source://prism//lib/prism/dot_visitor.rb#4541 + def integer_base_flags_inspect(node); end - # Dispatch enter and leave events for RestParameterNode nodes. + # Inspect a node that has keyword_hash_node_flags flags to display the flags as a + # comma-separated list. # - # source://prism//lib/prism/dispatcher.rb#1960 - def visit_rest_parameter_node(node); end + # source://prism//lib/prism/dot_visitor.rb#4552 + def keyword_hash_node_flags_inspect(node); end - # Dispatch enter and leave events for RetryNode nodes. + # Inspect a location to display the start and end line and column numbers. # - # source://prism//lib/prism/dispatcher.rb#1966 - def visit_retry_node(node); end + # source://prism//lib/prism/dot_visitor.rb#4500 + def location_inspect(location); end - # Dispatch enter and leave events for ReturnNode nodes. + # Inspect a node that has loop_flags flags to display the flags as a + # comma-separated list. # - # source://prism//lib/prism/dispatcher.rb#1972 - def visit_return_node(node); end + # source://prism//lib/prism/dot_visitor.rb#4560 + def loop_flags_inspect(node); end - # Dispatch enter and leave events for SelfNode nodes. + # Generate a unique node ID for a node throughout the digraph. # - # source://prism//lib/prism/dispatcher.rb#1978 - def visit_self_node(node); end + # source://prism//lib/prism/dot_visitor.rb#4495 + def node_id(node); end - # Dispatch enter and leave events for SingletonClassNode nodes. + # Inspect a node that has range_flags flags to display the flags as a + # comma-separated list. # - # source://prism//lib/prism/dispatcher.rb#1984 - def visit_singleton_class_node(node); end + # source://prism//lib/prism/dot_visitor.rb#4568 + def range_flags_inspect(node); end - # Dispatch enter and leave events for SourceEncodingNode nodes. + # Inspect a node that has regular_expression_flags flags to display the flags as a + # comma-separated list. # - # source://prism//lib/prism/dispatcher.rb#1990 - def visit_source_encoding_node(node); end + # source://prism//lib/prism/dot_visitor.rb#4576 + def regular_expression_flags_inspect(node); end - # Dispatch enter and leave events for SourceFileNode nodes. + # Inspect a node that has string_flags flags to display the flags as a + # comma-separated list. # - # source://prism//lib/prism/dispatcher.rb#1996 - def visit_source_file_node(node); end + # source://prism//lib/prism/dot_visitor.rb#4594 + def string_flags_inspect(node); end - # Dispatch enter and leave events for SourceLineNode nodes. + # Inspect a node that has symbol_flags flags to display the flags as a + # comma-separated list. # - # source://prism//lib/prism/dispatcher.rb#2002 - def visit_source_line_node(node); end + # source://prism//lib/prism/dot_visitor.rb#4604 + def symbol_flags_inspect(node); end +end - # Dispatch enter and leave events for SplatNode nodes. +# source://prism//lib/prism/dot_visitor.rb#58 +class Prism::DotVisitor::Digraph + # @return [Digraph] a new instance of Digraph # - # source://prism//lib/prism/dispatcher.rb#2008 - def visit_splat_node(node); end + # source://prism//lib/prism/dot_visitor.rb#61 + def initialize; end - # Dispatch enter and leave events for StatementsNode nodes. - # - # source://prism//lib/prism/dispatcher.rb#2014 - def visit_statements_node(node); end + # source://prism//lib/prism/dot_visitor.rb#75 + def edge(value); end - # Dispatch enter and leave events for StringConcatNode nodes. + # Returns the value of attribute edges. # - # source://prism//lib/prism/dispatcher.rb#2020 - def visit_string_concat_node(node); end + # source://prism//lib/prism/dot_visitor.rb#59 + def edges; end - # Dispatch enter and leave events for StringNode nodes. - # - # source://prism//lib/prism/dispatcher.rb#2026 - def visit_string_node(node); end + # source://prism//lib/prism/dot_visitor.rb#67 + def node(value); end - # Dispatch enter and leave events for SuperNode nodes. + # Returns the value of attribute nodes. # - # source://prism//lib/prism/dispatcher.rb#2032 - def visit_super_node(node); end + # source://prism//lib/prism/dot_visitor.rb#59 + def nodes; end - # Dispatch enter and leave events for SymbolNode nodes. - # - # source://prism//lib/prism/dispatcher.rb#2038 - def visit_symbol_node(node); end + # source://prism//lib/prism/dot_visitor.rb#79 + def to_dot; end - # Dispatch enter and leave events for TrueNode nodes. + # source://prism//lib/prism/dot_visitor.rb#71 + def waypoint(value); end + + # Returns the value of attribute waypoints. # - # source://prism//lib/prism/dispatcher.rb#2044 - def visit_true_node(node); end + # source://prism//lib/prism/dot_visitor.rb#59 + def waypoints; end +end - # Dispatch enter and leave events for UndefNode nodes. +# source://prism//lib/prism/dot_visitor.rb#14 +class Prism::DotVisitor::Field + # @return [Field] a new instance of Field # - # source://prism//lib/prism/dispatcher.rb#2050 - def visit_undef_node(node); end + # source://prism//lib/prism/dot_visitor.rb#17 + def initialize(name, value, port); end - # Dispatch enter and leave events for UnlessNode nodes. + # Returns the value of attribute name. # - # source://prism//lib/prism/dispatcher.rb#2056 - def visit_unless_node(node); end + # source://prism//lib/prism/dot_visitor.rb#15 + def name; end - # Dispatch enter and leave events for UntilNode nodes. + # Returns the value of attribute port. # - # source://prism//lib/prism/dispatcher.rb#2062 - def visit_until_node(node); end + # source://prism//lib/prism/dot_visitor.rb#15 + def port; end - # Dispatch enter and leave events for WhenNode nodes. + # source://prism//lib/prism/dot_visitor.rb#23 + def to_dot; end + + # Returns the value of attribute value. # - # source://prism//lib/prism/dispatcher.rb#2068 - def visit_when_node(node); end + # source://prism//lib/prism/dot_visitor.rb#15 + def value; end +end - # Dispatch enter and leave events for WhileNode nodes. +# source://prism//lib/prism/dot_visitor.rb#32 +class Prism::DotVisitor::Table + # @return [Table] a new instance of Table # - # source://prism//lib/prism/dispatcher.rb#2074 - def visit_while_node(node); end + # source://prism//lib/prism/dot_visitor.rb#35 + def initialize(name); end - # Dispatch enter and leave events for XStringNode nodes. + # source://prism//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//lib/prism/dispatcher.rb#2080 - def visit_x_string_node(node); end + # source://prism//lib/prism/dot_visitor.rb#33 + def fields; end - # Dispatch enter and leave events for YieldNode nodes. + # Returns the value of attribute name. # - # source://prism//lib/prism/dispatcher.rb#2086 - def visit_yield_node(node); end + # source://prism//lib/prism/dot_visitor.rb#33 + def name; end + + # source://prism//lib/prism/dot_visitor.rb#44 + def to_dot; end end # Represents an `else` clause in a `case`, `if`, or `unless` statement. @@ -9798,13 +11249,13 @@ end # if a then b else c end # ^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#5234 +# source://prism//lib/prism/node.rb#5564 class Prism::ElseNode < ::Prism::Node # def initialize: (else_keyword_loc: Location, statements: StatementsNode?, end_keyword_loc: Location?, location: Location) -> void # # @return [ElseNode] a new instance of ElseNode # - # source://prism//lib/prism/node.rb#5245 + # source://prism//lib/prism/node.rb#5575 sig do params( else_keyword_loc: Prism::Location, @@ -9817,42 +11268,42 @@ class Prism::ElseNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#5253 + # source://prism//lib/prism/node.rb#5583 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#5258 + # source://prism//lib/prism/node.rb#5588 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#5270 + # source://prism//lib/prism/node.rb#5600 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#5263 + # source://prism//lib/prism/node.rb#5593 def compact_child_nodes; end # def copy: (**params) -> ElseNode # - # source://prism//lib/prism/node.rb#5275 + # source://prism//lib/prism/node.rb#5605 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//lib/prism/node.rb#5258 + # source://prism//lib/prism/node.rb#5588 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#5288 + # source://prism//lib/prism/node.rb#5618 sig do params( keys: T::Array[Symbol] @@ -9862,36 +11313,36 @@ class Prism::ElseNode < ::Prism::Node # def else_keyword: () -> String # - # source://prism//lib/prism/node.rb#5293 + # source://prism//lib/prism/node.rb#5623 sig { returns(String) } def else_keyword; end # attr_reader else_keyword_loc: Location # - # source://prism//lib/prism/node.rb#5236 + # source://prism//lib/prism/node.rb#5566 sig { returns(Prism::Location) } def else_keyword_loc; end # def end_keyword: () -> String? # - # source://prism//lib/prism/node.rb#5298 + # source://prism//lib/prism/node.rb#5628 sig { returns(T.nilable(String)) } def end_keyword; end # attr_reader end_keyword_loc: Location? # - # source://prism//lib/prism/node.rb#5242 + # source://prism//lib/prism/node.rb#5572 sig { returns(T.nilable(Prism::Location)) } def end_keyword_loc; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#5303 + # source://prism//lib/prism/node.rb#5633 def inspect(inspector = T.unsafe(nil)); end # attr_reader statements: StatementsNode? # - # source://prism//lib/prism/node.rb#5239 + # source://prism//lib/prism/node.rb#5569 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end @@ -9910,7 +11361,7 @@ class Prism::ElseNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#5330 + # source://prism//lib/prism/node.rb#5660 def type; end class << self @@ -9921,7 +11372,7 @@ class Prism::ElseNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#5340 + # source://prism//lib/prism/node.rb#5670 def type; end end end @@ -9929,12 +11380,19 @@ end # EmbDocComment objects correspond to comments that are surrounded by =begin # and =end. # -# source://prism//lib/prism/parse_result.rb#231 +# source://prism//lib/prism/parse_result.rb#260 class Prism::EmbDocComment < ::Prism::Comment # Returns a string representation of this comment. # - # source://prism//lib/prism/parse_result.rb#233 + # source://prism//lib/prism/parse_result.rb#267 def inspect; end + + # This can only be true for inline comments. + # + # @return [Boolean] + # + # source://prism//lib/prism/parse_result.rb#262 + def trailing?; end end # Represents an interpolated set of statements. @@ -9942,13 +11400,13 @@ end # "foo #{bar}" # ^^^^^^ # -# source://prism//lib/prism/node.rb#5349 +# source://prism//lib/prism/node.rb#5679 class Prism::EmbeddedStatementsNode < ::Prism::Node # def initialize: (opening_loc: Location, statements: StatementsNode?, closing_loc: Location, location: Location) -> void # # @return [EmbeddedStatementsNode] a new instance of EmbeddedStatementsNode # - # source://prism//lib/prism/node.rb#5360 + # source://prism//lib/prism/node.rb#5690 sig do params( opening_loc: Prism::Location, @@ -9961,54 +11419,54 @@ class Prism::EmbeddedStatementsNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#5368 + # source://prism//lib/prism/node.rb#5698 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#5373 + # source://prism//lib/prism/node.rb#5703 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#5413 + # source://prism//lib/prism/node.rb#5743 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#5357 + # source://prism//lib/prism/node.rb#5687 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#5385 + # source://prism//lib/prism/node.rb#5715 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#5378 + # source://prism//lib/prism/node.rb#5708 def compact_child_nodes; end # def copy: (**params) -> EmbeddedStatementsNode # - # source://prism//lib/prism/node.rb#5390 + # source://prism//lib/prism/node.rb#5720 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//lib/prism/node.rb#5373 + # source://prism//lib/prism/node.rb#5703 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#5403 + # source://prism//lib/prism/node.rb#5733 sig do params( keys: T::Array[Symbol] @@ -10018,24 +11476,24 @@ class Prism::EmbeddedStatementsNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#5418 + # source://prism//lib/prism/node.rb#5748 def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String # - # source://prism//lib/prism/node.rb#5408 + # source://prism//lib/prism/node.rb#5738 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#5351 + # source://prism//lib/prism/node.rb#5681 sig { returns(Prism::Location) } def opening_loc; end # attr_reader statements: StatementsNode? # - # source://prism//lib/prism/node.rb#5354 + # source://prism//lib/prism/node.rb#5684 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end @@ -10054,7 +11512,7 @@ class Prism::EmbeddedStatementsNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#5445 + # source://prism//lib/prism/node.rb#5775 def type; end class << self @@ -10065,7 +11523,7 @@ class Prism::EmbeddedStatementsNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#5455 + # source://prism//lib/prism/node.rb#5785 def type; end end end @@ -10075,54 +11533,54 @@ end # "foo #@bar" # ^^^^^ # -# source://prism//lib/prism/node.rb#5464 +# source://prism//lib/prism/node.rb#5794 class Prism::EmbeddedVariableNode < ::Prism::Node # def initialize: (operator_loc: Location, variable: Node, location: Location) -> void # # @return [EmbeddedVariableNode] a new instance of EmbeddedVariableNode # - # source://prism//lib/prism/node.rb#5472 + # source://prism//lib/prism/node.rb#5802 sig { params(operator_loc: Prism::Location, variable: Prism::Node, location: Prism::Location).void } def initialize(operator_loc, variable, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#5479 + # source://prism//lib/prism/node.rb#5809 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#5484 + # source://prism//lib/prism/node.rb#5814 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#5494 + # source://prism//lib/prism/node.rb#5824 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#5489 + # source://prism//lib/prism/node.rb#5819 def compact_child_nodes; end # def copy: (**params) -> EmbeddedVariableNode # - # source://prism//lib/prism/node.rb#5499 + # source://prism//lib/prism/node.rb#5829 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//lib/prism/node.rb#5484 + # source://prism//lib/prism/node.rb#5814 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#5511 + # source://prism//lib/prism/node.rb#5841 sig do params( keys: T::Array[Symbol] @@ -10132,18 +11590,18 @@ class Prism::EmbeddedVariableNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#5521 + # source://prism//lib/prism/node.rb#5851 def inspect(inspector = T.unsafe(nil)); end # def operator: () -> String # - # source://prism//lib/prism/node.rb#5516 + # source://prism//lib/prism/node.rb#5846 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#5466 + # source://prism//lib/prism/node.rb#5796 sig { returns(Prism::Location) } def operator_loc; end @@ -10162,12 +11620,12 @@ class Prism::EmbeddedVariableNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#5543 + # source://prism//lib/prism/node.rb#5873 def type; end # attr_reader variable: Node # - # source://prism//lib/prism/node.rb#5469 + # source://prism//lib/prism/node.rb#5799 sig { returns(Prism::Node) } def variable; end @@ -10179,11 +11637,26 @@ class Prism::EmbeddedVariableNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#5553 + # source://prism//lib/prism/node.rb#5883 def type; end end end +# Flags for nodes that have unescaped content. +# +# source://prism//lib/prism/node.rb#17301 +module Prism::EncodingFlags; end + +# internal bytes forced the encoding to binary +# +# source://prism//lib/prism/node.rb#17306 +Prism::EncodingFlags::FORCED_BINARY_ENCODING = T.let(T.unsafe(nil), Integer) + +# internal bytes forced the encoding to UTF-8 +# +# source://prism//lib/prism/node.rb#17303 +Prism::EncodingFlags::FORCED_UTF8_ENCODING = T.let(T.unsafe(nil), Integer) + # Represents an `ensure` clause in a `begin` statement. # # begin @@ -10193,13 +11666,13 @@ end # bar # end # -# source://prism//lib/prism/node.rb#5566 +# source://prism//lib/prism/node.rb#5896 class Prism::EnsureNode < ::Prism::Node # def initialize: (ensure_keyword_loc: Location, statements: StatementsNode?, end_keyword_loc: Location, location: Location) -> void # # @return [EnsureNode] a new instance of EnsureNode # - # source://prism//lib/prism/node.rb#5577 + # source://prism//lib/prism/node.rb#5907 sig do params( ensure_keyword_loc: Prism::Location, @@ -10212,42 +11685,42 @@ class Prism::EnsureNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#5585 + # source://prism//lib/prism/node.rb#5915 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#5590 + # source://prism//lib/prism/node.rb#5920 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#5602 + # source://prism//lib/prism/node.rb#5932 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#5595 + # source://prism//lib/prism/node.rb#5925 def compact_child_nodes; end # def copy: (**params) -> EnsureNode # - # source://prism//lib/prism/node.rb#5607 + # source://prism//lib/prism/node.rb#5937 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//lib/prism/node.rb#5590 + # source://prism//lib/prism/node.rb#5920 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#5620 + # source://prism//lib/prism/node.rb#5950 sig do params( keys: T::Array[Symbol] @@ -10257,36 +11730,36 @@ class Prism::EnsureNode < ::Prism::Node # def end_keyword: () -> String # - # source://prism//lib/prism/node.rb#5630 + # source://prism//lib/prism/node.rb#5960 sig { returns(String) } def end_keyword; end # attr_reader end_keyword_loc: Location # - # source://prism//lib/prism/node.rb#5574 + # source://prism//lib/prism/node.rb#5904 sig { returns(Prism::Location) } def end_keyword_loc; end # def ensure_keyword: () -> String # - # source://prism//lib/prism/node.rb#5625 + # source://prism//lib/prism/node.rb#5955 sig { returns(String) } def ensure_keyword; end # attr_reader ensure_keyword_loc: Location # - # source://prism//lib/prism/node.rb#5568 + # source://prism//lib/prism/node.rb#5898 sig { returns(Prism::Location) } def ensure_keyword_loc; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#5635 + # source://prism//lib/prism/node.rb#5965 def inspect(inspector = T.unsafe(nil)); end # attr_reader statements: StatementsNode? # - # source://prism//lib/prism/node.rb#5571 + # source://prism//lib/prism/node.rb#5901 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end @@ -10305,7 +11778,7 @@ class Prism::EnsureNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#5662 + # source://prism//lib/prism/node.rb#5992 def type; end class << self @@ -10316,7 +11789,7 @@ class Prism::EnsureNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#5672 + # source://prism//lib/prism/node.rb#6002 def type; end end end @@ -10326,54 +11799,54 @@ end # false # ^^^^^ # -# source://prism//lib/prism/node.rb#5681 +# source://prism//lib/prism/node.rb#6011 class Prism::FalseNode < ::Prism::Node # def initialize: (location: Location) -> void # # @return [FalseNode] a new instance of FalseNode # - # source://prism//lib/prism/node.rb#5683 + # source://prism//lib/prism/node.rb#6013 sig { params(location: Prism::Location).void } def initialize(location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#5688 + # source://prism//lib/prism/node.rb#6018 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#5693 + # source://prism//lib/prism/node.rb#6023 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#5703 + # source://prism//lib/prism/node.rb#6033 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#5698 + # source://prism//lib/prism/node.rb#6028 def compact_child_nodes; end # def copy: (**params) -> FalseNode # - # source://prism//lib/prism/node.rb#5708 + # source://prism//lib/prism/node.rb#6038 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//lib/prism/node.rb#5693 + # source://prism//lib/prism/node.rb#6023 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#5718 + # source://prism//lib/prism/node.rb#6048 sig do params( keys: T::Array[Symbol] @@ -10383,7 +11856,7 @@ class Prism::FalseNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#5723 + # source://prism//lib/prism/node.rb#6053 def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -10401,7 +11874,7 @@ class Prism::FalseNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#5742 + # source://prism//lib/prism/node.rb#6072 def type; end class << self @@ -10412,7 +11885,7 @@ class Prism::FalseNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#5752 + # source://prism//lib/prism/node.rb#6082 def type; end end end @@ -10428,13 +11901,13 @@ end # foo in Foo(*bar, baz, *qux) # ^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#5767 +# source://prism//lib/prism/node.rb#6097 class Prism::FindPatternNode < ::Prism::Node # def initialize: (constant: Node?, left: Node, requireds: Array[Node], right: Node, opening_loc: Location?, closing_loc: Location?, location: Location) -> void # # @return [FindPatternNode] a new instance of FindPatternNode # - # source://prism//lib/prism/node.rb#5787 + # source://prism//lib/prism/node.rb#6117 sig do params( constant: T.nilable(Prism::Node), @@ -10450,60 +11923,60 @@ class Prism::FindPatternNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#5798 + # source://prism//lib/prism/node.rb#6128 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#5803 + # source://prism//lib/prism/node.rb#6133 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String? # - # source://prism//lib/prism/node.rb#5849 + # source://prism//lib/prism/node.rb#6179 sig { returns(T.nilable(String)) } def closing; end # attr_reader closing_loc: Location? # - # source://prism//lib/prism/node.rb#5784 + # source://prism//lib/prism/node.rb#6114 sig { returns(T.nilable(Prism::Location)) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#5818 + # source://prism//lib/prism/node.rb#6148 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#5808 + # source://prism//lib/prism/node.rb#6138 def compact_child_nodes; end # attr_reader constant: Node? # - # source://prism//lib/prism/node.rb#5769 + # source://prism//lib/prism/node.rb#6099 sig { returns(T.nilable(Prism::Node)) } def constant; end # def copy: (**params) -> FindPatternNode # - # source://prism//lib/prism/node.rb#5823 + # source://prism//lib/prism/node.rb#6153 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//lib/prism/node.rb#5803 + # source://prism//lib/prism/node.rb#6133 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#5839 + # source://prism//lib/prism/node.rb#6169 sig do params( keys: T::Array[Symbol] @@ -10513,36 +11986,36 @@ class Prism::FindPatternNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#5854 + # source://prism//lib/prism/node.rb#6184 def inspect(inspector = T.unsafe(nil)); end # attr_reader left: Node # - # source://prism//lib/prism/node.rb#5772 + # source://prism//lib/prism/node.rb#6102 sig { returns(Prism::Node) } def left; end # def opening: () -> String? # - # source://prism//lib/prism/node.rb#5844 + # source://prism//lib/prism/node.rb#6174 sig { returns(T.nilable(String)) } def opening; end # attr_reader opening_loc: Location? # - # source://prism//lib/prism/node.rb#5781 + # source://prism//lib/prism/node.rb#6111 sig { returns(T.nilable(Prism::Location)) } def opening_loc; end # attr_reader requireds: Array[Node] # - # source://prism//lib/prism/node.rb#5775 + # source://prism//lib/prism/node.rb#6105 sig { returns(T::Array[Prism::Node]) } def requireds; end # attr_reader right: Node # - # source://prism//lib/prism/node.rb#5778 + # source://prism//lib/prism/node.rb#6108 sig { returns(Prism::Node) } def right; end @@ -10561,7 +12034,7 @@ class Prism::FindPatternNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#5886 + # source://prism//lib/prism/node.rb#6216 def type; end class << self @@ -10572,7 +12045,7 @@ class Prism::FindPatternNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#5896 + # source://prism//lib/prism/node.rb#6226 def type; end end end @@ -10582,62 +12055,62 @@ end # baz if foo .. bar # ^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#5905 +# source://prism//lib/prism/node.rb#6235 class Prism::FlipFlopNode < ::Prism::Node - # def initialize: (left: Node?, right: Node?, operator_loc: Location, flags: Integer, location: Location) -> void + # def initialize: (flags: Integer, left: Node?, right: Node?, operator_loc: Location, location: Location) -> void # # @return [FlipFlopNode] a new instance of FlipFlopNode # - # source://prism//lib/prism/node.rb#5919 + # source://prism//lib/prism/node.rb#6249 sig do params( + flags: Integer, left: T.nilable(Prism::Node), right: T.nilable(Prism::Node), operator_loc: Prism::Location, - flags: Integer, location: Prism::Location ).void end - def initialize(left, right, operator_loc, flags, location); end + def initialize(flags, left, right, operator_loc, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#5928 + # source://prism//lib/prism/node.rb#6258 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#5933 + # source://prism//lib/prism/node.rb#6263 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#5946 + # source://prism//lib/prism/node.rb#6276 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#5938 + # source://prism//lib/prism/node.rb#6268 def compact_child_nodes; end # def copy: (**params) -> FlipFlopNode # - # source://prism//lib/prism/node.rb#5951 + # source://prism//lib/prism/node.rb#6281 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//lib/prism/node.rb#5933 + # source://prism//lib/prism/node.rb#6263 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#5965 + # source://prism//lib/prism/node.rb#6295 sig do params( keys: T::Array[Symbol] @@ -10649,36 +12122,36 @@ class Prism::FlipFlopNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#5975 + # source://prism//lib/prism/node.rb#6300 sig { returns(T::Boolean) } def exclude_end?; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#5980 + # source://prism//lib/prism/node.rb#6310 def inspect(inspector = T.unsafe(nil)); end # attr_reader left: Node? # - # source://prism//lib/prism/node.rb#5907 + # source://prism//lib/prism/node.rb#6240 sig { returns(T.nilable(Prism::Node)) } def left; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#5970 + # source://prism//lib/prism/node.rb#6305 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#5913 + # source://prism//lib/prism/node.rb#6246 sig { returns(Prism::Location) } def operator_loc; end # attr_reader right: Node? # - # source://prism//lib/prism/node.rb#5910 + # source://prism//lib/prism/node.rb#6243 sig { returns(T.nilable(Prism::Node)) } def right; end @@ -10697,14 +12170,14 @@ class Prism::FlipFlopNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#6014 + # source://prism//lib/prism/node.rb#6344 def type; end private # Returns the value of attribute flags. # - # source://prism//lib/prism/node.rb#5916 + # source://prism//lib/prism/node.rb#6237 sig { returns(Integer) } def flags; end @@ -10716,7 +12189,7 @@ class Prism::FlipFlopNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#6024 + # source://prism//lib/prism/node.rb#6354 def type; end end end @@ -10726,54 +12199,54 @@ end # 1.0 # ^^^ # -# source://prism//lib/prism/node.rb#6033 +# source://prism//lib/prism/node.rb#6363 class Prism::FloatNode < ::Prism::Node # def initialize: (location: Location) -> void # # @return [FloatNode] a new instance of FloatNode # - # source://prism//lib/prism/node.rb#6035 + # source://prism//lib/prism/node.rb#6365 sig { params(location: Prism::Location).void } def initialize(location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#6040 + # source://prism//lib/prism/node.rb#6370 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#6045 + # source://prism//lib/prism/node.rb#6375 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#6055 + # source://prism//lib/prism/node.rb#6385 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#6050 + # source://prism//lib/prism/node.rb#6380 def compact_child_nodes; end # def copy: (**params) -> FloatNode # - # source://prism//lib/prism/node.rb#6060 + # source://prism//lib/prism/node.rb#6390 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//lib/prism/node.rb#6045 + # source://prism//lib/prism/node.rb#6375 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#6070 + # source://prism//lib/prism/node.rb#6400 sig do params( keys: T::Array[Symbol] @@ -10783,7 +12256,7 @@ class Prism::FloatNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#6075 + # source://prism//lib/prism/node.rb#6405 def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -10801,12 +12274,12 @@ class Prism::FloatNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#6094 + # source://prism//lib/prism/node.rb#6424 def type; end # Returns the value of the node as a Ruby Float. # - # source://prism//lib/prism/node_ext.rb#21 + # source://prism//lib/prism/node_ext.rb#62 def value; end class << self @@ -10817,7 +12290,7 @@ class Prism::FloatNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#6104 + # source://prism//lib/prism/node.rb#6434 def type; end end end @@ -10827,13 +12300,13 @@ end # for i in a end # ^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#6113 +# source://prism//lib/prism/node.rb#6443 class Prism::ForNode < ::Prism::Node # def initialize: (index: Node, collection: Node, statements: StatementsNode?, for_keyword_loc: Location, in_keyword_loc: Location, do_keyword_loc: Location?, end_keyword_loc: Location, location: Location) -> void # # @return [ForNode] a new instance of ForNode # - # source://prism//lib/prism/node.rb#6136 + # source://prism//lib/prism/node.rb#6466 sig do params( index: Prism::Node, @@ -10850,48 +12323,48 @@ class Prism::ForNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#6148 + # source://prism//lib/prism/node.rb#6478 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#6153 + # source://prism//lib/prism/node.rb#6483 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # attr_reader collection: Node # - # source://prism//lib/prism/node.rb#6118 + # source://prism//lib/prism/node.rb#6448 sig { returns(Prism::Node) } def collection; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#6167 + # source://prism//lib/prism/node.rb#6497 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#6158 + # source://prism//lib/prism/node.rb#6488 def compact_child_nodes; end # def copy: (**params) -> ForNode # - # source://prism//lib/prism/node.rb#6172 + # source://prism//lib/prism/node.rb#6502 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//lib/prism/node.rb#6153 + # source://prism//lib/prism/node.rb#6483 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#6189 + # source://prism//lib/prism/node.rb#6519 sig do params( keys: T::Array[Symbol] @@ -10901,66 +12374,66 @@ class Prism::ForNode < ::Prism::Node # def do_keyword: () -> String? # - # source://prism//lib/prism/node.rb#6204 + # source://prism//lib/prism/node.rb#6534 sig { returns(T.nilable(String)) } def do_keyword; end # attr_reader do_keyword_loc: Location? # - # source://prism//lib/prism/node.rb#6130 + # source://prism//lib/prism/node.rb#6460 sig { returns(T.nilable(Prism::Location)) } def do_keyword_loc; end # def end_keyword: () -> String # - # source://prism//lib/prism/node.rb#6209 + # source://prism//lib/prism/node.rb#6539 sig { returns(String) } def end_keyword; end # attr_reader end_keyword_loc: Location # - # source://prism//lib/prism/node.rb#6133 + # source://prism//lib/prism/node.rb#6463 sig { returns(Prism::Location) } def end_keyword_loc; end # def for_keyword: () -> String # - # source://prism//lib/prism/node.rb#6194 + # source://prism//lib/prism/node.rb#6524 sig { returns(String) } def for_keyword; end # attr_reader for_keyword_loc: Location # - # source://prism//lib/prism/node.rb#6124 + # source://prism//lib/prism/node.rb#6454 sig { returns(Prism::Location) } def for_keyword_loc; end # def in_keyword: () -> String # - # source://prism//lib/prism/node.rb#6199 + # source://prism//lib/prism/node.rb#6529 sig { returns(String) } def in_keyword; end # attr_reader in_keyword_loc: Location # - # source://prism//lib/prism/node.rb#6127 + # source://prism//lib/prism/node.rb#6457 sig { returns(Prism::Location) } def in_keyword_loc; end # attr_reader index: Node # - # source://prism//lib/prism/node.rb#6115 + # source://prism//lib/prism/node.rb#6445 sig { returns(Prism::Node) } def index; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#6214 + # source://prism//lib/prism/node.rb#6544 def inspect(inspector = T.unsafe(nil)); end # attr_reader statements: StatementsNode? # - # source://prism//lib/prism/node.rb#6121 + # source://prism//lib/prism/node.rb#6451 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end @@ -10979,7 +12452,7 @@ class Prism::ForNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#6247 + # source://prism//lib/prism/node.rb#6577 def type; end class << self @@ -10990,7 +12463,7 @@ class Prism::ForNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#6257 + # source://prism//lib/prism/node.rb#6587 def type; end end end @@ -11002,54 +12475,54 @@ end # ^^^ # end # -# source://prism//lib/prism/node.rb#6268 +# source://prism//lib/prism/node.rb#6598 class Prism::ForwardingArgumentsNode < ::Prism::Node # def initialize: (location: Location) -> void # # @return [ForwardingArgumentsNode] a new instance of ForwardingArgumentsNode # - # source://prism//lib/prism/node.rb#6270 + # source://prism//lib/prism/node.rb#6600 sig { params(location: Prism::Location).void } def initialize(location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#6275 + # source://prism//lib/prism/node.rb#6605 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#6280 + # source://prism//lib/prism/node.rb#6610 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#6290 + # source://prism//lib/prism/node.rb#6620 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#6285 + # source://prism//lib/prism/node.rb#6615 def compact_child_nodes; end # def copy: (**params) -> ForwardingArgumentsNode # - # source://prism//lib/prism/node.rb#6295 + # source://prism//lib/prism/node.rb#6625 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//lib/prism/node.rb#6280 + # source://prism//lib/prism/node.rb#6610 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#6305 + # source://prism//lib/prism/node.rb#6635 sig do params( keys: T::Array[Symbol] @@ -11059,7 +12532,7 @@ class Prism::ForwardingArgumentsNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#6310 + # source://prism//lib/prism/node.rb#6640 def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -11077,7 +12550,7 @@ class Prism::ForwardingArgumentsNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#6329 + # source://prism//lib/prism/node.rb#6659 def type; end class << self @@ -11088,7 +12561,7 @@ class Prism::ForwardingArgumentsNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#6339 + # source://prism//lib/prism/node.rb#6669 def type; end end end @@ -11099,54 +12572,54 @@ end # ^^^ # end # -# source://prism//lib/prism/node.rb#6349 +# source://prism//lib/prism/node.rb#6679 class Prism::ForwardingParameterNode < ::Prism::Node # def initialize: (location: Location) -> void # # @return [ForwardingParameterNode] a new instance of ForwardingParameterNode # - # source://prism//lib/prism/node.rb#6351 + # source://prism//lib/prism/node.rb#6681 sig { params(location: Prism::Location).void } def initialize(location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#6356 + # source://prism//lib/prism/node.rb#6686 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#6361 + # source://prism//lib/prism/node.rb#6691 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#6371 + # source://prism//lib/prism/node.rb#6701 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#6366 + # source://prism//lib/prism/node.rb#6696 def compact_child_nodes; end # def copy: (**params) -> ForwardingParameterNode # - # source://prism//lib/prism/node.rb#6376 + # source://prism//lib/prism/node.rb#6706 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//lib/prism/node.rb#6361 + # source://prism//lib/prism/node.rb#6691 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#6386 + # source://prism//lib/prism/node.rb#6716 sig do params( keys: T::Array[Symbol] @@ -11156,7 +12629,7 @@ class Prism::ForwardingParameterNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#6391 + # source://prism//lib/prism/node.rb#6721 def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -11174,7 +12647,7 @@ class Prism::ForwardingParameterNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#6410 + # source://prism//lib/prism/node.rb#6740 def type; end class << self @@ -11185,7 +12658,7 @@ class Prism::ForwardingParameterNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#6420 + # source://prism//lib/prism/node.rb#6750 def type; end end end @@ -11195,60 +12668,60 @@ end # super # ^^^^^ # -# source://prism//lib/prism/node.rb#6429 +# source://prism//lib/prism/node.rb#6759 class Prism::ForwardingSuperNode < ::Prism::Node # def initialize: (block: BlockNode?, location: Location) -> void # # @return [ForwardingSuperNode] a new instance of ForwardingSuperNode # - # source://prism//lib/prism/node.rb#6434 + # source://prism//lib/prism/node.rb#6764 sig { params(block: T.nilable(Prism::BlockNode), location: Prism::Location).void } def initialize(block, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#6440 + # source://prism//lib/prism/node.rb#6770 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # attr_reader block: BlockNode? # - # source://prism//lib/prism/node.rb#6431 + # source://prism//lib/prism/node.rb#6761 sig { returns(T.nilable(Prism::BlockNode)) } def block; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#6445 + # source://prism//lib/prism/node.rb#6775 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#6457 + # source://prism//lib/prism/node.rb#6787 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#6450 + # source://prism//lib/prism/node.rb#6780 def compact_child_nodes; end # def copy: (**params) -> ForwardingSuperNode # - # source://prism//lib/prism/node.rb#6462 + # source://prism//lib/prism/node.rb#6792 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//lib/prism/node.rb#6445 + # source://prism//lib/prism/node.rb#6775 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#6473 + # source://prism//lib/prism/node.rb#6803 sig do params( keys: T::Array[Symbol] @@ -11258,7 +12731,7 @@ class Prism::ForwardingSuperNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#6478 + # source://prism//lib/prism/node.rb#6808 def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -11276,7 +12749,7 @@ class Prism::ForwardingSuperNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#6503 + # source://prism//lib/prism/node.rb#6833 def type; end class << self @@ -11287,7 +12760,7 @@ class Prism::ForwardingSuperNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#6513 + # source://prism//lib/prism/node.rb#6843 def type; end end end @@ -11297,13 +12770,13 @@ end # $target &&= value # ^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#6522 +# source://prism//lib/prism/node.rb#6852 class Prism::GlobalVariableAndWriteNode < ::Prism::Node # def initialize: (name: Symbol, name_loc: Location, operator_loc: Location, value: Node, location: Location) -> void # # @return [GlobalVariableAndWriteNode] a new instance of GlobalVariableAndWriteNode # - # source://prism//lib/prism/node.rb#6536 + # source://prism//lib/prism/node.rb#6866 sig do params( name: Symbol, @@ -11317,42 +12790,42 @@ class Prism::GlobalVariableAndWriteNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#6545 + # source://prism//lib/prism/node.rb#6875 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#6550 + # source://prism//lib/prism/node.rb#6880 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#6560 + # source://prism//lib/prism/node.rb#6890 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#6555 + # source://prism//lib/prism/node.rb#6885 def compact_child_nodes; end # def copy: (**params) -> GlobalVariableAndWriteNode # - # source://prism//lib/prism/node.rb#6565 + # source://prism//lib/prism/node.rb#6895 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//lib/prism/node.rb#6550 + # source://prism//lib/prism/node.rb#6880 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#6579 + # source://prism//lib/prism/node.rb#6909 sig do params( keys: T::Array[Symbol] @@ -11362,30 +12835,30 @@ class Prism::GlobalVariableAndWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#6589 + # source://prism//lib/prism/node.rb#6919 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#6524 + # source://prism//lib/prism/node.rb#6854 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#6527 + # source://prism//lib/prism/node.rb#6857 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#6584 + # source://prism//lib/prism/node.rb#6914 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#6530 + # source://prism//lib/prism/node.rb#6860 sig { returns(Prism::Location) } def operator_loc; end @@ -11404,12 +12877,12 @@ class Prism::GlobalVariableAndWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#6613 + # source://prism//lib/prism/node.rb#6943 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#6533 + # source://prism//lib/prism/node.rb#6863 sig { returns(Prism::Node) } def value; end @@ -11421,7 +12894,7 @@ class Prism::GlobalVariableAndWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#6623 + # source://prism//lib/prism/node.rb#6953 def type; end end end @@ -11431,13 +12904,13 @@ end # $target += value # ^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#6632 +# source://prism//lib/prism/node.rb#6962 class Prism::GlobalVariableOperatorWriteNode < ::Prism::Node # def initialize: (name: Symbol, name_loc: Location, operator_loc: Location, value: Node, operator: Symbol, location: Location) -> void # # @return [GlobalVariableOperatorWriteNode] a new instance of GlobalVariableOperatorWriteNode # - # source://prism//lib/prism/node.rb#6649 + # source://prism//lib/prism/node.rb#6979 sig do params( name: Symbol, @@ -11452,42 +12925,42 @@ class Prism::GlobalVariableOperatorWriteNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#6659 + # source://prism//lib/prism/node.rb#6989 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#6664 + # source://prism//lib/prism/node.rb#6994 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#6674 + # source://prism//lib/prism/node.rb#7004 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#6669 + # source://prism//lib/prism/node.rb#6999 def compact_child_nodes; end # def copy: (**params) -> GlobalVariableOperatorWriteNode # - # source://prism//lib/prism/node.rb#6679 + # source://prism//lib/prism/node.rb#7009 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//lib/prism/node.rb#6664 + # source://prism//lib/prism/node.rb#6994 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#6694 + # source://prism//lib/prism/node.rb#7024 sig do params( keys: T::Array[Symbol] @@ -11497,30 +12970,30 @@ class Prism::GlobalVariableOperatorWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#6699 + # source://prism//lib/prism/node.rb#7029 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#6634 + # source://prism//lib/prism/node.rb#6964 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#6637 + # source://prism//lib/prism/node.rb#6967 sig { returns(Prism::Location) } def name_loc; end # attr_reader operator: Symbol # - # source://prism//lib/prism/node.rb#6646 + # source://prism//lib/prism/node.rb#6976 sig { returns(Symbol) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#6640 + # source://prism//lib/prism/node.rb#6970 sig { returns(Prism::Location) } def operator_loc; end @@ -11539,12 +13012,12 @@ class Prism::GlobalVariableOperatorWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#6724 + # source://prism//lib/prism/node.rb#7054 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#6643 + # source://prism//lib/prism/node.rb#6973 sig { returns(Prism::Node) } def value; end @@ -11556,7 +13029,7 @@ class Prism::GlobalVariableOperatorWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#6734 + # source://prism//lib/prism/node.rb#7064 def type; end end end @@ -11566,13 +13039,13 @@ end # $target ||= value # ^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#6743 +# source://prism//lib/prism/node.rb#7073 class Prism::GlobalVariableOrWriteNode < ::Prism::Node # def initialize: (name: Symbol, name_loc: Location, operator_loc: Location, value: Node, location: Location) -> void # # @return [GlobalVariableOrWriteNode] a new instance of GlobalVariableOrWriteNode # - # source://prism//lib/prism/node.rb#6757 + # source://prism//lib/prism/node.rb#7087 sig do params( name: Symbol, @@ -11586,42 +13059,42 @@ class Prism::GlobalVariableOrWriteNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#6766 + # source://prism//lib/prism/node.rb#7096 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#6771 + # source://prism//lib/prism/node.rb#7101 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#6781 + # source://prism//lib/prism/node.rb#7111 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#6776 + # source://prism//lib/prism/node.rb#7106 def compact_child_nodes; end # def copy: (**params) -> GlobalVariableOrWriteNode # - # source://prism//lib/prism/node.rb#6786 + # source://prism//lib/prism/node.rb#7116 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//lib/prism/node.rb#6771 + # source://prism//lib/prism/node.rb#7101 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#6800 + # source://prism//lib/prism/node.rb#7130 sig do params( keys: T::Array[Symbol] @@ -11631,30 +13104,30 @@ class Prism::GlobalVariableOrWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#6810 + # source://prism//lib/prism/node.rb#7140 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#6745 + # source://prism//lib/prism/node.rb#7075 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#6748 + # source://prism//lib/prism/node.rb#7078 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#6805 + # source://prism//lib/prism/node.rb#7135 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#6751 + # source://prism//lib/prism/node.rb#7081 sig { returns(Prism::Location) } def operator_loc; end @@ -11673,12 +13146,12 @@ class Prism::GlobalVariableOrWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#6834 + # source://prism//lib/prism/node.rb#7164 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#6754 + # source://prism//lib/prism/node.rb#7084 sig { returns(Prism::Node) } def value; end @@ -11690,7 +13163,7 @@ class Prism::GlobalVariableOrWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#6844 + # source://prism//lib/prism/node.rb#7174 def type; end end end @@ -11700,54 +13173,54 @@ end # $foo # ^^^^ # -# source://prism//lib/prism/node.rb#6853 +# source://prism//lib/prism/node.rb#7183 class Prism::GlobalVariableReadNode < ::Prism::Node # def initialize: (name: Symbol, location: Location) -> void # # @return [GlobalVariableReadNode] a new instance of GlobalVariableReadNode # - # source://prism//lib/prism/node.rb#6858 + # source://prism//lib/prism/node.rb#7188 sig { params(name: Symbol, location: Prism::Location).void } def initialize(name, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#6864 + # source://prism//lib/prism/node.rb#7194 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#6869 + # source://prism//lib/prism/node.rb#7199 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#6879 + # source://prism//lib/prism/node.rb#7209 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#6874 + # source://prism//lib/prism/node.rb#7204 def compact_child_nodes; end # def copy: (**params) -> GlobalVariableReadNode # - # source://prism//lib/prism/node.rb#6884 + # source://prism//lib/prism/node.rb#7214 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//lib/prism/node.rb#6869 + # source://prism//lib/prism/node.rb#7199 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#6895 + # source://prism//lib/prism/node.rb#7225 sig do params( keys: T::Array[Symbol] @@ -11757,12 +13230,12 @@ class Prism::GlobalVariableReadNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#6900 + # source://prism//lib/prism/node.rb#7230 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#6855 + # source://prism//lib/prism/node.rb#7185 sig { returns(Symbol) } def name; end @@ -11781,7 +13254,7 @@ class Prism::GlobalVariableReadNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#6920 + # source://prism//lib/prism/node.rb#7250 def type; end class << self @@ -11792,7 +13265,7 @@ class Prism::GlobalVariableReadNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#6930 + # source://prism//lib/prism/node.rb#7260 def type; end end end @@ -11802,54 +13275,54 @@ end # $foo, $bar = baz # ^^^^ ^^^^ # -# source://prism//lib/prism/node.rb#6939 +# source://prism//lib/prism/node.rb#7269 class Prism::GlobalVariableTargetNode < ::Prism::Node # def initialize: (name: Symbol, location: Location) -> void # # @return [GlobalVariableTargetNode] a new instance of GlobalVariableTargetNode # - # source://prism//lib/prism/node.rb#6944 + # source://prism//lib/prism/node.rb#7274 sig { params(name: Symbol, location: Prism::Location).void } def initialize(name, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#6950 + # source://prism//lib/prism/node.rb#7280 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#6955 + # source://prism//lib/prism/node.rb#7285 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#6965 + # source://prism//lib/prism/node.rb#7295 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#6960 + # source://prism//lib/prism/node.rb#7290 def compact_child_nodes; end # def copy: (**params) -> GlobalVariableTargetNode # - # source://prism//lib/prism/node.rb#6970 + # source://prism//lib/prism/node.rb#7300 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//lib/prism/node.rb#6955 + # source://prism//lib/prism/node.rb#7285 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#6981 + # source://prism//lib/prism/node.rb#7311 sig do params( keys: T::Array[Symbol] @@ -11859,12 +13332,12 @@ class Prism::GlobalVariableTargetNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#6986 + # source://prism//lib/prism/node.rb#7316 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#6941 + # source://prism//lib/prism/node.rb#7271 sig { returns(Symbol) } def name; end @@ -11883,7 +13356,7 @@ class Prism::GlobalVariableTargetNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#7006 + # source://prism//lib/prism/node.rb#7336 def type; end class << self @@ -11894,7 +13367,7 @@ class Prism::GlobalVariableTargetNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#7016 + # source://prism//lib/prism/node.rb#7346 def type; end end end @@ -11904,13 +13377,13 @@ end # $foo = 1 # ^^^^^^^^ # -# source://prism//lib/prism/node.rb#7025 +# source://prism//lib/prism/node.rb#7355 class Prism::GlobalVariableWriteNode < ::Prism::Node # def initialize: (name: Symbol, name_loc: Location, value: Node, operator_loc: Location, location: Location) -> void # # @return [GlobalVariableWriteNode] a new instance of GlobalVariableWriteNode # - # source://prism//lib/prism/node.rb#7039 + # source://prism//lib/prism/node.rb#7369 sig do params( name: Symbol, @@ -11924,42 +13397,42 @@ class Prism::GlobalVariableWriteNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#7048 + # source://prism//lib/prism/node.rb#7378 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#7053 + # source://prism//lib/prism/node.rb#7383 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#7063 + # source://prism//lib/prism/node.rb#7393 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#7058 + # source://prism//lib/prism/node.rb#7388 def compact_child_nodes; end # def copy: (**params) -> GlobalVariableWriteNode # - # source://prism//lib/prism/node.rb#7068 + # source://prism//lib/prism/node.rb#7398 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//lib/prism/node.rb#7053 + # source://prism//lib/prism/node.rb#7383 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#7082 + # source://prism//lib/prism/node.rb#7412 sig do params( keys: T::Array[Symbol] @@ -11969,30 +13442,30 @@ class Prism::GlobalVariableWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#7092 + # source://prism//lib/prism/node.rb#7422 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#7027 + # source://prism//lib/prism/node.rb#7357 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#7030 + # source://prism//lib/prism/node.rb#7360 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#7087 + # source://prism//lib/prism/node.rb#7417 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#7036 + # source://prism//lib/prism/node.rb#7366 sig { returns(Prism::Location) } def operator_loc; end @@ -12011,12 +13484,12 @@ class Prism::GlobalVariableWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#7116 + # source://prism//lib/prism/node.rb#7446 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#7033 + # source://prism//lib/prism/node.rb#7363 sig { returns(Prism::Node) } def value; end @@ -12028,7 +13501,7 @@ class Prism::GlobalVariableWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#7126 + # source://prism//lib/prism/node.rb#7456 def type; end end end @@ -12038,13 +13511,13 @@ end # { a => b } # ^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#7135 +# source://prism//lib/prism/node.rb#7465 class Prism::HashNode < ::Prism::Node # def initialize: (opening_loc: Location, elements: Array[Node], closing_loc: Location, location: Location) -> void # # @return [HashNode] a new instance of HashNode # - # source://prism//lib/prism/node.rb#7146 + # source://prism//lib/prism/node.rb#7476 sig do params( opening_loc: Prism::Location, @@ -12057,54 +13530,54 @@ class Prism::HashNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#7154 + # source://prism//lib/prism/node.rb#7484 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#7159 + # source://prism//lib/prism/node.rb#7489 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#7197 + # source://prism//lib/prism/node.rb#7527 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#7143 + # source://prism//lib/prism/node.rb#7473 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#7169 + # source://prism//lib/prism/node.rb#7499 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#7164 + # source://prism//lib/prism/node.rb#7494 def compact_child_nodes; end # def copy: (**params) -> HashNode # - # source://prism//lib/prism/node.rb#7174 + # source://prism//lib/prism/node.rb#7504 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//lib/prism/node.rb#7159 + # source://prism//lib/prism/node.rb#7489 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#7187 + # source://prism//lib/prism/node.rb#7517 sig do params( keys: T::Array[Symbol] @@ -12114,24 +13587,24 @@ class Prism::HashNode < ::Prism::Node # attr_reader elements: Array[Node] # - # source://prism//lib/prism/node.rb#7140 + # source://prism//lib/prism/node.rb#7470 sig { returns(T::Array[Prism::Node]) } def elements; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#7202 + # source://prism//lib/prism/node.rb#7532 def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String # - # source://prism//lib/prism/node.rb#7192 + # source://prism//lib/prism/node.rb#7522 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#7137 + # source://prism//lib/prism/node.rb#7467 sig { returns(Prism::Location) } def opening_loc; end @@ -12150,7 +13623,7 @@ class Prism::HashNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#7224 + # source://prism//lib/prism/node.rb#7554 def type; end class << self @@ -12161,7 +13634,7 @@ class Prism::HashNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#7234 + # source://prism//lib/prism/node.rb#7564 def type; end end end @@ -12174,13 +13647,13 @@ end # foo => { a: 1, b: 2, **c } # ^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#7246 +# source://prism//lib/prism/node.rb#7576 class Prism::HashPatternNode < ::Prism::Node # def initialize: (constant: Node?, elements: Array[Node], rest: Node?, opening_loc: Location?, closing_loc: Location?, location: Location) -> void # # @return [HashPatternNode] a new instance of HashPatternNode # - # source://prism//lib/prism/node.rb#7263 + # source://prism//lib/prism/node.rb#7593 sig do params( constant: T.nilable(Prism::Node), @@ -12195,60 +13668,60 @@ class Prism::HashPatternNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#7273 + # source://prism//lib/prism/node.rb#7603 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#7278 + # source://prism//lib/prism/node.rb#7608 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String? # - # source://prism//lib/prism/node.rb#7322 + # source://prism//lib/prism/node.rb#7652 sig { returns(T.nilable(String)) } def closing; end # attr_reader closing_loc: Location? # - # source://prism//lib/prism/node.rb#7260 + # source://prism//lib/prism/node.rb#7590 sig { returns(T.nilable(Prism::Location)) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#7292 + # source://prism//lib/prism/node.rb#7622 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#7283 + # source://prism//lib/prism/node.rb#7613 def compact_child_nodes; end # attr_reader constant: Node? # - # source://prism//lib/prism/node.rb#7248 + # source://prism//lib/prism/node.rb#7578 sig { returns(T.nilable(Prism::Node)) } def constant; end # def copy: (**params) -> HashPatternNode # - # source://prism//lib/prism/node.rb#7297 + # source://prism//lib/prism/node.rb#7627 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//lib/prism/node.rb#7278 + # source://prism//lib/prism/node.rb#7608 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#7312 + # source://prism//lib/prism/node.rb#7642 sig do params( keys: T::Array[Symbol] @@ -12258,30 +13731,30 @@ class Prism::HashPatternNode < ::Prism::Node # attr_reader elements: Array[Node] # - # source://prism//lib/prism/node.rb#7251 + # source://prism//lib/prism/node.rb#7581 sig { returns(T::Array[Prism::Node]) } def elements; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#7327 + # source://prism//lib/prism/node.rb#7657 def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String? # - # source://prism//lib/prism/node.rb#7317 + # source://prism//lib/prism/node.rb#7647 sig { returns(T.nilable(String)) } def opening; end # attr_reader opening_loc: Location? # - # source://prism//lib/prism/node.rb#7257 + # source://prism//lib/prism/node.rb#7587 sig { returns(T.nilable(Prism::Location)) } def opening_loc; end # attr_reader rest: Node? # - # source://prism//lib/prism/node.rb#7254 + # source://prism//lib/prism/node.rb#7584 sig { returns(T.nilable(Prism::Node)) } def rest; end @@ -12300,7 +13773,7 @@ class Prism::HashPatternNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#7361 + # source://prism//lib/prism/node.rb#7691 def type; end class << self @@ -12311,11 +13784,21 @@ class Prism::HashPatternNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#7371 + # source://prism//lib/prism/node.rb#7701 def type; end end end +# source://prism//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//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 @@ -12324,69 +13807,70 @@ end # if foo then bar end # ^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#7383 +# source://prism//lib/prism/node.rb#7713 class Prism::IfNode < ::Prism::Node - # def initialize: (if_keyword_loc: Location?, predicate: Node, statements: StatementsNode?, consequent: Node?, end_keyword_loc: Location?, location: Location) -> void + # def initialize: (if_keyword_loc: Location?, predicate: Node, then_keyword_loc: Location?, statements: StatementsNode?, consequent: Node?, end_keyword_loc: Location?, location: Location) -> void # # @return [IfNode] a new instance of IfNode # - # source://prism//lib/prism/node.rb#7400 + # source://prism//lib/prism/node.rb#7733 sig do params( if_keyword_loc: T.nilable(Prism::Location), predicate: Prism::Node, + then_keyword_loc: T.nilable(Prism::Location), statements: T.nilable(Prism::StatementsNode), consequent: T.nilable(Prism::Node), end_keyword_loc: T.nilable(Prism::Location), location: Prism::Location ).void end - def initialize(if_keyword_loc, predicate, statements, consequent, end_keyword_loc, location); end + def initialize(if_keyword_loc, predicate, then_keyword_loc, statements, consequent, end_keyword_loc, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#7410 + # source://prism//lib/prism/node.rb#7744 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#7419 + # source://prism//lib/prism/node.rb#7753 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#7433 + # source://prism//lib/prism/node.rb#7767 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#7424 + # source://prism//lib/prism/node.rb#7758 def compact_child_nodes; end # attr_reader consequent: Node? # - # source://prism//lib/prism/node.rb#7394 + # source://prism//lib/prism/node.rb#7727 sig { returns(T.nilable(Prism::Node)) } def consequent; end # def copy: (**params) -> IfNode # - # source://prism//lib/prism/node.rb#7438 + # source://prism//lib/prism/node.rb#7772 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//lib/prism/node.rb#7419 + # source://prism//lib/prism/node.rb#7753 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#7453 + # source://prism//lib/prism/node.rb#7788 sig do params( keys: T::Array[Symbol] @@ -12396,48 +13880,60 @@ class Prism::IfNode < ::Prism::Node # def end_keyword: () -> String? # - # source://prism//lib/prism/node.rb#7463 + # source://prism//lib/prism/node.rb#7803 sig { returns(T.nilable(String)) } def end_keyword; end # attr_reader end_keyword_loc: Location? # - # source://prism//lib/prism/node.rb#7397 + # source://prism//lib/prism/node.rb#7730 sig { returns(T.nilable(Prism::Location)) } def end_keyword_loc; end # def if_keyword: () -> String? # - # source://prism//lib/prism/node.rb#7458 + # source://prism//lib/prism/node.rb#7793 sig { returns(T.nilable(String)) } def if_keyword; end # attr_reader if_keyword_loc: Location? # - # source://prism//lib/prism/node.rb#7385 + # source://prism//lib/prism/node.rb#7715 sig { returns(T.nilable(Prism::Location)) } def if_keyword_loc; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#7468 + # source://prism//lib/prism/node.rb#7808 def inspect(inspector = T.unsafe(nil)); end # attr_reader predicate: Node # - # source://prism//lib/prism/node.rb#7388 + # source://prism//lib/prism/node.rb#7718 sig { returns(Prism::Node) } def predicate; end - # source://prism//lib/prism/node.rb#7414 + # source://prism//lib/prism/node.rb#7748 def set_newline_flag(newline_marked); end # attr_reader statements: StatementsNode? # - # source://prism//lib/prism/node.rb#7391 + # source://prism//lib/prism/node.rb#7724 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end + # def then_keyword: () -> String? + # + # source://prism//lib/prism/node.rb#7798 + sig { returns(T.nilable(String)) } + def then_keyword; end + + # attr_reader then_keyword_loc: Location? + # + # source://prism//lib/prism/node.rb#7721 + 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 @@ -12453,7 +13949,7 @@ class Prism::IfNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#7503 + # source://prism//lib/prism/node.rb#7844 def type; end class << self @@ -12464,7 +13960,7 @@ class Prism::IfNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#7513 + # source://prism//lib/prism/node.rb#7854 def type; end end end @@ -12474,54 +13970,54 @@ end # 1.0i # ^^^^ # -# source://prism//lib/prism/node.rb#7522 +# source://prism//lib/prism/node.rb#7863 class Prism::ImaginaryNode < ::Prism::Node # def initialize: (numeric: Node, location: Location) -> void # # @return [ImaginaryNode] a new instance of ImaginaryNode # - # source://prism//lib/prism/node.rb#7527 + # source://prism//lib/prism/node.rb#7868 sig { params(numeric: Prism::Node, location: Prism::Location).void } def initialize(numeric, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#7533 + # source://prism//lib/prism/node.rb#7874 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#7538 + # source://prism//lib/prism/node.rb#7879 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#7548 + # source://prism//lib/prism/node.rb#7889 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#7543 + # source://prism//lib/prism/node.rb#7884 def compact_child_nodes; end # def copy: (**params) -> ImaginaryNode # - # source://prism//lib/prism/node.rb#7553 + # source://prism//lib/prism/node.rb#7894 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//lib/prism/node.rb#7538 + # source://prism//lib/prism/node.rb#7879 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#7564 + # source://prism//lib/prism/node.rb#7905 sig do params( keys: T::Array[Symbol] @@ -12531,12 +14027,12 @@ class Prism::ImaginaryNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#7569 + # source://prism//lib/prism/node.rb#7910 def inspect(inspector = T.unsafe(nil)); end # attr_reader numeric: Node # - # source://prism//lib/prism/node.rb#7524 + # source://prism//lib/prism/node.rb#7865 sig { returns(Prism::Node) } def numeric; end @@ -12555,12 +14051,118 @@ class Prism::ImaginaryNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#7590 + # source://prism//lib/prism/node.rb#7931 + def type; end + + # Returns the value of the node as a Ruby Complex. + # + # source://prism//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//lib/prism/node.rb#7941 + 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: } +# ^^^^ +# +# source://prism//lib/prism/node.rb#7954 +class Prism::ImplicitNode < ::Prism::Node + # def initialize: (value: Node, location: Location) -> void + # + # @return [ImplicitNode] a new instance of ImplicitNode + # + # source://prism//lib/prism/node.rb#7959 + sig { params(value: Prism::Node, location: Prism::Location).void } + def initialize(value, location); end + + # def accept: (visitor: Visitor) -> void + # + # source://prism//lib/prism/node.rb#7965 + sig { params(visitor: Prism::Visitor).void } + def accept(visitor); end + + # def child_nodes: () -> Array[nil | Node] + # + # source://prism//lib/prism/node.rb#7970 + sig { returns(T::Array[T.nilable(Prism::Node)]) } + def child_nodes; end + + # def comment_targets: () -> Array[Node | Location] + # + # source://prism//lib/prism/node.rb#7980 + def comment_targets; end + + # def compact_child_nodes: () -> Array[Node] + # + # source://prism//lib/prism/node.rb#7975 + def compact_child_nodes; end + + # def copy: (**params) -> ImplicitNode + # + # source://prism//lib/prism/node.rb#7985 + 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//lib/prism/node.rb#7970 + sig { returns(T::Array[T.nilable(Prism::Node)]) } + def deconstruct; end + + # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] + # + # source://prism//lib/prism/node.rb#7996 + sig do + params( + keys: T::Array[Symbol] + ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) + end + def deconstruct_keys(keys); end + + # def inspect(inspector: NodeInspector) -> String + # + # source://prism//lib/prism/node.rb#8001 + 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//lib/prism/node.rb#8022 def type; end - # Returns the value of the node as a Ruby Complex. + # attr_reader value: Node # - # source://prism//lib/prism/node_ext.rb#28 + # source://prism//lib/prism/node.rb#7956 + sig { returns(Prism::Node) } def value; end class << self @@ -12571,68 +14173,73 @@ class Prism::ImaginaryNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#7600 + # source://prism//lib/prism/node.rb#8032 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. +# Represents using a trailing comma to indicate an implicit rest parameter. # -# { foo: } -# ^^^^ +# foo { |bar,| } +# ^ # -# { Foo: } -# ^^^^ +# foo in [bar,] +# ^ # -# source://prism//lib/prism/node.rb#7613 -class Prism::ImplicitNode < ::Prism::Node - # def initialize: (value: Node, location: Location) -> void +# for foo, in bar do end +# ^ +# +# foo, = bar +# ^ +# +# source://prism//lib/prism/node.rb#8050 +class Prism::ImplicitRestNode < ::Prism::Node + # def initialize: (location: Location) -> void # - # @return [ImplicitNode] a new instance of ImplicitNode + # @return [ImplicitRestNode] a new instance of ImplicitRestNode # - # source://prism//lib/prism/node.rb#7618 - sig { params(value: Prism::Node, location: Prism::Location).void } - def initialize(value, location); end + # source://prism//lib/prism/node.rb#8052 + sig { params(location: Prism::Location).void } + def initialize(location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#7624 + # source://prism//lib/prism/node.rb#8057 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#7629 + # source://prism//lib/prism/node.rb#8062 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#7639 + # source://prism//lib/prism/node.rb#8072 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#7634 + # source://prism//lib/prism/node.rb#8067 def compact_child_nodes; end - # def copy: (**params) -> ImplicitNode + # def copy: (**params) -> ImplicitRestNode # - # source://prism//lib/prism/node.rb#7644 - sig { params(params: T.untyped).returns(Prism::ImplicitNode) } + # source://prism//lib/prism/node.rb#8077 + 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//lib/prism/node.rb#7629 + # source://prism//lib/prism/node.rb#8062 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#7655 + # source://prism//lib/prism/node.rb#8087 sig do params( keys: T::Array[Symbol] @@ -12642,7 +14249,7 @@ class Prism::ImplicitNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#7660 + # source://prism//lib/prism/node.rb#8092 def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -12660,15 +14267,9 @@ class Prism::ImplicitNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#7681 + # source://prism//lib/prism/node.rb#8111 def type; end - # attr_reader value: Node - # - # source://prism//lib/prism/node.rb#7615 - 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. @@ -12677,7 +14278,7 @@ class Prism::ImplicitNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#7691 + # source://prism//lib/prism/node.rb#8121 def type; end end end @@ -12687,13 +14288,13 @@ end # case a; in b then c end # ^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#7700 +# source://prism//lib/prism/node.rb#8130 class Prism::InNode < ::Prism::Node # def initialize: (pattern: Node, statements: StatementsNode?, in_loc: Location, then_loc: Location?, location: Location) -> void # # @return [InNode] a new instance of InNode # - # source://prism//lib/prism/node.rb#7714 + # source://prism//lib/prism/node.rb#8144 sig do params( pattern: Prism::Node, @@ -12707,42 +14308,42 @@ class Prism::InNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#7723 + # source://prism//lib/prism/node.rb#8153 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#7728 + # source://prism//lib/prism/node.rb#8158 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#7741 + # source://prism//lib/prism/node.rb#8171 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#7733 + # source://prism//lib/prism/node.rb#8163 def compact_child_nodes; end # def copy: (**params) -> InNode # - # source://prism//lib/prism/node.rb#7746 + # source://prism//lib/prism/node.rb#8176 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//lib/prism/node.rb#7728 + # source://prism//lib/prism/node.rb#8158 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#7760 + # source://prism//lib/prism/node.rb#8190 sig do params( keys: T::Array[Symbol] @@ -12752,42 +14353,42 @@ class Prism::InNode < ::Prism::Node # def in: () -> String # - # source://prism//lib/prism/node.rb#7765 + # source://prism//lib/prism/node.rb#8195 sig { returns(String) } def in; end # attr_reader in_loc: Location # - # source://prism//lib/prism/node.rb#7708 + # source://prism//lib/prism/node.rb#8138 sig { returns(Prism::Location) } def in_loc; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#7775 + # source://prism//lib/prism/node.rb#8205 def inspect(inspector = T.unsafe(nil)); end # attr_reader pattern: Node # - # source://prism//lib/prism/node.rb#7702 + # source://prism//lib/prism/node.rb#8132 sig { returns(Prism::Node) } def pattern; end # attr_reader statements: StatementsNode? # - # source://prism//lib/prism/node.rb#7705 + # source://prism//lib/prism/node.rb#8135 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end # def then: () -> String? # - # source://prism//lib/prism/node.rb#7770 + # source://prism//lib/prism/node.rb#8200 sig { returns(T.nilable(String)) } def then; end # attr_reader then_loc: Location? # - # source://prism//lib/prism/node.rb#7711 + # source://prism//lib/prism/node.rb#8141 sig { returns(T.nilable(Prism::Location)) } def then_loc; end @@ -12806,7 +14407,7 @@ class Prism::InNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#7804 + # source://prism//lib/prism/node.rb#8234 def type; end class << self @@ -12817,7 +14418,7 @@ class Prism::InNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#7814 + # source://prism//lib/prism/node.rb#8244 def type; end end end @@ -12827,103 +14428,111 @@ end # foo.bar[baz] &&= value # ^^^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#7823 +# source://prism//lib/prism/node.rb#8253 class Prism::IndexAndWriteNode < ::Prism::Node - # def initialize: (receiver: Node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Node?, flags: Integer, operator_loc: Location, value: Node, location: Location) -> void + # def initialize: (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) -> void # # @return [IndexAndWriteNode] a new instance of IndexAndWriteNode # - # source://prism//lib/prism/node.rb#7852 + # source://prism//lib/prism/node.rb#8282 sig do params( + flags: Integer, receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), opening_loc: Prism::Location, arguments: T.nilable(Prism::ArgumentsNode), closing_loc: Prism::Location, block: T.nilable(Prism::Node), - flags: Integer, operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location ).void end - def initialize(receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, flags, operator_loc, value, location); end + def initialize(flags, receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, operator_loc, value, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#7866 + # source://prism//lib/prism/node.rb#8296 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # attr_reader arguments: ArgumentsNode? # - # source://prism//lib/prism/node.rb#7834 + # source://prism//lib/prism/node.rb#8267 sig { returns(T.nilable(Prism::ArgumentsNode)) } def arguments; end + # def attribute_write?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#8355 + sig { returns(T::Boolean) } + def attribute_write?; end + # attr_reader block: Node? # - # source://prism//lib/prism/node.rb#7840 + # source://prism//lib/prism/node.rb#8273 sig { returns(T.nilable(Prism::Node)) } def block; end # def call_operator: () -> String? # - # source://prism//lib/prism/node.rb#7915 + # source://prism//lib/prism/node.rb#8360 sig { returns(T.nilable(String)) } def call_operator; end # attr_reader call_operator_loc: Location? # - # source://prism//lib/prism/node.rb#7828 + # source://prism//lib/prism/node.rb#8261 sig { returns(T.nilable(Prism::Location)) } def call_operator_loc; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#7871 + # source://prism//lib/prism/node.rb#8301 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#7925 + # source://prism//lib/prism/node.rb#8370 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#7837 + # source://prism//lib/prism/node.rb#8270 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#7886 + # source://prism//lib/prism/node.rb#8316 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#7876 + # source://prism//lib/prism/node.rb#8306 def compact_child_nodes; end # def copy: (**params) -> IndexAndWriteNode # - # source://prism//lib/prism/node.rb#7891 + # source://prism//lib/prism/node.rb#8321 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//lib/prism/node.rb#7871 + # source://prism//lib/prism/node.rb#8301 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#7910 + # source://prism//lib/prism/node.rb#8340 sig do params( keys: T::Array[Symbol] @@ -12933,36 +14542,36 @@ class Prism::IndexAndWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#7945 + # source://prism//lib/prism/node.rb#8380 def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String # - # source://prism//lib/prism/node.rb#7920 + # source://prism//lib/prism/node.rb#8365 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#7831 + # source://prism//lib/prism/node.rb#8264 sig { returns(Prism::Location) } def opening_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#7940 + # source://prism//lib/prism/node.rb#8375 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#7846 + # source://prism//lib/prism/node.rb#8276 sig { returns(Prism::Location) } def operator_loc; end # attr_reader receiver: Node? # - # source://prism//lib/prism/node.rb#7825 + # source://prism//lib/prism/node.rb#8258 sig { returns(T.nilable(Prism::Node)) } def receiver; end @@ -12970,7 +14579,7 @@ class Prism::IndexAndWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#7930 + # source://prism//lib/prism/node.rb#8345 sig { returns(T::Boolean) } def safe_navigation?; end @@ -12989,12 +14598,12 @@ class Prism::IndexAndWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#7990 + # source://prism//lib/prism/node.rb#8425 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#7849 + # source://prism//lib/prism/node.rb#8279 sig { returns(Prism::Node) } def value; end @@ -13002,7 +14611,7 @@ class Prism::IndexAndWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#7935 + # source://prism//lib/prism/node.rb#8350 sig { returns(T::Boolean) } def variable_call?; end @@ -13010,7 +14619,7 @@ class Prism::IndexAndWriteNode < ::Prism::Node # Returns the value of attribute flags. # - # source://prism//lib/prism/node.rb#7843 + # source://prism//lib/prism/node.rb#8255 sig { returns(Integer) } def flags; end @@ -13022,7 +14631,7 @@ class Prism::IndexAndWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#8000 + # source://prism//lib/prism/node.rb#8435 def type; end end end @@ -13032,104 +14641,112 @@ end # foo.bar[baz] += value # ^^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#8009 +# source://prism//lib/prism/node.rb#8444 class Prism::IndexOperatorWriteNode < ::Prism::Node - # def initialize: (receiver: Node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Node?, flags: Integer, operator: Symbol, operator_loc: Location, value: Node, location: Location) -> void + # def initialize: (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) -> void # # @return [IndexOperatorWriteNode] a new instance of IndexOperatorWriteNode # - # source://prism//lib/prism/node.rb#8041 + # source://prism//lib/prism/node.rb#8476 sig do params( + flags: Integer, receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), opening_loc: Prism::Location, arguments: T.nilable(Prism::ArgumentsNode), closing_loc: Prism::Location, block: T.nilable(Prism::Node), - flags: Integer, operator: Symbol, operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location ).void end - def initialize(receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, flags, operator, operator_loc, value, location); end + def initialize(flags, receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, operator, operator_loc, value, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#8056 + # source://prism//lib/prism/node.rb#8491 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # attr_reader arguments: ArgumentsNode? # - # source://prism//lib/prism/node.rb#8020 + # source://prism//lib/prism/node.rb#8458 sig { returns(T.nilable(Prism::ArgumentsNode)) } def arguments; end + # def attribute_write?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#8551 + sig { returns(T::Boolean) } + def attribute_write?; end + # attr_reader block: Node? # - # source://prism//lib/prism/node.rb#8026 + # source://prism//lib/prism/node.rb#8464 sig { returns(T.nilable(Prism::Node)) } def block; end # def call_operator: () -> String? # - # source://prism//lib/prism/node.rb#8106 + # source://prism//lib/prism/node.rb#8556 sig { returns(T.nilable(String)) } def call_operator; end # attr_reader call_operator_loc: Location? # - # source://prism//lib/prism/node.rb#8014 + # source://prism//lib/prism/node.rb#8452 sig { returns(T.nilable(Prism::Location)) } def call_operator_loc; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#8061 + # source://prism//lib/prism/node.rb#8496 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#8116 + # source://prism//lib/prism/node.rb#8566 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#8023 + # source://prism//lib/prism/node.rb#8461 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#8076 + # source://prism//lib/prism/node.rb#8511 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#8066 + # source://prism//lib/prism/node.rb#8501 def compact_child_nodes; end # def copy: (**params) -> IndexOperatorWriteNode # - # source://prism//lib/prism/node.rb#8081 + # source://prism//lib/prism/node.rb#8516 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//lib/prism/node.rb#8061 + # source://prism//lib/prism/node.rb#8496 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#8101 + # source://prism//lib/prism/node.rb#8536 sig do params( keys: T::Array[Symbol] @@ -13139,36 +14756,36 @@ class Prism::IndexOperatorWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#8131 + # source://prism//lib/prism/node.rb#8571 def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String # - # source://prism//lib/prism/node.rb#8111 + # source://prism//lib/prism/node.rb#8561 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#8017 + # source://prism//lib/prism/node.rb#8455 sig { returns(Prism::Location) } def opening_loc; end # attr_reader operator: Symbol # - # source://prism//lib/prism/node.rb#8032 + # source://prism//lib/prism/node.rb#8467 sig { returns(Symbol) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#8035 + # source://prism//lib/prism/node.rb#8470 sig { returns(Prism::Location) } def operator_loc; end # attr_reader receiver: Node? # - # source://prism//lib/prism/node.rb#8011 + # source://prism//lib/prism/node.rb#8449 sig { returns(T.nilable(Prism::Node)) } def receiver; end @@ -13176,7 +14793,7 @@ class Prism::IndexOperatorWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#8121 + # source://prism//lib/prism/node.rb#8541 sig { returns(T::Boolean) } def safe_navigation?; end @@ -13195,12 +14812,12 @@ class Prism::IndexOperatorWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#8177 + # source://prism//lib/prism/node.rb#8617 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#8038 + # source://prism//lib/prism/node.rb#8473 sig { returns(Prism::Node) } def value; end @@ -13208,7 +14825,7 @@ class Prism::IndexOperatorWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#8126 + # source://prism//lib/prism/node.rb#8546 sig { returns(T::Boolean) } def variable_call?; end @@ -13216,7 +14833,7 @@ class Prism::IndexOperatorWriteNode < ::Prism::Node # Returns the value of attribute flags. # - # source://prism//lib/prism/node.rb#8029 + # source://prism//lib/prism/node.rb#8446 sig { returns(Integer) } def flags; end @@ -13228,7 +14845,7 @@ class Prism::IndexOperatorWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#8187 + # source://prism//lib/prism/node.rb#8627 def type; end end end @@ -13238,103 +14855,111 @@ end # foo.bar[baz] ||= value # ^^^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#8196 +# source://prism//lib/prism/node.rb#8636 class Prism::IndexOrWriteNode < ::Prism::Node - # def initialize: (receiver: Node?, call_operator_loc: Location?, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Node?, flags: Integer, operator_loc: Location, value: Node, location: Location) -> void + # def initialize: (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) -> void # # @return [IndexOrWriteNode] a new instance of IndexOrWriteNode # - # source://prism//lib/prism/node.rb#8225 + # source://prism//lib/prism/node.rb#8665 sig do params( + flags: Integer, receiver: T.nilable(Prism::Node), call_operator_loc: T.nilable(Prism::Location), opening_loc: Prism::Location, arguments: T.nilable(Prism::ArgumentsNode), closing_loc: Prism::Location, block: T.nilable(Prism::Node), - flags: Integer, operator_loc: Prism::Location, value: Prism::Node, location: Prism::Location ).void end - def initialize(receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, flags, operator_loc, value, location); end + def initialize(flags, receiver, call_operator_loc, opening_loc, arguments, closing_loc, block, operator_loc, value, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#8239 + # source://prism//lib/prism/node.rb#8679 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # attr_reader arguments: ArgumentsNode? # - # source://prism//lib/prism/node.rb#8207 + # source://prism//lib/prism/node.rb#8650 sig { returns(T.nilable(Prism::ArgumentsNode)) } def arguments; end + # def attribute_write?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#8738 + sig { returns(T::Boolean) } + def attribute_write?; end + # attr_reader block: Node? # - # source://prism//lib/prism/node.rb#8213 + # source://prism//lib/prism/node.rb#8656 sig { returns(T.nilable(Prism::Node)) } def block; end # def call_operator: () -> String? # - # source://prism//lib/prism/node.rb#8288 + # source://prism//lib/prism/node.rb#8743 sig { returns(T.nilable(String)) } def call_operator; end # attr_reader call_operator_loc: Location? # - # source://prism//lib/prism/node.rb#8201 + # source://prism//lib/prism/node.rb#8644 sig { returns(T.nilable(Prism::Location)) } def call_operator_loc; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#8244 + # source://prism//lib/prism/node.rb#8684 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#8298 + # source://prism//lib/prism/node.rb#8753 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#8210 + # source://prism//lib/prism/node.rb#8653 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#8259 + # source://prism//lib/prism/node.rb#8699 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#8249 + # source://prism//lib/prism/node.rb#8689 def compact_child_nodes; end # def copy: (**params) -> IndexOrWriteNode # - # source://prism//lib/prism/node.rb#8264 + # source://prism//lib/prism/node.rb#8704 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//lib/prism/node.rb#8244 + # source://prism//lib/prism/node.rb#8684 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#8283 + # source://prism//lib/prism/node.rb#8723 sig do params( keys: T::Array[Symbol] @@ -13344,36 +14969,36 @@ class Prism::IndexOrWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#8318 + # source://prism//lib/prism/node.rb#8763 def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String # - # source://prism//lib/prism/node.rb#8293 + # source://prism//lib/prism/node.rb#8748 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#8204 + # source://prism//lib/prism/node.rb#8647 sig { returns(Prism::Location) } def opening_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#8313 + # source://prism//lib/prism/node.rb#8758 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#8219 + # source://prism//lib/prism/node.rb#8659 sig { returns(Prism::Location) } def operator_loc; end # attr_reader receiver: Node? # - # source://prism//lib/prism/node.rb#8198 + # source://prism//lib/prism/node.rb#8641 sig { returns(T.nilable(Prism::Node)) } def receiver; end @@ -13381,7 +15006,7 @@ class Prism::IndexOrWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#8303 + # source://prism//lib/prism/node.rb#8728 sig { returns(T::Boolean) } def safe_navigation?; end @@ -13400,12 +15025,12 @@ class Prism::IndexOrWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#8363 + # source://prism//lib/prism/node.rb#8808 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#8222 + # source://prism//lib/prism/node.rb#8662 sig { returns(Prism::Node) } def value; end @@ -13413,7 +15038,195 @@ class Prism::IndexOrWriteNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#8308 + # source://prism//lib/prism/node.rb#8733 + sig { returns(T::Boolean) } + def variable_call?; end + + private + + # Returns the value of attribute flags. + # + # source://prism//lib/prism/node.rb#8638 + sig { returns(Integer) } + def flags; end + + class << self + # Similar to #type, this method returns a symbol that you can use for + # splitting on the type of the node without having to do a long === chain. + # Note that like #type, it will still be slower than using == for a single + # class, but should be faster in a case statement or an array comparison. + # + # def self.type: () -> Symbol + # + # source://prism//lib/prism/node.rb#8818 + def type; end + end +end + +# Represents assigning to an index. +# +# foo[bar], = 1 +# ^^^^^^^^ +# +# begin +# rescue => foo[bar] +# ^^^^^^^^ +# end +# +# for foo[bar] in baz do end +# ^^^^^^^^ +# +# source://prism//lib/prism/node.rb#8835 +class Prism::IndexTargetNode < ::Prism::Node + # def initialize: (flags: Integer, receiver: Node, opening_loc: Location, arguments: ArgumentsNode?, closing_loc: Location, block: Node?, location: Location) -> void + # + # @return [IndexTargetNode] a new instance of IndexTargetNode + # + # source://prism//lib/prism/node.rb#8855 + sig do + params( + flags: Integer, + receiver: Prism::Node, + opening_loc: Prism::Location, + arguments: T.nilable(Prism::ArgumentsNode), + closing_loc: Prism::Location, + block: T.nilable(Prism::Node), + location: Prism::Location + ).void + end + def initialize(flags, receiver, opening_loc, arguments, closing_loc, block, location); end + + # def accept: (visitor: Visitor) -> void + # + # source://prism//lib/prism/node.rb#8866 + sig { params(visitor: Prism::Visitor).void } + def accept(visitor); end + + # attr_reader arguments: ArgumentsNode? + # + # source://prism//lib/prism/node.rb#8846 + sig { returns(T.nilable(Prism::ArgumentsNode)) } + def arguments; end + + # def attribute_write?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#8921 + sig { returns(T::Boolean) } + def attribute_write?; end + + # attr_reader block: Node? + # + # source://prism//lib/prism/node.rb#8852 + sig { returns(T.nilable(Prism::Node)) } + def block; end + + # def child_nodes: () -> Array[nil | Node] + # + # source://prism//lib/prism/node.rb#8871 + sig { returns(T::Array[T.nilable(Prism::Node)]) } + def child_nodes; end + + # def closing: () -> String + # + # source://prism//lib/prism/node.rb#8931 + sig { returns(String) } + def closing; end + + # attr_reader closing_loc: Location + # + # source://prism//lib/prism/node.rb#8849 + sig { returns(Prism::Location) } + def closing_loc; end + + # def comment_targets: () -> Array[Node | Location] + # + # source://prism//lib/prism/node.rb#8885 + def comment_targets; end + + # def compact_child_nodes: () -> Array[Node] + # + # source://prism//lib/prism/node.rb#8876 + def compact_child_nodes; end + + # def copy: (**params) -> IndexTargetNode + # + # source://prism//lib/prism/node.rb#8890 + 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//lib/prism/node.rb#8871 + sig { returns(T::Array[T.nilable(Prism::Node)]) } + def deconstruct; end + + # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] + # + # source://prism//lib/prism/node.rb#8906 + sig do + params( + keys: T::Array[Symbol] + ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) + end + def deconstruct_keys(keys); end + + # def inspect(inspector: NodeInspector) -> String + # + # source://prism//lib/prism/node.rb#8936 + def inspect(inspector = T.unsafe(nil)); end + + # def opening: () -> String + # + # source://prism//lib/prism/node.rb#8926 + sig { returns(String) } + def opening; end + + # attr_reader opening_loc: Location + # + # source://prism//lib/prism/node.rb#8843 + sig { returns(Prism::Location) } + def opening_loc; end + + # attr_reader receiver: Node + # + # source://prism//lib/prism/node.rb#8840 + sig { returns(Prism::Node) } + def receiver; end + + # def safe_navigation?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#8911 + 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//lib/prism/node.rb#8973 + def type; end + + # def variable_call?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#8916 sig { returns(T::Boolean) } def variable_call?; end @@ -13421,7 +15234,7 @@ class Prism::IndexOrWriteNode < ::Prism::Node # Returns the value of attribute flags. # - # source://prism//lib/prism/node.rb#8216 + # source://prism//lib/prism/node.rb#8837 sig { returns(Integer) } def flags; end @@ -13433,7 +15246,7 @@ class Prism::IndexOrWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#8373 + # source://prism//lib/prism/node.rb#8983 def type; end end end @@ -13441,11 +15254,11 @@ end # InlineComment objects are the most common. They correspond to comments in # the source file like this one that start with #. # -# source://prism//lib/prism/parse_result.rb#216 +# source://prism//lib/prism/parse_result.rb#245 class Prism::InlineComment < ::Prism::Comment # Returns a string representation of this comment. # - # source://prism//lib/prism/parse_result.rb#224 + # source://prism//lib/prism/parse_result.rb#253 def inspect; end # Returns true if this comment happens on the same line as other code and @@ -13453,7 +15266,7 @@ class Prism::InlineComment < ::Prism::Comment # # @return [Boolean] # - # source://prism//lib/prism/parse_result.rb#219 + # source://prism//lib/prism/parse_result.rb#248 sig { override.returns(T::Boolean) } def trailing?; end end @@ -13463,13 +15276,13 @@ end # @target &&= value # ^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#8382 +# source://prism//lib/prism/node.rb#8992 class Prism::InstanceVariableAndWriteNode < ::Prism::Node # def initialize: (name: Symbol, name_loc: Location, operator_loc: Location, value: Node, location: Location) -> void # # @return [InstanceVariableAndWriteNode] a new instance of InstanceVariableAndWriteNode # - # source://prism//lib/prism/node.rb#8396 + # source://prism//lib/prism/node.rb#9006 sig do params( name: Symbol, @@ -13483,42 +15296,42 @@ class Prism::InstanceVariableAndWriteNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#8405 + # source://prism//lib/prism/node.rb#9015 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#8410 + # source://prism//lib/prism/node.rb#9020 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#8420 + # source://prism//lib/prism/node.rb#9030 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#8415 + # source://prism//lib/prism/node.rb#9025 def compact_child_nodes; end # def copy: (**params) -> InstanceVariableAndWriteNode # - # source://prism//lib/prism/node.rb#8425 + # source://prism//lib/prism/node.rb#9035 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//lib/prism/node.rb#8410 + # source://prism//lib/prism/node.rb#9020 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#8439 + # source://prism//lib/prism/node.rb#9049 sig do params( keys: T::Array[Symbol] @@ -13528,30 +15341,30 @@ class Prism::InstanceVariableAndWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#8449 + # source://prism//lib/prism/node.rb#9059 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#8384 + # source://prism//lib/prism/node.rb#8994 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#8387 + # source://prism//lib/prism/node.rb#8997 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#8444 + # source://prism//lib/prism/node.rb#9054 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#8390 + # source://prism//lib/prism/node.rb#9000 sig { returns(Prism::Location) } def operator_loc; end @@ -13570,12 +15383,12 @@ class Prism::InstanceVariableAndWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#8473 + # source://prism//lib/prism/node.rb#9083 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#8393 + # source://prism//lib/prism/node.rb#9003 sig { returns(Prism::Node) } def value; end @@ -13587,7 +15400,7 @@ class Prism::InstanceVariableAndWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#8483 + # source://prism//lib/prism/node.rb#9093 def type; end end end @@ -13597,13 +15410,13 @@ end # @target += value # ^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#8492 +# source://prism//lib/prism/node.rb#9102 class Prism::InstanceVariableOperatorWriteNode < ::Prism::Node # def initialize: (name: Symbol, name_loc: Location, operator_loc: Location, value: Node, operator: Symbol, location: Location) -> void # # @return [InstanceVariableOperatorWriteNode] a new instance of InstanceVariableOperatorWriteNode # - # source://prism//lib/prism/node.rb#8509 + # source://prism//lib/prism/node.rb#9119 sig do params( name: Symbol, @@ -13618,42 +15431,42 @@ class Prism::InstanceVariableOperatorWriteNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#8519 + # source://prism//lib/prism/node.rb#9129 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#8524 + # source://prism//lib/prism/node.rb#9134 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#8534 + # source://prism//lib/prism/node.rb#9144 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#8529 + # source://prism//lib/prism/node.rb#9139 def compact_child_nodes; end # def copy: (**params) -> InstanceVariableOperatorWriteNode # - # source://prism//lib/prism/node.rb#8539 + # source://prism//lib/prism/node.rb#9149 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//lib/prism/node.rb#8524 + # source://prism//lib/prism/node.rb#9134 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#8554 + # source://prism//lib/prism/node.rb#9164 sig do params( keys: T::Array[Symbol] @@ -13663,30 +15476,30 @@ class Prism::InstanceVariableOperatorWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#8559 + # source://prism//lib/prism/node.rb#9169 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#8494 + # source://prism//lib/prism/node.rb#9104 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#8497 + # source://prism//lib/prism/node.rb#9107 sig { returns(Prism::Location) } def name_loc; end # attr_reader operator: Symbol # - # source://prism//lib/prism/node.rb#8506 + # source://prism//lib/prism/node.rb#9116 sig { returns(Symbol) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#8500 + # source://prism//lib/prism/node.rb#9110 sig { returns(Prism::Location) } def operator_loc; end @@ -13705,12 +15518,12 @@ class Prism::InstanceVariableOperatorWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#8584 + # source://prism//lib/prism/node.rb#9194 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#8503 + # source://prism//lib/prism/node.rb#9113 sig { returns(Prism::Node) } def value; end @@ -13722,7 +15535,7 @@ class Prism::InstanceVariableOperatorWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#8594 + # source://prism//lib/prism/node.rb#9204 def type; end end end @@ -13732,13 +15545,13 @@ end # @target ||= value # ^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#8603 +# source://prism//lib/prism/node.rb#9213 class Prism::InstanceVariableOrWriteNode < ::Prism::Node # def initialize: (name: Symbol, name_loc: Location, operator_loc: Location, value: Node, location: Location) -> void # # @return [InstanceVariableOrWriteNode] a new instance of InstanceVariableOrWriteNode # - # source://prism//lib/prism/node.rb#8617 + # source://prism//lib/prism/node.rb#9227 sig do params( name: Symbol, @@ -13752,42 +15565,42 @@ class Prism::InstanceVariableOrWriteNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#8626 + # source://prism//lib/prism/node.rb#9236 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#8631 + # source://prism//lib/prism/node.rb#9241 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#8641 + # source://prism//lib/prism/node.rb#9251 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#8636 + # source://prism//lib/prism/node.rb#9246 def compact_child_nodes; end # def copy: (**params) -> InstanceVariableOrWriteNode # - # source://prism//lib/prism/node.rb#8646 + # source://prism//lib/prism/node.rb#9256 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//lib/prism/node.rb#8631 + # source://prism//lib/prism/node.rb#9241 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#8660 + # source://prism//lib/prism/node.rb#9270 sig do params( keys: T::Array[Symbol] @@ -13797,30 +15610,30 @@ class Prism::InstanceVariableOrWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#8670 + # source://prism//lib/prism/node.rb#9280 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#8605 + # source://prism//lib/prism/node.rb#9215 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#8608 + # source://prism//lib/prism/node.rb#9218 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#8665 + # source://prism//lib/prism/node.rb#9275 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#8611 + # source://prism//lib/prism/node.rb#9221 sig { returns(Prism::Location) } def operator_loc; end @@ -13839,12 +15652,12 @@ class Prism::InstanceVariableOrWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#8694 + # source://prism//lib/prism/node.rb#9304 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#8614 + # source://prism//lib/prism/node.rb#9224 sig { returns(Prism::Node) } def value; end @@ -13856,7 +15669,7 @@ class Prism::InstanceVariableOrWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#8704 + # source://prism//lib/prism/node.rb#9314 def type; end end end @@ -13866,54 +15679,54 @@ end # @foo # ^^^^ # -# source://prism//lib/prism/node.rb#8713 +# source://prism//lib/prism/node.rb#9323 class Prism::InstanceVariableReadNode < ::Prism::Node # def initialize: (name: Symbol, location: Location) -> void # # @return [InstanceVariableReadNode] a new instance of InstanceVariableReadNode # - # source://prism//lib/prism/node.rb#8718 + # source://prism//lib/prism/node.rb#9328 sig { params(name: Symbol, location: Prism::Location).void } def initialize(name, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#8724 + # source://prism//lib/prism/node.rb#9334 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#8729 + # source://prism//lib/prism/node.rb#9339 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#8739 + # source://prism//lib/prism/node.rb#9349 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#8734 + # source://prism//lib/prism/node.rb#9344 def compact_child_nodes; end # def copy: (**params) -> InstanceVariableReadNode # - # source://prism//lib/prism/node.rb#8744 + # source://prism//lib/prism/node.rb#9354 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//lib/prism/node.rb#8729 + # source://prism//lib/prism/node.rb#9339 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#8755 + # source://prism//lib/prism/node.rb#9365 sig do params( keys: T::Array[Symbol] @@ -13923,12 +15736,12 @@ class Prism::InstanceVariableReadNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#8760 + # source://prism//lib/prism/node.rb#9370 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#8715 + # source://prism//lib/prism/node.rb#9325 sig { returns(Symbol) } def name; end @@ -13947,7 +15760,7 @@ class Prism::InstanceVariableReadNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#8780 + # source://prism//lib/prism/node.rb#9390 def type; end class << self @@ -13958,7 +15771,7 @@ class Prism::InstanceVariableReadNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#8790 + # source://prism//lib/prism/node.rb#9400 def type; end end end @@ -13968,54 +15781,54 @@ end # @foo, @bar = baz # ^^^^ ^^^^ # -# source://prism//lib/prism/node.rb#8799 +# source://prism//lib/prism/node.rb#9409 class Prism::InstanceVariableTargetNode < ::Prism::Node # def initialize: (name: Symbol, location: Location) -> void # # @return [InstanceVariableTargetNode] a new instance of InstanceVariableTargetNode # - # source://prism//lib/prism/node.rb#8804 + # source://prism//lib/prism/node.rb#9414 sig { params(name: Symbol, location: Prism::Location).void } def initialize(name, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#8810 + # source://prism//lib/prism/node.rb#9420 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#8815 + # source://prism//lib/prism/node.rb#9425 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#8825 + # source://prism//lib/prism/node.rb#9435 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#8820 + # source://prism//lib/prism/node.rb#9430 def compact_child_nodes; end # def copy: (**params) -> InstanceVariableTargetNode # - # source://prism//lib/prism/node.rb#8830 + # source://prism//lib/prism/node.rb#9440 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//lib/prism/node.rb#8815 + # source://prism//lib/prism/node.rb#9425 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#8841 + # source://prism//lib/prism/node.rb#9451 sig do params( keys: T::Array[Symbol] @@ -14025,12 +15838,12 @@ class Prism::InstanceVariableTargetNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#8846 + # source://prism//lib/prism/node.rb#9456 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#8801 + # source://prism//lib/prism/node.rb#9411 sig { returns(Symbol) } def name; end @@ -14049,7 +15862,7 @@ class Prism::InstanceVariableTargetNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#8866 + # source://prism//lib/prism/node.rb#9476 def type; end class << self @@ -14060,7 +15873,7 @@ class Prism::InstanceVariableTargetNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#8876 + # source://prism//lib/prism/node.rb#9486 def type; end end end @@ -14070,13 +15883,13 @@ end # @foo = 1 # ^^^^^^^^ # -# source://prism//lib/prism/node.rb#8885 +# source://prism//lib/prism/node.rb#9495 class Prism::InstanceVariableWriteNode < ::Prism::Node # def initialize: (name: Symbol, name_loc: Location, value: Node, operator_loc: Location, location: Location) -> void # # @return [InstanceVariableWriteNode] a new instance of InstanceVariableWriteNode # - # source://prism//lib/prism/node.rb#8899 + # source://prism//lib/prism/node.rb#9509 sig do params( name: Symbol, @@ -14090,42 +15903,42 @@ class Prism::InstanceVariableWriteNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#8908 + # source://prism//lib/prism/node.rb#9518 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#8913 + # source://prism//lib/prism/node.rb#9523 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#8923 + # source://prism//lib/prism/node.rb#9533 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#8918 + # source://prism//lib/prism/node.rb#9528 def compact_child_nodes; end # def copy: (**params) -> InstanceVariableWriteNode # - # source://prism//lib/prism/node.rb#8928 + # source://prism//lib/prism/node.rb#9538 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//lib/prism/node.rb#8913 + # source://prism//lib/prism/node.rb#9523 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#8942 + # source://prism//lib/prism/node.rb#9552 sig do params( keys: T::Array[Symbol] @@ -14135,30 +15948,30 @@ class Prism::InstanceVariableWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#8952 + # source://prism//lib/prism/node.rb#9562 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#8887 + # source://prism//lib/prism/node.rb#9497 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#8890 + # source://prism//lib/prism/node.rb#9500 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#8947 + # source://prism//lib/prism/node.rb#9557 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#8896 + # source://prism//lib/prism/node.rb#9506 sig { returns(Prism::Location) } def operator_loc; end @@ -14177,12 +15990,12 @@ class Prism::InstanceVariableWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#8976 + # source://prism//lib/prism/node.rb#9586 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#8893 + # source://prism//lib/prism/node.rb#9503 sig { returns(Prism::Node) } def value; end @@ -14194,34 +16007,34 @@ class Prism::InstanceVariableWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#8986 + # source://prism//lib/prism/node.rb#9596 def type; end end end # Flags for integer nodes that correspond to the base of the integer. # -# source://prism//lib/prism/node.rb#16551 +# source://prism//lib/prism/node.rb#17310 module Prism::IntegerBaseFlags; end # 0b prefix # -# source://prism//lib/prism/node.rb#16553 +# source://prism//lib/prism/node.rb#17312 Prism::IntegerBaseFlags::BINARY = T.let(T.unsafe(nil), Integer) # 0d or no prefix # -# source://prism//lib/prism/node.rb#16559 +# source://prism//lib/prism/node.rb#17315 Prism::IntegerBaseFlags::DECIMAL = T.let(T.unsafe(nil), Integer) # 0x prefix # -# source://prism//lib/prism/node.rb#16562 +# source://prism//lib/prism/node.rb#17321 Prism::IntegerBaseFlags::HEXADECIMAL = T.let(T.unsafe(nil), Integer) # 0o or 0 prefix # -# source://prism//lib/prism/node.rb#16556 +# source://prism//lib/prism/node.rb#17318 Prism::IntegerBaseFlags::OCTAL = T.let(T.unsafe(nil), Integer) # Represents an integer number literal. @@ -14229,19 +16042,19 @@ Prism::IntegerBaseFlags::OCTAL = T.let(T.unsafe(nil), Integer) # 1 # ^ # -# source://prism//lib/prism/node.rb#8995 +# source://prism//lib/prism/node.rb#9605 class Prism::IntegerNode < ::Prism::Node # def initialize: (flags: Integer, location: Location) -> void # # @return [IntegerNode] a new instance of IntegerNode # - # source://prism//lib/prism/node.rb#9000 + # source://prism//lib/prism/node.rb#9610 sig { params(flags: Integer, location: Prism::Location).void } def initialize(flags, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#9006 + # source://prism//lib/prism/node.rb#9616 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end @@ -14249,29 +16062,29 @@ class Prism::IntegerNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9042 + # source://prism//lib/prism/node.rb#9652 sig { returns(T::Boolean) } def binary?; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#9011 + # source://prism//lib/prism/node.rb#9621 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#9021 + # source://prism//lib/prism/node.rb#9631 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#9016 + # source://prism//lib/prism/node.rb#9626 def compact_child_nodes; end # def copy: (**params) -> IntegerNode # - # source://prism//lib/prism/node.rb#9026 + # source://prism//lib/prism/node.rb#9636 sig { params(params: T.untyped).returns(Prism::IntegerNode) } def copy(**params); end @@ -14279,20 +16092,20 @@ class Prism::IntegerNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9052 + # source://prism//lib/prism/node.rb#9657 sig { returns(T::Boolean) } def decimal?; end # def child_nodes: () -> Array[nil | Node] # def deconstruct: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#9011 + # source://prism//lib/prism/node.rb#9621 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#9037 + # source://prism//lib/prism/node.rb#9647 sig do params( keys: T::Array[Symbol] @@ -14304,20 +16117,20 @@ class Prism::IntegerNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9057 + # source://prism//lib/prism/node.rb#9667 sig { returns(T::Boolean) } def hexadecimal?; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#9062 + # source://prism//lib/prism/node.rb#9672 def inspect(inspector = T.unsafe(nil)); end # def octal?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9047 + # source://prism//lib/prism/node.rb#9662 sig { returns(T::Boolean) } def octal?; end @@ -14336,19 +16149,19 @@ class Prism::IntegerNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#9083 + # source://prism//lib/prism/node.rb#9693 def type; end # Returns the value of the node as a Ruby Integer. # - # source://prism//lib/prism/node_ext.rb#35 + # source://prism//lib/prism/node_ext.rb#76 def value; end private # Returns the value of attribute flags. # - # source://prism//lib/prism/node.rb#8997 + # source://prism//lib/prism/node.rb#9607 sig { returns(Integer) } def flags; end @@ -14360,7 +16173,7 @@ class Prism::IntegerNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#9093 + # source://prism//lib/prism/node.rb#9703 def type; end end end @@ -14372,29 +16185,29 @@ end # if /foo #{bar} baz/ then end # ^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#9104 +# source://prism//lib/prism/node.rb#9714 class Prism::InterpolatedMatchLastLineNode < ::Prism::Node include ::Prism::RegularExpressionOptions - # def initialize: (opening_loc: Location, parts: Array[Node], closing_loc: Location, flags: Integer, location: Location) -> void + # def initialize: (flags: Integer, opening_loc: Location, parts: Array[Node], closing_loc: Location, location: Location) -> void # # @return [InterpolatedMatchLastLineNode] a new instance of InterpolatedMatchLastLineNode # - # source://prism//lib/prism/node.rb#9118 + # source://prism//lib/prism/node.rb#9728 sig do params( + flags: Integer, opening_loc: Prism::Location, parts: T::Array[Prism::Node], closing_loc: Prism::Location, - flags: Integer, location: Prism::Location ).void end - def initialize(opening_loc, parts, closing_loc, flags, location); end + def initialize(flags, opening_loc, parts, closing_loc, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#9127 + # source://prism//lib/prism/node.rb#9737 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end @@ -14402,54 +16215,54 @@ class Prism::InterpolatedMatchLastLineNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9206 + # source://prism//lib/prism/node.rb#9806 sig { returns(T::Boolean) } def ascii_8bit?; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#9137 + # source://prism//lib/prism/node.rb#9747 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#9176 + # source://prism//lib/prism/node.rb#9841 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#9112 + # source://prism//lib/prism/node.rb#9725 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#9147 + # source://prism//lib/prism/node.rb#9757 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#9142 + # source://prism//lib/prism/node.rb#9752 def compact_child_nodes; end # def copy: (**params) -> InterpolatedMatchLastLineNode # - # source://prism//lib/prism/node.rb#9152 + # source://prism//lib/prism/node.rb#9762 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//lib/prism/node.rb#9137 + # source://prism//lib/prism/node.rb#9747 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#9166 + # source://prism//lib/prism/node.rb#9776 sig do params( keys: T::Array[Symbol] @@ -14457,40 +16270,64 @@ class Prism::InterpolatedMatchLastLineNode < ::Prism::Node end def deconstruct_keys(keys); end - # def euc_jp?: () -> bool + # def euc_jp?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#9801 + sig { returns(T::Boolean) } + def euc_jp?; end + + # def extended?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#9786 + sig { returns(T::Boolean) } + def extended?; end + + # def forced_binary_encoding?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9201 + # source://prism//lib/prism/node.rb#9826 sig { returns(T::Boolean) } - def euc_jp?; end + def forced_binary_encoding?; end - # def extended?: () -> bool + # def forced_us_ascii_encoding?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9186 + # source://prism//lib/prism/node.rb#9831 sig { returns(T::Boolean) } - def extended?; end + def forced_us_ascii_encoding?; end + + # def forced_utf8_encoding?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#9821 + sig { returns(T::Boolean) } + def forced_utf8_encoding?; end # def ignore_case?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9181 + # source://prism//lib/prism/node.rb#9781 sig { returns(T::Boolean) } def ignore_case?; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#9221 + # source://prism//lib/prism/node.rb#9846 def inspect(inspector = T.unsafe(nil)); end # def multi_line?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9191 + # source://prism//lib/prism/node.rb#9791 sig { returns(T::Boolean) } def multi_line?; end @@ -14498,29 +16335,29 @@ class Prism::InterpolatedMatchLastLineNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9196 + # source://prism//lib/prism/node.rb#9796 sig { returns(T::Boolean) } def once?; end # def opening: () -> String # - # source://prism//lib/prism/node.rb#9171 + # source://prism//lib/prism/node.rb#9836 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#9106 + # source://prism//lib/prism/node.rb#9719 sig { returns(Prism::Location) } def opening_loc; end # attr_reader parts: Array[Node] # - # source://prism//lib/prism/node.rb#9109 + # source://prism//lib/prism/node.rb#9722 sig { returns(T::Array[Prism::Node]) } def parts; end - # source://prism//lib/prism/node.rb#9131 + # source://prism//lib/prism/node.rb#9741 def set_newline_flag(newline_marked); end # Sometimes you want to check an instance of a node against a list of @@ -14538,14 +16375,14 @@ class Prism::InterpolatedMatchLastLineNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#9245 + # source://prism//lib/prism/node.rb#9870 def type; end # def utf_8?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9216 + # source://prism//lib/prism/node.rb#9816 sig { returns(T::Boolean) } def utf_8?; end @@ -14553,7 +16390,7 @@ class Prism::InterpolatedMatchLastLineNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9211 + # source://prism//lib/prism/node.rb#9811 sig { returns(T::Boolean) } def windows_31j?; end @@ -14561,7 +16398,7 @@ class Prism::InterpolatedMatchLastLineNode < ::Prism::Node # Returns the value of attribute flags. # - # source://prism//lib/prism/node.rb#9115 + # source://prism//lib/prism/node.rb#9716 sig { returns(Integer) } def flags; end @@ -14573,7 +16410,7 @@ class Prism::InterpolatedMatchLastLineNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#9255 + # source://prism//lib/prism/node.rb#9880 def type; end end end @@ -14583,29 +16420,29 @@ end # /foo #{bar} baz/ # ^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#9264 +# source://prism//lib/prism/node.rb#9889 class Prism::InterpolatedRegularExpressionNode < ::Prism::Node include ::Prism::RegularExpressionOptions - # def initialize: (opening_loc: Location, parts: Array[Node], closing_loc: Location, flags: Integer, location: Location) -> void + # def initialize: (flags: Integer, opening_loc: Location, parts: Array[Node], closing_loc: Location, location: Location) -> void # # @return [InterpolatedRegularExpressionNode] a new instance of InterpolatedRegularExpressionNode # - # source://prism//lib/prism/node.rb#9278 + # source://prism//lib/prism/node.rb#9903 sig do params( + flags: Integer, opening_loc: Prism::Location, parts: T::Array[Prism::Node], closing_loc: Prism::Location, - flags: Integer, location: Prism::Location ).void end - def initialize(opening_loc, parts, closing_loc, flags, location); end + def initialize(flags, opening_loc, parts, closing_loc, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#9287 + # source://prism//lib/prism/node.rb#9912 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end @@ -14613,54 +16450,54 @@ class Prism::InterpolatedRegularExpressionNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9366 + # source://prism//lib/prism/node.rb#9981 sig { returns(T::Boolean) } def ascii_8bit?; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#9297 + # source://prism//lib/prism/node.rb#9922 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#9336 + # source://prism//lib/prism/node.rb#10016 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#9272 + # source://prism//lib/prism/node.rb#9900 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#9307 + # source://prism//lib/prism/node.rb#9932 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#9302 + # source://prism//lib/prism/node.rb#9927 def compact_child_nodes; end # def copy: (**params) -> InterpolatedRegularExpressionNode # - # source://prism//lib/prism/node.rb#9312 + # source://prism//lib/prism/node.rb#9937 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//lib/prism/node.rb#9297 + # source://prism//lib/prism/node.rb#9922 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#9326 + # source://prism//lib/prism/node.rb#9951 sig do params( keys: T::Array[Symbol] @@ -14672,7 +16509,7 @@ class Prism::InterpolatedRegularExpressionNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9361 + # source://prism//lib/prism/node.rb#9976 sig { returns(T::Boolean) } def euc_jp?; end @@ -14680,28 +16517,52 @@ class Prism::InterpolatedRegularExpressionNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9346 + # source://prism//lib/prism/node.rb#9961 sig { returns(T::Boolean) } def extended?; end + # def forced_binary_encoding?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#10001 + sig { returns(T::Boolean) } + def forced_binary_encoding?; end + + # def forced_us_ascii_encoding?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#10006 + sig { returns(T::Boolean) } + def forced_us_ascii_encoding?; end + + # def forced_utf8_encoding?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#9996 + sig { returns(T::Boolean) } + def forced_utf8_encoding?; end + # def ignore_case?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9341 + # source://prism//lib/prism/node.rb#9956 sig { returns(T::Boolean) } def ignore_case?; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#9381 + # source://prism//lib/prism/node.rb#10021 def inspect(inspector = T.unsafe(nil)); end # def multi_line?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9351 + # source://prism//lib/prism/node.rb#9966 sig { returns(T::Boolean) } def multi_line?; end @@ -14709,29 +16570,29 @@ class Prism::InterpolatedRegularExpressionNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9356 + # source://prism//lib/prism/node.rb#9971 sig { returns(T::Boolean) } def once?; end # def opening: () -> String # - # source://prism//lib/prism/node.rb#9331 + # source://prism//lib/prism/node.rb#10011 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#9266 + # source://prism//lib/prism/node.rb#9894 sig { returns(Prism::Location) } def opening_loc; end # attr_reader parts: Array[Node] # - # source://prism//lib/prism/node.rb#9269 + # source://prism//lib/prism/node.rb#9897 sig { returns(T::Array[Prism::Node]) } def parts; end - # source://prism//lib/prism/node.rb#9291 + # source://prism//lib/prism/node.rb#9916 def set_newline_flag(newline_marked); end # Sometimes you want to check an instance of a node against a list of @@ -14749,14 +16610,14 @@ class Prism::InterpolatedRegularExpressionNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#9405 + # source://prism//lib/prism/node.rb#10045 def type; end # def utf_8?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9376 + # source://prism//lib/prism/node.rb#9991 sig { returns(T::Boolean) } def utf_8?; end @@ -14764,7 +16625,7 @@ class Prism::InterpolatedRegularExpressionNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#9371 + # source://prism//lib/prism/node.rb#9986 sig { returns(T::Boolean) } def windows_31j?; end @@ -14772,7 +16633,7 @@ class Prism::InterpolatedRegularExpressionNode < ::Prism::Node # Returns the value of attribute flags. # - # source://prism//lib/prism/node.rb#9275 + # source://prism//lib/prism/node.rb#9891 sig { returns(Integer) } def flags; end @@ -14784,7 +16645,7 @@ class Prism::InterpolatedRegularExpressionNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#9415 + # source://prism//lib/prism/node.rb#10055 def type; end end end @@ -14794,13 +16655,15 @@ end # "foo #{bar} baz" # ^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#9424 +# source://prism//lib/prism/node.rb#10064 class Prism::InterpolatedStringNode < ::Prism::Node + include ::Prism::HeredocQuery + # def initialize: (opening_loc: Location?, parts: Array[Node], closing_loc: Location?, location: Location) -> void # # @return [InterpolatedStringNode] a new instance of InterpolatedStringNode # - # source://prism//lib/prism/node.rb#9435 + # source://prism//lib/prism/node.rb#10075 sig do params( opening_loc: T.nilable(Prism::Location), @@ -14813,54 +16676,54 @@ class Prism::InterpolatedStringNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#9443 + # source://prism//lib/prism/node.rb#10083 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#9453 + # source://prism//lib/prism/node.rb#10093 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String? # - # source://prism//lib/prism/node.rb#9491 + # source://prism//lib/prism/node.rb#10131 sig { returns(T.nilable(String)) } def closing; end # attr_reader closing_loc: Location? # - # source://prism//lib/prism/node.rb#9432 + # source://prism//lib/prism/node.rb#10072 sig { returns(T.nilable(Prism::Location)) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#9463 + # source://prism//lib/prism/node.rb#10103 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#9458 + # source://prism//lib/prism/node.rb#10098 def compact_child_nodes; end # def copy: (**params) -> InterpolatedStringNode # - # source://prism//lib/prism/node.rb#9468 + # source://prism//lib/prism/node.rb#10108 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//lib/prism/node.rb#9453 + # source://prism//lib/prism/node.rb#10093 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#9481 + # source://prism//lib/prism/node.rb#10121 sig do params( keys: T::Array[Symbol] @@ -14870,28 +16733,28 @@ class Prism::InterpolatedStringNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#9496 + # source://prism//lib/prism/node.rb#10136 def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String? # - # source://prism//lib/prism/node.rb#9486 + # source://prism//lib/prism/node.rb#10126 sig { returns(T.nilable(String)) } def opening; end # attr_reader opening_loc: Location? # - # source://prism//lib/prism/node.rb#9426 + # source://prism//lib/prism/node.rb#10066 sig { returns(T.nilable(Prism::Location)) } def opening_loc; end # attr_reader parts: Array[Node] # - # source://prism//lib/prism/node.rb#9429 + # source://prism//lib/prism/node.rb#10069 sig { returns(T::Array[Prism::Node]) } def parts; end - # source://prism//lib/prism/node.rb#9447 + # source://prism//lib/prism/node.rb#10087 def set_newline_flag(newline_marked); end # Sometimes you want to check an instance of a node against a list of @@ -14909,7 +16772,7 @@ class Prism::InterpolatedStringNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#9518 + # source://prism//lib/prism/node.rb#10158 def type; end class << self @@ -14920,7 +16783,7 @@ class Prism::InterpolatedStringNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#9528 + # source://prism//lib/prism/node.rb#10168 def type; end end end @@ -14930,13 +16793,13 @@ end # :"foo #{bar} baz" # ^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#9537 +# source://prism//lib/prism/node.rb#10177 class Prism::InterpolatedSymbolNode < ::Prism::Node # def initialize: (opening_loc: Location?, parts: Array[Node], closing_loc: Location?, location: Location) -> void # # @return [InterpolatedSymbolNode] a new instance of InterpolatedSymbolNode # - # source://prism//lib/prism/node.rb#9548 + # source://prism//lib/prism/node.rb#10188 sig do params( opening_loc: T.nilable(Prism::Location), @@ -14949,54 +16812,54 @@ class Prism::InterpolatedSymbolNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#9556 + # source://prism//lib/prism/node.rb#10196 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#9566 + # source://prism//lib/prism/node.rb#10206 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String? # - # source://prism//lib/prism/node.rb#9604 + # source://prism//lib/prism/node.rb#10244 sig { returns(T.nilable(String)) } def closing; end # attr_reader closing_loc: Location? # - # source://prism//lib/prism/node.rb#9545 + # source://prism//lib/prism/node.rb#10185 sig { returns(T.nilable(Prism::Location)) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#9576 + # source://prism//lib/prism/node.rb#10216 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#9571 + # source://prism//lib/prism/node.rb#10211 def compact_child_nodes; end # def copy: (**params) -> InterpolatedSymbolNode # - # source://prism//lib/prism/node.rb#9581 + # source://prism//lib/prism/node.rb#10221 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//lib/prism/node.rb#9566 + # source://prism//lib/prism/node.rb#10206 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#9594 + # source://prism//lib/prism/node.rb#10234 sig do params( keys: T::Array[Symbol] @@ -15006,28 +16869,28 @@ class Prism::InterpolatedSymbolNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#9609 + # source://prism//lib/prism/node.rb#10249 def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String? # - # source://prism//lib/prism/node.rb#9599 + # source://prism//lib/prism/node.rb#10239 sig { returns(T.nilable(String)) } def opening; end # attr_reader opening_loc: Location? # - # source://prism//lib/prism/node.rb#9539 + # source://prism//lib/prism/node.rb#10179 sig { returns(T.nilable(Prism::Location)) } def opening_loc; end # attr_reader parts: Array[Node] # - # source://prism//lib/prism/node.rb#9542 + # source://prism//lib/prism/node.rb#10182 sig { returns(T::Array[Prism::Node]) } def parts; end - # source://prism//lib/prism/node.rb#9560 + # source://prism//lib/prism/node.rb#10200 def set_newline_flag(newline_marked); end # Sometimes you want to check an instance of a node against a list of @@ -15045,7 +16908,7 @@ class Prism::InterpolatedSymbolNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#9631 + # source://prism//lib/prism/node.rb#10271 def type; end class << self @@ -15056,7 +16919,7 @@ class Prism::InterpolatedSymbolNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#9641 + # source://prism//lib/prism/node.rb#10281 def type; end end end @@ -15066,13 +16929,15 @@ end # `foo #{bar} baz` # ^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#9650 +# source://prism//lib/prism/node.rb#10290 class Prism::InterpolatedXStringNode < ::Prism::Node + include ::Prism::HeredocQuery + # def initialize: (opening_loc: Location, parts: Array[Node], closing_loc: Location, location: Location) -> void # # @return [InterpolatedXStringNode] a new instance of InterpolatedXStringNode # - # source://prism//lib/prism/node.rb#9661 + # source://prism//lib/prism/node.rb#10301 sig do params( opening_loc: Prism::Location, @@ -15085,54 +16950,54 @@ class Prism::InterpolatedXStringNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#9669 + # source://prism//lib/prism/node.rb#10309 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#9679 + # source://prism//lib/prism/node.rb#10319 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#9717 + # source://prism//lib/prism/node.rb#10357 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#9658 + # source://prism//lib/prism/node.rb#10298 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#9689 + # source://prism//lib/prism/node.rb#10329 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#9684 + # source://prism//lib/prism/node.rb#10324 def compact_child_nodes; end # def copy: (**params) -> InterpolatedXStringNode # - # source://prism//lib/prism/node.rb#9694 + # source://prism//lib/prism/node.rb#10334 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//lib/prism/node.rb#9679 + # source://prism//lib/prism/node.rb#10319 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#9707 + # source://prism//lib/prism/node.rb#10347 sig do params( keys: T::Array[Symbol] @@ -15142,28 +17007,28 @@ class Prism::InterpolatedXStringNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#9722 + # source://prism//lib/prism/node.rb#10362 def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String # - # source://prism//lib/prism/node.rb#9712 + # source://prism//lib/prism/node.rb#10352 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#9652 + # source://prism//lib/prism/node.rb#10292 sig { returns(Prism::Location) } def opening_loc; end # attr_reader parts: Array[Node] # - # source://prism//lib/prism/node.rb#9655 + # source://prism//lib/prism/node.rb#10295 sig { returns(T::Array[Prism::Node]) } def parts; end - # source://prism//lib/prism/node.rb#9673 + # source://prism//lib/prism/node.rb#10313 def set_newline_flag(newline_marked); end # Sometimes you want to check an instance of a node against a list of @@ -15181,7 +17046,7 @@ class Prism::InterpolatedXStringNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#9744 + # source://prism//lib/prism/node.rb#10384 def type; end class << self @@ -15192,7 +17057,7 @@ class Prism::InterpolatedXStringNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#9754 + # source://prism//lib/prism/node.rb#10394 def type; end end end @@ -15202,54 +17067,54 @@ end # foo(a: b) # ^^^^ # -# source://prism//lib/prism/node.rb#9763 +# source://prism//lib/prism/node.rb#10403 class Prism::KeywordHashNode < ::Prism::Node - # def initialize: (elements: Array[Node], location: Location) -> void + # def initialize: (flags: Integer, elements: Array[Node], location: Location) -> void # # @return [KeywordHashNode] a new instance of KeywordHashNode # - # source://prism//lib/prism/node.rb#9768 - sig { params(elements: T::Array[Prism::Node], location: Prism::Location).void } - def initialize(elements, location); end + # source://prism//lib/prism/node.rb#10411 + sig { params(flags: Integer, elements: T::Array[Prism::Node], location: Prism::Location).void } + def initialize(flags, elements, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#9774 + # source://prism//lib/prism/node.rb#10418 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#9779 + # source://prism//lib/prism/node.rb#10423 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#9789 + # source://prism//lib/prism/node.rb#10433 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#9784 + # source://prism//lib/prism/node.rb#10428 def compact_child_nodes; end # def copy: (**params) -> KeywordHashNode # - # source://prism//lib/prism/node.rb#9794 + # source://prism//lib/prism/node.rb#10438 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//lib/prism/node.rb#9779 + # source://prism//lib/prism/node.rb#10423 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#9805 + # source://prism//lib/prism/node.rb#10450 sig do params( keys: T::Array[Symbol] @@ -15259,15 +17124,23 @@ class Prism::KeywordHashNode < ::Prism::Node # attr_reader elements: Array[Node] # - # source://prism//lib/prism/node.rb#9765 + # source://prism//lib/prism/node.rb#10408 sig { returns(T::Array[Prism::Node]) } def elements; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#9810 + # source://prism//lib/prism/node.rb#10460 def inspect(inspector = T.unsafe(nil)); end + # def static_keys?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#10455 + sig { returns(T::Boolean) } + def static_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 @@ -15283,9 +17156,17 @@ class Prism::KeywordHashNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#9830 + # source://prism//lib/prism/node.rb#10482 def type; end + private + + # Returns the value of attribute flags. + # + # source://prism//lib/prism/node.rb#10405 + 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. @@ -15294,24 +17175,34 @@ class Prism::KeywordHashNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#9840 + # source://prism//lib/prism/node.rb#10492 def type; end end end +# Flags for keyword hash nodes. +# +# source://prism//lib/prism/node.rb#17325 +module Prism::KeywordHashNodeFlags; end + +# a keyword hash which only has `AssocNode` elements all with static literal keys, which means the elements can be treated as keyword arguments +# +# source://prism//lib/prism/node.rb#17327 +Prism::KeywordHashNodeFlags::STATIC_KEYS = T.let(T.unsafe(nil), Integer) + # Represents a keyword rest parameter to a method, block, or lambda definition. # # def a(**b) # ^^^ # end # -# source://prism//lib/prism/node.rb#9850 +# source://prism//lib/prism/node.rb#10502 class Prism::KeywordRestParameterNode < ::Prism::Node # def initialize: (name: Symbol?, name_loc: Location?, operator_loc: Location, location: Location) -> void # # @return [KeywordRestParameterNode] a new instance of KeywordRestParameterNode # - # source://prism//lib/prism/node.rb#9861 + # source://prism//lib/prism/node.rb#10513 sig do params( name: T.nilable(Symbol), @@ -15324,42 +17215,42 @@ class Prism::KeywordRestParameterNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#9869 + # source://prism//lib/prism/node.rb#10521 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#9874 + # source://prism//lib/prism/node.rb#10526 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#9884 + # source://prism//lib/prism/node.rb#10536 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#9879 + # source://prism//lib/prism/node.rb#10531 def compact_child_nodes; end # def copy: (**params) -> KeywordRestParameterNode # - # source://prism//lib/prism/node.rb#9889 + # source://prism//lib/prism/node.rb#10541 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//lib/prism/node.rb#9874 + # source://prism//lib/prism/node.rb#10526 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#9902 + # source://prism//lib/prism/node.rb#10554 sig do params( keys: T::Array[Symbol] @@ -15369,30 +17260,30 @@ class Prism::KeywordRestParameterNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#9912 + # source://prism//lib/prism/node.rb#10564 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol? # - # source://prism//lib/prism/node.rb#9852 + # source://prism//lib/prism/node.rb#10504 sig { returns(T.nilable(Symbol)) } def name; end # attr_reader name_loc: Location? # - # source://prism//lib/prism/node.rb#9855 + # source://prism//lib/prism/node.rb#10507 sig { returns(T.nilable(Prism::Location)) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#9907 + # source://prism//lib/prism/node.rb#10559 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#9858 + # source://prism//lib/prism/node.rb#10510 sig { returns(Prism::Location) } def operator_loc; end @@ -15411,7 +17302,7 @@ class Prism::KeywordRestParameterNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#9938 + # source://prism//lib/prism/node.rb#10590 def type; end class << self @@ -15422,7 +17313,7 @@ class Prism::KeywordRestParameterNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#9948 + # source://prism//lib/prism/node.rb#10600 def type; end end end @@ -15432,82 +17323,83 @@ end # ->(value) { value * 2 } # ^^^^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#9957 +# source://prism//lib/prism/node.rb#10609 class Prism::LambdaNode < ::Prism::Node - # def initialize: (locals: Array[Symbol], operator_loc: Location, opening_loc: Location, closing_loc: Location, parameters: BlockParametersNode?, body: Node?, location: Location) -> void + # def initialize: (locals: Array[Symbol], locals_body_index: Integer, operator_loc: Location, opening_loc: Location, closing_loc: Location, parameters: Node?, body: Node?, location: Location) -> void # # @return [LambdaNode] a new instance of LambdaNode # - # source://prism//lib/prism/node.rb#9977 + # source://prism//lib/prism/node.rb#10632 sig do params( locals: T::Array[Symbol], + locals_body_index: Integer, operator_loc: Prism::Location, opening_loc: Prism::Location, closing_loc: Prism::Location, - parameters: T.nilable(Prism::BlockParametersNode), + parameters: T.nilable(Prism::Node), body: T.nilable(Prism::Node), location: Prism::Location ).void end - def initialize(locals, operator_loc, opening_loc, closing_loc, parameters, body, location); end + def initialize(locals, locals_body_index, operator_loc, opening_loc, closing_loc, parameters, body, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#9988 + # source://prism//lib/prism/node.rb#10644 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # attr_reader body: Node? # - # source://prism//lib/prism/node.rb#9974 + # source://prism//lib/prism/node.rb#10629 sig { returns(T.nilable(Prism::Node)) } def body; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#9993 + # source://prism//lib/prism/node.rb#10649 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#10042 + # source://prism//lib/prism/node.rb#10699 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#9968 + # source://prism//lib/prism/node.rb#10623 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#10006 + # source://prism//lib/prism/node.rb#10662 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#9998 + # source://prism//lib/prism/node.rb#10654 def compact_child_nodes; end # def copy: (**params) -> LambdaNode # - # source://prism//lib/prism/node.rb#10011 + # source://prism//lib/prism/node.rb#10667 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//lib/prism/node.rb#9993 + # source://prism//lib/prism/node.rb#10649 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#10027 + # source://prism//lib/prism/node.rb#10684 sig do params( keys: T::Array[Symbol] @@ -15517,43 +17409,49 @@ class Prism::LambdaNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#10047 + # source://prism//lib/prism/node.rb#10704 def inspect(inspector = T.unsafe(nil)); end # attr_reader locals: Array[Symbol] # - # source://prism//lib/prism/node.rb#9959 + # source://prism//lib/prism/node.rb#10611 sig { returns(T::Array[Symbol]) } def locals; end + # attr_reader locals_body_index: Integer + # + # source://prism//lib/prism/node.rb#10614 + sig { returns(Integer) } + def locals_body_index; end + # def opening: () -> String # - # source://prism//lib/prism/node.rb#10037 + # source://prism//lib/prism/node.rb#10694 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#9965 + # source://prism//lib/prism/node.rb#10620 sig { returns(Prism::Location) } def opening_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#10032 + # source://prism//lib/prism/node.rb#10689 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#9962 + # source://prism//lib/prism/node.rb#10617 sig { returns(Prism::Location) } def operator_loc; end - # attr_reader parameters: BlockParametersNode? + # attr_reader parameters: Node? # - # source://prism//lib/prism/node.rb#9971 - sig { returns(T.nilable(Prism::BlockParametersNode)) } + # source://prism//lib/prism/node.rb#10626 + sig { returns(T.nilable(Prism::Node)) } def parameters; end # Sometimes you want to check an instance of a node against a list of @@ -15571,7 +17469,7 @@ class Prism::LambdaNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#10082 + # source://prism//lib/prism/node.rb#10740 def type; end class << self @@ -15582,7 +17480,7 @@ class Prism::LambdaNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#10092 + # source://prism//lib/prism/node.rb#10750 def type; end end end @@ -15817,17 +17715,17 @@ end # This is a class that wraps the Ripper lexer to produce almost exactly the # same tokens. # -# source://prism//lib/prism/lex_compat.rb#842 +# source://prism//lib/prism/lex_compat.rb#852 class Prism::LexRipper # @return [LexRipper] a new instance of LexRipper # - # source://prism//lib/prism/lex_compat.rb#845 + # source://prism//lib/prism/lex_compat.rb#855 def initialize(source); end - # source://prism//lib/prism/lex_compat.rb#849 + # source://prism//lib/prism/lex_compat.rb#859 def result; end - # source://prism//lib/prism/lex_compat.rb#843 + # source://prism//lib/prism/lex_compat.rb#853 def source; end end @@ -15836,13 +17734,13 @@ end # target &&= value # ^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#10101 +# source://prism//lib/prism/node.rb#10759 class Prism::LocalVariableAndWriteNode < ::Prism::Node # def initialize: (name_loc: Location, operator_loc: Location, value: Node, name: Symbol, depth: Integer, location: Location) -> void # # @return [LocalVariableAndWriteNode] a new instance of LocalVariableAndWriteNode # - # source://prism//lib/prism/node.rb#10118 + # source://prism//lib/prism/node.rb#10776 sig do params( name_loc: Prism::Location, @@ -15857,42 +17755,42 @@ class Prism::LocalVariableAndWriteNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#10128 + # source://prism//lib/prism/node.rb#10786 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#10133 + # source://prism//lib/prism/node.rb#10791 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#10143 + # source://prism//lib/prism/node.rb#10801 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#10138 + # source://prism//lib/prism/node.rb#10796 def compact_child_nodes; end # def copy: (**params) -> LocalVariableAndWriteNode # - # source://prism//lib/prism/node.rb#10148 + # source://prism//lib/prism/node.rb#10806 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//lib/prism/node.rb#10133 + # source://prism//lib/prism/node.rb#10791 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#10163 + # source://prism//lib/prism/node.rb#10821 sig do params( keys: T::Array[Symbol] @@ -15902,36 +17800,36 @@ class Prism::LocalVariableAndWriteNode < ::Prism::Node # attr_reader depth: Integer # - # source://prism//lib/prism/node.rb#10115 + # source://prism//lib/prism/node.rb#10773 sig { returns(Integer) } def depth; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#10173 + # source://prism//lib/prism/node.rb#10831 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#10112 + # source://prism//lib/prism/node.rb#10770 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#10103 + # source://prism//lib/prism/node.rb#10761 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#10168 + # source://prism//lib/prism/node.rb#10826 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#10106 + # source://prism//lib/prism/node.rb#10764 sig { returns(Prism::Location) } def operator_loc; end @@ -15950,12 +17848,12 @@ class Prism::LocalVariableAndWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#10198 + # source://prism//lib/prism/node.rb#10856 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#10109 + # source://prism//lib/prism/node.rb#10767 sig { returns(Prism::Node) } def value; end @@ -15967,7 +17865,7 @@ class Prism::LocalVariableAndWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#10208 + # source://prism//lib/prism/node.rb#10866 def type; end end end @@ -15977,13 +17875,13 @@ end # target += value # ^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#10217 +# source://prism//lib/prism/node.rb#10875 class Prism::LocalVariableOperatorWriteNode < ::Prism::Node # def initialize: (name_loc: Location, operator_loc: Location, value: Node, name: Symbol, operator: Symbol, depth: Integer, location: Location) -> void # # @return [LocalVariableOperatorWriteNode] a new instance of LocalVariableOperatorWriteNode # - # source://prism//lib/prism/node.rb#10237 + # source://prism//lib/prism/node.rb#10895 sig do params( name_loc: Prism::Location, @@ -15999,42 +17897,42 @@ class Prism::LocalVariableOperatorWriteNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#10248 + # source://prism//lib/prism/node.rb#10906 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#10253 + # source://prism//lib/prism/node.rb#10911 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#10263 + # source://prism//lib/prism/node.rb#10921 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#10258 + # source://prism//lib/prism/node.rb#10916 def compact_child_nodes; end # def copy: (**params) -> LocalVariableOperatorWriteNode # - # source://prism//lib/prism/node.rb#10268 + # source://prism//lib/prism/node.rb#10926 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//lib/prism/node.rb#10253 + # source://prism//lib/prism/node.rb#10911 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#10284 + # source://prism//lib/prism/node.rb#10942 sig do params( keys: T::Array[Symbol] @@ -16044,36 +17942,36 @@ class Prism::LocalVariableOperatorWriteNode < ::Prism::Node # attr_reader depth: Integer # - # source://prism//lib/prism/node.rb#10234 + # source://prism//lib/prism/node.rb#10892 sig { returns(Integer) } def depth; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#10289 + # source://prism//lib/prism/node.rb#10947 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#10228 + # source://prism//lib/prism/node.rb#10886 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#10219 + # source://prism//lib/prism/node.rb#10877 sig { returns(Prism::Location) } def name_loc; end # attr_reader operator: Symbol # - # source://prism//lib/prism/node.rb#10231 + # source://prism//lib/prism/node.rb#10889 sig { returns(Symbol) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#10222 + # source://prism//lib/prism/node.rb#10880 sig { returns(Prism::Location) } def operator_loc; end @@ -16092,12 +17990,12 @@ class Prism::LocalVariableOperatorWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#10315 + # source://prism//lib/prism/node.rb#10973 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#10225 + # source://prism//lib/prism/node.rb#10883 sig { returns(Prism::Node) } def value; end @@ -16109,7 +18007,7 @@ class Prism::LocalVariableOperatorWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#10325 + # source://prism//lib/prism/node.rb#10983 def type; end end end @@ -16119,13 +18017,13 @@ end # target ||= value # ^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#10334 +# source://prism//lib/prism/node.rb#10992 class Prism::LocalVariableOrWriteNode < ::Prism::Node # def initialize: (name_loc: Location, operator_loc: Location, value: Node, name: Symbol, depth: Integer, location: Location) -> void # # @return [LocalVariableOrWriteNode] a new instance of LocalVariableOrWriteNode # - # source://prism//lib/prism/node.rb#10351 + # source://prism//lib/prism/node.rb#11009 sig do params( name_loc: Prism::Location, @@ -16140,42 +18038,42 @@ class Prism::LocalVariableOrWriteNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#10361 + # source://prism//lib/prism/node.rb#11019 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#10366 + # source://prism//lib/prism/node.rb#11024 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#10376 + # source://prism//lib/prism/node.rb#11034 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#10371 + # source://prism//lib/prism/node.rb#11029 def compact_child_nodes; end # def copy: (**params) -> LocalVariableOrWriteNode # - # source://prism//lib/prism/node.rb#10381 + # source://prism//lib/prism/node.rb#11039 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//lib/prism/node.rb#10366 + # source://prism//lib/prism/node.rb#11024 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#10396 + # source://prism//lib/prism/node.rb#11054 sig do params( keys: T::Array[Symbol] @@ -16185,36 +18083,36 @@ class Prism::LocalVariableOrWriteNode < ::Prism::Node # attr_reader depth: Integer # - # source://prism//lib/prism/node.rb#10348 + # source://prism//lib/prism/node.rb#11006 sig { returns(Integer) } def depth; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#10406 + # source://prism//lib/prism/node.rb#11064 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#10345 + # source://prism//lib/prism/node.rb#11003 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#10336 + # source://prism//lib/prism/node.rb#10994 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#10401 + # source://prism//lib/prism/node.rb#11059 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#10339 + # source://prism//lib/prism/node.rb#10997 sig { returns(Prism::Location) } def operator_loc; end @@ -16233,12 +18131,12 @@ class Prism::LocalVariableOrWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#10431 + # source://prism//lib/prism/node.rb#11089 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#10342 + # source://prism//lib/prism/node.rb#11000 sig { returns(Prism::Node) } def value; end @@ -16250,7 +18148,7 @@ class Prism::LocalVariableOrWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#10441 + # source://prism//lib/prism/node.rb#11099 def type; end end end @@ -16262,54 +18160,54 @@ end # foo # ^^^ # -# source://prism//lib/prism/node.rb#10452 +# source://prism//lib/prism/node.rb#11110 class Prism::LocalVariableReadNode < ::Prism::Node # def initialize: (name: Symbol, depth: Integer, location: Location) -> void # # @return [LocalVariableReadNode] a new instance of LocalVariableReadNode # - # source://prism//lib/prism/node.rb#10460 + # source://prism//lib/prism/node.rb#11118 sig { params(name: Symbol, depth: Integer, location: Prism::Location).void } def initialize(name, depth, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#10467 + # source://prism//lib/prism/node.rb#11125 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#10472 + # source://prism//lib/prism/node.rb#11130 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#10482 + # source://prism//lib/prism/node.rb#11140 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#10477 + # source://prism//lib/prism/node.rb#11135 def compact_child_nodes; end # def copy: (**params) -> LocalVariableReadNode # - # source://prism//lib/prism/node.rb#10487 + # source://prism//lib/prism/node.rb#11145 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//lib/prism/node.rb#10472 + # source://prism//lib/prism/node.rb#11130 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#10499 + # source://prism//lib/prism/node.rb#11157 sig do params( keys: T::Array[Symbol] @@ -16319,18 +18217,18 @@ class Prism::LocalVariableReadNode < ::Prism::Node # attr_reader depth: Integer # - # source://prism//lib/prism/node.rb#10457 + # source://prism//lib/prism/node.rb#11115 sig { returns(Integer) } def depth; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#10504 + # source://prism//lib/prism/node.rb#11162 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#10454 + # source://prism//lib/prism/node.rb#11112 sig { returns(Symbol) } def name; end @@ -16349,7 +18247,7 @@ class Prism::LocalVariableReadNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#10525 + # source://prism//lib/prism/node.rb#11183 def type; end class << self @@ -16360,7 +18258,7 @@ class Prism::LocalVariableReadNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#10535 + # source://prism//lib/prism/node.rb#11193 def type; end end end @@ -16370,54 +18268,54 @@ end # foo, bar = baz # ^^^ ^^^ # -# source://prism//lib/prism/node.rb#10544 +# source://prism//lib/prism/node.rb#11202 class Prism::LocalVariableTargetNode < ::Prism::Node # def initialize: (name: Symbol, depth: Integer, location: Location) -> void # # @return [LocalVariableTargetNode] a new instance of LocalVariableTargetNode # - # source://prism//lib/prism/node.rb#10552 + # source://prism//lib/prism/node.rb#11210 sig { params(name: Symbol, depth: Integer, location: Prism::Location).void } def initialize(name, depth, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#10559 + # source://prism//lib/prism/node.rb#11217 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#10564 + # source://prism//lib/prism/node.rb#11222 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#10574 + # source://prism//lib/prism/node.rb#11232 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#10569 + # source://prism//lib/prism/node.rb#11227 def compact_child_nodes; end # def copy: (**params) -> LocalVariableTargetNode # - # source://prism//lib/prism/node.rb#10579 + # source://prism//lib/prism/node.rb#11237 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//lib/prism/node.rb#10564 + # source://prism//lib/prism/node.rb#11222 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#10591 + # source://prism//lib/prism/node.rb#11249 sig do params( keys: T::Array[Symbol] @@ -16427,18 +18325,18 @@ class Prism::LocalVariableTargetNode < ::Prism::Node # attr_reader depth: Integer # - # source://prism//lib/prism/node.rb#10549 + # source://prism//lib/prism/node.rb#11207 sig { returns(Integer) } def depth; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#10596 + # source://prism//lib/prism/node.rb#11254 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#10546 + # source://prism//lib/prism/node.rb#11204 sig { returns(Symbol) } def name; end @@ -16457,7 +18355,7 @@ class Prism::LocalVariableTargetNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#10617 + # source://prism//lib/prism/node.rb#11275 def type; end class << self @@ -16468,7 +18366,7 @@ class Prism::LocalVariableTargetNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#10627 + # source://prism//lib/prism/node.rb#11285 def type; end end end @@ -16478,13 +18376,13 @@ end # foo = 1 # ^^^^^^^ # -# source://prism//lib/prism/node.rb#10636 +# source://prism//lib/prism/node.rb#11294 class Prism::LocalVariableWriteNode < ::Prism::Node # def initialize: (name: Symbol, depth: Integer, name_loc: Location, value: Node, operator_loc: Location, location: Location) -> void # # @return [LocalVariableWriteNode] a new instance of LocalVariableWriteNode # - # source://prism//lib/prism/node.rb#10653 + # source://prism//lib/prism/node.rb#11311 sig do params( name: Symbol, @@ -16499,42 +18397,42 @@ class Prism::LocalVariableWriteNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#10663 + # source://prism//lib/prism/node.rb#11321 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#10668 + # source://prism//lib/prism/node.rb#11326 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#10678 + # source://prism//lib/prism/node.rb#11336 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#10673 + # source://prism//lib/prism/node.rb#11331 def compact_child_nodes; end # def copy: (**params) -> LocalVariableWriteNode # - # source://prism//lib/prism/node.rb#10683 + # source://prism//lib/prism/node.rb#11341 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//lib/prism/node.rb#10668 + # source://prism//lib/prism/node.rb#11326 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#10698 + # source://prism//lib/prism/node.rb#11356 sig do params( keys: T::Array[Symbol] @@ -16544,36 +18442,36 @@ class Prism::LocalVariableWriteNode < ::Prism::Node # attr_reader depth: Integer # - # source://prism//lib/prism/node.rb#10641 + # source://prism//lib/prism/node.rb#11299 sig { returns(Integer) } def depth; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#10708 + # source://prism//lib/prism/node.rb#11366 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#10638 + # source://prism//lib/prism/node.rb#11296 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#10644 + # source://prism//lib/prism/node.rb#11302 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#10703 + # source://prism//lib/prism/node.rb#11361 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#10650 + # source://prism//lib/prism/node.rb#11308 sig { returns(Prism::Location) } def operator_loc; end @@ -16592,12 +18490,12 @@ class Prism::LocalVariableWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#10733 + # source://prism//lib/prism/node.rb#11391 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#10647 + # source://prism//lib/prism/node.rb#11305 sig { returns(Prism::Node) } def value; end @@ -16609,115 +18507,139 @@ class Prism::LocalVariableWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#10743 + # source://prism//lib/prism/node.rb#11401 def type; end end end # This represents a location in the source. # -# source://prism//lib/prism/parse_result.rb#81 +# source://prism//lib/prism/parse_result.rb#91 class Prism::Location # Create a new location object with the given source, start byte offset, and # byte length. # # @return [Location] a new instance of Location # - # source://prism//lib/prism/parse_result.rb#98 + # source://prism//lib/prism/parse_result.rb#108 sig { params(source: Prism::Source, start_offset: Integer, length: Integer).void } def initialize(source, start_offset, length); end # Returns true if the given other location is equal to this location. # - # source://prism//lib/prism/parse_result.rb#168 + # source://prism//lib/prism/parse_result.rb#202 def ==(other); end # The list of comments attached to this location # - # source://prism//lib/prism/parse_result.rb#94 + # source://prism//lib/prism/parse_result.rb#104 sig { returns(T::Array[Prism::Comment]) } def comments; end # Create a new location object with the given options. # - # source://prism//lib/prism/parse_result.rb#106 + # source://prism//lib/prism/parse_result.rb#116 sig { params(options: T.untyped).returns(Prism::Location) } def copy(**options); end # Implement the hash pattern matching interface for Location. # - # source://prism//lib/prism/parse_result.rb#158 + # source://prism//lib/prism/parse_result.rb#192 def deconstruct_keys(keys); end + # The column number in characters where this location ends from the start of + # the line. + # + # source://prism//lib/prism/parse_result.rb#187 + def end_character_column; end + + # The character offset from the beginning of the source where this location + # ends. + # + # source://prism//lib/prism/parse_result.rb#147 + def end_character_offset; end + # The column number in bytes where this location ends from the start of the # line. # - # source://prism//lib/prism/parse_result.rb#153 + # source://prism//lib/prism/parse_result.rb#181 sig { returns(Integer) } def end_column; end # The line number where this location ends. # - # source://prism//lib/prism/parse_result.rb#141 + # source://prism//lib/prism/parse_result.rb#163 sig { returns(Integer) } def end_line; end # The byte offset from the beginning of the source where this location ends. # - # source://prism//lib/prism/parse_result.rb#125 + # source://prism//lib/prism/parse_result.rb#141 sig { returns(Integer) } def end_offset; end # Returns a string representation of this location. # - # source://prism//lib/prism/parse_result.rb#115 + # source://prism//lib/prism/parse_result.rb#125 def inspect; end # Returns a new location that stretches from this location to the given # other location. Raises an error if this location is not before the other # location or if they don't share the same source. # - # source://prism//lib/prism/parse_result.rb#177 + # source://prism//lib/prism/parse_result.rb#211 def join(other); end # The length of this location in bytes. # - # source://prism//lib/prism/parse_result.rb#91 + # source://prism//lib/prism/parse_result.rb#101 def length; end # Implement the pretty print interface for Location. # - # source://prism//lib/prism/parse_result.rb#163 + # source://prism//lib/prism/parse_result.rb#197 def pretty_print(q); end # The source code that this location represents. # - # source://prism//lib/prism/parse_result.rb#120 + # source://prism//lib/prism/parse_result.rb#130 sig { returns(String) } def slice; end + # The column number in characters where this location ends from the start of + # the line. + # + # source://prism//lib/prism/parse_result.rb#175 + def start_character_column; end + + # The character offset from the beginning of the source where this location + # starts. + # + # source://prism//lib/prism/parse_result.rb#136 + def start_character_offset; end + # The column number in bytes where this location starts from the start of # the line. # - # source://prism//lib/prism/parse_result.rb#147 + # source://prism//lib/prism/parse_result.rb#169 sig { returns(Integer) } def start_column; end # The line number where this location starts. # - # source://prism//lib/prism/parse_result.rb#130 + # source://prism//lib/prism/parse_result.rb#152 sig { returns(Integer) } def start_line; end # The content of the line where this location starts before this location. # - # source://prism//lib/prism/parse_result.rb#135 + # source://prism//lib/prism/parse_result.rb#157 def start_line_slice; end # The byte offset from the beginning of the source where this location # starts. # - # source://prism//lib/prism/parse_result.rb#88 + # source://prism//lib/prism/parse_result.rb#98 sig { returns(Integer) } def start_offset; end @@ -16725,7 +18647,7 @@ class Prism::Location # Returns the value of attribute source. # - # source://prism//lib/prism/parse_result.rb#84 + # source://prism//lib/prism/parse_result.rb#94 def source; end class << self @@ -16733,60 +18655,60 @@ class Prism::Location # the beginning of the file. Useful for when you want a location object but # do not care where it points. # - # source://prism//lib/prism/parse_result.rb#187 + # source://prism//lib/prism/parse_result.rb#221 def null; end end end # Flags for while and until loop nodes. # -# source://prism//lib/prism/node.rb#16566 +# source://prism//lib/prism/node.rb#17331 module Prism::LoopFlags; end # a loop after a begin statement, so the body is executed first before the condition # -# source://prism//lib/prism/node.rb#16568 +# source://prism//lib/prism/node.rb#17333 Prism::LoopFlags::BEGIN_MODIFIER = T.let(T.unsafe(nil), Integer) # This represents a magic comment that was encountered during parsing. # -# source://prism//lib/prism/parse_result.rb#248 +# source://prism//lib/prism/parse_result.rb#273 class Prism::MagicComment # Create a new magic comment object with the given key and value locations. # # @return [MagicComment] a new instance of MagicComment # - # source://prism//lib/prism/parse_result.rb#256 + # source://prism//lib/prism/parse_result.rb#281 def initialize(key_loc, value_loc); end # Implement the hash pattern matching interface for MagicComment. # - # source://prism//lib/prism/parse_result.rb#272 + # source://prism//lib/prism/parse_result.rb#297 def deconstruct_keys(keys); end # Returns a string representation of this magic comment. # - # source://prism//lib/prism/parse_result.rb#277 + # source://prism//lib/prism/parse_result.rb#302 def inspect; end # Returns the key of the magic comment by slicing it from the source code. # - # source://prism//lib/prism/parse_result.rb#262 + # source://prism//lib/prism/parse_result.rb#287 def key; end # A Location object representing the location of the key in the source. # - # source://prism//lib/prism/parse_result.rb#250 + # source://prism//lib/prism/parse_result.rb#275 def key_loc; end # Returns the value of the magic comment by slicing it from the source code. # - # source://prism//lib/prism/parse_result.rb#267 + # source://prism//lib/prism/parse_result.rb#292 def value; end # A Location object representing the location of the value in the source. # - # source://prism//lib/prism/parse_result.rb#253 + # source://prism//lib/prism/parse_result.rb#278 def value_loc; end end @@ -16797,30 +18719,30 @@ end # if /foo/i then end # ^^^^^^ # -# source://prism//lib/prism/node.rb#10754 +# source://prism//lib/prism/node.rb#11412 class Prism::MatchLastLineNode < ::Prism::Node include ::Prism::RegularExpressionOptions - # def initialize: (opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String, flags: Integer, location: Location) -> void + # def initialize: (flags: Integer, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String, location: Location) -> void # # @return [MatchLastLineNode] a new instance of MatchLastLineNode # - # source://prism//lib/prism/node.rb#10771 + # source://prism//lib/prism/node.rb#11429 sig do params( + flags: Integer, opening_loc: Prism::Location, content_loc: Prism::Location, closing_loc: Prism::Location, unescaped: String, - flags: Integer, location: Prism::Location ).void end - def initialize(opening_loc, content_loc, closing_loc, unescaped, flags, location); end + def initialize(flags, opening_loc, content_loc, closing_loc, unescaped, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#10781 + # source://prism//lib/prism/node.rb#11439 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end @@ -16828,66 +18750,66 @@ class Prism::MatchLastLineNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#10861 + # source://prism//lib/prism/node.rb#11504 sig { returns(T::Boolean) } def ascii_8bit?; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#10786 + # source://prism//lib/prism/node.rb#11444 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#10831 + # source://prism//lib/prism/node.rb#11544 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#10762 + # source://prism//lib/prism/node.rb#11423 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#10796 + # source://prism//lib/prism/node.rb#11454 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#10791 + # source://prism//lib/prism/node.rb#11449 def compact_child_nodes; end # def content: () -> String # - # source://prism//lib/prism/node.rb#10826 + # source://prism//lib/prism/node.rb#11539 sig { returns(String) } def content; end # attr_reader content_loc: Location # - # source://prism//lib/prism/node.rb#10759 + # source://prism//lib/prism/node.rb#11420 sig { returns(Prism::Location) } def content_loc; end # def copy: (**params) -> MatchLastLineNode # - # source://prism//lib/prism/node.rb#10801 + # source://prism//lib/prism/node.rb#11459 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//lib/prism/node.rb#10786 + # source://prism//lib/prism/node.rb#11444 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#10816 + # source://prism//lib/prism/node.rb#11474 sig do params( keys: T::Array[Symbol] @@ -16899,7 +18821,7 @@ class Prism::MatchLastLineNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#10856 + # source://prism//lib/prism/node.rb#11499 sig { returns(T::Boolean) } def euc_jp?; end @@ -16907,28 +18829,52 @@ class Prism::MatchLastLineNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#10841 + # source://prism//lib/prism/node.rb#11484 sig { returns(T::Boolean) } def extended?; end + # def forced_binary_encoding?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#11524 + sig { returns(T::Boolean) } + def forced_binary_encoding?; end + + # def forced_us_ascii_encoding?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#11529 + sig { returns(T::Boolean) } + def forced_us_ascii_encoding?; end + + # def forced_utf8_encoding?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#11519 + sig { returns(T::Boolean) } + def forced_utf8_encoding?; end + # def ignore_case?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#10836 + # source://prism//lib/prism/node.rb#11479 sig { returns(T::Boolean) } def ignore_case?; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#10876 + # source://prism//lib/prism/node.rb#11549 def inspect(inspector = T.unsafe(nil)); end # def multi_line?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#10846 + # source://prism//lib/prism/node.rb#11489 sig { returns(T::Boolean) } def multi_line?; end @@ -16936,19 +18882,19 @@ class Prism::MatchLastLineNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#10851 + # source://prism//lib/prism/node.rb#11494 sig { returns(T::Boolean) } def once?; end # def opening: () -> String # - # source://prism//lib/prism/node.rb#10821 + # source://prism//lib/prism/node.rb#11534 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#10756 + # source://prism//lib/prism/node.rb#11417 sig { returns(Prism::Location) } def opening_loc; end @@ -16967,12 +18913,12 @@ class Prism::MatchLastLineNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#10901 + # source://prism//lib/prism/node.rb#11574 def type; end # attr_reader unescaped: String # - # source://prism//lib/prism/node.rb#10765 + # source://prism//lib/prism/node.rb#11426 sig { returns(String) } def unescaped; end @@ -16980,7 +18926,7 @@ class Prism::MatchLastLineNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#10871 + # source://prism//lib/prism/node.rb#11514 sig { returns(T::Boolean) } def utf_8?; end @@ -16988,7 +18934,7 @@ class Prism::MatchLastLineNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#10866 + # source://prism//lib/prism/node.rb#11509 sig { returns(T::Boolean) } def windows_31j?; end @@ -16996,7 +18942,7 @@ class Prism::MatchLastLineNode < ::Prism::Node # Returns the value of attribute flags. # - # source://prism//lib/prism/node.rb#10768 + # source://prism//lib/prism/node.rb#11414 sig { returns(Integer) } def flags; end @@ -17008,7 +18954,7 @@ class Prism::MatchLastLineNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#10911 + # source://prism//lib/prism/node.rb#11584 def type; end end end @@ -17018,13 +18964,13 @@ end # foo in bar # ^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#10920 +# source://prism//lib/prism/node.rb#11593 class Prism::MatchPredicateNode < ::Prism::Node # def initialize: (value: Node, pattern: Node, operator_loc: Location, location: Location) -> void # # @return [MatchPredicateNode] a new instance of MatchPredicateNode # - # source://prism//lib/prism/node.rb#10931 + # source://prism//lib/prism/node.rb#11604 sig do params( value: Prism::Node, @@ -17037,42 +18983,42 @@ class Prism::MatchPredicateNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#10939 + # source://prism//lib/prism/node.rb#11612 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#10944 + # source://prism//lib/prism/node.rb#11617 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#10954 + # source://prism//lib/prism/node.rb#11627 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#10949 + # source://prism//lib/prism/node.rb#11622 def compact_child_nodes; end # def copy: (**params) -> MatchPredicateNode # - # source://prism//lib/prism/node.rb#10959 + # source://prism//lib/prism/node.rb#11632 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//lib/prism/node.rb#10944 + # source://prism//lib/prism/node.rb#11617 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#10972 + # source://prism//lib/prism/node.rb#11645 sig do params( keys: T::Array[Symbol] @@ -17082,24 +19028,24 @@ class Prism::MatchPredicateNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#10982 + # source://prism//lib/prism/node.rb#11655 def inspect(inspector = T.unsafe(nil)); end # def operator: () -> String # - # source://prism//lib/prism/node.rb#10977 + # source://prism//lib/prism/node.rb#11650 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#10928 + # source://prism//lib/prism/node.rb#11601 sig { returns(Prism::Location) } def operator_loc; end # attr_reader pattern: Node # - # source://prism//lib/prism/node.rb#10925 + # source://prism//lib/prism/node.rb#11598 sig { returns(Prism::Node) } def pattern; end @@ -17118,12 +19064,12 @@ class Prism::MatchPredicateNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#11006 + # source://prism//lib/prism/node.rb#11679 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#10922 + # source://prism//lib/prism/node.rb#11595 sig { returns(Prism::Node) } def value; end @@ -17135,7 +19081,7 @@ class Prism::MatchPredicateNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#11016 + # source://prism//lib/prism/node.rb#11689 def type; end end end @@ -17145,13 +19091,13 @@ end # foo => bar # ^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#11025 +# source://prism//lib/prism/node.rb#11698 class Prism::MatchRequiredNode < ::Prism::Node # def initialize: (value: Node, pattern: Node, operator_loc: Location, location: Location) -> void # # @return [MatchRequiredNode] a new instance of MatchRequiredNode # - # source://prism//lib/prism/node.rb#11036 + # source://prism//lib/prism/node.rb#11709 sig do params( value: Prism::Node, @@ -17164,42 +19110,42 @@ class Prism::MatchRequiredNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#11044 + # source://prism//lib/prism/node.rb#11717 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#11049 + # source://prism//lib/prism/node.rb#11722 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#11059 + # source://prism//lib/prism/node.rb#11732 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#11054 + # source://prism//lib/prism/node.rb#11727 def compact_child_nodes; end # def copy: (**params) -> MatchRequiredNode # - # source://prism//lib/prism/node.rb#11064 + # source://prism//lib/prism/node.rb#11737 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//lib/prism/node.rb#11049 + # source://prism//lib/prism/node.rb#11722 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#11077 + # source://prism//lib/prism/node.rb#11750 sig do params( keys: T::Array[Symbol] @@ -17209,24 +19155,24 @@ class Prism::MatchRequiredNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#11087 + # source://prism//lib/prism/node.rb#11760 def inspect(inspector = T.unsafe(nil)); end # def operator: () -> String # - # source://prism//lib/prism/node.rb#11082 + # source://prism//lib/prism/node.rb#11755 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#11033 + # source://prism//lib/prism/node.rb#11706 sig { returns(Prism::Location) } def operator_loc; end # attr_reader pattern: Node # - # source://prism//lib/prism/node.rb#11030 + # source://prism//lib/prism/node.rb#11703 sig { returns(Prism::Node) } def pattern; end @@ -17245,12 +19191,12 @@ class Prism::MatchRequiredNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#11111 + # source://prism//lib/prism/node.rb#11784 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#11027 + # source://prism//lib/prism/node.rb#11700 sig { returns(Prism::Node) } def value; end @@ -17262,7 +19208,7 @@ class Prism::MatchRequiredNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#11121 + # source://prism//lib/prism/node.rb#11794 def type; end end end @@ -17273,60 +19219,60 @@ end # /(?bar)/ =~ baz # ^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#11131 +# source://prism//lib/prism/node.rb#11804 class Prism::MatchWriteNode < ::Prism::Node - # def initialize: (call: CallNode, locals: Array[Symbol], location: Location) -> void + # def initialize: (call: CallNode, targets: Array[Node], location: Location) -> void # # @return [MatchWriteNode] a new instance of MatchWriteNode # - # source://prism//lib/prism/node.rb#11139 - sig { params(call: Prism::CallNode, locals: T::Array[Symbol], location: Prism::Location).void } - def initialize(call, locals, location); end + # source://prism//lib/prism/node.rb#11812 + sig { params(call: Prism::CallNode, targets: T::Array[Prism::Node], location: Prism::Location).void } + def initialize(call, targets, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#11146 + # source://prism//lib/prism/node.rb#11819 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # attr_reader call: CallNode # - # source://prism//lib/prism/node.rb#11133 + # source://prism//lib/prism/node.rb#11806 sig { returns(Prism::CallNode) } def call; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#11151 + # source://prism//lib/prism/node.rb#11824 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#11161 + # source://prism//lib/prism/node.rb#11834 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#11156 + # source://prism//lib/prism/node.rb#11829 def compact_child_nodes; end # def copy: (**params) -> MatchWriteNode # - # source://prism//lib/prism/node.rb#11166 + # source://prism//lib/prism/node.rb#11839 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//lib/prism/node.rb#11151 + # source://prism//lib/prism/node.rb#11824 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#11178 + # source://prism//lib/prism/node.rb#11851 sig do params( keys: T::Array[Symbol] @@ -17336,14 +19282,14 @@ class Prism::MatchWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#11183 + # source://prism//lib/prism/node.rb#11856 def inspect(inspector = T.unsafe(nil)); end - # attr_reader locals: Array[Symbol] + # attr_reader targets: Array[Node] # - # source://prism//lib/prism/node.rb#11136 - sig { returns(T::Array[Symbol]) } - def locals; end + # source://prism//lib/prism/node.rb#11809 + 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 @@ -17360,7 +19306,7 @@ class Prism::MatchWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#11205 + # source://prism//lib/prism/node.rb#11878 def type; end class << self @@ -17371,7 +19317,7 @@ class Prism::MatchWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#11215 + # source://prism//lib/prism/node.rb#11888 def type; end end end @@ -17379,54 +19325,54 @@ end # Represents a node that is missing from the source and results in a syntax # error. # -# source://prism//lib/prism/node.rb#11222 +# source://prism//lib/prism/node.rb#11895 class Prism::MissingNode < ::Prism::Node # def initialize: (location: Location) -> void # # @return [MissingNode] a new instance of MissingNode # - # source://prism//lib/prism/node.rb#11224 + # source://prism//lib/prism/node.rb#11897 sig { params(location: Prism::Location).void } def initialize(location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#11229 + # source://prism//lib/prism/node.rb#11902 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#11234 + # source://prism//lib/prism/node.rb#11907 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#11244 + # source://prism//lib/prism/node.rb#11917 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#11239 + # source://prism//lib/prism/node.rb#11912 def compact_child_nodes; end # def copy: (**params) -> MissingNode # - # source://prism//lib/prism/node.rb#11249 + # source://prism//lib/prism/node.rb#11922 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//lib/prism/node.rb#11234 + # source://prism//lib/prism/node.rb#11907 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#11259 + # source://prism//lib/prism/node.rb#11932 sig do params( keys: T::Array[Symbol] @@ -17436,7 +19382,7 @@ class Prism::MissingNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#11264 + # source://prism//lib/prism/node.rb#11937 def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -17454,7 +19400,7 @@ class Prism::MissingNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#11283 + # source://prism//lib/prism/node.rb#11956 def type; end class << self @@ -17465,7 +19411,7 @@ class Prism::MissingNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#11293 + # source://prism//lib/prism/node.rb#11966 def type; end end end @@ -17475,13 +19421,13 @@ end # module Foo end # ^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#11302 +# source://prism//lib/prism/node.rb#11975 class Prism::ModuleNode < ::Prism::Node # def initialize: (locals: Array[Symbol], module_keyword_loc: Location, constant_path: Node, body: Node?, end_keyword_loc: Location, name: Symbol, location: Location) -> void # # @return [ModuleNode] a new instance of ModuleNode # - # source://prism//lib/prism/node.rb#11322 + # source://prism//lib/prism/node.rb#11995 sig do params( locals: T::Array[Symbol], @@ -17497,54 +19443,54 @@ class Prism::ModuleNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#11333 + # source://prism//lib/prism/node.rb#12006 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # attr_reader body: Node? # - # source://prism//lib/prism/node.rb#11313 + # source://prism//lib/prism/node.rb#11986 sig { returns(T.nilable(Prism::Node)) } def body; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#11338 + # source://prism//lib/prism/node.rb#12011 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#11351 + # source://prism//lib/prism/node.rb#12024 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#11343 + # source://prism//lib/prism/node.rb#12016 def compact_child_nodes; end # attr_reader constant_path: Node # - # source://prism//lib/prism/node.rb#11310 + # source://prism//lib/prism/node.rb#11983 sig { returns(Prism::Node) } def constant_path; end # def copy: (**params) -> ModuleNode # - # source://prism//lib/prism/node.rb#11356 + # source://prism//lib/prism/node.rb#12029 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//lib/prism/node.rb#11338 + # source://prism//lib/prism/node.rb#12011 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#11372 + # source://prism//lib/prism/node.rb#12045 sig do params( keys: T::Array[Symbol] @@ -17554,42 +19500,42 @@ class Prism::ModuleNode < ::Prism::Node # def end_keyword: () -> String # - # source://prism//lib/prism/node.rb#11382 + # source://prism//lib/prism/node.rb#12055 sig { returns(String) } def end_keyword; end # attr_reader end_keyword_loc: Location # - # source://prism//lib/prism/node.rb#11316 + # source://prism//lib/prism/node.rb#11989 sig { returns(Prism::Location) } def end_keyword_loc; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#11387 + # source://prism//lib/prism/node.rb#12060 def inspect(inspector = T.unsafe(nil)); end # attr_reader locals: Array[Symbol] # - # source://prism//lib/prism/node.rb#11304 + # source://prism//lib/prism/node.rb#11977 sig { returns(T::Array[Symbol]) } def locals; end # def module_keyword: () -> String # - # source://prism//lib/prism/node.rb#11377 + # source://prism//lib/prism/node.rb#12050 sig { returns(String) } def module_keyword; end # attr_reader module_keyword_loc: Location # - # source://prism//lib/prism/node.rb#11307 + # source://prism//lib/prism/node.rb#11980 sig { returns(Prism::Location) } def module_keyword_loc; end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#11319 + # source://prism//lib/prism/node.rb#11992 sig { returns(Symbol) } def name; end @@ -17608,7 +19554,7 @@ class Prism::ModuleNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#11418 + # source://prism//lib/prism/node.rb#12091 def type; end class << self @@ -17619,7 +19565,7 @@ class Prism::ModuleNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#11428 + # source://prism//lib/prism/node.rb#12101 def type; end end end @@ -17629,13 +19575,13 @@ end # a, (b, c) = 1, 2, 3 # ^^^^^^ # -# source://prism//lib/prism/node.rb#11437 +# source://prism//lib/prism/node.rb#12110 class Prism::MultiTargetNode < ::Prism::Node # def initialize: (lefts: Array[Node], rest: Node?, rights: Array[Node], lparen_loc: Location?, rparen_loc: Location?, location: Location) -> void # # @return [MultiTargetNode] a new instance of MultiTargetNode # - # source://prism//lib/prism/node.rb#11454 + # source://prism//lib/prism/node.rb#12127 sig do params( lefts: T::Array[Prism::Node], @@ -17650,42 +19596,42 @@ class Prism::MultiTargetNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#11464 + # source://prism//lib/prism/node.rb#12137 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#11469 + # source://prism//lib/prism/node.rb#12142 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#11483 + # source://prism//lib/prism/node.rb#12156 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#11474 + # source://prism//lib/prism/node.rb#12147 def compact_child_nodes; end # def copy: (**params) -> MultiTargetNode # - # source://prism//lib/prism/node.rb#11488 + # source://prism//lib/prism/node.rb#12161 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//lib/prism/node.rb#11469 + # source://prism//lib/prism/node.rb#12142 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#11503 + # source://prism//lib/prism/node.rb#12176 sig do params( keys: T::Array[Symbol] @@ -17695,48 +19641,48 @@ class Prism::MultiTargetNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#11518 + # source://prism//lib/prism/node.rb#12191 def inspect(inspector = T.unsafe(nil)); end # attr_reader lefts: Array[Node] # - # source://prism//lib/prism/node.rb#11439 + # source://prism//lib/prism/node.rb#12112 sig { returns(T::Array[Prism::Node]) } def lefts; end # def lparen: () -> String? # - # source://prism//lib/prism/node.rb#11508 + # source://prism//lib/prism/node.rb#12181 sig { returns(T.nilable(String)) } def lparen; end # attr_reader lparen_loc: Location? # - # source://prism//lib/prism/node.rb#11448 + # source://prism//lib/prism/node.rb#12121 sig { returns(T.nilable(Prism::Location)) } def lparen_loc; end # attr_reader rest: Node? # - # source://prism//lib/prism/node.rb#11442 + # source://prism//lib/prism/node.rb#12115 sig { returns(T.nilable(Prism::Node)) } def rest; end # attr_reader rights: Array[Node] # - # source://prism//lib/prism/node.rb#11445 + # source://prism//lib/prism/node.rb#12118 sig { returns(T::Array[Prism::Node]) } def rights; end # def rparen: () -> String? # - # source://prism//lib/prism/node.rb#11513 + # source://prism//lib/prism/node.rb#12186 sig { returns(T.nilable(String)) } def rparen; end # attr_reader rparen_loc: Location? # - # source://prism//lib/prism/node.rb#11451 + # source://prism//lib/prism/node.rb#12124 sig { returns(T.nilable(Prism::Location)) } def rparen_loc; end @@ -17755,7 +19701,7 @@ class Prism::MultiTargetNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#11547 + # source://prism//lib/prism/node.rb#12220 def type; end class << self @@ -17766,7 +19712,7 @@ class Prism::MultiTargetNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#11557 + # source://prism//lib/prism/node.rb#12230 def type; end end end @@ -17776,13 +19722,13 @@ end # a, b, c = 1, 2, 3 # ^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#11566 +# source://prism//lib/prism/node.rb#12239 class Prism::MultiWriteNode < ::Prism::Node # def initialize: (lefts: Array[Node], rest: Node?, rights: Array[Node], lparen_loc: Location?, rparen_loc: Location?, operator_loc: Location, value: Node, location: Location) -> void # # @return [MultiWriteNode] a new instance of MultiWriteNode # - # source://prism//lib/prism/node.rb#11589 + # source://prism//lib/prism/node.rb#12262 sig do params( lefts: T::Array[Prism::Node], @@ -17799,42 +19745,42 @@ class Prism::MultiWriteNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#11601 + # source://prism//lib/prism/node.rb#12274 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#11606 + # source://prism//lib/prism/node.rb#12279 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#11621 + # source://prism//lib/prism/node.rb#12294 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#11611 + # source://prism//lib/prism/node.rb#12284 def compact_child_nodes; end # def copy: (**params) -> MultiWriteNode # - # source://prism//lib/prism/node.rb#11626 + # source://prism//lib/prism/node.rb#12299 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//lib/prism/node.rb#11606 + # source://prism//lib/prism/node.rb#12279 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#11643 + # source://prism//lib/prism/node.rb#12316 sig do params( keys: T::Array[Symbol] @@ -17844,60 +19790,60 @@ class Prism::MultiWriteNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#11663 + # source://prism//lib/prism/node.rb#12336 def inspect(inspector = T.unsafe(nil)); end # attr_reader lefts: Array[Node] # - # source://prism//lib/prism/node.rb#11568 + # source://prism//lib/prism/node.rb#12241 sig { returns(T::Array[Prism::Node]) } def lefts; end # def lparen: () -> String? # - # source://prism//lib/prism/node.rb#11648 + # source://prism//lib/prism/node.rb#12321 sig { returns(T.nilable(String)) } def lparen; end # attr_reader lparen_loc: Location? # - # source://prism//lib/prism/node.rb#11577 + # source://prism//lib/prism/node.rb#12250 sig { returns(T.nilable(Prism::Location)) } def lparen_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#11658 + # source://prism//lib/prism/node.rb#12331 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#11583 + # source://prism//lib/prism/node.rb#12256 sig { returns(Prism::Location) } def operator_loc; end # attr_reader rest: Node? # - # source://prism//lib/prism/node.rb#11571 + # source://prism//lib/prism/node.rb#12244 sig { returns(T.nilable(Prism::Node)) } def rest; end # attr_reader rights: Array[Node] # - # source://prism//lib/prism/node.rb#11574 + # source://prism//lib/prism/node.rb#12247 sig { returns(T::Array[Prism::Node]) } def rights; end # def rparen: () -> String? # - # source://prism//lib/prism/node.rb#11653 + # source://prism//lib/prism/node.rb#12326 sig { returns(T.nilable(String)) } def rparen; end # attr_reader rparen_loc: Location? # - # source://prism//lib/prism/node.rb#11580 + # source://prism//lib/prism/node.rb#12253 sig { returns(T.nilable(Prism::Location)) } def rparen_loc; end @@ -17916,12 +19862,12 @@ class Prism::MultiWriteNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#11695 + # source://prism//lib/prism/node.rb#12368 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#11586 + # source://prism//lib/prism/node.rb#12259 sig { returns(Prism::Node) } def value; end @@ -17933,7 +19879,7 @@ class Prism::MultiWriteNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#11705 + # source://prism//lib/prism/node.rb#12378 def type; end end end @@ -18049,619 +19995,639 @@ class Prism::MutationCompiler < ::Prism::Compiler # source://prism//lib/prism/mutation_compiler.rb#114 def visit_call_or_write_node(node); end - # Copy a CapturePatternNode node + # Copy a CallTargetNode node # # source://prism//lib/prism/mutation_compiler.rb#119 + def visit_call_target_node(node); end + + # Copy a CapturePatternNode node + # + # source://prism//lib/prism/mutation_compiler.rb#124 def visit_capture_pattern_node(node); end + # Copy a CaseMatchNode node + # + # source://prism//lib/prism/mutation_compiler.rb#129 + def visit_case_match_node(node); end + # Copy a CaseNode node # - # source://prism//lib/prism/mutation_compiler.rb#124 + # source://prism//lib/prism/mutation_compiler.rb#134 def visit_case_node(node); end # Copy a ClassNode node # - # source://prism//lib/prism/mutation_compiler.rb#129 + # source://prism//lib/prism/mutation_compiler.rb#139 def visit_class_node(node); end # Copy a ClassVariableAndWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#134 + # source://prism//lib/prism/mutation_compiler.rb#144 def visit_class_variable_and_write_node(node); end # Copy a ClassVariableOperatorWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#139 + # source://prism//lib/prism/mutation_compiler.rb#149 def visit_class_variable_operator_write_node(node); end # Copy a ClassVariableOrWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#144 + # source://prism//lib/prism/mutation_compiler.rb#154 def visit_class_variable_or_write_node(node); end # Copy a ClassVariableReadNode node # - # source://prism//lib/prism/mutation_compiler.rb#149 + # source://prism//lib/prism/mutation_compiler.rb#159 def visit_class_variable_read_node(node); end # Copy a ClassVariableTargetNode node # - # source://prism//lib/prism/mutation_compiler.rb#154 + # source://prism//lib/prism/mutation_compiler.rb#164 def visit_class_variable_target_node(node); end # Copy a ClassVariableWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#159 + # source://prism//lib/prism/mutation_compiler.rb#169 def visit_class_variable_write_node(node); end # Copy a ConstantAndWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#164 + # source://prism//lib/prism/mutation_compiler.rb#174 def visit_constant_and_write_node(node); end # Copy a ConstantOperatorWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#169 + # source://prism//lib/prism/mutation_compiler.rb#179 def visit_constant_operator_write_node(node); end # Copy a ConstantOrWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#174 + # source://prism//lib/prism/mutation_compiler.rb#184 def visit_constant_or_write_node(node); end # Copy a ConstantPathAndWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#179 + # source://prism//lib/prism/mutation_compiler.rb#189 def visit_constant_path_and_write_node(node); end # Copy a ConstantPathNode node # - # source://prism//lib/prism/mutation_compiler.rb#184 + # source://prism//lib/prism/mutation_compiler.rb#194 def visit_constant_path_node(node); end # Copy a ConstantPathOperatorWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#189 + # source://prism//lib/prism/mutation_compiler.rb#199 def visit_constant_path_operator_write_node(node); end # Copy a ConstantPathOrWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#194 + # source://prism//lib/prism/mutation_compiler.rb#204 def visit_constant_path_or_write_node(node); end # Copy a ConstantPathTargetNode node # - # source://prism//lib/prism/mutation_compiler.rb#199 + # source://prism//lib/prism/mutation_compiler.rb#209 def visit_constant_path_target_node(node); end # Copy a ConstantPathWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#204 + # source://prism//lib/prism/mutation_compiler.rb#214 def visit_constant_path_write_node(node); end # Copy a ConstantReadNode node # - # source://prism//lib/prism/mutation_compiler.rb#209 + # source://prism//lib/prism/mutation_compiler.rb#219 def visit_constant_read_node(node); end # Copy a ConstantTargetNode node # - # source://prism//lib/prism/mutation_compiler.rb#214 + # source://prism//lib/prism/mutation_compiler.rb#224 def visit_constant_target_node(node); end # Copy a ConstantWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#219 + # source://prism//lib/prism/mutation_compiler.rb#229 def visit_constant_write_node(node); end # Copy a DefNode node # - # source://prism//lib/prism/mutation_compiler.rb#224 + # source://prism//lib/prism/mutation_compiler.rb#234 def visit_def_node(node); end # Copy a DefinedNode node # - # source://prism//lib/prism/mutation_compiler.rb#229 + # source://prism//lib/prism/mutation_compiler.rb#239 def visit_defined_node(node); end # Copy a ElseNode node # - # source://prism//lib/prism/mutation_compiler.rb#234 + # source://prism//lib/prism/mutation_compiler.rb#244 def visit_else_node(node); end # Copy a EmbeddedStatementsNode node # - # source://prism//lib/prism/mutation_compiler.rb#239 + # source://prism//lib/prism/mutation_compiler.rb#249 def visit_embedded_statements_node(node); end # Copy a EmbeddedVariableNode node # - # source://prism//lib/prism/mutation_compiler.rb#244 + # source://prism//lib/prism/mutation_compiler.rb#254 def visit_embedded_variable_node(node); end # Copy a EnsureNode node # - # source://prism//lib/prism/mutation_compiler.rb#249 + # source://prism//lib/prism/mutation_compiler.rb#259 def visit_ensure_node(node); end # Copy a FalseNode node # - # source://prism//lib/prism/mutation_compiler.rb#254 + # source://prism//lib/prism/mutation_compiler.rb#264 def visit_false_node(node); end # Copy a FindPatternNode node # - # source://prism//lib/prism/mutation_compiler.rb#259 + # source://prism//lib/prism/mutation_compiler.rb#269 def visit_find_pattern_node(node); end # Copy a FlipFlopNode node # - # source://prism//lib/prism/mutation_compiler.rb#264 + # source://prism//lib/prism/mutation_compiler.rb#274 def visit_flip_flop_node(node); end # Copy a FloatNode node # - # source://prism//lib/prism/mutation_compiler.rb#269 + # source://prism//lib/prism/mutation_compiler.rb#279 def visit_float_node(node); end # Copy a ForNode node # - # source://prism//lib/prism/mutation_compiler.rb#274 + # source://prism//lib/prism/mutation_compiler.rb#284 def visit_for_node(node); end # Copy a ForwardingArgumentsNode node # - # source://prism//lib/prism/mutation_compiler.rb#279 + # source://prism//lib/prism/mutation_compiler.rb#289 def visit_forwarding_arguments_node(node); end # Copy a ForwardingParameterNode node # - # source://prism//lib/prism/mutation_compiler.rb#284 + # source://prism//lib/prism/mutation_compiler.rb#294 def visit_forwarding_parameter_node(node); end # Copy a ForwardingSuperNode node # - # source://prism//lib/prism/mutation_compiler.rb#289 + # source://prism//lib/prism/mutation_compiler.rb#299 def visit_forwarding_super_node(node); end # Copy a GlobalVariableAndWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#294 + # source://prism//lib/prism/mutation_compiler.rb#304 def visit_global_variable_and_write_node(node); end # Copy a GlobalVariableOperatorWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#299 + # source://prism//lib/prism/mutation_compiler.rb#309 def visit_global_variable_operator_write_node(node); end # Copy a GlobalVariableOrWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#304 + # source://prism//lib/prism/mutation_compiler.rb#314 def visit_global_variable_or_write_node(node); end # Copy a GlobalVariableReadNode node # - # source://prism//lib/prism/mutation_compiler.rb#309 + # source://prism//lib/prism/mutation_compiler.rb#319 def visit_global_variable_read_node(node); end # Copy a GlobalVariableTargetNode node # - # source://prism//lib/prism/mutation_compiler.rb#314 + # source://prism//lib/prism/mutation_compiler.rb#324 def visit_global_variable_target_node(node); end # Copy a GlobalVariableWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#319 + # source://prism//lib/prism/mutation_compiler.rb#329 def visit_global_variable_write_node(node); end # Copy a HashNode node # - # source://prism//lib/prism/mutation_compiler.rb#324 + # source://prism//lib/prism/mutation_compiler.rb#334 def visit_hash_node(node); end # Copy a HashPatternNode node # - # source://prism//lib/prism/mutation_compiler.rb#329 + # source://prism//lib/prism/mutation_compiler.rb#339 def visit_hash_pattern_node(node); end # Copy a IfNode node # - # source://prism//lib/prism/mutation_compiler.rb#334 + # source://prism//lib/prism/mutation_compiler.rb#344 def visit_if_node(node); end # Copy a ImaginaryNode node # - # source://prism//lib/prism/mutation_compiler.rb#339 + # source://prism//lib/prism/mutation_compiler.rb#349 def visit_imaginary_node(node); end # Copy a ImplicitNode node # - # source://prism//lib/prism/mutation_compiler.rb#344 + # source://prism//lib/prism/mutation_compiler.rb#354 def visit_implicit_node(node); end + # Copy a ImplicitRestNode node + # + # source://prism//lib/prism/mutation_compiler.rb#359 + def visit_implicit_rest_node(node); end + # Copy a InNode node # - # source://prism//lib/prism/mutation_compiler.rb#349 + # source://prism//lib/prism/mutation_compiler.rb#364 def visit_in_node(node); end # Copy a IndexAndWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#354 + # source://prism//lib/prism/mutation_compiler.rb#369 def visit_index_and_write_node(node); end # Copy a IndexOperatorWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#359 + # source://prism//lib/prism/mutation_compiler.rb#374 def visit_index_operator_write_node(node); end # Copy a IndexOrWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#364 + # source://prism//lib/prism/mutation_compiler.rb#379 def visit_index_or_write_node(node); end + # Copy a IndexTargetNode node + # + # source://prism//lib/prism/mutation_compiler.rb#384 + def visit_index_target_node(node); end + # Copy a InstanceVariableAndWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#369 + # source://prism//lib/prism/mutation_compiler.rb#389 def visit_instance_variable_and_write_node(node); end # Copy a InstanceVariableOperatorWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#374 + # source://prism//lib/prism/mutation_compiler.rb#394 def visit_instance_variable_operator_write_node(node); end # Copy a InstanceVariableOrWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#379 + # source://prism//lib/prism/mutation_compiler.rb#399 def visit_instance_variable_or_write_node(node); end # Copy a InstanceVariableReadNode node # - # source://prism//lib/prism/mutation_compiler.rb#384 + # source://prism//lib/prism/mutation_compiler.rb#404 def visit_instance_variable_read_node(node); end # Copy a InstanceVariableTargetNode node # - # source://prism//lib/prism/mutation_compiler.rb#389 + # source://prism//lib/prism/mutation_compiler.rb#409 def visit_instance_variable_target_node(node); end # Copy a InstanceVariableWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#394 + # source://prism//lib/prism/mutation_compiler.rb#414 def visit_instance_variable_write_node(node); end # Copy a IntegerNode node # - # source://prism//lib/prism/mutation_compiler.rb#399 + # source://prism//lib/prism/mutation_compiler.rb#419 def visit_integer_node(node); end # Copy a InterpolatedMatchLastLineNode node # - # source://prism//lib/prism/mutation_compiler.rb#404 + # source://prism//lib/prism/mutation_compiler.rb#424 def visit_interpolated_match_last_line_node(node); end # Copy a InterpolatedRegularExpressionNode node # - # source://prism//lib/prism/mutation_compiler.rb#409 + # source://prism//lib/prism/mutation_compiler.rb#429 def visit_interpolated_regular_expression_node(node); end # Copy a InterpolatedStringNode node # - # source://prism//lib/prism/mutation_compiler.rb#414 + # source://prism//lib/prism/mutation_compiler.rb#434 def visit_interpolated_string_node(node); end # Copy a InterpolatedSymbolNode node # - # source://prism//lib/prism/mutation_compiler.rb#419 + # source://prism//lib/prism/mutation_compiler.rb#439 def visit_interpolated_symbol_node(node); end # Copy a InterpolatedXStringNode node # - # source://prism//lib/prism/mutation_compiler.rb#424 + # source://prism//lib/prism/mutation_compiler.rb#444 def visit_interpolated_x_string_node(node); end # Copy a KeywordHashNode node # - # source://prism//lib/prism/mutation_compiler.rb#429 + # source://prism//lib/prism/mutation_compiler.rb#449 def visit_keyword_hash_node(node); end # Copy a KeywordRestParameterNode node # - # source://prism//lib/prism/mutation_compiler.rb#434 + # source://prism//lib/prism/mutation_compiler.rb#454 def visit_keyword_rest_parameter_node(node); end # Copy a LambdaNode node # - # source://prism//lib/prism/mutation_compiler.rb#439 + # source://prism//lib/prism/mutation_compiler.rb#459 def visit_lambda_node(node); end # Copy a LocalVariableAndWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#444 + # source://prism//lib/prism/mutation_compiler.rb#464 def visit_local_variable_and_write_node(node); end # Copy a LocalVariableOperatorWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#449 + # source://prism//lib/prism/mutation_compiler.rb#469 def visit_local_variable_operator_write_node(node); end # Copy a LocalVariableOrWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#454 + # source://prism//lib/prism/mutation_compiler.rb#474 def visit_local_variable_or_write_node(node); end # Copy a LocalVariableReadNode node # - # source://prism//lib/prism/mutation_compiler.rb#459 + # source://prism//lib/prism/mutation_compiler.rb#479 def visit_local_variable_read_node(node); end # Copy a LocalVariableTargetNode node # - # source://prism//lib/prism/mutation_compiler.rb#464 + # source://prism//lib/prism/mutation_compiler.rb#484 def visit_local_variable_target_node(node); end # Copy a LocalVariableWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#469 + # source://prism//lib/prism/mutation_compiler.rb#489 def visit_local_variable_write_node(node); end # Copy a MatchLastLineNode node # - # source://prism//lib/prism/mutation_compiler.rb#474 + # source://prism//lib/prism/mutation_compiler.rb#494 def visit_match_last_line_node(node); end # Copy a MatchPredicateNode node # - # source://prism//lib/prism/mutation_compiler.rb#479 + # source://prism//lib/prism/mutation_compiler.rb#499 def visit_match_predicate_node(node); end # Copy a MatchRequiredNode node # - # source://prism//lib/prism/mutation_compiler.rb#484 + # source://prism//lib/prism/mutation_compiler.rb#504 def visit_match_required_node(node); end # Copy a MatchWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#489 + # source://prism//lib/prism/mutation_compiler.rb#509 def visit_match_write_node(node); end # Copy a MissingNode node # - # source://prism//lib/prism/mutation_compiler.rb#494 + # source://prism//lib/prism/mutation_compiler.rb#514 def visit_missing_node(node); end # Copy a ModuleNode node # - # source://prism//lib/prism/mutation_compiler.rb#499 + # source://prism//lib/prism/mutation_compiler.rb#519 def visit_module_node(node); end # Copy a MultiTargetNode node # - # source://prism//lib/prism/mutation_compiler.rb#504 + # source://prism//lib/prism/mutation_compiler.rb#524 def visit_multi_target_node(node); end # Copy a MultiWriteNode node # - # source://prism//lib/prism/mutation_compiler.rb#509 + # source://prism//lib/prism/mutation_compiler.rb#529 def visit_multi_write_node(node); end # Copy a NextNode node # - # source://prism//lib/prism/mutation_compiler.rb#514 + # source://prism//lib/prism/mutation_compiler.rb#534 def visit_next_node(node); end # Copy a NilNode node # - # source://prism//lib/prism/mutation_compiler.rb#519 + # source://prism//lib/prism/mutation_compiler.rb#539 def visit_nil_node(node); end # Copy a NoKeywordsParameterNode node # - # source://prism//lib/prism/mutation_compiler.rb#524 + # source://prism//lib/prism/mutation_compiler.rb#544 def visit_no_keywords_parameter_node(node); end + # Copy a NumberedParametersNode node + # + # source://prism//lib/prism/mutation_compiler.rb#549 + def visit_numbered_parameters_node(node); end + # Copy a NumberedReferenceReadNode node # - # source://prism//lib/prism/mutation_compiler.rb#529 + # source://prism//lib/prism/mutation_compiler.rb#554 def visit_numbered_reference_read_node(node); end # Copy a OptionalKeywordParameterNode node # - # source://prism//lib/prism/mutation_compiler.rb#534 + # source://prism//lib/prism/mutation_compiler.rb#559 def visit_optional_keyword_parameter_node(node); end # Copy a OptionalParameterNode node # - # source://prism//lib/prism/mutation_compiler.rb#539 + # source://prism//lib/prism/mutation_compiler.rb#564 def visit_optional_parameter_node(node); end # Copy a OrNode node # - # source://prism//lib/prism/mutation_compiler.rb#544 + # source://prism//lib/prism/mutation_compiler.rb#569 def visit_or_node(node); end # Copy a ParametersNode node # - # source://prism//lib/prism/mutation_compiler.rb#549 + # source://prism//lib/prism/mutation_compiler.rb#574 def visit_parameters_node(node); end # Copy a ParenthesesNode node # - # source://prism//lib/prism/mutation_compiler.rb#554 + # source://prism//lib/prism/mutation_compiler.rb#579 def visit_parentheses_node(node); end # Copy a PinnedExpressionNode node # - # source://prism//lib/prism/mutation_compiler.rb#559 + # source://prism//lib/prism/mutation_compiler.rb#584 def visit_pinned_expression_node(node); end # Copy a PinnedVariableNode node # - # source://prism//lib/prism/mutation_compiler.rb#564 + # source://prism//lib/prism/mutation_compiler.rb#589 def visit_pinned_variable_node(node); end # Copy a PostExecutionNode node # - # source://prism//lib/prism/mutation_compiler.rb#569 + # source://prism//lib/prism/mutation_compiler.rb#594 def visit_post_execution_node(node); end # Copy a PreExecutionNode node # - # source://prism//lib/prism/mutation_compiler.rb#574 + # source://prism//lib/prism/mutation_compiler.rb#599 def visit_pre_execution_node(node); end # Copy a ProgramNode node # - # source://prism//lib/prism/mutation_compiler.rb#579 + # source://prism//lib/prism/mutation_compiler.rb#604 def visit_program_node(node); end # Copy a RangeNode node # - # source://prism//lib/prism/mutation_compiler.rb#584 + # source://prism//lib/prism/mutation_compiler.rb#609 def visit_range_node(node); end # Copy a RationalNode node # - # source://prism//lib/prism/mutation_compiler.rb#589 + # source://prism//lib/prism/mutation_compiler.rb#614 def visit_rational_node(node); end # Copy a RedoNode node # - # source://prism//lib/prism/mutation_compiler.rb#594 + # source://prism//lib/prism/mutation_compiler.rb#619 def visit_redo_node(node); end # Copy a RegularExpressionNode node # - # source://prism//lib/prism/mutation_compiler.rb#599 + # source://prism//lib/prism/mutation_compiler.rb#624 def visit_regular_expression_node(node); end # Copy a RequiredKeywordParameterNode node # - # source://prism//lib/prism/mutation_compiler.rb#604 + # source://prism//lib/prism/mutation_compiler.rb#629 def visit_required_keyword_parameter_node(node); end # Copy a RequiredParameterNode node # - # source://prism//lib/prism/mutation_compiler.rb#609 + # source://prism//lib/prism/mutation_compiler.rb#634 def visit_required_parameter_node(node); end # Copy a RescueModifierNode node # - # source://prism//lib/prism/mutation_compiler.rb#614 + # source://prism//lib/prism/mutation_compiler.rb#639 def visit_rescue_modifier_node(node); end # Copy a RescueNode node # - # source://prism//lib/prism/mutation_compiler.rb#619 + # source://prism//lib/prism/mutation_compiler.rb#644 def visit_rescue_node(node); end # Copy a RestParameterNode node # - # source://prism//lib/prism/mutation_compiler.rb#624 + # source://prism//lib/prism/mutation_compiler.rb#649 def visit_rest_parameter_node(node); end # Copy a RetryNode node # - # source://prism//lib/prism/mutation_compiler.rb#629 + # source://prism//lib/prism/mutation_compiler.rb#654 def visit_retry_node(node); end # Copy a ReturnNode node # - # source://prism//lib/prism/mutation_compiler.rb#634 + # source://prism//lib/prism/mutation_compiler.rb#659 def visit_return_node(node); end # Copy a SelfNode node # - # source://prism//lib/prism/mutation_compiler.rb#639 + # source://prism//lib/prism/mutation_compiler.rb#664 def visit_self_node(node); end # Copy a SingletonClassNode node # - # source://prism//lib/prism/mutation_compiler.rb#644 + # source://prism//lib/prism/mutation_compiler.rb#669 def visit_singleton_class_node(node); end # Copy a SourceEncodingNode node # - # source://prism//lib/prism/mutation_compiler.rb#649 + # source://prism//lib/prism/mutation_compiler.rb#674 def visit_source_encoding_node(node); end # Copy a SourceFileNode node # - # source://prism//lib/prism/mutation_compiler.rb#654 + # source://prism//lib/prism/mutation_compiler.rb#679 def visit_source_file_node(node); end # Copy a SourceLineNode node # - # source://prism//lib/prism/mutation_compiler.rb#659 + # source://prism//lib/prism/mutation_compiler.rb#684 def visit_source_line_node(node); end # Copy a SplatNode node # - # source://prism//lib/prism/mutation_compiler.rb#664 + # source://prism//lib/prism/mutation_compiler.rb#689 def visit_splat_node(node); end # Copy a StatementsNode node # - # source://prism//lib/prism/mutation_compiler.rb#669 + # source://prism//lib/prism/mutation_compiler.rb#694 def visit_statements_node(node); end - # Copy a StringConcatNode node - # - # source://prism//lib/prism/mutation_compiler.rb#674 - def visit_string_concat_node(node); end - # Copy a StringNode node # - # source://prism//lib/prism/mutation_compiler.rb#679 + # source://prism//lib/prism/mutation_compiler.rb#699 def visit_string_node(node); end # Copy a SuperNode node # - # source://prism//lib/prism/mutation_compiler.rb#684 + # source://prism//lib/prism/mutation_compiler.rb#704 def visit_super_node(node); end # Copy a SymbolNode node # - # source://prism//lib/prism/mutation_compiler.rb#689 + # source://prism//lib/prism/mutation_compiler.rb#709 def visit_symbol_node(node); end # Copy a TrueNode node # - # source://prism//lib/prism/mutation_compiler.rb#694 + # source://prism//lib/prism/mutation_compiler.rb#714 def visit_true_node(node); end # Copy a UndefNode node # - # source://prism//lib/prism/mutation_compiler.rb#699 + # source://prism//lib/prism/mutation_compiler.rb#719 def visit_undef_node(node); end # Copy a UnlessNode node # - # source://prism//lib/prism/mutation_compiler.rb#704 + # source://prism//lib/prism/mutation_compiler.rb#724 def visit_unless_node(node); end # Copy a UntilNode node # - # source://prism//lib/prism/mutation_compiler.rb#709 + # source://prism//lib/prism/mutation_compiler.rb#729 def visit_until_node(node); end # Copy a WhenNode node # - # source://prism//lib/prism/mutation_compiler.rb#714 + # source://prism//lib/prism/mutation_compiler.rb#734 def visit_when_node(node); end # Copy a WhileNode node # - # source://prism//lib/prism/mutation_compiler.rb#719 + # source://prism//lib/prism/mutation_compiler.rb#739 def visit_while_node(node); end # Copy a XStringNode node # - # source://prism//lib/prism/mutation_compiler.rb#724 + # source://prism//lib/prism/mutation_compiler.rb#744 def visit_x_string_node(node); end # Copy a YieldNode node # - # source://prism//lib/prism/mutation_compiler.rb#729 + # source://prism//lib/prism/mutation_compiler.rb#749 def visit_yield_node(node); end end @@ -18670,13 +20636,13 @@ end # next 1 # ^^^^^^ # -# source://prism//lib/prism/node.rb#11714 +# source://prism//lib/prism/node.rb#12387 class Prism::NextNode < ::Prism::Node # def initialize: (arguments: ArgumentsNode?, keyword_loc: Location, location: Location) -> void # # @return [NextNode] a new instance of NextNode # - # source://prism//lib/prism/node.rb#11722 + # source://prism//lib/prism/node.rb#12395 sig do params( arguments: T.nilable(Prism::ArgumentsNode), @@ -18688,48 +20654,48 @@ class Prism::NextNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#11729 + # source://prism//lib/prism/node.rb#12402 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # attr_reader arguments: ArgumentsNode? # - # source://prism//lib/prism/node.rb#11716 + # source://prism//lib/prism/node.rb#12389 sig { returns(T.nilable(Prism::ArgumentsNode)) } def arguments; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#11734 + # source://prism//lib/prism/node.rb#12407 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#11746 + # source://prism//lib/prism/node.rb#12419 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#11739 + # source://prism//lib/prism/node.rb#12412 def compact_child_nodes; end # def copy: (**params) -> NextNode # - # source://prism//lib/prism/node.rb#11751 + # source://prism//lib/prism/node.rb#12424 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//lib/prism/node.rb#11734 + # source://prism//lib/prism/node.rb#12407 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#11763 + # source://prism//lib/prism/node.rb#12436 sig do params( keys: T::Array[Symbol] @@ -18739,18 +20705,18 @@ class Prism::NextNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#11773 + # source://prism//lib/prism/node.rb#12446 def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#11768 + # source://prism//lib/prism/node.rb#12441 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#11719 + # source://prism//lib/prism/node.rb#12392 sig { returns(Prism::Location) } def keyword_loc; end @@ -18769,7 +20735,7 @@ class Prism::NextNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#11799 + # source://prism//lib/prism/node.rb#12472 def type; end class << self @@ -18780,7 +20746,7 @@ class Prism::NextNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#11809 + # source://prism//lib/prism/node.rb#12482 def type; end end end @@ -18790,54 +20756,54 @@ end # nil # ^^^ # -# source://prism//lib/prism/node.rb#11818 +# source://prism//lib/prism/node.rb#12491 class Prism::NilNode < ::Prism::Node # def initialize: (location: Location) -> void # # @return [NilNode] a new instance of NilNode # - # source://prism//lib/prism/node.rb#11820 + # source://prism//lib/prism/node.rb#12493 sig { params(location: Prism::Location).void } def initialize(location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#11825 + # source://prism//lib/prism/node.rb#12498 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#11830 + # source://prism//lib/prism/node.rb#12503 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#11840 + # source://prism//lib/prism/node.rb#12513 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#11835 + # source://prism//lib/prism/node.rb#12508 def compact_child_nodes; end # def copy: (**params) -> NilNode # - # source://prism//lib/prism/node.rb#11845 + # source://prism//lib/prism/node.rb#12518 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//lib/prism/node.rb#11830 + # source://prism//lib/prism/node.rb#12503 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#11855 + # source://prism//lib/prism/node.rb#12528 sig do params( keys: T::Array[Symbol] @@ -18847,7 +20813,7 @@ class Prism::NilNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#11860 + # source://prism//lib/prism/node.rb#12533 def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -18865,7 +20831,7 @@ class Prism::NilNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#11879 + # source://prism//lib/prism/node.rb#12552 def type; end class << self @@ -18876,7 +20842,7 @@ class Prism::NilNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#11889 + # source://prism//lib/prism/node.rb#12562 def type; end end end @@ -18887,54 +20853,54 @@ end # ^^^^^ # end # -# source://prism//lib/prism/node.rb#11899 +# source://prism//lib/prism/node.rb#12572 class Prism::NoKeywordsParameterNode < ::Prism::Node # def initialize: (operator_loc: Location, keyword_loc: Location, location: Location) -> void # # @return [NoKeywordsParameterNode] a new instance of NoKeywordsParameterNode # - # source://prism//lib/prism/node.rb#11907 + # source://prism//lib/prism/node.rb#12580 sig { params(operator_loc: Prism::Location, keyword_loc: Prism::Location, location: Prism::Location).void } def initialize(operator_loc, keyword_loc, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#11914 + # source://prism//lib/prism/node.rb#12587 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#11919 + # source://prism//lib/prism/node.rb#12592 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#11929 + # source://prism//lib/prism/node.rb#12602 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#11924 + # source://prism//lib/prism/node.rb#12597 def compact_child_nodes; end # def copy: (**params) -> NoKeywordsParameterNode # - # source://prism//lib/prism/node.rb#11934 + # source://prism//lib/prism/node.rb#12607 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//lib/prism/node.rb#11919 + # source://prism//lib/prism/node.rb#12592 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#11946 + # source://prism//lib/prism/node.rb#12619 sig do params( keys: T::Array[Symbol] @@ -18944,30 +20910,30 @@ class Prism::NoKeywordsParameterNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#11961 + # source://prism//lib/prism/node.rb#12634 def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#11956 + # source://prism//lib/prism/node.rb#12629 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#11904 + # source://prism//lib/prism/node.rb#12577 sig { returns(Prism::Location) } def keyword_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#11951 + # source://prism//lib/prism/node.rb#12624 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#11901 + # source://prism//lib/prism/node.rb#12574 sig { returns(Prism::Location) } def operator_loc; end @@ -18986,7 +20952,7 @@ class Prism::NoKeywordsParameterNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#11982 + # source://prism//lib/prism/node.rb#12655 def type; end class << self @@ -18997,7 +20963,7 @@ class Prism::NoKeywordsParameterNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#11992 + # source://prism//lib/prism/node.rb#12665 def type; end end end @@ -19036,6 +21002,12 @@ class Prism::Node # source://prism//lib/prism/node.rb#29 sig { returns(String) } def slice; end + + # Convert this node into a graphviz dot graph string. + # + # source://prism//lib/prism/node.rb#43 + sig { returns(String) } + def to_dot; end end # This object is responsible for generating the output for the inspect method @@ -19084,23 +21056,126 @@ class Prism::NodeInspector # Generates a string that represents a location field on a node. # - # source://prism//lib/prism/node_inspector.rb#45 - sig { params(value: Prism::Location).returns(String) } - def location(value); end + # source://prism//lib/prism/node_inspector.rb#45 + sig { params(value: Prism::Location).returns(String) } + def location(value); end + + # source://prism//lib/prism/node_inspector.rb#7 + sig { returns(String) } + def output; end + + # source://prism//lib/prism/node_inspector.rb#7 + sig { returns(String) } + def prefix; end + + # Returns the output as a string. + # + # source://prism//lib/prism/node_inspector.rb#64 + sig { returns(String) } + def to_str; end +end + +# Represents an implicit set of parameters through the use of numbered +# parameters within a block or lambda. +# +# -> { _1 + _2 } +# ^^^^^^^^^^^^^^ +# +# source://prism//lib/prism/node.rb#12675 +class Prism::NumberedParametersNode < ::Prism::Node + # def initialize: (maximum: Integer, location: Location) -> void + # + # @return [NumberedParametersNode] a new instance of NumberedParametersNode + # + # source://prism//lib/prism/node.rb#12680 + sig { params(maximum: Integer, location: Prism::Location).void } + def initialize(maximum, location); end + + # def accept: (visitor: Visitor) -> void + # + # source://prism//lib/prism/node.rb#12686 + sig { params(visitor: Prism::Visitor).void } + def accept(visitor); end + + # def child_nodes: () -> Array[nil | Node] + # + # source://prism//lib/prism/node.rb#12691 + sig { returns(T::Array[T.nilable(Prism::Node)]) } + def child_nodes; end + + # def comment_targets: () -> Array[Node | Location] + # + # source://prism//lib/prism/node.rb#12701 + def comment_targets; end + + # def compact_child_nodes: () -> Array[Node] + # + # source://prism//lib/prism/node.rb#12696 + def compact_child_nodes; end + + # def copy: (**params) -> NumberedParametersNode + # + # source://prism//lib/prism/node.rb#12706 + 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//lib/prism/node.rb#12691 + sig { returns(T::Array[T.nilable(Prism::Node)]) } + def deconstruct; end + + # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] + # + # source://prism//lib/prism/node.rb#12717 + sig do + params( + keys: T::Array[Symbol] + ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) + end + def deconstruct_keys(keys); end - # source://prism//lib/prism/node_inspector.rb#7 - sig { returns(String) } - def output; end + # def inspect(inspector: NodeInspector) -> String + # + # source://prism//lib/prism/node.rb#12722 + def inspect(inspector = T.unsafe(nil)); end - # source://prism//lib/prism/node_inspector.rb#7 - sig { returns(String) } - def prefix; end + # attr_reader maximum: Integer + # + # source://prism//lib/prism/node.rb#12677 + sig { returns(Integer) } + def maximum; end - # Returns the output as a string. + # 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. # - # source://prism//lib/prism/node_inspector.rb#64 - sig { returns(String) } - def to_str; end + # Instead, you can call #type, which will return to you a symbol that you + # can use for comparison. This is faster than the other approaches because + # it uses a single integer comparison, but also because if you're on CRuby + # you can take advantage of the fact that case statements with all symbol + # keys will use a jump table. + # + # def type: () -> Symbol + # + # source://prism//lib/prism/node.rb#12742 + 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//lib/prism/node.rb#12752 + def type; end + end end # Represents reading a numbered reference to a capture in the previous match. @@ -19108,54 +21183,54 @@ end # $1 # ^^ # -# source://prism//lib/prism/node.rb#12001 +# source://prism//lib/prism/node.rb#12761 class Prism::NumberedReferenceReadNode < ::Prism::Node # def initialize: (number: Integer, location: Location) -> void # # @return [NumberedReferenceReadNode] a new instance of NumberedReferenceReadNode # - # source://prism//lib/prism/node.rb#12006 + # source://prism//lib/prism/node.rb#12766 sig { params(number: Integer, location: Prism::Location).void } def initialize(number, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#12012 + # source://prism//lib/prism/node.rb#12772 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#12017 + # source://prism//lib/prism/node.rb#12777 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#12027 + # source://prism//lib/prism/node.rb#12787 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#12022 + # source://prism//lib/prism/node.rb#12782 def compact_child_nodes; end # def copy: (**params) -> NumberedReferenceReadNode # - # source://prism//lib/prism/node.rb#12032 + # source://prism//lib/prism/node.rb#12792 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//lib/prism/node.rb#12017 + # source://prism//lib/prism/node.rb#12777 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#12043 + # source://prism//lib/prism/node.rb#12803 sig do params( keys: T::Array[Symbol] @@ -19165,12 +21240,12 @@ class Prism::NumberedReferenceReadNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#12048 + # source://prism//lib/prism/node.rb#12808 def inspect(inspector = T.unsafe(nil)); end # attr_reader number: Integer # - # source://prism//lib/prism/node.rb#12003 + # source://prism//lib/prism/node.rb#12763 sig { returns(Integer) } def number; end @@ -19189,7 +21264,7 @@ class Prism::NumberedReferenceReadNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#12068 + # source://prism//lib/prism/node.rb#12828 def type; end class << self @@ -19200,7 +21275,7 @@ class Prism::NumberedReferenceReadNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#12078 + # source://prism//lib/prism/node.rb#12838 def type; end end end @@ -19211,54 +21286,54 @@ end # ^^^^ # end # -# source://prism//lib/prism/node.rb#12088 +# source://prism//lib/prism/node.rb#12848 class Prism::OptionalKeywordParameterNode < ::Prism::Node # def initialize: (name: Symbol, name_loc: Location, value: Node, location: Location) -> void # # @return [OptionalKeywordParameterNode] a new instance of OptionalKeywordParameterNode # - # source://prism//lib/prism/node.rb#12099 + # source://prism//lib/prism/node.rb#12859 sig { params(name: Symbol, name_loc: Prism::Location, value: Prism::Node, location: Prism::Location).void } def initialize(name, name_loc, value, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#12107 + # source://prism//lib/prism/node.rb#12867 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#12112 + # source://prism//lib/prism/node.rb#12872 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#12122 + # source://prism//lib/prism/node.rb#12882 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#12117 + # source://prism//lib/prism/node.rb#12877 def compact_child_nodes; end # def copy: (**params) -> OptionalKeywordParameterNode # - # source://prism//lib/prism/node.rb#12127 + # source://prism//lib/prism/node.rb#12887 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//lib/prism/node.rb#12112 + # source://prism//lib/prism/node.rb#12872 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#12140 + # source://prism//lib/prism/node.rb#12900 sig do params( keys: T::Array[Symbol] @@ -19268,18 +21343,18 @@ class Prism::OptionalKeywordParameterNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#12145 + # source://prism//lib/prism/node.rb#12905 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#12090 + # source://prism//lib/prism/node.rb#12850 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#12093 + # source://prism//lib/prism/node.rb#12853 sig { returns(Prism::Location) } def name_loc; end @@ -19298,12 +21373,12 @@ class Prism::OptionalKeywordParameterNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#12168 + # source://prism//lib/prism/node.rb#12928 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#12096 + # source://prism//lib/prism/node.rb#12856 sig { returns(Prism::Node) } def value; end @@ -19315,7 +21390,7 @@ class Prism::OptionalKeywordParameterNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#12178 + # source://prism//lib/prism/node.rb#12938 def type; end end end @@ -19326,13 +21401,13 @@ end # ^^^^^ # end # -# source://prism//lib/prism/node.rb#12188 +# source://prism//lib/prism/node.rb#12948 class Prism::OptionalParameterNode < ::Prism::Node # def initialize: (name: Symbol, name_loc: Location, operator_loc: Location, value: Node, location: Location) -> void # # @return [OptionalParameterNode] a new instance of OptionalParameterNode # - # source://prism//lib/prism/node.rb#12202 + # source://prism//lib/prism/node.rb#12962 sig do params( name: Symbol, @@ -19346,42 +21421,42 @@ class Prism::OptionalParameterNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#12211 + # source://prism//lib/prism/node.rb#12971 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#12216 + # source://prism//lib/prism/node.rb#12976 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#12226 + # source://prism//lib/prism/node.rb#12986 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#12221 + # source://prism//lib/prism/node.rb#12981 def compact_child_nodes; end # def copy: (**params) -> OptionalParameterNode # - # source://prism//lib/prism/node.rb#12231 + # source://prism//lib/prism/node.rb#12991 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//lib/prism/node.rb#12216 + # source://prism//lib/prism/node.rb#12976 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#12245 + # source://prism//lib/prism/node.rb#13005 sig do params( keys: T::Array[Symbol] @@ -19391,30 +21466,30 @@ class Prism::OptionalParameterNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#12255 + # source://prism//lib/prism/node.rb#13015 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#12190 + # source://prism//lib/prism/node.rb#12950 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#12193 + # source://prism//lib/prism/node.rb#12953 sig { returns(Prism::Location) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#12250 + # source://prism//lib/prism/node.rb#13010 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#12196 + # source://prism//lib/prism/node.rb#12956 sig { returns(Prism::Location) } def operator_loc; end @@ -19433,12 +21508,12 @@ class Prism::OptionalParameterNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#12279 + # source://prism//lib/prism/node.rb#13039 def type; end # attr_reader value: Node # - # source://prism//lib/prism/node.rb#12199 + # source://prism//lib/prism/node.rb#12959 sig { returns(Prism::Node) } def value; end @@ -19450,7 +21525,7 @@ class Prism::OptionalParameterNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#12289 + # source://prism//lib/prism/node.rb#13049 def type; end end end @@ -19460,54 +21535,54 @@ end # left or right # ^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#12298 +# source://prism//lib/prism/node.rb#13058 class Prism::OrNode < ::Prism::Node # def initialize: (left: Node, right: Node, operator_loc: Location, location: Location) -> void # # @return [OrNode] a new instance of OrNode # - # source://prism//lib/prism/node.rb#12309 + # source://prism//lib/prism/node.rb#13069 sig { params(left: Prism::Node, right: Prism::Node, operator_loc: Prism::Location, location: Prism::Location).void } def initialize(left, right, operator_loc, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#12317 + # source://prism//lib/prism/node.rb#13077 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#12322 + # source://prism//lib/prism/node.rb#13082 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#12332 + # source://prism//lib/prism/node.rb#13092 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#12327 + # source://prism//lib/prism/node.rb#13087 def compact_child_nodes; end # def copy: (**params) -> OrNode # - # source://prism//lib/prism/node.rb#12337 + # source://prism//lib/prism/node.rb#13097 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//lib/prism/node.rb#12322 + # source://prism//lib/prism/node.rb#13082 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#12350 + # source://prism//lib/prism/node.rb#13110 sig do params( keys: T::Array[Symbol] @@ -19517,30 +21592,30 @@ class Prism::OrNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#12360 + # source://prism//lib/prism/node.rb#13120 def inspect(inspector = T.unsafe(nil)); end # attr_reader left: Node # - # source://prism//lib/prism/node.rb#12300 + # source://prism//lib/prism/node.rb#13060 sig { returns(Prism::Node) } def left; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#12355 + # source://prism//lib/prism/node.rb#13115 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#12306 + # source://prism//lib/prism/node.rb#13066 sig { returns(Prism::Location) } def operator_loc; end # attr_reader right: Node # - # source://prism//lib/prism/node.rb#12303 + # source://prism//lib/prism/node.rb#13063 sig { returns(Prism::Node) } def right; end @@ -19559,7 +21634,7 @@ class Prism::OrNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#12384 + # source://prism//lib/prism/node.rb#13144 def type; end class << self @@ -19570,7 +21645,7 @@ class Prism::OrNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#12394 + # source://prism//lib/prism/node.rb#13154 def type; end end end @@ -19823,18 +21898,18 @@ Prism::Pack::UTF8 = T.let(T.unsafe(nil), Symbol) # ^^^^^^^ # end # -# source://prism//lib/prism/node.rb#12404 +# source://prism//lib/prism/node.rb#13164 class Prism::ParametersNode < ::Prism::Node - # def initialize: (requireds: Array[Node], optionals: Array[Node], rest: RestParameterNode?, posts: Array[Node], keywords: Array[Node], keyword_rest: Node?, block: BlockParameterNode?, location: Location) -> void + # def initialize: (requireds: Array[Node], optionals: Array[Node], rest: Node?, posts: Array[Node], keywords: Array[Node], keyword_rest: Node?, block: BlockParameterNode?, location: Location) -> void # # @return [ParametersNode] a new instance of ParametersNode # - # source://prism//lib/prism/node.rb#12427 + # source://prism//lib/prism/node.rb#13187 sig do params( requireds: T::Array[Prism::Node], optionals: T::Array[Prism::Node], - rest: T.nilable(Prism::RestParameterNode), + rest: T.nilable(Prism::Node), posts: T::Array[Prism::Node], keywords: T::Array[Prism::Node], keyword_rest: T.nilable(Prism::Node), @@ -19846,48 +21921,48 @@ class Prism::ParametersNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#12439 + # source://prism//lib/prism/node.rb#13199 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # attr_reader block: BlockParameterNode? # - # source://prism//lib/prism/node.rb#12424 + # source://prism//lib/prism/node.rb#13184 sig { returns(T.nilable(Prism::BlockParameterNode)) } def block; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#12444 + # source://prism//lib/prism/node.rb#13204 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#12462 + # source://prism//lib/prism/node.rb#13222 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#12449 + # source://prism//lib/prism/node.rb#13209 def compact_child_nodes; end # def copy: (**params) -> ParametersNode # - # source://prism//lib/prism/node.rb#12467 + # source://prism//lib/prism/node.rb#13227 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//lib/prism/node.rb#12444 + # source://prism//lib/prism/node.rb#13204 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#12484 + # source://prism//lib/prism/node.rb#13244 sig do params( keys: T::Array[Symbol] @@ -19897,45 +21972,50 @@ class Prism::ParametersNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#12489 + # source://prism//lib/prism/node.rb#13249 def inspect(inspector = T.unsafe(nil)); end # attr_reader keyword_rest: Node? # - # source://prism//lib/prism/node.rb#12421 + # source://prism//lib/prism/node.rb#13181 sig { returns(T.nilable(Prism::Node)) } def keyword_rest; end # attr_reader keywords: Array[Node] # - # source://prism//lib/prism/node.rb#12418 + # source://prism//lib/prism/node.rb#13178 sig { returns(T::Array[Prism::Node]) } def keywords; end # attr_reader optionals: Array[Node] # - # source://prism//lib/prism/node.rb#12409 + # source://prism//lib/prism/node.rb#13169 sig { returns(T::Array[Prism::Node]) } def optionals; end # attr_reader posts: Array[Node] # - # source://prism//lib/prism/node.rb#12415 + # source://prism//lib/prism/node.rb#13175 sig { returns(T::Array[Prism::Node]) } def posts; end # attr_reader requireds: Array[Node] # - # source://prism//lib/prism/node.rb#12406 + # source://prism//lib/prism/node.rb#13166 sig { returns(T::Array[Prism::Node]) } def requireds; end - # attr_reader rest: RestParameterNode? + # attr_reader rest: Node? # - # source://prism//lib/prism/node.rb#12412 - sig { returns(T.nilable(Prism::RestParameterNode)) } + # source://prism//lib/prism/node.rb#13172 + sig { returns(T.nilable(Prism::Node)) } def rest; end + # Mirrors the Method#parameters method. + # + # source://prism//lib/prism/node_ext.rb#149 + 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 @@ -19951,7 +22031,7 @@ class Prism::ParametersNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#12530 + # source://prism//lib/prism/node.rb#13290 def type; end class << self @@ -19962,7 +22042,7 @@ class Prism::ParametersNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#12540 + # source://prism//lib/prism/node.rb#13300 def type; end end end @@ -19972,13 +22052,13 @@ end # (10 + 34) # ^^^^^^^^^ # -# source://prism//lib/prism/node.rb#12549 +# source://prism//lib/prism/node.rb#13309 class Prism::ParenthesesNode < ::Prism::Node # def initialize: (body: Node?, opening_loc: Location, closing_loc: Location, location: Location) -> void # # @return [ParenthesesNode] a new instance of ParenthesesNode # - # source://prism//lib/prism/node.rb#12560 + # source://prism//lib/prism/node.rb#13320 sig do params( body: T.nilable(Prism::Node), @@ -19991,60 +22071,60 @@ class Prism::ParenthesesNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#12568 + # source://prism//lib/prism/node.rb#13328 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # attr_reader body: Node? # - # source://prism//lib/prism/node.rb#12551 + # source://prism//lib/prism/node.rb#13311 sig { returns(T.nilable(Prism::Node)) } def body; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#12577 + # source://prism//lib/prism/node.rb#13337 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#12617 + # source://prism//lib/prism/node.rb#13377 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#12557 + # source://prism//lib/prism/node.rb#13317 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#12589 + # source://prism//lib/prism/node.rb#13349 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#12582 + # source://prism//lib/prism/node.rb#13342 def compact_child_nodes; end # def copy: (**params) -> ParenthesesNode # - # source://prism//lib/prism/node.rb#12594 + # source://prism//lib/prism/node.rb#13354 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//lib/prism/node.rb#12577 + # source://prism//lib/prism/node.rb#13337 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#12607 + # source://prism//lib/prism/node.rb#13367 sig do params( keys: T::Array[Symbol] @@ -20054,22 +22134,22 @@ class Prism::ParenthesesNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#12622 + # source://prism//lib/prism/node.rb#13382 def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String # - # source://prism//lib/prism/node.rb#12612 + # source://prism//lib/prism/node.rb#13372 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#12554 + # source://prism//lib/prism/node.rb#13314 sig { returns(Prism::Location) } def opening_loc; end - # source://prism//lib/prism/node.rb#12572 + # source://prism//lib/prism/node.rb#13332 def set_newline_flag(newline_marked); end # Sometimes you want to check an instance of a node against a list of @@ -20087,7 +22167,7 @@ class Prism::ParenthesesNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#12649 + # source://prism//lib/prism/node.rb#13409 def type; end class << self @@ -20098,41 +22178,41 @@ class Prism::ParenthesesNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#12659 + # source://prism//lib/prism/node.rb#13419 def type; end end end # This represents an error that was encountered during parsing. # -# source://prism//lib/prism/parse_result.rb#283 +# source://prism//lib/prism/parse_result.rb#308 class Prism::ParseError # Create a new error object with the given message and location. # # @return [ParseError] a new instance of ParseError # - # source://prism//lib/prism/parse_result.rb#291 + # source://prism//lib/prism/parse_result.rb#316 def initialize(message, location); end # Implement the hash pattern matching interface for ParseError. # - # source://prism//lib/prism/parse_result.rb#297 + # source://prism//lib/prism/parse_result.rb#322 def deconstruct_keys(keys); end # Returns a string representation of this error. # - # source://prism//lib/prism/parse_result.rb#302 + # source://prism//lib/prism/parse_result.rb#327 def inspect; end # A Location object representing the location of this error in the source. # - # source://prism//lib/prism/parse_result.rb#288 + # source://prism//lib/prism/parse_result.rb#313 sig { returns(Prism::Location) } def location; end # The message associated with this error. # - # source://prism//lib/prism/parse_result.rb#285 + # source://prism//lib/prism/parse_result.rb#310 sig { returns(String) } def message; end end @@ -20141,14 +22221,14 @@ end # the AST, any comments that were encounters, and any errors that were # encountered. # -# source://prism//lib/prism/parse_result.rb#335 +# source://prism//lib/prism/parse_result.rb#360 class Prism::ParseResult # Create a new parse result object with the given values. # # @return [ParseResult] a new instance of ParseResult # - # source://prism//lib/prism/parse_result.rb#357 - def initialize(value, comments, magic_comments, errors, warnings, source); end + # source://prism//lib/prism/parse_result.rb#387 + def initialize(value, comments, magic_comments, data_loc, errors, warnings, source); end # Attach the list of comments to their respective locations in the tree. # @@ -20157,18 +22237,25 @@ class Prism::ParseResult # The list of comments that were encountered during parsing. # - # source://prism//lib/prism/parse_result.rb#342 + # source://prism//lib/prism/parse_result.rb#367 sig { returns(T::Array[Prism::Comment]) } def comments; end + # An optional location that represents the location of the content after the + # __END__ marker. This content is loaded into the DATA constant when the + # file being parsed is the main file being executed. + # + # source://prism//lib/prism/parse_result.rb#375 + def data_loc; end + # Implement the hash pattern matching interface for ParseResult. # - # source://prism//lib/prism/parse_result.rb#367 + # source://prism//lib/prism/parse_result.rb#398 def deconstruct_keys(keys); end # The list of errors that were generated during parsing. # - # source://prism//lib/prism/parse_result.rb#348 + # source://prism//lib/prism/parse_result.rb#378 sig { returns(T::Array[Prism::ParseError]) } def errors; end @@ -20177,12 +22264,12 @@ class Prism::ParseResult # # @return [Boolean] # - # source://prism//lib/prism/parse_result.rb#379 + # source://prism//lib/prism/parse_result.rb#410 def failure?; end # The list of magic comments that were encountered during parsing. # - # source://prism//lib/prism/parse_result.rb#345 + # source://prism//lib/prism/parse_result.rb#370 def magic_comments; end # Walk the tree and mark nodes that are on a new line. @@ -20192,7 +22279,7 @@ class Prism::ParseResult # A Source instance that represents the source code that was parsed. # - # source://prism//lib/prism/parse_result.rb#354 + # source://prism//lib/prism/parse_result.rb#384 sig { returns(Prism::Source) } def source; end @@ -20201,20 +22288,20 @@ class Prism::ParseResult # # @return [Boolean] # - # source://prism//lib/prism/parse_result.rb#373 + # source://prism//lib/prism/parse_result.rb#404 def success?; end # The value that was generated by parsing. Normally this holds the AST, but # it can sometimes how a list of tokens or other results passed back from # the parser. # - # source://prism//lib/prism/parse_result.rb#339 + # source://prism//lib/prism/parse_result.rb#364 sig { returns(Prism::ProgramNode) } def value; end # The list of warnings that were generated during parsing. # - # source://prism//lib/prism/parse_result.rb#351 + # source://prism//lib/prism/parse_result.rb#381 sig { returns(T::Array[Prism::ParseWarning]) } def warnings; end end @@ -20373,34 +22460,34 @@ end # This represents a warning that was encountered during parsing. # -# source://prism//lib/prism/parse_result.rb#308 +# source://prism//lib/prism/parse_result.rb#333 class Prism::ParseWarning # Create a new warning object with the given message and location. # # @return [ParseWarning] a new instance of ParseWarning # - # source://prism//lib/prism/parse_result.rb#316 + # source://prism//lib/prism/parse_result.rb#341 def initialize(message, location); end # Implement the hash pattern matching interface for ParseWarning. # - # source://prism//lib/prism/parse_result.rb#322 + # source://prism//lib/prism/parse_result.rb#347 def deconstruct_keys(keys); end # Returns a string representation of this warning. # - # source://prism//lib/prism/parse_result.rb#327 + # source://prism//lib/prism/parse_result.rb#352 def inspect; end # A Location object representing the location of this warning in the source. # - # source://prism//lib/prism/parse_result.rb#313 + # source://prism//lib/prism/parse_result.rb#338 sig { returns(Prism::Location) } def location; end # The message associated with this warning. # - # source://prism//lib/prism/parse_result.rb#310 + # source://prism//lib/prism/parse_result.rb#335 sig { returns(String) } def message; end end @@ -20565,13 +22652,13 @@ end # foo in ^(bar) # ^^^^^^ # -# source://prism//lib/prism/node.rb#12669 +# source://prism//lib/prism/node.rb#13429 class Prism::PinnedExpressionNode < ::Prism::Node # def initialize: (expression: Node, operator_loc: Location, lparen_loc: Location, rparen_loc: Location, location: Location) -> void # # @return [PinnedExpressionNode] a new instance of PinnedExpressionNode # - # source://prism//lib/prism/node.rb#12683 + # source://prism//lib/prism/node.rb#13443 sig do params( expression: Prism::Node, @@ -20585,42 +22672,42 @@ class Prism::PinnedExpressionNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#12692 + # source://prism//lib/prism/node.rb#13452 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#12697 + # source://prism//lib/prism/node.rb#13457 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#12707 + # source://prism//lib/prism/node.rb#13467 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#12702 + # source://prism//lib/prism/node.rb#13462 def compact_child_nodes; end # def copy: (**params) -> PinnedExpressionNode # - # source://prism//lib/prism/node.rb#12712 + # source://prism//lib/prism/node.rb#13472 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//lib/prism/node.rb#12697 + # source://prism//lib/prism/node.rb#13457 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#12726 + # source://prism//lib/prism/node.rb#13486 sig do params( keys: T::Array[Symbol] @@ -20630,48 +22717,48 @@ class Prism::PinnedExpressionNode < ::Prism::Node # attr_reader expression: Node # - # source://prism//lib/prism/node.rb#12671 + # source://prism//lib/prism/node.rb#13431 sig { returns(Prism::Node) } def expression; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#12746 + # source://prism//lib/prism/node.rb#13506 def inspect(inspector = T.unsafe(nil)); end # def lparen: () -> String # - # source://prism//lib/prism/node.rb#12736 + # source://prism//lib/prism/node.rb#13496 sig { returns(String) } def lparen; end # attr_reader lparen_loc: Location # - # source://prism//lib/prism/node.rb#12677 + # source://prism//lib/prism/node.rb#13437 sig { returns(Prism::Location) } def lparen_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#12731 + # source://prism//lib/prism/node.rb#13491 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#12674 + # source://prism//lib/prism/node.rb#13434 sig { returns(Prism::Location) } def operator_loc; end # def rparen: () -> String # - # source://prism//lib/prism/node.rb#12741 + # source://prism//lib/prism/node.rb#13501 sig { returns(String) } def rparen; end # attr_reader rparen_loc: Location # - # source://prism//lib/prism/node.rb#12680 + # source://prism//lib/prism/node.rb#13440 sig { returns(Prism::Location) } def rparen_loc; end @@ -20690,7 +22777,7 @@ class Prism::PinnedExpressionNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#12770 + # source://prism//lib/prism/node.rb#13530 def type; end class << self @@ -20701,7 +22788,7 @@ class Prism::PinnedExpressionNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#12780 + # source://prism//lib/prism/node.rb#13540 def type; end end end @@ -20712,54 +22799,54 @@ end # foo in ^bar # ^^^^ # -# source://prism//lib/prism/node.rb#12790 +# source://prism//lib/prism/node.rb#13550 class Prism::PinnedVariableNode < ::Prism::Node # def initialize: (variable: Node, operator_loc: Location, location: Location) -> void # # @return [PinnedVariableNode] a new instance of PinnedVariableNode # - # source://prism//lib/prism/node.rb#12798 + # source://prism//lib/prism/node.rb#13558 sig { params(variable: Prism::Node, operator_loc: Prism::Location, location: Prism::Location).void } def initialize(variable, operator_loc, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#12805 + # source://prism//lib/prism/node.rb#13565 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#12810 + # source://prism//lib/prism/node.rb#13570 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#12820 + # source://prism//lib/prism/node.rb#13580 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#12815 + # source://prism//lib/prism/node.rb#13575 def compact_child_nodes; end # def copy: (**params) -> PinnedVariableNode # - # source://prism//lib/prism/node.rb#12825 + # source://prism//lib/prism/node.rb#13585 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//lib/prism/node.rb#12810 + # source://prism//lib/prism/node.rb#13570 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#12837 + # source://prism//lib/prism/node.rb#13597 sig do params( keys: T::Array[Symbol] @@ -20769,18 +22856,18 @@ class Prism::PinnedVariableNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#12847 + # source://prism//lib/prism/node.rb#13607 def inspect(inspector = T.unsafe(nil)); end # def operator: () -> String # - # source://prism//lib/prism/node.rb#12842 + # source://prism//lib/prism/node.rb#13602 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#12795 + # source://prism//lib/prism/node.rb#13555 sig { returns(Prism::Location) } def operator_loc; end @@ -20799,12 +22886,12 @@ class Prism::PinnedVariableNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#12869 + # source://prism//lib/prism/node.rb#13629 def type; end # attr_reader variable: Node # - # source://prism//lib/prism/node.rb#12792 + # source://prism//lib/prism/node.rb#13552 sig { returns(Prism::Node) } def variable; end @@ -20816,7 +22903,7 @@ class Prism::PinnedVariableNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#12879 + # source://prism//lib/prism/node.rb#13639 def type; end end end @@ -20826,13 +22913,13 @@ end # END { foo } # ^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#12888 +# source://prism//lib/prism/node.rb#13648 class Prism::PostExecutionNode < ::Prism::Node # def initialize: (statements: StatementsNode?, keyword_loc: Location, opening_loc: Location, closing_loc: Location, location: Location) -> void # # @return [PostExecutionNode] a new instance of PostExecutionNode # - # source://prism//lib/prism/node.rb#12902 + # source://prism//lib/prism/node.rb#13662 sig do params( statements: T.nilable(Prism::StatementsNode), @@ -20846,54 +22933,54 @@ class Prism::PostExecutionNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#12911 + # source://prism//lib/prism/node.rb#13671 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#12916 + # source://prism//lib/prism/node.rb#13676 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#12962 + # source://prism//lib/prism/node.rb#13722 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#12899 + # source://prism//lib/prism/node.rb#13659 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#12928 + # source://prism//lib/prism/node.rb#13688 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#12921 + # source://prism//lib/prism/node.rb#13681 def compact_child_nodes; end # def copy: (**params) -> PostExecutionNode # - # source://prism//lib/prism/node.rb#12933 + # source://prism//lib/prism/node.rb#13693 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//lib/prism/node.rb#12916 + # source://prism//lib/prism/node.rb#13676 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#12947 + # source://prism//lib/prism/node.rb#13707 sig do params( keys: T::Array[Symbol] @@ -20903,36 +22990,36 @@ class Prism::PostExecutionNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#12967 + # source://prism//lib/prism/node.rb#13727 def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#12952 + # source://prism//lib/prism/node.rb#13712 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#12893 + # source://prism//lib/prism/node.rb#13653 sig { returns(Prism::Location) } def keyword_loc; end # def opening: () -> String # - # source://prism//lib/prism/node.rb#12957 + # source://prism//lib/prism/node.rb#13717 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#12896 + # source://prism//lib/prism/node.rb#13656 sig { returns(Prism::Location) } def opening_loc; end # attr_reader statements: StatementsNode? # - # source://prism//lib/prism/node.rb#12890 + # source://prism//lib/prism/node.rb#13650 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end @@ -20951,7 +23038,7 @@ class Prism::PostExecutionNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#12995 + # source://prism//lib/prism/node.rb#13755 def type; end class << self @@ -20962,7 +23049,7 @@ class Prism::PostExecutionNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#13005 + # source://prism//lib/prism/node.rb#13765 def type; end end end @@ -20972,13 +23059,13 @@ end # BEGIN { foo } # ^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#13014 +# source://prism//lib/prism/node.rb#13774 class Prism::PreExecutionNode < ::Prism::Node # def initialize: (statements: StatementsNode?, keyword_loc: Location, opening_loc: Location, closing_loc: Location, location: Location) -> void # # @return [PreExecutionNode] a new instance of PreExecutionNode # - # source://prism//lib/prism/node.rb#13028 + # source://prism//lib/prism/node.rb#13788 sig do params( statements: T.nilable(Prism::StatementsNode), @@ -20992,54 +23079,54 @@ class Prism::PreExecutionNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#13037 + # source://prism//lib/prism/node.rb#13797 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#13042 + # source://prism//lib/prism/node.rb#13802 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#13088 + # source://prism//lib/prism/node.rb#13848 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#13025 + # source://prism//lib/prism/node.rb#13785 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#13054 + # source://prism//lib/prism/node.rb#13814 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#13047 + # source://prism//lib/prism/node.rb#13807 def compact_child_nodes; end # def copy: (**params) -> PreExecutionNode # - # source://prism//lib/prism/node.rb#13059 + # source://prism//lib/prism/node.rb#13819 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//lib/prism/node.rb#13042 + # source://prism//lib/prism/node.rb#13802 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#13073 + # source://prism//lib/prism/node.rb#13833 sig do params( keys: T::Array[Symbol] @@ -21049,36 +23136,36 @@ class Prism::PreExecutionNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#13093 + # source://prism//lib/prism/node.rb#13853 def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#13078 + # source://prism//lib/prism/node.rb#13838 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#13019 + # source://prism//lib/prism/node.rb#13779 sig { returns(Prism::Location) } def keyword_loc; end # def opening: () -> String # - # source://prism//lib/prism/node.rb#13083 + # source://prism//lib/prism/node.rb#13843 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#13022 + # source://prism//lib/prism/node.rb#13782 sig { returns(Prism::Location) } def opening_loc; end # attr_reader statements: StatementsNode? # - # source://prism//lib/prism/node.rb#13016 + # source://prism//lib/prism/node.rb#13776 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end @@ -21097,7 +23184,7 @@ class Prism::PreExecutionNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#13121 + # source://prism//lib/prism/node.rb#13881 def type; end class << self @@ -21108,61 +23195,61 @@ class Prism::PreExecutionNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#13131 + # source://prism//lib/prism/node.rb#13891 def type; end end end # The top level node of any parse tree. # -# source://prism//lib/prism/node.rb#13137 +# source://prism//lib/prism/node.rb#13897 class Prism::ProgramNode < ::Prism::Node # def initialize: (locals: Array[Symbol], statements: StatementsNode, location: Location) -> void # # @return [ProgramNode] a new instance of ProgramNode # - # source://prism//lib/prism/node.rb#13145 + # source://prism//lib/prism/node.rb#13905 sig { params(locals: T::Array[Symbol], statements: Prism::StatementsNode, location: Prism::Location).void } def initialize(locals, statements, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#13152 + # source://prism//lib/prism/node.rb#13912 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#13157 + # source://prism//lib/prism/node.rb#13917 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#13167 + # source://prism//lib/prism/node.rb#13927 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#13162 + # source://prism//lib/prism/node.rb#13922 def compact_child_nodes; end # def copy: (**params) -> ProgramNode # - # source://prism//lib/prism/node.rb#13172 + # source://prism//lib/prism/node.rb#13932 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//lib/prism/node.rb#13157 + # source://prism//lib/prism/node.rb#13917 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#13184 + # source://prism//lib/prism/node.rb#13944 sig do params( keys: T::Array[Symbol] @@ -21172,18 +23259,18 @@ class Prism::ProgramNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#13189 + # source://prism//lib/prism/node.rb#13949 def inspect(inspector = T.unsafe(nil)); end # attr_reader locals: Array[Symbol] # - # source://prism//lib/prism/node.rb#13139 + # source://prism//lib/prism/node.rb#13899 sig { returns(T::Array[Symbol]) } def locals; end # attr_reader statements: StatementsNode # - # source://prism//lib/prism/node.rb#13142 + # source://prism//lib/prism/node.rb#13902 sig { returns(Prism::StatementsNode) } def statements; end @@ -21202,7 +23289,7 @@ class Prism::ProgramNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#13211 + # source://prism//lib/prism/node.rb#13971 def type; end class << self @@ -21213,19 +23300,19 @@ class Prism::ProgramNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#13221 + # source://prism//lib/prism/node.rb#13981 def type; end end end # Flags for range and flip-flop nodes. # -# source://prism//lib/prism/node.rb#16572 +# source://prism//lib/prism/node.rb#17337 module Prism::RangeFlags; end # ... operator # -# source://prism//lib/prism/node.rb#16574 +# source://prism//lib/prism/node.rb#17339 Prism::RangeFlags::EXCLUDE_END = T.let(T.unsafe(nil), Integer) # Represents the use of the `..` or `...` operators. @@ -21236,62 +23323,62 @@ Prism::RangeFlags::EXCLUDE_END = T.let(T.unsafe(nil), Integer) # c if a =~ /left/ ... b =~ /right/ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#13233 +# source://prism//lib/prism/node.rb#13993 class Prism::RangeNode < ::Prism::Node - # def initialize: (left: Node?, right: Node?, operator_loc: Location, flags: Integer, location: Location) -> void + # def initialize: (flags: Integer, left: Node?, right: Node?, operator_loc: Location, location: Location) -> void # # @return [RangeNode] a new instance of RangeNode # - # source://prism//lib/prism/node.rb#13247 + # source://prism//lib/prism/node.rb#14007 sig do params( + flags: Integer, left: T.nilable(Prism::Node), right: T.nilable(Prism::Node), operator_loc: Prism::Location, - flags: Integer, location: Prism::Location ).void end - def initialize(left, right, operator_loc, flags, location); end + def initialize(flags, left, right, operator_loc, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#13256 + # source://prism//lib/prism/node.rb#14016 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#13261 + # source://prism//lib/prism/node.rb#14021 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#13274 + # source://prism//lib/prism/node.rb#14034 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#13266 + # source://prism//lib/prism/node.rb#14026 def compact_child_nodes; end # def copy: (**params) -> RangeNode # - # source://prism//lib/prism/node.rb#13279 + # source://prism//lib/prism/node.rb#14039 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//lib/prism/node.rb#13261 + # source://prism//lib/prism/node.rb#14021 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#13293 + # source://prism//lib/prism/node.rb#14053 sig do params( keys: T::Array[Symbol] @@ -21303,36 +23390,36 @@ class Prism::RangeNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#13303 + # source://prism//lib/prism/node.rb#14058 sig { returns(T::Boolean) } def exclude_end?; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#13308 + # source://prism//lib/prism/node.rb#14068 def inspect(inspector = T.unsafe(nil)); end # attr_reader left: Node? # - # source://prism//lib/prism/node.rb#13235 + # source://prism//lib/prism/node.rb#13998 sig { returns(T.nilable(Prism::Node)) } def left; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#13298 + # source://prism//lib/prism/node.rb#14063 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#13241 + # source://prism//lib/prism/node.rb#14004 sig { returns(Prism::Location) } def operator_loc; end # attr_reader right: Node? # - # source://prism//lib/prism/node.rb#13238 + # source://prism//lib/prism/node.rb#14001 sig { returns(T.nilable(Prism::Node)) } def right; end @@ -21351,14 +23438,14 @@ class Prism::RangeNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#13342 + # source://prism//lib/prism/node.rb#14102 def type; end private # Returns the value of attribute flags. # - # source://prism//lib/prism/node.rb#13244 + # source://prism//lib/prism/node.rb#13995 sig { returns(Integer) } def flags; end @@ -21370,7 +23457,7 @@ class Prism::RangeNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#13352 + # source://prism//lib/prism/node.rb#14112 def type; end end end @@ -21380,54 +23467,54 @@ end # 1.0r # ^^^^ # -# source://prism//lib/prism/node.rb#13361 +# source://prism//lib/prism/node.rb#14121 class Prism::RationalNode < ::Prism::Node # def initialize: (numeric: Node, location: Location) -> void # # @return [RationalNode] a new instance of RationalNode # - # source://prism//lib/prism/node.rb#13366 + # source://prism//lib/prism/node.rb#14126 sig { params(numeric: Prism::Node, location: Prism::Location).void } def initialize(numeric, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#13372 + # source://prism//lib/prism/node.rb#14132 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#13377 + # source://prism//lib/prism/node.rb#14137 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#13387 + # source://prism//lib/prism/node.rb#14147 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#13382 + # source://prism//lib/prism/node.rb#14142 def compact_child_nodes; end # def copy: (**params) -> RationalNode # - # source://prism//lib/prism/node.rb#13392 + # source://prism//lib/prism/node.rb#14152 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//lib/prism/node.rb#13377 + # source://prism//lib/prism/node.rb#14137 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#13403 + # source://prism//lib/prism/node.rb#14163 sig do params( keys: T::Array[Symbol] @@ -21437,12 +23524,12 @@ class Prism::RationalNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#13408 + # source://prism//lib/prism/node.rb#14168 def inspect(inspector = T.unsafe(nil)); end # attr_reader numeric: Node # - # source://prism//lib/prism/node.rb#13363 + # source://prism//lib/prism/node.rb#14123 sig { returns(Prism::Node) } def numeric; end @@ -21461,12 +23548,12 @@ class Prism::RationalNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#13429 + # source://prism//lib/prism/node.rb#14189 def type; end # Returns the value of the node as a Ruby Rational. # - # source://prism//lib/prism/node_ext.rb#54 + # source://prism//lib/prism/node_ext.rb#83 def value; end class << self @@ -21477,7 +23564,7 @@ class Prism::RationalNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#13439 + # source://prism//lib/prism/node.rb#14199 def type; end end end @@ -21487,54 +23574,54 @@ end # redo # ^^^^ # -# source://prism//lib/prism/node.rb#13448 +# source://prism//lib/prism/node.rb#14208 class Prism::RedoNode < ::Prism::Node # def initialize: (location: Location) -> void # # @return [RedoNode] a new instance of RedoNode # - # source://prism//lib/prism/node.rb#13450 + # source://prism//lib/prism/node.rb#14210 sig { params(location: Prism::Location).void } def initialize(location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#13455 + # source://prism//lib/prism/node.rb#14215 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#13460 + # source://prism//lib/prism/node.rb#14220 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#13470 + # source://prism//lib/prism/node.rb#14230 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#13465 + # source://prism//lib/prism/node.rb#14225 def compact_child_nodes; end # def copy: (**params) -> RedoNode # - # source://prism//lib/prism/node.rb#13475 + # source://prism//lib/prism/node.rb#14235 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//lib/prism/node.rb#13460 + # source://prism//lib/prism/node.rb#14220 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#13485 + # source://prism//lib/prism/node.rb#14245 sig do params( keys: T::Array[Symbol] @@ -21544,7 +23631,7 @@ class Prism::RedoNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#13490 + # source://prism//lib/prism/node.rb#14250 def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -21562,7 +23649,7 @@ class Prism::RedoNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#13509 + # source://prism//lib/prism/node.rb#14269 def type; end class << self @@ -21573,54 +23660,69 @@ class Prism::RedoNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#13519 + # source://prism//lib/prism/node.rb#14279 def type; end end end # Flags for regular expression and match last line nodes. # -# source://prism//lib/prism/node.rb#16578 +# source://prism//lib/prism/node.rb#17343 module Prism::RegularExpressionFlags; end # n - forces the ASCII-8BIT encoding # -# source://prism//lib/prism/node.rb#16595 +# source://prism//lib/prism/node.rb#17360 Prism::RegularExpressionFlags::ASCII_8BIT = T.let(T.unsafe(nil), Integer) # e - forces the EUC-JP encoding # -# source://prism//lib/prism/node.rb#16592 +# source://prism//lib/prism/node.rb#17357 Prism::RegularExpressionFlags::EUC_JP = T.let(T.unsafe(nil), Integer) # x - ignores whitespace and allows comments in regular expressions # -# source://prism//lib/prism/node.rb#16583 +# source://prism//lib/prism/node.rb#17348 Prism::RegularExpressionFlags::EXTENDED = T.let(T.unsafe(nil), Integer) +# internal bytes forced the encoding to binary +# +# source://prism//lib/prism/node.rb#17372 +Prism::RegularExpressionFlags::FORCED_BINARY_ENCODING = T.let(T.unsafe(nil), Integer) + +# internal bytes forced the encoding to US-ASCII +# +# source://prism//lib/prism/node.rb#17375 +Prism::RegularExpressionFlags::FORCED_US_ASCII_ENCODING = T.let(T.unsafe(nil), Integer) + +# internal bytes forced the encoding to UTF-8 +# +# source://prism//lib/prism/node.rb#17369 +Prism::RegularExpressionFlags::FORCED_UTF8_ENCODING = T.let(T.unsafe(nil), Integer) + # i - ignores the case of characters when matching # -# source://prism//lib/prism/node.rb#16580 +# source://prism//lib/prism/node.rb#17345 Prism::RegularExpressionFlags::IGNORE_CASE = T.let(T.unsafe(nil), Integer) # m - allows $ to match the end of lines within strings # -# source://prism//lib/prism/node.rb#16586 +# source://prism//lib/prism/node.rb#17351 Prism::RegularExpressionFlags::MULTI_LINE = T.let(T.unsafe(nil), Integer) # o - only interpolates values into the regular expression once # -# source://prism//lib/prism/node.rb#16589 +# source://prism//lib/prism/node.rb#17354 Prism::RegularExpressionFlags::ONCE = T.let(T.unsafe(nil), Integer) # u - forces the UTF-8 encoding # -# source://prism//lib/prism/node.rb#16601 +# source://prism//lib/prism/node.rb#17366 Prism::RegularExpressionFlags::UTF_8 = T.let(T.unsafe(nil), Integer) # s - forces the Windows-31J encoding # -# source://prism//lib/prism/node.rb#16598 +# source://prism//lib/prism/node.rb#17363 Prism::RegularExpressionFlags::WINDOWS_31J = T.let(T.unsafe(nil), Integer) # Represents a regular expression literal with no interpolation. @@ -21628,30 +23730,30 @@ Prism::RegularExpressionFlags::WINDOWS_31J = T.let(T.unsafe(nil), Integer) # /foo/i # ^^^^^^ # -# source://prism//lib/prism/node.rb#13528 +# source://prism//lib/prism/node.rb#14288 class Prism::RegularExpressionNode < ::Prism::Node include ::Prism::RegularExpressionOptions - # def initialize: (opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String, flags: Integer, location: Location) -> void + # def initialize: (flags: Integer, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String, location: Location) -> void # # @return [RegularExpressionNode] a new instance of RegularExpressionNode # - # source://prism//lib/prism/node.rb#13545 + # source://prism//lib/prism/node.rb#14305 sig do params( + flags: Integer, opening_loc: Prism::Location, content_loc: Prism::Location, closing_loc: Prism::Location, unescaped: String, - flags: Integer, location: Prism::Location ).void end - def initialize(opening_loc, content_loc, closing_loc, unescaped, flags, location); end + def initialize(flags, opening_loc, content_loc, closing_loc, unescaped, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#13555 + # source://prism//lib/prism/node.rb#14315 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end @@ -21659,66 +23761,66 @@ class Prism::RegularExpressionNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#13635 + # source://prism//lib/prism/node.rb#14380 sig { returns(T::Boolean) } def ascii_8bit?; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#13560 + # source://prism//lib/prism/node.rb#14320 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#13605 + # source://prism//lib/prism/node.rb#14420 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#13536 + # source://prism//lib/prism/node.rb#14299 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#13570 + # source://prism//lib/prism/node.rb#14330 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#13565 + # source://prism//lib/prism/node.rb#14325 def compact_child_nodes; end # def content: () -> String # - # source://prism//lib/prism/node.rb#13600 + # source://prism//lib/prism/node.rb#14415 sig { returns(String) } def content; end # attr_reader content_loc: Location # - # source://prism//lib/prism/node.rb#13533 + # source://prism//lib/prism/node.rb#14296 sig { returns(Prism::Location) } def content_loc; end # def copy: (**params) -> RegularExpressionNode # - # source://prism//lib/prism/node.rb#13575 + # source://prism//lib/prism/node.rb#14335 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//lib/prism/node.rb#13560 + # source://prism//lib/prism/node.rb#14320 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#13590 + # source://prism//lib/prism/node.rb#14350 sig do params( keys: T::Array[Symbol] @@ -21730,7 +23832,7 @@ class Prism::RegularExpressionNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#13630 + # source://prism//lib/prism/node.rb#14375 sig { returns(T::Boolean) } def euc_jp?; end @@ -21738,28 +23840,52 @@ class Prism::RegularExpressionNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#13615 + # source://prism//lib/prism/node.rb#14360 sig { returns(T::Boolean) } def extended?; end + # def forced_binary_encoding?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#14400 + sig { returns(T::Boolean) } + def forced_binary_encoding?; end + + # def forced_us_ascii_encoding?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#14405 + sig { returns(T::Boolean) } + def forced_us_ascii_encoding?; end + + # def forced_utf8_encoding?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#14395 + sig { returns(T::Boolean) } + def forced_utf8_encoding?; end + # def ignore_case?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#13610 + # source://prism//lib/prism/node.rb#14355 sig { returns(T::Boolean) } def ignore_case?; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#13650 + # source://prism//lib/prism/node.rb#14425 def inspect(inspector = T.unsafe(nil)); end # def multi_line?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#13620 + # source://prism//lib/prism/node.rb#14365 sig { returns(T::Boolean) } def multi_line?; end @@ -21767,19 +23893,19 @@ class Prism::RegularExpressionNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#13625 + # source://prism//lib/prism/node.rb#14370 sig { returns(T::Boolean) } def once?; end # def opening: () -> String # - # source://prism//lib/prism/node.rb#13595 + # source://prism//lib/prism/node.rb#14410 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#13530 + # source://prism//lib/prism/node.rb#14293 sig { returns(Prism::Location) } def opening_loc; end @@ -21798,12 +23924,12 @@ class Prism::RegularExpressionNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#13675 + # source://prism//lib/prism/node.rb#14450 def type; end # attr_reader unescaped: String # - # source://prism//lib/prism/node.rb#13539 + # source://prism//lib/prism/node.rb#14302 sig { returns(String) } def unescaped; end @@ -21811,7 +23937,7 @@ class Prism::RegularExpressionNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#13645 + # source://prism//lib/prism/node.rb#14390 sig { returns(T::Boolean) } def utf_8?; end @@ -21819,7 +23945,7 @@ class Prism::RegularExpressionNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#13640 + # source://prism//lib/prism/node.rb#14385 sig { returns(T::Boolean) } def windows_31j?; end @@ -21827,7 +23953,7 @@ class Prism::RegularExpressionNode < ::Prism::Node # Returns the value of attribute flags. # - # source://prism//lib/prism/node.rb#13542 + # source://prism//lib/prism/node.rb#14290 sig { returns(Integer) } def flags; end @@ -21839,7 +23965,7 @@ class Prism::RegularExpressionNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#13685 + # source://prism//lib/prism/node.rb#14460 def type; end end end @@ -21859,54 +23985,54 @@ end # ^^ # end # -# source://prism//lib/prism/node.rb#13695 +# source://prism//lib/prism/node.rb#14470 class Prism::RequiredKeywordParameterNode < ::Prism::Node # def initialize: (name: Symbol, name_loc: Location, location: Location) -> void # # @return [RequiredKeywordParameterNode] a new instance of RequiredKeywordParameterNode # - # source://prism//lib/prism/node.rb#13703 + # source://prism//lib/prism/node.rb#14478 sig { params(name: Symbol, name_loc: Prism::Location, location: Prism::Location).void } def initialize(name, name_loc, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#13710 + # source://prism//lib/prism/node.rb#14485 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#13715 + # source://prism//lib/prism/node.rb#14490 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#13725 + # source://prism//lib/prism/node.rb#14500 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#13720 + # source://prism//lib/prism/node.rb#14495 def compact_child_nodes; end # def copy: (**params) -> RequiredKeywordParameterNode # - # source://prism//lib/prism/node.rb#13730 + # source://prism//lib/prism/node.rb#14505 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//lib/prism/node.rb#13715 + # source://prism//lib/prism/node.rb#14490 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#13742 + # source://prism//lib/prism/node.rb#14517 sig do params( keys: T::Array[Symbol] @@ -21916,18 +24042,18 @@ class Prism::RequiredKeywordParameterNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#13747 + # source://prism//lib/prism/node.rb#14522 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#13697 + # source://prism//lib/prism/node.rb#14472 sig { returns(Symbol) } def name; end # attr_reader name_loc: Location # - # source://prism//lib/prism/node.rb#13700 + # source://prism//lib/prism/node.rb#14475 sig { returns(Prism::Location) } def name_loc; end @@ -21946,7 +24072,7 @@ class Prism::RequiredKeywordParameterNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#13768 + # source://prism//lib/prism/node.rb#14543 def type; end class << self @@ -21957,7 +24083,7 @@ class Prism::RequiredKeywordParameterNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#13778 + # source://prism//lib/prism/node.rb#14553 def type; end end end @@ -21968,54 +24094,54 @@ end # ^ # end # -# source://prism//lib/prism/node.rb#13788 +# source://prism//lib/prism/node.rb#14563 class Prism::RequiredParameterNode < ::Prism::Node # def initialize: (name: Symbol, location: Location) -> void # # @return [RequiredParameterNode] a new instance of RequiredParameterNode # - # source://prism//lib/prism/node.rb#13793 + # source://prism//lib/prism/node.rb#14568 sig { params(name: Symbol, location: Prism::Location).void } def initialize(name, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#13799 + # source://prism//lib/prism/node.rb#14574 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#13804 + # source://prism//lib/prism/node.rb#14579 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#13814 + # source://prism//lib/prism/node.rb#14589 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#13809 + # source://prism//lib/prism/node.rb#14584 def compact_child_nodes; end # def copy: (**params) -> RequiredParameterNode # - # source://prism//lib/prism/node.rb#13819 + # source://prism//lib/prism/node.rb#14594 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//lib/prism/node.rb#13804 + # source://prism//lib/prism/node.rb#14579 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#13830 + # source://prism//lib/prism/node.rb#14605 sig do params( keys: T::Array[Symbol] @@ -22025,12 +24151,12 @@ class Prism::RequiredParameterNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#13835 + # source://prism//lib/prism/node.rb#14610 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol # - # source://prism//lib/prism/node.rb#13790 + # source://prism//lib/prism/node.rb#14565 sig { returns(Symbol) } def name; end @@ -22049,7 +24175,7 @@ class Prism::RequiredParameterNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#13855 + # source://prism//lib/prism/node.rb#14630 def type; end class << self @@ -22060,7 +24186,7 @@ class Prism::RequiredParameterNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#13865 + # source://prism//lib/prism/node.rb#14640 def type; end end end @@ -22070,13 +24196,13 @@ end # foo rescue nil # ^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#13874 +# source://prism//lib/prism/node.rb#14649 class Prism::RescueModifierNode < ::Prism::Node # def initialize: (expression: Node, keyword_loc: Location, rescue_expression: Node, location: Location) -> void # # @return [RescueModifierNode] a new instance of RescueModifierNode # - # source://prism//lib/prism/node.rb#13885 + # source://prism//lib/prism/node.rb#14660 sig do params( expression: Prism::Node, @@ -22089,42 +24215,42 @@ class Prism::RescueModifierNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#13893 + # source://prism//lib/prism/node.rb#14668 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#13902 + # source://prism//lib/prism/node.rb#14677 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#13912 + # source://prism//lib/prism/node.rb#14687 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#13907 + # source://prism//lib/prism/node.rb#14682 def compact_child_nodes; end # def copy: (**params) -> RescueModifierNode # - # source://prism//lib/prism/node.rb#13917 + # source://prism//lib/prism/node.rb#14692 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//lib/prism/node.rb#13902 + # source://prism//lib/prism/node.rb#14677 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#13930 + # source://prism//lib/prism/node.rb#14705 sig do params( keys: T::Array[Symbol] @@ -22134,34 +24260,34 @@ class Prism::RescueModifierNode < ::Prism::Node # attr_reader expression: Node # - # source://prism//lib/prism/node.rb#13876 + # source://prism//lib/prism/node.rb#14651 sig { returns(Prism::Node) } def expression; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#13940 + # source://prism//lib/prism/node.rb#14715 def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#13935 + # source://prism//lib/prism/node.rb#14710 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#13879 + # source://prism//lib/prism/node.rb#14654 sig { returns(Prism::Location) } def keyword_loc; end # attr_reader rescue_expression: Node # - # source://prism//lib/prism/node.rb#13882 + # source://prism//lib/prism/node.rb#14657 sig { returns(Prism::Node) } def rescue_expression; end - # source://prism//lib/prism/node.rb#13897 + # source://prism//lib/prism/node.rb#14672 def set_newline_flag(newline_marked); end # Sometimes you want to check an instance of a node against a list of @@ -22179,7 +24305,7 @@ class Prism::RescueModifierNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#13964 + # source://prism//lib/prism/node.rb#14739 def type; end class << self @@ -22190,7 +24316,7 @@ class Prism::RescueModifierNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#13974 + # source://prism//lib/prism/node.rb#14749 def type; end end end @@ -22206,13 +24332,13 @@ end # `Foo, *splat, Bar` are in the `exceptions` field. # `ex` is in the `exception` field. # -# source://prism//lib/prism/node.rb#13989 +# source://prism//lib/prism/node.rb#14764 class Prism::RescueNode < ::Prism::Node # def initialize: (keyword_loc: Location, exceptions: Array[Node], operator_loc: Location?, reference: Node?, statements: StatementsNode?, consequent: RescueNode?, location: Location) -> void # # @return [RescueNode] a new instance of RescueNode # - # source://prism//lib/prism/node.rb#14009 + # source://prism//lib/prism/node.rb#14784 sig do params( keyword_loc: Prism::Location, @@ -22228,48 +24354,48 @@ class Prism::RescueNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#14020 + # source://prism//lib/prism/node.rb#14795 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#14025 + # source://prism//lib/prism/node.rb#14800 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#14040 + # source://prism//lib/prism/node.rb#14815 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#14030 + # source://prism//lib/prism/node.rb#14805 def compact_child_nodes; end # attr_reader consequent: RescueNode? # - # source://prism//lib/prism/node.rb#14006 + # source://prism//lib/prism/node.rb#14781 sig { returns(T.nilable(Prism::RescueNode)) } def consequent; end # def copy: (**params) -> RescueNode # - # source://prism//lib/prism/node.rb#14045 + # source://prism//lib/prism/node.rb#14820 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//lib/prism/node.rb#14025 + # source://prism//lib/prism/node.rb#14800 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#14061 + # source://prism//lib/prism/node.rb#14836 sig do params( keys: T::Array[Symbol] @@ -22279,48 +24405,48 @@ class Prism::RescueNode < ::Prism::Node # attr_reader exceptions: Array[Node] # - # source://prism//lib/prism/node.rb#13994 + # source://prism//lib/prism/node.rb#14769 sig { returns(T::Array[Prism::Node]) } def exceptions; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#14076 + # source://prism//lib/prism/node.rb#14851 def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#14066 + # source://prism//lib/prism/node.rb#14841 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#13991 + # source://prism//lib/prism/node.rb#14766 sig { returns(Prism::Location) } def keyword_loc; end # def operator: () -> String? # - # source://prism//lib/prism/node.rb#14071 + # source://prism//lib/prism/node.rb#14846 sig { returns(T.nilable(String)) } def operator; end # attr_reader operator_loc: Location? # - # source://prism//lib/prism/node.rb#13997 + # source://prism//lib/prism/node.rb#14772 sig { returns(T.nilable(Prism::Location)) } def operator_loc; end # attr_reader reference: Node? # - # source://prism//lib/prism/node.rb#14000 + # source://prism//lib/prism/node.rb#14775 sig { returns(T.nilable(Prism::Node)) } def reference; end # attr_reader statements: StatementsNode? # - # source://prism//lib/prism/node.rb#14003 + # source://prism//lib/prism/node.rb#14778 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end @@ -22339,7 +24465,7 @@ class Prism::RescueNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#14116 + # source://prism//lib/prism/node.rb#14891 def type; end class << self @@ -22350,7 +24476,7 @@ class Prism::RescueNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#14126 + # source://prism//lib/prism/node.rb#14901 def type; end end end @@ -22361,13 +24487,13 @@ end # ^^ # end # -# source://prism//lib/prism/node.rb#14136 +# source://prism//lib/prism/node.rb#14911 class Prism::RestParameterNode < ::Prism::Node # def initialize: (name: Symbol?, name_loc: Location?, operator_loc: Location, location: Location) -> void # # @return [RestParameterNode] a new instance of RestParameterNode # - # source://prism//lib/prism/node.rb#14147 + # source://prism//lib/prism/node.rb#14922 sig do params( name: T.nilable(Symbol), @@ -22380,42 +24506,42 @@ class Prism::RestParameterNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#14155 + # source://prism//lib/prism/node.rb#14930 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#14160 + # source://prism//lib/prism/node.rb#14935 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#14170 + # source://prism//lib/prism/node.rb#14945 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#14165 + # source://prism//lib/prism/node.rb#14940 def compact_child_nodes; end # def copy: (**params) -> RestParameterNode # - # source://prism//lib/prism/node.rb#14175 + # source://prism//lib/prism/node.rb#14950 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//lib/prism/node.rb#14160 + # source://prism//lib/prism/node.rb#14935 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#14188 + # source://prism//lib/prism/node.rb#14963 sig do params( keys: T::Array[Symbol] @@ -22425,30 +24551,30 @@ class Prism::RestParameterNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#14198 + # source://prism//lib/prism/node.rb#14973 def inspect(inspector = T.unsafe(nil)); end # attr_reader name: Symbol? # - # source://prism//lib/prism/node.rb#14138 + # source://prism//lib/prism/node.rb#14913 sig { returns(T.nilable(Symbol)) } def name; end # attr_reader name_loc: Location? # - # source://prism//lib/prism/node.rb#14141 + # source://prism//lib/prism/node.rb#14916 sig { returns(T.nilable(Prism::Location)) } def name_loc; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#14193 + # source://prism//lib/prism/node.rb#14968 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#14144 + # source://prism//lib/prism/node.rb#14919 sig { returns(Prism::Location) } def operator_loc; end @@ -22467,7 +24593,7 @@ class Prism::RestParameterNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#14224 + # source://prism//lib/prism/node.rb#14999 def type; end class << self @@ -22478,7 +24604,7 @@ class Prism::RestParameterNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#14234 + # source://prism//lib/prism/node.rb#15009 def type; end end end @@ -22488,54 +24614,54 @@ end # retry # ^^^^^ # -# source://prism//lib/prism/node.rb#14243 +# source://prism//lib/prism/node.rb#15018 class Prism::RetryNode < ::Prism::Node # def initialize: (location: Location) -> void # # @return [RetryNode] a new instance of RetryNode # - # source://prism//lib/prism/node.rb#14245 + # source://prism//lib/prism/node.rb#15020 sig { params(location: Prism::Location).void } def initialize(location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#14250 + # source://prism//lib/prism/node.rb#15025 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#14255 + # source://prism//lib/prism/node.rb#15030 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#14265 + # source://prism//lib/prism/node.rb#15040 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#14260 + # source://prism//lib/prism/node.rb#15035 def compact_child_nodes; end # def copy: (**params) -> RetryNode # - # source://prism//lib/prism/node.rb#14270 + # source://prism//lib/prism/node.rb#15045 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//lib/prism/node.rb#14255 + # source://prism//lib/prism/node.rb#15030 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#14280 + # source://prism//lib/prism/node.rb#15055 sig do params( keys: T::Array[Symbol] @@ -22545,7 +24671,7 @@ class Prism::RetryNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#14285 + # source://prism//lib/prism/node.rb#15060 def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -22563,7 +24689,7 @@ class Prism::RetryNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#14304 + # source://prism//lib/prism/node.rb#15079 def type; end class << self @@ -22574,7 +24700,7 @@ class Prism::RetryNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#14314 + # source://prism//lib/prism/node.rb#15089 def type; end end end @@ -22584,13 +24710,13 @@ end # return 1 # ^^^^^^^^ # -# source://prism//lib/prism/node.rb#14323 +# source://prism//lib/prism/node.rb#15098 class Prism::ReturnNode < ::Prism::Node # def initialize: (keyword_loc: Location, arguments: ArgumentsNode?, location: Location) -> void # # @return [ReturnNode] a new instance of ReturnNode # - # source://prism//lib/prism/node.rb#14331 + # source://prism//lib/prism/node.rb#15106 sig do params( keyword_loc: Prism::Location, @@ -22602,48 +24728,48 @@ class Prism::ReturnNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#14338 + # source://prism//lib/prism/node.rb#15113 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # attr_reader arguments: ArgumentsNode? # - # source://prism//lib/prism/node.rb#14328 + # source://prism//lib/prism/node.rb#15103 sig { returns(T.nilable(Prism::ArgumentsNode)) } def arguments; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#14343 + # source://prism//lib/prism/node.rb#15118 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#14355 + # source://prism//lib/prism/node.rb#15130 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#14348 + # source://prism//lib/prism/node.rb#15123 def compact_child_nodes; end # def copy: (**params) -> ReturnNode # - # source://prism//lib/prism/node.rb#14360 + # source://prism//lib/prism/node.rb#15135 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//lib/prism/node.rb#14343 + # source://prism//lib/prism/node.rb#15118 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#14372 + # source://prism//lib/prism/node.rb#15147 sig do params( keys: T::Array[Symbol] @@ -22653,18 +24779,18 @@ class Prism::ReturnNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#14382 + # source://prism//lib/prism/node.rb#15157 def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#14377 + # source://prism//lib/prism/node.rb#15152 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#14325 + # source://prism//lib/prism/node.rb#15100 sig { returns(Prism::Location) } def keyword_loc; end @@ -22683,7 +24809,7 @@ class Prism::ReturnNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#14408 + # source://prism//lib/prism/node.rb#15183 def type; end class << self @@ -22694,11 +24820,15 @@ class Prism::ReturnNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#14418 + # source://prism//lib/prism/node.rb#15193 def type; end end end +# 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. @@ -22707,94 +24837,101 @@ end # is meant as a stopgap until developers migrate to using prism. It is also # meant as a test harness for the prism parser. # -# source://prism//lib/prism/ripper_compat.rb#13 -class Prism::RipperCompat +# To use this class, you treat `Prism::RipperCompat` effectively as you would +# treat the `Ripper` class. +# +# source://prism//lib/prism/ripper_compat.rb#20 +class Prism::RipperCompat < ::Prism::Visitor # Create a new RipperCompat object with the given source. # # @return [RipperCompat] a new instance of RipperCompat # - # source://prism//lib/prism/ripper_compat.rb#67 + # source://prism//lib/prism/ripper_compat.rb#74 def initialize(source); end # The current column number of the parser. # - # source://prism//lib/prism/ripper_compat.rb#64 + # source://prism//lib/prism/ripper_compat.rb#71 def column; end # True if the parser encountered an error during parsing. # # @return [Boolean] # - # source://prism//lib/prism/ripper_compat.rb#79 + # source://prism//lib/prism/ripper_compat.rb#86 def error?; end # The current line number of the parser. # - # source://prism//lib/prism/ripper_compat.rb#61 + # source://prism//lib/prism/ripper_compat.rb#68 def lineno; end # Parse the source and return the result. # - # source://prism//lib/prism/ripper_compat.rb#84 + # source://prism//lib/prism/ripper_compat.rb#91 def parse; end # The source that is being parsed. # - # source://prism//lib/prism/ripper_compat.rb#58 + # source://prism//lib/prism/ripper_compat.rb#65 def source; end - # This method is responsible for dispatching to the correct visitor method - # based on the type of the node. - # - # source://prism//lib/prism/ripper_compat.rb#94 - def visit(node); end - # Visit a CallNode node. # - # source://prism//lib/prism/ripper_compat.rb#99 + # source://prism//lib/prism/ripper_compat.rb#110 def visit_call_node(node); end + # Visit a FloatNode node. + # + # source://prism//lib/prism/ripper_compat.rb#123 + def visit_float_node(node); end + + # Visit a ImaginaryNode node. + # + # source://prism//lib/prism/ripper_compat.rb#129 + def visit_imaginary_node(node); end + # Visit an IntegerNode node. # - # source://prism//lib/prism/ripper_compat.rb#114 + # source://prism//lib/prism/ripper_compat.rb#135 def visit_integer_node(node); end # Visit a ProgramNode node. # - # source://prism//lib/prism/ripper_compat.rb#142 + # source://prism//lib/prism/ripper_compat.rb#155 def visit_program_node(node); end - # Visit a StatementsNode node. + # Visit a RationalNode node. # - # source://prism//lib/prism/ripper_compat.rb#120 - def visit_statements_node(node); end + # source://prism//lib/prism/ripper_compat.rb#141 + def visit_rational_node(node); end - # Visit a token found during parsing. + # Visit a StatementsNode node. # - # source://prism//lib/prism/ripper_compat.rb#128 - def visit_token(node); end + # source://prism//lib/prism/ripper_compat.rb#147 + def visit_statements_node(node); end private - # source://prism//lib/prism/ripper_compat.rb#180 + # source://prism//lib/prism/ripper_compat.rb#192 def _dispatch0; end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def _dispatch1(_); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def _dispatch2(_, _); end - # source://prism//lib/prism/ripper_compat.rb#183 + # source://prism//lib/prism/ripper_compat.rb#195 def _dispatch3(_, _, _); end - # source://prism//lib/prism/ripper_compat.rb#184 + # source://prism//lib/prism/ripper_compat.rb#196 def _dispatch4(_, _, _, _); end - # source://prism//lib/prism/ripper_compat.rb#185 + # source://prism//lib/prism/ripper_compat.rb#197 def _dispatch5(_, _, _, _, _); end - # source://prism//lib/prism/ripper_compat.rb#186 + # source://prism//lib/prism/ripper_compat.rb#198 def _dispatch7(_, _, _, _, _, _, _); end # This method is responsible for updating lineno and column information @@ -22803,593 +24940,593 @@ class Prism::RipperCompat # This method could be drastically improved with some caching on the start # of every line, but for now it's good enough. # - # source://prism//lib/prism/ripper_compat.rb#168 + # source://prism//lib/prism/ripper_compat.rb#182 def bounds(location); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_BEGIN(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_CHAR(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_END(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on___end__(_); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_alias(_, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_alias_error(_, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_aref(_, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_aref_field(_, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_arg_ambiguous(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_arg_paren(_); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_args_add(_, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_args_add_block(_, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_args_add_star(_, _); end - # source://prism//lib/prism/ripper_compat.rb#180 + # source://prism//lib/prism/ripper_compat.rb#192 def on_args_forward; end - # source://prism//lib/prism/ripper_compat.rb#180 + # source://prism//lib/prism/ripper_compat.rb#192 def on_args_new; end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_array(_); end - # source://prism//lib/prism/ripper_compat.rb#184 + # source://prism//lib/prism/ripper_compat.rb#196 def on_aryptn(_, _, _, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_assign(_, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_assign_error(_, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_assoc_new(_, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_assoc_splat(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_assoclist_from_args(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_backref(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_backtick(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_bare_assoc_hash(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_begin(_); end - # source://prism//lib/prism/ripper_compat.rb#183 + # source://prism//lib/prism/ripper_compat.rb#195 def on_binary(_, _, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_block_var(_, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_blockarg(_); end - # source://prism//lib/prism/ripper_compat.rb#184 + # source://prism//lib/prism/ripper_compat.rb#196 def on_bodystmt(_, _, _, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_brace_block(_, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_break(_); end - # source://prism//lib/prism/ripper_compat.rb#183 + # source://prism//lib/prism/ripper_compat.rb#195 def on_call(_, _, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_case(_, _); end - # source://prism//lib/prism/ripper_compat.rb#183 + # source://prism//lib/prism/ripper_compat.rb#195 def on_class(_, _, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_class_name_error(_, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_comma(_); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_command(_, _); end - # source://prism//lib/prism/ripper_compat.rb#184 + # source://prism//lib/prism/ripper_compat.rb#196 def on_command_call(_, _, _, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_comment(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_const(_); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_const_path_field(_, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_const_path_ref(_, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_const_ref(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_cvar(_); end - # source://prism//lib/prism/ripper_compat.rb#183 + # source://prism//lib/prism/ripper_compat.rb#195 def on_def(_, _, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_defined(_); end - # source://prism//lib/prism/ripper_compat.rb#185 + # source://prism//lib/prism/ripper_compat.rb#197 def on_defs(_, _, _, _, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_do_block(_, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_dot2(_, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_dot3(_, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_dyna_symbol(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_else(_); end - # source://prism//lib/prism/ripper_compat.rb#183 + # source://prism//lib/prism/ripper_compat.rb#195 def on_elsif(_, _, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_embdoc(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_embdoc_beg(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_embdoc_end(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_embexpr_beg(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_embexpr_end(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_embvar(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_ensure(_); end - # source://prism//lib/prism/ripper_compat.rb#180 + # source://prism//lib/prism/ripper_compat.rb#192 def on_excessed_comma; end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_fcall(_); end - # source://prism//lib/prism/ripper_compat.rb#183 + # source://prism//lib/prism/ripper_compat.rb#195 def on_field(_, _, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_float(_); end - # source://prism//lib/prism/ripper_compat.rb#184 + # source://prism//lib/prism/ripper_compat.rb#196 def on_fndptn(_, _, _, _); end - # source://prism//lib/prism/ripper_compat.rb#183 + # source://prism//lib/prism/ripper_compat.rb#195 def on_for(_, _, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_gvar(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_hash(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_heredoc_beg(_); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_heredoc_dedent(_, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_heredoc_end(_); end - # source://prism//lib/prism/ripper_compat.rb#183 + # source://prism//lib/prism/ripper_compat.rb#195 def on_hshptn(_, _, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_ident(_); end - # source://prism//lib/prism/ripper_compat.rb#183 + # source://prism//lib/prism/ripper_compat.rb#195 def on_if(_, _, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_if_mod(_, _); end - # source://prism//lib/prism/ripper_compat.rb#183 + # source://prism//lib/prism/ripper_compat.rb#195 def on_ifop(_, _, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_ignored_nl(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_ignored_sp(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_imaginary(_); end - # source://prism//lib/prism/ripper_compat.rb#183 + # source://prism//lib/prism/ripper_compat.rb#195 def on_in(_, _, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_int(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_ivar(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_kw(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_kwrest_param(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_label(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_label_end(_); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_lambda(_, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_lbrace(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_lbracket(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_lparen(_); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_magic_comment(_, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_massign(_, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_method_add_arg(_, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_method_add_block(_, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_mlhs_add(_, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_mlhs_add_post(_, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_mlhs_add_star(_, _); end - # source://prism//lib/prism/ripper_compat.rb#180 + # source://prism//lib/prism/ripper_compat.rb#192 def on_mlhs_new; end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_mlhs_paren(_); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_module(_, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_mrhs_add(_, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_mrhs_add_star(_, _); end - # source://prism//lib/prism/ripper_compat.rb#180 + # source://prism//lib/prism/ripper_compat.rb#192 def on_mrhs_new; end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_mrhs_new_from_args(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_next(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_nl(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_nokw_param(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_op(_); end - # source://prism//lib/prism/ripper_compat.rb#183 + # source://prism//lib/prism/ripper_compat.rb#195 def on_opassign(_, _, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_operator_ambiguous(_, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_param_error(_, _); end - # source://prism//lib/prism/ripper_compat.rb#186 + # source://prism//lib/prism/ripper_compat.rb#198 def on_params(_, _, _, _, _, _, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_paren(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_parse_error(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_period(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_program(_); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_qsymbols_add(_, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_qsymbols_beg(_); end - # source://prism//lib/prism/ripper_compat.rb#180 + # source://prism//lib/prism/ripper_compat.rb#192 def on_qsymbols_new; end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_qwords_add(_, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_qwords_beg(_); end - # source://prism//lib/prism/ripper_compat.rb#180 + # source://prism//lib/prism/ripper_compat.rb#192 def on_qwords_new; end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_rational(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_rbrace(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_rbracket(_); end - # source://prism//lib/prism/ripper_compat.rb#180 + # source://prism//lib/prism/ripper_compat.rb#192 def on_redo; end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_regexp_add(_, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_regexp_beg(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_regexp_end(_); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_regexp_literal(_, _); end - # source://prism//lib/prism/ripper_compat.rb#180 + # source://prism//lib/prism/ripper_compat.rb#192 def on_regexp_new; end - # source://prism//lib/prism/ripper_compat.rb#184 + # source://prism//lib/prism/ripper_compat.rb#196 def on_rescue(_, _, _, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_rescue_mod(_, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_rest_param(_); end - # source://prism//lib/prism/ripper_compat.rb#180 + # source://prism//lib/prism/ripper_compat.rb#192 def on_retry; end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_return(_); end - # source://prism//lib/prism/ripper_compat.rb#180 + # source://prism//lib/prism/ripper_compat.rb#192 def on_return0; end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_rparen(_); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_sclass(_, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_semicolon(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_sp(_); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_stmts_add(_, _); end - # source://prism//lib/prism/ripper_compat.rb#180 + # source://prism//lib/prism/ripper_compat.rb#192 def on_stmts_new; end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_string_add(_, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_string_concat(_, _); end - # source://prism//lib/prism/ripper_compat.rb#180 + # source://prism//lib/prism/ripper_compat.rb#192 def on_string_content; end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_string_dvar(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_string_embexpr(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_string_literal(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_super(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_symbeg(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_symbol(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_symbol_literal(_); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_symbols_add(_, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_symbols_beg(_); end - # source://prism//lib/prism/ripper_compat.rb#180 + # source://prism//lib/prism/ripper_compat.rb#192 def on_symbols_new; end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_tlambda(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_tlambeg(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_top_const_field(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_top_const_ref(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_tstring_beg(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_tstring_content(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_tstring_end(_); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_unary(_, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_undef(_); end - # source://prism//lib/prism/ripper_compat.rb#183 + # source://prism//lib/prism/ripper_compat.rb#195 def on_unless(_, _, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_unless_mod(_, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_until(_, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_until_mod(_, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_var_alias(_, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_var_field(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_var_ref(_); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_vcall(_); end - # source://prism//lib/prism/ripper_compat.rb#180 + # source://prism//lib/prism/ripper_compat.rb#192 def on_void_stmt; end - # source://prism//lib/prism/ripper_compat.rb#183 + # source://prism//lib/prism/ripper_compat.rb#195 def on_when(_, _, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_while(_, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_while_mod(_, _); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_word_add(_, _); end - # source://prism//lib/prism/ripper_compat.rb#180 + # source://prism//lib/prism/ripper_compat.rb#192 def on_word_new; end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_words_add(_, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_words_beg(_); end - # source://prism//lib/prism/ripper_compat.rb#180 + # source://prism//lib/prism/ripper_compat.rb#192 def on_words_new; end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_words_sep(_); end - # source://prism//lib/prism/ripper_compat.rb#182 + # source://prism//lib/prism/ripper_compat.rb#194 def on_xstring_add(_, _); end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_xstring_literal(_); end - # source://prism//lib/prism/ripper_compat.rb#180 + # source://prism//lib/prism/ripper_compat.rb#192 def on_xstring_new; end - # source://prism//lib/prism/ripper_compat.rb#181 + # source://prism//lib/prism/ripper_compat.rb#193 def on_yield(_); end - # source://prism//lib/prism/ripper_compat.rb#180 + # source://prism//lib/prism/ripper_compat.rb#192 def on_yield0; end - # source://prism//lib/prism/ripper_compat.rb#180 + # source://prism//lib/prism/ripper_compat.rb#192 def on_zsuper; end # Lazily initialize the parse result. # - # source://prism//lib/prism/ripper_compat.rb#176 + # source://prism//lib/prism/ripper_compat.rb#188 def result; end class << self # This is a convenience method that runs the SexpBuilderPP subclass parser. # - # source://prism//lib/prism/ripper_compat.rb#157 + # source://prism//lib/prism/ripper_compat.rb#171 def sexp(source); end # This is a convenience method that runs the SexpBuilder subclass parser. # - # source://prism//lib/prism/ripper_compat.rb#152 + # source://prism//lib/prism/ripper_compat.rb#166 def sexp_raw(source); end end end @@ -23397,578 +25534,578 @@ end # This class mirrors the ::Ripper::SexpBuilder subclass of ::Ripper that # returns the arrays of [type, *children]. # -# source://prism//lib/prism/ripper_compat.rb#16 +# source://prism//lib/prism/ripper_compat.rb#23 class Prism::RipperCompat::SexpBuilder < ::Prism::RipperCompat private - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_BEGIN(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_CHAR(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_END(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on___end__(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_alias(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_alias_error(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_aref(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_aref_field(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_arg_ambiguous(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_arg_paren(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_args_add(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_args_add_block(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_args_add_star(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_args_forward(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_args_new(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_array(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_aryptn(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_assign(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_assign_error(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_assoc_new(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_assoc_splat(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_assoclist_from_args(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_backref(value); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_backtick(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_bare_assoc_hash(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_begin(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_binary(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_block_var(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_blockarg(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_bodystmt(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_brace_block(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_break(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_call(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_case(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_class(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_class_name_error(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_comma(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_command(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_command_call(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_comment(value); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_const(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_const_path_field(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_const_path_ref(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_const_ref(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_cvar(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_def(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_defined(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_defs(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_do_block(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_dot2(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_dot3(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_dyna_symbol(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_else(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_elsif(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_embdoc(value); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_embdoc_beg(value); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_embdoc_end(value); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_embexpr_beg(value); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_embexpr_end(value); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_embvar(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_ensure(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_excessed_comma(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_fcall(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_field(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_float(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_fndptn(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_for(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_gvar(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_hash(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_heredoc_beg(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_heredoc_dedent(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_heredoc_end(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_hshptn(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_ident(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_if(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_if_mod(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_ifop(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_ignored_nl(value); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_ignored_sp(value); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_imaginary(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_in(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_int(value); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_ivar(value); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_kw(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_kwrest_param(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_label(value); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_label_end(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_lambda(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_lbrace(value); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_lbracket(value); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_lparen(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_magic_comment(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_massign(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_method_add_arg(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_method_add_block(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_mlhs_add(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_mlhs_add_post(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_mlhs_add_star(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_mlhs_new(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_mlhs_paren(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_module(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_mrhs_add(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_mrhs_add_star(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_mrhs_new(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_mrhs_new_from_args(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_next(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_nl(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_nokw_param(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_op(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_opassign(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_operator_ambiguous(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_param_error(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_params(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_paren(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_parse_error(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_period(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_program(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_qsymbols_add(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_qsymbols_beg(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_qsymbols_new(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_qwords_add(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_qwords_beg(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_qwords_new(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_rational(value); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_rbrace(value); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_rbracket(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_redo(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_regexp_add(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_regexp_beg(value); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_regexp_end(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_regexp_literal(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_regexp_new(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_rescue(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_rescue_mod(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_rest_param(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_retry(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_return(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_return0(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_rparen(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_sclass(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_semicolon(value); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_sp(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_stmts_add(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_stmts_new(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_string_add(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_string_concat(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_string_content(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_string_dvar(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_string_embexpr(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_string_literal(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_super(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_symbeg(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_symbol(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_symbol_literal(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_symbols_add(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_symbols_beg(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_symbols_new(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_tlambda(value); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_tlambeg(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_top_const_field(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_top_const_ref(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_tstring_beg(value); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_tstring_content(value); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_tstring_end(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_unary(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_undef(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_unless(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_unless_mod(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_until(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_until_mod(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_var_alias(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_var_field(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_var_ref(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_vcall(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_void_stmt(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_when(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_while(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_while_mod(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_word_add(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_word_new(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_words_add(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_words_beg(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_words_new(*args); end - # source://prism//lib/prism/ripper_compat.rb#26 + # source://prism//lib/prism/ripper_compat.rb#33 def on_words_sep(value); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_xstring_add(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_xstring_literal(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_xstring_new(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_yield(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_yield0(*args); end - # source://prism//lib/prism/ripper_compat.rb#20 + # source://prism//lib/prism/ripper_compat.rb#27 def on_zsuper(*args); end end @@ -23976,83 +26113,83 @@ end # returns the same values as ::Ripper::SexpBuilder except with a couple of # niceties that flatten linked lists into arrays. # -# source://prism//lib/prism/ripper_compat.rb#35 +# source://prism//lib/prism/ripper_compat.rb#42 class Prism::RipperCompat::SexpBuilderPP < ::Prism::RipperCompat::SexpBuilder private - # source://prism//lib/prism/ripper_compat.rb#38 + # source://prism//lib/prism/ripper_compat.rb#45 def _dispatch_event_new; end - # source://prism//lib/prism/ripper_compat.rb#42 + # source://prism//lib/prism/ripper_compat.rb#49 def _dispatch_event_push(list, item); end - # source://prism//lib/prism/ripper_compat.rb#42 + # source://prism//lib/prism/ripper_compat.rb#49 def on_args_add(list, item); end - # source://prism//lib/prism/ripper_compat.rb#38 + # source://prism//lib/prism/ripper_compat.rb#45 def on_args_new; end - # source://prism//lib/prism/ripper_compat.rb#42 + # source://prism//lib/prism/ripper_compat.rb#49 def on_mlhs_add(list, item); end - # source://prism//lib/prism/ripper_compat.rb#38 + # source://prism//lib/prism/ripper_compat.rb#45 def on_mlhs_new; end - # source://prism//lib/prism/ripper_compat.rb#42 + # source://prism//lib/prism/ripper_compat.rb#49 def on_mrhs_add(list, item); end - # source://prism//lib/prism/ripper_compat.rb#38 + # source://prism//lib/prism/ripper_compat.rb#45 def on_mrhs_new; end - # source://prism//lib/prism/ripper_compat.rb#42 + # source://prism//lib/prism/ripper_compat.rb#49 def on_qsymbols_add(list, item); end - # source://prism//lib/prism/ripper_compat.rb#38 + # source://prism//lib/prism/ripper_compat.rb#45 def on_qsymbols_new; end - # source://prism//lib/prism/ripper_compat.rb#42 + # source://prism//lib/prism/ripper_compat.rb#49 def on_qwords_add(list, item); end - # source://prism//lib/prism/ripper_compat.rb#38 + # source://prism//lib/prism/ripper_compat.rb#45 def on_qwords_new; end - # source://prism//lib/prism/ripper_compat.rb#42 + # source://prism//lib/prism/ripper_compat.rb#49 def on_regexp_add(list, item); end - # source://prism//lib/prism/ripper_compat.rb#38 + # source://prism//lib/prism/ripper_compat.rb#45 def on_regexp_new; end - # source://prism//lib/prism/ripper_compat.rb#42 + # source://prism//lib/prism/ripper_compat.rb#49 def on_stmts_add(list, item); end - # source://prism//lib/prism/ripper_compat.rb#38 + # source://prism//lib/prism/ripper_compat.rb#45 def on_stmts_new; end - # source://prism//lib/prism/ripper_compat.rb#42 + # source://prism//lib/prism/ripper_compat.rb#49 def on_string_add(list, item); end - # source://prism//lib/prism/ripper_compat.rb#42 + # source://prism//lib/prism/ripper_compat.rb#49 def on_symbols_add(list, item); end - # source://prism//lib/prism/ripper_compat.rb#38 + # source://prism//lib/prism/ripper_compat.rb#45 def on_symbols_new; end - # source://prism//lib/prism/ripper_compat.rb#42 + # source://prism//lib/prism/ripper_compat.rb#49 def on_word_add(list, item); end - # source://prism//lib/prism/ripper_compat.rb#38 + # source://prism//lib/prism/ripper_compat.rb#45 def on_word_new; end - # source://prism//lib/prism/ripper_compat.rb#42 + # source://prism//lib/prism/ripper_compat.rb#49 def on_words_add(list, item); end - # source://prism//lib/prism/ripper_compat.rb#38 + # source://prism//lib/prism/ripper_compat.rb#45 def on_words_new; end - # source://prism//lib/prism/ripper_compat.rb#42 + # source://prism//lib/prism/ripper_compat.rb#49 def on_xstring_add(list, item); end - # source://prism//lib/prism/ripper_compat.rb#38 + # source://prism//lib/prism/ripper_compat.rb#45 def on_xstring_new; end end @@ -24061,54 +26198,54 @@ end # self # ^^^^ # -# source://prism//lib/prism/node.rb#14427 +# source://prism//lib/prism/node.rb#15202 class Prism::SelfNode < ::Prism::Node # def initialize: (location: Location) -> void # # @return [SelfNode] a new instance of SelfNode # - # source://prism//lib/prism/node.rb#14429 + # source://prism//lib/prism/node.rb#15204 sig { params(location: Prism::Location).void } def initialize(location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#14434 + # source://prism//lib/prism/node.rb#15209 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#14439 + # source://prism//lib/prism/node.rb#15214 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#14449 + # source://prism//lib/prism/node.rb#15224 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#14444 + # source://prism//lib/prism/node.rb#15219 def compact_child_nodes; end # def copy: (**params) -> SelfNode # - # source://prism//lib/prism/node.rb#14454 + # source://prism//lib/prism/node.rb#15229 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//lib/prism/node.rb#14439 + # source://prism//lib/prism/node.rb#15214 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#14464 + # source://prism//lib/prism/node.rb#15239 sig do params( keys: T::Array[Symbol] @@ -24118,7 +26255,7 @@ class Prism::SelfNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#14469 + # source://prism//lib/prism/node.rb#15244 def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -24136,7 +26273,7 @@ class Prism::SelfNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#14488 + # source://prism//lib/prism/node.rb#15263 def type; end class << self @@ -24147,7 +26284,7 @@ class Prism::SelfNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#14498 + # source://prism//lib/prism/node.rb#15273 def type; end end end @@ -24202,34 +26339,31 @@ class Prism::Serialize::Loader # source://prism//lib/prism/serialize.rb#54 def io; end - # source://prism//lib/prism/serialize.rb#95 + # source://prism//lib/prism/serialize.rb#92 def load_comments; end # source://prism//lib/prism/serialize.rb#82 def load_encoding; end - # source://prism//lib/prism/serialize.rb#86 - def load_force_encoding; end - # source://prism//lib/prism/serialize.rb#73 def load_header; end - # source://prism//lib/prism/serialize.rb#105 + # source://prism//lib/prism/serialize.rb#102 def load_metadata; end - # source://prism//lib/prism/serialize.rb#140 + # source://prism//lib/prism/serialize.rb#135 def load_nodes; end - # source://prism//lib/prism/serialize.rb#153 + # source://prism//lib/prism/serialize.rb#148 def load_result; end - # source://prism//lib/prism/serialize.rb#91 + # source://prism//lib/prism/serialize.rb#88 def load_start_line; end - # source://prism//lib/prism/serialize.rb#113 + # source://prism//lib/prism/serialize.rb#111 def load_tokens; end - # source://prism//lib/prism/serialize.rb#126 + # source://prism//lib/prism/serialize.rb#124 def load_tokens_result; end # Returns the value of attribute serialized. @@ -24279,11 +26413,14 @@ class Prism::Serialize::Loader # source://prism//lib/prism/serialize.rb#191 def load_string; end + # source://prism//lib/prism/serialize.rb#171 + def load_varsint; end + # variable-length integer using https://en.wikipedia.org/wiki/LEB128 # This is also what protobuf uses: https://protobuf.dev/programming-guides/encoding/#varints # - # source://prism//lib/prism/serialize.rb#162 - def load_varint; end + # source://prism//lib/prism/serialize.rb#157 + def load_varuint; end end # The major version of prism that we are expecting to find in the serialized @@ -24306,7 +26443,7 @@ Prism::Serialize::PATCH_VERSION = T.let(T.unsafe(nil), Integer) # The token types that can be indexed by their enum values. # -# source://prism//lib/prism/serialize.rb#1130 +# source://prism//lib/prism/serialize.rb#1154 Prism::Serialize::TOKEN_TYPES = T.let(T.unsafe(nil), Array) # Represents a singleton class declaration involving the `class` keyword. @@ -24314,13 +26451,13 @@ Prism::Serialize::TOKEN_TYPES = T.let(T.unsafe(nil), Array) # class << self end # ^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#14507 +# source://prism//lib/prism/node.rb#15282 class Prism::SingletonClassNode < ::Prism::Node # def initialize: (locals: Array[Symbol], class_keyword_loc: Location, operator_loc: Location, expression: Node, body: Node?, end_keyword_loc: Location, location: Location) -> void # # @return [SingletonClassNode] a new instance of SingletonClassNode # - # source://prism//lib/prism/node.rb#14527 + # source://prism//lib/prism/node.rb#15302 sig do params( locals: T::Array[Symbol], @@ -24336,60 +26473,60 @@ class Prism::SingletonClassNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#14538 + # source://prism//lib/prism/node.rb#15313 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # attr_reader body: Node? # - # source://prism//lib/prism/node.rb#14521 + # source://prism//lib/prism/node.rb#15296 sig { returns(T.nilable(Prism::Node)) } def body; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#14543 + # source://prism//lib/prism/node.rb#15318 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def class_keyword: () -> String # - # source://prism//lib/prism/node.rb#14582 + # source://prism//lib/prism/node.rb#15357 sig { returns(String) } def class_keyword; end # attr_reader class_keyword_loc: Location # - # source://prism//lib/prism/node.rb#14512 + # source://prism//lib/prism/node.rb#15287 sig { returns(Prism::Location) } def class_keyword_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#14556 + # source://prism//lib/prism/node.rb#15331 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#14548 + # source://prism//lib/prism/node.rb#15323 def compact_child_nodes; end # def copy: (**params) -> SingletonClassNode # - # source://prism//lib/prism/node.rb#14561 + # source://prism//lib/prism/node.rb#15336 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//lib/prism/node.rb#14543 + # source://prism//lib/prism/node.rb#15318 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#14577 + # source://prism//lib/prism/node.rb#15352 sig do params( keys: T::Array[Symbol] @@ -24399,42 +26536,42 @@ class Prism::SingletonClassNode < ::Prism::Node # def end_keyword: () -> String # - # source://prism//lib/prism/node.rb#14592 + # source://prism//lib/prism/node.rb#15367 sig { returns(String) } def end_keyword; end # attr_reader end_keyword_loc: Location # - # source://prism//lib/prism/node.rb#14524 + # source://prism//lib/prism/node.rb#15299 sig { returns(Prism::Location) } def end_keyword_loc; end # attr_reader expression: Node # - # source://prism//lib/prism/node.rb#14518 + # source://prism//lib/prism/node.rb#15293 sig { returns(Prism::Node) } def expression; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#14597 + # source://prism//lib/prism/node.rb#15372 def inspect(inspector = T.unsafe(nil)); end # attr_reader locals: Array[Symbol] # - # source://prism//lib/prism/node.rb#14509 + # source://prism//lib/prism/node.rb#15284 sig { returns(T::Array[Symbol]) } def locals; end # def operator: () -> String # - # source://prism//lib/prism/node.rb#14587 + # source://prism//lib/prism/node.rb#15362 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#14515 + # source://prism//lib/prism/node.rb#15290 sig { returns(Prism::Location) } def operator_loc; end @@ -24453,7 +26590,7 @@ class Prism::SingletonClassNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#14628 + # source://prism//lib/prism/node.rb#15403 def type; end class << self @@ -24464,7 +26601,7 @@ class Prism::SingletonClassNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#14638 + # source://prism//lib/prism/node.rb#15413 def type; end end end @@ -24484,25 +26621,35 @@ class Prism::Source # source://prism//lib/prism/parse_result.rb#20 def initialize(source, start_line = T.unsafe(nil), offsets = T.unsafe(nil)); end + # Return the column number in characters for the given byte offset. + # + # source://prism//lib/prism/parse_result.rb#55 + def character_column(byte_offset); end + + # Return the character offset for the given byte offset. + # + # source://prism//lib/prism/parse_result.rb#50 + def character_offset(byte_offset); end + # Return the column number for the given byte offset. # # source://prism//lib/prism/parse_result.rb#45 - sig { params(value: Integer).returns(Integer) } - def column(value); end + def column(byte_offset); end # Binary search through the offsets to find the line number for the given # byte offset. # # source://prism//lib/prism/parse_result.rb#34 + def line(byte_offset); end + sig { params(value: Integer).returns(Integer) } - def line(value); end + def line_offset(value); end # Return the byte offset of the start of the line corresponding to the given # byte offset. # # source://prism//lib/prism/parse_result.rb#40 - sig { params(value: Integer).returns(Integer) } - def line_offset(value); end + def line_start(byte_offset); end # The list of newline byte offsets in the source code. # @@ -24514,8 +26661,7 @@ class Prism::Source # byte length. # # source://prism//lib/prism/parse_result.rb#28 - sig { params(offset: Integer, length: Integer).returns(String) } - def slice(offset, length); end + def slice(byte_offset, length); end # The source code that this source object represents. # @@ -24538,14 +26684,14 @@ class Prism::Source # Find all of the newlines in the source code and return their byte offsets # from the start of the string an array. # - # source://prism//lib/prism/parse_result.rb#73 + # source://prism//lib/prism/parse_result.rb#83 def compute_offsets(code); end # Binary search through the offsets to find the line number for the given # byte offset. # - # source://prism//lib/prism/parse_result.rb#53 - def find_line(value); end + # source://prism//lib/prism/parse_result.rb#63 + def find_line(byte_offset); end end # Represents the use of the `__ENCODING__` keyword. @@ -24553,54 +26699,54 @@ end # __ENCODING__ # ^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#14647 +# source://prism//lib/prism/node.rb#15422 class Prism::SourceEncodingNode < ::Prism::Node # def initialize: (location: Location) -> void # # @return [SourceEncodingNode] a new instance of SourceEncodingNode # - # source://prism//lib/prism/node.rb#14649 + # source://prism//lib/prism/node.rb#15424 sig { params(location: Prism::Location).void } def initialize(location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#14654 + # source://prism//lib/prism/node.rb#15429 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#14659 + # source://prism//lib/prism/node.rb#15434 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#14669 + # source://prism//lib/prism/node.rb#15444 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#14664 + # source://prism//lib/prism/node.rb#15439 def compact_child_nodes; end # def copy: (**params) -> SourceEncodingNode # - # source://prism//lib/prism/node.rb#14674 + # source://prism//lib/prism/node.rb#15449 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//lib/prism/node.rb#14659 + # source://prism//lib/prism/node.rb#15434 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#14684 + # source://prism//lib/prism/node.rb#15459 sig do params( keys: T::Array[Symbol] @@ -24610,7 +26756,7 @@ class Prism::SourceEncodingNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#14689 + # source://prism//lib/prism/node.rb#15464 def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -24628,7 +26774,7 @@ class Prism::SourceEncodingNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#14708 + # source://prism//lib/prism/node.rb#15483 def type; end class << self @@ -24639,7 +26785,7 @@ class Prism::SourceEncodingNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#14718 + # source://prism//lib/prism/node.rb#15493 def type; end end end @@ -24649,54 +26795,54 @@ end # __FILE__ # ^^^^^^^^ # -# source://prism//lib/prism/node.rb#14727 +# source://prism//lib/prism/node.rb#15502 class Prism::SourceFileNode < ::Prism::Node # def initialize: (filepath: String, location: Location) -> void # # @return [SourceFileNode] a new instance of SourceFileNode # - # source://prism//lib/prism/node.rb#14732 + # source://prism//lib/prism/node.rb#15507 sig { params(filepath: String, location: Prism::Location).void } def initialize(filepath, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#14738 + # source://prism//lib/prism/node.rb#15513 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#14743 + # source://prism//lib/prism/node.rb#15518 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#14753 + # source://prism//lib/prism/node.rb#15528 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#14748 + # source://prism//lib/prism/node.rb#15523 def compact_child_nodes; end # def copy: (**params) -> SourceFileNode # - # source://prism//lib/prism/node.rb#14758 + # source://prism//lib/prism/node.rb#15533 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//lib/prism/node.rb#14743 + # source://prism//lib/prism/node.rb#15518 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#14769 + # source://prism//lib/prism/node.rb#15544 sig do params( keys: T::Array[Symbol] @@ -24706,13 +26852,13 @@ class Prism::SourceFileNode < ::Prism::Node # attr_reader filepath: String # - # source://prism//lib/prism/node.rb#14729 + # source://prism//lib/prism/node.rb#15504 sig { returns(String) } def filepath; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#14774 + # source://prism//lib/prism/node.rb#15549 def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -24730,7 +26876,7 @@ class Prism::SourceFileNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#14794 + # source://prism//lib/prism/node.rb#15569 def type; end class << self @@ -24741,7 +26887,7 @@ class Prism::SourceFileNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#14804 + # source://prism//lib/prism/node.rb#15579 def type; end end end @@ -24751,54 +26897,54 @@ end # __LINE__ # ^^^^^^^^ # -# source://prism//lib/prism/node.rb#14813 +# source://prism//lib/prism/node.rb#15588 class Prism::SourceLineNode < ::Prism::Node # def initialize: (location: Location) -> void # # @return [SourceLineNode] a new instance of SourceLineNode # - # source://prism//lib/prism/node.rb#14815 + # source://prism//lib/prism/node.rb#15590 sig { params(location: Prism::Location).void } def initialize(location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#14820 + # source://prism//lib/prism/node.rb#15595 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#14825 + # source://prism//lib/prism/node.rb#15600 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#14835 + # source://prism//lib/prism/node.rb#15610 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#14830 + # source://prism//lib/prism/node.rb#15605 def compact_child_nodes; end # def copy: (**params) -> SourceLineNode # - # source://prism//lib/prism/node.rb#14840 + # source://prism//lib/prism/node.rb#15615 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//lib/prism/node.rb#14825 + # source://prism//lib/prism/node.rb#15600 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#14850 + # source://prism//lib/prism/node.rb#15625 sig do params( keys: T::Array[Symbol] @@ -24808,7 +26954,7 @@ class Prism::SourceLineNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#14855 + # source://prism//lib/prism/node.rb#15630 def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -24826,7 +26972,7 @@ class Prism::SourceLineNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#14874 + # source://prism//lib/prism/node.rb#15649 def type; end class << self @@ -24837,7 +26983,7 @@ class Prism::SourceLineNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#14884 + # source://prism//lib/prism/node.rb#15659 def type; end end end @@ -24847,54 +26993,54 @@ end # [*a] # ^^ # -# source://prism//lib/prism/node.rb#14893 +# source://prism//lib/prism/node.rb#15668 class Prism::SplatNode < ::Prism::Node # def initialize: (operator_loc: Location, expression: Node?, location: Location) -> void # # @return [SplatNode] a new instance of SplatNode # - # source://prism//lib/prism/node.rb#14901 + # source://prism//lib/prism/node.rb#15676 sig { params(operator_loc: Prism::Location, expression: T.nilable(Prism::Node), location: Prism::Location).void } def initialize(operator_loc, expression, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#14908 + # source://prism//lib/prism/node.rb#15683 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#14913 + # source://prism//lib/prism/node.rb#15688 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#14925 + # source://prism//lib/prism/node.rb#15700 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#14918 + # source://prism//lib/prism/node.rb#15693 def compact_child_nodes; end # def copy: (**params) -> SplatNode # - # source://prism//lib/prism/node.rb#14930 + # source://prism//lib/prism/node.rb#15705 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//lib/prism/node.rb#14913 + # source://prism//lib/prism/node.rb#15688 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#14942 + # source://prism//lib/prism/node.rb#15717 sig do params( keys: T::Array[Symbol] @@ -24904,24 +27050,24 @@ class Prism::SplatNode < ::Prism::Node # attr_reader expression: Node? # - # source://prism//lib/prism/node.rb#14898 + # source://prism//lib/prism/node.rb#15673 sig { returns(T.nilable(Prism::Node)) } def expression; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#14952 + # source://prism//lib/prism/node.rb#15727 def inspect(inspector = T.unsafe(nil)); end # def operator: () -> String # - # source://prism//lib/prism/node.rb#14947 + # source://prism//lib/prism/node.rb#15722 sig { returns(String) } def operator; end # attr_reader operator_loc: Location # - # source://prism//lib/prism/node.rb#14895 + # source://prism//lib/prism/node.rb#15670 sig { returns(Prism::Location) } def operator_loc; end @@ -24940,7 +27086,7 @@ class Prism::SplatNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#14978 + # source://prism//lib/prism/node.rb#15753 def type; end class << self @@ -24951,7 +27097,7 @@ class Prism::SplatNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#14988 + # source://prism//lib/prism/node.rb#15763 def type; end end end @@ -24961,60 +27107,60 @@ end # foo; bar; baz # ^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#14997 +# source://prism//lib/prism/node.rb#15772 class Prism::StatementsNode < ::Prism::Node # def initialize: (body: Array[Node], location: Location) -> void # # @return [StatementsNode] a new instance of StatementsNode # - # source://prism//lib/prism/node.rb#15002 + # source://prism//lib/prism/node.rb#15777 sig { params(body: T::Array[Prism::Node], location: Prism::Location).void } def initialize(body, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#15008 + # source://prism//lib/prism/node.rb#15783 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # attr_reader body: Array[Node] # - # source://prism//lib/prism/node.rb#14999 + # source://prism//lib/prism/node.rb#15774 sig { returns(T::Array[Prism::Node]) } def body; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#15013 + # source://prism//lib/prism/node.rb#15788 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#15023 + # source://prism//lib/prism/node.rb#15798 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#15018 + # source://prism//lib/prism/node.rb#15793 def compact_child_nodes; end # def copy: (**params) -> StatementsNode # - # source://prism//lib/prism/node.rb#15028 + # source://prism//lib/prism/node.rb#15803 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//lib/prism/node.rb#15013 + # source://prism//lib/prism/node.rb#15788 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#15039 + # source://prism//lib/prism/node.rb#15814 sig do params( keys: T::Array[Symbol] @@ -25024,7 +27170,7 @@ class Prism::StatementsNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#15044 + # source://prism//lib/prism/node.rb#15819 def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -25042,7 +27188,7 @@ class Prism::StatementsNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#15064 + # source://prism//lib/prism/node.rb#15839 def type; end class << self @@ -25053,127 +27199,29 @@ class Prism::StatementsNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#15074 + # source://prism//lib/prism/node.rb#15849 def type; end end end -# Represents the use of compile-time string concatenation. -# -# "foo" "bar" -# ^^^^^^^^^^^ +# Flags for string nodes. # -# source://prism//lib/prism/node.rb#15083 -class Prism::StringConcatNode < ::Prism::Node - # def initialize: (left: Node, right: Node, location: Location) -> void - # - # @return [StringConcatNode] a new instance of StringConcatNode - # - # source://prism//lib/prism/node.rb#15091 - sig { params(left: Prism::Node, right: Prism::Node, location: Prism::Location).void } - def initialize(left, right, location); end - - # def accept: (visitor: Visitor) -> void - # - # source://prism//lib/prism/node.rb#15098 - sig { params(visitor: Prism::Visitor).void } - def accept(visitor); end - - # def child_nodes: () -> Array[nil | Node] - # - # source://prism//lib/prism/node.rb#15103 - sig { returns(T::Array[T.nilable(Prism::Node)]) } - def child_nodes; end - - # def comment_targets: () -> Array[Node | Location] - # - # source://prism//lib/prism/node.rb#15113 - def comment_targets; end - - # def compact_child_nodes: () -> Array[Node] - # - # source://prism//lib/prism/node.rb#15108 - def compact_child_nodes; end - - # def copy: (**params) -> StringConcatNode - # - # source://prism//lib/prism/node.rb#15118 - sig { params(params: T.untyped).returns(Prism::StringConcatNode) } - def copy(**params); end - - # def child_nodes: () -> Array[nil | Node] - # def deconstruct: () -> Array[nil | Node] - # - # source://prism//lib/prism/node.rb#15103 - sig { returns(T::Array[T.nilable(Prism::Node)]) } - def deconstruct; end - - # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] - # - # source://prism//lib/prism/node.rb#15130 - sig do - params( - keys: T::Array[Symbol] - ).returns(T::Hash[Symbol, T.nilable(T.any(Prism::Node, T::Array[Prism::Node], String, Prism::Token, T::Array[Prism::Token], Prism::Location))]) - end - def deconstruct_keys(keys); end - - # def inspect(inspector: NodeInspector) -> String - # - # source://prism//lib/prism/node.rb#15135 - def inspect(inspector = T.unsafe(nil)); end - - # attr_reader left: Node - # - # source://prism//lib/prism/node.rb#15085 - sig { returns(Prism::Node) } - def left; end - - # attr_reader right: Node - # - # source://prism//lib/prism/node.rb#15088 - 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//lib/prism/node.rb#15158 - def type; end +# source://prism//lib/prism/node.rb#17379 +module Prism::StringFlags; end - class << self - # Similar to #type, this method returns a symbol that you can use for - # splitting on the type of the node without having to do a long === chain. - # Note that like #type, it will still be slower than using == for a single - # class, but should be faster in a case statement or an array comparison. - # - # def self.type: () -> Symbol - # - # source://prism//lib/prism/node.rb#15168 - def type; end - end -end +# internal bytes forced the encoding to binary +# +# source://prism//lib/prism/node.rb#17384 +Prism::StringFlags::FORCED_BINARY_ENCODING = T.let(T.unsafe(nil), Integer) -# Flags for string nodes. +# internal bytes forced the encoding to UTF-8 # -# source://prism//lib/prism/node.rb#16605 -module Prism::StringFlags; end +# source://prism//lib/prism/node.rb#17381 +Prism::StringFlags::FORCED_UTF8_ENCODING = T.let(T.unsafe(nil), Integer) # frozen by virtue of a `frozen_string_literal` comment # -# source://prism//lib/prism/node.rb#16607 +# source://prism//lib/prism/node.rb#17387 Prism::StringFlags::FROZEN = T.let(T.unsafe(nil), Integer) # Represents a string literal, a string contained within a `%w` list, or @@ -25188,13 +27236,15 @@ Prism::StringFlags::FROZEN = T.let(T.unsafe(nil), Integer) # "foo #{bar} baz" # ^^^^ ^^^^ # -# source://prism//lib/prism/node.rb#15184 +# source://prism//lib/prism/node.rb#15865 class Prism::StringNode < ::Prism::Node + include ::Prism::HeredocQuery + # def initialize: (flags: Integer, opening_loc: Location?, content_loc: Location, closing_loc: Location?, unescaped: String, location: Location) -> void # # @return [StringNode] a new instance of StringNode # - # source://prism//lib/prism/node.rb#15201 + # source://prism//lib/prism/node.rb#15882 sig do params( flags: Integer, @@ -25209,66 +27259,66 @@ class Prism::StringNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#15211 + # source://prism//lib/prism/node.rb#15892 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#15216 + # source://prism//lib/prism/node.rb#15897 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String? # - # source://prism//lib/prism/node.rb#15266 + # source://prism//lib/prism/node.rb#15957 sig { returns(T.nilable(String)) } def closing; end # attr_reader closing_loc: Location? # - # source://prism//lib/prism/node.rb#15195 + # source://prism//lib/prism/node.rb#15876 sig { returns(T.nilable(Prism::Location)) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#15226 + # source://prism//lib/prism/node.rb#15907 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#15221 + # source://prism//lib/prism/node.rb#15902 def compact_child_nodes; end # def content: () -> String # - # source://prism//lib/prism/node.rb#15261 + # source://prism//lib/prism/node.rb#15952 sig { returns(String) } def content; end # attr_reader content_loc: Location # - # source://prism//lib/prism/node.rb#15192 + # source://prism//lib/prism/node.rb#15873 sig { returns(Prism::Location) } def content_loc; end # def copy: (**params) -> StringNode # - # source://prism//lib/prism/node.rb#15231 + # source://prism//lib/prism/node.rb#15912 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//lib/prism/node.rb#15216 + # source://prism//lib/prism/node.rb#15897 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#15246 + # source://prism//lib/prism/node.rb#15927 sig do params( keys: T::Array[Symbol] @@ -25276,28 +27326,44 @@ class Prism::StringNode < ::Prism::Node end def deconstruct_keys(keys); end + # def forced_binary_encoding?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#15937 + sig { returns(T::Boolean) } + def forced_binary_encoding?; end + + # def forced_utf8_encoding?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#15932 + sig { returns(T::Boolean) } + def forced_utf8_encoding?; end + # def frozen?: () -> bool # # @return [Boolean] # - # source://prism//lib/prism/node.rb#15251 + # source://prism//lib/prism/node.rb#15942 sig { returns(T::Boolean) } def frozen?; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#15271 + # source://prism//lib/prism/node.rb#15962 def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String? # - # source://prism//lib/prism/node.rb#15256 + # source://prism//lib/prism/node.rb#15947 sig { returns(T.nilable(String)) } def opening; end # attr_reader opening_loc: Location? # - # source://prism//lib/prism/node.rb#15189 + # source://prism//lib/prism/node.rb#15870 sig { returns(T.nilable(Prism::Location)) } def opening_loc; end @@ -25316,12 +27382,12 @@ class Prism::StringNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#15296 + # source://prism//lib/prism/node.rb#15987 def type; end # attr_reader unescaped: String # - # source://prism//lib/prism/node.rb#15198 + # source://prism//lib/prism/node.rb#15879 sig { returns(String) } def unescaped; end @@ -25329,7 +27395,7 @@ class Prism::StringNode < ::Prism::Node # Returns the value of attribute flags. # - # source://prism//lib/prism/node.rb#15186 + # source://prism//lib/prism/node.rb#15867 sig { returns(Integer) } def flags; end @@ -25341,7 +27407,7 @@ class Prism::StringNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#15306 + # source://prism//lib/prism/node.rb#15997 def type; end end end @@ -25354,13 +27420,13 @@ end # super foo, bar # ^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#15318 +# source://prism//lib/prism/node.rb#16009 class Prism::SuperNode < ::Prism::Node # def initialize: (keyword_loc: Location, lparen_loc: Location?, arguments: ArgumentsNode?, rparen_loc: Location?, block: Node?, location: Location) -> void # # @return [SuperNode] a new instance of SuperNode # - # source://prism//lib/prism/node.rb#15335 + # source://prism//lib/prism/node.rb#16026 sig do params( keyword_loc: Prism::Location, @@ -25375,54 +27441,54 @@ class Prism::SuperNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#15345 + # source://prism//lib/prism/node.rb#16036 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # attr_reader arguments: ArgumentsNode? # - # source://prism//lib/prism/node.rb#15326 + # source://prism//lib/prism/node.rb#16017 sig { returns(T.nilable(Prism::ArgumentsNode)) } def arguments; end # attr_reader block: Node? # - # source://prism//lib/prism/node.rb#15332 + # source://prism//lib/prism/node.rb#16023 sig { returns(T.nilable(Prism::Node)) } def block; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#15350 + # source://prism//lib/prism/node.rb#16041 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#15363 + # source://prism//lib/prism/node.rb#16054 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#15355 + # source://prism//lib/prism/node.rb#16046 def compact_child_nodes; end # def copy: (**params) -> SuperNode # - # source://prism//lib/prism/node.rb#15368 + # source://prism//lib/prism/node.rb#16059 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//lib/prism/node.rb#15350 + # source://prism//lib/prism/node.rb#16041 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#15383 + # source://prism//lib/prism/node.rb#16074 sig do params( keys: T::Array[Symbol] @@ -25432,42 +27498,42 @@ class Prism::SuperNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#15403 + # source://prism//lib/prism/node.rb#16094 def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#15388 + # source://prism//lib/prism/node.rb#16079 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#15320 + # source://prism//lib/prism/node.rb#16011 sig { returns(Prism::Location) } def keyword_loc; end # def lparen: () -> String? # - # source://prism//lib/prism/node.rb#15393 + # source://prism//lib/prism/node.rb#16084 sig { returns(T.nilable(String)) } def lparen; end # attr_reader lparen_loc: Location? # - # source://prism//lib/prism/node.rb#15323 + # source://prism//lib/prism/node.rb#16014 sig { returns(T.nilable(Prism::Location)) } def lparen_loc; end # def rparen: () -> String? # - # source://prism//lib/prism/node.rb#15398 + # source://prism//lib/prism/node.rb#16089 sig { returns(T.nilable(String)) } def rparen; end # attr_reader rparen_loc: Location? # - # source://prism//lib/prism/node.rb#15329 + # source://prism//lib/prism/node.rb#16020 sig { returns(T.nilable(Prism::Location)) } def rparen_loc; end @@ -25486,7 +27552,7 @@ class Prism::SuperNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#15437 + # source://prism//lib/prism/node.rb#16128 def type; end class << self @@ -25497,11 +27563,31 @@ class Prism::SuperNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#15447 + # source://prism//lib/prism/node.rb#16138 def type; end end end +# Flags for symbol nodes. +# +# source://prism//lib/prism/node.rb#17391 +module Prism::SymbolFlags; end + +# internal bytes forced the encoding to binary +# +# source://prism//lib/prism/node.rb#17396 +Prism::SymbolFlags::FORCED_BINARY_ENCODING = T.let(T.unsafe(nil), Integer) + +# internal bytes forced the encoding to US-ASCII +# +# source://prism//lib/prism/node.rb#17399 +Prism::SymbolFlags::FORCED_US_ASCII_ENCODING = T.let(T.unsafe(nil), Integer) + +# internal bytes forced the encoding to UTF-8 +# +# source://prism//lib/prism/node.rb#17393 +Prism::SymbolFlags::FORCED_UTF8_ENCODING = T.let(T.unsafe(nil), Integer) + # Represents a symbol literal or a symbol contained within a `%i` list. # # :foo @@ -25510,15 +27596,16 @@ end # %i[foo] # ^^^ # -# source://prism//lib/prism/node.rb#15459 +# source://prism//lib/prism/node.rb#16150 class Prism::SymbolNode < ::Prism::Node - # def initialize: (opening_loc: Location?, value_loc: Location?, closing_loc: Location?, unescaped: String, location: Location) -> void + # def initialize: (flags: Integer, opening_loc: Location?, value_loc: Location?, closing_loc: Location?, unescaped: String, location: Location) -> void # # @return [SymbolNode] a new instance of SymbolNode # - # source://prism//lib/prism/node.rb#15473 + # source://prism//lib/prism/node.rb#16167 sig do params( + flags: Integer, opening_loc: T.nilable(Prism::Location), value_loc: T.nilable(Prism::Location), closing_loc: T.nilable(Prism::Location), @@ -25526,58 +27613,58 @@ class Prism::SymbolNode < ::Prism::Node location: Prism::Location ).void end - def initialize(opening_loc, value_loc, closing_loc, unescaped, location); end + def initialize(flags, opening_loc, value_loc, closing_loc, unescaped, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#15482 + # source://prism//lib/prism/node.rb#16177 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#15487 + # source://prism//lib/prism/node.rb#16182 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String? # - # source://prism//lib/prism/node.rb#15531 + # source://prism//lib/prism/node.rb#16242 sig { returns(T.nilable(String)) } def closing; end # attr_reader closing_loc: Location? # - # source://prism//lib/prism/node.rb#15467 + # source://prism//lib/prism/node.rb#16161 sig { returns(T.nilable(Prism::Location)) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#15497 + # source://prism//lib/prism/node.rb#16192 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#15492 + # source://prism//lib/prism/node.rb#16187 def compact_child_nodes; end # def copy: (**params) -> SymbolNode # - # source://prism//lib/prism/node.rb#15502 + # source://prism//lib/prism/node.rb#16197 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//lib/prism/node.rb#15487 + # source://prism//lib/prism/node.rb#16182 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#15516 + # source://prism//lib/prism/node.rb#16212 sig do params( keys: T::Array[Symbol] @@ -25585,20 +27672,44 @@ class Prism::SymbolNode < ::Prism::Node end def deconstruct_keys(keys); end + # def forced_binary_encoding?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#16222 + sig { returns(T::Boolean) } + def forced_binary_encoding?; end + + # def forced_us_ascii_encoding?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#16227 + sig { returns(T::Boolean) } + def forced_us_ascii_encoding?; end + + # def forced_utf8_encoding?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#16217 + sig { returns(T::Boolean) } + def forced_utf8_encoding?; end + # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#15536 + # source://prism//lib/prism/node.rb#16247 def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String? # - # source://prism//lib/prism/node.rb#15521 + # source://prism//lib/prism/node.rb#16232 sig { returns(T.nilable(String)) } def opening; end # attr_reader opening_loc: Location? # - # source://prism//lib/prism/node.rb#15461 + # source://prism//lib/prism/node.rb#16155 sig { returns(T.nilable(Prism::Location)) } def opening_loc; end @@ -25617,27 +27728,35 @@ class Prism::SymbolNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#15559 + # source://prism//lib/prism/node.rb#16272 def type; end # attr_reader unescaped: String # - # source://prism//lib/prism/node.rb#15470 + # source://prism//lib/prism/node.rb#16164 sig { returns(String) } def unescaped; end # def value: () -> String? # - # source://prism//lib/prism/node.rb#15526 + # source://prism//lib/prism/node.rb#16237 sig { returns(T.nilable(String)) } def value; end # attr_reader value_loc: Location? # - # source://prism//lib/prism/node.rb#15464 + # source://prism//lib/prism/node.rb#16158 sig { returns(T.nilable(Prism::Location)) } def value_loc; end + private + + # Returns the value of attribute flags. + # + # source://prism//lib/prism/node.rb#16152 + 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. @@ -25646,56 +27765,56 @@ class Prism::SymbolNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#15569 + # source://prism//lib/prism/node.rb#16282 def type; end end end # This represents a token from the Ruby source. # -# source://prism//lib/prism/parse_result.rb#385 +# source://prism//lib/prism/parse_result.rb#416 class Prism::Token # Create a new token object with the given type, value, and location. # # @return [Token] a new instance of Token # - # source://prism//lib/prism/parse_result.rb#396 + # source://prism//lib/prism/parse_result.rb#427 sig { params(type: T.untyped, value: String, location: Prism::Location).void } def initialize(type, value, location); end # Returns true if the given other token is equal to this token. # - # source://prism//lib/prism/parse_result.rb#423 + # source://prism//lib/prism/parse_result.rb#454 sig { params(other: T.untyped).returns(T::Boolean) } def ==(other); end # Implement the hash pattern matching interface for Token. # - # source://prism//lib/prism/parse_result.rb#403 + # source://prism//lib/prism/parse_result.rb#434 sig { params(keys: T.untyped).returns(T.untyped) } def deconstruct_keys(keys); end # A Location object representing the location of this token in the source. # - # source://prism//lib/prism/parse_result.rb#393 + # source://prism//lib/prism/parse_result.rb#424 sig { returns(Prism::Location) } def location; end # Implement the pretty print interface for Token. # - # source://prism//lib/prism/parse_result.rb#408 + # source://prism//lib/prism/parse_result.rb#439 sig { params(q: T.untyped).returns(T.untyped) } def pretty_print(q); end # The type of token that this token is. # - # source://prism//lib/prism/parse_result.rb#387 + # source://prism//lib/prism/parse_result.rb#418 sig { returns(T.untyped) } def type; end # A byteslice of the source that this token represents. # - # source://prism//lib/prism/parse_result.rb#390 + # source://prism//lib/prism/parse_result.rb#421 sig { returns(String) } def value; end end @@ -25705,54 +27824,54 @@ end # true # ^^^^ # -# source://prism//lib/prism/node.rb#15578 +# source://prism//lib/prism/node.rb#16291 class Prism::TrueNode < ::Prism::Node # def initialize: (location: Location) -> void # # @return [TrueNode] a new instance of TrueNode # - # source://prism//lib/prism/node.rb#15580 + # source://prism//lib/prism/node.rb#16293 sig { params(location: Prism::Location).void } def initialize(location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#15585 + # source://prism//lib/prism/node.rb#16298 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#15590 + # source://prism//lib/prism/node.rb#16303 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#15600 + # source://prism//lib/prism/node.rb#16313 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#15595 + # source://prism//lib/prism/node.rb#16308 def compact_child_nodes; end # def copy: (**params) -> TrueNode # - # source://prism//lib/prism/node.rb#15605 + # source://prism//lib/prism/node.rb#16318 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//lib/prism/node.rb#15590 + # source://prism//lib/prism/node.rb#16303 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#15615 + # source://prism//lib/prism/node.rb#16328 sig do params( keys: T::Array[Symbol] @@ -25762,7 +27881,7 @@ class Prism::TrueNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#15620 + # source://prism//lib/prism/node.rb#16333 def inspect(inspector = T.unsafe(nil)); end # Sometimes you want to check an instance of a node against a list of @@ -25780,7 +27899,7 @@ class Prism::TrueNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#15639 + # source://prism//lib/prism/node.rb#16352 def type; end class << self @@ -25791,7 +27910,7 @@ class Prism::TrueNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#15649 + # source://prism//lib/prism/node.rb#16362 def type; end end end @@ -25801,54 +27920,54 @@ end # undef :foo, :bar, :baz # ^^^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#15658 +# source://prism//lib/prism/node.rb#16371 class Prism::UndefNode < ::Prism::Node # def initialize: (names: Array[Node], keyword_loc: Location, location: Location) -> void # # @return [UndefNode] a new instance of UndefNode # - # source://prism//lib/prism/node.rb#15666 + # source://prism//lib/prism/node.rb#16379 sig { params(names: T::Array[Prism::Node], keyword_loc: Prism::Location, location: Prism::Location).void } def initialize(names, keyword_loc, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#15673 + # source://prism//lib/prism/node.rb#16386 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#15678 + # source://prism//lib/prism/node.rb#16391 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#15688 + # source://prism//lib/prism/node.rb#16401 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#15683 + # source://prism//lib/prism/node.rb#16396 def compact_child_nodes; end # def copy: (**params) -> UndefNode # - # source://prism//lib/prism/node.rb#15693 + # source://prism//lib/prism/node.rb#16406 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//lib/prism/node.rb#15678 + # source://prism//lib/prism/node.rb#16391 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#15705 + # source://prism//lib/prism/node.rb#16418 sig do params( keys: T::Array[Symbol] @@ -25858,24 +27977,24 @@ class Prism::UndefNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#15715 + # source://prism//lib/prism/node.rb#16428 def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#15710 + # source://prism//lib/prism/node.rb#16423 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#15663 + # source://prism//lib/prism/node.rb#16376 sig { returns(Prism::Location) } def keyword_loc; end # attr_reader names: Array[Node] # - # source://prism//lib/prism/node.rb#15660 + # source://prism//lib/prism/node.rb#16373 sig { returns(T::Array[Prism::Node]) } def names; end @@ -25894,7 +28013,7 @@ class Prism::UndefNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#15736 + # source://prism//lib/prism/node.rb#16449 def type; end class << self @@ -25905,7 +28024,7 @@ class Prism::UndefNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#15746 + # source://prism//lib/prism/node.rb#16459 def type; end end end @@ -25918,69 +28037,70 @@ end # unless foo then bar end # ^^^^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#15758 +# source://prism//lib/prism/node.rb#16471 class Prism::UnlessNode < ::Prism::Node - # def initialize: (keyword_loc: Location, predicate: Node, statements: StatementsNode?, consequent: ElseNode?, end_keyword_loc: Location?, location: Location) -> void + # def initialize: (keyword_loc: Location, predicate: Node, then_keyword_loc: Location?, statements: StatementsNode?, consequent: ElseNode?, end_keyword_loc: Location?, location: Location) -> void # # @return [UnlessNode] a new instance of UnlessNode # - # source://prism//lib/prism/node.rb#15775 + # source://prism//lib/prism/node.rb#16491 sig do params( keyword_loc: Prism::Location, predicate: Prism::Node, + then_keyword_loc: T.nilable(Prism::Location), statements: T.nilable(Prism::StatementsNode), consequent: T.nilable(Prism::ElseNode), end_keyword_loc: T.nilable(Prism::Location), location: Prism::Location ).void end - def initialize(keyword_loc, predicate, statements, consequent, end_keyword_loc, location); end + def initialize(keyword_loc, predicate, then_keyword_loc, statements, consequent, end_keyword_loc, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#15785 + # source://prism//lib/prism/node.rb#16502 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#15794 + # source://prism//lib/prism/node.rb#16511 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#15808 + # source://prism//lib/prism/node.rb#16525 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#15799 + # source://prism//lib/prism/node.rb#16516 def compact_child_nodes; end # attr_reader consequent: ElseNode? # - # source://prism//lib/prism/node.rb#15769 + # source://prism//lib/prism/node.rb#16485 sig { returns(T.nilable(Prism::ElseNode)) } def consequent; end # def copy: (**params) -> UnlessNode # - # source://prism//lib/prism/node.rb#15813 + # source://prism//lib/prism/node.rb#16530 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//lib/prism/node.rb#15794 + # source://prism//lib/prism/node.rb#16511 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#15828 + # source://prism//lib/prism/node.rb#16546 sig do params( keys: T::Array[Symbol] @@ -25990,48 +28110,60 @@ class Prism::UnlessNode < ::Prism::Node # def end_keyword: () -> String? # - # source://prism//lib/prism/node.rb#15838 + # source://prism//lib/prism/node.rb#16561 sig { returns(T.nilable(String)) } def end_keyword; end # attr_reader end_keyword_loc: Location? # - # source://prism//lib/prism/node.rb#15772 + # source://prism//lib/prism/node.rb#16488 sig { returns(T.nilable(Prism::Location)) } def end_keyword_loc; end # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#15843 + # source://prism//lib/prism/node.rb#16566 def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#15833 + # source://prism//lib/prism/node.rb#16551 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#15760 + # source://prism//lib/prism/node.rb#16473 sig { returns(Prism::Location) } def keyword_loc; end # attr_reader predicate: Node # - # source://prism//lib/prism/node.rb#15763 + # source://prism//lib/prism/node.rb#16476 sig { returns(Prism::Node) } def predicate; end - # source://prism//lib/prism/node.rb#15789 + # source://prism//lib/prism/node.rb#16506 def set_newline_flag(newline_marked); end # attr_reader statements: StatementsNode? # - # source://prism//lib/prism/node.rb#15766 + # source://prism//lib/prism/node.rb#16482 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end + # def then_keyword: () -> String? + # + # source://prism//lib/prism/node.rb#16556 + sig { returns(T.nilable(String)) } + def then_keyword; end + + # attr_reader then_keyword_loc: Location? + # + # source://prism//lib/prism/node.rb#16479 + 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 @@ -26047,7 +28179,7 @@ class Prism::UnlessNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#15878 + # source://prism//lib/prism/node.rb#16602 def type; end class << self @@ -26058,7 +28190,7 @@ class Prism::UnlessNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#15888 + # source://prism//lib/prism/node.rb#16612 def type; end end end @@ -26071,28 +28203,28 @@ end # until foo do bar end # ^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#15900 +# source://prism//lib/prism/node.rb#16624 class Prism::UntilNode < ::Prism::Node - # def initialize: (keyword_loc: Location, closing_loc: Location?, predicate: Node, statements: StatementsNode?, flags: Integer, location: Location) -> void + # def initialize: (flags: Integer, keyword_loc: Location, closing_loc: Location?, predicate: Node, statements: StatementsNode?, location: Location) -> void # # @return [UntilNode] a new instance of UntilNode # - # source://prism//lib/prism/node.rb#15917 + # source://prism//lib/prism/node.rb#16641 sig do params( + flags: Integer, keyword_loc: Prism::Location, closing_loc: T.nilable(Prism::Location), predicate: Prism::Node, statements: T.nilable(Prism::StatementsNode), - flags: Integer, location: Prism::Location ).void end - def initialize(keyword_loc, closing_loc, predicate, statements, flags, location); end + def initialize(flags, keyword_loc, closing_loc, predicate, statements, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#15927 + # source://prism//lib/prism/node.rb#16651 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end @@ -26100,54 +28232,54 @@ class Prism::UntilNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#15984 + # source://prism//lib/prism/node.rb#16698 sig { returns(T::Boolean) } def begin_modifier?; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#15936 + # source://prism//lib/prism/node.rb#16660 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String? # - # source://prism//lib/prism/node.rb#15979 + # source://prism//lib/prism/node.rb#16708 sig { returns(T.nilable(String)) } def closing; end # attr_reader closing_loc: Location? # - # source://prism//lib/prism/node.rb#15905 + # source://prism//lib/prism/node.rb#16632 sig { returns(T.nilable(Prism::Location)) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#15949 + # source://prism//lib/prism/node.rb#16673 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#15941 + # source://prism//lib/prism/node.rb#16665 def compact_child_nodes; end # def copy: (**params) -> UntilNode # - # source://prism//lib/prism/node.rb#15954 + # source://prism//lib/prism/node.rb#16678 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//lib/prism/node.rb#15936 + # source://prism//lib/prism/node.rb#16660 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#15969 + # source://prism//lib/prism/node.rb#16693 sig do params( keys: T::Array[Symbol] @@ -26157,33 +28289,33 @@ class Prism::UntilNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#15989 + # source://prism//lib/prism/node.rb#16713 def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#15974 + # source://prism//lib/prism/node.rb#16703 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#15902 + # source://prism//lib/prism/node.rb#16629 sig { returns(Prism::Location) } def keyword_loc; end # attr_reader predicate: Node # - # source://prism//lib/prism/node.rb#15908 + # source://prism//lib/prism/node.rb#16635 sig { returns(Prism::Node) } def predicate; end - # source://prism//lib/prism/node.rb#15931 + # source://prism//lib/prism/node.rb#16655 def set_newline_flag(newline_marked); end # attr_reader statements: StatementsNode? # - # source://prism//lib/prism/node.rb#15911 + # source://prism//lib/prism/node.rb#16638 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end @@ -26202,14 +28334,14 @@ class Prism::UntilNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#16020 + # source://prism//lib/prism/node.rb#16744 def type; end private # Returns the value of attribute flags. # - # source://prism//lib/prism/node.rb#15914 + # source://prism//lib/prism/node.rb#16626 sig { returns(Integer) } def flags; end @@ -26221,7 +28353,7 @@ class Prism::UntilNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#16030 + # source://prism//lib/prism/node.rb#16754 def type; end end end @@ -26376,12 +28508,24 @@ class Prism::Visitor < ::Prism::BasicVisitor sig { params(node: Prism::CallOrWriteNode).void } def visit_call_or_write_node(node); end + # Visit a CallTargetNode node + # + # source://prism//lib/prism/visitor.rb#26 + sig { params(node: Prism::CallTargetNode).void } + def visit_call_target_node(node); end + # Visit a CapturePatternNode node # # source://prism//lib/prism/visitor.rb#26 sig { params(node: Prism::CapturePatternNode).void } def visit_capture_pattern_node(node); end + # Visit a CaseMatchNode node + # + # source://prism//lib/prism/visitor.rb#26 + sig { params(node: Prism::CaseMatchNode).void } + def visit_case_match_node(node); end + # Visit a CaseNode node # # source://prism//lib/prism/visitor.rb#26 @@ -26652,6 +28796,12 @@ class Prism::Visitor < ::Prism::BasicVisitor sig { params(node: Prism::ImplicitNode).void } def visit_implicit_node(node); end + # Visit a ImplicitRestNode node + # + # source://prism//lib/prism/visitor.rb#26 + sig { params(node: Prism::ImplicitRestNode).void } + def visit_implicit_rest_node(node); end + # Visit a InNode node # # source://prism//lib/prism/visitor.rb#26 @@ -26676,6 +28826,12 @@ class Prism::Visitor < ::Prism::BasicVisitor sig { params(node: Prism::IndexOrWriteNode).void } def visit_index_or_write_node(node); end + # Visit a IndexTargetNode node + # + # source://prism//lib/prism/visitor.rb#26 + sig { params(node: Prism::IndexTargetNode).void } + def visit_index_target_node(node); end + # Visit a InstanceVariableAndWriteNode node # # source://prism//lib/prism/visitor.rb#26 @@ -26868,6 +29024,12 @@ class Prism::Visitor < ::Prism::BasicVisitor sig { params(node: Prism::NoKeywordsParameterNode).void } def visit_no_keywords_parameter_node(node); end + # Visit a NumberedParametersNode node + # + # source://prism//lib/prism/visitor.rb#26 + sig { params(node: Prism::NumberedParametersNode).void } + def visit_numbered_parameters_node(node); end + # Visit a NumberedReferenceReadNode node # # source://prism//lib/prism/visitor.rb#26 @@ -27042,12 +29204,6 @@ class Prism::Visitor < ::Prism::BasicVisitor sig { params(node: Prism::StatementsNode).void } def visit_statements_node(node); end - # Visit a StringConcatNode node - # - # source://prism//lib/prism/visitor.rb#26 - sig { params(node: Prism::StringConcatNode).void } - def visit_string_concat_node(node); end - # Visit a StringNode node # # source://prism//lib/prism/visitor.rb#26 @@ -27122,13 +29278,13 @@ end # ^^^^^^^^^ # end # -# source://prism//lib/prism/node.rb#16041 +# source://prism//lib/prism/node.rb#16765 class Prism::WhenNode < ::Prism::Node # def initialize: (keyword_loc: Location, conditions: Array[Node], statements: StatementsNode?, location: Location) -> void # # @return [WhenNode] a new instance of WhenNode # - # source://prism//lib/prism/node.rb#16052 + # source://prism//lib/prism/node.rb#16776 sig do params( keyword_loc: Prism::Location, @@ -27141,48 +29297,48 @@ class Prism::WhenNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#16060 + # source://prism//lib/prism/node.rb#16784 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#16065 + # source://prism//lib/prism/node.rb#16789 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#16078 + # source://prism//lib/prism/node.rb#16802 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#16070 + # source://prism//lib/prism/node.rb#16794 def compact_child_nodes; end # attr_reader conditions: Array[Node] # - # source://prism//lib/prism/node.rb#16046 + # source://prism//lib/prism/node.rb#16770 sig { returns(T::Array[Prism::Node]) } def conditions; end # def copy: (**params) -> WhenNode # - # source://prism//lib/prism/node.rb#16083 + # source://prism//lib/prism/node.rb#16807 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//lib/prism/node.rb#16065 + # source://prism//lib/prism/node.rb#16789 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#16096 + # source://prism//lib/prism/node.rb#16820 sig do params( keys: T::Array[Symbol] @@ -27192,24 +29348,24 @@ class Prism::WhenNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#16106 + # source://prism//lib/prism/node.rb#16830 def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#16101 + # source://prism//lib/prism/node.rb#16825 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#16043 + # source://prism//lib/prism/node.rb#16767 sig { returns(Prism::Location) } def keyword_loc; end # attr_reader statements: StatementsNode? # - # source://prism//lib/prism/node.rb#16049 + # source://prism//lib/prism/node.rb#16773 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end @@ -27228,7 +29384,7 @@ class Prism::WhenNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#16133 + # source://prism//lib/prism/node.rb#16857 def type; end class << self @@ -27239,7 +29395,7 @@ class Prism::WhenNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#16143 + # source://prism//lib/prism/node.rb#16867 def type; end end end @@ -27252,28 +29408,28 @@ end # while foo do bar end # ^^^^^^^^^^^^^^^^^^^^ # -# source://prism//lib/prism/node.rb#16155 +# source://prism//lib/prism/node.rb#16879 class Prism::WhileNode < ::Prism::Node - # def initialize: (keyword_loc: Location, closing_loc: Location?, predicate: Node, statements: StatementsNode?, flags: Integer, location: Location) -> void + # def initialize: (flags: Integer, keyword_loc: Location, closing_loc: Location?, predicate: Node, statements: StatementsNode?, location: Location) -> void # # @return [WhileNode] a new instance of WhileNode # - # source://prism//lib/prism/node.rb#16172 + # source://prism//lib/prism/node.rb#16896 sig do params( + flags: Integer, keyword_loc: Prism::Location, closing_loc: T.nilable(Prism::Location), predicate: Prism::Node, statements: T.nilable(Prism::StatementsNode), - flags: Integer, location: Prism::Location ).void end - def initialize(keyword_loc, closing_loc, predicate, statements, flags, location); end + def initialize(flags, keyword_loc, closing_loc, predicate, statements, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#16182 + # source://prism//lib/prism/node.rb#16906 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end @@ -27281,54 +29437,54 @@ class Prism::WhileNode < ::Prism::Node # # @return [Boolean] # - # source://prism//lib/prism/node.rb#16239 + # source://prism//lib/prism/node.rb#16953 sig { returns(T::Boolean) } def begin_modifier?; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#16191 + # source://prism//lib/prism/node.rb#16915 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String? # - # source://prism//lib/prism/node.rb#16234 + # source://prism//lib/prism/node.rb#16963 sig { returns(T.nilable(String)) } def closing; end # attr_reader closing_loc: Location? # - # source://prism//lib/prism/node.rb#16160 + # source://prism//lib/prism/node.rb#16887 sig { returns(T.nilable(Prism::Location)) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#16204 + # source://prism//lib/prism/node.rb#16928 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#16196 + # source://prism//lib/prism/node.rb#16920 def compact_child_nodes; end # def copy: (**params) -> WhileNode # - # source://prism//lib/prism/node.rb#16209 + # source://prism//lib/prism/node.rb#16933 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//lib/prism/node.rb#16191 + # source://prism//lib/prism/node.rb#16915 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#16224 + # source://prism//lib/prism/node.rb#16948 sig do params( keys: T::Array[Symbol] @@ -27338,33 +29494,33 @@ class Prism::WhileNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#16244 + # source://prism//lib/prism/node.rb#16968 def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#16229 + # source://prism//lib/prism/node.rb#16958 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#16157 + # source://prism//lib/prism/node.rb#16884 sig { returns(Prism::Location) } def keyword_loc; end # attr_reader predicate: Node # - # source://prism//lib/prism/node.rb#16163 + # source://prism//lib/prism/node.rb#16890 sig { returns(Prism::Node) } def predicate; end - # source://prism//lib/prism/node.rb#16186 + # source://prism//lib/prism/node.rb#16910 def set_newline_flag(newline_marked); end # attr_reader statements: StatementsNode? # - # source://prism//lib/prism/node.rb#16166 + # source://prism//lib/prism/node.rb#16893 sig { returns(T.nilable(Prism::StatementsNode)) } def statements; end @@ -27383,14 +29539,14 @@ class Prism::WhileNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#16275 + # source://prism//lib/prism/node.rb#16999 def type; end private # Returns the value of attribute flags. # - # source://prism//lib/prism/node.rb#16169 + # source://prism//lib/prism/node.rb#16881 sig { returns(Integer) } def flags; end @@ -27402,7 +29558,7 @@ class Prism::WhileNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#16285 + # source://prism//lib/prism/node.rb#17009 def type; end end end @@ -27412,15 +29568,18 @@ end # `foo` # ^^^^^ # -# source://prism//lib/prism/node.rb#16294 +# source://prism//lib/prism/node.rb#17018 class Prism::XStringNode < ::Prism::Node - # def initialize: (opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String, location: Location) -> void + include ::Prism::HeredocQuery + + # def initialize: (flags: Integer, opening_loc: Location, content_loc: Location, closing_loc: Location, unescaped: String, location: Location) -> void # # @return [XStringNode] a new instance of XStringNode # - # source://prism//lib/prism/node.rb#16308 + # source://prism//lib/prism/node.rb#17035 sig do params( + flags: Integer, opening_loc: Prism::Location, content_loc: Prism::Location, closing_loc: Prism::Location, @@ -27428,70 +29587,70 @@ class Prism::XStringNode < ::Prism::Node location: Prism::Location ).void end - def initialize(opening_loc, content_loc, closing_loc, unescaped, location); end + def initialize(flags, opening_loc, content_loc, closing_loc, unescaped, location); end # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#16317 + # source://prism//lib/prism/node.rb#17045 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#16322 + # source://prism//lib/prism/node.rb#17050 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def closing: () -> String # - # source://prism//lib/prism/node.rb#16366 + # source://prism//lib/prism/node.rb#17105 sig { returns(String) } def closing; end # attr_reader closing_loc: Location # - # source://prism//lib/prism/node.rb#16302 + # source://prism//lib/prism/node.rb#17029 sig { returns(Prism::Location) } def closing_loc; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#16332 + # source://prism//lib/prism/node.rb#17060 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#16327 + # source://prism//lib/prism/node.rb#17055 def compact_child_nodes; end # def content: () -> String # - # source://prism//lib/prism/node.rb#16361 + # source://prism//lib/prism/node.rb#17100 sig { returns(String) } def content; end # attr_reader content_loc: Location # - # source://prism//lib/prism/node.rb#16299 + # source://prism//lib/prism/node.rb#17026 sig { returns(Prism::Location) } def content_loc; end # def copy: (**params) -> XStringNode # - # source://prism//lib/prism/node.rb#16337 + # source://prism//lib/prism/node.rb#17065 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//lib/prism/node.rb#16322 + # source://prism//lib/prism/node.rb#17050 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#16351 + # source://prism//lib/prism/node.rb#17080 sig do params( keys: T::Array[Symbol] @@ -27499,20 +29658,36 @@ class Prism::XStringNode < ::Prism::Node end def deconstruct_keys(keys); end + # def forced_binary_encoding?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#17090 + sig { returns(T::Boolean) } + def forced_binary_encoding?; end + + # def forced_utf8_encoding?: () -> bool + # + # @return [Boolean] + # + # source://prism//lib/prism/node.rb#17085 + sig { returns(T::Boolean) } + def forced_utf8_encoding?; end + # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#16371 + # source://prism//lib/prism/node.rb#17110 def inspect(inspector = T.unsafe(nil)); end # def opening: () -> String # - # source://prism//lib/prism/node.rb#16356 + # source://prism//lib/prism/node.rb#17095 sig { returns(String) } def opening; end # attr_reader opening_loc: Location # - # source://prism//lib/prism/node.rb#16296 + # source://prism//lib/prism/node.rb#17023 sig { returns(Prism::Location) } def opening_loc; end @@ -27531,15 +29706,23 @@ class Prism::XStringNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#16394 + # source://prism//lib/prism/node.rb#17135 def type; end # attr_reader unescaped: String # - # source://prism//lib/prism/node.rb#16305 + # source://prism//lib/prism/node.rb#17032 sig { returns(String) } def unescaped; end + private + + # Returns the value of attribute flags. + # + # source://prism//lib/prism/node.rb#17020 + 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. @@ -27548,7 +29731,7 @@ class Prism::XStringNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#16404 + # source://prism//lib/prism/node.rb#17145 def type; end end end @@ -27558,13 +29741,13 @@ end # yield 1 # ^^^^^^^ # -# source://prism//lib/prism/node.rb#16413 +# source://prism//lib/prism/node.rb#17154 class Prism::YieldNode < ::Prism::Node # def initialize: (keyword_loc: Location, lparen_loc: Location?, arguments: ArgumentsNode?, rparen_loc: Location?, location: Location) -> void # # @return [YieldNode] a new instance of YieldNode # - # source://prism//lib/prism/node.rb#16427 + # source://prism//lib/prism/node.rb#17168 sig do params( keyword_loc: Prism::Location, @@ -27578,48 +29761,48 @@ class Prism::YieldNode < ::Prism::Node # def accept: (visitor: Visitor) -> void # - # source://prism//lib/prism/node.rb#16436 + # source://prism//lib/prism/node.rb#17177 sig { params(visitor: Prism::Visitor).void } def accept(visitor); end # attr_reader arguments: ArgumentsNode? # - # source://prism//lib/prism/node.rb#16421 + # source://prism//lib/prism/node.rb#17162 sig { returns(T.nilable(Prism::ArgumentsNode)) } def arguments; end # def child_nodes: () -> Array[nil | Node] # - # source://prism//lib/prism/node.rb#16441 + # source://prism//lib/prism/node.rb#17182 sig { returns(T::Array[T.nilable(Prism::Node)]) } def child_nodes; end # def comment_targets: () -> Array[Node | Location] # - # source://prism//lib/prism/node.rb#16453 + # source://prism//lib/prism/node.rb#17194 def comment_targets; end # def compact_child_nodes: () -> Array[Node] # - # source://prism//lib/prism/node.rb#16446 + # source://prism//lib/prism/node.rb#17187 def compact_child_nodes; end # def copy: (**params) -> YieldNode # - # source://prism//lib/prism/node.rb#16458 + # source://prism//lib/prism/node.rb#17199 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//lib/prism/node.rb#16441 + # source://prism//lib/prism/node.rb#17182 sig { returns(T::Array[T.nilable(Prism::Node)]) } def deconstruct; end # def deconstruct_keys: (keys: Array[Symbol]) -> Hash[Symbol, nil | Node | Array[Node] | String | Token | Array[Token] | Location] # - # source://prism//lib/prism/node.rb#16472 + # source://prism//lib/prism/node.rb#17213 sig do params( keys: T::Array[Symbol] @@ -27629,42 +29812,42 @@ class Prism::YieldNode < ::Prism::Node # def inspect(inspector: NodeInspector) -> String # - # source://prism//lib/prism/node.rb#16492 + # source://prism//lib/prism/node.rb#17233 def inspect(inspector = T.unsafe(nil)); end # def keyword: () -> String # - # source://prism//lib/prism/node.rb#16477 + # source://prism//lib/prism/node.rb#17218 sig { returns(String) } def keyword; end # attr_reader keyword_loc: Location # - # source://prism//lib/prism/node.rb#16415 + # source://prism//lib/prism/node.rb#17156 sig { returns(Prism::Location) } def keyword_loc; end # def lparen: () -> String? # - # source://prism//lib/prism/node.rb#16482 + # source://prism//lib/prism/node.rb#17223 sig { returns(T.nilable(String)) } def lparen; end # attr_reader lparen_loc: Location? # - # source://prism//lib/prism/node.rb#16418 + # source://prism//lib/prism/node.rb#17159 sig { returns(T.nilable(Prism::Location)) } def lparen_loc; end # def rparen: () -> String? # - # source://prism//lib/prism/node.rb#16487 + # source://prism//lib/prism/node.rb#17228 sig { returns(T.nilable(String)) } def rparen; end # attr_reader rparen_loc: Location? # - # source://prism//lib/prism/node.rb#16424 + # source://prism//lib/prism/node.rb#17165 sig { returns(T.nilable(Prism::Location)) } def rparen_loc; end @@ -27683,7 +29866,7 @@ class Prism::YieldNode < ::Prism::Node # # def type: () -> Symbol # - # source://prism//lib/prism/node.rb#16520 + # source://prism//lib/prism/node.rb#17261 def type; end class << self @@ -27694,7 +29877,7 @@ class Prism::YieldNode < ::Prism::Node # # def self.type: () -> Symbol # - # source://prism//lib/prism/node.rb#16530 + # source://prism//lib/prism/node.rb#17271 def type; end end end diff --git a/sorbet/rbi/gems/racc@1.7.1.rbi b/sorbet/rbi/gems/racc@1.7.3.rbi similarity index 71% rename from sorbet/rbi/gems/racc@1.7.1.rbi rename to sorbet/rbi/gems/racc@1.7.3.rbi index d01a4f51..3e58f811 100644 --- a/sorbet/rbi/gems/racc@1.7.1.rbi +++ b/sorbet/rbi/gems/racc@1.7.3.rbi @@ -7,32 +7,32 @@ # source://racc//lib/racc/parser.rb#23 ParseError = Racc::ParseError -# source://racc//lib/racc/info.rb#16 +# source://racc//lib/racc/info.rb#17 Racc::Copyright = T.let(T.unsafe(nil), String) -# source://racc//lib/racc/parser.rb#186 +# source://racc//lib/racc/parser.rb#188 class Racc::Parser - # source://racc//lib/racc/parser.rb#281 + # source://racc//lib/racc/parser.rb#283 def _racc_do_parse_rb(arg, in_debug); end - # source://racc//lib/racc/parser.rb#481 + # source://racc//lib/racc/parser.rb#483 def _racc_do_reduce(arg, act); end # common # - # source://racc//lib/racc/parser.rb#384 + # source://racc//lib/racc/parser.rb#386 def _racc_evalact(act, arg); end - # source://racc//lib/racc/parser.rb#234 + # source://racc//lib/racc/parser.rb#236 def _racc_init_sysvars; end - # source://racc//lib/racc/parser.rb#222 + # source://racc//lib/racc/parser.rb#224 def _racc_setup; end - # source://racc//lib/racc/parser.rb#331 + # source://racc//lib/racc/parser.rb#333 def _racc_yyparse_rb(recv, mid, arg, c_debug); end - # source://racc//lib/racc/parser.rb#264 + # source://racc//lib/racc/parser.rb#266 def do_parse; end # The method to fetch next token. @@ -46,7 +46,7 @@ class Racc::Parser # # @raise [NotImplementedError] # - # source://racc//lib/racc/parser.rb#277 + # source://racc//lib/racc/parser.rb#279 def next_token; end # This method is called when a parse error is found. @@ -66,96 +66,96 @@ class Racc::Parser # # @raise [ParseError] # - # source://racc//lib/racc/parser.rb#537 + # source://racc//lib/racc/parser.rb#539 def on_error(t, val, vstack); end - # source://racc//lib/racc/parser.rb#586 + # source://racc//lib/racc/parser.rb#588 def racc_accept; end - # source://racc//lib/racc/parser.rb#591 + # source://racc//lib/racc/parser.rb#593 def racc_e_pop(state, tstack, vstack); end - # source://racc//lib/racc/parser.rb#598 + # source://racc//lib/racc/parser.rb#600 def racc_next_state(curstate, state); end - # source://racc//lib/racc/parser.rb#604 + # source://racc//lib/racc/parser.rb#606 def racc_print_stacks(t, v); end - # source://racc//lib/racc/parser.rb#613 + # source://racc//lib/racc/parser.rb#615 def racc_print_states(s); end # For debugging output # - # source://racc//lib/racc/parser.rb#560 + # source://racc//lib/racc/parser.rb#562 def racc_read_token(t, tok, val); end - # source://racc//lib/racc/parser.rb#573 + # source://racc//lib/racc/parser.rb#575 def racc_reduce(toks, sim, tstack, vstack); end - # source://racc//lib/racc/parser.rb#567 + # source://racc//lib/racc/parser.rb#569 def racc_shift(tok, tstack, vstack); end - # source://racc//lib/racc/parser.rb#620 + # source://racc//lib/racc/parser.rb#622 def racc_token2str(tok); end # Convert internal ID of token symbol to the string. # - # source://racc//lib/racc/parser.rb#626 + # source://racc//lib/racc/parser.rb#628 def token_to_str(t); end # Exit parser. # Return value is +Symbol_Value_Stack[0]+. # - # source://racc//lib/racc/parser.rb#550 + # source://racc//lib/racc/parser.rb#552 def yyaccept; end # Leave error recovering mode. # - # source://racc//lib/racc/parser.rb#555 + # source://racc//lib/racc/parser.rb#557 def yyerrok; end # Enter error recovering mode. # This method does not call #on_error. # - # source://racc//lib/racc/parser.rb#544 + # source://racc//lib/racc/parser.rb#546 def yyerror; end - # source://racc//lib/racc/parser.rb#326 + # source://racc//lib/racc/parser.rb#328 def yyparse(recv, mid); end class << self - # source://racc//lib/racc/parser.rb#218 + # source://racc//lib/racc/parser.rb#220 def racc_runtime_type; end end end -# source://racc//lib/racc/parser.rb#207 +# source://racc//lib/racc/parser.rb#209 Racc::Parser::Racc_Main_Parsing_Routine = T.let(T.unsafe(nil), Symbol) Racc::Parser::Racc_Runtime_Core_Id_C = T.let(T.unsafe(nil), String) -# source://racc//lib/racc/parser.rb#209 +# source://racc//lib/racc/parser.rb#211 Racc::Parser::Racc_Runtime_Core_Version = T.let(T.unsafe(nil), String) Racc::Parser::Racc_Runtime_Core_Version_C = T.let(T.unsafe(nil), String) -# source://racc//lib/racc/parser.rb#189 +# source://racc//lib/racc/parser.rb#191 Racc::Parser::Racc_Runtime_Core_Version_R = T.let(T.unsafe(nil), String) -# source://racc//lib/racc/parser.rb#210 +# source://racc//lib/racc/parser.rb#212 Racc::Parser::Racc_Runtime_Type = T.let(T.unsafe(nil), String) -# source://racc//lib/racc/parser.rb#188 +# source://racc//lib/racc/parser.rb#190 Racc::Parser::Racc_Runtime_Version = T.let(T.unsafe(nil), String) -# source://racc//lib/racc/parser.rb#208 +# source://racc//lib/racc/parser.rb#210 Racc::Parser::Racc_YY_Parse_Method = T.let(T.unsafe(nil), Symbol) -# source://racc//lib/racc/parser.rb#183 +# source://racc//lib/racc/parser.rb#185 Racc::Racc_No_Extensions = T.let(T.unsafe(nil), FalseClass) -# source://racc//lib/racc/info.rb#14 +# source://racc//lib/racc/info.rb#15 Racc::VERSION = T.let(T.unsafe(nil), String) -# source://racc//lib/racc/info.rb#15 +# source://racc//lib/racc/info.rb#16 Racc::Version = T.let(T.unsafe(nil), String) diff --git a/sorbet/rbi/gems/rake@13.0.6.rbi b/sorbet/rbi/gems/rake@13.1.0.rbi similarity index 96% rename from sorbet/rbi/gems/rake@13.0.6.rbi rename to sorbet/rbi/gems/rake@13.1.0.rbi index 0202f06d..f1286717 100644 --- a/sorbet/rbi/gems/rake@13.0.6.rbi +++ b/sorbet/rbi/gems/rake@13.1.0.rbi @@ -22,13 +22,13 @@ module FileUtils # Example: # ruby %{-pe '$_.upcase!' ['a', 'b', 'c'] # - # source://rake//lib/rake/file_utils.rb#128 + # source://rake//lib/rake/file_utils.rb#126 def split_all(path); end private @@ -75,14 +75,14 @@ module FileUtils # source://rake//lib/rake/file_utils.rb#61 def create_shell_runner(cmd); end - # source://rake//lib/rake/file_utils.rb#86 + # source://rake//lib/rake/file_utils.rb#84 def set_verbose_option(options); end - # source://rake//lib/rake/file_utils.rb#73 + # source://rake//lib/rake/file_utils.rb#71 def sh_show_command(cmd); end end -# source://rake//lib/rake/file_utils.rb#108 +# source://rake//lib/rake/file_utils.rb#106 FileUtils::LN_SUPPORTED = T.let(T.unsafe(nil), Array) # Path to the currently running Ruby program @@ -195,13 +195,13 @@ class Rake::Application # Add a file to the list of files to be imported. # - # source://rake//lib/rake/application.rb#777 + # source://rake//lib/rake/application.rb#801 def add_import(fn); end # Add a loader to handle imported files ending in the extension # +ext+. # - # source://rake//lib/rake/application.rb#139 + # source://rake//lib/rake/application.rb#161 def add_loader(ext, loader); end # Collect the list of tasks on the command line. If no tasks are @@ -213,13 +213,13 @@ class Rake::Application # recognised command-line options, which OptionParser.parse will # have taken care of already. # - # source://rake//lib/rake/application.rb#758 + # source://rake//lib/rake/application.rb#782 def collect_command_line_tasks(args); end # Default task name ("default"). # (May be overridden by subclasses) # - # source://rake//lib/rake/application.rb#772 + # source://rake//lib/rake/application.rb#796 def default_task_name; end # Warn about deprecated usage. @@ -227,75 +227,75 @@ class Rake::Application # Example: # Rake.application.deprecate("import", "Rake.import", caller.first) # - # source://rake//lib/rake/application.rb#258 + # source://rake//lib/rake/application.rb#282 def deprecate(old_usage, new_usage, call_site); end - # source://rake//lib/rake/application.rb#222 + # source://rake//lib/rake/application.rb#244 def display_cause_details(ex); end # Display the error message that caused the exception. # - # source://rake//lib/rake/application.rb#206 + # source://rake//lib/rake/application.rb#228 def display_error_message(ex); end - # source://rake//lib/rake/application.rb#245 + # source://rake//lib/rake/application.rb#269 def display_exception_backtrace(ex); end - # source://rake//lib/rake/application.rb#214 + # source://rake//lib/rake/application.rb#236 def display_exception_details(ex); end - # source://rake//lib/rake/application.rb#229 + # source://rake//lib/rake/application.rb#251 def display_exception_details_seen; end - # source://rake//lib/rake/application.rb#237 + # source://rake//lib/rake/application.rb#259 def display_exception_message_details(ex); end # Display the tasks and prerequisites # - # source://rake//lib/rake/application.rb#381 + # source://rake//lib/rake/application.rb#405 def display_prerequisites; end # Display the tasks and comments. # - # source://rake//lib/rake/application.rb#298 + # source://rake//lib/rake/application.rb#322 def display_tasks_and_comments; end # Calculate the dynamic width of the # - # source://rake//lib/rake/application.rb#349 + # source://rake//lib/rake/application.rb#373 def dynamic_width; end - # source://rake//lib/rake/application.rb#353 + # source://rake//lib/rake/application.rb#377 def dynamic_width_stty; end - # source://rake//lib/rake/application.rb#357 + # source://rake//lib/rake/application.rb#381 def dynamic_width_tput; end # Exit the program because of an unhandled exception. # (may be overridden by subclasses) # - # source://rake//lib/rake/application.rb#201 + # source://rake//lib/rake/application.rb#223 def exit_because_of_exception(ex); end - # source://rake//lib/rake/application.rb#678 + # source://rake//lib/rake/application.rb#702 def find_rakefile_location; end # Read and handle the command line options. Returns the command line # arguments that we didn't understand, which should (in theory) be just # task names and env vars. # - # source://rake//lib/rake/application.rb#644 + # source://rake//lib/rake/application.rb#668 def handle_options(argv); end # @return [Boolean] # - # source://rake//lib/rake/application.rb#233 + # source://rake//lib/rake/application.rb#255 def has_cause?(ex); end # True if one of the files in RAKEFILES is in the current directory. # If a match is found, it is copied into @rakefile. # - # source://rake//lib/rake/application.rb#274 + # source://rake//lib/rake/application.rb#298 def have_rakefile; end # Initialize the command line parameters and app name. @@ -305,17 +305,17 @@ class Rake::Application # Invokes a task with arguments that are extracted from +task_string+ # - # source://rake//lib/rake/application.rb#157 + # source://rake//lib/rake/application.rb#179 def invoke_task(task_string); end # Load the pending list of imported files. # - # source://rake//lib/rake/application.rb#782 + # source://rake//lib/rake/application.rb#806 def load_imports; end # Find the rakefile and then load it and any pending imports. # - # source://rake//lib/rake/application.rb#102 + # source://rake//lib/rake/application.rb#124 def load_rakefile; end # The name of the application (typically 'rake') @@ -325,7 +325,7 @@ class Rake::Application # Application options from the command line # - # source://rake//lib/rake/application.rb#145 + # source://rake//lib/rake/application.rb#167 def options; end # The original directory where rake was invoked. @@ -333,16 +333,16 @@ class Rake::Application # source://rake//lib/rake/application.rb#27 def original_dir; end - # source://rake//lib/rake/application.rb#163 + # source://rake//lib/rake/application.rb#185 def parse_task_string(string); end - # source://rake//lib/rake/application.rb#690 + # source://rake//lib/rake/application.rb#714 def print_rakefile_directory(location); end # Similar to the regular Ruby +require+ command, but will check # for *.rake files in addition to *.rb files. # - # source://rake//lib/rake/application.rb#664 + # source://rake//lib/rake/application.rb#688 def rake_require(file_name, paths = T.unsafe(nil), loaded = T.unsafe(nil)); end # Name of the actual rakefile used. @@ -350,10 +350,10 @@ class Rake::Application # source://rake//lib/rake/application.rb#30 def rakefile; end - # source://rake//lib/rake/application.rb#798 + # source://rake//lib/rake/application.rb#822 def rakefile_location(backtrace = T.unsafe(nil)); end - # source://rake//lib/rake/application.rb#695 + # source://rake//lib/rake/application.rb#719 def raw_load_rakefile; end # Run the Rake application. The run method performs the following @@ -372,26 +372,26 @@ class Rake::Application # Run the given block with the thread startup and shutdown. # - # source://rake//lib/rake/application.rb#122 + # source://rake//lib/rake/application.rb#144 def run_with_threads; end - # source://rake//lib/rake/application.rb#807 + # source://rake//lib/rake/application.rb#831 def set_default_options; end # Provide standard exception handling for the given block. # - # source://rake//lib/rake/application.rb#185 + # source://rake//lib/rake/application.rb#207 def standard_exception_handling; end # A list of all the standard options used in rake, suitable for # passing to OptionParser. # - # source://rake//lib/rake/application.rb#402 + # source://rake//lib/rake/application.rb#426 def standard_rake_options; end # The directory path containing the system wide rakefiles. # - # source://rake//lib/rake/application.rb#727 + # source://rake//lib/rake/application.rb#751 def system_dir; end # Number of columns on the terminal @@ -404,17 +404,17 @@ class Rake::Application # source://rake//lib/rake/application.rb#33 def terminal_columns=(_arg0); end - # source://rake//lib/rake/application.rb#337 + # source://rake//lib/rake/application.rb#361 def terminal_width; end # Return the thread pool used for multithreaded processing. # - # source://rake//lib/rake/application.rb#150 + # source://rake//lib/rake/application.rb#172 def thread_pool; end # Run the top level tasks of a Rake application. # - # source://rake//lib/rake/application.rb#109 + # source://rake//lib/rake/application.rb#131 def top_level; end # List of the top level task names (task names from the command line). @@ -422,10 +422,10 @@ class Rake::Application # source://rake//lib/rake/application.rb#36 def top_level_tasks; end - # source://rake//lib/rake/application.rb#388 + # source://rake//lib/rake/application.rb#412 def trace(*strings); end - # source://rake//lib/rake/application.rb#370 + # source://rake//lib/rake/application.rb#394 def truncate(string, width); end # We will truncate output if we are outputting to a TTY or if we've been @@ -433,7 +433,7 @@ class Rake::Application # # @return [Boolean] # - # source://rake//lib/rake/application.rb#293 + # source://rake//lib/rake/application.rb#317 def truncate_output?; end # Override the detected TTY output state (mostly for testing) @@ -445,41 +445,44 @@ class Rake::Application # # @return [Boolean] # - # source://rake//lib/rake/application.rb#287 + # source://rake//lib/rake/application.rb#311 def tty_output?; end # @return [Boolean] # - # source://rake//lib/rake/application.rb#361 + # source://rake//lib/rake/application.rb#385 def unix?; end # @return [Boolean] # - # source://rake//lib/rake/application.rb#366 + # source://rake//lib/rake/application.rb#390 def windows?; end private - # source://rake//lib/rake/application.rb#721 + # source://rake//lib/rake/application.rb#745 def glob(path, &block); end # Does the exception have a task invocation chain? # # @return [Boolean] # - # source://rake//lib/rake/application.rb#267 + # source://rake//lib/rake/application.rb#291 def has_chain?(exception); end - # source://rake//lib/rake/application.rb#620 + # source://rake//lib/rake/application.rb#102 + def load_debug_at_stop_feature; end + + # source://rake//lib/rake/application.rb#644 def select_tasks_to_show(options, show_tasks, value); end - # source://rake//lib/rake/application.rb#627 + # source://rake//lib/rake/application.rb#651 def select_trace_output(options, trace_option, value); end - # source://rake//lib/rake/application.rb#393 + # source://rake//lib/rake/application.rb#417 def sort_options(options); end - # source://rake//lib/rake/application.rb#744 + # source://rake//lib/rake/application.rb#768 def standard_system_dir; end end @@ -591,7 +594,7 @@ module Rake::DSL # # Example: # desc "Run the Unit Tests" - # task test: [:build] + # task test: [:build] do # # ... run tests # end # @@ -745,7 +748,7 @@ module Rake::DSL # source://rake//lib/rake/file_utils_ext.rb#34 def rmtree(*args, **options, &block); end - # source://rake//lib/rake/file_utils.rb#100 + # source://rake//lib/rake/file_utils.rb#98 def ruby(*args, **options, &block); end # Declare a rule for auto-tasks. @@ -758,7 +761,7 @@ module Rake::DSL # source://rake//lib/rake/dsl_definition.rb#151 def rule(*args, &block); end - # source://rake//lib/rake/file_utils.rb#112 + # source://rake//lib/rake/file_utils.rb#110 def safe_ln(*args, **options); end # source://rake//lib/rake/file_utils_ext.rb#34 @@ -767,7 +770,7 @@ module Rake::DSL # source://rake//lib/rake/file_utils.rb#43 def sh(*cmd, &block); end - # source://rake//lib/rake/file_utils.rb#128 + # source://rake//lib/rake/file_utils.rb#126 def split_all(path); end # source://rake//lib/rake/file_utils_ext.rb#34 @@ -1580,7 +1583,7 @@ class Rake::FileTask < ::Rake::Task # Time stamp for file task. # - # source://rake//lib/rake/file_task.rb#21 + # source://rake//lib/rake/file_task.rb#25 def timestamp; end private @@ -1589,14 +1592,14 @@ class Rake::FileTask < ::Rake::Task # # @return [Boolean] # - # source://rake//lib/rake/file_task.rb#32 + # source://rake//lib/rake/file_task.rb#36 def out_of_date?(stamp); end class << self # Apply the scope to the task name according to the rules for this kind # of task. File based tasks ignore the scope when creating the name. # - # source://rake//lib/rake/file_task.rb#49 + # source://rake//lib/rake/file_task.rb#53 def scope_name(scope, task_name); end end end @@ -2854,14 +2857,14 @@ class Rake::ThreadHistoryDisplay def threads; end end -# source://rake//lib/rake/thread_pool.rb#7 +# source://rake//lib/rake/thread_pool.rb#8 class Rake::ThreadPool # Creates a ThreadPool object. The +thread_count+ parameter is the size # of the pool. # # @return [ThreadPool] a new instance of ThreadPool # - # source://rake//lib/rake/thread_pool.rb#11 + # source://rake//lib/rake/thread_pool.rb#12 def initialize(thread_count); end # Creates a future executed by the +ThreadPool+. diff --git a/sorbet/rbi/gems/regexp_parser@2.8.1.rbi b/sorbet/rbi/gems/regexp_parser@2.8.2.rbi similarity index 98% rename from sorbet/rbi/gems/regexp_parser@2.8.1.rbi rename to sorbet/rbi/gems/regexp_parser@2.8.2.rbi index e10d9b8d..80a6a1f4 100644 --- a/sorbet/rbi/gems/regexp_parser@2.8.1.rbi +++ b/sorbet/rbi/gems/regexp_parser@2.8.2.rbi @@ -2590,17 +2590,17 @@ Regexp::Parser::VERSION = T.let(T.unsafe(nil), String) class Regexp::Scanner # Emits an array with the details of the scanned pattern # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2388 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2405 def emit(type, token, text); end # only public for #||= to work on ruby <= 2.5 # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2413 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2430 def literal_run; end # only public for #||= to work on ruby <= 2.5 # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2413 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2430 def literal_run=(_arg0); end # @raise [PrematureEndError] @@ -2613,168 +2613,168 @@ class Regexp::Scanner # Appends one or more characters to the literal buffer, to be emitted later # by a call to emit_literal. # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2450 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2467 def append_literal(data, ts, te); end # Returns the value of attribute block. # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2417 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2434 def block; end # Sets the attribute block # # @param value the value to set the attribute block to. # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2417 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2434 def block=(_arg0); end # Returns the value of attribute char_pos. # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2417 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2434 def char_pos; end # Sets the attribute char_pos # # @param value the value to set the attribute char_pos to. # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2417 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2434 def char_pos=(_arg0); end # Returns the value of attribute collect_tokens. # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2417 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2434 def collect_tokens; end # Sets the attribute collect_tokens # # @param value the value to set the attribute collect_tokens to. # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2417 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2434 def collect_tokens=(_arg0); end # Returns the value of attribute conditional_stack. # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2417 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2434 def conditional_stack; end # Sets the attribute conditional_stack # # @param value the value to set the attribute conditional_stack to. # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2417 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2434 def conditional_stack=(_arg0); end # Copy from ts to te from data as text # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2444 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2461 def copy(data, ts, te); end # Emits the literal run collected by calls to the append_literal method. # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2455 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2472 def emit_literal; end - # source://regexp_parser//lib/regexp_parser/scanner.rb#2490 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2507 def emit_meta_control_sequence(data, ts, te, token); end - # source://regexp_parser//lib/regexp_parser/scanner.rb#2461 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2478 def emit_options(text); end # Returns the value of attribute free_spacing. # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2417 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2434 def free_spacing; end # Sets the attribute free_spacing # # @param value the value to set the attribute free_spacing to. # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2417 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2434 def free_spacing=(_arg0); end # @return [Boolean] # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2423 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2440 def free_spacing?(input_object, options); end # Returns the value of attribute group_depth. # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2417 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2434 def group_depth; end # Sets the attribute group_depth # # @param value the value to set the attribute group_depth to. # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2417 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2434 def group_depth=(_arg0); end # @return [Boolean] # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2435 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2452 def in_group?; end # @return [Boolean] # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2439 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2456 def in_set?; end # Returns the value of attribute prev_token. # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2417 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2434 def prev_token; end # Sets the attribute prev_token # # @param value the value to set the attribute prev_token to. # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2417 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2434 def prev_token=(_arg0); end # Returns the value of attribute set_depth. # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2417 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2434 def set_depth; end # Sets the attribute set_depth # # @param value the value to set the attribute set_depth to. # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2417 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2434 def set_depth=(_arg0); end # Returns the value of attribute spacing_stack. # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2417 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2434 def spacing_stack; end # Sets the attribute spacing_stack # # @param value the value to set the attribute spacing_stack to. # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2417 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2434 def spacing_stack=(_arg0); end # Returns the value of attribute tokens. # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2417 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2434 def tokens; end # Sets the attribute tokens # # @param value the value to set the attribute tokens to. # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2417 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2434 def tokens=(_arg0); end class << self - # source://regexp_parser//lib/regexp_parser/scanner.rb#2374 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2391 def long_prop_map; end - # source://regexp_parser//lib/regexp_parser/scanner.rb#2378 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2395 def parse_prop_map(name); end - # source://regexp_parser//lib/regexp_parser/scanner.rb#2382 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2399 def posix_classes; end # Scans the given regular expression text, or Regexp object and collects the @@ -2789,7 +2789,7 @@ class Regexp::Scanner # lazy-load property maps when first needed # - # source://regexp_parser//lib/regexp_parser/scanner.rb#2370 + # source://regexp_parser//lib/regexp_parser/scanner.rb#2387 def short_prop_map; end end end diff --git a/sorbet/rbi/gems/rexml@3.2.5.rbi b/sorbet/rbi/gems/rexml@3.2.6.rbi similarity index 97% rename from sorbet/rbi/gems/rexml@3.2.5.rbi rename to sorbet/rbi/gems/rexml@3.2.6.rbi index a94e5671..c8d67b58 100644 --- a/sorbet/rbi/gems/rexml@3.2.5.rbi +++ b/sorbet/rbi/gems/rexml@3.2.6.rbi @@ -101,18 +101,18 @@ class REXML::Attribute # # @return [Attribute] a new instance of Attribute # - # source://rexml//lib/rexml/attribute.rb#45 + # source://rexml//lib/rexml/attribute.rb#42 def initialize(first, second = T.unsafe(nil), parent = T.unsafe(nil)); end # Returns true if other is an Attribute and has the same name and value, # false otherwise. # - # source://rexml//lib/rexml/attribute.rb#109 + # source://rexml//lib/rexml/attribute.rb#106 def ==(other); end # Returns a copy of this attribute # - # source://rexml//lib/rexml/attribute.rb#158 + # source://rexml//lib/rexml/attribute.rb#163 def clone; end # source://rexml//lib/rexml/attribute.rb#132 @@ -128,15 +128,15 @@ class REXML::Attribute # # Returns this attribute # - # source://rexml//lib/rexml/attribute.rb#166 + # source://rexml//lib/rexml/attribute.rb#171 def element=(element); end # Creates (and returns) a hash from both the name and value # - # source://rexml//lib/rexml/attribute.rb#114 + # source://rexml//lib/rexml/attribute.rb#111 def hash; end - # source://rexml//lib/rexml/attribute.rb#192 + # source://rexml//lib/rexml/attribute.rb#197 def inspect; end # Returns the namespace URL, if defined, or nil otherwise @@ -161,17 +161,17 @@ class REXML::Attribute # e.add_attribute("a", "b") # e.attribute("a").namespace # => "" # - # source://rexml//lib/rexml/attribute.rb#98 + # source://rexml//lib/rexml/attribute.rb#95 def namespace(arg = T.unsafe(nil)); end - # source://rexml//lib/rexml/attribute.rb#188 + # source://rexml//lib/rexml/attribute.rb#193 def node_type; end # The normalized value of this attribute. That is, the attribute with # entities intact. # - # source://rexml//lib/rexml/attribute.rb#18 - def normalized=(_arg0); end + # source://rexml//lib/rexml/attribute.rb#157 + def normalized=(new_normalized); end # Returns the namespace of the attribute. # @@ -183,14 +183,14 @@ class REXML::Attribute # a = Attribute.new( "x", "y" ) # a.prefix # -> "" # - # source://rexml//lib/rexml/attribute.rb#73 + # source://rexml//lib/rexml/attribute.rb#70 def prefix; end # Removes this Attribute from the tree, and returns true if successful # # This method is usually not called directly. # - # source://rexml//lib/rexml/attribute.rb#179 + # source://rexml//lib/rexml/attribute.rb#184 def remove; end # Returns the attribute value, with entities replaced @@ -205,21 +205,21 @@ class REXML::Attribute # b = Attribute.new( "ns:x", "y" ) # b.to_string # -> "ns:x='y'" # - # source://rexml//lib/rexml/attribute.rb#124 + # source://rexml//lib/rexml/attribute.rb#121 def to_string; end # Returns the UNNORMALIZED value of this attribute. That is, entities # have been expanded to their values # - # source://rexml//lib/rexml/attribute.rb#150 + # source://rexml//lib/rexml/attribute.rb#149 def value; end # Writes this attribute (EG, puts 'key="value"' to the output) # - # source://rexml//lib/rexml/attribute.rb#184 + # source://rexml//lib/rexml/attribute.rb#189 def write(output, indent = T.unsafe(nil)); end - # source://rexml//lib/rexml/attribute.rb#198 + # source://rexml//lib/rexml/attribute.rb#203 def xpath; end end @@ -978,7 +978,7 @@ class REXML::Document < ::REXML::Element # d.to_s # => "FooBar" # # When argument +document+ is given, it must be an existing - # document object, whose context and attributes (but not chidren) + # document object, whose context and attributes (but not children) # are cloned into the new document: # # d = REXML::Document.new(xml_string) @@ -2225,7 +2225,7 @@ class REXML::Element < ::REXML::Parent # :call-seq: # has_text? -> true or false # - # Returns +true if the element has one or more text noded, + # Returns +true+ if the element has one or more text noded, # +false+ otherwise: # # d = REXML::Document.new 'text' @@ -2473,7 +2473,7 @@ class REXML::Element < ::REXML::Parent # text(xpath = nil) -> text_string or nil # # Returns the text string from the first text node child - # in a specified element, if it exists, # +nil+ otherwise. + # in a specified element, if it exists, +nil+ otherwise. # # With no argument, returns the text from the first text node in +self+: # @@ -2481,7 +2481,7 @@ class REXML::Element < ::REXML::Parent # d.root.text.class # => String # d.root.text # => "some text " # - # With argument +xpath+, returns text from the the first text node + # With argument +xpath+, returns text from the first text node # in the element that matches +xpath+: # # d.root.text(1) # => "this is bold!" @@ -3252,6 +3252,9 @@ class REXML::Entity < ::REXML::Child # source://rexml//lib/rexml/entity.rb#85 def normalized; end + # source://rexml//lib/rexml/entity.rb#138 + def parent=(other); end + # Returns the value of attribute pubid. # # source://rexml//lib/rexml/entity.rb#22 @@ -3298,6 +3301,11 @@ class REXML::Entity < ::REXML::Child # source://rexml//lib/rexml/entity.rb#97 def write(out, indent = T.unsafe(nil)); end + private + + # source://rexml//lib/rexml/entity.rb#144 + def resolve_value; end + class << self # Evaluates whether the given string matches an entity definition, # returning true if so, and false otherwise. @@ -3554,6 +3562,54 @@ class REXML::Instruction < ::REXML::Child def write(writer, indent = T.unsafe(nil), transitive = T.unsafe(nil), ie_hack = T.unsafe(nil)); end end +# Adds named attributes to an object. +# +# source://rexml//lib/rexml/namespace.rb#7 +module REXML::Namespace + include ::REXML::XMLTokens + + # The name of the object, valid if set + # + # source://rexml//lib/rexml/namespace.rb#9 + def expanded_name; end + + # Fully expand the name, even if the prefix wasn't specified in the + # source file. + # + # source://rexml//lib/rexml/namespace.rb#57 + def fully_expanded_name; end + + # Compares names optionally WITH namespaces + # + # @return [Boolean] + # + # source://rexml//lib/rexml/namespace.rb#43 + def has_name?(other, ns = T.unsafe(nil)); end + + # The name of the object, valid if set + # + # source://rexml//lib/rexml/namespace.rb#9 + def name; end + + # Sets the name and the expanded name + # + # source://rexml//lib/rexml/namespace.rb#17 + def name=(name); end + + # The expanded name of the object, valid if name is set + # + # source://rexml//lib/rexml/namespace.rb#11 + def prefix; end + + # The expanded name of the object, valid if name is set + # + # source://rexml//lib/rexml/namespace.rb#11 + def prefix=(_arg0); end +end + +# source://rexml//lib/rexml/namespace.rb#13 +REXML::Namespace::NAME_WITHOUT_NAMESPACE = T.let(T.unsafe(nil), Regexp) + # source://rexml//lib/rexml/doctype.rb#280 class REXML::NotationDecl < ::REXML::Child # @return [NotationDecl] a new instance of NotationDecl @@ -3972,57 +4028,62 @@ end # There is strange, dark magic at work in this code. Beware. Go back! Go # back while you still can! # -# source://rexml//lib/rexml/parsers/xpathparser.rb#11 +# source://rexml//lib/rexml/parsers/xpathparser.rb#12 class REXML::Parsers::XPathParser include ::REXML::XMLTokens - # source://rexml//lib/rexml/parsers/xpathparser.rb#41 - def abbreviate(path); end + # source://rexml//lib/rexml/parsers/xpathparser.rb#42 + def abbreviate(path_or_parsed); end - # source://rexml//lib/rexml/parsers/xpathparser.rb#99 - def expand(path); end + # source://rexml//lib/rexml/parsers/xpathparser.rb#132 + def expand(path_or_parsed); end - # source://rexml//lib/rexml/parsers/xpathparser.rb#15 + # source://rexml//lib/rexml/parsers/xpathparser.rb#16 def namespaces=(namespaces); end - # source://rexml//lib/rexml/parsers/xpathparser.rb#20 + # source://rexml//lib/rexml/parsers/xpathparser.rb#21 def parse(path); end - # source://rexml//lib/rexml/parsers/xpathparser.rb#35 + # For backward compatibility + # + # source://rexml//lib/rexml/parsers/xpathparser.rb#174 + def preciate_to_string(parsed, &block); end + + # source://rexml//lib/rexml/parsers/xpathparser.rb#36 def predicate(path); end - # source://rexml//lib/rexml/parsers/xpathparser.rb#138 - def predicate_to_string(path, &block); end + # source://rexml//lib/rexml/parsers/xpathparser.rb#174 + def predicate_to_path(parsed, &block); end private # | AdditiveExpr ('+' | '-') MultiplicativeExpr # | MultiplicativeExpr # - # source://rexml//lib/rexml/parsers/xpathparser.rb#455 + # source://rexml//lib/rexml/parsers/xpathparser.rb#505 def AdditiveExpr(path, parsed); end # | AndExpr S 'and' S EqualityExpr # | EqualityExpr # - # source://rexml//lib/rexml/parsers/xpathparser.rb#388 + # source://rexml//lib/rexml/parsers/xpathparser.rb#438 def AndExpr(path, parsed); end # | EqualityExpr ('=' | '!=') RelationalExpr # | RelationalExpr # - # source://rexml//lib/rexml/parsers/xpathparser.rb#407 + # source://rexml//lib/rexml/parsers/xpathparser.rb#457 def EqualityExpr(path, parsed); end # | FilterExpr Predicate # | PrimaryExpr # - # source://rexml//lib/rexml/parsers/xpathparser.rb#558 + # source://rexml//lib/rexml/parsers/xpathparser.rb#608 def FilterExpr(path, parsed); end # | FUNCTION_NAME '(' ( expr ( ',' expr )* )? ')' # - # source://rexml//lib/rexml/parsers/xpathparser.rb#613 + # source://rexml//lib/rexml/parsers/xpathparser.rb#663 def FunctionCall(rest, parsed); end # LocationPath @@ -4030,69 +4091,72 @@ class REXML::Parsers::XPathParser # | '/' RelativeLocationPath? # | '//' RelativeLocationPath # - # source://rexml//lib/rexml/parsers/xpathparser.rb#193 + # source://rexml//lib/rexml/parsers/xpathparser.rb#243 def LocationPath(path, parsed); end # | MultiplicativeExpr ('*' | S ('div' | 'mod') S) UnaryExpr # | UnaryExpr # - # source://rexml//lib/rexml/parsers/xpathparser.rb#478 + # source://rexml//lib/rexml/parsers/xpathparser.rb#528 def MultiplicativeExpr(path, parsed); end - # source://rexml//lib/rexml/parsers/xpathparser.rb#293 + # source://rexml//lib/rexml/parsers/xpathparser.rb#343 def NodeTest(path, parsed); end # | OrExpr S 'or' S AndExpr # | AndExpr # - # source://rexml//lib/rexml/parsers/xpathparser.rb#369 + # source://rexml//lib/rexml/parsers/xpathparser.rb#419 def OrExpr(path, parsed); end # | LocationPath # | FilterExpr ('/' | '//') RelativeLocationPath # - # source://rexml//lib/rexml/parsers/xpathparser.rb#540 + # source://rexml//lib/rexml/parsers/xpathparser.rb#590 def PathExpr(path, parsed); end # Filters the supplied nodeset on the predicate(s) # - # source://rexml//lib/rexml/parsers/xpathparser.rb#345 + # source://rexml//lib/rexml/parsers/xpathparser.rb#395 def Predicate(path, parsed); end - # source://rexml//lib/rexml/parsers/xpathparser.rb#576 + # source://rexml//lib/rexml/parsers/xpathparser.rb#626 def PrimaryExpr(path, parsed); end # | RelationalExpr ('<' | '>' | '<=' | '>=') AdditiveExpr # | AdditiveExpr # - # source://rexml//lib/rexml/parsers/xpathparser.rb#430 + # source://rexml//lib/rexml/parsers/xpathparser.rb#480 def RelationalExpr(path, parsed); end - # source://rexml//lib/rexml/parsers/xpathparser.rb#217 + # source://rexml//lib/rexml/parsers/xpathparser.rb#267 def RelativeLocationPath(path, parsed); end # | '-' UnaryExpr # | UnionExpr # - # source://rexml//lib/rexml/parsers/xpathparser.rb#503 + # source://rexml//lib/rexml/parsers/xpathparser.rb#553 def UnaryExpr(path, parsed); end # | UnionExpr '|' PathExpr # | PathExpr # - # source://rexml//lib/rexml/parsers/xpathparser.rb#521 + # source://rexml//lib/rexml/parsers/xpathparser.rb#571 def UnionExpr(path, parsed); end # get_group( '[foo]bar' ) -> ['bar', '[foo]'] # - # source://rexml//lib/rexml/parsers/xpathparser.rb#626 + # source://rexml//lib/rexml/parsers/xpathparser.rb#676 def get_group(string); end - # source://rexml//lib/rexml/parsers/xpathparser.rb#644 + # source://rexml//lib/rexml/parsers/xpathparser.rb#694 def parse_args(string); end + + # source://rexml//lib/rexml/parsers/xpathparser.rb#224 + def quote_literal(literal); end end -# source://rexml//lib/rexml/parsers/xpathparser.rb#289 +# source://rexml//lib/rexml/parsers/xpathparser.rb#339 REXML::Parsers::XPathParser::LOCAL_NAME_WILDCARD = T.let(T.unsafe(nil), Regexp) # Returns a 1-1 map of the nodeset @@ -4106,7 +4170,7 @@ REXML::Parsers::XPathParser::LOCAL_NAME_WILDCARD = T.let(T.unsafe(nil), Regexp) # | PI '(' LITERAL ')' PI # | '[' expr ']' Predicate # -# source://rexml//lib/rexml/parsers/xpathparser.rb#288 +# source://rexml//lib/rexml/parsers/xpathparser.rb#338 REXML::Parsers::XPathParser::PREFIX_WILDCARD = T.let(T.unsafe(nil), Regexp) # source://rexml//lib/rexml/doctype.rb#10 @@ -4401,7 +4465,7 @@ class REXML::Text < ::REXML::Child # source://rexml//lib/rexml/text.rb#131 def check(string, pattern, doctype); end - # source://rexml//lib/rexml/text.rb#405 + # source://rexml//lib/rexml/text.rb#407 def expand(ref, doctype, filter); end # Escapes all possible entities @@ -4416,7 +4480,7 @@ class REXML::Text < ::REXML::Child # Unescapes all possible entities # - # source://rexml//lib/rexml/text.rb#392 + # source://rexml//lib/rexml/text.rb#394 def unnormalize(string, doctype = T.unsafe(nil), filter = T.unsafe(nil), illegal = T.unsafe(nil)); end end end diff --git a/sorbet/rbi/gems/rubocop-ast@1.29.0.rbi b/sorbet/rbi/gems/rubocop-ast@1.30.0.rbi similarity index 98% rename from sorbet/rbi/gems/rubocop-ast@1.29.0.rbi rename to sorbet/rbi/gems/rubocop-ast@1.30.0.rbi index a0dd3b27..49f280f2 100644 --- a/sorbet/rbi/gems/rubocop-ast@1.29.0.rbi +++ b/sorbet/rbi/gems/rubocop-ast@1.30.0.rbi @@ -275,7 +275,7 @@ class RuboCop::AST::BlockNode < ::RuboCop::AST::Node # # @return [Array] # - # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#42 + # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#60 def argument_list; end # The arguments of this block. @@ -285,63 +285,81 @@ class RuboCop::AST::BlockNode < ::RuboCop::AST::Node # # @return [Array] # - # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#30 + # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#48 def arguments; end # Checks whether this block takes any arguments. # # @return [Boolean] whether this `block` node takes any arguments # - # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#67 + # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#85 def arguments?; end # The body of this block. # # @return [Node, nil] the body of the `block` node or `nil` # - # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#53 + # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#71 def body; end # Checks whether the `block` literal is delimited by curly braces. # # @return [Boolean] whether the `block` literal is enclosed in braces # - # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#74 + # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#92 def braces?; end # The closing delimiter for this `block` literal. # # @return [String] the closing delimiter for the `block` literal # - # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#102 + # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#120 def closing_delimiter; end # The delimiters for this `block` literal. # # @return [Array] the delimiters for the `block` literal # - # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#88 + # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#106 def delimiters; end + # A shorthand for getting the first argument of this block. + # Equivalent to `arguments.first`. + # + # @return [Node, nil] the first argument of this block, + # or `nil` if there are no arguments + # + # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#29 + def first_argument; end + # Checks whether the `block` literal is delimited by `do`-`end` keywords. # # @return [Boolean] whether the `block` literal is enclosed in `do`-`end` # - # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#81 + # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#99 def keywords?; end # Checks whether this `block` literal belongs to a lambda. # # @return [Boolean] whether the `block` literal belongs to a lambda # - # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#125 + # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#143 def lambda?; end + # A shorthand for getting the last argument of this block. + # Equivalent to `arguments.last`. + # + # @return [Node, nil] the last argument of this block, + # or `nil` if there are no arguments + # + # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#38 + def last_argument; end + # The name of the dispatched method as a symbol. # # @return [Symbol] the name of the dispatched method # - # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#60 + # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#78 def method_name; end # Checks whether this is a multiline block. This is overridden here @@ -349,14 +367,14 @@ class RuboCop::AST::BlockNode < ::RuboCop::AST::Node # # @return [Boolean] whether the `block` literal is on a several lines # - # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#118 + # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#136 def multiline?; end # The opening delimiter for this `block` literal. # # @return [String] the opening delimiter for the `block` literal # - # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#95 + # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#113 def opening_delimiter; end # The `send` node associated with this block. @@ -371,21 +389,21 @@ class RuboCop::AST::BlockNode < ::RuboCop::AST::Node # # @return [Boolean] whether the `block` literal is on a single line # - # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#110 + # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#128 def single_line?; end # Checks whether this node body is a void context. # # @return [Boolean] whether the `block` node body is a void context # - # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#132 + # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#150 def void_context?; end private # Numbered arguments of this `numblock`. # - # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#139 + # source://rubocop-ast//lib/rubocop/ast/node/block_node.rb#157 def numbered_arguments; end end @@ -1716,7 +1734,7 @@ class RuboCop::AST::IfNode < ::RuboCop::AST::Node # source://rubocop-ast//lib/rubocop/ast/node/if_node.rb#80 def modifier_form?; end - # Chacks whether the `if` node has nested `if` nodes in any of its + # Checks whether the `if` node has nested `if` nodes in any of its # branches. # # @note This performs a shallow search. @@ -4823,116 +4841,116 @@ class RuboCop::AST::NodePattern::Parser < ::Racc::Parser # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.rb#19 def initialize(builder = T.unsafe(nil)); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#333 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#335 def _reduce_10(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#337 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#339 def _reduce_11(val, _values); end # reduce 12 omitted # - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#343 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#345 def _reduce_13(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#347 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#349 def _reduce_14(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#351 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#353 def _reduce_15(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#355 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#357 def _reduce_16(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#359 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#361 def _reduce_17(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#363 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#365 def _reduce_18(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#367 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#369 def _reduce_19(val, _values); end # reduce 1 omitted # - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#301 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#303 def _reduce_2(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#371 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#373 def _reduce_20(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#375 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#377 def _reduce_21(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#379 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#381 def _reduce_22(val, _values); end # reduce 24 omitted # - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#387 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#389 def _reduce_25(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#393 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#395 def _reduce_26(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#305 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#307 def _reduce_3(val, _values); end # reduce 32 omitted # - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#413 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#415 def _reduce_33(val, _values); end # reduce 36 omitted # - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#423 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#425 def _reduce_37(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#427 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#429 def _reduce_38(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#431 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#433 def _reduce_39(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#309 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#311 def _reduce_4(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#435 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#437 def _reduce_40(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#439 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#441 def _reduce_41(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#443 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#445 def _reduce_42(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#447 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#449 def _reduce_43(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#451 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#453 def _reduce_44(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#455 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#457 def _reduce_45(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#459 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#461 def _reduce_46(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#313 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#315 def _reduce_5(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#317 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#319 def _reduce_6(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#321 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#323 def _reduce_7(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#325 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#327 def _reduce_8(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#329 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#331 def _reduce_9(val, _values); end - # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#463 + # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#465 def _reduce_none(val, _values); end # source://forwardable/1.3.3/forwardable.rb#231 @@ -4992,10 +5010,10 @@ RuboCop::AST::NodePattern::Parser::Lexer = RuboCop::AST::NodePattern::Lexer # source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#227 RuboCop::AST::NodePattern::Parser::Racc_arg = T.let(T.unsafe(nil), Array) -# source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#293 +# source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#295 RuboCop::AST::NodePattern::Parser::Racc_debug_parser = T.let(T.unsafe(nil), FalseClass) -# source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#243 +# source://rubocop-ast//lib/rubocop/ast/node_pattern/parser.racc.rb#244 RuboCop::AST::NodePattern::Parser::Racc_token_to_s_table = T.let(T.unsafe(nil), Array) # Overrides Parser to use `WithMeta` variants and provide additional methods @@ -5111,7 +5129,7 @@ RuboCop::AST::NodePattern::Sets::SET_ABSTRACT_OVERRIDE_OVERRIDABLE_ETC = T.let(T RuboCop::AST::NodePattern::Sets::SET_ADD_DEPENDENCY_ADD_RUNTIME_DEPENDENCY_ADD_DEVELOPMENT_DEPENDENCY = T.let(T.unsafe(nil), Set) # source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10 -RuboCop::AST::NodePattern::Sets::SET_ANY_ALL_NORETURN_ETC = T.let(T.unsafe(nil), Set) +RuboCop::AST::NodePattern::Sets::SET_ALL_ANY_CLASS_OF_ETC = T.let(T.unsafe(nil), Set) # source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10 RuboCop::AST::NodePattern::Sets::SET_ANY_EMPTY = T.let(T.unsafe(nil), Set) @@ -5252,7 +5270,7 @@ RuboCop::AST::NodePattern::Sets::SET_PIPELINE_PIPELINE_R_PIPELINE_RW_ETC = T.let RuboCop::AST::NodePattern::Sets::SET_PRESENT_ANY_BLANK_EMPTY = T.let(T.unsafe(nil), Set) # source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10 -RuboCop::AST::NodePattern::Sets::SET_PRIVATE_PROTECTED = T.let(T.unsafe(nil), Set) +RuboCop::AST::NodePattern::Sets::SET_PRIVATE_PROTECTED_PRIVATE_CLASS_METHOD = T.let(T.unsafe(nil), Set) # source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10 RuboCop::AST::NodePattern::Sets::SET_PRIVATE_PROTECTED_PUBLIC = T.let(T.unsafe(nil), Set) @@ -5293,6 +5311,9 @@ RuboCop::AST::NodePattern::Sets::SET_SELECT_SELECT = T.let(T.unsafe(nil), Set) # source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10 RuboCop::AST::NodePattern::Sets::SET_SEND_PUBLIC_SEND___SEND__ = T.let(T.unsafe(nil), Set) +# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10 +RuboCop::AST::NodePattern::Sets::SET_SIG_HELPERS = T.let(T.unsafe(nil), Set) + # source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10 RuboCop::AST::NodePattern::Sets::SET_SORT_BY_SORT = T.let(T.unsafe(nil), Set) @@ -5305,6 +5326,12 @@ RuboCop::AST::NodePattern::Sets::SET_SPRINTF_FORMAT = T.let(T.unsafe(nil), Set) # source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10 RuboCop::AST::NodePattern::Sets::SET_STRUCT_CLASS = T.let(T.unsafe(nil), Set) +# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10 +RuboCop::AST::NodePattern::Sets::SET_STRUCT_IMMUTABLESTRUCT = T.let(T.unsafe(nil), Set) + +# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10 +RuboCop::AST::NodePattern::Sets::SET_STRUCT_IMMUTABLESTRUCT_INEXACTSTRUCT = T.let(T.unsafe(nil), Set) + # source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10 RuboCop::AST::NodePattern::Sets::SET_SUCC_PRED_NEXT = T.let(T.unsafe(nil), Set) @@ -5320,9 +5347,6 @@ RuboCop::AST::NodePattern::Sets::SET_TO_I_TO_F_TO_C_TO_R = T.let(T.unsafe(nil), # source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10 RuboCop::AST::NodePattern::Sets::SET_TRUE_FALSE = T.let(T.unsafe(nil), Set) -# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10 -RuboCop::AST::NodePattern::Sets::SET_TYPE_TEMPLATE_TYPE_MEMBER = T.let(T.unsafe(nil), Set) - # source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10 RuboCop::AST::NodePattern::Sets::SET_ZERO_POSITIVE_NEGATIVE = T.let(T.unsafe(nil), Set) @@ -5365,9 +5389,6 @@ RuboCop::AST::NodePattern::Sets::SET___7 = T.let(T.unsafe(nil), Set) # source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10 RuboCop::AST::NodePattern::Sets::SET___8 = T.let(T.unsafe(nil), Set) -# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10 -RuboCop::AST::NodePattern::Sets::SET___9 = T.let(T.unsafe(nil), Set) - # source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10 RuboCop::AST::NodePattern::Sets::SET___EQL_ETC = T.let(T.unsafe(nil), Set) @@ -5380,6 +5401,9 @@ RuboCop::AST::NodePattern::Sets::SET___METHOD_____CALLEE__ = T.let(T.unsafe(nil) # source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10 RuboCop::AST::NodePattern::Sets::SET____ = T.let(T.unsafe(nil), Set) +# source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10 +RuboCop::AST::NodePattern::Sets::SET____2 = T.let(T.unsafe(nil), Set) + # source://rubocop-ast//lib/rubocop/ast/node_pattern/sets.rb#10 RuboCop::AST::NodePattern::Sets::SET____ETC = T.let(T.unsafe(nil), Set) diff --git a/sorbet/rbi/gems/rubocop-sorbet@0.7.0.rbi b/sorbet/rbi/gems/rubocop-sorbet@0.7.5.rbi similarity index 54% rename from sorbet/rbi/gems/rubocop-sorbet@0.7.0.rbi rename to sorbet/rbi/gems/rubocop-sorbet@0.7.5.rbi index 63d013ee..495e94ab 100644 --- a/sorbet/rbi/gems/rubocop-sorbet@0.7.0.rbi +++ b/sorbet/rbi/gems/rubocop-sorbet@0.7.5.rbi @@ -4,19 +4,19 @@ # This is an autogenerated file for types exported from the `rubocop-sorbet` gem. # Please instead update this file by running `bin/tapioca gem rubocop-sorbet`. -# source://rubocop-sorbet//lib/rubocop/sorbet/version.rb#2 +# source://rubocop-sorbet//lib/rubocop/sorbet/version.rb#3 module RuboCop; end -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#6 +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#4 module RuboCop::Cop; end -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#7 +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#5 module RuboCop::Cop::Sorbet; end -# This cop disallows using `.override(allow_incompatible: true)`. +# Disallows using `.override(allow_incompatible: true)`. # Using `allow_incompatible` suggests a violation of the Liskov # Substitution Principle, meaning that a subclass is not a valid -# subtype of it's superclass. This Cop prevents these design smells +# subtype of its superclass. This Cop prevents these design smells # from occurring. # # @example @@ -28,26 +28,33 @@ module RuboCop::Cop::Sorbet; end # sig.override # # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#21 -class RuboCop::Cop::Sorbet::AllowIncompatibleOverride < ::RuboCop::Cop::Cop - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#35 - def allow_incompatible?(param0); end - - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#39 - def allow_incompatible_override?(param0 = T.unsafe(nil)); end +class RuboCop::Cop::Sorbet::AllowIncompatibleOverride < ::RuboCop::Cop::Base + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#55 + def on_block(node); end - # @return [Boolean] - # - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#31 - def not_nil?(node); end + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#55 + def on_numblock(node); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#48 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#49 def on_send(node); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#22 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#41 + def override?(param0 = T.unsafe(nil)); end + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#36 def sig?(param0); end + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#27 + def sig_dot_override?(param0 = T.unsafe(nil)); end end -# This cop disallows binding the return value of `T.any`, `T.all`, `T.enum` +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#22 +RuboCop::Cop::Sorbet::AllowIncompatibleOverride::MSG = T.let(T.unsafe(nil), String) + +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#24 +RuboCop::Cop::Sorbet::AllowIncompatibleOverride::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) + +# Disallows binding the return value of `T.any`, `T.all`, `T.enum` # to a constant directly. To bind the value, one must use `T.type_alias`. # # @example @@ -58,60 +65,101 @@ end # # good # FooOrBar = T.type_alias { T.any(Foo, Bar) } # -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#18 -class RuboCop::Cop::Sorbet::BindingConstantWithoutTypeAlias < ::RuboCop::Cop::Cop - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#116 - def autocorrect(node); end +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constant_without_type_alias.rb#18 +class RuboCop::Cop::Sorbet::BindingConstantWithoutTypeAlias < ::RuboCop::Cop::Base + extend ::RuboCop::Cop::AutoCorrector - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#19 - def binding_unaliased_type?(param0 = T.unsafe(nil)); end + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constant_without_type_alias.rb#65 + def on_casgn(node); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#51 - def dynamic_type_creation_with_block?(param0 = T.unsafe(nil)); end + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constant_without_type_alias.rb#48 + def requires_type_alias?(param0 = T.unsafe(nil)); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#66 - def generic_parameter_decl_block_call?(param0 = T.unsafe(nil)); end + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constant_without_type_alias.rb#38 + def type_alias_with_block?(param0 = T.unsafe(nil)); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#60 - def generic_parameter_decl_call?(param0 = T.unsafe(nil)); end + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constant_without_type_alias.rb#29 + def type_alias_without_block(param0 = T.unsafe(nil)); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#72 - def method_needing_aliasing_on_t?(param0); end + private - # @return [Boolean] + # Given nested send nodes, returns the leaf with explicit receiver. # - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#85 - def not_dynamic_type_creation_with_block?(node); end - - # @return [Boolean] + # i.e. in Ruby # - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#89 - def not_generic_parameter_decl?(node); end - - # @return [Boolean] + # a.b.c.d.e.f + # ^^^ # - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#93 - def not_nil?(node); end - - # @return [Boolean] + # i.e. in AST + # + # (send (send (send (send (send (send nil :a) :b) :c) :d) :e) :f) + # ^^^^^^^^^^^^^^^^^^^^^^^ # - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#81 - def not_t_let?(node); end + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constant_without_type_alias.rb#98 + def send_leaf(node); end +end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#97 - def on_casgn(node); end +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constant_without_type_alias.rb#21 +RuboCop::Cop::Sorbet::BindingConstantWithoutTypeAlias::MSG = T.let(T.unsafe(nil), String) + +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constant_without_type_alias.rb#23 +RuboCop::Cop::Sorbet::BindingConstantWithoutTypeAlias::WITHOUT_BLOCK_MSG = T.let(T.unsafe(nil), String) - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#41 - def t_let?(param0 = T.unsafe(nil)); end +# Checks for the a mistaken variant of the "obsolete memoization pattern" that used to be required +# on every call, causing the memoized value to be discarded and recomputed on every call. +# +# This cop will correct it to read from the ivar instead of `nil`, which will memoize it correctly. +# +# The result of this correction will be the "obsolete memoization pattern", which can further be corrected by +# the `Sorbet/ObsoleteStrictMemoization` cop. +# +# See `Sorbet/ObsoleteStrictMemoization` for more details. +# +# @example +# # bad +# sig { returns(Foo) } +# def foo +# # This `nil` is likely a mistake, causing the memoized value to be discarded and recomputed on every call. +# @foo = T.let(nil, T.nilable(Foo)) +# @foo ||= some_computation +# end +# +# # good +# sig { returns(Foo) } +# def foo +# # This will now memoize the value as was likely intended, so `some_computation` is only ever called once. +# # ⚠️If `some_computation` has side effects, this might be a breaking change! +# @foo = T.let(@foo, T.nilable(Foo)) +# @foo ||= some_computation +# end +# @see Sorbet/ObsoleteStrictMemoization +# +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/buggy_obsolete_strict_memoization.rb#42 +class RuboCop::Cop::Sorbet::BuggyObsoleteStrictMemoization < ::RuboCop::Cop::Base + include ::RuboCop::Cop::RangeHelp + include ::RuboCop::Cop::MatchRange + include ::RuboCop::Cop::Alignment + include ::RuboCop::Cop::LineLengthHelp + include ::RuboCop::Cop::Sorbet::TargetSorbetVersion + extend ::RuboCop::Cop::AutoCorrector + extend ::RuboCop::Cop::Sorbet::TargetSorbetVersion::ClassMethods - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#32 - def using_deprecated_type_alias_syntax?(param0 = T.unsafe(nil)); end + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/buggy_obsolete_strict_memoization.rb#55 + def buggy_legacy_memoization_pattern?(param0 = T.unsafe(nil)); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#23 - def using_type_alias?(param0 = T.unsafe(nil)); end + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/buggy_obsolete_strict_memoization.rb#66 + def on_begin(node); end + + # @return [Boolean] + # + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/buggy_obsolete_strict_memoization.rb#77 + def relevant_file?(file); end end -# This cop ensures that callback conditionals are bound to the right type +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/buggy_obsolete_strict_memoization.rb#51 +RuboCop::Cop::Sorbet::BuggyObsoleteStrictMemoization::MSG = T.let(T.unsafe(nil), String) + +# Ensures that callback conditionals are bound to the right type # so that they are type checked properly. # # Auto-correction is unsafe because other libraries define similar style callbacks as Rails, but don't always need @@ -143,17 +191,17 @@ end # # source://rubocop-sorbet//lib/rubocop/cop/sorbet/callback_conditionals_binding.rb#35 class RuboCop::Cop::Sorbet::CallbackConditionalsBinding < ::RuboCop::Cop::Cop - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/callback_conditionals_binding.rb#47 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/callback_conditionals_binding.rb#75 def autocorrect(node); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/callback_conditionals_binding.rb#99 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/callback_conditionals_binding.rb#127 def on_send(node); end end # source://rubocop-sorbet//lib/rubocop/cop/sorbet/callback_conditionals_binding.rb#36 RuboCop::Cop::Sorbet::CallbackConditionalsBinding::CALLBACKS = T.let(T.unsafe(nil), Array) -# This cop disallows the usage of `checked(true)`. This usage could cause +# Disallows the usage of `checked(true)`. This usage could cause # confusion; it could lead some people to believe that a method would be checked # even if runtime checks have not been enabled on the class or globally. # Additionally, in the event where checks are enabled, `checked(true)` would @@ -167,21 +215,22 @@ RuboCop::Cop::Sorbet::CallbackConditionalsBinding::CALLBACKS = T.let(T.unsafe(ni # # good # sig { void } # -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb#22 -class RuboCop::Cop::Sorbet::CheckedTrueInSignature < ::RuboCop::Cop::Sorbet::SignatureCop +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb#19 +class RuboCop::Cop::Sorbet::CheckedTrueInSignature < ::RuboCop::Cop::Cop include ::RuboCop::Cop::RangeHelp + include ::RuboCop::Cop::Sorbet::SignatureHelp - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb#25 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb#24 def offending_node(param0); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb#36 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb#35 def on_signature(node); end end -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb#29 +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb#28 RuboCop::Cop::Sorbet::CheckedTrueInSignature::MESSAGE = T.let(T.unsafe(nil), String) -# This cop disallows the calls that are used to get constants fom Strings +# Disallows the calls that are used to get constants fom Strings # such as +constantize+, +const_get+, and +constants+. # # The goal of this cop is to make the code easier to statically analyze, @@ -210,21 +259,18 @@ RuboCop::Cop::Sorbet::CheckedTrueInSignature::MESSAGE = T.let(T.unsafe(nil), Str # # good # { "User" => User }.fetch(class_name) # -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/constants_from_strings.rb#36 +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/constants_from_strings.rb#37 class RuboCop::Cop::Sorbet::ConstantsFromStrings < ::RuboCop::Cop::Cop - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/constants_from_strings.rb#37 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/constants_from_strings.rb#38 def constant_from_string?(param0 = T.unsafe(nil)); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/constants_from_strings.rb#41 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/constants_from_strings.rb#42 def on_send(node); end end -# This cop checks for blank lines after signatures. -# -# It also suggests an autocorrect +# Checks for blank lines after signatures. # # @example -# # # bad # sig { void } # @@ -234,23 +280,31 @@ end # sig { void } # def foo; end # -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb#23 -class RuboCop::Cop::Sorbet::EmptyLineAfterSig < ::RuboCop::Cop::Sorbet::SignatureCop +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb#17 +class RuboCop::Cop::Sorbet::EmptyLineAfterSig < ::RuboCop::Cop::Base include ::RuboCop::Cop::RangeHelp + include ::RuboCop::Cop::Sorbet::SignatureHelp + extend ::RuboCop::Cop::AutoCorrector - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb#33 - def autocorrect(node); end + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb#34 + def on_signature(sig); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb#26 - def on_signature(node); end + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb#25 + def sig_or_signable_method_definition?(param0 = T.unsafe(nil)); end private - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb#48 - def next_method(node); end + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb#57 + def lines_between(node1, node2, buffer: T.unsafe(nil)); end + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb#53 + def next_sibling(node); end end -# This cop checks that the Sorbet sigil comes as the first magic comment in the file. +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb#22 +RuboCop::Cop::Sorbet::EmptyLineAfterSig::MSG = T.let(T.unsafe(nil), String) + +# Checks that the Sorbet sigil comes as the first magic comment in the file. # # The expected order for magic comments is: (en)?coding, typed, warn_indent then frozen_string_literal. # @@ -283,31 +337,31 @@ class RuboCop::Cop::Sorbet::EnforceSigilOrder < ::RuboCop::Cop::Sorbet::ValidSig # checks # - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#91 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#92 def check_magic_comments_order(tokens); end # Get all the tokens in `processed_source` that match `MAGIC_REGEX` # - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#83 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#84 def extract_magic_comments(processed_source); end end -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#67 +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#68 RuboCop::Cop::Sorbet::EnforceSigilOrder::CODING_REGEX = T.let(T.unsafe(nil), Regexp) -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#69 +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#70 RuboCop::Cop::Sorbet::EnforceSigilOrder::FROZEN_REGEX = T.let(T.unsafe(nil), Regexp) -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#68 +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#69 RuboCop::Cop::Sorbet::EnforceSigilOrder::INDENT_REGEX = T.let(T.unsafe(nil), Regexp) -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#78 +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#79 RuboCop::Cop::Sorbet::EnforceSigilOrder::MAGIC_REGEX = T.let(T.unsafe(nil), Regexp) -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#71 +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#72 RuboCop::Cop::Sorbet::EnforceSigilOrder::PREFERRED_ORDER = T.let(T.unsafe(nil), Hash) -# This cop checks that every method definition and attribute accessor has a Sorbet signature. +# Checks that every method definition and attribute accessor has a Sorbet signature. # # It also suggest an autocorrect with placeholders so the following code: # @@ -327,90 +381,92 @@ RuboCop::Cop::Sorbet::EnforceSigilOrder::PREFERRED_ORDER = T.let(T.unsafe(nil), # * `ParameterTypePlaceholder`: placeholders used for parameter types (default: 'T.untyped') # * `ReturnTypePlaceholder`: placeholders used for return types (default: 'T.untyped') # -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#29 -class RuboCop::Cop::Sorbet::EnforceSignatures < ::RuboCop::Cop::Sorbet::SignatureCop +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#27 +class RuboCop::Cop::Sorbet::EnforceSignatures < ::RuboCop::Cop::Cop + include ::RuboCop::Cop::Sorbet::SignatureHelp + # @return [EnforceSignatures] a new instance of EnforceSignatures # # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#30 def initialize(config = T.unsafe(nil), options = T.unsafe(nil)); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#35 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#36 def accessor?(param0 = T.unsafe(nil)); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#55 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#56 def autocorrect(node); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#39 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#40 def on_def(node); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#43 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#44 def on_defs(node); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#47 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#48 def on_send(node); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#51 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#52 def on_signature(node); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#74 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#75 def scope(node); end private - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#82 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#84 def check_node(node); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#93 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#95 def param_type_placeholder; end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#97 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#99 def return_type_placeholder; end end -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#101 +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#103 class RuboCop::Cop::Sorbet::EnforceSignatures::SigSuggestion # @return [SigSuggestion] a new instance of SigSuggestion # - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#104 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#106 def initialize(indent, param_placeholder, return_placeholder); end # Returns the value of attribute params. # - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#102 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#104 def params; end # Sets the attribute params # # @param value the value to set the attribute params to. # - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#102 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#104 def params=(_arg0); end # Returns the value of attribute returns. # - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#102 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#104 def returns; end # Sets the attribute returns # # @param value the value to set the attribute returns to. # - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#102 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#104 def returns=(_arg0); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#112 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#114 def to_autocorrect; end private - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#124 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#126 def generate_params; end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#135 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#138 def generate_return; end end -# This cop checks that there is only one Sorbet sigil in a given file +# Checks that there is only one Sorbet sigil in a given file # # For example, the following class with two sigils # @@ -430,7 +486,7 @@ end class RuboCop::Cop::Sorbet::EnforceSingleSigil < ::RuboCop::Cop::Sorbet::ValidSigil include ::RuboCop::Cop::RangeHelp - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_single_sigil.rb#39 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_single_sigil.rb#40 def autocorrect(_node); end # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_single_sigil.rb#29 @@ -438,11 +494,11 @@ class RuboCop::Cop::Sorbet::EnforceSingleSigil < ::RuboCop::Cop::Sorbet::ValidSi protected - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_single_sigil.rb#55 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_single_sigil.rb#56 def extract_all_sigils(processed_source); end end -# This cop makes the Sorbet `false` sigil mandatory in all files. +# Makes the Sorbet `false` sigil mandatory in all files. # # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/false_sigil.rb#10 class RuboCop::Cop::Sorbet::FalseSigil < ::RuboCop::Cop::Sorbet::HasSigil @@ -450,7 +506,7 @@ class RuboCop::Cop::Sorbet::FalseSigil < ::RuboCop::Cop::Sorbet::HasSigil def minimum_strictness; end end -# This cop ensures RBI shims do not include a call to extend T::Sig +# Ensures RBI shims do not include a call to extend T::Sig # or to extend T::Helpers # # @example @@ -471,61 +527,76 @@ end # end # # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#25 -class RuboCop::Cop::Sorbet::ForbidExtendTSigHelpersInShims < ::RuboCop::Cop::Cop +class RuboCop::Cop::Sorbet::ForbidExtendTSigHelpersInShims < ::RuboCop::Cop::Base include ::RuboCop::Cop::RangeHelp + extend ::RuboCop::Cop::AutoCorrector - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#39 - def autocorrect(node); end - - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#35 - def extend_t_helpers?(param0 = T.unsafe(nil)); end + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#33 + def extend_t_sig_or_helpers?(param0 = T.unsafe(nil)); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#31 - def extend_t_sig?(param0 = T.unsafe(nil)); end - - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#47 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#37 def on_send(node); end end -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#28 +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#29 RuboCop::Cop::Sorbet::ForbidExtendTSigHelpersInShims::MSG = T.let(T.unsafe(nil), String) -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#29 +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#30 RuboCop::Cop::Sorbet::ForbidExtendTSigHelpersInShims::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) +# Correct `send` expressions in include statements by constant literals. +# +# Sorbet, the static checker, is not (yet) able to support constructs on the +# following form: +# +# ```ruby +# class MyClass +# include send_expr +# end +# ``` +# +# Multiple occurences of this can be found in Shopify's code base like: +# +# ```ruby +# include Rails.application.routes.url_helpers +# ``` +# or +# ```ruby +# include Polaris::Engine.helpers +# ``` +# # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#29 -class RuboCop::Cop::Sorbet::ForbidIncludeConstLiteral < ::RuboCop::Cop::Cop - # @return [ForbidIncludeConstLiteral] a new instance of ForbidIncludeConstLiteral - # - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#40 - def initialize(*_arg0); end +class RuboCop::Cop::Sorbet::ForbidIncludeConstLiteral < ::RuboCop::Cop::Base + extend ::RuboCop::Cop::AutoCorrector - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#56 - def autocorrect(node); end - - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#34 - def not_lit_const_include?(param0 = T.unsafe(nil)); end + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#36 + def dynamic_inclusion?(param0 = T.unsafe(nil)); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#45 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#40 def on_send(node); end - # Returns the value of attribute used_names. + private + + # @return [Boolean] # - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#32 - def used_names; end + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#52 + def neither_const_nor_self?(node); end - # Sets the attribute used_names + # Returns true if the node is within a module declaration that is not anonymous. # - # @param value the value to set the attribute used_names to. + # @return [Boolean] # - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#32 - def used_names=(_arg0); end + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#57 + def within_onymous_module?(node); end end -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#30 +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#32 RuboCop::Cop::Sorbet::ForbidIncludeConstLiteral::MSG = T.let(T.unsafe(nil), String) -# This cop makes sure that RBI files are always located under the defined allowed paths. +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#33 +RuboCop::Cop::Sorbet::ForbidIncludeConstLiteral::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) + +# Makes sure that RBI files are always located under the defined allowed paths. # # Options: # @@ -554,19 +625,199 @@ class RuboCop::Cop::Sorbet::ForbidRBIOutsideOfAllowedPaths < ::RuboCop::Cop::Cop def allowed_paths; end end -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb#27 -class RuboCop::Cop::Sorbet::ForbidSuperclassConstLiteral < ::RuboCop::Cop::Cop - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb#30 - def not_lit_const_superclass?(param0 = T.unsafe(nil)); end +# Correct superclass `send` expressions by constant literals. +# +# Sorbet, the static checker, is not (yet) able to support constructs on the +# following form: +# +# ```ruby +# class Foo < send_expr; end +# ``` +# +# Multiple occurences of this can be found in Shopify's code base like: +# +# ```ruby +# class ShopScope < Component::TrustedIdScope[ShopIdentity::ShopId] +# ``` +# or +# ```ruby +# class ApiClientEligibility < Struct.new(:api_client, :match_results, :shop) +# ``` +# +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb#28 +class RuboCop::Cop::Sorbet::ForbidSuperclassConstLiteral < ::RuboCop::Cop::Base + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb#32 + def dynamic_superclass?(param0 = T.unsafe(nil)); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb#38 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb#36 def on_class(node); end end -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb#28 +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb#29 RuboCop::Cop::Sorbet::ForbidSuperclassConstLiteral::MSG = T.let(T.unsafe(nil), String) -# This cop disallows using `T.unsafe` anywhere. +# Disallow using `T::Struct` and `T::Props`. +# +# @example +# +# # bad +# class MyStruct < T::Struct +# const :foo, String +# prop :bar, Integer, default: 0 +# +# def some_method; end +# end +# +# # good +# class MyStruct +# extend T::Sig +# +# sig { returns(String) } +# attr_reader :foo +# +# sig { returns(Integer) } +# attr_accessor :bar +# +# sig { params(foo: String, bar: Integer) } +# def initialize(foo:, bar: 0) +# @foo = foo +# @bar = bar +# end +# +# def some_method; end +# end +# +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#38 +class RuboCop::Cop::Sorbet::ForbidTStruct < ::RuboCop::Cop::Base + include ::RuboCop::Cop::Alignment + include ::RuboCop::Cop::RangeHelp + include ::RuboCop::Cop::CommentsHelp + extend ::RuboCop::Cop::AutoCorrector + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#164 + def on_class(node); end + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#205 + def on_send(node); end + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#162 + def t_props?(param0 = T.unsafe(nil)); end + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#157 + def t_struct?(param0 = T.unsafe(nil)); end + + private + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#213 + def initialize_method(indent, props); end + + # @return [Boolean] + # + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#226 + def previous_line_blank?(node); end +end + +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#47 +RuboCop::Cop::Sorbet::ForbidTStruct::MSG_PROPS = T.let(T.unsafe(nil), String) + +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#46 +RuboCop::Cop::Sorbet::ForbidTStruct::MSG_STRUCT = T.let(T.unsafe(nil), String) + +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#104 +class RuboCop::Cop::Sorbet::ForbidTStruct::Property + # @return [Property] a new instance of Property + # + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#107 + def initialize(node, kind, name, type, default:, factory:); end + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#123 + def attr_accessor; end + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#119 + def attr_sig; end + + # Returns the value of attribute default. + # + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#105 + def default; end + + # Returns the value of attribute factory. + # + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#105 + def factory; end + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#144 + def initialize_assign; end + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#131 + def initialize_param; end + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#127 + def initialize_sig_param; end + + # Returns the value of attribute kind. + # + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#105 + def kind; end + + # Returns the value of attribute name. + # + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#105 + def name; end + + # @return [Boolean] + # + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#151 + def nilable?; end + + # Returns the value of attribute node. + # + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#105 + def node; end + + # Returns the value of attribute type. + # + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#105 + def type; end +end + +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#44 +RuboCop::Cop::Sorbet::ForbidTStruct::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) + +# This class walks down the class body of a T::Struct and collects all the properties that will need to be +# translated into `attr_reader` and `attr_accessor` methods. +# +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#51 +class RuboCop::Cop::Sorbet::ForbidTStruct::TStructWalker + include ::RuboCop::AST::Traversal + extend ::RuboCop::AST::NodePattern::Macros + + # @return [TStructWalker] a new instance of TStructWalker + # + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#57 + def initialize; end + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#63 + def extend_t_sig?(param0 = T.unsafe(nil)); end + + # Returns the value of attribute has_extend_t_sig. + # + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#55 + def has_extend_t_sig; end + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#72 + def on_send(node); end + + # Returns the value of attribute props. + # + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#55 + def props; end + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#68 + def t_struct_prop?(param0 = T.unsafe(nil)); end +end + +# Disallows using `T.unsafe` anywhere. # # @example # @@ -577,15 +828,21 @@ RuboCop::Cop::Sorbet::ForbidSuperclassConstLiteral::MSG = T.let(T.unsafe(nil), S # foo # # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_unsafe.rb#17 -class RuboCop::Cop::Sorbet::ForbidTUnsafe < ::RuboCop::Cop::Cop - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_unsafe.rb#20 +class RuboCop::Cop::Sorbet::ForbidTUnsafe < ::RuboCop::Cop::Base + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_unsafe.rb#24 def on_send(node); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_unsafe.rb#18 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_unsafe.rb#22 def t_unsafe?(param0 = T.unsafe(nil)); end end -# This cop disallows using `T.untyped` anywhere. +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_unsafe.rb#18 +RuboCop::Cop::Sorbet::ForbidTUnsafe::MSG = T.let(T.unsafe(nil), String) + +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_unsafe.rb#19 +RuboCop::Cop::Sorbet::ForbidTUnsafe::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) + +# Disallows using `T.untyped` anywhere. # # @example # @@ -598,15 +855,21 @@ end # def foo(my_argument); end # # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_untyped.rb#20 -class RuboCop::Cop::Sorbet::ForbidTUntyped < ::RuboCop::Cop::Cop - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_untyped.rb#23 +class RuboCop::Cop::Sorbet::ForbidTUntyped < ::RuboCop::Cop::Base + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_untyped.rb#27 def on_send(node); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_untyped.rb#21 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_untyped.rb#25 def t_untyped?(param0 = T.unsafe(nil)); end end -# This cop disallows use of `T.untyped` or `T.nilable(T.untyped)` +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_untyped.rb#21 +RuboCop::Cop::Sorbet::ForbidTUntyped::MSG = T.let(T.unsafe(nil), String) + +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_untyped.rb#22 +RuboCop::Cop::Sorbet::ForbidTUntyped::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) + +# Disallows use of `T.untyped` or `T.nilable(T.untyped)` # as a prop type for `T::Struct` or `T::ImmutableStruct`. # # @example @@ -624,33 +887,32 @@ end # end # # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#25 -class RuboCop::Cop::Sorbet::ForbidUntypedStructProps < ::RuboCop::Cop::Cop - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#52 +class RuboCop::Cop::Sorbet::ForbidUntypedStructProps < ::RuboCop::Cop::Base + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#54 def on_class(node); end # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#44 def subclass_of_t_struct?(param0 = T.unsafe(nil)); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#32 - def t_immutable_struct(param0 = T.unsafe(nil)); end - - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#40 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#39 def t_nilable_untyped(param0 = T.unsafe(nil)); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#28 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#29 def t_struct(param0 = T.unsafe(nil)); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#36 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#34 def t_untyped(param0 = T.unsafe(nil)); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#48 + # Search for untyped prop/const declarations and capture their types + # + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#50 def untyped_props(param0); end end # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#26 RuboCop::Cop::Sorbet::ForbidUntypedStructProps::MSG = T.let(T.unsafe(nil), String) -# This cop makes the Sorbet typed sigil mandatory in all files. +# Makes the Sorbet typed sigil mandatory in all files. # # Options: # @@ -667,7 +929,7 @@ class RuboCop::Cop::Sorbet::HasSigil < ::RuboCop::Cop::Sorbet::ValidSigil def require_sigil_on_all_files?; end end -# This cop makes the Sorbet `ignore` sigil mandatory in all files. +# Makes the Sorbet `ignore` sigil mandatory in all files. # # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/ignore_sigil.rb#10 class RuboCop::Cop::Sorbet::IgnoreSigil < ::RuboCop::Cop::Sorbet::HasSigil @@ -675,7 +937,54 @@ class RuboCop::Cop::Sorbet::IgnoreSigil < ::RuboCop::Cop::Sorbet::HasSigil def minimum_strictness; end end -# This cop checks for the ordering of keyword arguments required by +# Disallows declaring implicit conversion methods. +# Since Sorbet is a nominal (not structural) type system, +# implicit conversion is currently unsupported. +# +# @example +# +# # bad +# def to_str; end +# +# # good +# def to_str(x); end +# +# # bad +# def self.to_str; end +# +# # good +# def self.to_str(x); end +# +# # bad +# alias to_str to_s +# @note Since the arity of aliased methods is not checked, false positives may result. +# @see https://docs.ruby-lang.org/en/master/implicit_conversion_rdoc.html +# +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#31 +class RuboCop::Cop::Sorbet::ImplicitConversionMethod < ::RuboCop::Cop::Base + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#37 + def on_alias(node); end + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#42 + def on_def(node); end + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#42 + def on_defs(node); end + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#50 + def on_send(node); end +end + +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#32 +RuboCop::Cop::Sorbet::ImplicitConversionMethod::IMPLICIT_CONVERSION_METHODS = T.let(T.unsafe(nil), Array) + +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#33 +RuboCop::Cop::Sorbet::ImplicitConversionMethod::MSG = T.let(T.unsafe(nil), String) + +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#35 +RuboCop::Cop::Sorbet::ImplicitConversionMethod::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) + +# Checks for the ordering of keyword arguments required by # sorbet-runtime. The ordering requires that all keyword arguments # are at the end of the parameters list, and all keyword arguments # with a default value must be after those without default values. @@ -690,9 +999,11 @@ end # sig { params(b: String, a: Integer).void } # def foo(b:, a: 1); end # -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/keyword_argument_ordering.rb#23 -class RuboCop::Cop::Sorbet::KeywordArgumentOrdering < ::RuboCop::Cop::Sorbet::SignatureCop - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/keyword_argument_ordering.rb#24 +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/keyword_argument_ordering.rb#20 +class RuboCop::Cop::Sorbet::KeywordArgumentOrdering < ::RuboCop::Cop::Cop + include ::RuboCop::Cop::Sorbet::SignatureHelp + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/keyword_argument_ordering.rb#23 def on_signature(node); end private @@ -703,16 +1014,69 @@ end # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mutable_constant_sorbet_aware_behaviour.rb#8 module RuboCop::Cop::Sorbet::MutableConstantSorbetAwareBehaviour - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mutable_constant_sorbet_aware_behaviour.rb#15 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mutable_constant_sorbet_aware_behaviour.rb#18 def on_assignment(value); end class << self - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mutable_constant_sorbet_aware_behaviour.rb#9 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mutable_constant_sorbet_aware_behaviour.rb#10 def prepended(base); end end end -# This cop ensures one ancestor per requires_ancestor line +# Checks for the obsolete pattern for initializing instance variables that was required for older Sorbet +# +# It's no longer required, as of Sorbet 0.5.10210 +# See https://sorbet.org/docs/type-assertions#put-type-assertions-behind-memoization +# +# @example +# +# # bad +# sig { returns(Foo) } +# def foo +# @foo = T.let(@foo, T.nilable(Foo)) +# @foo ||= Foo.new +# end +# +# # bad +# sig { returns(Foo) } +# def foo +# # This would have been a mistake, causing the memoized value to be discarded and recomputed on every call. +# @foo = T.let(nil, T.nilable(Foo)) +# @foo ||= Foo.new +# end +# +# # good +# sig { returns(Foo) } +# def foo +# @foo ||= T.let(Foo.new, T.nilable(Foo)) +# end +# +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/obsolete_strict_memoization.rb#37 +class RuboCop::Cop::Sorbet::ObsoleteStrictMemoization < ::RuboCop::Cop::Base + include ::RuboCop::Cop::RangeHelp + include ::RuboCop::Cop::MatchRange + include ::RuboCop::Cop::Alignment + include ::RuboCop::Cop::LineLengthHelp + include ::RuboCop::Cop::Sorbet::TargetSorbetVersion + extend ::RuboCop::Cop::AutoCorrector + extend ::RuboCop::Cop::Sorbet::TargetSorbetVersion::ClassMethods + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/obsolete_strict_memoization.rb#51 + def legacy_memoization_pattern?(param0 = T.unsafe(nil)); end + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/obsolete_strict_memoization.rb#62 + def on_begin(node); end + + # @return [Boolean] + # + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/obsolete_strict_memoization.rb#86 + def relevant_file?(file); end +end + +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/obsolete_strict_memoization.rb#47 +RuboCop::Cop::Sorbet::ObsoleteStrictMemoization::MSG = T.let(T.unsafe(nil), String) + +# Ensures one ancestor per requires_ancestor line # rather than chaining them as a comma-separated list. # # @example @@ -730,30 +1094,30 @@ end # # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#24 class RuboCop::Cop::Sorbet::OneAncestorPerLine < ::RuboCop::Cop::Cop - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#35 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#38 def abstract?(param0); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#51 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#56 def autocorrect(node); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#31 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#33 def more_than_one_ancestor(param0 = T.unsafe(nil)); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#45 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#49 def on_class(node); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#39 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#42 def on_module(node); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#27 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#28 def requires_ancestors(param0); end private - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#67 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#72 def new_ra_line(indent_count); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#61 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#66 def process_node(node); end end @@ -779,42 +1143,64 @@ RuboCop::Cop::Sorbet::OneAncestorPerLine::MSG = T.let(T.unsafe(nil), String) # end # # source://rubocop-sorbet//lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb#28 -class RuboCop::Cop::Sorbet::RedundantExtendTSig < ::RuboCop::Cop::Cop - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb#42 - def autocorrect(node); end +class RuboCop::Cop::Sorbet::RedundantExtendTSig < ::RuboCop::Cop::Base + include ::RuboCop::Cop::RangeHelp + extend ::RuboCop::Cop::AutoCorrector - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb#32 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb#36 def extend_t_sig?(param0 = T.unsafe(nil)); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb#36 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb#40 def on_send(node); end end -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb#29 +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb#32 RuboCop::Cop::Sorbet::RedundantExtendTSig::MSG = T.let(T.unsafe(nil), String) -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb#30 +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb#33 RuboCop::Cop::Sorbet::RedundantExtendTSig::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#15 -class RuboCop::Cop::Sorbet::SignatureBuildOrder < ::RuboCop::Cop::Sorbet::SignatureCop - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#54 +# Checks for the correct order of sig builder methods: +# - abstract, override, or overridable +# - type_parameters +# - params +# - returns, or void +# - soft, checked, or on_failure +# +# # bad +# sig { returns(Integer).params(x: Integer) } +# +# # good +# sig { params(x: Integer).returns(Integer) } +# +# @example +# # bad +# sig { void.abstract } +# +# # good +# sig { abstract.void } +# +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#31 +class RuboCop::Cop::Sorbet::SignatureBuildOrder < ::RuboCop::Cop::Cop + include ::RuboCop::Cop::Sorbet::SignatureHelp + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#77 def autocorrect(node); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#34 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#53 def on_signature(node); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#30 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#49 def root_call(param0); end private - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#96 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#119 def call_chain(sig_child_node); end # @return [Boolean] # - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#92 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#115 def can_autocorrect?; end # This method exists to reparse the current node with modern features enabled. @@ -822,41 +1208,44 @@ class RuboCop::Cop::Sorbet::SignatureBuildOrder < ::RuboCop::Cop::Sorbet::Signat # "index sends" (i.e. `[]` calls) back to index accessors (i.e. as `foo[bar]``). # Otherwise, we would get the unparsed node as `foo.[](bar)`. # - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#83 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#106 def node_reparsed_with_modern_features(node); end end # Create a subclass of AST Builder that has modern features turned on # -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#72 +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#95 class RuboCop::Cop::Sorbet::SignatureBuildOrder::ModernBuilder < ::RuboCop::AST::Builder; end -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#16 +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#34 RuboCop::Cop::Sorbet::SignatureBuildOrder::ORDER = T.let(T.unsafe(nil), Hash) -# Abstract cop specific to Sorbet signatures -# -# You can subclass it to use the `on_signature` trigger and the `signature?` node matcher. +# Mixin for writing cops for signatures, providing a `signature?` node matcher and an `on_signature` trigger. # -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_cop.rb#11 -class RuboCop::Cop::Sorbet::SignatureCop < ::RuboCop::Cop::Cop - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_cop.rb#30 +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/signature_help.rb#7 +module RuboCop::Cop::Sorbet::SignatureHelp + extend ::RuboCop::AST::NodePattern::Macros + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/signature_help.rb#29 def on_block(node); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_cop.rb#34 - def on_signature(_); end + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/signature_help.rb#29 + def on_numblock(node); end + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/signature_help.rb#35 + def on_signature(_node); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_cop.rb#14 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/signature_help.rb#11 def signature?(param0 = T.unsafe(nil)); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_cop.rb#22 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/signature_help.rb#20 def with_runtime?(param0 = T.unsafe(nil)); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_cop.rb#26 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/signature_help.rb#25 def without_runtime?(param0 = T.unsafe(nil)); end end -# This cop ensures empty class/module definitions in RBI files are +# Ensures empty class/module definitions in RBI files are # done on a single line rather than being split across multiple lines. # # @example @@ -869,29 +1258,25 @@ end # module SomeModule; end # # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#17 -class RuboCop::Cop::Sorbet::SingleLineRbiClassModuleDefinitions < ::RuboCop::Cop::Cop - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#28 - def autocorrect(node); end +class RuboCop::Cop::Sorbet::SingleLineRbiClassModuleDefinitions < ::RuboCop::Cop::Base + extend ::RuboCop::Cop::AutoCorrector - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#24 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#22 def on_class(node); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#20 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#22 def on_module(node); end - protected + private # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#34 - def convert_newlines(source); end - - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#38 - def process_node(node); end + def convert_newlines_to_semicolons(source); end end -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#18 +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#20 RuboCop::Cop::Sorbet::SingleLineRbiClassModuleDefinitions::MSG = T.let(T.unsafe(nil), String) -# This cop makes the Sorbet `strict` sigil mandatory in all files. +# Makes the Sorbet `strict` sigil mandatory in all files. # # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/strict_sigil.rb#10 class RuboCop::Cop::Sorbet::StrictSigil < ::RuboCop::Cop::Sorbet::HasSigil @@ -899,7 +1284,7 @@ class RuboCop::Cop::Sorbet::StrictSigil < ::RuboCop::Cop::Sorbet::HasSigil def minimum_strictness; end end -# This cop makes the Sorbet `strong` sigil mandatory in all files. +# Makes the Sorbet `strong` sigil mandatory in all files. # # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/strong_sigil.rb#10 class RuboCop::Cop::Sorbet::StrongSigil < ::RuboCop::Cop::Sorbet::HasSigil @@ -907,7 +1292,48 @@ class RuboCop::Cop::Sorbet::StrongSigil < ::RuboCop::Cop::Sorbet::HasSigil def minimum_strictness; end end -# This cop makes the Sorbet `true` sigil mandatory in all files. +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#6 +module RuboCop::Cop::Sorbet::TargetSorbetVersion + mixes_in_class_methods ::RuboCop::Cop::Sorbet::TargetSorbetVersion::ClassMethods + + # @return [Boolean] + # + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#28 + def enabled_for_sorbet_static_version?; end + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#44 + def read_sorbet_static_version_from_bundler_lock_file; end + + # @return [Boolean] + # + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#24 + def sorbet_enabled?; end + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#35 + def target_sorbet_static_version_from_bundler_lock_file; end + + class << self + # @private + # + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#8 + def included(target); end + end +end + +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#13 +module RuboCop::Cop::Sorbet::TargetSorbetVersion::ClassMethods + # Sets the version of the Sorbet static type checker required by this cop + # + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#15 + def minimum_target_sorbet_static_version(version); end + + # @return [Boolean] + # + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#19 + def supports_target_sorbet_static_version?(version); end +end + +# Makes the Sorbet `true` sigil mandatory in all files. # # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/true_sigil.rb#10 class RuboCop::Cop::Sorbet::TrueSigil < ::RuboCop::Cop::Sorbet::HasSigil @@ -915,7 +1341,7 @@ class RuboCop::Cop::Sorbet::TrueSigil < ::RuboCop::Cop::Sorbet::HasSigil def minimum_strictness; end end -# This cop ensures all constants used as `T.type_alias` are using CamelCase. +# Ensures all constants used as `T.type_alias` are using CamelCase. # # @example # @@ -926,18 +1352,18 @@ end # FooOrBar = T.type_alias { T.any(Foo, Bar) } # # source://rubocop-sorbet//lib/rubocop/cop/sorbet/type_alias_name.rb#17 -class RuboCop::Cop::Sorbet::TypeAliasName < ::RuboCop::Cop::Cop - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/type_alias_name.rb#20 - def casgn_type_alias?(param0 = T.unsafe(nil)); end - +class RuboCop::Cop::Sorbet::TypeAliasName < ::RuboCop::Cop::Base # source://rubocop-sorbet//lib/rubocop/cop/sorbet/type_alias_name.rb#32 def on_casgn(node); end + + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/type_alias_name.rb#21 + def underscored_type_alias?(param0 = T.unsafe(nil)); end end # source://rubocop-sorbet//lib/rubocop/cop/sorbet/type_alias_name.rb#18 RuboCop::Cop::Sorbet::TypeAliasName::MSG = T.let(T.unsafe(nil), String) -# This cop checks that every Ruby file contains a valid Sorbet sigil. +# Checks that every Ruby file contains a valid Sorbet sigil. # Adapted from: https://gist.github.com/clarkdave/85aca4e16f33fd52aceb6a0a29936e52 # # Options: @@ -945,66 +1371,75 @@ RuboCop::Cop::Sorbet::TypeAliasName::MSG = T.let(T.unsafe(nil), String) # * `RequireSigilOnAllFiles`: make offense if the Sorbet typed is not found in the file (default: false) # * `SuggestedStrictness`: Sorbet strictness level suggested in offense messages (default: 'false') # * `MinimumStrictness`: If set, make offense if the strictness level in the file is below this one +# * `ExactStrictness`: If set, make offense if the strictness level in the file is different than this one # -# If a `MinimumStrictness` level is specified, it will be used in offense messages and autocorrect. +# If an `ExactStrictness` level is specified, it will be used in offense messages and autocorrect. +# Otherwise, if a `MinimumStrictness` level is specified, it will be used in offense messages and autocorrect. # -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#18 +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#20 class RuboCop::Cop::Sorbet::ValidSigil < ::RuboCop::Cop::Cop - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#33 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#35 def autocorrect(_node); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#21 + # So we can properly subclass this cop + # + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#23 def investigate(processed_source); end protected # checks # - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#68 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#70 def check_sigil_present(sigil); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#125 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#130 def check_strictness_level(sigil, strictness); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#103 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#108 def check_strictness_not_empty(sigil, strictness); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#114 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#119 def check_strictness_valid(sigil, strictness); end + # Default is `nil` + # + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#180 + def exact_strictness; end + # extraction # - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#56 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#58 def extract_sigil(processed_source); end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#62 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#64 def extract_strictness(sigil); end # Default is `nil` # - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#155 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#174 def minimum_strictness; end # Default is `false` # # @return [Boolean] # - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#144 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#163 def require_sigil_on_all_files?; end # Default is `'false'` # - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#149 + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#168 def suggested_strictness; end - # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#84 - def suggested_strictness_level(minimum_strictness, suggested_strictness); end + # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#86 + def suggested_strictness_level; end end -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#52 +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#54 RuboCop::Cop::Sorbet::ValidSigil::SIGIL_REGEX = T.let(T.unsafe(nil), Regexp) -# source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#51 +# source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#53 RuboCop::Cop::Sorbet::ValidSigil::STRICTNESS_LEVELS = T.let(T.unsafe(nil), Array) module RuboCop::Cop::Style; end @@ -1013,16 +1448,16 @@ class RuboCop::Cop::Style::MutableConstant < ::RuboCop::Cop::Base include ::RuboCop::Cop::Sorbet::MutableConstantSorbetAwareBehaviour end -# source://rubocop-sorbet//lib/rubocop/sorbet/version.rb#3 +# source://rubocop-sorbet//lib/rubocop/sorbet/version.rb#4 module RuboCop::Sorbet; end -# source://rubocop-sorbet//lib/rubocop/sorbet.rb#11 +# source://rubocop-sorbet//lib/rubocop/sorbet.rb#12 RuboCop::Sorbet::CONFIG = T.let(T.unsafe(nil), Hash) -# source://rubocop-sorbet//lib/rubocop/sorbet.rb#10 +# source://rubocop-sorbet//lib/rubocop/sorbet.rb#11 RuboCop::Sorbet::CONFIG_DEFAULT = T.let(T.unsafe(nil), Pathname) -# source://rubocop-sorbet//lib/rubocop/sorbet.rb#7 +# source://rubocop-sorbet//lib/rubocop/sorbet.rb#8 class RuboCop::Sorbet::Error < ::StandardError; end # Because RuboCop doesn't yet support plugins, we have to monkey patch in a @@ -1031,13 +1466,13 @@ class RuboCop::Sorbet::Error < ::StandardError; end # source://rubocop-sorbet//lib/rubocop/sorbet/inject.rb#9 module RuboCop::Sorbet::Inject class << self - # source://rubocop-sorbet//lib/rubocop/sorbet/inject.rb#10 + # source://rubocop-sorbet//lib/rubocop/sorbet/inject.rb#11 def defaults!; end end end -# source://rubocop-sorbet//lib/rubocop/sorbet.rb#9 +# source://rubocop-sorbet//lib/rubocop/sorbet.rb#10 RuboCop::Sorbet::PROJECT_ROOT = T.let(T.unsafe(nil), Pathname) -# source://rubocop-sorbet//lib/rubocop/sorbet/version.rb#4 +# source://rubocop-sorbet//lib/rubocop/sorbet/version.rb#5 RuboCop::Sorbet::VERSION = T.let(T.unsafe(nil), String) diff --git a/sorbet/rbi/gems/rubocop@1.54.1.rbi b/sorbet/rbi/gems/rubocop@1.57.2.rbi similarity index 97% rename from sorbet/rbi/gems/rubocop@1.54.1.rbi rename to sorbet/rbi/gems/rubocop@1.57.2.rbi index 8b47b384..9128e026 100644 --- a/sorbet/rbi/gems/rubocop@1.54.1.rbi +++ b/sorbet/rbi/gems/rubocop@1.57.2.rbi @@ -166,77 +166,77 @@ end class RuboCop::CLI::Command::AutoGenerateConfig < ::RuboCop::CLI::Command::Base # @api private # - # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#21 + # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#22 def run; end private # @api private # - # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#97 + # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#98 def add_formatter; end # @api private # - # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#105 + # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#106 def add_inheritance_from_auto_generated_file(config_file); end # @api private # - # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#101 + # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#102 def execute_runner; end # @api private # - # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#126 + # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#127 def existing_configuration(config_file); end # @api private # - # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#59 + # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#60 def line_length_cop(config); end # @api private # @return [Boolean] # - # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#47 + # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#48 def line_length_enabled?(config); end # @api private # - # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#55 + # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#56 def max_line_length(config); end # @api private # - # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#30 + # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#31 def maybe_run_line_length_cop; end # @api private # @return [Boolean] # - # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#148 + # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#153 def options_config_in_root?; end # @api private # @return [Boolean] # - # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#63 + # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#64 def options_has_only_flag?; end # @api private # - # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#139 + # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#144 def relative_path_to_todo_from_options_config; end # @api private # - # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#90 + # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#91 def reset_config_and_auto_gen_file; end # @api private # - # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#81 + # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#82 def run_all_cops(line_length_contents); end # Do an initial run with only Layout/LineLength so that cops that @@ -245,23 +245,23 @@ class RuboCop::CLI::Command::AutoGenerateConfig < ::RuboCop::CLI::Command::Base # # @api private # - # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#70 + # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#71 def run_line_length_cop; end # @api private # @return [Boolean] # - # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#51 + # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#52 def same_max_line_length?(config1, config2); end # @api private # - # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#42 + # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#43 def skip_line_length_cop(reason); end # @api private # - # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#132 + # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#133 def write_config_file(file_name, file_string, rubocop_yml_contents); end end @@ -272,29 +272,34 @@ RuboCop::CLI::Command::AutoGenerateConfig::AUTO_GENERATED_FILE = T.let(T.unsafe( # @api private # -# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#14 +# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#15 RuboCop::CLI::Command::AutoGenerateConfig::PHASE_1 = T.let(T.unsafe(nil), String) # @api private # -# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#18 +# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#19 RuboCop::CLI::Command::AutoGenerateConfig::PHASE_1_DISABLED = T.let(T.unsafe(nil), String) # @api private # -# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#17 +# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#18 RuboCop::CLI::Command::AutoGenerateConfig::PHASE_1_OVERRIDDEN = T.let(T.unsafe(nil), String) # @api private # -# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#19 +# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#20 RuboCop::CLI::Command::AutoGenerateConfig::PHASE_1_SKIPPED = T.let(T.unsafe(nil), String) # @api private # -# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#15 +# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#16 RuboCop::CLI::Command::AutoGenerateConfig::PHASE_2 = T.let(T.unsafe(nil), String) +# @api private +# +# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#13 +RuboCop::CLI::Command::AutoGenerateConfig::PLACEHOLDER = T.let(T.unsafe(nil), String) + # @api private # # source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#12 @@ -1915,22 +1920,28 @@ class RuboCop::ConfigObsoletion::ParameterRule < ::RuboCop::ConfigObsoletion::Ru # @api private # - # source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#31 + # source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#39 def alternative; end # @api private # - # source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#35 + # source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#43 def alternatives; end # @api private + # @return [Boolean] # - # source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#39 + # source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#31 + def applies_to_current_ruby_version?; end + + # @api private + # + # source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#47 def reason; end # @api private # - # source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#43 + # source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#51 def severity; end end @@ -2735,25 +2746,25 @@ module RuboCop::Cop::AutocorrectLogic # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#46 def disable_offense(offense_range); end - # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#111 + # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#113 def disable_offense_at_end_of_line(range, eol_comment); end - # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#115 + # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#117 def disable_offense_before_and_after(range_by_lines); end # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#56 def disable_offense_with_eol_or_surround_comment(range); end - # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#107 + # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#109 def max_line_length; end # Expand the given range to include all of any lines it covers. Does not # include newline at end of the last line. # - # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#97 + # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#99 def range_by_lines(range); end - # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#88 + # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#90 def range_of_first_line(range); end # source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#67 @@ -3099,7 +3110,7 @@ class RuboCop::Cop::Base # time as this cop # # @api public - # @return [Array] + # @return [Array] # # source://rubocop//lib/rubocop/cop/base.rb#59 def autocorrect_incompatible_with; end @@ -3292,38 +3303,121 @@ module RuboCop::Cop::Bundler; end # gem 'rubocop', '~> 0.90.0' # end # -# source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#38 +# source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#39 class RuboCop::Cop::Bundler::DuplicatedGem < ::RuboCop::Cop::Base include ::RuboCop::Cop::RangeHelp - # source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#57 + # source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#58 def gem_declarations(param0); end - # source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#44 + # source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#45 def on_new_investigation; end private # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#66 + # source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#67 def conditional_declaration?(nodes); end - # source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#59 + # source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#60 def duplicated_gem_nodes; end - # source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#80 + # source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#81 def register_offense(node, gem_name, line_of_first_occurrence); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#74 + # source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#75 def within_conditional?(node, conditional_node); end end -# source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#41 +# source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#42 RuboCop::Cop::Bundler::DuplicatedGem::MSG = T.let(T.unsafe(nil), String) +# A Gem group, or a set of groups, should be listed only once in a Gemfile. +# +# For example, if the values of `source`, `git`, `platforms`, or `path` +# surrounding `group` are different, no offense will be registered: +# +# [source,ruby] +# ----- +# platforms :ruby do +# group :default do +# gem 'openssl' +# end +# end +# +# platforms :jruby do +# group :default do +# gem 'jruby-openssl' +# end +# end +# ----- +# +# @example +# # bad +# group :development do +# gem 'rubocop' +# end +# +# group :development do +# gem 'rubocop-rails' +# end +# +# # bad (same set of groups declared twice) +# group :development, :test do +# gem 'rubocop' +# end +# +# group :test, :development do +# gem 'rspec' +# end +# +# # good +# group :development do +# gem 'rubocop' +# end +# +# group :development, :test do +# gem 'rspec' +# end +# +# # good +# gem 'rubocop', groups: [:development, :test] +# gem 'rspec', groups: [:development, :test] +# +# source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#58 +class RuboCop::Cop::Bundler::DuplicatedGroup < ::RuboCop::Cop::Base + include ::RuboCop::Cop::RangeHelp + + # source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#66 + def group_declarations(param0); end + + # source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#68 + def on_new_investigation; end + + private + + # source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#82 + def duplicated_group_nodes; end + + # source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#105 + def find_source_key(node); end + + # source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#115 + def group_attributes(node); end + + # source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#94 + def register_offense(node, group_name, line_of_first_occurrence); end +end + +# source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#61 +RuboCop::Cop::Bundler::DuplicatedGroup::MSG = T.let(T.unsafe(nil), String) + +# source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#63 +RuboCop::Cop::Bundler::DuplicatedGroup::SOURCE_BLOCK_NAMES = T.let(T.unsafe(nil), Array) + # Each gem in the Gemfile should have a comment explaining # its purpose in the project, or the reason for its version # or source. @@ -3762,31 +3856,37 @@ RuboCop::Cop::Bundler::InsecureProtocolSource::RESTRICT_ON_SEND = T.let(T.unsafe # gem 'rubocop' # # gem 'rspec' -# -# # good only if TreatCommentsAsGroupSeparators is true +# @example TreatCommentsAsGroupSeparators: true (default) +# # good +# # For code quality +# gem 'rubocop' +# # For tests +# gem 'rspec' +# @example TreatCommentsAsGroupSeparators: false +# # bad # # For code quality # gem 'rubocop' # # For tests # gem 'rspec' # -# source://rubocop//lib/rubocop/cop/bundler/ordered_gems.rb#27 +# source://rubocop//lib/rubocop/cop/bundler/ordered_gems.rb#35 class RuboCop::Cop::Bundler::OrderedGems < ::RuboCop::Cop::Base include ::RuboCop::Cop::OrderedGemNode extend ::RuboCop::Cop::AutoCorrector - # source://rubocop//lib/rubocop/cop/bundler/ordered_gems.rb#56 + # source://rubocop//lib/rubocop/cop/bundler/ordered_gems.rb#64 def gem_declarations(param0); end - # source://rubocop//lib/rubocop/cop/bundler/ordered_gems.rb#35 + # source://rubocop//lib/rubocop/cop/bundler/ordered_gems.rb#43 def on_new_investigation; end private - # source://rubocop//lib/rubocop/cop/bundler/ordered_gems.rb#49 + # source://rubocop//lib/rubocop/cop/bundler/ordered_gems.rb#57 def previous_declaration(node); end end -# source://rubocop//lib/rubocop/cop/bundler/ordered_gems.rb#31 +# source://rubocop//lib/rubocop/cop/bundler/ordered_gems.rb#39 RuboCop::Cop::Bundler::OrderedGems::MSG = T.let(T.unsafe(nil), String) # Common functionality for checking assignment nodes. @@ -4894,7 +4994,7 @@ class RuboCop::Cop::Corrector < ::Parser::Source::TreeRewriter # Legacy # - # source://parser/3.2.2.3/lib/parser/source/tree_rewriter.rb#252 + # source://parser/3.2.2.4/lib/parser/source/tree_rewriter.rb#252 def rewrite; end # Swaps sources at the given ranges. @@ -5804,34 +5904,40 @@ RuboCop::Cop::Gemspec::DuplicatedAssignment::MSG = T.let(T.unsafe(nil), String) # spec.add_runtime_dependency 'rubocop' # # spec.add_runtime_dependency 'rspec' -# -# # good only if TreatCommentsAsGroupSeparators is true +# @example TreatCommentsAsGroupSeparators: true (default) +# # good +# # For code quality +# spec.add_dependency 'rubocop' +# # For tests +# spec.add_dependency 'rspec' +# @example TreatCommentsAsGroupSeparators: false +# # bad # # For code quality # spec.add_dependency 'rubocop' # # For tests # spec.add_dependency 'rspec' # -# source://rubocop//lib/rubocop/cop/gemspec/ordered_dependencies.rb#53 +# source://rubocop//lib/rubocop/cop/gemspec/ordered_dependencies.rb#61 class RuboCop::Cop::Gemspec::OrderedDependencies < ::RuboCop::Cop::Base include ::RuboCop::Cop::OrderedGemNode extend ::RuboCop::Cop::AutoCorrector - # source://rubocop//lib/rubocop/cop/gemspec/ordered_dependencies.rb#87 + # source://rubocop//lib/rubocop/cop/gemspec/ordered_dependencies.rb#95 def dependency_declarations(param0); end - # source://rubocop//lib/rubocop/cop/gemspec/ordered_dependencies.rb#61 + # source://rubocop//lib/rubocop/cop/gemspec/ordered_dependencies.rb#69 def on_new_investigation; end private - # source://rubocop//lib/rubocop/cop/gemspec/ordered_dependencies.rb#82 + # source://rubocop//lib/rubocop/cop/gemspec/ordered_dependencies.rb#90 def get_dependency_name(node); end - # source://rubocop//lib/rubocop/cop/gemspec/ordered_dependencies.rb#76 + # source://rubocop//lib/rubocop/cop/gemspec/ordered_dependencies.rb#84 def previous_declaration(node); end end -# source://rubocop//lib/rubocop/cop/gemspec/ordered_dependencies.rb#57 +# source://rubocop//lib/rubocop/cop/gemspec/ordered_dependencies.rb#65 RuboCop::Cop::Gemspec::OrderedDependencies::MSG = T.let(T.unsafe(nil), String) # Requires a gemspec to have `rubygems_mfa_required` metadata set. @@ -6422,61 +6528,61 @@ module RuboCop::Cop::HashShorthandSyntax # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#122 + # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#125 def brackets?(method_dispatch_node); end - # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#152 + # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#155 def breakdown_value_types_of_hash(hash_node); end - # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#99 + # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#102 def def_node_that_require_parentheses(node); end - # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#176 + # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#179 def each_omittable_value_pair(hash_value_type_breakdown, &block); end - # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#172 + # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#175 def each_omitted_value_pair(hash_value_type_breakdown, &block); end - # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#77 + # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#80 def enforced_shorthand_syntax; end - # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#114 + # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#117 def find_ancestor_method_dispatch_node(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#164 + # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#167 def hash_with_mixed_shorthand_syntax?(hash_value_type_breakdown); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#168 + # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#171 def hash_with_values_that_cant_be_omitted?(hash_value_type_breakdown); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#71 + # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#74 def ignore_hash_shorthand_syntax?(pair_node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#66 + # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#69 def ignore_mixed_hash_shorthand_syntax?(hash_node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#137 + # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#140 def last_expression?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#145 + # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#148 def method_dispatch_as_argument?(method_dispatch_node); end - # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#180 + # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#183 def mixed_shorthand_syntax_check(hash_value_type_breakdown); end - # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#196 + # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#199 def no_mixed_shorthand_syntax_check(hash_value_type_breakdown); end # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#49 @@ -6484,22 +6590,22 @@ module RuboCop::Cop::HashShorthandSyntax # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#81 + # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#84 def require_hash_value?(hash_key_source, node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#90 + # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#93 def require_hash_value_for_around_hash_literal?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#126 + # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#129 def use_element_of_hash_literal_as_receiver?(ancestor, parent); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#131 + # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#134 def use_modifier_form_without_parenthesized_method_call?(ancestor); end end @@ -6512,12 +6618,12 @@ RuboCop::Cop::HashShorthandSyntax::DO_NOT_MIX_MSG_PREFIX = T.let(T.unsafe(nil), # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#11 RuboCop::Cop::HashShorthandSyntax::DO_NOT_MIX_OMIT_VALUE_MSG = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#206 +# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#209 class RuboCop::Cop::HashShorthandSyntax::DefNode < ::Struct - # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#215 + # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#218 def first_argument; end - # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#219 + # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#222 def last_argument; end # Returns the value of attribute node @@ -6531,7 +6637,7 @@ class RuboCop::Cop::HashShorthandSyntax::DefNode < ::Struct # @return [Object] the newly set value def node=(_); end - # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#207 + # source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#210 def selector; end class << self @@ -6915,74 +7021,74 @@ class RuboCop::Cop::LambdaLiteralToMethodCorrector # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#115 + # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#118 def arg_to_unparenthesized_call?; end # Returns the value of attribute arguments. # - # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#31 + # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#34 def arguments; end - # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#99 + # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#102 def arguments_begin_pos; end - # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#95 + # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#98 def arguments_end_pos; end - # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#107 + # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#110 def block_begin; end - # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#103 + # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#106 def block_end; end # Returns the value of attribute block_node. # - # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#31 + # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#34 def block_node; end - # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#56 + # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#59 def insert_arguments(corrector); end - # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#40 + # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#43 def insert_separating_space(corrector); end - # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#85 + # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#88 def lambda_arg_string; end # Returns the value of attribute method. # - # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#31 + # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#34 def method; end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#89 + # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#92 def needs_separating_space?; end - # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#50 + # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#53 def remove_arguments(corrector); end - # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#63 + # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#66 def remove_leading_whitespace(corrector); end - # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#71 + # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#74 def remove_trailing_whitespace(corrector); end - # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#33 + # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#36 def remove_unparenthesized_whitespace(corrector); end - # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#76 + # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#79 def replace_delimiters(corrector); end - # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#46 + # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#49 def replace_selector(corrector); end - # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#111 + # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#114 def selector_end; end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#131 + # source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#134 def separating_space?; end end @@ -8389,11 +8495,6 @@ class RuboCop::Cop::Layout::DotPosition < ::RuboCop::Cop::Base private - # @return [Boolean] - # - # source://rubocop//lib/rubocop/cop/layout/dot_position.rb#137 - def ampersand_dot?(node); end - # source://rubocop//lib/rubocop/cop/layout/dot_position.rb#49 def autocorrect(corrector, dot, node); end @@ -8616,7 +8717,23 @@ end # source://rubocop//lib/rubocop/cop/layout/empty_comment.rb#67 RuboCop::Cop::Layout::EmptyComment::MSG = T.let(T.unsafe(nil), String) -# Enforces empty line after guard clause +# Enforces empty line after guard clause. +# +# This cop allows `# :nocov:` directive after guard clause because +# SimpleCov excludes code from the coverage report by wrapping it in `# :nocov:`: +# +# [source,ruby] +# ---- +# def foo +# # :nocov: +# return if condition +# # :nocov: +# bar +# end +# ---- +# +# Refer to SimpleCov's documentation for more details: +# https://github.com/simplecov-ruby/simplecov#ignoringskipping-code # # @example # @@ -8649,90 +8766,106 @@ RuboCop::Cop::Layout::EmptyComment::MSG = T.let(T.unsafe(nil), String) # end # end # -# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#38 +# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#54 class RuboCop::Cop::Layout::EmptyLineAfterGuardClause < ::RuboCop::Cop::Base include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector extend ::RuboCop::PathUtil extend ::RuboCop::Cop::Util - # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#46 + # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#63 def on_if(node); end private - # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#65 + # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#84 def autocorrect(corrector, node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#87 + # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#106 def contains_guard_clause?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#80 + # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#99 def correct_style?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#160 + # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#181 def heredoc?(node); end - # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#153 + # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#174 def heredoc_line(node, heredoc_node); end - # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#129 + # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#148 def last_heredoc_argument(node); end - # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#143 + # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#162 def last_heredoc_argument_node(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#172 + # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#199 def multiple_statements_on_line?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#98 - def next_line_empty?(line); end + # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#121 + def next_line_allowed_directive_comment?(line); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#91 - def next_line_empty_or_enable_directive_comment?(line); end + # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#117 + def next_line_empty?(line); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#102 - def next_line_enable_directive_comment?(line); end + # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#110 + def next_line_empty_or_allowed_directive_comment?(line); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#108 + # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#127 def next_line_rescue_or_ensure?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#122 + # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#141 def next_sibling_empty_or_guard_clause?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#113 + # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#132 def next_sibling_parent_empty_or_else?(node); end - # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#164 + # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#191 def offense_location(node); end + + # SimpleCov excludes code from the coverage report by wrapping it in `# :nocov:`: + # https://github.com/simplecov-ruby/simplecov#ignoringskipping-code + # + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#208 + def simplecov_directive_comment?(comment); end + + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#185 + def use_heredoc_in_condition?(condition); end end -# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#44 +# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#60 RuboCop::Cop::Layout::EmptyLineAfterGuardClause::END_OF_HEREDOC_LINE = T.let(T.unsafe(nil), Integer) -# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#43 +# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#59 RuboCop::Cop::Layout::EmptyLineAfterGuardClause::MSG = T.let(T.unsafe(nil), String) +# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#61 +RuboCop::Cop::Layout::EmptyLineAfterGuardClause::SIMPLE_DIRECTIVE_COMMENT_PATTERN = T.let(T.unsafe(nil), Regexp) + # Checks for a newline after the final magic comment. # # @example @@ -9990,13 +10123,13 @@ class RuboCop::Cop::Layout::EndAlignment < ::RuboCop::Cop::Base # source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#161 def alignment_node(node); end - # source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#172 + # source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#178 def alignment_node_for_variable_style(node); end # source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#142 def asgn_variable_align_with(outer_node, inner_node); end - # source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#190 + # source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#196 def assignment_or_operator_method(node); end # source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#116 @@ -11531,71 +11664,72 @@ class RuboCop::Cop::Layout::HeredocIndentation < ::RuboCop::Cop::Base include ::RuboCop::Cop::Alignment include ::RuboCop::Cop::Heredoc extend ::RuboCop::Cop::AutoCorrector + extend ::RuboCop::Cop::TargetRubyVersion - # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#33 + # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#36 def on_heredoc(node); end private - # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#117 + # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#120 def adjust_minus(corrector, node); end - # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#112 + # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#115 def adjust_squiggly(corrector, node); end - # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#141 + # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#144 def base_indent_level(node); end - # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#152 + # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#155 def heredoc_body(node); end - # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#156 + # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#159 def heredoc_end(node); end # Returns '~', '-' or nil # - # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#148 + # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#151 def heredoc_indent_type(node); end - # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#123 + # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#126 def indented_body(node); end - # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#130 + # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#133 def indented_end(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#88 + # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#91 def line_too_long?(node); end - # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#100 + # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#103 def longest_line(lines); end - # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#108 + # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#111 def max_line_length; end - # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#66 + # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#69 def message(heredoc_indent_type); end - # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#54 + # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#57 def register_offense(node, heredoc_indent_type); end - # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#76 + # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#79 def type_message(indentation_width, current_indent_type); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#104 + # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#107 def unlimited_heredoc_length?; end - # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#84 + # source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#87 def width_message(indentation_width); end end -# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#29 +# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#32 RuboCop::Cop::Layout::HeredocIndentation::TYPE_MSG = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#31 +# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#34 RuboCop::Cop::Layout::HeredocIndentation::WIDTH_MSG = T.let(T.unsafe(nil), String) # Checks for inconsistent indentation. @@ -12255,35 +12389,38 @@ class RuboCop::Cop::Layout::LineContinuationLeadingSpace < ::RuboCop::Cop::Base private - # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#105 + # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#113 def autocorrect(corrector, offense_range, insert_pos, spaces); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#101 - def continuation?(line); end + # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#106 + def continuation?(line, line_num, node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#130 + # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#138 def enforced_style_leading?; end - # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#79 + # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#76 + def investigate(first_line, second_line, end_of_first_line); end + + # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#84 def investigate_leading_style(first_line, second_line, end_of_first_line); end - # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#90 + # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#95 def investigate_trailing_style(first_line, second_line, end_of_first_line); end - # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#110 + # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#118 def leading_offense_range(end_of_first_line, matches); end - # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#122 + # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#130 def message(_range); end - # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#75 + # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#72 def raw_lines(node); end - # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#116 + # source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#124 def trailing_offense_range(end_of_first_line, matches); end end @@ -13449,10 +13586,13 @@ class RuboCop::Cop::Layout::MultilineMethodCallIndentation < ::RuboCop::Cop::Bas # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#101 def extra_indentation(given_style, parent); end - # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#222 + # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#226 + def find_multiline_block_chain_node(node); end + + # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#237 def first_call_has_a_dot(node); end - # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#213 + # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#217 def get_dot_right_above(node); end # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#113 @@ -13466,12 +13606,12 @@ class RuboCop::Cop::Layout::MultilineMethodCallIndentation < ::RuboCop::Cop::Bas # @yield [operation_rhs.first_argument] # - # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#232 + # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#247 def operation_rhs(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#242 + # source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#257 def operator_rhs?(node, receiver); end # a @@ -13931,60 +14071,68 @@ class RuboCop::Cop::Layout::RedundantLineBreak < ::RuboCop::Cop::Base extend ::RuboCop::Cop::AutoCorrector # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#51 + def on_lvasgn(node); end + + # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#55 def on_send(node); end private - # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#64 + # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#72 def check_assignment(node, _rhs); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#112 + # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#120 def comment_within?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#82 + # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#90 def configured_to_not_be_inspected?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#106 + # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#114 def convertible_block?(node); end - # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#132 + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#68 + def end_with_percent_blank_string?(processed_source); end + + # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#142 def max_line_length; end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#77 + # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#85 def offense?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#89 + # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#97 def other_cop_takes_precedence?(node); end - # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#70 + # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#78 def register_offense(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#95 + # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#103 def single_line_block_chain_enabled?; end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#99 + # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#107 def suitable_as_single_line?(node); end - # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#123 + # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#133 def to_single_line(source); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#118 + # source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#128 def too_long?(node); end end @@ -14647,7 +14795,7 @@ RuboCop::Cop::Layout::SpaceAroundKeyword::SAFE_NAVIGATION = T.let(T.unsafe(nil), # foo &. bar # foo &. bar&. buzz # RuboCop:: Cop -# RuboCop:: Cop:: Cop +# RuboCop:: Cop:: Base # :: RuboCop::Cop # # # good @@ -14659,7 +14807,7 @@ RuboCop::Cop::Layout::SpaceAroundKeyword::SAFE_NAVIGATION = T.let(T.unsafe(nil), # foo&.bar # foo&.bar&.buzz # RuboCop::Cop -# RuboCop::Cop::Cop +# RuboCop::Cop::Base # ::RuboCop::Cop # # source://rubocop//lib/rubocop/cop/layout/space_around_method_call_operator.rb#37 @@ -16019,13 +16167,18 @@ class RuboCop::Cop::Layout::TrailingEmptyLines < ::RuboCop::Cop::Base # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/layout/trailing_empty_lines.rb#79 + # source://rubocop//lib/rubocop/cop/layout/trailing_empty_lines.rb#90 + def end_with_percent_blank_string?(processed_source); end + + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/layout/trailing_empty_lines.rb#80 def ends_in_end?(processed_source); end - # source://rubocop//lib/rubocop/cop/layout/trailing_empty_lines.rb#89 + # source://rubocop//lib/rubocop/cop/layout/trailing_empty_lines.rb#94 def message(wanted_blank_lines, blank_lines); end - # source://rubocop//lib/rubocop/cop/layout/trailing_empty_lines.rb#66 + # source://rubocop//lib/rubocop/cop/layout/trailing_empty_lines.rb#67 def offense_detected(buffer, wanted_blank_lines, blank_lines, whitespace_at_end); end end @@ -17160,12 +17313,17 @@ class RuboCop::Cop::Lint::Debugger < ::RuboCop::Cop::Base private + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/lint/debugger.rb#116 + def assumed_argument?(node); end + # @return [Boolean] # # source://rubocop//lib/rubocop/cop/lint/debugger.rb#95 def assumed_usage_context?(node); end - # source://rubocop//lib/rubocop/cop/lint/debugger.rb#102 + # source://rubocop//lib/rubocop/cop/lint/debugger.rb#105 def chained_method_name(send_node); end # @return [Boolean] @@ -18179,7 +18337,7 @@ RuboCop::Cop::Lint::ElseLayout::MSG = T.let(T.unsafe(nil), String) # Checks for blocks without a body. # Such empty blocks are typically an oversight or we should provide a comment -# be clearer what we're aiming for. +# to clarify what we're aiming for. # # Empty lambdas and procs are ignored by default. # @@ -20501,89 +20659,91 @@ RuboCop::Cop::Lint::NoReturnInBeginEndBlocks::MSG = T.let(T.unsafe(nil), String) # # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#44 class RuboCop::Cop::Lint::NonAtomicFileOperation < ::RuboCop::Cop::Base - include ::RuboCop::Cop::Alignment extend ::RuboCop::Cop::AutoCorrector - # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#75 + # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#76 def explicit_not_force?(param0); end - # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#70 + # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#71 def force?(param0); end - # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#79 + # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#80 def on_send(node); end - # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#65 + # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#66 def receiver_and_method_name(param0 = T.unsafe(nil)); end - # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#60 + # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#61 def send_exist_node(param0); end private # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#96 + # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#97 def allowable_use_with_if?(if_node); end - # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#120 + # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#121 def autocorrect(corrector, node, range); end - # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#131 + # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#132 def autocorrect_replace_method(corrector, node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#148 + # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#151 def force_method?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#156 + # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#159 def force_method_name?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#152 + # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#155 def force_option?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#90 + # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#91 def if_node_child?(node); end - # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#111 + # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#112 def message_change_force_method(node); end - # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#115 + # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#116 def message_remove_file_exist_check(node); end - # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#100 + # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#101 def register_offense(node, exist_node); end - # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#138 + # source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#139 def replacement_method(node); end end -# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#51 +# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#50 RuboCop::Cop::Lint::NonAtomicFileOperation::MAKE_FORCE_METHODS = T.let(T.unsafe(nil), Array) -# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#52 +# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#51 RuboCop::Cop::Lint::NonAtomicFileOperation::MAKE_METHODS = T.let(T.unsafe(nil), Array) -# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#50 +# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#49 RuboCop::Cop::Lint::NonAtomicFileOperation::MSG_CHANGE_FORCE_METHOD = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#48 +# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#47 RuboCop::Cop::Lint::NonAtomicFileOperation::MSG_REMOVE_FILE_EXIST_CHECK = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#53 +# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#54 +RuboCop::Cop::Lint::NonAtomicFileOperation::RECURSIVE_REMOVE_METHODS = T.let(T.unsafe(nil), Array) + +# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#52 RuboCop::Cop::Lint::NonAtomicFileOperation::REMOVE_FORCE_METHODS = T.let(T.unsafe(nil), Array) -# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#54 +# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#53 RuboCop::Cop::Lint::NonAtomicFileOperation::REMOVE_METHODS = T.let(T.unsafe(nil), Array) -# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#56 +# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#55 RuboCop::Cop::Lint::NonAtomicFileOperation::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # `Dir[...]` and `Dir.glob(...)` do not make any guarantees about @@ -21722,48 +21882,52 @@ RuboCop::Cop::Lint::RedundantRegexpQuantifiers::MSG_REDUNDANT_QUANTIFIER = T.let # # good # require 'unloaded_feature' # -# source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#34 +# source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#38 class RuboCop::Cop::Lint::RedundantRequireStatement < ::RuboCop::Cop::Base include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector - # source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#57 + # source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#61 def on_send(node); end - # source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#53 + # source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#57 def pp_const?(param0 = T.unsafe(nil)); end - # source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#47 + # source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#51 def redundant_require_statement?(param0 = T.unsafe(nil)); end private # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#87 + # source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#91 def need_to_require_pp?; end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#76 + # source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#80 def redundant_feature?(feature_name); end end -# source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#38 +# source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#42 RuboCop::Cop::Lint::RedundantRequireStatement::MSG = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#41 +# source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#45 RuboCop::Cop::Lint::RedundantRequireStatement::PRETTY_PRINT_METHODS = T.let(T.unsafe(nil), Array) -# source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#39 +# source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#43 RuboCop::Cop::Lint::RedundantRequireStatement::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) -# source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#40 +# source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#44 RuboCop::Cop::Lint::RedundantRequireStatement::RUBY_22_LOADED_FEATURES = T.let(T.unsafe(nil), Array) # Checks for redundant safe navigation calls. -# `instance_of?`, `kind_of?`, `is_a?`, `eql?`, `respond_to?`, and `equal?` methods -# are checked by default. These are customizable with `AllowedMethods` option. +# Use cases where a constant, named in camel case for classes and modules is `nil` are rare, +# and an offense is not detected when the receiver is a snake case constant. +# +# For all receivers, the `instance_of?`, `kind_of?`, `is_a?`, `eql?`, `respond_to?`, +# and `equal?` methods are checked by default. +# These are customizable with `AllowedMethods` option. # # The `AllowedMethods` option specifies nil-safe methods, # in other words, it is a method that is allowed to skip safe navigation. @@ -21775,6 +21939,9 @@ RuboCop::Cop::Lint::RedundantRequireStatement::RUBY_22_LOADED_FEATURES = T.let(T # # @example # # bad +# CamelCaseConst&.do_something +# +# # bad # do_something if attrs&.respond_to?(:[]) # # # good @@ -21786,6 +21953,9 @@ RuboCop::Cop::Lint::RedundantRequireStatement::RUBY_22_LOADED_FEATURES = T.let(T # end # # # good +# CamelCaseConst.do_something +# +# # good # while node.is_a?(BeginNode) # node = node.parent # end @@ -21800,37 +21970,40 @@ RuboCop::Cop::Lint::RedundantRequireStatement::RUBY_22_LOADED_FEATURES = T.let(T # do_something if attrs.nil_safe_method(:[]) # do_something if attrs&.not_nil_safe_method(:[]) # -# source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#51 +# source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#61 class RuboCop::Cop::Lint::RedundantSafeNavigation < ::RuboCop::Cop::Base include ::RuboCop::Cop::AllowedMethods include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector - # source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#65 + # source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#78 def on_csend(node); end - # source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#61 + # source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#73 def respond_to_nil_specific_method?(param0 = T.unsafe(nil)); end private # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#75 + # source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#91 def check?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#85 + # source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#101 def condition?(parent, node); end end -# source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#56 +# source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#66 RuboCop::Cop::Lint::RedundantSafeNavigation::MSG = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#58 +# source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#68 RuboCop::Cop::Lint::RedundantSafeNavigation::NIL_SPECIFIC_METHODS = T.let(T.unsafe(nil), Set) +# source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#70 +RuboCop::Cop::Lint::RedundantSafeNavigation::SNAKE_CASE = T.let(T.unsafe(nil), Regexp) + # Checks for unneeded usages of splat expansion # # @example @@ -22512,8 +22685,13 @@ class RuboCop::Cop::Lint::SafeNavigationChain < ::RuboCop::Cop::Base # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/lint/safe_navigation_chain.rb#92 + # source://rubocop//lib/rubocop/cop/lint/safe_navigation_chain.rb#91 def brackets?(send_node); end + + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/lint/safe_navigation_chain.rb#95 + def require_parentheses?(send_node); end end # source://rubocop//lib/rubocop/cop/lint/safe_navigation_chain.rb#33 @@ -23041,6 +23219,11 @@ class RuboCop::Cop::Lint::ShadowingOuterLocalVariable < ::RuboCop::Cop::Base # source://rubocop//lib/rubocop/cop/lint/shadowing_outer_local_variable.rb#93 def find_conditional_node_from_ascendant(node); end + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/lint/shadowing_outer_local_variable.rb#100 + def node_or_its_ascendant_conditional?(node); end + # source://rubocop//lib/rubocop/cop/lint/shadowing_outer_local_variable.rb#49 def ractor_block?(param0 = T.unsafe(nil)); end @@ -24584,12 +24767,18 @@ RuboCop::Cop::Lint::UselessAccessModifier::MSG = T.let(T.unsafe(nil), String) # scope. # The basic idea for this cop was from the warning of `ruby -cw`: # -# assigned but unused variable - foo +# [source,console] +# ---- +# assigned but unused variable - foo +# ---- # # Currently this cop has advanced logic that detects unreferenced # reassignments and properly handles varied cases such as branch, loop, # rescue, ensure, etc. # +# NOTE: Given the assignment `foo = 1, bar = 2`, removing unused variables +# can lead to a syntax error, so this case is not autocorrected. +# # @example # # # bad @@ -24607,70 +24796,83 @@ RuboCop::Cop::Lint::UselessAccessModifier::MSG = T.let(T.unsafe(nil), String) # do_something(some_var) # end # -# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#39 +# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#45 class RuboCop::Cop::Lint::UselessAssignment < ::RuboCop::Cop::Base include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector - # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#50 + # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#56 def after_leaving_scope(scope, _variable_table); end - # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#136 + # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#162 def autocorrect(corrector, assignment); end - # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#54 + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#103 + def chained_assignment?(node); end + + # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#61 def check_for_unused_assignments(variable); end - # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#120 + # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#146 def collect_variable_like_names(scope); end - # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#74 + # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#79 def message_for_useless_assignment(assignment); end - # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#80 + # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#107 def message_specification(assignment, variable); end - # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#90 + # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#117 def multiple_assignment_message(variable_name); end - # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#95 + # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#85 + def offense_range(assignment); end + + # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#122 def operator_assignment_message(scope, assignment); end - # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#153 + # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#179 def remove_exception_assignment_part(corrector, node); end - # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#177 + # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#203 def remove_local_variable_assignment_part(corrector, node); end - # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#166 + # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#192 def remove_trailing_character_from_operator(corrector, node); end - # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#162 + # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#188 def rename_variable_with_underscore(corrector, node); end - # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#170 + # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#196 def replace_named_capture_group_with_non_capturing_group(corrector, node, variable_name); end # TODO: More precise handling (rescue, ensure, nested begin, etc.) # - # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#110 + # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#136 def return_value_node_of_scope(scope); end - # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#103 + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#93 + def sequential_assignment?(node); end + + # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#129 def similar_name_message(variable); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#129 + # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#155 def variable_like_method_invocation?(node); end class << self - # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#46 + # source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#52 def joining_forces; end end end -# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#44 +# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#50 RuboCop::Cop::Lint::UselessAssignment::MSG = T.let(T.unsafe(nil), String) # Checks for useless `else` in `begin..end` without `rescue`. @@ -25081,6 +25283,16 @@ RuboCop::Cop::Lint::UselessTimes::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Checks for operators, variables, literals, lambda, proc and nonmutating # methods used in void context. # +# `each` blocks are allowed to prevent false positives. +# For example, the expression inside the `each` block below. +# It's not void, especially when the receiver is an `Enumerator`: +# +# [source,ruby] +# ---- +# enumerator = [1, 2, 3].filter +# enumerator.each { |item| item >= 2 } #=> [2, 3] +# ---- +# # @example CheckForMethodsWithNoSideEffects: false (default) # # bad # def some_method @@ -25115,101 +25327,104 @@ RuboCop::Cop::Lint::UselessTimes::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # do_something(some_array) # end # -# source://rubocop//lib/rubocop/cop/lint/void.rb#43 +# source://rubocop//lib/rubocop/cop/lint/void.rb#53 class RuboCop::Cop::Lint::Void < ::RuboCop::Cop::Base include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector - # source://rubocop//lib/rubocop/cop/lint/void.rb#80 + # source://rubocop//lib/rubocop/cop/lint/void.rb#92 def on_begin(node); end - # source://rubocop//lib/rubocop/cop/lint/void.rb#71 + # source://rubocop//lib/rubocop/cop/lint/void.rb#82 def on_block(node); end - # source://rubocop//lib/rubocop/cop/lint/void.rb#80 + # source://rubocop//lib/rubocop/cop/lint/void.rb#92 def on_kwbegin(node); end - # source://rubocop//lib/rubocop/cop/lint/void.rb#71 + # source://rubocop//lib/rubocop/cop/lint/void.rb#82 def on_numblock(node); end private - # source://rubocop//lib/rubocop/cop/lint/void.rb#194 + # source://rubocop//lib/rubocop/cop/lint/void.rb#212 def autocorrect_nonmutating_send(corrector, node, suggestion); end - # source://rubocop//lib/rubocop/cop/lint/void.rb#190 + # source://rubocop//lib/rubocop/cop/lint/void.rb#208 def autocorrect_void_expression(corrector, node); end - # source://rubocop//lib/rubocop/cop/lint/void.rb#178 + # source://rubocop//lib/rubocop/cop/lint/void.rb#196 def autocorrect_void_op(corrector, node); end - # source://rubocop//lib/rubocop/cop/lint/void.rb#87 + # source://rubocop//lib/rubocop/cop/lint/void.rb#99 def check_begin(node); end - # source://rubocop//lib/rubocop/cop/lint/void.rb#93 + # source://rubocop//lib/rubocop/cop/lint/void.rb#108 def check_expression(expr); end - # source://rubocop//lib/rubocop/cop/lint/void.rb#128 + # source://rubocop//lib/rubocop/cop/lint/void.rb#146 def check_literal(node); end - # source://rubocop//lib/rubocop/cop/lint/void.rb#152 + # source://rubocop//lib/rubocop/cop/lint/void.rb#170 def check_nonmutating(node); end - # source://rubocop//lib/rubocop/cop/lint/void.rb#136 + # source://rubocop//lib/rubocop/cop/lint/void.rb#154 def check_self(node); end - # source://rubocop//lib/rubocop/cop/lint/void.rb#113 + # source://rubocop//lib/rubocop/cop/lint/void.rb#128 def check_var(node); end - # source://rubocop//lib/rubocop/cop/lint/void.rb#144 + # source://rubocop//lib/rubocop/cop/lint/void.rb#162 def check_void_expression(node); end - # source://rubocop//lib/rubocop/cop/lint/void.rb#104 - def check_void_op(node); end + # source://rubocop//lib/rubocop/cop/lint/void.rb#118 + def check_void_op(node, &block); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/lint/void.rb#170 + # source://rubocop//lib/rubocop/cop/lint/void.rb#188 def in_void_context?(node); end end -# source://rubocop//lib/rubocop/cop/lint/void.rb#55 +# source://rubocop//lib/rubocop/cop/lint/void.rb#66 RuboCop::Cop::Lint::Void::BINARY_OPERATORS = T.let(T.unsafe(nil), Array) -# source://rubocop//lib/rubocop/cop/lint/void.rb#52 +# source://rubocop//lib/rubocop/cop/lint/void.rb#60 +RuboCop::Cop::Lint::Void::CONST_MSG = T.let(T.unsafe(nil), String) + +# source://rubocop//lib/rubocop/cop/lint/void.rb#63 RuboCop::Cop::Lint::Void::EXPRESSION_MSG = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/lint/void.rb#50 +# source://rubocop//lib/rubocop/cop/lint/void.rb#61 RuboCop::Cop::Lint::Void::LIT_MSG = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/lint/void.rb#66 +# source://rubocop//lib/rubocop/cop/lint/void.rb#77 RuboCop::Cop::Lint::Void::METHODS_REPLACEABLE_BY_EACH = T.let(T.unsafe(nil), Array) -# source://rubocop//lib/rubocop/cop/lint/void.rb#68 +# source://rubocop//lib/rubocop/cop/lint/void.rb#79 RuboCop::Cop::Lint::Void::NONMUTATING_METHODS = T.let(T.unsafe(nil), Array) -# source://rubocop//lib/rubocop/cop/lint/void.rb#59 +# source://rubocop//lib/rubocop/cop/lint/void.rb#70 RuboCop::Cop::Lint::Void::NONMUTATING_METHODS_WITH_BANG_VERSION = T.let(T.unsafe(nil), Array) -# source://rubocop//lib/rubocop/cop/lint/void.rb#53 +# source://rubocop//lib/rubocop/cop/lint/void.rb#64 RuboCop::Cop::Lint::Void::NONMUTATING_MSG = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/lint/void.rb#57 +# source://rubocop//lib/rubocop/cop/lint/void.rb#68 RuboCop::Cop::Lint::Void::OPERATORS = T.let(T.unsafe(nil), Array) -# source://rubocop//lib/rubocop/cop/lint/void.rb#48 +# source://rubocop//lib/rubocop/cop/lint/void.rb#58 RuboCop::Cop::Lint::Void::OP_MSG = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/lint/void.rb#51 +# source://rubocop//lib/rubocop/cop/lint/void.rb#62 RuboCop::Cop::Lint::Void::SELF_MSG = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/lint/void.rb#56 +# source://rubocop//lib/rubocop/cop/lint/void.rb#67 RuboCop::Cop::Lint::Void::UNARY_OPERATORS = T.let(T.unsafe(nil), Array) -# source://rubocop//lib/rubocop/cop/lint/void.rb#49 +# source://rubocop//lib/rubocop/cop/lint/void.rb#59 RuboCop::Cop::Lint::Void::VAR_MSG = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/lint/void.rb#58 +# source://rubocop//lib/rubocop/cop/lint/void.rb#69 RuboCop::Cop::Lint::Void::VOID_CONTEXT_TYPES = T.let(T.unsafe(nil), Array) # Common functionality for obtaining source ranges from regexp matches @@ -25472,13 +25687,12 @@ RuboCop::Cop::Metrics::AbcSize::MSG = T.let(T.unsafe(nil), String) # Available are: 'array', 'hash', 'heredoc', and 'method_call'. Each construct # will be counted as one line regardless of its actual size. # +# NOTE: This cop does not apply for `Struct` definitions. # # NOTE: The `ExcludedMethods` configuration is deprecated and only kept # for backwards compatibility. Please use `AllowedMethods` and `AllowedPatterns` # instead. By default, there are no methods to allowed. # -# NOTE: This cop does not apply for `Struct` definitions. -# # @example CountAsOne: ['array', 'heredoc', 'method_call'] # # something do @@ -25604,18 +25818,18 @@ RuboCop::Cop::Metrics::BlockNesting::NESTING_BLOCKS = T.let(T.unsafe(nil), Array class RuboCop::Cop::Metrics::ClassLength < ::RuboCop::Cop::Base include ::RuboCop::Cop::CodeLength - # source://rubocop//lib/rubocop/cop/metrics/class_length.rb#47 + # source://rubocop//lib/rubocop/cop/metrics/class_length.rb#52 def on_casgn(node); end # source://rubocop//lib/rubocop/cop/metrics/class_length.rb#42 def on_class(node); end - # source://rubocop//lib/rubocop/cop/metrics/class_length.rb#42 + # source://rubocop//lib/rubocop/cop/metrics/class_length.rb#46 def on_sclass(node); end private - # source://rubocop//lib/rubocop/cop/metrics/class_length.rb#65 + # source://rubocop//lib/rubocop/cop/metrics/class_length.rb#70 def message(length, max_length); end end @@ -26490,18 +26704,21 @@ end # # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#7 module RuboCop::Cop::MultilineExpressionIndentation + # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#14 + def on_csend(node); end + # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#14 def on_send(node); end private - # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#131 + # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#132 def argument_in_method_call(node, kind); end - # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#187 + # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#188 def assignment_rhs(node); end - # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#64 + # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#65 def check(range, node, lhs, rhs); end # The correct indentation of `node` is usually `IndentationWidth`, with @@ -26521,62 +26738,62 @@ module RuboCop::Cop::MultilineExpressionIndentation # bar # normal indentation, not special # ``` # - # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#54 + # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#55 def correct_indentation(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#159 + # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#160 def disqualified_rhs?(candidate, ancestor); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#203 + # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#204 def grouped_expression?(node); end - # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#72 + # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#73 def incorrect_style_detected(range, node, lhs, rhs); end - # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#84 + # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#85 def indentation(node); end - # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#121 + # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#122 def indented_keyword_expression(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#207 + # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#208 def inside_arg_list_parentheses?(node, ancestor); end - # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#98 + # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#99 def keyword_message_tail(node); end - # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#106 + # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#107 def kw_node_with_special_indentation(node); end - # In a chain of method calls, we regard the top send node as the base + # In a chain of method calls, we regard the top call node as the base # for indentation of all lines following the first. For example: # a. # b c { block }. <-- b is indented relative to a # d <-- d is indented relative to a # - # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#31 + # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#32 def left_hand_side(lhs); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#197 + # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#198 def not_for_this_cop?(node); end - # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#88 + # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#89 def operation_description(node, rhs); end - # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#145 + # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#146 def part_of_assignment_rhs(node, candidate); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#183 + # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#184 def part_of_block_body?(candidate, block_node); end # Returns true if `node` is a conditional whose `body` and `condition` @@ -26584,29 +26801,29 @@ module RuboCop::Cop::MultilineExpressionIndentation # # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#216 + # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#217 def postfix_conditional?(node); end # The []= operator and setters (a.b = c) are parsed as :send nodes. # # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#175 + # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#176 def valid_method_rhs_candidate?(candidate, node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#164 + # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#165 def valid_rhs?(candidate, ancestor); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#179 + # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#180 def valid_rhs_candidate?(candidate, node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#220 + # source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#221 def within_node?(inner, outer); end end @@ -27418,12 +27635,12 @@ class RuboCop::Cop::Naming::HeredocDelimiterNaming < ::RuboCop::Cop::Base private - # source://rubocop//lib/rubocop/cop/naming/heredoc_delimiter_naming.rb#49 + # source://rubocop//lib/rubocop/cop/naming/heredoc_delimiter_naming.rb#51 def forbidden_delimiters; end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/naming/heredoc_delimiter_naming.rb#39 + # source://rubocop//lib/rubocop/cop/naming/heredoc_delimiter_naming.rb#41 def meaningful_delimiters?(node); end end @@ -28953,25 +29170,20 @@ module RuboCop::Cop::PrecedingFollowingAlignment # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#95 + # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#93 def aligned_assignment?(range, line); end - # @return [Boolean] - # - # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#91 - def aligned_char?(range, line); end - # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#70 def aligned_comment_lines; end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#107 + # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#105 def aligned_identical?(range, line); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#83 + # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#81 def aligned_operator?(range, line); end # @return [Boolean] @@ -28996,10 +29208,10 @@ module RuboCop::Cop::PrecedingFollowingAlignment # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#100 + # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#98 def aligned_with_append_operator?(range, line); end - # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#111 + # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#109 def aligned_with_assignment(token, line_range); end # @return [Boolean] @@ -29025,7 +29237,7 @@ module RuboCop::Cop::PrecedingFollowingAlignment # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#87 + # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#85 def aligned_words?(range, line); end # @return [Boolean] @@ -29033,16 +29245,16 @@ module RuboCop::Cop::PrecedingFollowingAlignment # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#10 def allow_for_alignment?; end - # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#129 + # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#127 def assignment_lines; end - # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#133 + # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#131 def assignment_tokens; end - # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#149 + # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#147 def relevant_assignment_lines(line_range); end - # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#176 + # source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#174 def remove_optarg_equals(asgn_tokens, processed_source); end end @@ -30321,9 +30533,6 @@ class RuboCop::Cop::Style::Alias < ::RuboCop::Cop::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle extend ::RuboCop::Cop::AutoCorrector - # source://rubocop//lib/rubocop/cop/style/alias.rb#150 - def identifier(param0 = T.unsafe(nil)); end - # source://rubocop//lib/rubocop/cop/style/alias.rb#51 def on_alias(node); end @@ -30359,9 +30568,12 @@ class RuboCop::Cop::Style::Alias < ::RuboCop::Cop::Base # source://rubocop//lib/rubocop/cop/style/alias.rb#135 def correct_alias_to_alias_method(corrector, node); end - # source://rubocop//lib/rubocop/cop/style/alias.rb#144 + # source://rubocop//lib/rubocop/cop/style/alias.rb#142 def correct_alias_with_symbol_args(corrector, node); end + # source://rubocop//lib/rubocop/cop/style/alias.rb#147 + def identifier(node); end + # source://rubocop//lib/rubocop/cop/style/alias.rb#113 def lexical_scope_type(node); end @@ -30493,6 +30705,12 @@ RuboCop::Cop::Style::AndOr::MSG = T.let(T.unsafe(nil), String) # This cop identifies places where `do_something(*args, &block)` # can be replaced by `do_something(...)`. # +# In Ruby 3.2, anonymous args/kwargs forwarding has been added. +# +# This cop also identifies places where `use_args(*args)`/`use_kwargs(**kwargs)` can be +# replaced by `use_args(*)`/`use_kwargs(**)`; if desired, this functionality can be disabled +# by setting UseAnonymousForwarding: false. +# # @example # # bad # def foo(*args, &block) @@ -30508,7 +30726,25 @@ RuboCop::Cop::Style::AndOr::MSG = T.let(T.unsafe(nil), String) # def foo(...) # bar(...) # end -# @example AllowOnlyRestArgument: true (default) +# @example UseAnonymousForwarding: true (default, only relevant for Ruby >= 3.2) +# # bad +# def foo(*args, **kwargs) +# args_only(*args) +# kwargs_only(**kwargs) +# end +# +# # good +# def foo(*, **) +# args_only(*) +# kwargs_only(**) +# end +# @example UseAnonymousForwarding: false (only relevant for Ruby >= 3.2) +# # good +# def foo(*args, **kwargs) +# args_only(*args) +# kwargs_only(**kwargs) +# end +# @example AllowOnlyRestArgument: true (default, only relevant for Ruby < 3.2) # # good # def foo(*args) # bar(*args) @@ -30517,7 +30753,7 @@ RuboCop::Cop::Style::AndOr::MSG = T.let(T.unsafe(nil), String) # def foo(**kwargs) # bar(**kwargs) # end -# @example AllowOnlyRestArgument: false +# @example AllowOnlyRestArgument: false (only relevant for Ruby < 3.2) # # bad # # The following code can replace the arguments with `...`, # # but it will change the behavior. Because `...` forwards block also. @@ -30529,59 +30765,192 @@ RuboCop::Cop::Style::AndOr::MSG = T.let(T.unsafe(nil), String) # bar(**kwargs) # end # -# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#49 +# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#75 class RuboCop::Cop::Style::ArgumentsForwarding < ::RuboCop::Cop::Base include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector extend ::RuboCop::Cop::TargetRubyVersion - # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#72 - def forwarding_method_arguments?(param0 = T.unsafe(nil), param1, param2, param3); end - - # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#84 + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#89 def on_def(node); end - # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#84 + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#89 def on_defs(node); end - # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#64 - def only_rest_arguments?(param0 = T.unsafe(nil), param1); end + private + + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#122 + def add_forward_all_offenses(node, send_classifications, forwardable_args); end + + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#233 + def add_parens_if_missing(node, corrector); end - # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#59 - def use_rest_arguments?(param0 = T.unsafe(nil)); end + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#131 + def add_post_ruby_32_offenses(def_node, send_classifications, forwardable_args); end + + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#225 + def allow_only_rest_arguments?; end + + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#217 + def arguments_range(node, first_node); end + + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#174 + def classification_and_forwards(def_node, send_node, referenced_lvars, forwardable_args); end + + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#159 + def classify_send_nodes(def_node, send_nodes, referenced_lvars, forwardable_args); end + + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#114 + def extract_forwardable_args(args); end + + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#149 + def non_splat_or_block_pass_lvar_references(body); end + + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#118 + def only_forwards_all?(send_classifications); end + + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#207 + def register_forward_all_offense(def_or_send, send_or_arguments, rest_or_splat); end + + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#191 + def register_forward_args_offense(def_arguments_or_send, rest_arg_or_splat); end + + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#199 + def register_forward_kwargs_offense(add_parens, def_arguments_or_send, kwrest_arg_or_splat); end + + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#229 + def use_anonymous_forwarding?; end +end + +# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#83 +RuboCop::Cop::Style::ArgumentsForwarding::ADDITIONAL_ARG_TYPES = T.let(T.unsafe(nil), Array) + +# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#86 +RuboCop::Cop::Style::ArgumentsForwarding::ARGS_MSG = T.let(T.unsafe(nil), String) + +# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#82 +RuboCop::Cop::Style::ArgumentsForwarding::FORWARDING_LVAR_TYPES = T.let(T.unsafe(nil), Array) + +# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#85 +RuboCop::Cop::Style::ArgumentsForwarding::FORWARDING_MSG = T.let(T.unsafe(nil), String) + +# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#87 +RuboCop::Cop::Style::ArgumentsForwarding::KWARGS_MSG = T.let(T.unsafe(nil), String) + +# Classifies send nodes for possible rest/kwrest/all (including block) forwarding. +# +# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#240 +class RuboCop::Cop::Style::ArgumentsForwarding::SendNodeClassifier + extend ::RuboCop::AST::NodePattern::Macros + + # @return [SendNodeClassifier] a new instance of SendNodeClassifier + # + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#252 + def initialize(def_node, send_node, referenced_lvars, forwardable_args, **config); end + + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#280 + def classification; end + + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#247 + def extract_forwarded_kwrest_arg(param0 = T.unsafe(nil), param1); end + + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#274 + def forwarded_block_arg; end + + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#250 + def forwarded_block_arg?(param0 = T.unsafe(nil), param1); end + + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#268 + def forwarded_kwrest_arg; end + + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#262 + def forwarded_rest_arg; end + + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#244 + def forwarded_rest_arg?(param0 = T.unsafe(nil), param1); end private # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#116 - def all_lvars_as_forwarding_method_arguments?(def_node, forwarding_method); end + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#348 + def additional_kwargs?; end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#149 - def allow_only_rest_arguments?; end + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#344 + def additional_kwargs_or_forwarded_kwargs?; end - # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#143 - def arguments_range(node); end + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#358 + def allow_offense_for_no_block?; end + + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#329 + def any_arg_referenced?; end - # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#103 - def extract_argument_names_from(args); end + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#313 + def arguments; end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#110 - def forwarding_method?(node, rest_arg, kwargs, block_arg); end + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#292 + def can_forward_all?; end - # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#125 - def register_offense_to_forwarding_method_arguments(forwarding_method); end + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#352 + def forward_additional_kwargs?; end - # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#134 - def register_offense_to_method_definition_arguments(method_definition); end -end + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#309 + def forwarded_rest_and_kwrest_args; end + + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#362 + def no_additional_args?; end + + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#337 + def no_post_splat_args?; end + + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#305 + def offensive_block_forwarding?; end + + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#325 + def referenced_block_arg?; end + + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#321 + def referenced_kwrest_arg?; end -# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#56 -RuboCop::Cop::Style::ArgumentsForwarding::MSG = T.let(T.unsafe(nil), String) + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#317 + def referenced_rest_arg?; end + + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#301 + def ruby_32_missing_rest_or_kwest?; end + + # source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#333 + def target_ruby_version; end +end # Enforces the use of `Array()` instead of explicit `Array` check or `[*var]`. # @@ -30629,6 +30998,15 @@ RuboCop::Cop::Style::ArrayCoercion::SPLAT_MSG = T.let(T.unsafe(nil), String) # The `array1.intersect?(array2)` method is faster than # `(array1 & array2).any?` and is more readable. # +# In cases like the following, compatibility is not ensured, +# so it will not be detected when using block argument. +# +# [source,ruby] +# ---- +# ([1] & [1,2]).any? { |x| false } # => false +# [1].intersect?([1,2]) { |x| false } # => true +# ---- +# # @example # # bad # (array1 & array2).any? @@ -30650,46 +31028,46 @@ RuboCop::Cop::Style::ArrayCoercion::SPLAT_MSG = T.let(T.unsafe(nil), String) # array1.intersect?(array2) # !array1.intersect?(array2) # -# source://rubocop//lib/rubocop/cop/style/array_intersect.rb#40 +# source://rubocop//lib/rubocop/cop/style/array_intersect.rb#49 class RuboCop::Cop::Style::ArrayIntersect < ::RuboCop::Cop::Base extend ::RuboCop::Cop::AutoCorrector extend ::RuboCop::Cop::TargetRubyVersion - # source://rubocop//lib/rubocop/cop/style/array_intersect.rb#56 + # source://rubocop//lib/rubocop/cop/style/array_intersect.rb#65 def active_support_bad_intersection_check?(param0 = T.unsafe(nil)); end - # source://rubocop//lib/rubocop/cop/style/array_intersect.rb#70 + # source://rubocop//lib/rubocop/cop/style/array_intersect.rb#79 def on_send(node); end - # source://rubocop//lib/rubocop/cop/style/array_intersect.rb#47 + # source://rubocop//lib/rubocop/cop/style/array_intersect.rb#56 def regular_bad_intersection_check?(param0 = T.unsafe(nil)); end private # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/array_intersect.rb#86 + # source://rubocop//lib/rubocop/cop/style/array_intersect.rb#94 def bad_intersection_check?(node); end - # source://rubocop//lib/rubocop/cop/style/array_intersect.rb#98 + # source://rubocop//lib/rubocop/cop/style/array_intersect.rb#106 def message(receiver, argument, method_name); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/array_intersect.rb#94 + # source://rubocop//lib/rubocop/cop/style/array_intersect.rb#102 def straight?(method_name); end end -# source://rubocop//lib/rubocop/cop/style/array_intersect.rb#64 +# source://rubocop//lib/rubocop/cop/style/array_intersect.rb#73 RuboCop::Cop::Style::ArrayIntersect::MSG = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/style/array_intersect.rb#67 +# source://rubocop//lib/rubocop/cop/style/array_intersect.rb#76 RuboCop::Cop::Style::ArrayIntersect::NEGATED_METHODS = T.let(T.unsafe(nil), Array) -# source://rubocop//lib/rubocop/cop/style/array_intersect.rb#68 +# source://rubocop//lib/rubocop/cop/style/array_intersect.rb#77 RuboCop::Cop::Style::ArrayIntersect::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) -# source://rubocop//lib/rubocop/cop/style/array_intersect.rb#66 +# source://rubocop//lib/rubocop/cop/style/array_intersect.rb#75 RuboCop::Cop::Style::ArrayIntersect::STRAIGHT_METHODS = T.let(T.unsafe(nil), Array) # Checks for uses of "*" as a substitute for _join_. @@ -31273,7 +31651,7 @@ class RuboCop::Cop::Style::BlockDelimiters < ::RuboCop::Cop::Base # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#458 + # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#459 def array_or_range?(node); end # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#208 @@ -31281,7 +31659,7 @@ class RuboCop::Cop::Style::BlockDelimiters < ::RuboCop::Cop::Base # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#462 + # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#463 def begin_required?(block_node); end # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#236 @@ -31289,7 +31667,7 @@ class RuboCop::Cop::Style::BlockDelimiters < ::RuboCop::Cop::Base # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#399 + # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#400 def braces_for_chaining_style?(node); end # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#248 @@ -31297,25 +31675,25 @@ class RuboCop::Cop::Style::BlockDelimiters < ::RuboCop::Cop::Base # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#376 + # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#377 def braces_required_method?(method_name); end - # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#380 + # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#381 def braces_required_methods; end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#409 + # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#410 def braces_style?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#454 + # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#455 def conditional?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#413 + # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#414 def correction_would_break_code?(node); end # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#309 @@ -31323,12 +31701,12 @@ class RuboCop::Cop::Style::BlockDelimiters < ::RuboCop::Cop::Base # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#423 + # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#424 def functional_block?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#419 + # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#420 def functional_method?(method_name); end # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#326 @@ -31336,7 +31714,7 @@ class RuboCop::Cop::Style::BlockDelimiters < ::RuboCop::Cop::Base # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#384 + # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#385 def line_count_based_block_style?(node); end # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#218 @@ -31350,12 +31728,12 @@ class RuboCop::Cop::Style::BlockDelimiters < ::RuboCop::Cop::Base # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#431 + # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#432 def procedural_method?(method_name); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#427 + # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#428 def procedural_oneliners_may_have_braces?; end # @return [Boolean] @@ -31379,17 +31757,17 @@ class RuboCop::Cop::Style::BlockDelimiters < ::RuboCop::Cop::Base # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#447 + # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#448 def return_value_of_scope?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#435 + # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#436 def return_value_used?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#388 + # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#389 def semantic_block_style?(node); end # source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#226 @@ -31864,53 +32242,53 @@ RuboCop::Cop::Style::ClassCheck::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # self.class.eq(other.class) && name.eq(other.name) # end # -# source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#47 +# source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#52 class RuboCop::Cop::Style::ClassEqualityComparison < ::RuboCop::Cop::Base include ::RuboCop::Cop::RangeHelp include ::RuboCop::Cop::AllowedMethods include ::RuboCop::Cop::AllowedPattern extend ::RuboCop::Cop::AutoCorrector - # source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#59 + # source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#64 def class_comparison_candidate?(param0 = T.unsafe(nil)); end - # source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#65 + # source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#70 def on_send(node); end private - # source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#85 + # source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#92 def class_name(class_node, node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#105 + # source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#112 def class_name_method?(method_name); end - # source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#121 + # source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#128 def offense_range(receiver_node, node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#109 + # source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#116 def require_cbase?(class_node); end - # source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#117 + # source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#124 def trim_string_quotes(class_node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#113 + # source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#120 def unable_to_determine_type?(class_node); end end -# source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#56 +# source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#61 RuboCop::Cop::Style::ClassEqualityComparison::CLASS_NAME_METHODS = T.let(T.unsafe(nil), Array) -# source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#53 +# source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#58 RuboCop::Cop::Style::ClassEqualityComparison::MSG = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#55 +# source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#60 RuboCop::Cop::Style::ClassEqualityComparison::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Checks for uses of the class/module name instead of @@ -32198,6 +32576,7 @@ RuboCop::Cop::Style::CollectionCompact::TO_ENUM_METHODS = T.let(T.unsafe(nil), A # # bad # items.collect # items.collect! +# items.collect_concat # items.inject # items.detect # items.find_all @@ -32206,46 +32585,47 @@ RuboCop::Cop::Style::CollectionCompact::TO_ENUM_METHODS = T.let(T.unsafe(nil), A # # good # items.map # items.map! +# items.flat_map # items.reduce # items.find # items.select # items.include? # -# source://rubocop//lib/rubocop/cop/style/collection_methods.rb#41 +# source://rubocop//lib/rubocop/cop/style/collection_methods.rb#43 class RuboCop::Cop::Style::CollectionMethods < ::RuboCop::Cop::Base include ::RuboCop::Cop::MethodPreference extend ::RuboCop::Cop::AutoCorrector - # source://rubocop//lib/rubocop/cop/style/collection_methods.rb#47 + # source://rubocop//lib/rubocop/cop/style/collection_methods.rb#49 def on_block(node); end - # source://rubocop//lib/rubocop/cop/style/collection_methods.rb#47 + # source://rubocop//lib/rubocop/cop/style/collection_methods.rb#49 def on_numblock(node); end - # source://rubocop//lib/rubocop/cop/style/collection_methods.rb#53 + # source://rubocop//lib/rubocop/cop/style/collection_methods.rb#55 def on_send(node); end private - # source://rubocop//lib/rubocop/cop/style/collection_methods.rb#61 + # source://rubocop//lib/rubocop/cop/style/collection_methods.rb#63 def check_method_node(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/collection_methods.rb#70 + # source://rubocop//lib/rubocop/cop/style/collection_methods.rb#72 def implicit_block?(node); end - # source://rubocop//lib/rubocop/cop/style/collection_methods.rb#78 + # source://rubocop//lib/rubocop/cop/style/collection_methods.rb#80 def message(node); end # Some enumerable methods accept a bare symbol (ie. _not_ Symbol#to_proc) instead # of a block. # - # source://rubocop//lib/rubocop/cop/style/collection_methods.rb#84 + # source://rubocop//lib/rubocop/cop/style/collection_methods.rb#86 def methods_accepting_symbol; end end -# source://rubocop//lib/rubocop/cop/style/collection_methods.rb#45 +# source://rubocop//lib/rubocop/cop/style/collection_methods.rb#47 RuboCop::Cop::Style::CollectionMethods::MSG = T.let(T.unsafe(nil), String) # Checks for methods invoked via the `::` operator instead @@ -32365,7 +32745,7 @@ class RuboCop::Cop::Style::CombinableLoops < ::RuboCop::Cop::Base # source://rubocop//lib/rubocop/cop/style/combinable_loops.rb#66 def on_block(node); end - # source://rubocop//lib/rubocop/cop/style/combinable_loops.rb#78 + # source://rubocop//lib/rubocop/cop/style/combinable_loops.rb#79 def on_for(node); end # source://rubocop//lib/rubocop/cop/style/combinable_loops.rb#66 @@ -32375,20 +32755,20 @@ class RuboCop::Cop::Style::CombinableLoops < ::RuboCop::Cop::Base # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/combinable_loops.rb#89 + # source://rubocop//lib/rubocop/cop/style/combinable_loops.rb#90 def collection_looping_method?(node); end - # source://rubocop//lib/rubocop/cop/style/combinable_loops.rb#105 + # source://rubocop//lib/rubocop/cop/style/combinable_loops.rb#107 def combine_with_left_sibling(corrector, node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/combinable_loops.rb#94 + # source://rubocop//lib/rubocop/cop/style/combinable_loops.rb#95 def same_collection_looping_block?(node, sibling); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/combinable_loops.rb#101 + # source://rubocop//lib/rubocop/cop/style/combinable_loops.rb#103 def same_collection_looping_for?(node, sibling); end end @@ -34312,30 +34692,33 @@ class RuboCop::Cop::Style::EmptyCaseCondition < ::RuboCop::Cop::Base include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector - # source://rubocop//lib/rubocop/cop/style/empty_case_condition.rb#44 + # source://rubocop//lib/rubocop/cop/style/empty_case_condition.rb#46 def on_case(case_node); end private - # source://rubocop//lib/rubocop/cop/style/empty_case_condition.rb#58 + # source://rubocop//lib/rubocop/cop/style/empty_case_condition.rb#63 def autocorrect(corrector, case_node); end - # source://rubocop//lib/rubocop/cop/style/empty_case_condition.rb#65 + # source://rubocop//lib/rubocop/cop/style/empty_case_condition.rb#70 def correct_case_when(corrector, case_node, when_nodes); end - # source://rubocop//lib/rubocop/cop/style/empty_case_condition.rb#77 + # source://rubocop//lib/rubocop/cop/style/empty_case_condition.rb#82 def correct_when_conditions(corrector, when_nodes); end - # source://rubocop//lib/rubocop/cop/style/empty_case_condition.rb#92 + # source://rubocop//lib/rubocop/cop/style/empty_case_condition.rb#97 def keep_first_when_comment(case_range, corrector); end - # source://rubocop//lib/rubocop/cop/style/empty_case_condition.rb#102 + # source://rubocop//lib/rubocop/cop/style/empty_case_condition.rb#107 def replace_then_with_line_break(corrector, conditions, when_node); end end # source://rubocop//lib/rubocop/cop/style/empty_case_condition.rb#42 RuboCop::Cop::Style::EmptyCaseCondition::MSG = T.let(T.unsafe(nil), String) +# source://rubocop//lib/rubocop/cop/style/empty_case_condition.rb#43 +RuboCop::Cop::Style::EmptyCaseCondition::NOT_SUPPORTED_PARENT_TYPES = T.let(T.unsafe(nil), Array) + # Checks for empty else-clauses, possibly including comments and/or an # explicit `nil` depending on the EnforcedStyle. # @@ -35910,13 +36293,25 @@ RuboCop::Cop::Style::For::PREFER_EACH = T.let(T.unsafe(nil), String) RuboCop::Cop::Style::For::PREFER_FOR = T.let(T.unsafe(nil), String) # Enforces the use of a single string formatting utility. -# Valid options include Kernel#format, Kernel#sprintf and String#%. +# Valid options include `Kernel#format`, `Kernel#sprintf`, and `String#%`. # -# The detection of String#% cannot be implemented in a reliable +# The detection of `String#%` cannot be implemented in a reliable # manner for all cases, so only two scenarios are considered - # if the first argument is a string literal and if the second # argument is an array literal. # +# Autocorrection will be applied when using argument is a literal or known built-in conversion +# methods such as `to_d`, `to_f`, `to_h`, `to_i`, `to_r`, `to_s`, and `to_sym` on variables, +# provided that their return value is not an array. For example, when using `to_s`, +# `'%s' % [1, 2, 3].to_s` can be autocorrected without any incompatibility: +# +# [source,ruby] +# ---- +# '%s' % [1, 2, 3] #=> '1' +# format('%s', [1, 2, 3]) #=> '[1, 2, 3]' +# '%s' % [1, 2, 3].to_s #=> '[1, 2, 3]' +# ---- +# # @example EnforcedStyle: format (default) # # bad # puts sprintf('%10s', 'hoge') @@ -35939,45 +36334,55 @@ RuboCop::Cop::Style::For::PREFER_FOR = T.let(T.unsafe(nil), String) # # good # puts '%10s' % 'hoge' # -# source://rubocop//lib/rubocop/cop/style/format_string.rb#38 +# source://rubocop//lib/rubocop/cop/style/format_string.rb#50 class RuboCop::Cop::Style::FormatString < ::RuboCop::Cop::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle extend ::RuboCop::Cop::AutoCorrector - # source://rubocop//lib/rubocop/cop/style/format_string.rb#46 + # source://rubocop//lib/rubocop/cop/style/format_string.rb#61 def formatter(param0 = T.unsafe(nil)); end - # source://rubocop//lib/rubocop/cop/style/format_string.rb#59 + # source://rubocop//lib/rubocop/cop/style/format_string.rb#74 def on_send(node); end - # source://rubocop//lib/rubocop/cop/style/format_string.rb#55 + # source://rubocop//lib/rubocop/cop/style/format_string.rb#70 def variable_argument?(param0 = T.unsafe(nil)); end private - # source://rubocop//lib/rubocop/cop/style/format_string.rb#81 + # source://rubocop//lib/rubocop/cop/style/format_string.rb#102 def autocorrect(corrector, node); end - # source://rubocop//lib/rubocop/cop/style/format_string.rb#97 + # source://rubocop//lib/rubocop/cop/style/format_string.rb#118 def autocorrect_from_percent(corrector, node); end - # source://rubocop//lib/rubocop/cop/style/format_string.rb#111 + # source://rubocop//lib/rubocop/cop/style/format_string.rb#132 def autocorrect_to_percent(corrector, node); end - # source://rubocop//lib/rubocop/cop/style/format_string.rb#124 + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/style/format_string.rb#88 + def autocorrectable?(node); end + + # source://rubocop//lib/rubocop/cop/style/format_string.rb#145 def format_single_parameter(arg); end - # source://rubocop//lib/rubocop/cop/style/format_string.rb#73 + # source://rubocop//lib/rubocop/cop/style/format_string.rb#94 def message(detected_style); end - # source://rubocop//lib/rubocop/cop/style/format_string.rb#77 + # source://rubocop//lib/rubocop/cop/style/format_string.rb#98 def method_name(style_name); end end -# source://rubocop//lib/rubocop/cop/style/format_string.rb#42 +# Known conversion methods whose return value is not an array. +# +# source://rubocop//lib/rubocop/cop/style/format_string.rb#58 +RuboCop::Cop::Style::FormatString::AUTOCORRECTABLE_METHODS = T.let(T.unsafe(nil), Array) + +# source://rubocop//lib/rubocop/cop/style/format_string.rb#54 RuboCop::Cop::Style::FormatString::MSG = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/style/format_string.rb#43 +# source://rubocop//lib/rubocop/cop/style/format_string.rb#55 RuboCop::Cop::Style::FormatString::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Use a consistent style for named format string tokens. @@ -36203,10 +36608,10 @@ class RuboCop::Cop::Style::FrozenStringLiteralComment < ::RuboCop::Cop::Base private - # source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#176 + # source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#178 def disabled_offense(processed_source); end - # source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#188 + # source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#190 def enable_comment(corrector); end # source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#120 @@ -36218,34 +36623,34 @@ class RuboCop::Cop::Style::FrozenStringLiteralComment < ::RuboCop::Cop::Base # source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#114 def ensure_no_comment(processed_source); end - # source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#212 + # source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#214 def following_comment; end - # source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#150 + # source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#152 def frozen_string_literal_comment(processed_source); end - # source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#194 + # source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#196 def insert_comment(corrector); end # source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#137 def last_special_comment(processed_source); end - # source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#204 + # source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#206 def line_range(line); end - # source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#156 + # source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#158 def missing_offense(processed_source); end - # source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#162 + # source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#164 def missing_true_offense(processed_source); end - # source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#208 + # source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#210 def preceding_comment; end - # source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#184 + # source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#186 def remove_comment(corrector, node); end - # source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#168 + # source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#170 def unnecessary_comment_offense(processed_source); end end @@ -36410,6 +36815,25 @@ RuboCop::Cop::Style::GlobalVars::MSG = T.let(T.unsafe(nil), String) # # good # foo || raise('exception') if something # ok +# +# # bad +# define_method(:test) do +# if something +# work +# end +# end +# +# # good +# define_method(:test) do +# return unless something +# +# work +# end +# +# # also good +# define_method(:test) do +# work if something +# end # @example AllowConsecutiveConditionals: false (default) # # bad # def test @@ -36446,7 +36870,7 @@ RuboCop::Cop::Style::GlobalVars::MSG = T.let(T.unsafe(nil), String) # end # end # -# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#95 +# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#114 class RuboCop::Cop::Style::GuardClause < ::RuboCop::Cop::Base include ::RuboCop::Cop::Alignment include ::RuboCop::Cop::LineLengthHelp @@ -36455,83 +36879,89 @@ class RuboCop::Cop::Style::GuardClause < ::RuboCop::Cop::Base include ::RuboCop::Cop::StatementModifier extend ::RuboCop::Cop::AutoCorrector - # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#104 + # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#132 + def on_block(node); end + + # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#123 def on_def(node); end - # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#104 + # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#123 def on_defs(node); end - # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#113 + # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#139 def on_if(node); end + # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#132 + def on_numblock(node); end + private # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#249 + # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#275 def accepted_form?(node, ending: T.unsafe(nil)); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#257 + # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#283 def accepted_if?(node, ending); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#271 + # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#297 def allowed_consecutive_conditionals?; end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#239 + # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#265 def and_or_guard_clause?(guard_clause); end - # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#184 + # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#210 def autocorrect(corrector, node, condition, replacement, guard); end - # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#210 + # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#236 def autocorrect_heredoc_argument(corrector, node, heredoc_branch, leave_branch, guard); end - # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#133 + # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#159 def check_ending_body(body); end - # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#144 + # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#170 def check_ending_if(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#154 + # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#180 def consecutive_conditionals?(parent, node); end - # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#231 + # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#257 def guard_clause_source(guard_clause); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#206 + # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#232 def heredoc?(argument); end - # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#222 + # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#248 def range_of_branch_to_remove(node, guard); end - # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#162 + # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#188 def register_offense(node, scope_exiting_keyword, conditional_keyword, guard = T.unsafe(nil)); end - # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#267 + # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#293 def remove_whole_lines(corrector, range); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#244 + # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#270 def too_long_for_single_line?(node, example); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#253 + # source://rubocop//lib/rubocop/cop/style/guard_clause.rb#279 def trivial?(node); end end -# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#101 +# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#120 RuboCop::Cop::Style::GuardClause::MSG = T.let(T.unsafe(nil), String) # Checks for presence or absence of braces around hash literal as a last @@ -36624,62 +37054,62 @@ end # # bad # Hash[*ary] # -# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#34 +# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#44 class RuboCop::Cop::Style::HashConversion < ::RuboCop::Cop::Base extend ::RuboCop::Cop::AutoCorrector - # source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#44 + # source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#54 def hash_from_array?(param0 = T.unsafe(nil)); end - # source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#46 + # source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#56 def on_send(node); end private # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#128 + # source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#138 def allowed_splat_argument?; end - # source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#121 + # source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#131 def args_to_hash(args); end - # source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#108 + # source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#118 def multi_argument(node); end - # source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#84 + # source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#94 def register_offense_for_hash(node, hash_argument); end - # source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#93 + # source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#103 def register_offense_for_zip_method(node, zip_method); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#103 + # source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#113 def requires_parens?(node); end - # source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#61 + # source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#71 def single_argument(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#78 + # source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#88 def use_zip_method_without_argument?(first_argument); end end -# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#39 +# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#49 RuboCop::Cop::Style::HashConversion::MSG_LITERAL_HASH_ARG = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#38 +# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#48 RuboCop::Cop::Style::HashConversion::MSG_LITERAL_MULTI_ARG = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#40 +# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#50 RuboCop::Cop::Style::HashConversion::MSG_SPLAT = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#37 +# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#47 RuboCop::Cop::Style::HashConversion::MSG_TO_H = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#41 +# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#51 RuboCop::Cop::Style::HashConversion::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Checks for uses of `each_key` and `each_value` Hash methods. @@ -37268,40 +37698,43 @@ class RuboCop::Cop::Style::IdenticalConditionalBranches < ::RuboCop::Cop::Base private + # source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#181 + def assignable_condition_value(node); end + # source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#140 def check_branches(node, branches); end - # source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#168 + # source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#190 def check_expressions(node, expressions, insert_position); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#156 + # source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#170 def duplicated_expressions?(node, expressions); end # `elsif` branches show up in the if node as nested `else` branches. We # need to recursively iterate over all `else` branches. # - # source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#208 + # source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#230 def expand_elses(branch); end - # source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#223 + # source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#245 def head(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#192 + # source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#214 def last_child_of_parent?(node); end - # source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#202 + # source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#224 def message(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#198 + # source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#220 def single_child_branch?(branch_node); end - # source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#219 + # source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#241 def tail(node); end end @@ -38370,34 +38803,34 @@ class RuboCop::Cop::Style::LambdaCall < ::RuboCop::Cop::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle extend ::RuboCop::Cop::AutoCorrector - # source://rubocop//lib/rubocop/cop/style/lambda_call.rb#28 + # source://rubocop//lib/rubocop/cop/style/lambda_call.rb#29 def on_send(node); end private # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/lambda_call.rb#62 + # source://rubocop//lib/rubocop/cop/style/lambda_call.rb#67 def explicit_style?; end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/lambda_call.rb#58 + # source://rubocop//lib/rubocop/cop/style/lambda_call.rb#63 def implicit_style?; end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/lambda_call.rb#46 + # source://rubocop//lib/rubocop/cop/style/lambda_call.rb#51 def offense?(node); end - # source://rubocop//lib/rubocop/cop/style/lambda_call.rb#50 + # source://rubocop//lib/rubocop/cop/style/lambda_call.rb#55 def prefer(node); end end -# source://rubocop//lib/rubocop/cop/style/lambda_call.rb#25 +# source://rubocop//lib/rubocop/cop/style/lambda_call.rb#26 RuboCop::Cop::Style::LambdaCall::MSG = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/style/lambda_call.rb#26 +# source://rubocop//lib/rubocop/cop/style/lambda_call.rb#27 RuboCop::Cop::Style::LambdaCall::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Checks for string literal concatenation at @@ -39100,12 +39533,12 @@ module RuboCop::Cop::Style::MethodCallWithArgsParentheses::OmitParentheses # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#158 + # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#165 def allowed_chained_call_with_parentheses?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#154 + # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#161 def allowed_multiline_call_with_parentheses?(node); end # @return [Boolean] @@ -39115,17 +39548,17 @@ module RuboCop::Cop::Style::MethodCallWithArgsParentheses::OmitParentheses # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#167 + # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#174 def ambiguous_literal?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#196 + # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#203 def assigned_before?(node, target); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#204 + # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#211 def assignment_in_condition?(node); end # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#31 @@ -39133,7 +39566,7 @@ module RuboCop::Cop::Style::MethodCallWithArgsParentheses::OmitParentheses # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#141 + # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#142 def call_as_argument_or_chain?(node); end # @return [Boolean] @@ -39146,6 +39579,11 @@ module RuboCop::Cop::Style::MethodCallWithArgsParentheses::OmitParentheses # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#110 def call_in_logical_operators?(node); end + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#148 + def call_in_match_pattern?(node); end + # @return [Boolean] # # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#119 @@ -39163,22 +39601,22 @@ module RuboCop::Cop::Style::MethodCallWithArgsParentheses::OmitParentheses # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#137 + # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#138 def call_with_braced_block?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#214 + # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#221 def forwards_anonymous_rest_arguments?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#183 + # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#190 def hash_literal?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#147 + # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#154 def hash_literal_in_arguments?(node); end # @return [Boolean] @@ -39188,7 +39626,7 @@ module RuboCop::Cop::Style::MethodCallWithArgsParentheses::OmitParentheses # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#200 + # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#207 def inside_string_interpolation?(node); end # Require hash value omission be enclosed in parentheses to prevent the following issue: @@ -39206,7 +39644,7 @@ module RuboCop::Cop::Style::MethodCallWithArgsParentheses::OmitParentheses # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#179 + # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#186 def logical_operator?(node); end # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#40 @@ -39222,7 +39660,7 @@ module RuboCop::Cop::Style::MethodCallWithArgsParentheses::OmitParentheses # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#187 + # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#194 def regexp_slash_literal?(node); end # @return [Boolean] @@ -39232,7 +39670,7 @@ module RuboCop::Cop::Style::MethodCallWithArgsParentheses::OmitParentheses # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#171 + # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#178 def splat?(node); end # @return [Boolean] @@ -39247,12 +39685,12 @@ module RuboCop::Cop::Style::MethodCallWithArgsParentheses::OmitParentheses # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#175 + # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#182 def ternary_if?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#191 + # source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#198 def unary_literal?(node); end end @@ -40679,7 +41117,7 @@ class RuboCop::Cop::Style::MutableConstant < ::RuboCop::Cop::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle extend ::RuboCop::Cop::AutoCorrector - # source://rubocop-sorbet/0.7.0/lib/rubocop/cop/sorbet/mutable_constant_sorbet_aware_behaviour.rb#15 + # source://rubocop-sorbet/0.7.5/lib/rubocop/cop/sorbet/mutable_constant_sorbet_aware_behaviour.rb#18 def on_assignment(value); end # source://rubocop//lib/rubocop/cop/style/mutable_constant.rb#127 @@ -40697,7 +41135,7 @@ class RuboCop::Cop::Style::MutableConstant < ::RuboCop::Cop::Base # source://rubocop//lib/rubocop/cop/style/mutable_constant.rb#217 def splat_value(param0 = T.unsafe(nil)); end - # source://rubocop-sorbet/0.7.0/lib/rubocop/cop/sorbet/mutable_constant_sorbet_aware_behaviour.rb#10 + # source://rubocop-sorbet/0.7.5/lib/rubocop/cop/sorbet/mutable_constant_sorbet_aware_behaviour.rb#12 def t_let(param0 = T.unsafe(nil)); end private @@ -41236,16 +41674,13 @@ class RuboCop::Cop::Style::NestedTernaryOperator < ::RuboCop::Cop::Base private - # source://rubocop//lib/rubocop/cop/style/nested_ternary_operator.rb#48 + # source://rubocop//lib/rubocop/cop/style/nested_ternary_operator.rb#40 def autocorrect(corrector, if_node); end - # source://rubocop//lib/rubocop/cop/style/nested_ternary_operator.rb#41 - def if_node(node); end - - # source://rubocop//lib/rubocop/cop/style/nested_ternary_operator.rb#55 + # source://rubocop//lib/rubocop/cop/style/nested_ternary_operator.rb#47 def remove_parentheses(source); end - # source://rubocop//lib/rubocop/cop/style/nested_ternary_operator.rb#61 + # source://rubocop//lib/rubocop/cop/style/nested_ternary_operator.rb#53 def replace_loc_and_whitespace(corrector, range, replacement); end end @@ -42250,24 +42685,24 @@ RuboCop::Cop::Style::OpenStructUse::MSG = T.let(T.unsafe(nil), String) class RuboCop::Cop::Style::OperatorMethodCall < ::RuboCop::Cop::Base extend ::RuboCop::Cop::AutoCorrector - # source://rubocop//lib/rubocop/cop/style/operator_method_call.rb#26 + # source://rubocop//lib/rubocop/cop/style/operator_method_call.rb#27 def on_send(node); end private # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/operator_method_call.rb#48 + # source://rubocop//lib/rubocop/cop/style/operator_method_call.rb#53 def anonymous_forwarding?(argument); end # Checks for an acceptable case of `foo.+(bar).baz`. # # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/operator_method_call.rb#42 + # source://rubocop//lib/rubocop/cop/style/operator_method_call.rb#47 def method_call_with_parenthesized_arg?(argument); end - # source://rubocop//lib/rubocop/cop/style/operator_method_call.rb#55 + # source://rubocop//lib/rubocop/cop/style/operator_method_call.rb#60 def wrap_in_parentheses_if_chained(corrector, node); end end @@ -43325,6 +43760,8 @@ RuboCop::Cop::Style::RandomWithOffset::RESTRICT_ON_SEND = T.let(T.unsafe(nil), A # array.join('') # [1, 2, 3].join("") # array.sum(0) +# exit(true) +# exit!(false) # string.split(" ") # "first\nsecond".split(" ") # string.chomp("\n") @@ -43335,37 +43772,42 @@ RuboCop::Cop::Style::RandomWithOffset::RESTRICT_ON_SEND = T.let(T.unsafe(nil), A # array.join # [1, 2, 3].join # array.sum +# exit +# exit! # string.split # "first second".split # string.chomp # string.chomp! # A.foo # -# source://rubocop//lib/rubocop/cop/style/redundant_argument.rb#53 +# source://rubocop//lib/rubocop/cop/style/redundant_argument.rb#57 class RuboCop::Cop::Style::RedundantArgument < ::RuboCop::Cop::Base include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector - # source://rubocop//lib/rubocop/cop/style/redundant_argument.rb#59 + # source://rubocop//lib/rubocop/cop/style/redundant_argument.rb#64 def on_send(node); end private - # source://rubocop//lib/rubocop/cop/style/redundant_argument.rb#88 + # source://rubocop//lib/rubocop/cop/style/redundant_argument.rb#93 def argument_range(node); end - # source://rubocop//lib/rubocop/cop/style/redundant_argument.rb#81 + # source://rubocop//lib/rubocop/cop/style/redundant_argument.rb#86 def redundant_arg_for_method(method_name); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/redundant_argument.rb#74 + # source://rubocop//lib/rubocop/cop/style/redundant_argument.rb#79 def redundant_argument?(node); end end -# source://rubocop//lib/rubocop/cop/style/redundant_argument.rb#57 +# source://rubocop//lib/rubocop/cop/style/redundant_argument.rb#61 RuboCop::Cop::Style::RedundantArgument::MSG = T.let(T.unsafe(nil), String) +# source://rubocop//lib/rubocop/cop/style/redundant_argument.rb#62 +RuboCop::Cop::Style::RedundantArgument::NO_RECEIVER_METHODS = T.let(T.unsafe(nil), Array) + # Checks for the instantiation of array using redundant `Array` constructor. # Autocorrect replaces to array literal which is the simplest and fastest. # @@ -43570,50 +44012,53 @@ class RuboCop::Cop::Style::RedundantBegin < ::RuboCop::Cop::Base # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#169 + # source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#177 def begin_block_has_multiline_statements?(node); end - # source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#161 + # source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#169 def condition_range(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#173 + # source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#181 def contain_rescue_or_ensure?(node); end - # source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#154 + # source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#162 def correct_modifier_form_after_multiline_begin_block(corrector, node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#165 + # source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#173 def empty_begin?(node); end # source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#110 def register_offense(node); end + # source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#139 + def remove_begin(corrector, offense_range, node); end + # source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#127 def replace_begin_with_statement(corrector, offense_range, node); end # Restore comments that occur between "begin" and "first_child". # These comments will be moved to above the assignment line. # - # source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#141 + # source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#149 def restore_removed_comments(corrector, offense_range, node, first_child); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#148 + # source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#156 def use_modifier_form_after_multiline_begin_block?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#186 + # source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#194 def valid_begin_assignment?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#179 + # source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#187 def valid_context_using_only_begin?(node); end end @@ -43846,13 +44291,8 @@ class RuboCop::Cop::Style::RedundantConditional < ::RuboCop::Cop::Base private - # source://rubocop//lib/rubocop/cop/style/redundant_conditional.rb#86 - def indented_else_node(expression, node); end - - # @return [Boolean] - # # source://rubocop//lib/rubocop/cop/style/redundant_conditional.rb#78 - def invert_expression?(node); end + def indented_else_node(expression, node); end # source://rubocop//lib/rubocop/cop/style/redundant_conditional.rb#48 def message(node); end @@ -43979,23 +44419,63 @@ RuboCop::Cop::Style::RedundantCurrentDirectoryInPath::MSG = T.let(T.unsafe(nil), # # good # do_something(foo: bar, baz: qux) # -# source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#16 +# # bad +# do_something(**{foo: bar, baz: qux}.merge(options)) +# +# # good +# do_something(foo: bar, baz: qux, **options) +# +# source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#22 class RuboCop::Cop::Style::RedundantDoubleSplatHashBraces < ::RuboCop::Cop::Base extend ::RuboCop::Cop::AutoCorrector - # source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#21 + # source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#29 def on_hash(node); end private - # source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#39 + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#45 + def allowed_double_splat_receiver?(kwsplat); end + + # source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#55 + def autocorrect(corrector, node, kwsplat); end + + # source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#89 + def autocorrect_merge_methods(corrector, merge_methods, kwsplat); end + + # source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#85 def closing_brace(node); end - # source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#35 + # source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#111 + def convert_to_new_arguments(node); end + + # source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#107 + def extract_send_methods(kwsplat); end + + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#123 + def mergeable?(node); end + + # source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#81 def opening_brace(node); end + + # source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#100 + def range_of_merge_methods(merge_methods); end + + # source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#66 + def root_receiver(node); end + + # source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#75 + def select_merge_method_nodes(kwsplat); end end -# source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#19 +# source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#26 +RuboCop::Cop::Style::RedundantDoubleSplatHashBraces::MERGE_METHODS = T.let(T.unsafe(nil), Array) + +# source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#25 RuboCop::Cop::Style::RedundantDoubleSplatHashBraces::MSG = T.let(T.unsafe(nil), String) # Checks for redundant `each`. @@ -44058,48 +44538,64 @@ RuboCop::Cop::Style::RedundantEach::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Arra # Checks for RuntimeError as the argument of raise/fail. # -# It checks for code like this: -# # @example -# # Bad +# # bad # raise RuntimeError, 'message' -# -# # Bad # raise RuntimeError.new('message') # -# # Good +# # good # raise 'message' # -# source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#19 +# # bad - message is not a string +# raise RuntimeError, Object.new +# raise RuntimeError.new(Object.new) +# +# # good +# raise Object.new.to_s +# +# source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#23 class RuboCop::Cop::Style::RedundantException < ::RuboCop::Cop::Base extend ::RuboCop::Cop::AutoCorrector - # source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#59 + # source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#79 def compact?(param0 = T.unsafe(nil)); end - # source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#54 + # source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#74 def exploded?(param0 = T.unsafe(nil)); end - # source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#45 + # Switch `raise RuntimeError, 'message'` to `raise 'message'`, and + # `raise RuntimeError.new('message')` to `raise 'message'`. + # + # source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#33 + def on_send(node); end + + private + + # source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#57 def fix_compact(node); end - # source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#33 + # source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#39 def fix_exploded(node); end - # Switch `raise RuntimeError, 'message'` to `raise 'message'`, and - # `raise RuntimeError.new('message')` to `raise 'message'`. + # source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#65 + def replaced_compact(message); end + + # source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#47 + def replaced_exploded(node, command, message); end + + # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#29 - def on_send(node); end + # source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#53 + def string_message?(message); end end -# source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#22 +# source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#26 RuboCop::Cop::Style::RedundantException::MSG_1 = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#23 +# source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#27 RuboCop::Cop::Style::RedundantException::MSG_2 = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#25 +# source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#29 RuboCop::Cop::Style::RedundantException::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Identifies places where `fetch(key) { value }` can be replaced by `fetch(key, value)`. @@ -44252,6 +44748,9 @@ RuboCop::Cop::Style::RedundantFileExtensionInRequire::RESTRICT_ON_SEND = T.let(T # @example AllCops:ActiveSupportExtensionsEnabled: false (default) # # good # arr.select { |x| x > 1 }.many? +# +# # good +# arr.select { |x| x > 1 }.present? # @example AllCops:ActiveSupportExtensionsEnabled: true # # bad # arr.select { |x| x > 1 }.many? @@ -44259,38 +44758,47 @@ RuboCop::Cop::Style::RedundantFileExtensionInRequire::RESTRICT_ON_SEND = T.let(T # # good # arr.many? { |x| x > 1 } # -# source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#38 +# # bad +# arr.select { |x| x > 1 }.present? +# +# # good +# arr.any? { |x| x > 1 } +# +# source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#53 class RuboCop::Cop::Style::RedundantFilterChain < ::RuboCop::Cop::Base extend ::RuboCop::Cop::AutoCorrector - # source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#65 + # source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#81 + def on_csend(node); end + + # source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#81 def on_send(node); end - # source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#47 + # source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#62 def select_predicate?(param0 = T.unsafe(nil)); end private - # source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#91 + # source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#108 def offense_range(select_node, predicate_node); end - # source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#95 + # source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#112 def predicate_range(predicate_node); end - # source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#77 + # source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#94 def register_offense(select_node, predicate_node); end end -# source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#41 +# source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#56 RuboCop::Cop::Style::RedundantFilterChain::MSG = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#43 +# source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#58 RuboCop::Cop::Style::RedundantFilterChain::RAILS_METHODS = T.let(T.unsafe(nil), Array) -# source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#56 +# source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#71 RuboCop::Cop::Style::RedundantFilterChain::REPLACEMENT_METHODS = T.let(T.unsafe(nil), Hash) -# source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#44 +# source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#59 RuboCop::Cop::Style::RedundantFilterChain::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Check for uses of `Object#freeze` on immutable objects. @@ -44757,16 +45265,16 @@ class RuboCop::Cop::Style::RedundantParentheses < ::RuboCop::Cop::Base # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#36 def arg_in_call_with_block?(param0 = T.unsafe(nil)); end - # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#220 + # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#246 def first_send_argument?(param0 = T.unsafe(nil)); end - # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#225 + # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#251 def first_super_argument?(param0 = T.unsafe(nil)); end - # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#230 + # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#256 def first_yield_argument?(param0 = T.unsafe(nil)); end - # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#138 + # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#158 def interpolation?(param0 = T.unsafe(nil)); end # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#27 @@ -44813,36 +45321,39 @@ class RuboCop::Cop::Style::RedundantParentheses < ::RuboCop::Cop::Base # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#234 + # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#260 def call_chain_starts_with_int?(begin_node, send_node); end - # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#125 + # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#129 def check(begin_node); end - # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#140 + # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#160 def check_send(begin_node, node); end - # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#149 + # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#169 def check_unary(begin_node, node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#173 + # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#193 def disallowed_literal?(begin_node, node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#105 + # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#107 def empty_parentheses?(node); end + # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#140 + def find_offense_message(begin_node, node); end + # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#110 + # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#112 def first_arg_begins_with_hash_literal?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#215 + # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#235 def first_argument?(node); end # @return [Boolean] @@ -44852,12 +45363,12 @@ class RuboCop::Cop::Style::RedundantParentheses < ::RuboCop::Cop::Base # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#169 + # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#189 def keyword_ancestor?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#188 + # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#208 def keyword_with_redundant_parentheses?(node); end # @return [Boolean] @@ -44867,20 +45378,18 @@ class RuboCop::Cop::Style::RedundantParentheses < ::RuboCop::Cop::Base # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#201 + # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#221 def method_call_with_redundant_parentheses?(node); end - # @return [Boolean] - # - # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#117 - def method_chain_begins_with_hash_literal?(node); end + # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#121 + def method_chain_begins_with_hash_literal(node); end - # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#159 + # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#179 def offense(node, msg); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#211 + # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#231 def only_begin_arg?(args); end # @return [Boolean] @@ -44890,12 +45399,12 @@ class RuboCop::Cop::Style::RedundantParentheses < ::RuboCop::Cop::Base # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#177 + # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#197 def raised_to_power_negative_numeric?(begin_node, node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#165 + # source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#185 def suspect_unary?(node); end # @return [Boolean] @@ -45267,13 +45776,18 @@ RuboCop::Cop::Style::RedundantRegexpEscape::MSG_REDUNDANT_ESCAPE = T.let(T.unsaf # return something # end # -# # good +# # bad # def test # return something if something_else # end # # # good # def test +# something if something_else +# end +# +# # good +# def test # if x # elsif y # else @@ -45290,79 +45804,79 @@ RuboCop::Cop::Style::RedundantRegexpEscape::MSG_REDUNDANT_ESCAPE = T.let(T.unsaf # return x, y # end # -# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#50 +# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#55 class RuboCop::Cop::Style::RedundantReturn < ::RuboCop::Cop::Base include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector - # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#64 + # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#69 def on_def(node); end - # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#64 + # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#69 def on_defs(node); end - # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#58 + # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#63 def on_send(node); end private - # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#99 + # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#104 def add_braces(corrector, node); end - # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#94 + # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#99 def add_brackets(corrector, node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#164 + # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#169 def allow_multiple_return_values?; end - # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#159 + # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#164 def check_begin_node(node); end - # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#105 + # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#110 def check_branch(node); end - # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#133 + # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#138 def check_case_node(node); end - # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#154 + # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#159 def check_ensure_node(node); end - # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#138 + # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#143 def check_if_node(node); end - # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#150 + # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#155 def check_resbody_node(node); end - # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#145 + # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#150 def check_rescue_node(node); end - # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#121 + # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#126 def check_return_node(node); end - # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#75 + # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#80 def correct_with_arguments(return_node, corrector); end - # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#71 + # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#76 def correct_without_arguments(return_node, corrector); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#90 + # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#95 def hash_without_braces?(node); end - # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#168 + # source://rubocop//lib/rubocop/cop/style/redundant_return.rb#173 def message(node); end end -# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#54 +# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#59 RuboCop::Cop::Style::RedundantReturn::MSG = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#55 +# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#60 RuboCop::Cop::Style::RedundantReturn::MULTI_RETURN_MSG = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#56 +# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#61 RuboCop::Cop::Style::RedundantReturn::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Checks for redundant uses of `self`. @@ -46357,9 +46871,13 @@ RuboCop::Cop::Style::RescueStandardError::MSG_EXPLICIT = T.let(T.unsafe(nil), St # source://rubocop//lib/rubocop/cop/style/rescue_standard_error.rb#79 RuboCop::Cop::Style::RescueStandardError::MSG_IMPLICIT = T.let(T.unsafe(nil), String) -# Enforces consistency between 'return nil' and 'return'. +# Enforces consistency between `return nil` and `return`. +# +# This cop is disabled by default. Because there seems to be a perceived semantic difference +# between `return` and `return nil`. The former can be seen as just halting evaluation, +# while the latter might be used when the return value is of specific concern. # -# Supported styles are: return, return_nil. +# Supported styles are `return` and `return_nil`. # # @example EnforcedStyle: return (default) # # bad @@ -46382,46 +46900,46 @@ RuboCop::Cop::Style::RescueStandardError::MSG_IMPLICIT = T.let(T.unsafe(nil), St # return nil if arg # end # -# source://rubocop//lib/rubocop/cop/style/return_nil.rb#31 +# source://rubocop//lib/rubocop/cop/style/return_nil.rb#35 class RuboCop::Cop::Style::ReturnNil < ::RuboCop::Cop::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle extend ::RuboCop::Cop::AutoCorrector - # source://rubocop//lib/rubocop/cop/style/return_nil.rb#86 + # source://rubocop//lib/rubocop/cop/style/return_nil.rb#90 def chained_send?(param0 = T.unsafe(nil)); end - # source://rubocop//lib/rubocop/cop/style/return_nil.rb#89 + # source://rubocop//lib/rubocop/cop/style/return_nil.rb#93 def define_method?(param0 = T.unsafe(nil)); end - # source://rubocop//lib/rubocop/cop/style/return_nil.rb#44 + # source://rubocop//lib/rubocop/cop/style/return_nil.rb#48 def on_return(node); end - # source://rubocop//lib/rubocop/cop/style/return_nil.rb#42 + # source://rubocop//lib/rubocop/cop/style/return_nil.rb#46 def return_nil_node?(param0 = T.unsafe(nil)); end - # source://rubocop//lib/rubocop/cop/style/return_nil.rb#39 + # source://rubocop//lib/rubocop/cop/style/return_nil.rb#43 def return_node?(param0 = T.unsafe(nil)); end private # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/return_nil.rb#76 + # source://rubocop//lib/rubocop/cop/style/return_nil.rb#80 def correct_style?(node); end - # source://rubocop//lib/rubocop/cop/style/return_nil.rb#72 + # source://rubocop//lib/rubocop/cop/style/return_nil.rb#76 def message(_node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/return_nil.rb#81 + # source://rubocop//lib/rubocop/cop/style/return_nil.rb#85 def scoped_node?(node); end end -# source://rubocop//lib/rubocop/cop/style/return_nil.rb#35 +# source://rubocop//lib/rubocop/cop/style/return_nil.rb#39 RuboCop::Cop::Style::ReturnNil::RETURN_MSG = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/style/return_nil.rb#36 +# source://rubocop//lib/rubocop/cop/style/return_nil.rb#40 RuboCop::Cop::Style::ReturnNil::RETURN_NIL_MSG = T.let(T.unsafe(nil), String) # Checks if `return` or `return nil` is used in predicate method definitions. @@ -46447,14 +46965,14 @@ RuboCop::Cop::Style::ReturnNil::RETURN_NIL_MSG = T.let(T.unsafe(nil), String) # # do_something? # end -# @example AllowedMethod: ['foo?'] +# @example AllowedMethods: ['foo?'] # # good # def foo? # return if condition # # do_something? # end -# @example AllowedPattern: [/foo/] +# @example AllowedPatterns: [/foo/] # # good # def foo? # return if condition @@ -46476,6 +46994,14 @@ class RuboCop::Cop::Style::ReturnNilInPredicateMethodDefinition < ::RuboCop::Cop # source://rubocop//lib/rubocop/cop/style/return_nil_in_predicate_method_definition.rb#58 def return_nil?(param0 = T.unsafe(nil)); end + + private + + # source://rubocop//lib/rubocop/cop/style/return_nil_in_predicate_method_definition.rb#79 + def nil_node_at_the_end_of_method_body(body); end + + # source://rubocop//lib/rubocop/cop/style/return_nil_in_predicate_method_definition.rb#87 + def register_offense(offense_node, replacement); end end # source://rubocop//lib/rubocop/cop/style/return_nil_in_predicate_method_definition.rb#55 @@ -46935,48 +47461,48 @@ class RuboCop::Cop::Style::Semicolon < ::RuboCop::Cop::Base # source://rubocop//lib/rubocop/cop/style/semicolon.rb#64 def check_for_line_terminator_or_opener; end - # source://rubocop//lib/rubocop/cop/style/semicolon.rb#73 + # source://rubocop//lib/rubocop/cop/style/semicolon.rb#70 def each_semicolon; end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/semicolon.rb#105 + # source://rubocop//lib/rubocop/cop/style/semicolon.rb#102 def exist_semicolon_after_left_curly_brace?(tokens); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/semicolon.rb#113 + # source://rubocop//lib/rubocop/cop/style/semicolon.rb#110 def exist_semicolon_after_left_string_interpolation_brace?(tokens); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/semicolon.rb#101 + # source://rubocop//lib/rubocop/cop/style/semicolon.rb#98 def exist_semicolon_before_right_curly_brace?(tokens); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/semicolon.rb#109 + # source://rubocop//lib/rubocop/cop/style/semicolon.rb#106 def exist_semicolon_before_right_string_interpolation_brace?(tokens); end - # source://rubocop//lib/rubocop/cop/style/semicolon.rb#137 + # source://rubocop//lib/rubocop/cop/style/semicolon.rb#134 def expressions_per_line(exprs); end - # source://rubocop//lib/rubocop/cop/style/semicolon.rb#151 + # source://rubocop//lib/rubocop/cop/style/semicolon.rb#148 def find_range_node(token_before_semicolon); end - # source://rubocop//lib/rubocop/cop/style/semicolon.rb#143 + # source://rubocop//lib/rubocop/cop/style/semicolon.rb#140 def find_semicolon_positions(line); end - # source://rubocop//lib/rubocop/cop/style/semicolon.rb#157 + # source://rubocop//lib/rubocop/cop/style/semicolon.rb#154 def range_nodes; end - # source://rubocop//lib/rubocop/cop/style/semicolon.rb#117 + # source://rubocop//lib/rubocop/cop/style/semicolon.rb#114 def register_semicolon(line, column, after_expression, token_before_semicolon = T.unsafe(nil)); end - # source://rubocop//lib/rubocop/cop/style/semicolon.rb#86 + # source://rubocop//lib/rubocop/cop/style/semicolon.rb#83 def semicolon_position(tokens); end - # source://rubocop//lib/rubocop/cop/style/semicolon.rb#82 + # source://rubocop//lib/rubocop/cop/style/semicolon.rb#79 def tokens_for_lines; end class << self @@ -47195,13 +47721,16 @@ RuboCop::Cop::Style::SignalException::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Ar class RuboCop::Cop::Style::SingleArgumentDig < ::RuboCop::Cop::Base extend ::RuboCop::Cop::AutoCorrector - # source://rubocop//lib/rubocop/cop/style/single_argument_dig.rb#42 + # source://rubocop//lib/rubocop/cop/style/single_argument_dig.rb#43 def on_send(node); end - # source://rubocop//lib/rubocop/cop/style/single_argument_dig.rb#38 + # source://rubocop//lib/rubocop/cop/style/single_argument_dig.rb#39 def single_argument_dig?(param0 = T.unsafe(nil)); end end +# source://rubocop//lib/rubocop/cop/style/single_argument_dig.rb#36 +RuboCop::Cop::Style::SingleArgumentDig::IGNORED_ARGUMENT_TYPES = T.let(T.unsafe(nil), Array) + # source://rubocop//lib/rubocop/cop/style/single_argument_dig.rb#34 RuboCop::Cop::Style::SingleArgumentDig::MSG = T.let(T.unsafe(nil), String) @@ -47280,6 +47809,50 @@ end # source://rubocop//lib/rubocop/cop/style/single_line_block_params.rb#34 RuboCop::Cop::Style::SingleLineBlockParams::MSG = T.let(T.unsafe(nil), String) +# Checks for single-line `do`...`end` block. +# +# In practice a single line `do`...`end` is autocorrected when `EnforcedStyle: semantic` +# in `Style/BlockDelimiters`. The autocorrection maintains the `do` ... `end` syntax to +# preserve semantics and does not change it to `{`...`}` block. +# +# @example +# +# # bad +# foo do |arg| bar(arg) end +# +# # good +# foo do |arg| +# bar(arg) +# end +# +# # bad +# ->(arg) do bar(arg) end +# +# # good +# ->(arg) { bar(arg) } +# +# source://rubocop//lib/rubocop/cop/style/single_line_do_end_block.rb#28 +class RuboCop::Cop::Style::SingleLineDoEndBlock < ::RuboCop::Cop::Base + extend ::RuboCop::Cop::AutoCorrector + + # source://rubocop//lib/rubocop/cop/style/single_line_do_end_block.rb#34 + def on_block(node); end + + # source://rubocop//lib/rubocop/cop/style/single_line_do_end_block.rb#34 + def on_numblock(node); end + + private + + # source://rubocop//lib/rubocop/cop/style/single_line_do_end_block.rb#55 + def do_line(node); end + + # source://rubocop//lib/rubocop/cop/style/single_line_do_end_block.rb#63 + def x(corrector, node); end +end + +# source://rubocop//lib/rubocop/cop/style/single_line_do_end_block.rb#31 +RuboCop::Cop::Style::SingleLineDoEndBlock::MSG = T.let(T.unsafe(nil), String) + # Checks for single-line method definitions that contain a body. # It will accept single-line methods with no body. # @@ -47449,10 +48022,10 @@ class RuboCop::Cop::Style::SoleNestedConditional < ::RuboCop::Cop::Base # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#240 + # source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#242 def allow_modifier?; end - # source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#225 + # source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#227 def arguments_range(node); end # source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#81 @@ -47482,13 +48055,13 @@ class RuboCop::Cop::Style::SoleNestedConditional < ::RuboCop::Cop::Base # source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#130 def correct_from_unless_to_if(corrector, node, is_modify_form: T.unsafe(nil)); end - # source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#182 + # source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#184 def correct_outer_condition(corrector, condition); end - # source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#195 + # source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#197 def insert_bang(corrector, node, is_modify_form); end - # source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#208 + # source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#210 def insert_bang_for_and(corrector, node); end # @return [Boolean] @@ -47498,15 +48071,15 @@ class RuboCop::Cop::Style::SoleNestedConditional < ::RuboCop::Cop::Base # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#244 + # source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#246 def outer_condition_modify_form?(node, if_branch); end - # source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#236 + # source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#238 def replace_condition(condition); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#220 + # source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#222 def require_parentheses?(condition); end # @return [Boolean] @@ -47519,7 +48092,7 @@ class RuboCop::Cop::Style::SoleNestedConditional < ::RuboCop::Cop::Base # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#231 + # source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#233 def wrap_condition?(node); end class << self @@ -48123,40 +48696,67 @@ end # source://rubocop//lib/rubocop/cop/style/string_literals.rb#35 RuboCop::Cop::Style::StringLiterals::MSG_INCONSISTENT = T.let(T.unsafe(nil), String) -# Checks that quotes inside the string interpolation +# Checks that quotes inside string, symbol, and regexp interpolations # match the configured preference. # # @example EnforcedStyle: single_quotes (default) # # bad -# result = "Tests #{success ? "PASS" : "FAIL"}" +# string = "Tests #{success ? "PASS" : "FAIL"}" +# symbol = :"Tests #{success ? "PASS" : "FAIL"}" +# heredoc = <<~TEXT +# Tests #{success ? "PASS" : "FAIL"} +# TEXT +# regexp = /Tests #{success ? "PASS" : "FAIL"}/ # # # good -# result = "Tests #{success ? 'PASS' : 'FAIL'}" +# string = "Tests #{success ? 'PASS' : 'FAIL'}" +# symbol = :"Tests #{success ? 'PASS' : 'FAIL'}" +# heredoc = <<~TEXT +# Tests #{success ? 'PASS' : 'FAIL'} +# TEXT +# regexp = /Tests #{success ? 'PASS' : 'FAIL'}/ # @example EnforcedStyle: double_quotes # # bad -# result = "Tests #{success ? 'PASS' : 'FAIL'}" +# string = "Tests #{success ? 'PASS' : 'FAIL'}" +# symbol = :"Tests #{success ? 'PASS' : 'FAIL'}" +# heredoc = <<~TEXT +# Tests #{success ? 'PASS' : 'FAIL'} +# TEXT +# regexp = /Tests #{success ? 'PASS' : 'FAIL'}/ # # # good -# result = "Tests #{success ? "PASS" : "FAIL"}" +# string = "Tests #{success ? "PASS" : "FAIL"}" +# symbol = :"Tests #{success ? "PASS" : "FAIL"}" +# heredoc = <<~TEXT +# Tests #{success ? "PASS" : "FAIL"} +# TEXT +# regexp = /Tests #{success ? "PASS" : "FAIL"}/ # -# source://rubocop//lib/rubocop/cop/style/string_literals_in_interpolation.rb#22 +# source://rubocop//lib/rubocop/cop/style/string_literals_in_interpolation.rb#42 class RuboCop::Cop::Style::StringLiteralsInInterpolation < ::RuboCop::Cop::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle include ::RuboCop::Cop::StringLiteralsHelp include ::RuboCop::Cop::StringHelp extend ::RuboCop::Cop::AutoCorrector - # source://rubocop//lib/rubocop/cop/style/string_literals_in_interpolation.rb#28 + # source://rubocop//lib/rubocop/cop/style/string_literals_in_interpolation.rb#48 def autocorrect(corrector, node); end + # Cop classes that include the StringHelp module usually ignore regexp + # nodes. Not so for this cop, which is why we override the on_regexp + # definition with an empty one. + # + # source://rubocop//lib/rubocop/cop/style/string_literals_in_interpolation.rb#55 + def on_regexp(node); end + private - # source://rubocop//lib/rubocop/cop/style/string_literals_in_interpolation.rb#34 + # source://rubocop//lib/rubocop/cop/style/string_literals_in_interpolation.rb#59 def message(_node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/string_literals_in_interpolation.rb#41 + # source://rubocop//lib/rubocop/cop/style/string_literals_in_interpolation.rb#66 def offense?(node); end end @@ -48347,6 +48947,15 @@ RuboCop::Cop::Style::SwapValues::SIMPLE_ASSIGNMENT_TYPES = T.let(T.unsafe(nil), # # # bad # [:foo, :bar, :baz] +# +# # bad (contains spaces) +# %i[foo\ bar baz\ quux] +# +# # bad (contains [] with spaces) +# %i[foo \[ \]] +# +# # bad (contains () with spaces) +# %i(foo \( \)) # @example EnforcedStyle: brackets # # good # [:foo, :bar, :baz] @@ -48354,7 +48963,7 @@ RuboCop::Cop::Style::SwapValues::SIMPLE_ASSIGNMENT_TYPES = T.let(T.unsafe(nil), # # bad # %i[foo bar baz] # -# source://rubocop//lib/rubocop/cop/style/symbol_array.rb#31 +# source://rubocop//lib/rubocop/cop/style/symbol_array.rb#40 class RuboCop::Cop::Style::SymbolArray < ::RuboCop::Cop::Base include ::RuboCop::Cop::ArrayMinSize include ::RuboCop::Cop::ArraySyntax @@ -48363,48 +48972,62 @@ class RuboCop::Cop::Style::SymbolArray < ::RuboCop::Cop::Base extend ::RuboCop::Cop::AutoCorrector extend ::RuboCop::Cop::TargetRubyVersion - # source://rubocop//lib/rubocop/cop/style/symbol_array.rb#48 + # source://rubocop//lib/rubocop/cop/style/symbol_array.rb#66 def on_array(node); end private - # source://rubocop//lib/rubocop/cop/style/symbol_array.rb#67 + # source://rubocop//lib/rubocop/cop/style/symbol_array.rb#96 def build_bracketed_array(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/symbol_array.rb#90 - def symbol_without_quote?(string); end + # source://rubocop//lib/rubocop/cop/style/symbol_array.rb#78 + def complex_content?(node); end + + # @return [Boolean] + # + # source://rubocop//lib/rubocop/cop/style/symbol_array.rb#92 + def invalid_percent_array_contents?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/symbol_array.rb#60 - def symbols_contain_spaces?(node); end + # source://rubocop//lib/rubocop/cop/style/symbol_array.rb#119 + def symbol_without_quote?(string); end - # source://rubocop//lib/rubocop/cop/style/symbol_array.rb#82 + # source://rubocop//lib/rubocop/cop/style/symbol_array.rb#111 def to_symbol_literal(string); end class << self # Returns the value of attribute largest_brackets. # - # source://rubocop//lib/rubocop/cop/style/symbol_array.rb#45 + # source://rubocop//lib/rubocop/cop/style/symbol_array.rb#63 def largest_brackets; end # Sets the attribute largest_brackets # # @param value the value to set the attribute largest_brackets to. # - # source://rubocop//lib/rubocop/cop/style/symbol_array.rb#45 + # source://rubocop//lib/rubocop/cop/style/symbol_array.rb#63 def largest_brackets=(_arg0); end end end -# source://rubocop//lib/rubocop/cop/style/symbol_array.rb#42 +# source://rubocop//lib/rubocop/cop/style/symbol_array.rb#51 RuboCop::Cop::Style::SymbolArray::ARRAY_MSG = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/style/symbol_array.rb#41 +# source://rubocop//lib/rubocop/cop/style/symbol_array.rb#52 +RuboCop::Cop::Style::SymbolArray::DELIMITERS = T.let(T.unsafe(nil), Array) + +# source://rubocop//lib/rubocop/cop/style/symbol_array.rb#50 RuboCop::Cop::Style::SymbolArray::PERCENT_MSG = T.let(T.unsafe(nil), String) +# source://rubocop//lib/rubocop/cop/style/symbol_array.rb#57 +RuboCop::Cop::Style::SymbolArray::REDEFINABLE_OPERATORS = T.let(T.unsafe(nil), Array) + +# source://rubocop//lib/rubocop/cop/style/symbol_array.rb#53 +RuboCop::Cop::Style::SymbolArray::SPECIAL_GVARS = T.let(T.unsafe(nil), Array) + # Checks symbol literal syntax. # # @example @@ -50230,61 +50853,62 @@ RuboCop::Cop::Style::YodaCondition::REVERSE_COMPARISON = T.let(T.unsafe(nil), Ha # config.server_port = 9000 + ENV["TEST_ENV_NUMBER"].to_i # ---- # -# @example SupportedOperators: ['*', '+', '&''] +# @example SupportedOperators: ['*', '+', '&', '|', '^'] (default) # # bad -# 1 + x # 10 * y +# 1 + x # 1 & z +# 1 | x +# 1 ^ x # 1 + CONST # # # good -# 60 * 24 -# x + 1 # y * 10 +# x + 1 # z & 1 +# x | 1 +# x ^ 1 # CONST + 1 +# 60 * 24 # -# # good -# 1 | x -# -# source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#39 +# source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#40 class RuboCop::Cop::Style::YodaExpression < ::RuboCop::Cop::Base extend ::RuboCop::Cop::AutoCorrector - # source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#46 + # source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#47 def on_new_investigation; end - # source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#50 + # source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#51 def on_send(node); end private # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#72 + # source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#73 def constant_portion?(node); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#80 + # source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#81 def offended_ancestor?(node); end - # source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#84 + # source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#85 def offended_nodes; end - # source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#76 + # source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#77 def supported_operators; end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#68 + # source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#69 def yoda_expression_constant?(lhs, rhs); end end -# source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#42 +# source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#43 RuboCop::Cop::Style::YodaExpression::MSG = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#44 +# source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#45 RuboCop::Cop::Style::YodaExpression::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Checks for numeric comparisons that can be replaced @@ -51183,12 +51807,10 @@ class RuboCop::Cop::Utils::RegexpRanges # source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#11 def initialize(root); end - # Returns the value of attribute compound_token. - # - # source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#9 + # source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#18 def compound_token; end - # source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#16 + # source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#24 def pairs; end # Returns the value of attribute root. @@ -51198,26 +51820,29 @@ class RuboCop::Cop::Utils::RegexpRanges private - # source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#65 + # source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#78 def compose_range(expressions, current); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#77 + # source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#90 def escaped_octal?(expr); end # @return [Boolean] # - # source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#81 + # source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#94 def octal_digit?(char); end - # source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#85 + # source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#98 def pop_octal_digits(expressions); end - # source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#31 + # source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#44 def populate(expr); end - # source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#50 + # source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#32 + def populate_all; end + + # source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#63 def process_set(expressions, current); end end @@ -51499,7 +52124,7 @@ class RuboCop::Cop::VariableForce::Assignment private - # source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#127 + # source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#125 def find_multiple_assignment_node(grandparent_node); end # source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#121 @@ -52901,32 +53526,31 @@ end module RuboCop::FileFinder # @api private # - # source://rubocop//lib/rubocop/file_finder.rb#17 + # source://rubocop//lib/rubocop/file_finder.rb#13 def find_file_upwards(filename, start_dir, stop_dir = T.unsafe(nil)); end # @api private # - # source://rubocop//lib/rubocop/file_finder.rb#24 + # source://rubocop//lib/rubocop/file_finder.rb#20 def find_last_file_upwards(filename, start_dir, stop_dir = T.unsafe(nil)); end private # @api private # - # source://rubocop//lib/rubocop/file_finder.rb#32 + # source://rubocop//lib/rubocop/file_finder.rb#28 def traverse_files_upwards(filename, start_dir, stop_dir); end class << self # @api private # - # source://rubocop//lib/rubocop/file_finder.rb#9 - def root_level=(level); end + # source://rubocop//lib/rubocop/file_finder.rb#10 + def root_level; end # @api private - # @return [Boolean] # - # source://rubocop//lib/rubocop/file_finder.rb#13 - def root_level?(path, stop_dir); end + # source://rubocop//lib/rubocop/file_finder.rb#10 + def root_level=(_arg0); end end end @@ -53429,37 +54053,37 @@ RuboCop::Formatter::GitHubActionsFormatter::ESCAPE_MAP = T.let(T.unsafe(nil), Ha # This formatter saves the output as an html file. # -# source://rubocop//lib/rubocop/formatter/html_formatter.rb#11 +# source://rubocop//lib/rubocop/formatter/html_formatter.rb#10 class RuboCop::Formatter::HTMLFormatter < ::RuboCop::Formatter::BaseFormatter # @return [HTMLFormatter] a new instance of HTMLFormatter # - # source://rubocop//lib/rubocop/formatter/html_formatter.rb#30 + # source://rubocop//lib/rubocop/formatter/html_formatter.rb#29 def initialize(output, options = T.unsafe(nil)); end - # source://rubocop//lib/rubocop/formatter/html_formatter.rb#40 + # source://rubocop//lib/rubocop/formatter/html_formatter.rb#39 def file_finished(file, offenses); end # Returns the value of attribute files. # - # source://rubocop//lib/rubocop/formatter/html_formatter.rb#28 + # source://rubocop//lib/rubocop/formatter/html_formatter.rb#27 def files; end - # source://rubocop//lib/rubocop/formatter/html_formatter.rb#45 + # source://rubocop//lib/rubocop/formatter/html_formatter.rb#44 def finished(inspected_files); end - # source://rubocop//lib/rubocop/formatter/html_formatter.rb#51 + # source://rubocop//lib/rubocop/formatter/html_formatter.rb#50 def render_html; end - # source://rubocop//lib/rubocop/formatter/html_formatter.rb#36 + # source://rubocop//lib/rubocop/formatter/html_formatter.rb#35 def started(target_files); end # Returns the value of attribute summary. # - # source://rubocop//lib/rubocop/formatter/html_formatter.rb#28 + # source://rubocop//lib/rubocop/formatter/html_formatter.rb#27 def summary; end end -# source://rubocop//lib/rubocop/formatter/html_formatter.rb#15 +# source://rubocop//lib/rubocop/formatter/html_formatter.rb#14 class RuboCop::Formatter::HTMLFormatter::Color < ::Struct # Returns the value of attribute alpha # @@ -53483,7 +54107,7 @@ class RuboCop::Formatter::HTMLFormatter::Color < ::Struct # @return [Object] the newly set value def blue=(_); end - # source://rubocop//lib/rubocop/formatter/html_formatter.rb#20 + # source://rubocop//lib/rubocop/formatter/html_formatter.rb#19 def fade_out(amount); end # Returns the value of attribute green @@ -53508,7 +54132,7 @@ class RuboCop::Formatter::HTMLFormatter::Color < ::Struct # @return [Object] the newly set value def red=(_); end - # source://rubocop//lib/rubocop/formatter/html_formatter.rb#16 + # source://rubocop//lib/rubocop/formatter/html_formatter.rb#15 def to_s; end class << self @@ -53520,68 +54144,68 @@ class RuboCop::Formatter::HTMLFormatter::Color < ::Struct end end -# source://rubocop//lib/rubocop/formatter/html_formatter.rb#12 +# source://rubocop//lib/rubocop/formatter/html_formatter.rb#11 RuboCop::Formatter::HTMLFormatter::ELLIPSES = T.let(T.unsafe(nil), String) # This class provides helper methods used in the ERB template. # -# source://rubocop//lib/rubocop/formatter/html_formatter.rb#62 +# source://rubocop//lib/rubocop/formatter/html_formatter.rb#61 class RuboCop::Formatter::HTMLFormatter::ERBContext include ::RuboCop::PathUtil include ::RuboCop::Formatter::TextUtil # @return [ERBContext] a new instance of ERBContext # - # source://rubocop//lib/rubocop/formatter/html_formatter.rb#78 + # source://rubocop//lib/rubocop/formatter/html_formatter.rb#77 def initialize(files, summary); end - # source://rubocop//lib/rubocop/formatter/html_formatter.rb#125 + # source://rubocop//lib/rubocop/formatter/html_formatter.rb#124 def base64_encoded_logo_image; end # Make Kernel#binding public. # - # source://rubocop//lib/rubocop/formatter/html_formatter.rb#85 + # source://rubocop//lib/rubocop/formatter/html_formatter.rb#84 def binding; end - # source://rubocop//lib/rubocop/formatter/html_formatter.rb#90 + # source://rubocop//lib/rubocop/formatter/html_formatter.rb#89 def decorated_message(offense); end - # source://rubocop//lib/rubocop/formatter/html_formatter.rb#121 + # source://rubocop//lib/rubocop/formatter/html_formatter.rb#120 def escape(string); end # Returns the value of attribute files. # - # source://rubocop//lib/rubocop/formatter/html_formatter.rb#76 + # source://rubocop//lib/rubocop/formatter/html_formatter.rb#75 def files; end - # source://rubocop//lib/rubocop/formatter/html_formatter.rb#101 + # source://rubocop//lib/rubocop/formatter/html_formatter.rb#100 def highlight_source_tag(offense); end - # source://rubocop//lib/rubocop/formatter/html_formatter.rb#94 + # source://rubocop//lib/rubocop/formatter/html_formatter.rb#93 def highlighted_source_line(offense); end - # source://rubocop//lib/rubocop/formatter/html_formatter.rb#117 + # source://rubocop//lib/rubocop/formatter/html_formatter.rb#116 def possible_ellipses(location); end - # source://rubocop//lib/rubocop/formatter/html_formatter.rb#112 + # source://rubocop//lib/rubocop/formatter/html_formatter.rb#111 def source_after_highlight(offense); end - # source://rubocop//lib/rubocop/formatter/html_formatter.rb#107 + # source://rubocop//lib/rubocop/formatter/html_formatter.rb#106 def source_before_highlight(offense); end # Returns the value of attribute summary. # - # source://rubocop//lib/rubocop/formatter/html_formatter.rb#76 + # source://rubocop//lib/rubocop/formatter/html_formatter.rb#75 def summary; end end -# source://rubocop//lib/rubocop/formatter/html_formatter.rb#74 +# source://rubocop//lib/rubocop/formatter/html_formatter.rb#73 RuboCop::Formatter::HTMLFormatter::ERBContext::LOGO_IMAGE_PATH = T.let(T.unsafe(nil), String) -# source://rubocop//lib/rubocop/formatter/html_formatter.rb#66 +# source://rubocop//lib/rubocop/formatter/html_formatter.rb#65 RuboCop::Formatter::HTMLFormatter::ERBContext::SEVERITY_COLORS = T.let(T.unsafe(nil), Hash) -# source://rubocop//lib/rubocop/formatter/html_formatter.rb#26 +# source://rubocop//lib/rubocop/formatter/html_formatter.rb#25 class RuboCop::Formatter::HTMLFormatter::FileOffenses < ::Struct # Returns the value of attribute offenses # @@ -53614,7 +54238,7 @@ class RuboCop::Formatter::HTMLFormatter::FileOffenses < ::Struct end end -# source://rubocop//lib/rubocop/formatter/html_formatter.rb#25 +# source://rubocop//lib/rubocop/formatter/html_formatter.rb#24 class RuboCop::Formatter::HTMLFormatter::Summary < ::Struct # Returns the value of attribute inspected_files # @@ -53658,7 +54282,7 @@ class RuboCop::Formatter::HTMLFormatter::Summary < ::Struct end end -# source://rubocop//lib/rubocop/formatter/html_formatter.rb#13 +# source://rubocop//lib/rubocop/formatter/html_formatter.rb#12 RuboCop::Formatter::HTMLFormatter::TEMPLATE_PATH = T.let(T.unsafe(nil), String) # This formatter formats the report data in JSON format. @@ -54164,53 +54788,52 @@ class RuboCop::Lsp::Routes # source://rubocop//lib/rubocop/lsp/routes.rb#38 def handle_initialize(request); end - # source://rubocop//lib/rubocop/lsp/routes.rb#56 + # source://rubocop//lib/rubocop/lsp/routes.rb#61 def handle_initialized(_request); end # @api private # - # source://rubocop//lib/rubocop/lsp/routes.rb#159 + # source://rubocop//lib/rubocop/lsp/routes.rb#170 def handle_method_missing(request); end - # source://rubocop//lib/rubocop/lsp/routes.rb#62 + # source://rubocop//lib/rubocop/lsp/routes.rb#67 def handle_shutdown(request); end # @api private # - # source://rubocop//lib/rubocop/lsp/routes.rb#148 + # source://rubocop//lib/rubocop/lsp/routes.rb#159 def handle_unsupported_method(request, method = T.unsafe(nil)); end private # @api private # - # source://rubocop//lib/rubocop/lsp/routes.rb#193 + # source://rubocop//lib/rubocop/lsp/routes.rb#208 def diagnostic(file_uri, text); end # @api private # - # source://rubocop//lib/rubocop/lsp/routes.rb#173 - def format_file(file_uri); end + # source://rubocop//lib/rubocop/lsp/routes.rb#178 + def extract_initialization_options_from(request); end # @api private # - # source://rubocop//lib/rubocop/lsp/routes.rb#207 - def remove_file_protocol_from(uri); end + # source://rubocop//lib/rubocop/lsp/routes.rb#188 + def format_file(file_uri, command: T.unsafe(nil)); end # @api private - # @return [Boolean] # - # source://rubocop//lib/rubocop/lsp/routes.rb#167 - def safe_autocorrect?(request); end + # source://rubocop//lib/rubocop/lsp/routes.rb#222 + def remove_file_protocol_from(uri); end # @api private # - # source://rubocop//lib/rubocop/lsp/routes.rb#211 + # source://rubocop//lib/rubocop/lsp/routes.rb#226 def to_diagnostic(offense); end # @api private # - # source://rubocop//lib/rubocop/lsp/routes.rb#223 + # source://rubocop//lib/rubocop/lsp/routes.rb#238 def to_range(location); end class << self @@ -54249,12 +54872,22 @@ class RuboCop::Lsp::Runtime # # @api private # - # source://rubocop//lib/rubocop/lsp/runtime.rb#36 - def format(path, text); end + # source://rubocop//lib/rubocop/lsp/runtime.rb#38 + def format(path, text, command:); end + + # @api private + # + # source://rubocop//lib/rubocop/lsp/runtime.rb#17 + def layout_mode=(_arg0); end # @api private # - # source://rubocop//lib/rubocop/lsp/runtime.rb#46 + # source://rubocop//lib/rubocop/lsp/runtime.rb#17 + def lint_mode=(_arg0); end + + # @api private + # + # source://rubocop//lib/rubocop/lsp/runtime.rb#55 def offenses(path, text); end # @api private @@ -54266,12 +54899,17 @@ class RuboCop::Lsp::Runtime # @api private # - # source://rubocop//lib/rubocop/lsp/runtime.rb#67 + # source://rubocop//lib/rubocop/lsp/runtime.rb#77 + def config_only_options; end + + # @api private + # + # source://rubocop//lib/rubocop/lsp/runtime.rb#84 def redirect_stdout(&block); end # @api private # - # source://rubocop//lib/rubocop/lsp/runtime.rb#75 + # source://rubocop//lib/rubocop/lsp/runtime.rb#92 def run_rubocop(options, path); end end @@ -54290,12 +54928,12 @@ class RuboCop::Lsp::Server # @api private # # source://rubocop//lib/rubocop/lsp/server.rb#56 - def configure(safe_autocorrect: T.unsafe(nil)); end + def configure(options); end # @api private # # source://rubocop//lib/rubocop/lsp/server.rb#48 - def format(path, text); end + def format(path, text, command:); end # @api private # @@ -54309,7 +54947,7 @@ class RuboCop::Lsp::Server # @api private # - # source://rubocop//lib/rubocop/lsp/server.rb#60 + # source://rubocop//lib/rubocop/lsp/server.rb#62 def stop(&block); end # @api private @@ -54543,12 +55181,12 @@ RuboCop::MagicComment::KEYWORDS = T.let(T.unsafe(nil), Hash) class RuboCop::MagicComment::SimpleComment < ::RuboCop::MagicComment # Match `encoding` or `coding` # - # source://rubocop//lib/rubocop/magic_comment.rb#263 + # source://rubocop//lib/rubocop/magic_comment.rb#265 def encoding; end # Rewrite the comment without a given token type # - # source://rubocop//lib/rubocop/magic_comment.rb#268 + # source://rubocop//lib/rubocop/magic_comment.rb#270 def without(type); end private @@ -54562,22 +55200,25 @@ class RuboCop::MagicComment::SimpleComment < ::RuboCop::MagicComment # # @see https://github.com/ruby/ruby/blob/78b95b4/parse.y#L7134-L7138 # - # source://rubocop//lib/rubocop/magic_comment.rb#285 + # source://rubocop//lib/rubocop/magic_comment.rb#287 def extract_frozen_string_literal; end - # source://rubocop//lib/rubocop/magic_comment.rb#289 + # source://rubocop//lib/rubocop/magic_comment.rb#291 def extract_shareable_constant_value; end - # source://rubocop//lib/rubocop/magic_comment.rb#293 + # source://rubocop//lib/rubocop/magic_comment.rb#295 def extract_typed; end end +# source://rubocop//lib/rubocop/magic_comment.rb#262 +RuboCop::MagicComment::SimpleComment::FSTRING_LITERAL_COMMENT = T.let(T.unsafe(nil), String) + # IRB's pattern for matching magic comment tokens. # # @see https://github.com/ruby/ruby/blob/b4a55c1/lib/irb/magic-file.rb#L5 # # source://rubocop//lib/rubocop/magic_comment.rb#10 -RuboCop::MagicComment::TOKEN = T.let(T.unsafe(nil), Regexp) +RuboCop::MagicComment::TOKEN = T.let(T.unsafe(nil), String) # Wrapper for Vim style magic comments. # @@ -55215,7 +55856,7 @@ class RuboCop::ResultCache # # @api private # - # source://rubocop//lib/rubocop/result_cache.rb#233 + # source://rubocop//lib/rubocop/result_cache.rb#237 def context_checksum(team, options); end # @api private @@ -55234,7 +55875,7 @@ class RuboCop::ResultCache # # @api private # - # source://rubocop//lib/rubocop/result_cache.rb#217 + # source://rubocop//lib/rubocop/result_cache.rb#221 def relevant_options_digest(options); end # The checksum of the RuboCop program running the inspection. @@ -55260,7 +55901,7 @@ class RuboCop::ResultCache # # @api private # - # source://rubocop//lib/rubocop/result_cache.rb#224 + # source://rubocop//lib/rubocop/result_cache.rb#228 def team_checksum(team); end class << self @@ -55449,7 +56090,7 @@ class RuboCop::Runner # source://rubocop//lib/rubocop/runner.rb#414 def formatter_set; end - # source://rubocop//lib/rubocop/runner.rb#468 + # source://rubocop//lib/rubocop/runner.rb#470 def get_processed_source(file); end # source://rubocop//lib/rubocop/runner.rb#342 @@ -55500,7 +56141,7 @@ class RuboCop::Runner # otherwise dormant team that can be used for config- and option- # level caching in ResultCache. # - # source://rubocop//lib/rubocop/runner.rb#490 + # source://rubocop//lib/rubocop/runner.rb#492 def standby_team(config); end # @return [Boolean] @@ -55612,18 +56253,18 @@ class RuboCop::TargetFinder # @api private # - # source://rubocop//lib/rubocop/target_finder.rb#145 + # source://rubocop//lib/rubocop/target_finder.rb#149 def all_cops_include; end # @api private # - # source://rubocop//lib/rubocop/target_finder.rb#116 + # source://rubocop//lib/rubocop/target_finder.rb#120 def combined_exclude_glob_patterns(base_dir); end # @api private # @return [Boolean] # - # source://rubocop//lib/rubocop/target_finder.rb#172 + # source://rubocop//lib/rubocop/target_finder.rb#176 def configured_include?(file); end # @api private @@ -55668,63 +56309,63 @@ class RuboCop::TargetFinder # @api private # @return [Boolean] # - # source://rubocop//lib/rubocop/target_finder.rb#176 + # source://rubocop//lib/rubocop/target_finder.rb#180 def included_file?(file); end # @api private # - # source://rubocop//lib/rubocop/target_finder.rb#180 + # source://rubocop//lib/rubocop/target_finder.rb#184 def process_explicit_path(path, mode); end # @api private # @return [Boolean] # - # source://rubocop//lib/rubocop/target_finder.rb#149 + # source://rubocop//lib/rubocop/target_finder.rb#153 def ruby_executable?(file); end # @api private # @return [Boolean] # - # source://rubocop//lib/rubocop/target_finder.rb#123 + # source://rubocop//lib/rubocop/target_finder.rb#127 def ruby_extension?(file); end # @api private # - # source://rubocop//lib/rubocop/target_finder.rb#127 + # source://rubocop//lib/rubocop/target_finder.rb#131 def ruby_extensions; end # @api private # @return [Boolean] # - # source://rubocop//lib/rubocop/target_finder.rb#168 + # source://rubocop//lib/rubocop/target_finder.rb#172 def ruby_file?(file); end # @api private # @return [Boolean] # - # source://rubocop//lib/rubocop/target_finder.rb#134 + # source://rubocop//lib/rubocop/target_finder.rb#138 def ruby_filename?(file); end # @api private # - # source://rubocop//lib/rubocop/target_finder.rb#138 + # source://rubocop//lib/rubocop/target_finder.rb#142 def ruby_filenames; end # @api private # - # source://rubocop//lib/rubocop/target_finder.rb#160 + # source://rubocop//lib/rubocop/target_finder.rb#164 def ruby_interpreters(file); end # @api private # @return [Boolean] # - # source://rubocop//lib/rubocop/target_finder.rb#164 + # source://rubocop//lib/rubocop/target_finder.rb#168 def stdin?; end # @api private # @return [Boolean] # - # source://rubocop//lib/rubocop/target_finder.rb#108 + # source://rubocop//lib/rubocop/target_finder.rb#112 def symlink_excluded_or_infinite_loop?(base_dir, current_dir, exclude_pattern, flags); end # Finds all Ruby source files under the current or other supplied @@ -55757,7 +56398,7 @@ class RuboCop::TargetFinder # @api private # - # source://rubocop//lib/rubocop/target_finder.rb#197 + # source://rubocop//lib/rubocop/target_finder.rb#201 def order; end end @@ -55775,34 +56416,34 @@ class RuboCop::TargetRuby # @api private # @return [TargetRuby] a new instance of TargetRuby # - # source://rubocop//lib/rubocop/target_ruby.rb#248 + # source://rubocop//lib/rubocop/target_ruby.rb#252 def initialize(config); end # @api private # - # source://rubocop//lib/rubocop/target_ruby.rb#264 + # source://rubocop//lib/rubocop/target_ruby.rb#268 def rubocop_version_with_support; end # @api private # - # source://rubocop//lib/rubocop/target_ruby.rb#252 + # source://rubocop//lib/rubocop/target_ruby.rb#256 def source; end # @api private # @return [Boolean] # - # source://rubocop//lib/rubocop/target_ruby.rb#260 + # source://rubocop//lib/rubocop/target_ruby.rb#264 def supported?; end # @api private # - # source://rubocop//lib/rubocop/target_ruby.rb#256 + # source://rubocop//lib/rubocop/target_ruby.rb#260 def version; end class << self # @api private # - # source://rubocop//lib/rubocop/target_ruby.rb#234 + # source://rubocop//lib/rubocop/target_ruby.rb#238 def supported_versions; end end end @@ -55840,18 +56481,18 @@ RuboCop::TargetRuby::DEFAULT_VERSION = T.let(T.unsafe(nil), Float) # # @api private # -# source://rubocop//lib/rubocop/target_ruby.rb#222 +# source://rubocop//lib/rubocop/target_ruby.rb#226 class RuboCop::TargetRuby::Default < ::RuboCop::TargetRuby::Source # @api private # - # source://rubocop//lib/rubocop/target_ruby.rb#223 + # source://rubocop//lib/rubocop/target_ruby.rb#227 def name; end private # @api private # - # source://rubocop//lib/rubocop/target_ruby.rb#229 + # source://rubocop//lib/rubocop/target_ruby.rb#233 def find_version; end end @@ -55864,11 +56505,11 @@ class RuboCop::TargetRuby::GemspecFile < ::RuboCop::TargetRuby::Source extend ::RuboCop::AST::NodePattern::Macros # source://rubocop//lib/rubocop/target_ruby.rb#159 - def gem_requirement?(param0 = T.unsafe(nil)); end + def gem_requirement_versions(param0 = T.unsafe(nil)); end # @api private # - # source://rubocop//lib/rubocop/target_ruby.rb#163 + # source://rubocop//lib/rubocop/target_ruby.rb#165 def name; end # source://rubocop//lib/rubocop/target_ruby.rb#154 @@ -55878,37 +56519,37 @@ class RuboCop::TargetRuby::GemspecFile < ::RuboCop::TargetRuby::Source # @api private # - # source://rubocop//lib/rubocop/target_ruby.rb#210 + # source://rubocop//lib/rubocop/target_ruby.rb#214 def find_default_minimal_known_ruby(right_hand_side); end # @api private # - # source://rubocop//lib/rubocop/target_ruby.rb#169 + # source://rubocop//lib/rubocop/target_ruby.rb#171 def find_version; end # @api private # - # source://rubocop//lib/rubocop/target_ruby.rb#179 + # source://rubocop//lib/rubocop/target_ruby.rb#181 def gemspec_filename; end # @api private # - # source://rubocop//lib/rubocop/target_ruby.rb#186 + # source://rubocop//lib/rubocop/target_ruby.rb#188 def gemspec_filepath; end # @api private # - # source://rubocop//lib/rubocop/target_ruby.rb#206 + # source://rubocop//lib/rubocop/target_ruby.rb#210 def version_from_array(array); end # @api private # - # source://rubocop//lib/rubocop/target_ruby.rb#191 + # source://rubocop//lib/rubocop/target_ruby.rb#193 def version_from_gemspec_file(file); end # @api private # - # source://rubocop//lib/rubocop/target_ruby.rb#196 + # source://rubocop//lib/rubocop/target_ruby.rb#198 def version_from_right_hand_side(right_hand_side); end end @@ -55992,7 +56633,7 @@ RuboCop::TargetRuby::RubyVersionFile::RUBY_VERSION_PATTERN = T.let(T.unsafe(nil) # @api private # -# source://rubocop//lib/rubocop/target_ruby.rb#238 +# source://rubocop//lib/rubocop/target_ruby.rb#242 RuboCop::TargetRuby::SOURCES = T.let(T.unsafe(nil), Array) # A place where information about a target ruby version is found. diff --git a/sorbet/rbi/gems/spoom@1.2.1.rbi b/sorbet/rbi/gems/spoom@1.2.4.rbi similarity index 61% rename from sorbet/rbi/gems/spoom@1.2.1.rbi rename to sorbet/rbi/gems/spoom@1.2.4.rbi index 9393e9b4..e3bba97e 100644 --- a/sorbet/rbi/gems/spoom@1.2.1.rbi +++ b/sorbet/rbi/gems/spoom@1.2.4.rbi @@ -221,22 +221,22 @@ class Spoom::Cli::Main < ::Thor # source://spoom//lib/spoom/cli.rb#61 def __print_version; end - # source://thor/1.2.2/lib/thor.rb#239 + # source://thor/1.3.0/lib/thor.rb#334 def bump(*args); end - # source://thor/1.2.2/lib/thor.rb#239 + # source://thor/1.3.0/lib/thor.rb#334 def config(*args); end - # source://thor/1.2.2/lib/thor.rb#239 + # source://thor/1.3.0/lib/thor.rb#334 def coverage(*args); end # source://spoom//lib/spoom/cli.rb#43 def files; end - # source://thor/1.2.2/lib/thor.rb#239 + # source://thor/1.3.0/lib/thor.rb#334 def lsp(*args); end - # source://thor/1.2.2/lib/thor.rb#239 + # source://thor/1.3.0/lib/thor.rb#334 def tc(*args); end class << self @@ -359,19 +359,19 @@ module Spoom::Context::Bundle # Run a command with `bundle` in this context directory # - # source://spoom//lib/spoom/context/bundle.rb#27 + # source://spoom//lib/spoom/context/bundle.rb#33 sig { params(command: ::String, version: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) } def bundle(command, version: T.unsafe(nil), capture_err: T.unsafe(nil)); end # Run a command `bundle exec` in this context directory # - # source://spoom//lib/spoom/context/bundle.rb#40 + # source://spoom//lib/spoom/context/bundle.rb#46 sig { params(command: ::String, version: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) } def bundle_exec(command, version: T.unsafe(nil), capture_err: T.unsafe(nil)); end # Run `bundle install` in this context directory # - # source://spoom//lib/spoom/context/bundle.rb#34 + # source://spoom//lib/spoom/context/bundle.rb#40 sig { params(version: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) } def bundle_install!(version: T.unsafe(nil), capture_err: T.unsafe(nil)); end @@ -379,19 +379,29 @@ module Spoom::Context::Bundle # # Returns `nil` if `gem` cannot be found in the Gemfile. # - # source://spoom//lib/spoom/context/bundle.rb#48 + # source://spoom//lib/spoom/context/bundle.rb#62 sig { params(gem: ::String).returns(T.nilable(::String)) } def gem_version_from_gemfile_lock(gem); end - # Read the `contents` of the Gemfile in this context directory + # source://spoom//lib/spoom/context/bundle.rb#51 + sig { returns(T::Hash[::String, ::Bundler::LazySpecification]) } + def gemfile_lock_specs; end + + # Read the contents of the Gemfile in this context directory # # source://spoom//lib/spoom/context/bundle.rb#15 sig { returns(T.nilable(::String)) } def read_gemfile; end - # Set the `contents` of the Gemfile in this context directory + # Read the contents of the Gemfile.lock in this context directory # # source://spoom//lib/spoom/context/bundle.rb#21 + sig { returns(T.nilable(::String)) } + def read_gemfile_lock; end + + # Set the `contents` of the Gemfile in this context directory + # + # source://spoom//lib/spoom/context/bundle.rb#27 sig { params(contents: ::String, append: T::Boolean).void } def write_gemfile!(contents, append: T.unsafe(nil)); end end @@ -421,11 +431,21 @@ module Spoom::Context::FileSystem sig { params(relative_path: ::String).returns(::String) } def absolute_path_to(relative_path); end + # source://spoom//lib/spoom/context/file_system.rb#53 + sig do + params( + allow_extensions: T::Array[::String], + allow_mime_types: T::Array[::String], + exclude_patterns: T::Array[::String] + ).returns(T::Array[::String]) + end + def collect_files(allow_extensions: T.unsafe(nil), allow_mime_types: T.unsafe(nil), exclude_patterns: T.unsafe(nil)); end + # Delete this context and its content # # Warning: it will `rm -rf` the context directory on the file system. # - # source://spoom//lib/spoom/context/file_system.rb#88 + # source://spoom//lib/spoom/context/file_system.rb#105 sig { void } def destroy!; end @@ -437,7 +457,7 @@ module Spoom::Context::FileSystem # Does `relative_path` point to an existing file in this context directory? # - # source://spoom//lib/spoom/context/file_system.rb#48 + # source://spoom//lib/spoom/context/file_system.rb#65 sig { params(relative_path: ::String).returns(T::Boolean) } def file?(relative_path); end @@ -461,7 +481,7 @@ module Spoom::Context::FileSystem # Move the file or directory from `from_relative_path` to `to_relative_path` # - # source://spoom//lib/spoom/context/file_system.rb#78 + # source://spoom//lib/spoom/context/file_system.rb#95 sig { params(from_relative_path: ::String, to_relative_path: ::String).void } def move!(from_relative_path, to_relative_path); end @@ -469,13 +489,13 @@ module Spoom::Context::FileSystem # # Will raise if the file doesn't exist. # - # source://spoom//lib/spoom/context/file_system.rb#56 + # source://spoom//lib/spoom/context/file_system.rb#73 sig { params(relative_path: ::String).returns(::String) } def read(relative_path); end # Remove the path at `relative_path` (recursive + force) in this context directory # - # source://spoom//lib/spoom/context/file_system.rb#72 + # source://spoom//lib/spoom/context/file_system.rb#89 sig { params(relative_path: ::String).void } def remove!(relative_path); end @@ -483,7 +503,7 @@ module Spoom::Context::FileSystem # # Append to the file if `append` is true. # - # source://spoom//lib/spoom/context/file_system.rb#64 + # source://spoom//lib/spoom/context/file_system.rb#81 sig { params(relative_path: ::String, contents: ::String, append: T::Boolean).void } def write!(relative_path, contents = T.unsafe(nil), append: T.unsafe(nil)); end end @@ -506,21 +526,27 @@ module Spoom::Context::Git sig { params(ref: ::String).returns(::Spoom::ExecResult) } def git_checkout!(ref: T.unsafe(nil)); end - # Run `git add . && git commit` in this context directory + # Run `git checkout -b ` in this context directory # # source://spoom//lib/spoom/context/git.rb#68 - sig { params(message: ::String, time: ::Time, allow_empty: T::Boolean).void } + sig { params(branch_name: ::String, ref: T.nilable(::String)).returns(::Spoom::ExecResult) } + def git_checkout_new_branch!(branch_name, ref: T.unsafe(nil)); end + + # Run `git add . && git commit` in this context directory + # + # source://spoom//lib/spoom/context/git.rb#78 + sig { params(message: ::String, time: ::Time, allow_empty: T::Boolean).returns(::Spoom::ExecResult) } def git_commit!(message: T.unsafe(nil), time: T.unsafe(nil), allow_empty: T.unsafe(nil)); end # Get the current git branch in this context directory # - # source://spoom//lib/spoom/context/git.rb#79 + # source://spoom//lib/spoom/context/git.rb#89 sig { returns(T.nilable(::String)) } def git_current_branch; end # Run `git diff` in this context directory # - # source://spoom//lib/spoom/context/git.rb#88 + # source://spoom//lib/spoom/context/git.rb#98 sig { params(arg: ::String).returns(::Spoom::ExecResult) } def git_diff(*arg); end @@ -535,21 +561,27 @@ module Spoom::Context::Git # Get the last commit in the currently checked out branch # - # source://spoom//lib/spoom/context/git.rb#94 + # source://spoom//lib/spoom/context/git.rb#104 sig { params(short_sha: T::Boolean).returns(T.nilable(::Spoom::Git::Commit)) } def git_last_commit(short_sha: T.unsafe(nil)); end - # source://spoom//lib/spoom/context/git.rb#105 + # source://spoom//lib/spoom/context/git.rb#115 sig { params(arg: ::String).returns(::Spoom::ExecResult) } def git_log(*arg); end - # source://spoom//lib/spoom/context/git.rb#110 + # Run `git push ` in this context directory + # + # source://spoom//lib/spoom/context/git.rb#121 + sig { params(remote: ::String, ref: ::String, force: T::Boolean).returns(::Spoom::ExecResult) } + def git_push!(remote, ref, force: T.unsafe(nil)); end + + # source://spoom//lib/spoom/context/git.rb#126 sig { params(arg: ::String).returns(::Spoom::ExecResult) } def git_show(*arg); end # Is there uncommited changes in this context directory? # - # source://spoom//lib/spoom/context/git.rb#116 + # source://spoom//lib/spoom/context/git.rb#132 sig { params(path: ::String).returns(T::Boolean) } def git_workdir_clean?(path: T.unsafe(nil)); end end @@ -562,35 +594,35 @@ module Spoom::Context::Sorbet # Does this context has a `sorbet/config` file? # - # source://spoom//lib/spoom/context/sorbet.rb#102 + # source://spoom//lib/spoom/context/sorbet.rb#119 sig { returns(T::Boolean) } def has_sorbet_config?; end # Read the strictness sigil from the file at `relative_path` (returns `nil` if no sigil) # - # source://spoom//lib/spoom/context/sorbet.rb#125 + # source://spoom//lib/spoom/context/sorbet.rb#142 sig { params(relative_path: ::String).returns(T.nilable(::String)) } def read_file_strictness(relative_path); end # Read the contents of `sorbet/config` in this context directory # - # source://spoom//lib/spoom/context/sorbet.rb#113 + # source://spoom//lib/spoom/context/sorbet.rb#130 sig { returns(::String) } def read_sorbet_config; end - # source://spoom//lib/spoom/context/sorbet.rb#107 + # source://spoom//lib/spoom/context/sorbet.rb#124 sig { returns(::Spoom::Sorbet::Config) } def sorbet_config; end # Get the commit introducing the `sorbet/config` file # - # source://spoom//lib/spoom/context/sorbet.rb#131 + # source://spoom//lib/spoom/context/sorbet.rb#148 sig { returns(T.nilable(::Spoom::Git::Commit)) } def sorbet_intro_commit; end # Get the commit removing the `sorbet/config` file # - # source://spoom//lib/spoom/context/sorbet.rb#143 + # source://spoom//lib/spoom/context/sorbet.rb#160 sig { returns(T.nilable(::Spoom::Git::Commit)) } def sorbet_removal_commit; end @@ -608,7 +640,7 @@ module Spoom::Context::Sorbet # List all files typechecked by Sorbet from its `config` that matches `strictness` # - # source://spoom//lib/spoom/context/sorbet.rb#87 + # source://spoom//lib/spoom/context/sorbet.rb#104 sig do params( strictness: ::String, @@ -632,13 +664,13 @@ module Spoom::Context::Sorbet sig { params(arg: ::String, sorbet_bin: T.nilable(::String), capture_err: T::Boolean).returns(::Spoom::ExecResult) } def srb_tc(*arg, sorbet_bin: T.unsafe(nil), capture_err: T.unsafe(nil)); end - # source://spoom//lib/spoom/context/sorbet.rb#93 + # source://spoom//lib/spoom/context/sorbet.rb#110 sig { params(arg: ::String, sorbet_bin: T.nilable(::String), capture_err: T::Boolean).returns(T.nilable(::String)) } def srb_version(*arg, sorbet_bin: T.unsafe(nil), capture_err: T.unsafe(nil)); end # Set the `contents` of `sorbet/config` in this context directory # - # source://spoom//lib/spoom/context/sorbet.rb#119 + # source://spoom//lib/spoom/context/sorbet.rb#136 sig { params(contents: ::String, append: T::Boolean).void } def write_sorbet_config!(contents, append: T.unsafe(nil)); end end @@ -713,11 +745,6 @@ class Spoom::Coverage::Cards::Erb < ::Spoom::Coverage::Cards::Card # source://spoom//lib/spoom/coverage/report.rb#115 sig { override.returns(::String) } def html; end - - class << self - # source://sorbet-runtime/0.5.10875/lib/types/private/abstract/declare.rb#37 - def new(*args, **_arg1, &blk); end - end end # source://spoom//lib/spoom/coverage/report.rb#153 @@ -869,9 +896,6 @@ class Spoom::Coverage::D3::Base # source://spoom//lib/spoom/coverage/d3/base.rb#26 sig { returns(::String) } def header_style; end - - # source://sorbet-runtime/0.5.10875/lib/types/private/abstract/declare.rb#37 - def new(*args, **_arg1, &blk); end end end @@ -934,7 +958,7 @@ class Spoom::Coverage::D3::ColorPalette < ::T::Struct prop :strong, ::String class << self - # source://sorbet-runtime/0.5.10875/lib/types/struct.rb#13 + # source://sorbet-runtime/0.5.11143/lib/types/struct.rb#13 def inherited(s); end end end @@ -961,9 +985,6 @@ class Spoom::Coverage::D3::Pie < ::Spoom::Coverage::D3::Base # source://spoom//lib/spoom/coverage/d3/pie.rb#25 sig { returns(::String) } def header_style; end - - # source://sorbet-runtime/0.5.10875/lib/types/private/abstract/declare.rb#37 - def new(*args, **_arg1, &blk); end end end @@ -1056,9 +1077,6 @@ class Spoom::Coverage::D3::Timeline < ::Spoom::Coverage::D3::Base # source://spoom//lib/spoom/coverage/d3/timeline.rb#25 sig { returns(::String) } def header_style; end - - # source://sorbet-runtime/0.5.10875/lib/types/private/abstract/declare.rb#37 - def new(*args, **_arg1, &blk); end end end @@ -1150,11 +1168,6 @@ class Spoom::Coverage::D3::Timeline::Stacked < ::Spoom::Coverage::D3::Timeline # source://spoom//lib/spoom/coverage/d3/timeline.rb#336 sig { override.returns(::String) } def script; end - - class << self - # source://sorbet-runtime/0.5.10875/lib/types/private/abstract/declare.rb#37 - def new(*args, **_arg1, &blk); end - end end # source://spoom//lib/spoom/coverage/d3/timeline.rb#232 @@ -1215,11 +1228,6 @@ class Spoom::Coverage::Page < ::Spoom::Coverage::Template # source://spoom//lib/spoom/coverage/report.rb#47 sig { returns(::String) } def title; end - - class << self - # source://sorbet-runtime/0.5.10875/lib/types/private/abstract/declare.rb#37 - def new(*args, **_arg1, &blk); end - end end # source://spoom//lib/spoom/coverage/report.rb#44 @@ -1290,7 +1298,7 @@ class Spoom::Coverage::Snapshot < ::T::Struct sig { params(obj: T::Hash[::String, T.untyped]).returns(::Spoom::Coverage::Snapshot) } def from_obj(obj); end - # source://sorbet-runtime/0.5.10875/lib/types/struct.rb#13 + # source://sorbet-runtime/0.5.11143/lib/types/struct.rb#13 def inherited(s); end end end @@ -1340,10 +1348,1253 @@ class Spoom::Coverage::Template # source://spoom//lib/spoom/coverage/report.rb#28 sig { returns(::String) } def html; end +end + +# source://spoom//lib/spoom/deadcode/erb.rb#27 +module Spoom::Deadcode + class << self + # source://spoom//lib/spoom/deadcode.rb#51 + sig do + params( + index: ::Spoom::Deadcode::Index, + erb: ::String, + file: ::String, + plugins: T::Array[::Spoom::Deadcode::Plugins::Base] + ).void + end + def index_erb(index, erb, file:, plugins: T.unsafe(nil)); end + + # source://spoom//lib/spoom/deadcode.rb#40 + sig do + params( + index: ::Spoom::Deadcode::Index, + ruby: ::String, + file: ::String, + plugins: T::Array[::Spoom::Deadcode::Plugins::Base] + ).void + end + def index_ruby(index, ruby, file:, plugins: T.unsafe(nil)); end + + # source://spoom//lib/spoom/deadcode/plugins.rb#74 + sig { params(context: ::Spoom::Context).returns(T::Array[::Spoom::Deadcode::Plugins::Base]) } + def load_custom_plugins(context); end + + # source://spoom//lib/spoom/deadcode/plugins.rb#60 + sig { params(context: ::Spoom::Context).returns(T::Array[::Spoom::Deadcode::Plugins::Base]) } + def plugins_from_gemfile_lock(context); end + end +end + +# source://spoom//lib/spoom/deadcode/plugins.rb#25 +Spoom::Deadcode::DEFAULT_CUSTOM_PLUGINS_PATH = T.let(T.unsafe(nil), String) + +# source://spoom//lib/spoom/deadcode/plugins.rb#27 +Spoom::Deadcode::DEFAULT_PLUGINS = T.let(T.unsafe(nil), Set) + +# A definition is a class, module, method, constant, etc. being defined in the code +# +# source://spoom//lib/spoom/deadcode/definition.rb#7 +class Spoom::Deadcode::Definition < ::T::Struct + const :kind, ::Spoom::Deadcode::Definition::Kind + const :name, ::String + const :full_name, ::String + const :location, ::Spoom::Deadcode::Location + const :status, ::Spoom::Deadcode::Definition::Status, default: T.unsafe(nil) + + # source://spoom//lib/spoom/deadcode/definition.rb#78 + sig { void } + def alive!; end + + # Status + # + # source://spoom//lib/spoom/deadcode/definition.rb#73 + sig { returns(T::Boolean) } + def alive?; end + + # Kind + # + # source://spoom//lib/spoom/deadcode/definition.rb#41 + sig { returns(T::Boolean) } + def attr_reader?; end + + # source://spoom//lib/spoom/deadcode/definition.rb#46 + sig { returns(T::Boolean) } + def attr_writer?; end + + # source://spoom//lib/spoom/deadcode/definition.rb#51 + sig { returns(T::Boolean) } + def class?; end + + # source://spoom//lib/spoom/deadcode/definition.rb#56 + sig { returns(T::Boolean) } + def constant?; end + + # source://spoom//lib/spoom/deadcode/definition.rb#83 + sig { returns(T::Boolean) } + def dead?; end + + # source://spoom//lib/spoom/deadcode/definition.rb#93 + sig { void } + def ignored!; end + + # source://spoom//lib/spoom/deadcode/definition.rb#88 + sig { returns(T::Boolean) } + def ignored?; end + + # source://spoom//lib/spoom/deadcode/definition.rb#61 + sig { returns(T::Boolean) } + def method?; end + + # source://spoom//lib/spoom/deadcode/definition.rb#66 + sig { returns(T::Boolean) } + def module?; end + + class << self + # source://sorbet-runtime/0.5.11143/lib/types/struct.rb#13 + def inherited(s); end + end +end + +# source://spoom//lib/spoom/deadcode/definition.rb#10 +class Spoom::Deadcode::Definition::Kind < ::T::Enum + enums do + AttrReader = new + AttrWriter = new + Class = new + Constant = new + Method = new + Module = new + end +end + +# source://spoom//lib/spoom/deadcode/definition.rb#21 +class Spoom::Deadcode::Definition::Status < ::T::Enum + enums do + ALIVE = new + DEAD = new + IGNORED = new + end +end + +# Custom engine to handle ERB templates as used by Rails +# +# source://spoom//lib/spoom/deadcode/erb.rb#29 +class Spoom::Deadcode::ERB < ::Erubi::Engine + # source://spoom//lib/spoom/deadcode/erb.rb#33 + sig { params(input: T.untyped, properties: T.untyped).void } + def initialize(input, properties = T.unsafe(nil)); end + + private + + # source://spoom//lib/spoom/deadcode/erb.rb#83 + sig { override.params(code: T.untyped).void } + def add_code(code); end + + # source://spoom//lib/spoom/deadcode/erb.rb#66 + sig { override.params(indicator: T.untyped, code: T.untyped).void } + def add_expression(indicator, code); end + + # source://spoom//lib/spoom/deadcode/erb.rb#89 + sig { override.params(_: T.untyped).void } + def add_postamble(_); end + + # source://spoom//lib/spoom/deadcode/erb.rb#48 + sig { override.params(text: T.untyped).void } + def add_text(text); end + + # source://spoom//lib/spoom/deadcode/erb.rb#95 + sig { params(src: T.untyped).void } + def flush_newline_if_pending(src); end +end + +# source://spoom//lib/spoom/deadcode/erb.rb#63 +Spoom::Deadcode::ERB::BLOCK_EXPR = T.let(T.unsafe(nil), Regexp) + +# @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below. +# +# source://spoom//lib/spoom/deadcode.rb#20 +class Spoom::Deadcode::Error < ::Spoom::Error + abstract! + + # source://spoom//lib/spoom/deadcode.rb#27 + sig { params(message: ::String, parent: ::Exception).void } + def initialize(message, parent:); end +end + +# source://spoom//lib/spoom/deadcode/index.rb#6 +class Spoom::Deadcode::Index + # source://spoom//lib/spoom/deadcode/index.rb#16 + sig { void } + def initialize; end + + # source://spoom//lib/spoom/deadcode/index.rb#51 + sig { returns(T::Array[::Spoom::Deadcode::Definition]) } + def all_definitions; end + + # source://spoom//lib/spoom/deadcode/index.rb#56 + sig { returns(T::Array[::Spoom::Deadcode::Reference]) } + def all_references; end + + # Indexing + # + # source://spoom//lib/spoom/deadcode/index.rb#24 + sig { params(definition: ::Spoom::Deadcode::Definition).void } + def define(definition); end + + # source://spoom//lib/spoom/deadcode/index.rb#10 + sig { returns(T::Hash[::String, T::Array[::Spoom::Deadcode::Definition]]) } + def definitions; end + + # Utils + # + # source://spoom//lib/spoom/deadcode/index.rb#46 + sig { params(name: ::String).returns(T::Array[::Spoom::Deadcode::Definition]) } + def definitions_for_name(name); end + + # Mark all definitions having a reference of the same name as `alive` + # + # To be called once all the files have been indexed and all the definitions and references discovered. + # + # source://spoom//lib/spoom/deadcode/index.rb#37 + sig { void } + def finalize!; end + + # source://spoom//lib/spoom/deadcode/index.rb#29 + sig { params(reference: ::Spoom::Deadcode::Reference).void } + def reference(reference); end + + # source://spoom//lib/spoom/deadcode/index.rb#13 + sig { returns(T::Hash[::String, T::Array[::Spoom::Deadcode::Reference]]) } + def references; end +end + +# source://spoom//lib/spoom/deadcode/indexer.rb#6 +class Spoom::Deadcode::Indexer < ::SyntaxTree::Visitor + # source://spoom//lib/spoom/deadcode/indexer.rb#16 + sig do + params( + path: ::String, + source: ::String, + index: ::Spoom::Deadcode::Index, + plugins: T::Array[::Spoom::Deadcode::Plugins::Base] + ).void + end + def initialize(path, source, index, plugins: T.unsafe(nil)); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#459 + sig do + params( + node: T.nilable(T.any(::SyntaxTree::ArgParen, ::SyntaxTree::Args, ::SyntaxTree::ArgsForward)) + ).returns(T::Array[::SyntaxTree::Node]) + end + def call_args(node); end + + # Context + # + # source://spoom//lib/spoom/deadcode/indexer.rb#367 + sig { returns(::SyntaxTree::Node) } + def current_node; end + + # Definition indexing + # + # source://spoom//lib/spoom/deadcode/indexer.rb#281 + sig { params(name: ::String, full_name: ::String, node: ::SyntaxTree::Node).void } + def define_attr_reader(name, full_name, node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#293 + sig { params(name: ::String, full_name: ::String, node: ::SyntaxTree::Node).void } + def define_attr_writer(name, full_name, node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#305 + sig { params(name: ::String, full_name: ::String, node: ::SyntaxTree::Node).void } + def define_class(name, full_name, node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#317 + sig { params(name: ::String, full_name: ::String, node: ::SyntaxTree::Node).void } + def define_constant(name, full_name, node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#329 + sig { params(name: ::String, full_name: ::String, node: ::SyntaxTree::Node).void } + def define_method(name, full_name, node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#341 + sig { params(name: ::String, full_name: ::String, node: ::SyntaxTree::Node).void } + def define_module(name, full_name, node); end + + # @return [String] + # + # source://spoom//lib/spoom/deadcode/indexer.rb#10 + def file_name; end + + # source://spoom//lib/spoom/deadcode/indexer.rb#13 + sig { returns(::Spoom::Deadcode::Index) } + def index; end + + # source://spoom//lib/spoom/deadcode/indexer.rb#426 + sig { returns(T.nilable(::String)) } + def last_sig; end + + # source://spoom//lib/spoom/deadcode/indexer.rb#386 + sig { returns(T.nilable(::SyntaxTree::BlockNode)) } + def nesting_block; end + + # source://spoom//lib/spoom/deadcode/indexer.rb#391 + sig { returns(T.nilable(::SyntaxTree::MethodAddBlock)) } + def nesting_block_call; end + + # source://spoom//lib/spoom/deadcode/indexer.rb#396 + sig { returns(T.nilable(::String)) } + def nesting_block_call_name; end + + # source://spoom//lib/spoom/deadcode/indexer.rb#381 + sig { returns(T.nilable(::SyntaxTree::ClassDeclaration)) } + def nesting_class; end + + # source://spoom//lib/spoom/deadcode/indexer.rb#410 + sig { returns(T.nilable(::String)) } + def nesting_class_name; end + + # source://spoom//lib/spoom/deadcode/indexer.rb#418 + sig { returns(T.nilable(::String)) } + def nesting_class_superclass_name; end + + # source://spoom//lib/spoom/deadcode/indexer.rb#372 + sig { type_parameters(:N).params(type: T::Class[T.type_parameter(:N)]).returns(T.nilable(T.type_parameter(:N))) } + def nesting_node(type); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#445 + sig { params(node: ::SyntaxTree::Node).returns(::Spoom::Deadcode::Location) } + def node_location(node); end + + # Node utils + # + # source://spoom//lib/spoom/deadcode/indexer.rb#435 + sig { params(node: T.any(::Symbol, ::SyntaxTree::Node)).returns(::String) } + def node_string(node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#10 + sig { returns(::String) } + def path; end + + # Reference indexing + # + # source://spoom//lib/spoom/deadcode/indexer.rb#355 + sig { params(name: ::String, node: ::SyntaxTree::Node).void } + def reference_constant(name, node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#360 + sig { params(name: ::String, node: ::SyntaxTree::Node).void } + def reference_method(name, node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#450 + sig { params(node: ::SyntaxTree::Node).returns(::String) } + def symbol_string(node); end + + # Visit + # + # source://spoom//lib/spoom/deadcode/indexer.rb#35 + sig { override.params(node: T.nilable(::SyntaxTree::Node)).void } + def visit(node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#45 + sig { override.params(node: ::SyntaxTree::AliasNode).void } + def visit_alias(node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#50 + sig { override.params(node: ::SyntaxTree::ARef).void } + def visit_aref(node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#57 + sig { override.params(node: ::SyntaxTree::ARefField).void } + def visit_aref_field(node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#64 + sig { override.params(node: ::SyntaxTree::ArgBlock).void } + def visit_arg_block(node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#78 + sig { override.params(node: ::SyntaxTree::Binary).void } + def visit_binary(node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#94 + sig { override.params(node: ::SyntaxTree::CallNode).void } + def visit_call(node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#106 + sig { override.params(node: ::SyntaxTree::ClassDeclaration).void } + def visit_class(node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#119 + sig { override.params(node: ::SyntaxTree::Command).void } + def visit_command(node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#131 + sig { override.params(node: ::SyntaxTree::CommandCall).void } + def visit_command_call(node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#144 + sig { override.params(node: ::SyntaxTree::Const).void } + def visit_const(node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#149 + sig { override.params(node: ::SyntaxTree::ConstPathField).void } + def visit_const_path_field(node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#159 + sig { override.params(node: ::SyntaxTree::DefNode).void } + def visit_def(node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#167 + sig { override.params(node: ::SyntaxTree::Field).void } + def visit_field(node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#183 + sig { override.params(node: ::SyntaxTree::ModuleDeclaration).void } + def visit_module(node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#195 + sig { override.params(node: ::SyntaxTree::OpAssign).void } + def visit_opassign(node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#204 + sig { params(send: ::Spoom::Deadcode::Send).void } + def visit_send(send); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#243 + sig { override.params(node: ::SyntaxTree::SymbolLiteral).void } + def visit_symbol_literal(node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#252 + sig { override.params(node: ::SyntaxTree::TopConstField).void } + def visit_top_const_field(node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#257 + sig { override.params(node: ::SyntaxTree::VarField).void } + def visit_var_field(node); end + + # source://spoom//lib/spoom/deadcode/indexer.rb#274 + sig { override.params(node: ::SyntaxTree::VCall).void } + def visit_vcall(node); end +end + +# source://spoom//lib/spoom/deadcode.rb#34 +class Spoom::Deadcode::IndexerError < ::Spoom::Deadcode::Error; end + +# source://spoom//lib/spoom/deadcode/location.rb#6 +class Spoom::Deadcode::Location + include ::Comparable + + # source://spoom//lib/spoom/deadcode/location.rb#54 + sig do + params( + file: ::String, + start_line: ::Integer, + start_column: ::Integer, + end_line: ::Integer, + end_column: ::Integer + ).void + end + def initialize(file, start_line, start_column, end_line, end_column); end + + # source://spoom//lib/spoom/deadcode/location.rb#74 + sig { override.params(other: ::BasicObject).returns(T.nilable(::Integer)) } + def <=>(other); end + + # @return [Integer] + # + # source://spoom//lib/spoom/deadcode/location.rb#43 + def end_column; end + + # @return [Integer] + # + # source://spoom//lib/spoom/deadcode/location.rb#43 + def end_line; end + + # source://spoom//lib/spoom/deadcode/location.rb#40 + sig { returns(::String) } + def file; end + + # source://spoom//lib/spoom/deadcode/location.rb#63 + sig { params(other: ::Spoom::Deadcode::Location).returns(T::Boolean) } + def include?(other); end + + # @return [Integer] + # + # source://spoom//lib/spoom/deadcode/location.rb#43 + def start_column; end + + # source://spoom//lib/spoom/deadcode/location.rb#43 + sig { returns(::Integer) } + def start_line; end + + # source://spoom//lib/spoom/deadcode/location.rb#81 + sig { returns(::String) } + def to_s; end + + class << self + # @raise [LocationError] + # + # source://spoom//lib/spoom/deadcode/location.rb#17 + sig { params(location_string: ::String).returns(::Spoom::Deadcode::Location) } + def from_string(location_string); end + + # source://spoom//lib/spoom/deadcode/location.rb#34 + sig { params(file: ::String, location: ::SyntaxTree::Location).returns(::Spoom::Deadcode::Location) } + def from_syntax_tree(file, location); end + end +end + +# source://spoom//lib/spoom/deadcode/location.rb#11 +class Spoom::Deadcode::Location::LocationError < ::Spoom::Error; end + +# source://spoom//lib/spoom/deadcode/plugins.rb#35 +Spoom::Deadcode::PLUGINS_FOR_GEM = T.let(T.unsafe(nil), Hash) + +# source://spoom//lib/spoom/deadcode.rb#33 +class Spoom::Deadcode::ParserError < ::Spoom::Deadcode::Error; end + +# source://spoom//lib/spoom/deadcode/plugins/base.rb#8 +module Spoom::Deadcode::Plugins; end + +# source://spoom//lib/spoom/deadcode/plugins/action_mailer.rb#7 +class Spoom::Deadcode::Plugins::ActionMailer < ::Spoom::Deadcode::Plugins::Base + # source://spoom//lib/spoom/deadcode/plugins/action_mailer.rb#11 + sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void } + def on_send(indexer, send); end +end + +# source://spoom//lib/spoom/deadcode/plugins/actionpack.rb#7 +class Spoom::Deadcode::Plugins::ActionPack < ::Spoom::Deadcode::Plugins::Base + # source://spoom//lib/spoom/deadcode/plugins/actionpack.rb#31 + sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void } + def on_define_method(indexer, definition); end + + # source://spoom//lib/spoom/deadcode/plugins/actionpack.rb#36 + sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void } + def on_send(indexer, send); end +end + +# source://spoom//lib/spoom/deadcode/plugins/actionpack.rb#10 +Spoom::Deadcode::Plugins::ActionPack::CALLBACKS = T.let(T.unsafe(nil), Array) + +# source://spoom//lib/spoom/deadcode/plugins/active_job.rb#7 +class Spoom::Deadcode::Plugins::ActiveJob < ::Spoom::Deadcode::Plugins::Base; end + +# source://spoom//lib/spoom/deadcode/plugins/active_model.rb#7 +class Spoom::Deadcode::Plugins::ActiveModel < ::Spoom::Deadcode::Plugins::Base + # source://spoom//lib/spoom/deadcode/plugins/active_model.rb#14 + sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void } + def on_send(indexer, send); end +end + +# source://spoom//lib/spoom/deadcode/plugins/active_record.rb#7 +class Spoom::Deadcode::Plugins::ActiveRecord < ::Spoom::Deadcode::Plugins::Base + # source://spoom//lib/spoom/deadcode/plugins/active_record.rb#74 + sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void } + def on_send(indexer, send); end +end + +# source://spoom//lib/spoom/deadcode/plugins/active_record.rb#64 +Spoom::Deadcode::Plugins::ActiveRecord::ARRAY_METHODS = T.let(T.unsafe(nil), Array) + +# source://spoom//lib/spoom/deadcode/plugins/active_record.rb#20 +Spoom::Deadcode::Plugins::ActiveRecord::CALLBACKS = T.let(T.unsafe(nil), Array) + +# source://spoom//lib/spoom/deadcode/plugins/active_record.rb#49 +Spoom::Deadcode::Plugins::ActiveRecord::CRUD_METHODS = T.let(T.unsafe(nil), Array) + +# source://spoom//lib/spoom/deadcode/plugins/active_support.rb#7 +class Spoom::Deadcode::Plugins::ActiveSupport < ::Spoom::Deadcode::Plugins::Base; end + +# @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below. +# +# source://spoom//lib/spoom/deadcode/plugins/base.rb#9 +class Spoom::Deadcode::Plugins::Base + abstract! + + # Do not override this method, use `on_define_accessor` instead. + # + # source://spoom//lib/spoom/deadcode/plugins/base.rb#150 + sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void } + def internal_on_define_accessor(indexer, definition); end + + # Do not override this method, use `on_define_class` instead. + # + # source://spoom//lib/spoom/deadcode/plugins/base.rb#174 + sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void } + def internal_on_define_class(indexer, definition); end + + # Do not override this method, use `on_define_constant` instead. + # + # source://spoom//lib/spoom/deadcode/plugins/base.rb#204 + sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void } + def internal_on_define_constant(indexer, definition); end + + # Do not override this method, use `on_define_method` instead. + # + # source://spoom//lib/spoom/deadcode/plugins/base.rb#232 + sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void } + def internal_on_define_method(indexer, definition); end + + # Do not override this method, use `on_define_module` instead. + # + # source://spoom//lib/spoom/deadcode/plugins/base.rb#258 + sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void } + def internal_on_define_module(indexer, definition); end + + # Do not override this method, use `on_send` instead. + # + # source://spoom//lib/spoom/deadcode/plugins/base.rb#284 + sig { params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void } + def internal_on_send(indexer, send); end + + # Called when an accessor is defined. + # + # Will be called when the indexer processes a `attr_reader`, `attr_writer` or `attr_accessor` node. + # Note that when this method is called, the definition for the node has already been added to the index. + # It is still possible to ignore it from the plugin: + # + # ~~~rb + # class MyPlugin < Spoom::Deadcode::Plugins::Base + # def on_define_accessor(indexer, definition) + # definition.ignored! if definition.name == "foo" + # end + # end + # ~~~ + # + # source://spoom//lib/spoom/deadcode/plugins/base.rb#144 + sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void } + def on_define_accessor(indexer, definition); end + + # Called when a class is defined. + # + # Will be called when the indexer processes a `class` node. + # Note that when this method is called, the definition for the node has already been added to the index. + # It is still possible to ignore it from the plugin: + # + # ~~~rb + # class MyPlugin < Spoom::Deadcode::Plugins::Base + # def on_define_class(indexer, definition) + # definition.ignored! if definition.name == "Foo" + # end + # end + # ~~~ + # + # source://spoom//lib/spoom/deadcode/plugins/base.rb#168 + sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void } + def on_define_class(indexer, definition); end + + # Called when a constant is defined. + # + # Will be called when the indexer processes a `CONST =` node. + # Note that when this method is called, the definition for the node has already been added to the index. + # It is still possible to ignore it from the plugin: + # + # ~~~rb + # class MyPlugin < Spoom::Deadcode::Plugins::Base + # def on_define_constant(indexer, definition) + # definition.ignored! if definition.name == "FOO" + # end + # end + # ~~~ + # + # source://spoom//lib/spoom/deadcode/plugins/base.rb#198 + sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void } + def on_define_constant(indexer, definition); end + + # Called when a method is defined. + # + # Will be called when the indexer processes a `def` or `defs` node. + # Note that when this method is called, the definition for the node has already been added to the index. + # It is still possible to ignore it from the plugin: + # + # ~~~rb + # class MyPlugin < Spoom::Deadcode::Plugins::Base + # def on_define_method(indexer, definition) + # super # So the `ignore_method_names` DSL is still applied + # + # definition.ignored! if definition.name == "foo" + # end + # end + # ~~~ + # + # source://spoom//lib/spoom/deadcode/plugins/base.rb#226 + sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void } + def on_define_method(indexer, definition); end + + # Called when a module is defined. + # + # Will be called when the indexer processes a `module` node. + # Note that when this method is called, the definition for the node has already been added to the index. + # It is still possible to ignore it from the plugin: + # + # ~~~rb + # class MyPlugin < Spoom::Deadcode::Plugins::Base + # def on_define_module(indexer, definition) + # definition.ignored! if definition.name == "Foo" + # end + # end + # ~~~ + # + # source://spoom//lib/spoom/deadcode/plugins/base.rb#252 + sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void } + def on_define_module(indexer, definition); end + + # Called when a send is being processed + # + # ~~~rb + # class MyPlugin < Spoom::Deadcode::Plugins::Base + # def on_send(indexer, send) + # return unless send.name == "dsl_method" + # return if send.args.empty? + # + # method_name = indexer.node_string(send.args.first).delete_prefix(":") + # indexer.reference_method(method_name, send.node) + # end + # end + # ~~~ + # + # source://spoom//lib/spoom/deadcode/plugins/base.rb#278 + sig { params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void } + def on_send(indexer, send); end + + private + + # Plugin utils + # + # source://spoom//lib/spoom/deadcode/plugins/base.rb#339 + sig { params(name: ::String).returns(::String) } + def camelize(name); end + + # DSL support + # + # source://spoom//lib/spoom/deadcode/plugins/base.rb#293 + sig { params(name: T.nilable(::String)).returns(T::Boolean) } + def ignored_class_name?(name); end + + # source://spoom//lib/spoom/deadcode/plugins/base.rb#307 + sig { params(name: ::String).returns(T::Boolean) } + def ignored_constant_name?(name); end + + # source://spoom//lib/spoom/deadcode/plugins/base.rb#312 + sig { params(name: ::String).returns(T::Boolean) } + def ignored_method_name?(name); end + + # source://spoom//lib/spoom/deadcode/plugins/base.rb#317 + sig { params(name: ::String).returns(T::Boolean) } + def ignored_module_name?(name); end + + # source://spoom//lib/spoom/deadcode/plugins/base.rb#322 + sig { params(name: ::String, names_variable: ::Symbol, patterns_variable: ::Symbol).returns(T::Boolean) } + def ignored_name?(name, names_variable, patterns_variable); end + + # source://spoom//lib/spoom/deadcode/plugins/base.rb#300 + sig { params(superclass_name: T.nilable(::String)).returns(T::Boolean) } + def ignored_subclass?(superclass_name); end + + # source://spoom//lib/spoom/deadcode/plugins/base.rb#327 + sig { params(const: ::Symbol).returns(T::Set[::String]) } + def names(const); end + + # source://spoom//lib/spoom/deadcode/plugins/base.rb#332 + sig { params(const: ::Symbol).returns(T::Array[::Regexp]) } + def patterns(const); end class << self - # source://sorbet-runtime/0.5.10875/lib/types/private/abstract/declare.rb#37 - def new(*args, **_arg1, &blk); end + # Mark classes directly subclassing a class matching `names` as ignored. + # + # Names can be either strings or regexps: + # + # ~~~rb + # class MyPlugin < Spoom::Deadcode::Plugins::Base + # ignore_classes_inheriting_from( + # "Foo", + # "Bar", + # /Baz.*/, + # ) + # end + # ~~~ + # + # source://spoom//lib/spoom/deadcode/plugins/base.rb#52 + sig { params(names: T.any(::Regexp, ::String)).void } + def ignore_classes_inheriting_from(*names); end + + # Mark classes matching `names` as ignored. + # + # Names can be either strings or regexps: + # + # ~~~rb + # class MyPlugin < Spoom::Deadcode::Plugins::Base + # ignore_class_names( + # "Foo", + # "Bar", + # /Baz.*/, + # ) + # end + # ~~~ + # + # source://spoom//lib/spoom/deadcode/plugins/base.rb#34 + sig { params(names: T.any(::Regexp, ::String)).void } + def ignore_classes_named(*names); end + + # Mark constants matching `names` as ignored. + # + # Names can be either strings or regexps: + # + # ~~~rb + # class MyPlugin < Spoom::Deadcode::Plugins::Base + # ignore_class_names( + # "FOO", + # "BAR", + # /BAZ.*/, + # ) + # end + # ~~~ + # + # source://spoom//lib/spoom/deadcode/plugins/base.rb#70 + sig { params(names: T.any(::Regexp, ::String)).void } + def ignore_constants_named(*names); end + + # Mark methods matching `names` as ignored. + # + # Names can be either strings or regexps: + # + # ~~~rb + # class MyPlugin < Spoom::Deadcode::Plugins::Base + # ignore_method_names( + # "foo", + # "bar", + # /baz.*/, + # ) + # end + # ~~~ + # + # source://spoom//lib/spoom/deadcode/plugins/base.rb#88 + sig { params(names: T.any(::Regexp, ::String)).void } + def ignore_methods_named(*names); end + + # Mark modules matching `names` as ignored. + # + # Names can be either strings or regexps: + # + # ~~~rb + # class MyPlugin < Spoom::Deadcode::Plugins::Base + # ignore_class_names( + # "Foo", + # "Bar", + # /Baz.*/, + # ) + # end + # ~~~ + # + # source://spoom//lib/spoom/deadcode/plugins/base.rb#106 + sig { params(names: T.any(::Regexp, ::String)).void } + def ignore_modules_named(*names); end + + private + + # source://spoom//lib/spoom/deadcode/plugins/base.rb#113 + sig do + params( + names: T::Array[T.any(::Regexp, ::String)], + names_variable: ::Symbol, + patterns_variable: ::Symbol + ).void + end + def save_names_and_patterns(names, names_variable, patterns_variable); end + end +end + +# source://spoom//lib/spoom/deadcode/plugins/graphql.rb#7 +class Spoom::Deadcode::Plugins::GraphQL < ::Spoom::Deadcode::Plugins::Base + # source://spoom//lib/spoom/deadcode/plugins/graphql.rb#28 + sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void } + def on_send(indexer, send); end +end + +# source://spoom//lib/spoom/deadcode/plugins/minitest.rb#7 +class Spoom::Deadcode::Plugins::Minitest < ::Spoom::Deadcode::Plugins::Base + # source://spoom//lib/spoom/deadcode/plugins/minitest.rb#22 + sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void } + def on_define_method(indexer, definition); end +end + +# source://spoom//lib/spoom/deadcode/plugins/namespaces.rb#7 +class Spoom::Deadcode::Plugins::Namespaces < ::Spoom::Deadcode::Plugins::Base + # source://spoom//lib/spoom/deadcode/plugins/namespaces.rb#11 + sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void } + def on_define_class(indexer, definition); end + + # source://spoom//lib/spoom/deadcode/plugins/namespaces.rb#16 + sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void } + def on_define_module(indexer, definition); end + + private + + # source://spoom//lib/spoom/deadcode/plugins/namespaces.rb#23 + sig { params(indexer: ::Spoom::Deadcode::Indexer).returns(T::Boolean) } + def used_as_namespace?(indexer); end +end + +# source://spoom//lib/spoom/deadcode/plugins/rspec.rb#7 +class Spoom::Deadcode::Plugins::RSpec < ::Spoom::Deadcode::Plugins::Base; end + +# source://spoom//lib/spoom/deadcode/plugins/rails.rb#7 +class Spoom::Deadcode::Plugins::Rails < ::Spoom::Deadcode::Plugins::Base + # source://spoom//lib/spoom/deadcode/plugins/rails.rb#13 + sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void } + def on_define_class(indexer, definition); end + + # source://spoom//lib/spoom/deadcode/plugins/rails.rb#18 + sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void } + def on_define_module(indexer, definition); end + + private + + # source://spoom//lib/spoom/deadcode/plugins/rails.rb#25 + sig { params(indexer: ::Spoom::Deadcode::Indexer).returns(T::Boolean) } + def file_is_helper?(indexer); end +end + +# source://spoom//lib/spoom/deadcode/plugins/rake.rb#7 +class Spoom::Deadcode::Plugins::Rake < ::Spoom::Deadcode::Plugins::Base; end + +# source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#7 +class Spoom::Deadcode::Plugins::Rubocop < ::Spoom::Deadcode::Plugins::Base + # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#18 + sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void } + def on_define_constant(indexer, definition); end + + # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#23 + sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void } + def on_define_method(indexer, definition); end + + private + + # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#30 + sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).returns(T::Boolean) } + def rubocop_constant?(indexer, definition); end + + # source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#35 + sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).returns(T::Boolean) } + def rubocop_method?(indexer, definition); end +end + +# source://spoom//lib/spoom/deadcode/plugins/rubocop.rb#10 +Spoom::Deadcode::Plugins::Rubocop::RUBOCOP_CONSTANTS = T.let(T.unsafe(nil), Set) + +# source://spoom//lib/spoom/deadcode/plugins/ruby.rb#7 +class Spoom::Deadcode::Plugins::Ruby < ::Spoom::Deadcode::Plugins::Base + # source://spoom//lib/spoom/deadcode/plugins/ruby.rb#24 + sig { override.params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send).void } + def on_send(indexer, send); end + + private + + # source://spoom//lib/spoom/deadcode/plugins/ruby.rb#50 + sig { params(indexer: ::Spoom::Deadcode::Indexer, send: ::Spoom::Deadcode::Send, node: ::SyntaxTree::Node).void } + def reference_symbol_as_constant(indexer, send, node); end +end + +# source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#7 +class Spoom::Deadcode::Plugins::Sorbet < ::Spoom::Deadcode::Plugins::Base + # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#11 + sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void } + def on_define_constant(indexer, definition); end + + # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#16 + sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void } + def on_define_method(indexer, definition); end + + private + + # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#40 + sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).returns(T::Boolean) } + def sorbet_enum_constant?(indexer, definition); end + + # source://spoom//lib/spoom/deadcode/plugins/sorbet.rb#23 + sig { params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).returns(T::Boolean) } + def sorbet_type_member?(indexer, definition); end +end + +# source://spoom//lib/spoom/deadcode/plugins/thor.rb#7 +class Spoom::Deadcode::Plugins::Thor < ::Spoom::Deadcode::Plugins::Base + # source://spoom//lib/spoom/deadcode/plugins/thor.rb#13 + sig { override.params(indexer: ::Spoom::Deadcode::Indexer, definition: ::Spoom::Deadcode::Definition).void } + def on_define_method(indexer, definition); end +end + +# A reference is a call to a method or a constant +# +# source://spoom//lib/spoom/deadcode/reference.rb#7 +class Spoom::Deadcode::Reference < ::T::Struct + const :kind, ::Spoom::Deadcode::Reference::Kind + const :name, ::String + const :location, ::Spoom::Deadcode::Location + + # Kind + # + # source://spoom//lib/spoom/deadcode/reference.rb#24 + sig { returns(T::Boolean) } + def constant?; end + + # source://spoom//lib/spoom/deadcode/reference.rb#29 + sig { returns(T::Boolean) } + def method?; end + + class << self + # source://sorbet-runtime/0.5.11143/lib/types/struct.rb#13 + def inherited(s); end + end +end + +# source://spoom//lib/spoom/deadcode/reference.rb#10 +class Spoom::Deadcode::Reference::Kind < ::T::Enum + enums do + Constant = new + Method = new + end +end + +# source://spoom//lib/spoom/deadcode/remover.rb#6 +class Spoom::Deadcode::Remover + # source://spoom//lib/spoom/deadcode/remover.rb#12 + sig { params(context: ::Spoom::Context).void } + def initialize(context); end + + # source://spoom//lib/spoom/deadcode/remover.rb#17 + sig { params(kind: ::Spoom::Deadcode::Definition::Kind, location: ::Spoom::Deadcode::Location).void } + def remove_location(kind, location); end +end + +# source://spoom//lib/spoom/deadcode/remover.rb#9 +class Spoom::Deadcode::Remover::Error < ::Spoom::Error; end + +# source://spoom//lib/spoom/deadcode/remover.rb#348 +class Spoom::Deadcode::Remover::NodeContext + # source://spoom//lib/spoom/deadcode/remover.rb#358 + sig { params(source: ::String, node: ::SyntaxTree::Node, nesting: T::Array[::SyntaxTree::Node]).void } + def initialize(source, node, nesting); end + + # source://spoom//lib/spoom/deadcode/remover.rb#467 + sig { returns(T::Array[::SyntaxTree::Node]) } + def attached_comments_and_sigs; end + + # source://spoom//lib/spoom/deadcode/remover.rb#480 + sig { returns(T.nilable(::SyntaxTree::MethodAddBlock)) } + def attached_sig; end + + # source://spoom//lib/spoom/deadcode/remover.rb#460 + sig { params(comment: ::SyntaxTree::Node, node: ::SyntaxTree::Node).returns(T::Boolean) } + def comment_for_node?(comment, node); end + + # source://spoom//lib/spoom/deadcode/remover.rb#355 + sig { returns(T::Array[::SyntaxTree::Node]) } + def nesting; end + + # @return [Array] + # + # source://spoom//lib/spoom/deadcode/remover.rb#355 + def nesting=(_arg0); end + + # source://spoom//lib/spoom/deadcode/remover.rb#407 + sig { returns(T.nilable(::SyntaxTree::Node)) } + def next_node; end + + # source://spoom//lib/spoom/deadcode/remover.rb#397 + sig { returns(T::Array[::SyntaxTree::Node]) } + def next_nodes; end + + # source://spoom//lib/spoom/deadcode/remover.rb#352 + sig { returns(::SyntaxTree::Node) } + def node; end + + # source://spoom//lib/spoom/deadcode/remover.rb#495 + sig { params(node: T.any(::Symbol, ::SyntaxTree::Node)).returns(::String) } + def node_string(node); end + + # source://spoom//lib/spoom/deadcode/remover.rb#373 + sig { returns(::Spoom::Deadcode::Remover::NodeContext) } + def parent_context; end + + # source://spoom//lib/spoom/deadcode/remover.rb#365 + sig { returns(::SyntaxTree::Node) } + def parent_node; end + + # source://spoom//lib/spoom/deadcode/remover.rb#392 + sig { returns(T.nilable(::SyntaxTree::Node)) } + def previous_node; end + + # source://spoom//lib/spoom/deadcode/remover.rb#382 + sig { returns(T::Array[::SyntaxTree::Node]) } + def previous_nodes; end + + # source://spoom//lib/spoom/deadcode/remover.rb#412 + sig { returns(T.nilable(::Spoom::Deadcode::Remover::NodeContext)) } + def sclass_context; end + + # source://spoom//lib/spoom/deadcode/remover.rb#451 + sig { params(node: T.nilable(::SyntaxTree::Node)).returns(T::Boolean) } + def sorbet_extend_sig?(node); end + + # source://spoom//lib/spoom/deadcode/remover.rb#438 + sig { params(node: T.nilable(::SyntaxTree::Node)).returns(T::Boolean) } + def sorbet_signature?(node); end +end + +# source://spoom//lib/spoom/deadcode/remover.rb#505 +class Spoom::Deadcode::Remover::NodeFinder < ::SyntaxTree::Visitor + # source://spoom//lib/spoom/deadcode/remover.rb#554 + sig { params(location: ::Spoom::Deadcode::Location).void } + def initialize(location); end + + # source://spoom//lib/spoom/deadcode/remover.rb#548 + sig { returns(T.nilable(::SyntaxTree::Node)) } + def node; end + + # source://spoom//lib/spoom/deadcode/remover.rb#551 + sig { returns(T::Array[::SyntaxTree::Node]) } + def nodes_nesting; end + + # @return [Array] + # + # source://spoom//lib/spoom/deadcode/remover.rb#551 + def nodes_nesting=(_arg0); end + + # source://spoom//lib/spoom/deadcode/remover.rb#562 + sig { override.params(node: T.nilable(::SyntaxTree::Node)).void } + def visit(node); end + + private + + # TODO: remove once SyntaxTree location are fixed + # + # source://spoom//lib/spoom/deadcode/remover.rb#601 + sig { params(node: ::SyntaxTree::Node, nodes: T::Array[::SyntaxTree::Node]).returns(::Spoom::Deadcode::Location) } + def location_from_children(node, nodes); end + + # TODO: remove once SyntaxTree location are fixed + # + # source://spoom//lib/spoom/deadcode/remover.rb#586 + sig { params(node: ::SyntaxTree::Node).returns(::Spoom::Deadcode::Location) } + def location_from_node(node); end + + class << self + # source://spoom//lib/spoom/deadcode/remover.rb#512 + sig do + params( + source: ::String, + location: ::Spoom::Deadcode::Location, + kind: ::Spoom::Deadcode::Definition::Kind + ).returns(::Spoom::Deadcode::Remover::NodeContext) + end + def find(source, location, kind); end + + # source://spoom//lib/spoom/deadcode/remover.rb#531 + sig { params(node: ::SyntaxTree::Node, kind: ::Spoom::Deadcode::Definition::Kind).returns(T::Boolean) } + def node_match_kind?(node, kind); end + end +end + +# source://spoom//lib/spoom/deadcode/remover.rb#29 +class Spoom::Deadcode::Remover::NodeRemover + # source://spoom//lib/spoom/deadcode/remover.rb#36 + sig do + params( + source: ::String, + kind: ::Spoom::Deadcode::Definition::Kind, + location: ::Spoom::Deadcode::Location + ).void + end + def initialize(source, kind, location); end + + # source://spoom//lib/spoom/deadcode/remover.rb#46 + sig { void } + def apply_edit; end + + # source://spoom//lib/spoom/deadcode/remover.rb#33 + sig { returns(::String) } + def new_source; end + + private + + # source://spoom//lib/spoom/deadcode/remover.rb#142 + sig { params(context: ::Spoom::Deadcode::Remover::NodeContext).void } + def delete_attr_accessor(context); end + + # source://spoom//lib/spoom/deadcode/remover.rb#290 + sig { params(start_char: ::Integer, end_char: ::Integer).void } + def delete_chars(start_char, end_char); end + + # source://spoom//lib/spoom/deadcode/remover.rb#69 + sig { params(context: ::Spoom::Deadcode::Remover::NodeContext).void } + def delete_constant_assignment(context); end + + # source://spoom//lib/spoom/deadcode/remover.rb#300 + sig { params(line_number: ::Integer, start_column: ::Integer, end_column: ::Integer).void } + def delete_line_part(line_number, start_column, end_column); end + + # source://spoom//lib/spoom/deadcode/remover.rb#283 + sig { params(start_line: ::Integer, end_line: ::Integer).void } + def delete_lines(start_line, end_line); end + + # source://spoom//lib/spoom/deadcode/remover.rb#250 + sig { params(context: ::Spoom::Deadcode::Remover::NodeContext).void } + def delete_node_and_comments_and_sigs(context); end + + # source://spoom//lib/spoom/deadcode/remover.rb#207 + sig do + params( + node: ::SyntaxTree::Node, + send_context: ::Spoom::Deadcode::Remover::NodeContext, + was_removed: T::Boolean + ).void + end + def insert_accessor(node, send_context, was_removed:); end + + # source://spoom//lib/spoom/deadcode/remover.rb#295 + sig { params(start_char: ::Integer, end_char: ::Integer, replacement: ::String).void } + def replace_chars(start_char, end_char, replacement); end + + # source://spoom//lib/spoom/deadcode/remover.rb#315 + sig do + params( + node: ::SyntaxTree::MethodAddBlock, + name: ::String, + kind: ::Spoom::Deadcode::Definition::Kind + ).returns(::String) + end + def transform_sig(node, name:, kind:); end +end + +# An abstraction to simplify handling of SyntaxTree::CallNode, SyntaxTree::Command, SyntaxTree::CommandCall and +# SyntaxTree::VCall nodes. +# +# source://spoom//lib/spoom/deadcode/send.rb#8 +class Spoom::Deadcode::Send < ::T::Struct + const :node, ::SyntaxTree::Node + const :name, ::String + const :recv, T.nilable(::SyntaxTree::Node), default: T.unsafe(nil) + const :args, T::Array[::SyntaxTree::Node], default: T.unsafe(nil) + const :block, T.nilable(::SyntaxTree::Node), default: T.unsafe(nil) + + # source://spoom//lib/spoom/deadcode/send.rb#22 + sig do + type_parameters(:T) + .params( + arg_type: T::Class[T.type_parameter(:T)], + block: T.proc.params(arg: T.type_parameter(:T)).void + ).void + end + def each_arg(arg_type, &block); end + + # source://spoom//lib/spoom/deadcode/send.rb#29 + sig { params(block: T.proc.params(key: ::SyntaxTree::Node, value: T.nilable(::SyntaxTree::Node)).void).void } + def each_arg_assoc(&block); end + + class << self + # source://sorbet-runtime/0.5.11143/lib/types/struct.rb#13 + def inherited(s); end end end @@ -1362,7 +2613,7 @@ class Spoom::ExecResult < ::T::Struct def to_s; end class << self - # source://sorbet-runtime/0.5.10875/lib/types/struct.rb#13 + # source://sorbet-runtime/0.5.11143/lib/types/struct.rb#13 def inherited(s); end end end @@ -1374,41 +2625,55 @@ class Spoom::FileCollector # If `allow_extensions` is empty, all files are collected. # If `allow_extensions` is an array of extensions, only files with one of these extensions are collected. # - # source://spoom//lib/spoom/file_collector.rb#21 - sig { params(allow_extensions: T::Array[::String], exclude_patterns: T::Array[::String]).void } - def initialize(allow_extensions: T.unsafe(nil), exclude_patterns: T.unsafe(nil)); end + # If `allow_mime_types` is empty, all files are collected. + # If `allow_mime_types` is an array of mimetypes, files without an extension are collected if their mimetype is in + # the list. + # + # source://spoom//lib/spoom/file_collector.rb#26 + sig do + params( + allow_extensions: T::Array[::String], + allow_mime_types: T::Array[::String], + exclude_patterns: T::Array[::String] + ).void + end + def initialize(allow_extensions: T.unsafe(nil), allow_mime_types: T.unsafe(nil), exclude_patterns: T.unsafe(nil)); end # source://spoom//lib/spoom/file_collector.rb#9 sig { returns(T::Array[::String]) } def files; end - # source://spoom//lib/spoom/file_collector.rb#33 + # source://spoom//lib/spoom/file_collector.rb#39 sig { params(path: ::String).void } def visit_path(path); end - # source://spoom//lib/spoom/file_collector.rb#28 + # source://spoom//lib/spoom/file_collector.rb#34 sig { params(paths: T::Array[::String]).void } def visit_paths(paths); end private - # source://spoom//lib/spoom/file_collector.rb#50 + # source://spoom//lib/spoom/file_collector.rb#56 sig { params(path: ::String).returns(::String) } def clean_path(path); end - # source://spoom//lib/spoom/file_collector.rb#67 + # source://spoom//lib/spoom/file_collector.rb#73 sig { params(path: ::String).returns(T::Boolean) } def excluded_file?(path); end - # source://spoom//lib/spoom/file_collector.rb#75 + # source://spoom//lib/spoom/file_collector.rb#88 sig { params(path: ::String).returns(T::Boolean) } def excluded_path?(path); end - # source://spoom//lib/spoom/file_collector.rb#62 + # source://spoom//lib/spoom/file_collector.rb#97 + sig { params(path: ::String).returns(T.nilable(::String)) } + def mime_type_for(path); end + + # source://spoom//lib/spoom/file_collector.rb#68 sig { params(path: ::String).void } def visit_directory(path); end - # source://spoom//lib/spoom/file_collector.rb#55 + # source://spoom//lib/spoom/file_collector.rb#61 sig { params(path: ::String).void } def visit_file(path); end end @@ -1556,7 +2821,7 @@ class Spoom::FileTree::Node < ::T::Struct def path; end class << self - # source://sorbet-runtime/0.5.10875/lib/types/struct.rb#13 + # source://sorbet-runtime/0.5.11143/lib/types/struct.rb#13 def inherited(s); end end end @@ -1607,11 +2872,6 @@ class Spoom::FileTree::Visitor # source://spoom//lib/spoom/file_tree.rb#124 sig { params(tree: ::Spoom::FileTree).void } def visit_tree(tree); end - - class << self - # source://sorbet-runtime/0.5.10875/lib/types/private/abstract/declare.rb#37 - def new(*args, **_arg1, &blk); end - end end # source://spoom//lib/spoom/context/git.rb#5 @@ -1627,7 +2887,7 @@ class Spoom::Git::Commit < ::T::Struct def timestamp; end class << self - # source://sorbet-runtime/0.5.10875/lib/types/struct.rb#13 + # source://sorbet-runtime/0.5.11143/lib/types/struct.rb#13 def inherited(s); end # Parse a line formated as `%h %at` into a `Commit` @@ -1739,7 +2999,7 @@ class Spoom::LSP::Diagnostic < ::T::Struct sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Diagnostic) } def from_json(json); end - # source://sorbet-runtime/0.5.10875/lib/types/struct.rb#13 + # source://sorbet-runtime/0.5.11143/lib/types/struct.rb#13 def inherited(s); end end end @@ -1772,7 +3032,7 @@ class Spoom::LSP::DocumentSymbol < ::T::Struct sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::DocumentSymbol) } def from_json(json); end - # source://sorbet-runtime/0.5.10875/lib/types/struct.rb#13 + # source://sorbet-runtime/0.5.11143/lib/types/struct.rb#13 def inherited(s); end end end @@ -1830,7 +3090,7 @@ class Spoom::LSP::Hover < ::T::Struct sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Hover) } def from_json(json); end - # source://sorbet-runtime/0.5.10875/lib/types/struct.rb#13 + # source://sorbet-runtime/0.5.11143/lib/types/struct.rb#13 def inherited(s); end end end @@ -1855,7 +3115,7 @@ class Spoom::LSP::Location < ::T::Struct sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Location) } def from_json(json); end - # source://sorbet-runtime/0.5.10875/lib/types/struct.rb#13 + # source://sorbet-runtime/0.5.11143/lib/types/struct.rb#13 def inherited(s); end end end @@ -1866,19 +3126,15 @@ end # # source://spoom//lib/spoom/sorbet/lsp/base.rb#12 class Spoom::LSP::Message - # source://spoom//lib/spoom/sorbet/lsp/base.rb#19 + # source://spoom//lib/spoom/sorbet/lsp/base.rb#16 sig { void } def initialize; end - # source://spoom//lib/spoom/sorbet/lsp/base.rb#24 + # source://spoom//lib/spoom/sorbet/lsp/base.rb#21 sig { returns(T::Hash[T.untyped, T.untyped]) } def as_json; end - # source://spoom//lib/spoom/sorbet/lsp/base.rb#16 - sig { returns(::String) } - def jsonrpc; end - - # source://spoom//lib/spoom/sorbet/lsp/base.rb#32 + # source://spoom//lib/spoom/sorbet/lsp/base.rb#29 sig { params(args: T.untyped).returns(::String) } def to_json(*args); end end @@ -1887,17 +3143,17 @@ end # # A processed notification message must not send a response back. They work like events. # -# source://spoom//lib/spoom/sorbet/lsp/base.rb#64 +# source://spoom//lib/spoom/sorbet/lsp/base.rb#58 class Spoom::LSP::Notification < ::Spoom::LSP::Message - # source://spoom//lib/spoom/sorbet/lsp/base.rb#74 + # source://spoom//lib/spoom/sorbet/lsp/base.rb#68 sig { params(method: ::String, params: T::Hash[T.untyped, T.untyped]).void } def initialize(method, params); end - # source://spoom//lib/spoom/sorbet/lsp/base.rb#68 + # source://spoom//lib/spoom/sorbet/lsp/base.rb#62 sig { returns(::String) } def method; end - # source://spoom//lib/spoom/sorbet/lsp/base.rb#71 + # source://spoom//lib/spoom/sorbet/lsp/base.rb#65 sig { returns(T::Hash[T.untyped, T.untyped]) } def params; end end @@ -1922,7 +3178,7 @@ class Spoom::LSP::Position < ::T::Struct sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Position) } def from_json(json); end - # source://sorbet-runtime/0.5.10875/lib/types/struct.rb#13 + # source://sorbet-runtime/0.5.11143/lib/types/struct.rb#13 def inherited(s); end end end @@ -1960,7 +3216,7 @@ class Spoom::LSP::Range < ::T::Struct sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::Range) } def from_json(json); end - # source://sorbet-runtime/0.5.10875/lib/types/struct.rb#13 + # source://sorbet-runtime/0.5.11143/lib/types/struct.rb#13 def inherited(s); end end end @@ -1969,21 +3225,17 @@ end # # Every processed request must send a response back to the sender of the request. # -# source://spoom//lib/spoom/sorbet/lsp/base.rb#40 +# source://spoom//lib/spoom/sorbet/lsp/base.rb#37 class Spoom::LSP::Request < ::Spoom::LSP::Message - # source://spoom//lib/spoom/sorbet/lsp/base.rb#53 + # source://spoom//lib/spoom/sorbet/lsp/base.rb#47 sig { params(id: ::Integer, method: ::String, params: T::Hash[T.untyped, T.untyped]).void } def initialize(id, method, params); end - # source://spoom//lib/spoom/sorbet/lsp/base.rb#44 + # source://spoom//lib/spoom/sorbet/lsp/base.rb#41 sig { returns(::Integer) } def id; end - # source://spoom//lib/spoom/sorbet/lsp/base.rb#47 - sig { returns(::String) } - def method; end - - # source://spoom//lib/spoom/sorbet/lsp/base.rb#50 + # source://spoom//lib/spoom/sorbet/lsp/base.rb#44 sig { returns(T::Hash[T.untyped, T.untyped]) } def params; end end @@ -2030,7 +3282,7 @@ class Spoom::LSP::SignatureHelp < ::T::Struct sig { params(json: T::Hash[T.untyped, T.untyped]).returns(::Spoom::LSP::SignatureHelp) } def from_json(json); end - # source://sorbet-runtime/0.5.10875/lib/types/struct.rb#13 + # source://sorbet-runtime/0.5.11143/lib/types/struct.rb#13 def inherited(s); end end end @@ -2076,55 +3328,46 @@ class Spoom::LSP::SymbolPrinter < ::Spoom::Printer # source://spoom//lib/spoom/sorbet/lsp/structures.rb#313 sig { returns(T::Set[::Integer]) } def seen; end - - # @return [Set] - # - # source://spoom//lib/spoom/sorbet/lsp/structures.rb#313 - def seen=(_arg0); end end -# @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below. -# # source://spoom//lib/spoom/printer.rb#7 class Spoom::Printer include ::Spoom::Colorize - abstract! - - # source://spoom//lib/spoom/printer.rb#19 + # source://spoom//lib/spoom/printer.rb#17 sig { params(out: T.any(::IO, ::StringIO), colors: T::Boolean, indent_level: ::Integer).void } def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end # Colorize `string` with color if `@colors` # - # source://spoom//lib/spoom/printer.rb#80 + # source://spoom//lib/spoom/printer.rb#78 sig { params(string: ::String, color: ::Spoom::Color).returns(::String) } def colorize(string, *color); end # Decrease indent level # - # source://spoom//lib/spoom/printer.rb#33 + # source://spoom//lib/spoom/printer.rb#31 sig { void } def dedent; end # Increase indent level # - # source://spoom//lib/spoom/printer.rb#27 + # source://spoom//lib/spoom/printer.rb#25 sig { void } def indent; end - # source://spoom//lib/spoom/printer.rb#16 + # source://spoom//lib/spoom/printer.rb#14 sig { returns(T.any(::IO, ::StringIO)) } def out; end # @return [IO, StringIO] # - # source://spoom//lib/spoom/printer.rb#16 + # source://spoom//lib/spoom/printer.rb#14 def out=(_arg0); end # Print `string` into `out` # - # source://spoom//lib/spoom/printer.rb#39 + # source://spoom//lib/spoom/printer.rb#37 sig { params(string: T.nilable(::String)).void } def print(string); end @@ -2132,32 +3375,27 @@ class Spoom::Printer # # Does not use colors unless `@colors`. # - # source://spoom//lib/spoom/printer.rb#49 + # source://spoom//lib/spoom/printer.rb#47 sig { params(string: T.nilable(::String), color: ::Spoom::Color).void } def print_colored(string, *color); end # Print `string` with indent and newline # - # source://spoom//lib/spoom/printer.rb#64 + # source://spoom//lib/spoom/printer.rb#62 sig { params(string: T.nilable(::String)).void } def printl(string); end # Print a new line into `out` # - # source://spoom//lib/spoom/printer.rb#58 + # source://spoom//lib/spoom/printer.rb#56 sig { void } def printn; end # Print an indent space into `out` # - # source://spoom//lib/spoom/printer.rb#74 + # source://spoom//lib/spoom/printer.rb#72 sig { void } def printt; end - - class << self - # source://sorbet-runtime/0.5.10875/lib/types/private/abstract/declare.rb#37 - def new(*args, **_arg1, &blk); end - end end # source://spoom//lib/spoom.rb#10 @@ -2166,7 +3404,7 @@ Spoom::SPOOM_PATH = T.let(T.unsafe(nil), String) # source://spoom//lib/spoom/sorbet/config.rb#5 module Spoom::Sorbet; end -# source://spoom//lib/spoom/sorbet.rb#38 +# source://spoom//lib/spoom/sorbet.rb#39 Spoom::Sorbet::BIN_PATH = T.let(T.unsafe(nil), String) # source://spoom//lib/spoom/sorbet.rb#36 @@ -2409,7 +3647,10 @@ Spoom::Sorbet::Errors::Parser::HEADER = T.let(T.unsafe(nil), Array) # source://spoom//lib/spoom/sorbet.rb#37 Spoom::Sorbet::GEM_PATH = T.let(T.unsafe(nil), String) -# source://spoom//lib/spoom/sorbet.rb#40 +# source://spoom//lib/spoom/sorbet.rb#38 +Spoom::Sorbet::GEM_VERSION = T.let(T.unsafe(nil), String) + +# source://spoom//lib/spoom/sorbet.rb#41 Spoom::Sorbet::KILLED_CODE = T.let(T.unsafe(nil), Integer) # source://spoom//lib/spoom/sorbet/metrics.rb#8 @@ -2432,7 +3673,7 @@ end # source://spoom//lib/spoom/sorbet/metrics.rb#9 Spoom::Sorbet::MetricsParser::DEFAULT_PREFIX = T.let(T.unsafe(nil), String) -# source://spoom//lib/spoom/sorbet.rb#41 +# source://spoom//lib/spoom/sorbet.rb#42 Spoom::Sorbet::SEGFAULT_CODE = T.let(T.unsafe(nil), Integer) # source://spoom//lib/spoom/sorbet/sigils.rb#9 diff --git a/sorbet/rbi/gems/syntax_tree@6.2.0.rbi b/sorbet/rbi/gems/syntax_tree@6.2.0.rbi new file mode 100644 index 00000000..0ecc1a41 --- /dev/null +++ b/sorbet/rbi/gems/syntax_tree@6.2.0.rbi @@ -0,0 +1,23136 @@ +# typed: true + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for types exported from the `syntax_tree` gem. +# Please instead update this file by running `bin/tapioca gem syntax_tree`. + +# Syntax Tree is a suite of tools built on top of the internal CRuby parser. It +# provides the ability to generate a syntax tree from source, as well as the +# tools necessary to inspect and manipulate that syntax tree. It can be used to +# build formatters, linters, language servers, and more. +# +# source://syntax_tree//lib/syntax_tree/node.rb#3 +module SyntaxTree + class << self + # Parses the given source and returns the formatted source. + # + # source://syntax_tree//lib/syntax_tree.rb#60 + def format(source, maxwidth = T.unsafe(nil), base_indentation = T.unsafe(nil), options: T.unsafe(nil)); end + + # Parses the given file and returns the formatted source. + # + # source://syntax_tree//lib/syntax_tree.rb#76 + def format_file(filepath, maxwidth = T.unsafe(nil), base_indentation = T.unsafe(nil), options: T.unsafe(nil)); end + + # Accepts a node in the tree and returns the formatted source. + # + # source://syntax_tree//lib/syntax_tree.rb#86 + def format_node(source, node, maxwidth = T.unsafe(nil), base_indentation = T.unsafe(nil), options: T.unsafe(nil)); end + + # Indexes the given source code to return a list of all class, module, and + # method definitions. Used to quickly provide indexing capability for IDEs or + # documentation generation. + # + # source://syntax_tree//lib/syntax_tree.rb#103 + def index(source); end + + # Indexes the given file to return a list of all class, module, and method + # definitions. Used to quickly provide indexing capability for IDEs or + # documentation generation. + # + # source://syntax_tree//lib/syntax_tree.rb#110 + def index_file(filepath); end + + # A convenience method for creating a new mutation visitor. + # + # @yield [visitor] + # + # source://syntax_tree//lib/syntax_tree.rb#115 + def mutation; end + + # Parses the given source and returns the syntax tree. + # + # source://syntax_tree//lib/syntax_tree.rb#122 + def parse(source); end + + # Parses the given file and returns the syntax tree. + # + # source://syntax_tree//lib/syntax_tree.rb#129 + def parse_file(filepath); end + + # Returns the source from the given filepath taking into account any potential + # magic encoding comments. + # + # source://syntax_tree//lib/syntax_tree.rb#135 + def read(filepath); end + + # This is a hook provided so that plugins can register themselves as the + # handler for a particular file type. + # + # source://syntax_tree//lib/syntax_tree.rb#150 + def register_handler(extension, handler); end + + # Searches through the given source using the given pattern and yields each + # node in the tree that matches the pattern to the given block. + # + # source://syntax_tree//lib/syntax_tree.rb#156 + def search(source, query, &block); end + + # Searches through the given file using the given pattern and yields each + # node in the tree that matches the pattern to the given block. + # + # source://syntax_tree//lib/syntax_tree.rb#165 + def search_file(filepath, query, &block); end + end +end + +# ARef represents when you're pulling a value out of a collection at a +# specific index. Put another way, it's any time you're calling the method +# #[]. +# +# collection[index] +# +# The nodes usually contains two children, the collection and the index. In +# some cases, you don't necessarily have the second child node, because you +# can call procs with a pretty esoteric syntax. In the following example, you +# wouldn't have a second child node: +# +# collection[] +# +# source://syntax_tree//lib/syntax_tree/node.rb#567 +class SyntaxTree::ARef < ::SyntaxTree::Node + # @return [ARef] a new instance of ARef + # + # source://syntax_tree//lib/syntax_tree/node.rb#577 + def initialize(collection:, index:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#632 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#584 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#588 + def child_nodes; end + + # [Node] the value being indexed + # + # source://syntax_tree//lib/syntax_tree/node.rb#569 + def collection; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#575 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#592 + def copy(collection: T.unsafe(nil), index: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#588 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#606 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#615 + def format(q); end + + # [nil | Args] the value being passed within the brackets + # + # source://syntax_tree//lib/syntax_tree/node.rb#572 + def index; end +end + +# ARefField represents assigning values into collections at specific indices. +# Put another way, it's any time you're calling the method #[]=. The +# ARefField node itself is just the left side of the assignment, and they're +# always wrapped in assign nodes. +# +# collection[index] = value +# +# source://syntax_tree//lib/syntax_tree/node.rb#645 +class SyntaxTree::ARefField < ::SyntaxTree::Node + # @return [ARefField] a new instance of ARefField + # + # source://syntax_tree//lib/syntax_tree/node.rb#655 + def initialize(collection:, index:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#710 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#662 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#666 + def child_nodes; end + + # [Node] the value being indexed + # + # source://syntax_tree//lib/syntax_tree/node.rb#647 + def collection; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#653 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#670 + def copy(collection: T.unsafe(nil), index: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#666 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#684 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#693 + def format(q); end + + # [nil | Args] the value being passed within the brackets + # + # source://syntax_tree//lib/syntax_tree/node.rb#650 + def index; end +end + +# Alias represents the use of the +alias+ keyword with regular arguments (not +# global variables). The +alias+ keyword is used to make a method respond to +# another name as well as the current one. +# +# alias aliased_name name +# +# For the example above, in the current context you can now call aliased_name +# and it will execute the name method. When you're aliasing two methods, you +# can either provide bare words (like the example above) or you can provide +# symbols (note that this includes dynamic symbols like +# :"left-#{middle}-right"). +# +# source://syntax_tree//lib/syntax_tree/node.rb#458 +class SyntaxTree::AliasNode < ::SyntaxTree::Node + # @return [AliasNode] a new instance of AliasNode + # + # source://syntax_tree//lib/syntax_tree/node.rb#496 + def initialize(left:, right:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#545 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#503 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#507 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#494 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#511 + def copy(left: T.unsafe(nil), right: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#507 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#525 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#529 + def format(q); end + + # [DynaSymbol | GVar | SymbolLiteral] the new name of the method + # + # source://syntax_tree//lib/syntax_tree/node.rb#488 + def left; end + + # [Backref | DynaSymbol | GVar | SymbolLiteral] the old name of the method + # + # source://syntax_tree//lib/syntax_tree/node.rb#491 + def right; end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#549 + def var_alias?; end +end + +# Formats an argument to the alias keyword. For symbol literals it uses the +# value of the symbol directly to look like bare words. +# +# source://syntax_tree//lib/syntax_tree/node.rb#461 +class SyntaxTree::AliasNode::AliasArgumentFormatter + # @return [AliasArgumentFormatter] a new instance of AliasArgumentFormatter + # + # source://syntax_tree//lib/syntax_tree/node.rb#466 + def initialize(argument); end + + # [Backref | DynaSymbol | GVar | SymbolLiteral] the argument being passed + # to alias + # + # source://syntax_tree//lib/syntax_tree/node.rb#464 + def argument; end + + # source://syntax_tree//lib/syntax_tree/node.rb#470 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#478 + def format(q); end +end + +# ArgBlock represents using a block operator on an expression. +# +# method(&expression) +# +# source://syntax_tree//lib/syntax_tree/node.rb#887 +class SyntaxTree::ArgBlock < ::SyntaxTree::Node + # @return [ArgBlock] a new instance of ArgBlock + # + # source://syntax_tree//lib/syntax_tree/node.rb#894 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#930 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#900 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#904 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#892 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#908 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#904 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#921 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#925 + def format(q); end + + # [nil | Node] the expression being turned into a block + # + # source://syntax_tree//lib/syntax_tree/node.rb#889 + def value; end +end + +# ArgParen represents wrapping arguments to a method inside a set of +# parentheses. +# +# method(argument) +# +# In the example above, there would be an ArgParen node around the Args node +# that represents the set of arguments being sent to the method method. The +# argument child node can be +nil+ if no arguments were passed, as in: +# +# method() +# +# source://syntax_tree//lib/syntax_tree/node.rb#727 +class SyntaxTree::ArgParen < ::SyntaxTree::Node + # @return [ArgParen] a new instance of ArgParen + # + # source://syntax_tree//lib/syntax_tree/node.rb#735 + def initialize(arguments:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#784 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#741 + def accept(visitor); end + + # [nil | Args | ArgsForward] the arguments inside the + # parentheses + # + # source://syntax_tree//lib/syntax_tree/node.rb#730 + def arguments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#788 + def arity; end + + # source://syntax_tree//lib/syntax_tree/node.rb#745 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#733 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#749 + def copy(arguments: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#745 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#762 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#766 + def format(q); end + + private + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#794 + def trailing_comma?; end +end + +# Star represents using a splat operator on an expression. +# +# method(*arguments) +# +# source://syntax_tree//lib/syntax_tree/node.rb#939 +class SyntaxTree::ArgStar < ::SyntaxTree::Node + # @return [ArgStar] a new instance of ArgStar + # + # source://syntax_tree//lib/syntax_tree/node.rb#946 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#982 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#952 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#956 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#944 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#960 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#956 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#973 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#977 + def format(q); end + + # [nil | Node] the expression being splatted + # + # source://syntax_tree//lib/syntax_tree/node.rb#941 + def value; end +end + +# Args represents a list of arguments being passed to a method call or array +# literal. +# +# method(first, second, third) +# +# source://syntax_tree//lib/syntax_tree/node.rb#821 +class SyntaxTree::Args < ::SyntaxTree::Node + # @return [Args] a new instance of Args + # + # source://syntax_tree//lib/syntax_tree/node.rb#828 + def initialize(parts:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#863 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#834 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#867 + def arity; end + + # source://syntax_tree//lib/syntax_tree/node.rb#838 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#826 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#842 + def copy(parts: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#838 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#855 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#859 + def format(q); end + + # [Array[ Node ]] the arguments that this node wraps + # + # source://syntax_tree//lib/syntax_tree/node.rb#823 + def parts; end +end + +# ArgsForward represents forwarding all kinds of arguments onto another method +# call. +# +# def request(method, path, **headers, &block); end +# +# def get(...) +# request(:GET, ...) +# end +# +# def post(...) +# request(:POST, ...) +# end +# +# In the example above, both the get and post methods are forwarding all of +# their arguments (positional, keyword, and block) on to the request method. +# The ArgsForward node appears in both the caller (the request method calls) +# and the callee (the get and post definitions). +# +# source://syntax_tree//lib/syntax_tree/node.rb#1004 +class SyntaxTree::ArgsForward < ::SyntaxTree::Node + # @return [ArgsForward] a new instance of ArgsForward + # + # source://syntax_tree//lib/syntax_tree/node.rb#1008 + def initialize(location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1038 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1013 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1042 + def arity; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1017 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#1006 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1021 + def copy(location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1017 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1030 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1034 + def format(q); end +end + +# ArrayLiteral represents an array literal, which can optionally contain +# elements. +# +# [] +# [one, two, three] +# +# source://syntax_tree//lib/syntax_tree/node.rb#1053 +class SyntaxTree::ArrayLiteral < ::SyntaxTree::Node + # @return [ArrayLiteral] a new instance of ArrayLiteral + # + # source://syntax_tree//lib/syntax_tree/node.rb#1153 + def initialize(lbracket:, contents:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1229 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1160 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1164 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#1151 + def comments; end + + # [nil | Args] the contents of the array + # + # source://syntax_tree//lib/syntax_tree/node.rb#1148 + def contents; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1168 + def copy(lbracket: T.unsafe(nil), contents: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1164 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1182 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1191 + def format(q); end + + # [nil | LBracket | QSymbolsBeg | QWordsBeg | SymbolsBeg | WordsBeg] the + # bracket that opens this array + # + # source://syntax_tree//lib/syntax_tree/node.rb#1145 + def lbracket; end + + private + + # If we have an empty array that contains only comments, then we're going + # to do some special printing to ensure they get indented correctly. + # + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#1259 + def empty_with_comments?; end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#1251 + def qsymbols?; end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#1236 + def qwords?; end +end + +# source://syntax_tree//lib/syntax_tree/node.rb#1063 +SyntaxTree::ArrayLiteral::BREAKABLE_SPACE_SEPARATOR = T.let(T.unsafe(nil), SyntaxTree::ArrayLiteral::BreakableSpaceSeparator) + +# It's very common to use seplist with ->(q) { q.breakable_space }. We wrap +# that pattern into an object to cut down on having to create a bunch of +# lambdas all over the place. +# +# source://syntax_tree//lib/syntax_tree/node.rb#1057 +class SyntaxTree::ArrayLiteral::BreakableSpaceSeparator + # source://syntax_tree//lib/syntax_tree/node.rb#1058 + def call(q); end +end + +# This is a special formatter used if the array literal contains no values +# but _does_ contain comments. In this case we do some special formatting to +# make sure the comments gets indented properly. +# +# source://syntax_tree//lib/syntax_tree/node.rb#1120 +class SyntaxTree::ArrayLiteral::EmptyWithCommentsFormatter + # @return [EmptyWithCommentsFormatter] a new instance of EmptyWithCommentsFormatter + # + # source://syntax_tree//lib/syntax_tree/node.rb#1124 + def initialize(lbracket); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1128 + def format(q); end + + # [LBracket] the opening bracket + # + # source://syntax_tree//lib/syntax_tree/node.rb#1122 + def lbracket; end +end + +# Formats an array of multiple simple symbol literals into the %i syntax. +# +# source://syntax_tree//lib/syntax_tree/node.rb#1094 +class SyntaxTree::ArrayLiteral::QSymbolsFormatter + # @return [QSymbolsFormatter] a new instance of QSymbolsFormatter + # + # source://syntax_tree//lib/syntax_tree/node.rb#1098 + def initialize(contents); end + + # [Args] the contents of the array + # + # source://syntax_tree//lib/syntax_tree/node.rb#1096 + def contents; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1102 + def format(q); end +end + +# Formats an array of multiple simple string literals into the %w syntax. +# +# source://syntax_tree//lib/syntax_tree/node.rb#1066 +class SyntaxTree::ArrayLiteral::QWordsFormatter + # @return [QWordsFormatter] a new instance of QWordsFormatter + # + # source://syntax_tree//lib/syntax_tree/node.rb#1070 + def initialize(contents); end + + # [Args] the contents of the array + # + # source://syntax_tree//lib/syntax_tree/node.rb#1068 + def contents; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1074 + def format(q); end +end + +# When we're implementing the === operator for a node, we oftentimes need to +# compare two arrays. We want to skip over the === definition of array and use +# our own here, so we do that using this module. +# +# source://syntax_tree//lib/syntax_tree/node.rb#157 +module SyntaxTree::ArrayMatch + class << self + # source://syntax_tree//lib/syntax_tree/node.rb#158 + def call(left, right); end + end +end + +# AryPtn represents matching against an array pattern using the Ruby 2.7+ +# pattern matching syntax. It’s one of the more complicated nodes, because +# the four parameters that it accepts can almost all be nil. +# +# case [1, 2, 3] +# in [Integer, Integer] +# "matched" +# in Container[Integer, Integer] +# "matched" +# in [Integer, *, Integer] +# "matched" +# end +# +# An AryPtn node is created with four parameters: an optional constant +# wrapper, an array of positional matches, an optional splat with identifier, +# and an optional array of positional matches that occur after the splat. +# All of the in clauses above would create an AryPtn node. +# +# source://syntax_tree//lib/syntax_tree/node.rb#1282 +class SyntaxTree::AryPtn < ::SyntaxTree::Node + # @return [AryPtn] a new instance of AryPtn + # + # source://syntax_tree//lib/syntax_tree/node.rb#1320 + def initialize(constant:, requireds:, rest:, posts:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1388 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1329 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1333 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#1318 + def comments; end + + # [nil | VarRef | ConstPathRef] the optional constant wrapper + # + # source://syntax_tree//lib/syntax_tree/node.rb#1303 + def constant; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1337 + def copy(constant: T.unsafe(nil), requireds: T.unsafe(nil), rest: T.unsafe(nil), posts: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1333 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1359 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1370 + def format(q); end + + # [Array[ Node ]] the list of positional arguments occurring after the + # optional star if there is one + # + # source://syntax_tree//lib/syntax_tree/node.rb#1315 + def posts; end + + # [Array[ Node ]] the regular positional arguments that this array + # pattern is matching against + # + # source://syntax_tree//lib/syntax_tree/node.rb#1307 + def requireds; end + + # [nil | VarField] the optional starred identifier that grabs up a list of + # positional arguments + # + # source://syntax_tree//lib/syntax_tree/node.rb#1311 + def rest; end +end + +# Formats the optional splat of an array pattern. +# +# source://syntax_tree//lib/syntax_tree/node.rb#1284 +class SyntaxTree::AryPtn::RestFormatter + # @return [RestFormatter] a new instance of RestFormatter + # + # source://syntax_tree//lib/syntax_tree/node.rb#1288 + def initialize(value); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1292 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1296 + def format(q); end + + # [VarField] the identifier that represents the remaining positionals + # + # source://syntax_tree//lib/syntax_tree/node.rb#1286 + def value; end +end + +# Assign represents assigning something to a variable or constant. Generally, +# the left side of the assignment is going to be any node that ends with the +# name "Field". +# +# variable = value +# +# source://syntax_tree//lib/syntax_tree/node.rb#1418 +class SyntaxTree::Assign < ::SyntaxTree::Node + # @return [Assign] a new instance of Assign + # + # source://syntax_tree//lib/syntax_tree/node.rb#1429 + def initialize(target:, value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1479 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1436 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1440 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#1427 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1444 + def copy(target: T.unsafe(nil), value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1440 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1458 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1462 + def format(q); end + + # [ARefField | ConstPathField | Field | TopConstField | VarField] the target + # to assign the result of the expression to + # + # source://syntax_tree//lib/syntax_tree/node.rb#1421 + def target; end + + # [Node] the expression to be assigned + # + # source://syntax_tree//lib/syntax_tree/node.rb#1424 + def value; end + + private + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#1485 + def skip_indent?; end +end + +# Determins if the following value should be indented or not. +# +# source://syntax_tree//lib/syntax_tree/node.rb#1396 +module SyntaxTree::AssignFormatting + class << self + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#1397 + def skip_indent?(value); end + end +end + +# Assoc represents a key-value pair within a hash. It is a child node of +# either an AssocListFromArgs or a BareAssocHash. +# +# { key1: value1, key2: value2 } +# +# In the above example, the would be two Assoc nodes. +# +# source://syntax_tree//lib/syntax_tree/node.rb#1497 +class SyntaxTree::Assoc < ::SyntaxTree::Node + # @return [Assoc] a new instance of Assoc + # + # source://syntax_tree//lib/syntax_tree/node.rb#1507 + def initialize(key:, value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1548 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1514 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1518 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#1505 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1522 + def copy(key: T.unsafe(nil), value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1518 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1536 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1540 + def format(q); end + + # [Node] the key of this pair + # + # source://syntax_tree//lib/syntax_tree/node.rb#1499 + def key; end + + # [nil | Node] the value of this pair + # + # source://syntax_tree//lib/syntax_tree/node.rb#1502 + def value; end + + private + + # source://syntax_tree//lib/syntax_tree/node.rb#1554 + def format_contents(q); end +end + +# AssocSplat represents double-splatting a value into a hash (either a hash +# literal or a bare hash in a method call). +# +# { **pairs } +# +# source://syntax_tree//lib/syntax_tree/node.rb#1575 +class SyntaxTree::AssocSplat < ::SyntaxTree::Node + # @return [AssocSplat] a new instance of AssocSplat + # + # source://syntax_tree//lib/syntax_tree/node.rb#1582 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1618 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1588 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1592 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#1580 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1596 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1592 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1609 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1613 + def format(q); end + + # [nil | Node] the expression that is being splatted + # + # source://syntax_tree//lib/syntax_tree/node.rb#1577 + def value; end +end + +# BEGINBlock represents the use of the +BEGIN+ keyword, which hooks into the +# lifecycle of the interpreter. Whatever is inside the block will get executed +# when the program starts. +# +# BEGIN { +# } +# +# Interestingly, the BEGIN keyword doesn't allow the do and end keywords for +# the block. Only braces are permitted. +# +# source://syntax_tree//lib/syntax_tree/node.rb#175 +class SyntaxTree::BEGINBlock < ::SyntaxTree::Node + # @return [BEGINBlock] a new instance of BEGINBlock + # + # source://syntax_tree//lib/syntax_tree/node.rb#185 + def initialize(lbrace:, statements:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#236 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#192 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#196 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#183 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#200 + def copy(lbrace: T.unsafe(nil), statements: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#196 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#214 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#223 + def format(q); end + + # [LBrace] the left brace that is seen after the keyword + # + # source://syntax_tree//lib/syntax_tree/node.rb#177 + def lbrace; end + + # [Statements] the expressions to be executed + # + # source://syntax_tree//lib/syntax_tree/node.rb#180 + def statements; end +end + +# Backref represents a global variable referencing a matched value. It comes +# in the form of a $ followed by a positive integer. +# +# $1 +# +# source://syntax_tree//lib/syntax_tree/node.rb#1628 +class SyntaxTree::Backref < ::SyntaxTree::Node + # @return [Backref] a new instance of Backref + # + # source://syntax_tree//lib/syntax_tree/node.rb#1635 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1670 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1641 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1645 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#1633 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1649 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1645 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1662 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1666 + def format(q); end + + # [String] the name of the global backreference variable + # + # source://syntax_tree//lib/syntax_tree/node.rb#1630 + def value; end +end + +# Backtick represents the use of the ` operator. It's usually found being used +# for an XStringLiteral, but could also be found as the name of a method being +# defined. +# +# source://syntax_tree//lib/syntax_tree/node.rb#1678 +class SyntaxTree::Backtick < ::SyntaxTree::Node + # @return [Backtick] a new instance of Backtick + # + # source://syntax_tree//lib/syntax_tree/node.rb#1685 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1720 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1691 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1695 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#1683 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1699 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1695 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1712 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1716 + def format(q); end + + # [String] the backtick in the string + # + # source://syntax_tree//lib/syntax_tree/node.rb#1680 + def value; end +end + +# BareAssocHash represents a hash of contents being passed as a method +# argument (and therefore has omitted braces). It's very similar to an +# AssocListFromArgs node. +# +# method(key1: value1, key2: value2) +# +# source://syntax_tree//lib/syntax_tree/node.rb#1834 +class SyntaxTree::BareAssocHash < ::SyntaxTree::Node + # @return [BareAssocHash] a new instance of BareAssocHash + # + # source://syntax_tree//lib/syntax_tree/node.rb#1841 + def initialize(assocs:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1876 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1847 + def accept(visitor); end + + # [Array[ Assoc | AssocSplat ]] + # + # source://syntax_tree//lib/syntax_tree/node.rb#1836 + def assocs; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1851 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#1839 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1855 + def copy(assocs: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1851 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1868 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1872 + def format(q); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1880 + def format_key(q, key); end +end + +# BasicVisitor is the parent class of the Visitor class that provides the +# ability to walk down the tree. It does not define any handlers, so you +# should extend this class if you want your visitor to raise an error if you +# attempt to visit a node that you don't handle. +# +# source://syntax_tree//lib/syntax_tree/basic_visitor.rb#8 +class SyntaxTree::BasicVisitor + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#105 + def visit(node); end + + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#109 + def visit_all(nodes); end + + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_child_nodes(node); end + + class << self + # This is the list of all of the valid visit methods. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#72 + def valid_visit_methods; end + + # This method is here to help folks write visitors. + # + # It's not always easy to ensure you're writing the correct method name in + # the visitor since it's perfectly valid to define methods that don't + # override these parent methods. + # + # If you use this method, you can ensure you're writing the correct method + # name. It will raise an error if the visit method you're defining isn't + # actually a method on the parent visitor. + # + # @raise [VisitMethodError] + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#86 + def visit_method(method_name); end + + # This method is here to help folks write visitors. + # + # Within the given block, every method that is defined will be checked to + # ensure it's a valid visit method using the BasicVisitor::visit_method + # method defined above. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#97 + def visit_methods; end + end +end + +# This class is used by DidYouMean to offer corrections to invalid visit +# method names. +# +# source://syntax_tree//lib/syntax_tree/basic_visitor.rb#22 +class SyntaxTree::BasicVisitor::VisitMethodChecker + # @return [VisitMethodChecker] a new instance of VisitMethodChecker + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#25 + def initialize(error); end + + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#29 + def corrections; end + + # Returns the value of attribute visit_method. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#23 + def visit_method; end +end + +# This is raised when you use the Visitor.visit_method method and it fails. +# It is correctable to through DidYouMean. +# +# source://syntax_tree//lib/syntax_tree/basic_visitor.rb#11 +class SyntaxTree::BasicVisitor::VisitMethodError < ::StandardError + include ::DidYouMean::Correctable + + # @return [VisitMethodError] a new instance of VisitMethodError + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#14 + def initialize(visit_method); end + + # Returns the value of attribute visit_method. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#12 + def visit_method; end +end + +# This module is responsible for checking all of the methods defined within +# a given block to ensure that they are valid visit methods. +# +# source://syntax_tree//lib/syntax_tree/basic_visitor.rb#45 +class SyntaxTree::BasicVisitor::VisitMethodsChecker < ::Module + # @return [VisitMethodsChecker] a new instance of VisitMethodsChecker + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#53 + def initialize; end + + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#65 + def disable!; end + + # This is the status of the checker. It's used to determine whether or not + # we should be checking the methods that are defined. It is kept as an + # instance variable so that it can be disabled later. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#51 + def status; end +end + +# source://syntax_tree//lib/syntax_tree/basic_visitor.rb#46 +class SyntaxTree::BasicVisitor::VisitMethodsChecker::Status < ::Struct + # Returns the value of attribute checking + # + # @return [Object] the current value of checking + def checking; end + + # Sets the attribute checking + # + # @param value [Object] the value to set the attribute checking to. + # @return [Object] the newly set value + def checking=(_); end + + class << self + def [](*_arg0); end + def inspect; end + def keyword_init?; end + def members; end + def new(*_arg0); end + end +end + +# Begin represents a begin..end chain. +# +# begin +# value +# end +# +# source://syntax_tree//lib/syntax_tree/node.rb#1899 +class SyntaxTree::Begin < ::SyntaxTree::Node + # @return [Begin] a new instance of Begin + # + # source://syntax_tree//lib/syntax_tree/node.rb#1906 + def initialize(bodystmt:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1951 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1912 + def accept(visitor); end + + # [BodyStmt] the bodystmt that contains the contents of this begin block + # + # source://syntax_tree//lib/syntax_tree/node.rb#1901 + def bodystmt; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1916 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#1904 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1920 + def copy(bodystmt: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1916 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1933 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1937 + def format(q); end +end + +# Binary represents any expression that involves two sub-expressions with an +# operator in between. This can be something that looks like a mathematical +# operation: +# +# 1 + 1 +# +# but can also be something like pushing a value onto an array: +# +# array << value +# +# source://syntax_tree//lib/syntax_tree/node.rb#2029 +class SyntaxTree::Binary < ::SyntaxTree::Node + # @return [Binary] a new instance of Binary + # + # source://syntax_tree//lib/syntax_tree/node.rb#2056 + def initialize(left:, operator:, right:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2128 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2064 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2068 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#2054 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#2072 + def copy(left: T.unsafe(nil), operator: T.unsafe(nil), right: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2068 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#2087 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2097 + def format(q); end + + # [Node] the left-hand side of the expression + # + # source://syntax_tree//lib/syntax_tree/node.rb#2045 + def left; end + + # [Symbol] the operator used between the two expressions + # + # source://syntax_tree//lib/syntax_tree/node.rb#2048 + def operator; end + + # [Node] the right-hand side of the expression + # + # source://syntax_tree//lib/syntax_tree/node.rb#2051 + def right; end +end + +# BlockArg represents declaring a block parameter on a method definition. +# +# def method(&block); end +# +# source://syntax_tree//lib/syntax_tree/node.rb#2227 +class SyntaxTree::BlockArg < ::SyntaxTree::Node + # @return [BlockArg] a new instance of BlockArg + # + # source://syntax_tree//lib/syntax_tree/node.rb#2234 + def initialize(name:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2270 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2240 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2244 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#2232 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#2248 + def copy(name: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2244 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#2261 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2265 + def format(q); end + + # [nil | Ident] the name of the block argument + # + # source://syntax_tree//lib/syntax_tree/node.rb#2229 + def name; end +end + +# Block represents passing a block to a method call using the +do+ and +end+ +# keywords or the +{+ and +}+ operators. +# +# method do |value| +# end +# +# method { |value| } +# +# source://syntax_tree//lib/syntax_tree/node.rb#4312 +class SyntaxTree::BlockNode < ::SyntaxTree::Node + # @return [BlockNode] a new instance of BlockNode + # + # source://syntax_tree//lib/syntax_tree/node.rb#4347 + def initialize(opening:, block_var:, bodystmt:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4420 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4355 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4429 + def arity; end + + # [nil | BlockVar] the optional variable declaration within this block + # + # source://syntax_tree//lib/syntax_tree/node.rb#4339 + def block_var; end + + # [BodyStmt | Statements] the expressions to be executed within this block + # + # source://syntax_tree//lib/syntax_tree/node.rb#4342 + def bodystmt; end + + # source://syntax_tree//lib/syntax_tree/node.rb#4359 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#4345 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#4363 + def copy(opening: T.unsafe(nil), block_var: T.unsafe(nil), bodystmt: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4359 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#4378 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4388 + def format(q); end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#4425 + def keywords?; end + + # [LBrace | Kw] the left brace or the do keyword that opens this block + # + # source://syntax_tree//lib/syntax_tree/node.rb#4336 + def opening; end + + private + + # If we're the predicate of a loop or conditional, then we're going to have + # to go with the {..} bounds. + # + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#4471 + def forced_brace_bounds?(q); end + + # If we're a sibling of a control-flow keyword, then we're going to have to + # use the do..end bounds. + # + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#4460 + def forced_do_end_bounds?(q); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4487 + def format_break(q, break_opening, break_closing); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4507 + def format_flat(q, flat_opening, flat_closing); end + + # If this is nested anywhere inside certain nodes, then we can't change + # which operators/keywords we're using for the bounds of the block. + # + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#4442 + def unchangeable_bounds?(q); end +end + +# Formats the opening brace or keyword of a block. +# +# source://syntax_tree//lib/syntax_tree/node.rb#4314 +class SyntaxTree::BlockNode::BlockOpenFormatter + # @return [BlockOpenFormatter] a new instance of BlockOpenFormatter + # + # source://syntax_tree//lib/syntax_tree/node.rb#4321 + def initialize(text, node); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4326 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#4330 + def format(q); end + + # [LBrace | Keyword] the node that is being represented + # + # source://syntax_tree//lib/syntax_tree/node.rb#4319 + def node; end + + # [String] the actual output that should be printed + # + # source://syntax_tree//lib/syntax_tree/node.rb#4316 + def text; end +end + +# BlockVar represents the parameters being declared for a block. Effectively +# this node is everything contained within the pipes. This includes all of the +# various parameter types, as well as block-local variable declarations. +# +# method do |positional, optional = value, keyword:, █ local| +# end +# +# source://syntax_tree//lib/syntax_tree/node.rb#2141 +class SyntaxTree::BlockVar < ::SyntaxTree::Node + # @return [BlockVar] a new instance of BlockVar + # + # source://syntax_tree//lib/syntax_tree/node.rb#2151 + def initialize(params:, locals:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2209 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2158 + def accept(visitor); end + + # When a single required parameter is declared for a block, it gets + # automatically expanded if the values being yielded into it are an array. + # + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#2216 + def arg0?; end + + # source://syntax_tree//lib/syntax_tree/node.rb#2162 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#2149 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#2166 + def copy(params: T.unsafe(nil), locals: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2162 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#2180 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2196 + def format(q); end + + # [Array[ Ident ]] the list of block-local variable declarations + # + # source://syntax_tree//lib/syntax_tree/node.rb#2146 + def locals; end + + # [Params] the parameters being declared with the block + # + # source://syntax_tree//lib/syntax_tree/node.rb#2143 + def params; end +end + +# We'll keep a single instance of this separator around for all block vars +# to cut down on allocations. +# +# source://syntax_tree//lib/syntax_tree/node.rb#2194 +SyntaxTree::BlockVar::SEPARATOR = T.let(T.unsafe(nil), SyntaxTree::BlockVar::Separator) + +# Within the pipes of the block declaration, we don't want any spaces. So +# we'll separate the parameters with a comma and space but no breakables. +# +# source://syntax_tree//lib/syntax_tree/node.rb#2186 +class SyntaxTree::BlockVar::Separator + # source://syntax_tree//lib/syntax_tree/node.rb#2187 + def call(q); end +end + +# bodystmt can't actually determine its bounds appropriately because it +# doesn't necessarily know where it started. So the parent node needs to +# report back down into this one where it goes. +# +# source://syntax_tree//lib/syntax_tree/node.rb#2278 +class SyntaxTree::BodyStmt < ::SyntaxTree::Node + # @return [BodyStmt] a new instance of BodyStmt + # + # source://syntax_tree//lib/syntax_tree/node.rb#2297 + def initialize(statements:, rescue_clause:, else_keyword:, else_clause:, ensure_clause:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2428 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2352 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2314 + def bind(parser, start_char, start_column, end_char, end_column); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2356 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#2295 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#2360 + def copy(statements: T.unsafe(nil), rescue_clause: T.unsafe(nil), else_keyword: T.unsafe(nil), else_clause: T.unsafe(nil), ensure_clause: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2356 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#2384 + def deconstruct_keys(_keys); end + + # [nil | Statements] the optional set of statements inside the else clause + # + # source://syntax_tree//lib/syntax_tree/node.rb#2289 + def else_clause; end + + # [nil | Kw] the optional else keyword + # + # source://syntax_tree//lib/syntax_tree/node.rb#2286 + def else_keyword; end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#2348 + def empty?; end + + # [nil | Ensure] the optional ensure clause + # + # source://syntax_tree//lib/syntax_tree/node.rb#2292 + def ensure_clause; end + + # source://syntax_tree//lib/syntax_tree/node.rb#2396 + def format(q); end + + # [nil | Rescue] the optional rescue chain attached to the begin clause + # + # source://syntax_tree//lib/syntax_tree/node.rb#2283 + def rescue_clause; end + + # [Statements] the list of statements inside the begin clause + # + # source://syntax_tree//lib/syntax_tree/node.rb#2280 + def statements; end +end + +# Break represents using the +break+ keyword. +# +# break +# +# It can also optionally accept arguments, as in: +# +# break 1 +# +# source://syntax_tree//lib/syntax_tree/node.rb#2634 +class SyntaxTree::Break < ::SyntaxTree::Node + # @return [Break] a new instance of Break + # + # source://syntax_tree//lib/syntax_tree/node.rb#2641 + def initialize(arguments:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2676 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2647 + def accept(visitor); end + + # [Args] the arguments being sent to the keyword + # + # source://syntax_tree//lib/syntax_tree/node.rb#2636 + def arguments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#2651 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#2639 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#2655 + def copy(arguments: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2651 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#2668 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2672 + def format(q); end +end + +# CHAR irepresents a single codepoint in the script encoding. +# +# ?a +# +# In the example above, the CHAR node represents the string literal "a". You +# can use control characters with this as well, as in ?\C-a. +# +# source://syntax_tree//lib/syntax_tree/node.rb#248 +class SyntaxTree::CHAR < ::SyntaxTree::Node + # @return [CHAR] a new instance of CHAR + # + # source://syntax_tree//lib/syntax_tree/node.rb#255 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#296 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#261 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#265 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#253 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#269 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#265 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#282 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#286 + def format(q); end + + # [String] the value of the character literal + # + # source://syntax_tree//lib/syntax_tree/node.rb#250 + def value; end +end + +# CVar represents the use of a class variable. +# +# @@variable +# +# source://syntax_tree//lib/syntax_tree/node.rb#4046 +class SyntaxTree::CVar < ::SyntaxTree::Node + # @return [CVar] a new instance of CVar + # + # source://syntax_tree//lib/syntax_tree/node.rb#4053 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4088 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4059 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4063 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#4051 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#4067 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4063 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#4080 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4084 + def format(q); end + + # [String] the name of the class variable + # + # source://syntax_tree//lib/syntax_tree/node.rb#4048 + def value; end +end + +# This is probably the most complicated formatter in this file. It's +# responsible for formatting chains of method calls, with or without arguments +# or blocks. In general, we want to go from something like +# +# foo.bar.baz +# +# to +# +# foo +# .bar +# .baz +# +# Of course there are a lot of caveats to that, including trailing operators +# when necessary, where comments are places, how blocks are aligned, etc. +# +# source://syntax_tree//lib/syntax_tree/node.rb#2721 +class SyntaxTree::CallChainFormatter + # @return [CallChainFormatter] a new instance of CallChainFormatter + # + # source://syntax_tree//lib/syntax_tree/node.rb#2725 + def initialize(node); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2729 + def format(q); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2795 + def format_chain(q, children); end + + # [CallNode | MethodAddBlock] the top of the call chain + # + # source://syntax_tree//lib/syntax_tree/node.rb#2723 + def node; end + + private + + # For certain nodes, we want to attach directly to the end and don't + # want to indent the first call. So we'll pop off the first children and + # format it separately here. + # + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#2898 + def attach_directly?(node); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2908 + def format_child(q, child, skip_comments: T.unsafe(nil), skip_operator: T.unsafe(nil), skip_attached: T.unsafe(nil)); end + + class << self + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#2879 + def chained?(node); end + end +end + +# CallNode represents a method call. +# +# receiver.message +# +# source://syntax_tree//lib/syntax_tree/node.rb#2946 +class SyntaxTree::CallNode < ::SyntaxTree::Node + # @return [CallNode] a new instance of CallNode + # + # source://syntax_tree//lib/syntax_tree/node.rb#2962 + def initialize(receiver:, operator:, message:, arguments:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3057 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2971 + def accept(visitor); end + + # [nil | ArgParen | Args] the arguments to the method call + # + # source://syntax_tree//lib/syntax_tree/node.rb#2957 + def arguments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3103 + def arity; end + + # source://syntax_tree//lib/syntax_tree/node.rb#2975 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#2960 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#2984 + def copy(receiver: T.unsafe(nil), operator: T.unsafe(nil), message: T.unsafe(nil), arguments: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2975 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3006 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3017 + def format(q); end + + # Print out the arguments to this call. If there are no arguments, then do + # nothing. + # + # source://syntax_tree//lib/syntax_tree/node.rb#3065 + def format_arguments(q); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3075 + def format_contents(q); end + + # [:call | Backtick | Const | Ident | Op] the message being sent + # + # source://syntax_tree//lib/syntax_tree/node.rb#2954 + def message; end + + # [nil | :"::" | Op | Period] the operator being used to send the message + # + # source://syntax_tree//lib/syntax_tree/node.rb#2951 + def operator; end + + # [nil | Node] the receiver of the method call + # + # source://syntax_tree//lib/syntax_tree/node.rb#2948 + def receiver; end +end + +# Wraps a call operator (which can be a string literal :: or an Op node or a +# Period node) and formats it when called. +# +# source://syntax_tree//lib/syntax_tree/node.rb#2683 +class SyntaxTree::CallOperatorFormatter + # @return [CallOperatorFormatter] a new instance of CallOperatorFormatter + # + # source://syntax_tree//lib/syntax_tree/node.rb#2687 + def initialize(operator); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2691 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#2695 + def format(q); end + + # [:"::" | Op | Period] the operator being formatted + # + # source://syntax_tree//lib/syntax_tree/node.rb#2685 + def operator; end +end + +# Case represents the beginning of a case chain. +# +# case value +# when 1 +# "one" +# when 2 +# "two" +# else +# "number" +# end +# +# source://syntax_tree//lib/syntax_tree/node.rb#3119 +class SyntaxTree::Case < ::SyntaxTree::Node + # @return [Case] a new instance of Case + # + # source://syntax_tree//lib/syntax_tree/node.rb#3132 + def initialize(keyword:, value:, consequent:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3190 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3140 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3144 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#3130 + def comments; end + + # [In | When] the next clause in the chain + # + # source://syntax_tree//lib/syntax_tree/node.rb#3127 + def consequent; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3148 + def copy(keyword: T.unsafe(nil), value: T.unsafe(nil), consequent: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3144 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3163 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3173 + def format(q); end + + # [Kw] the keyword that opens this expression + # + # source://syntax_tree//lib/syntax_tree/node.rb#3121 + def keyword; end + + # [nil | Node] optional value being switched on + # + # source://syntax_tree//lib/syntax_tree/node.rb#3124 + def value; end +end + +# Class represents defining a class using the +class+ keyword. +# +# class Container +# end +# +# Classes can have path names as their class name in case it's being nested +# under a namespace, as in: +# +# class Namespace::Container +# end +# +# Classes can also be defined as a top-level path, in the case that it's +# already in a namespace but you want to define it at the top-level instead, +# as in: +# +# module OtherNamespace +# class ::Namespace::Container +# end +# end +# +# All of these declarations can also have an optional superclass reference, as +# in: +# +# class Child < Parent +# end +# +# That superclass can actually be any Ruby expression, it doesn't necessarily +# need to be a constant, as in: +# +# class Child < method +# end +# +# source://syntax_tree//lib/syntax_tree/node.rb#3315 +class SyntaxTree::ClassDeclaration < ::SyntaxTree::Node + # @return [ClassDeclaration] a new instance of ClassDeclaration + # + # source://syntax_tree//lib/syntax_tree/node.rb#3329 + def initialize(constant:, superclass:, bodystmt:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3392 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3337 + def accept(visitor); end + + # [BodyStmt] the expressions to execute within the context of the class + # + # source://syntax_tree//lib/syntax_tree/node.rb#3324 + def bodystmt; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3341 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#3327 + def comments; end + + # [ConstPathRef | ConstRef | TopConstRef] the name of the class being + # defined + # + # source://syntax_tree//lib/syntax_tree/node.rb#3318 + def constant; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3345 + def copy(constant: T.unsafe(nil), superclass: T.unsafe(nil), bodystmt: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3341 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3360 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3370 + def format(q); end + + # [nil | Node] the optional superclass declaration + # + # source://syntax_tree//lib/syntax_tree/node.rb#3321 + def superclass; end + + private + + # source://syntax_tree//lib/syntax_tree/node.rb#3399 + def format_declaration(q); end +end + +# Comma represents the use of the , operator. +# +# source://syntax_tree//lib/syntax_tree/node.rb#3413 +class SyntaxTree::Comma < ::SyntaxTree::Node + # @return [Comma] a new instance of Comma + # + # source://syntax_tree//lib/syntax_tree/node.rb#3417 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3440 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3422 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3426 + def child_nodes; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3430 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3426 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3436 + def deconstruct_keys(_keys); end + + # [String] the comma in the string + # + # source://syntax_tree//lib/syntax_tree/node.rb#3415 + def value; end +end + +# Command represents a method call with arguments and no parentheses. Note +# that Command nodes only happen when there is no explicit receiver for this +# method. +# +# method argument +# +# source://syntax_tree//lib/syntax_tree/node.rb#3451 +class SyntaxTree::Command < ::SyntaxTree::Node + # @return [Command] a new instance of Command + # + # source://syntax_tree//lib/syntax_tree/node.rb#3464 + def initialize(message:, arguments:, block:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3514 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3472 + def accept(visitor); end + + # [Args] the arguments being sent with the message + # + # source://syntax_tree//lib/syntax_tree/node.rb#3456 + def arguments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3519 + def arity; end + + # [nil | BlockNode] the optional block being passed to the method + # + # source://syntax_tree//lib/syntax_tree/node.rb#3459 + def block; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3476 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#3462 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3480 + def copy(message: T.unsafe(nil), arguments: T.unsafe(nil), block: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3476 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3495 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3505 + def format(q); end + + # [Const | Ident] the message being sent to the implicit receiver + # + # source://syntax_tree//lib/syntax_tree/node.rb#3453 + def message; end + + private + + # source://syntax_tree//lib/syntax_tree/node.rb#3525 + def align(q, node, &block); end +end + +# CommandCall represents a method call on an object with arguments and no +# parentheses. +# +# object.method argument +# +# source://syntax_tree//lib/syntax_tree/node.rb#3563 +class SyntaxTree::CommandCall < ::SyntaxTree::Node + # @return [CommandCall] a new instance of CommandCall + # + # source://syntax_tree//lib/syntax_tree/node.rb#3582 + def initialize(receiver:, operator:, message:, arguments:, block:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3686 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3599 + def accept(visitor); end + + # [nil | Args | ArgParen] the arguments going along with the message + # + # source://syntax_tree//lib/syntax_tree/node.rb#3574 + def arguments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3692 + def arity; end + + # [nil | BlockNode] the block associated with this method call + # + # source://syntax_tree//lib/syntax_tree/node.rb#3577 + def block; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3603 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#3580 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3607 + def copy(receiver: T.unsafe(nil), operator: T.unsafe(nil), message: T.unsafe(nil), arguments: T.unsafe(nil), block: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3603 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3631 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3643 + def format(q); end + + # [:call | Const | Ident | Op] the message being send + # + # source://syntax_tree//lib/syntax_tree/node.rb#3571 + def message; end + + # [nil | :"::" | Op | Period] the operator used to send the message + # + # source://syntax_tree//lib/syntax_tree/node.rb#3568 + def operator; end + + # [nil | Node] the receiver of the message + # + # source://syntax_tree//lib/syntax_tree/node.rb#3565 + def receiver; end + + private + + # source://syntax_tree//lib/syntax_tree/node.rb#3698 + def argument_alignment(q, doc); end +end + +# Comment represents a comment in the source. +# +# # comment +# +# source://syntax_tree//lib/syntax_tree/node.rb#3725 +class SyntaxTree::Comment < ::SyntaxTree::Node + # @return [Comment] a new instance of Comment + # + # source://syntax_tree//lib/syntax_tree/node.rb#3734 + def initialize(value:, inline:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3793 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3767 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3771 + def child_nodes; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3763 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3775 + def copy(value: T.unsafe(nil), inline: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3771 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3785 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3789 + def format(q); end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#3759 + def ignore?; end + + # [boolean] whether or not there is code on the same line as this comment. + # If there is, then inline will be true. + # + # source://syntax_tree//lib/syntax_tree/node.rb#3731 + def inline; end + + # [boolean] whether or not there is code on the same line as this comment. + # If there is, then inline will be true. + # + # source://syntax_tree//lib/syntax_tree/node.rb#3731 + def inline?; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3743 + def leading!; end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#3747 + def leading?; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3751 + def trailing!; end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#3755 + def trailing?; end + + # [String] the contents of the comment + # + # source://syntax_tree//lib/syntax_tree/node.rb#3727 + def value; end +end + +# Formats an If or Unless node. +# +# source://syntax_tree//lib/syntax_tree/node.rb#6317 +class SyntaxTree::ConditionalFormatter + # @return [ConditionalFormatter] a new instance of ConditionalFormatter + # + # source://syntax_tree//lib/syntax_tree/node.rb#6324 + def initialize(keyword, node); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6329 + def format(q); end + + # [String] the keyword associated with this conditional + # + # source://syntax_tree//lib/syntax_tree/node.rb#6319 + def keyword; end + + # [If | Unless] the node that is being formatted + # + # source://syntax_tree//lib/syntax_tree/node.rb#6322 + def node; end + + private + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#6453 + def contains_conditional?; end + + # source://syntax_tree//lib/syntax_tree/node.rb#6388 + def format_break(q, force:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6380 + def format_flat(q); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6408 + def format_ternary(q); end +end + +# Const represents a literal value that _looks_ like a constant. This could +# actually be a reference to a constant: +# +# Constant +# +# It could also be something that looks like a constant in another context, as +# in a method call to a capitalized method: +# +# object.Constant +# +# or a symbol that starts with a capital letter: +# +# :Constant +# +# source://syntax_tree//lib/syntax_tree/node.rb#3812 +class SyntaxTree::Const < ::SyntaxTree::Node + # @return [Const] a new instance of Const + # + # source://syntax_tree//lib/syntax_tree/node.rb#3819 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3854 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3825 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3829 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#3817 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3833 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3829 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3846 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3850 + def format(q); end + + # [String] the name of the constant + # + # source://syntax_tree//lib/syntax_tree/node.rb#3814 + def value; end +end + +# ConstPathField represents the child node of some kind of assignment. It +# represents when you're assigning to a constant that is being referenced as +# a child of another variable. +# +# object::Const = value +# +# source://syntax_tree//lib/syntax_tree/node.rb#3865 +class SyntaxTree::ConstPathField < ::SyntaxTree::Node + # @return [ConstPathField] a new instance of ConstPathField + # + # source://syntax_tree//lib/syntax_tree/node.rb#3875 + def initialize(parent:, constant:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3919 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3882 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3886 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#3873 + def comments; end + + # [Const] the constant itself + # + # source://syntax_tree//lib/syntax_tree/node.rb#3870 + def constant; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3890 + def copy(parent: T.unsafe(nil), constant: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3886 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3904 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3913 + def format(q); end + + # [Node] the source of the constant + # + # source://syntax_tree//lib/syntax_tree/node.rb#3867 + def parent; end +end + +# ConstPathRef represents referencing a constant by a path. +# +# object::Const +# +# source://syntax_tree//lib/syntax_tree/node.rb#3929 +class SyntaxTree::ConstPathRef < ::SyntaxTree::Node + # @return [ConstPathRef] a new instance of ConstPathRef + # + # source://syntax_tree//lib/syntax_tree/node.rb#3939 + def initialize(parent:, constant:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3983 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3946 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3950 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#3937 + def comments; end + + # [Const] the constant itself + # + # source://syntax_tree//lib/syntax_tree/node.rb#3934 + def constant; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3954 + def copy(parent: T.unsafe(nil), constant: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3950 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3968 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3977 + def format(q); end + + # [Node] the source of the constant + # + # source://syntax_tree//lib/syntax_tree/node.rb#3931 + def parent; end +end + +# ConstRef represents the name of the constant being used in a class or module +# declaration. +# +# class Container +# end +# +# source://syntax_tree//lib/syntax_tree/node.rb#3995 +class SyntaxTree::ConstRef < ::SyntaxTree::Node + # @return [ConstRef] a new instance of ConstRef + # + # source://syntax_tree//lib/syntax_tree/node.rb#4002 + def initialize(constant:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4037 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4008 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4012 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#4000 + def comments; end + + # [Const] the constant itself + # + # source://syntax_tree//lib/syntax_tree/node.rb#3997 + def constant; end + + # source://syntax_tree//lib/syntax_tree/node.rb#4016 + def copy(constant: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4012 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#4029 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4033 + def format(q); end +end + +# If the predicate of a conditional or loop contains an assignment (in which +# case we can't know for certain that that assignment doesn't impact the +# statements inside the conditional) then we can't use the modifier form +# and we must use the block form. +# +# source://syntax_tree//lib/syntax_tree/node.rb#6232 +module SyntaxTree::ContainsAssignment + class << self + # source://syntax_tree//lib/syntax_tree/node.rb#6233 + def call(parent); end + end +end + +# The default indentation level for formatting. We allow changing this so +# that Syntax Tree can format arbitrary parts of a document. +# +# source://syntax_tree//lib/syntax_tree.rb#57 +SyntaxTree::DEFAULT_INDENTATION = T.let(T.unsafe(nil), Integer) + +# This is the default print width when formatting. It can be overridden in the +# CLI by passing the --print-width option or here in the API by passing the +# optional second argument to ::format. +# +# source://syntax_tree//lib/syntax_tree.rb#49 +SyntaxTree::DEFAULT_PRINT_WIDTH = T.let(T.unsafe(nil), Integer) + +# This is the default ruby version that we're going to target for formatting. +# It shouldn't really be changed except in very niche circumstances. +# +# source://syntax_tree//lib/syntax_tree.rb#53 +SyntaxTree::DEFAULT_RUBY_VERSION = T.let(T.unsafe(nil), SyntaxTree::Formatter::SemanticVersion) + +# This module provides shortcuts for creating AST nodes. +# +# source://syntax_tree//lib/syntax_tree/dsl.rb#5 +module SyntaxTree::DSL + # Create a new ARef node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#40 + def ARef(collection, index); end + + # Create a new ARefField node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#45 + def ARefField(collection, index); end + + # Create a new AliasNode node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#35 + def AliasNode(left, right); end + + # Create a new ArgBlock node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#64 + def ArgBlock(value); end + + # Create a new ArgParen node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#54 + def ArgParen(arguments); end + + # Create a new ArgStar node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#69 + def ArgStar(value); end + + # Create a new Args node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#59 + def Args(parts); end + + # Create a new ArgsForward node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#74 + def ArgsForward; end + + # Create a new ArrayLiteral node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#79 + def ArrayLiteral(lbracket, contents); end + + # Create a new AryPtn node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#88 + def AryPtn(constant, requireds, rest, posts); end + + # Create a new Assign node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#99 + def Assign(target, value); end + + # Create a new Assoc node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#104 + def Assoc(key, value); end + + # Create a new AssocSplat node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#109 + def AssocSplat(value); end + + # Create a new BEGINBlock node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#7 + def BEGINBlock(lbrace, statements); end + + # Create a new Backref node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#114 + def Backref(value); end + + # Create a new Backtick node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#119 + def Backtick(value); end + + # Create a new BareAssocHash node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#124 + def BareAssocHash(assocs); end + + # Create a new Begin node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#129 + def Begin(bodystmt); end + + # Create a new Binary node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#139 + def Binary(left, operator, right); end + + # Create a new BlockArg node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#154 + def BlockArg(name); end + + # Create a new BlockNode node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#317 + def BlockNode(opening, block_var, bodystmt); end + + # Create a new BlockVar node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#149 + def BlockVar(params, locals); end + + # Create a new BodyStmt node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#159 + def BodyStmt(statements, rescue_clause, else_keyword, else_clause, ensure_clause); end + + # Create a new Break node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#177 + def Break(arguments); end + + # Create a new CHAR node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#16 + def CHAR(value); end + + # Create a new CVar node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#288 + def CVar(value); end + + # Create a new CallNode node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#182 + def CallNode(receiver, operator, message, arguments); end + + # Create a new Case node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#193 + def Case(keyword, value, consequent); end + + # Create a new ClassDeclaration node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#213 + def ClassDeclaration(constant, superclass, bodystmt, location = T.unsafe(nil)); end + + # Create a new Comma node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#228 + def Comma(value); end + + # Create a new Command node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#233 + def Command(message, arguments, block, location = T.unsafe(nil)); end + + # Create a new CommandCall node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#243 + def CommandCall(receiver, operator, message, arguments, block); end + + # Create a new Comment node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#255 + def Comment(value, inline, location = T.unsafe(nil)); end + + # Create a new Const node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#260 + def Const(value); end + + # Create a new ConstPathField node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#265 + def ConstPathField(parent, constant); end + + # Create a new ConstPathRef node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#274 + def ConstPathRef(parent, constant); end + + # Create a new ConstRef node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#283 + def ConstRef(constant); end + + # Create a new DefNode node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#293 + def DefNode(target, operator, name, params, bodystmt, location = T.unsafe(nil)); end + + # Create a new Defined node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#312 + def Defined(value); end + + # Create a new DynaSymbol node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#337 + def DynaSymbol(parts, quote); end + + # Create a new ENDBlock node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#21 + def ENDBlock(lbrace, statements); end + + # Create a new Else node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#342 + def Else(keyword, statements); end + + # Create a new Elsif node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#351 + def Elsif(predicate, statements, consequent); end + + # Create a new EmbDoc node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#361 + def EmbDoc(value); end + + # Create a new EmbExprBeg node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#366 + def EmbExprBeg(value); end + + # Create a new EmbExprEnd node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#371 + def EmbExprEnd(value); end + + # Create a new EmbVar node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#376 + def EmbVar(value); end + + # Create a new EndContent node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#30 + def EndContent(value); end + + # Create a new Ensure node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#381 + def Ensure(keyword, statements); end + + # Create a new ExcessedComma node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#390 + def ExcessedComma(value); end + + # Create a new Field node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#395 + def Field(parent, operator, name); end + + # Create a new FloatLiteral node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#405 + def FloatLiteral(value); end + + # Create a new FndPtn node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#410 + def FndPtn(constant, left, values, right); end + + # Create a new For node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#421 + def For(index, collection, statements); end + + # Create a new GVar node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#431 + def GVar(value); end + + # Create a new HashLiteral node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#436 + def HashLiteral(lbrace, assocs); end + + # Create a new Heredoc node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#445 + def Heredoc(beginning, ending, dedent, parts); end + + # Create a new HeredocBeg node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#456 + def HeredocBeg(value); end + + # Create a new HeredocEnd node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#461 + def HeredocEnd(value); end + + # Create a new HshPtn node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#466 + def HshPtn(constant, keywords, keyword_rest); end + + # Create a new IVar node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#521 + def IVar(value); end + + # Create a new Ident node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#476 + def Ident(value); end + + # Create a new IfNode node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#481 + def IfNode(predicate, statements, consequent); end + + # Create a new IfOp node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#491 + def IfOp(predicate, truthy, falsy); end + + # Create a new Imaginary node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#501 + def Imaginary(value); end + + # Create a new In node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#506 + def In(pattern, statements, consequent); end + + # Create a new Int node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#516 + def Int(value); end + + # Create a new Kw node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#526 + def Kw(value); end + + # Create a new KwRestParam node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#531 + def KwRestParam(name); end + + # Create a new LBrace node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#560 + def LBrace(value); end + + # Create a new LBracket node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#565 + def LBracket(value); end + + # Create a new LParen node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#570 + def LParen(value); end + + # Create a new Label node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#536 + def Label(value); end + + # Create a new LabelEnd node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#541 + def LabelEnd(value); end + + # Create a new Lambda node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#546 + def Lambda(params, statements); end + + # Create a new LambdaVar node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#555 + def LambdaVar(params, locals); end + + # Create a new MAssign node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#575 + def MAssign(target, value); end + + # Create a new MLHS node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#585 + def MLHS(parts, comma); end + + # Create a new MLHSParen node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#590 + def MLHSParen(contents, comma); end + + # Create a new MRHS node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#608 + def MRHS(parts); end + + # Create a new MethodAddBlock node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#580 + def MethodAddBlock(call, block, location = T.unsafe(nil)); end + + # Create a new ModuleDeclaration node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#599 + def ModuleDeclaration(constant, bodystmt); end + + # Create a new Next node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#613 + def Next(arguments); end + + # Create a new Not node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#892 + def Not(statement, parentheses); end + + # Create a new Op node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#618 + def Op(value); end + + # Create a new OpAssign node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#623 + def OpAssign(target, operator, value); end + + # Create a new Params node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#633 + def Params(requireds, optionals, rest, posts, keywords, keyword_rest, block); end + + # Create a new Paren node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#647 + def Paren(lparen, contents); end + + # Create a new Period node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#652 + def Period(value); end + + # Create a new PinnedBegin node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#134 + def PinnedBegin(statement); end + + # Create a new PinnedVarRef node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#944 + def PinnedVarRef(value); end + + # Create a new Program node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#657 + def Program(statements); end + + # Create a new QSymbols node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#662 + def QSymbols(beginning, elements); end + + # Create a new QSymbolsBeg node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#671 + def QSymbolsBeg(value); end + + # Create a new QWords node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#676 + def QWords(beginning, elements); end + + # Create a new QWordsBeg node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#685 + def QWordsBeg(value); end + + # Create a new RAssign node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#203 + def RAssign(value, operator, pattern); end + + # Create a new RBrace node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#695 + def RBrace(value); end + + # Create a new RBracket node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#700 + def RBracket(value); end + + # Create a new RParen node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#783 + def RParen(value); end + + # Create a new RangeNode node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#327 + def RangeNode(left, operator, right); end + + # Create a new RationalLiteral node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#690 + def RationalLiteral(value); end + + # Create a new Redo node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#705 + def Redo; end + + # Create a new RegexpBeg node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#719 + def RegexpBeg(value); end + + # Create a new RegexpContent node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#710 + def RegexpContent(beginning, parts); end + + # Create a new RegexpEnd node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#724 + def RegexpEnd(value); end + + # Create a new RegexpLiteral node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#729 + def RegexpLiteral(beginning, ending, parts); end + + # Create a new Rescue node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#748 + def Rescue(keyword, exception, statements, consequent); end + + # Create a new RescueEx node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#739 + def RescueEx(exceptions, variable); end + + # Create a new RescueMod node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#759 + def RescueMod(statement, value); end + + # Create a new RestParam node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#768 + def RestParam(name); end + + # Create a new Retry node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#773 + def Retry; end + + # Create a new ReturnNode node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#778 + def ReturnNode(arguments); end + + # Create a new SClass node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#788 + def SClass(target, bodystmt); end + + # Create a new Statements node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#793 + def Statements(body); end + + # Create a new StringConcat node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#803 + def StringConcat(left, right); end + + # Create a new StringContent node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#798 + def StringContent(parts); end + + # Create a new StringDVar node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#808 + def StringDVar(variable); end + + # Create a new StringEmbExpr node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#813 + def StringEmbExpr(statements); end + + # Create a new StringLiteral node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#818 + def StringLiteral(parts, quote); end + + # Create a new Super node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#823 + def Super(arguments); end + + # Create a new SymBeg node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#828 + def SymBeg(value); end + + # Create a new SymbolContent node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#833 + def SymbolContent(value); end + + # Create a new SymbolLiteral node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#838 + def SymbolLiteral(value); end + + # Create a new Symbols node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#843 + def Symbols(beginning, elements); end + + # Create a new SymbolsBeg node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#852 + def SymbolsBeg(value); end + + # Create a new TLamBeg node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#862 + def TLamBeg(value); end + + # Create a new TLambda node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#857 + def TLambda(value); end + + # Create a new TStringBeg node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#877 + def TStringBeg(value); end + + # Create a new TStringContent node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#882 + def TStringContent(value); end + + # Create a new TStringEnd node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#887 + def TStringEnd(value); end + + # Create a new TopConstField node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#867 + def TopConstField(constant); end + + # Create a new TopConstRef node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#872 + def TopConstRef(constant); end + + # Create a new Unary node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#901 + def Unary(operator, statement); end + + # Create a new Undef node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#910 + def Undef(symbols); end + + # Create a new UnlessNode node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#915 + def UnlessNode(predicate, statements, consequent); end + + # Create a new UntilNode node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#925 + def UntilNode(predicate, statements); end + + # Create a new VCall node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#949 + def VCall(value); end + + # Create a new VarField node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#934 + def VarField(value); end + + # Create a new VarRef node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#939 + def VarRef(value); end + + # Create a new VoidStmt node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#954 + def VoidStmt; end + + # Create a new When node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#959 + def When(arguments, statements, consequent); end + + # Create a new WhileNode node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#969 + def WhileNode(predicate, statements); end + + # Create a new Word node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#978 + def Word(parts); end + + # Create a new Words node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#983 + def Words(beginning, elements); end + + # Create a new WordsBeg node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#992 + def WordsBeg(value); end + + # Create a new XString node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#997 + def XString(parts); end + + # Create a new XStringLiteral node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#1002 + def XStringLiteral(parts); end + + # Create a new YieldNode node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#1007 + def YieldNode(arguments); end + + # Create a new ZSuper node. + # + # source://syntax_tree//lib/syntax_tree/dsl.rb#1012 + def ZSuper; end +end + +# Provides the ability to index source files into a database, then query for +# the nodes. +# +# source://syntax_tree//lib/syntax_tree/database.rb#6 +module SyntaxTree::Database; end + +# Query for the attributes of a node, optionally also filtering by type. +# +# source://syntax_tree//lib/syntax_tree/database.rb#99 +class SyntaxTree::Database::AttrQuery + # @return [AttrQuery] a new instance of AttrQuery + # + # source://syntax_tree//lib/syntax_tree/database.rb#102 + def initialize(type, attrs); end + + # Returns the value of attribute attrs. + # + # source://syntax_tree//lib/syntax_tree/database.rb#100 + def attrs; end + + # source://syntax_tree//lib/syntax_tree/database.rb#107 + def each(database, &block); end + + # Returns the value of attribute type. + # + # source://syntax_tree//lib/syntax_tree/database.rb#100 + def type; end +end + +# source://syntax_tree//lib/syntax_tree/database.rb#276 +class SyntaxTree::Database::Connection + # @return [Connection] a new instance of Connection + # + # source://syntax_tree//lib/syntax_tree/database.rb#279 + def initialize(raw_connection); end + + # source://syntax_tree//lib/syntax_tree/database.rb#283 + def execute(query, binds = T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/database.rb#287 + def index_file(filepath); end + + # source://syntax_tree//lib/syntax_tree/database.rb#292 + def last_insert_row_id; end + + # source://syntax_tree//lib/syntax_tree/database.rb#296 + def prepare; end + + # Returns the value of attribute raw_connection. + # + # source://syntax_tree//lib/syntax_tree/database.rb#277 + def raw_connection; end + + # source://syntax_tree//lib/syntax_tree/database.rb#326 + def search(query); end +end + +# source://syntax_tree//lib/syntax_tree/database.rb#7 +class SyntaxTree::Database::IndexingVisitor < ::SyntaxTree::FieldVisitor + # @return [IndexingVisitor] a new instance of IndexingVisitor + # + # source://syntax_tree//lib/syntax_tree/database.rb#10 + def initialize(database, filepath); end + + # Returns the value of attribute database. + # + # source://syntax_tree//lib/syntax_tree/database.rb#8 + def database; end + + # Returns the value of attribute filepath. + # + # source://syntax_tree//lib/syntax_tree/database.rb#8 + def filepath; end + + # Returns the value of attribute node_id. + # + # source://syntax_tree//lib/syntax_tree/database.rb#8 + def node_id; end + + private + + # source://syntax_tree//lib/syntax_tree/database.rb#18 + def comments(node); end + + # source://syntax_tree//lib/syntax_tree/database.rb#21 + def field(name, value); end + + # source://syntax_tree//lib/syntax_tree/database.rb#31 + def list(name, values); end + + # source://syntax_tree//lib/syntax_tree/database.rb#41 + def node(node, _name); end + + # source://syntax_tree//lib/syntax_tree/database.rb#67 + def pairs(name, values); end + + # source://syntax_tree//lib/syntax_tree/database.rb#64 + def text(name, value); end +end + +# Query for the results of either query. +# +# source://syntax_tree//lib/syntax_tree/database.rb#136 +class SyntaxTree::Database::OrQuery + # @return [OrQuery] a new instance of OrQuery + # + # source://syntax_tree//lib/syntax_tree/database.rb#139 + def initialize(left, right); end + + # source://syntax_tree//lib/syntax_tree/database.rb#144 + def each(database, &block); end + + # Returns the value of attribute left. + # + # source://syntax_tree//lib/syntax_tree/database.rb#137 + def left; end + + # Returns the value of attribute right. + # + # source://syntax_tree//lib/syntax_tree/database.rb#137 + def right; end +end + +# A pattern matching expression that will be compiled into a query. +# +# source://syntax_tree//lib/syntax_tree/database.rb#166 +class SyntaxTree::Database::Pattern + # @return [Pattern] a new instance of Pattern + # + # source://syntax_tree//lib/syntax_tree/database.rb#172 + def initialize(query); end + + # source://syntax_tree//lib/syntax_tree/database.rb#176 + def compile; end + + # Returns the value of attribute query. + # + # source://syntax_tree//lib/syntax_tree/database.rb#170 + def query; end + + private + + # Shortcut for combining two queries into one that returns the results of + # if either query matches. + # + # source://syntax_tree//lib/syntax_tree/database.rb#195 + def combine_or(left, right); end + + # in foo | bar + # + # source://syntax_tree//lib/syntax_tree/database.rb#200 + def compile_binary(node); end + + # in Ident + # + # source://syntax_tree//lib/syntax_tree/database.rb#207 + def compile_const(node); end + + # in SyntaxTree::Ident + # + # source://syntax_tree//lib/syntax_tree/database.rb#219 + def compile_const_path_ref(node); end + + # @raise [CompilationError] + # + # source://syntax_tree//lib/syntax_tree/database.rb#189 + def compile_error(node); end + + # in Ident[value: String] + # + # source://syntax_tree//lib/syntax_tree/database.rb#234 + def compile_hshptn(node); end + + # source://syntax_tree//lib/syntax_tree/database.rb#258 + def compile_node(node); end + + # in Foo + # + # source://syntax_tree//lib/syntax_tree/database.rb#248 + def compile_var_ref(node); end +end + +# source://syntax_tree//lib/syntax_tree/database.rb#167 +class SyntaxTree::Database::Pattern::CompilationError < ::StandardError; end + +# A lazy query result. +# +# source://syntax_tree//lib/syntax_tree/database.rb#151 +class SyntaxTree::Database::QueryResult + # @return [QueryResult] a new instance of QueryResult + # + # source://syntax_tree//lib/syntax_tree/database.rb#154 + def initialize(database, query); end + + # Returns the value of attribute database. + # + # source://syntax_tree//lib/syntax_tree/database.rb#152 + def database; end + + # source://syntax_tree//lib/syntax_tree/database.rb#159 + def each(&block); end + + # Returns the value of attribute query. + # + # source://syntax_tree//lib/syntax_tree/database.rb#152 + def query; end +end + +# Query for a specific type of node. +# +# source://syntax_tree//lib/syntax_tree/database.rb#85 +class SyntaxTree::Database::TypeQuery + # @return [TypeQuery] a new instance of TypeQuery + # + # source://syntax_tree//lib/syntax_tree/database.rb#88 + def initialize(type); end + + # source://syntax_tree//lib/syntax_tree/database.rb#92 + def each(database, &block); end + + # Returns the value of attribute type. + # + # source://syntax_tree//lib/syntax_tree/database.rb#86 + def type; end +end + +# Def represents defining a regular method on the current self object. +# +# def method(param) result end +# def object.method(param) result end +# +# source://syntax_tree//lib/syntax_tree/node.rb#4098 +class SyntaxTree::DefNode < ::SyntaxTree::Node + # @return [DefNode] a new instance of DefNode + # + # source://syntax_tree//lib/syntax_tree/node.rb#4117 + def initialize(target:, operator:, name:, params:, bodystmt:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4217 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4127 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4230 + def arity; end + + # [BodyStmt | Node] the expressions to be executed by the method + # + # source://syntax_tree//lib/syntax_tree/node.rb#4112 + def bodystmt; end + + # source://syntax_tree//lib/syntax_tree/node.rb#4131 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#4115 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#4135 + def copy(target: T.unsafe(nil), operator: T.unsafe(nil), name: T.unsafe(nil), params: T.unsafe(nil), bodystmt: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4131 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#4159 + def deconstruct_keys(_keys); end + + # Returns true if the method was found in the source in the "endless" form, + # i.e. where the method body is defined using the `=` operator after the + # method name and parameters. + # + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#4226 + def endless?; end + + # source://syntax_tree//lib/syntax_tree/node.rb#4171 + def format(q); end + + # [Backtick | Const | Ident | Kw | Op] the name of the method + # + # source://syntax_tree//lib/syntax_tree/node.rb#4106 + def name; end + + # [nil | Op | Period] the operator being used to declare the method + # + # source://syntax_tree//lib/syntax_tree/node.rb#4103 + def operator; end + + # [nil | Params | Paren] the parameter declaration for the method + # + # source://syntax_tree//lib/syntax_tree/node.rb#4109 + def params; end + + # [nil | Node] the target where the method is being defined + # + # source://syntax_tree//lib/syntax_tree/node.rb#4100 + def target; end +end + +# Defined represents the use of the +defined?+ operator. It can be used with +# and without parentheses. +# +# defined?(variable) +# +# source://syntax_tree//lib/syntax_tree/node.rb#4249 +class SyntaxTree::Defined < ::SyntaxTree::Node + # @return [Defined] a new instance of Defined + # + # source://syntax_tree//lib/syntax_tree/node.rb#4256 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4299 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4262 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4266 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#4254 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#4270 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4266 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#4283 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4287 + def format(q); end + + # [Node] the value being sent to the keyword + # + # source://syntax_tree//lib/syntax_tree/node.rb#4251 + def value; end +end + +# DynaSymbol represents a symbol literal that uses quotes to dynamically +# define its value. +# +# :"#{variable}" +# +# They can also be used as a special kind of dynamic hash key, as in: +# +# { "#{key}": value } +# +# source://syntax_tree//lib/syntax_tree/node.rb#4663 +class SyntaxTree::DynaSymbol < ::SyntaxTree::Node + # @return [DynaSymbol] a new instance of DynaSymbol + # + # source://syntax_tree//lib/syntax_tree/node.rb#4674 + def initialize(parts:, quote:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4736 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4681 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4685 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#4672 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#4689 + def copy(parts: T.unsafe(nil), quote: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4685 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#4703 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4707 + def format(q); end + + # [Array[ StringDVar | StringEmbExpr | TStringContent ]] the parts of the + # dynamic symbol + # + # source://syntax_tree//lib/syntax_tree/node.rb#4666 + def parts; end + + # [nil | String] the quote used to delimit the dynamic symbol + # + # source://syntax_tree//lib/syntax_tree/node.rb#4669 + def quote; end + + private + + # Here we determine the quotes to use for a dynamic symbol. It's bound by a + # lot of rules because it could be in many different contexts with many + # different kinds of escaping. + # + # source://syntax_tree//lib/syntax_tree/node.rb#4746 + def quotes(q); end +end + +# ENDBlock represents the use of the +END+ keyword, which hooks into the +# lifecycle of the interpreter. Whatever is inside the block will get executed +# when the program ends. +# +# END { +# } +# +# Interestingly, the END keyword doesn't allow the do and end keywords for the +# block. Only braces are permitted. +# +# source://syntax_tree//lib/syntax_tree/node.rb#310 +class SyntaxTree::ENDBlock < ::SyntaxTree::Node + # @return [ENDBlock] a new instance of ENDBlock + # + # source://syntax_tree//lib/syntax_tree/node.rb#320 + def initialize(lbrace:, statements:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#371 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#327 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#331 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#318 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#335 + def copy(lbrace: T.unsafe(nil), statements: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#331 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#349 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#358 + def format(q); end + + # [LBrace] the left brace that is seen after the keyword + # + # source://syntax_tree//lib/syntax_tree/node.rb#312 + def lbrace; end + + # [Statements] the expressions to be executed + # + # source://syntax_tree//lib/syntax_tree/node.rb#315 + def statements; end +end + +# Else represents the end of an +if+, +unless+, or +case+ chain. +# +# if variable +# else +# end +# +# source://syntax_tree//lib/syntax_tree/node.rb#4792 +class SyntaxTree::Else < ::SyntaxTree::Node + # @return [Else] a new instance of Else + # + # source://syntax_tree//lib/syntax_tree/node.rb#4802 + def initialize(keyword:, statements:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4853 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4809 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4813 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#4800 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#4817 + def copy(keyword: T.unsafe(nil), statements: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4813 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#4831 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4840 + def format(q); end + + # [Kw] the else keyword + # + # source://syntax_tree//lib/syntax_tree/node.rb#4794 + def keyword; end + + # [Statements] the expressions to be executed + # + # source://syntax_tree//lib/syntax_tree/node.rb#4797 + def statements; end +end + +# Elsif represents another clause in an +if+ or +unless+ chain. +# +# if variable +# elsif other_variable +# end +# +# source://syntax_tree//lib/syntax_tree/node.rb#4865 +class SyntaxTree::Elsif < ::SyntaxTree::Node + # @return [Elsif] a new instance of Elsif + # + # source://syntax_tree//lib/syntax_tree/node.rb#4878 + def initialize(predicate:, statements:, consequent:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4942 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4886 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4890 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#4876 + def comments; end + + # [nil | Elsif | Else] the next clause in the chain + # + # source://syntax_tree//lib/syntax_tree/node.rb#4873 + def consequent; end + + # source://syntax_tree//lib/syntax_tree/node.rb#4894 + def copy(predicate: T.unsafe(nil), statements: T.unsafe(nil), consequent: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4890 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#4909 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4919 + def format(q); end + + # [Node] the expression to be checked + # + # source://syntax_tree//lib/syntax_tree/node.rb#4867 + def predicate; end + + # [Statements] the expressions to be executed + # + # source://syntax_tree//lib/syntax_tree/node.rb#4870 + def statements; end +end + +# EmbDoc represents a multi-line comment. +# +# =begin +# first line +# second line +# =end +# +# source://syntax_tree//lib/syntax_tree/node.rb#4955 +class SyntaxTree::EmbDoc < ::SyntaxTree::Node + # @return [EmbDoc] a new instance of EmbDoc + # + # source://syntax_tree//lib/syntax_tree/node.rb#4959 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5027 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4995 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4999 + def child_nodes; end + + # source://syntax_tree//lib/syntax_tree/node.rb#4991 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5003 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4999 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5012 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5016 + def format(q); end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#4987 + def ignore?; end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#4983 + def inline?; end + + # source://syntax_tree//lib/syntax_tree/node.rb#4967 + def leading!; end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#4971 + def leading?; end + + # source://syntax_tree//lib/syntax_tree/node.rb#4975 + def trailing!; end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#4979 + def trailing?; end + + # [String] the contents of the comment + # + # source://syntax_tree//lib/syntax_tree/node.rb#4957 + def value; end +end + +# EmbExprBeg represents the beginning token for using interpolation inside of +# a parent node that accepts string content (like a string or regular +# expression). +# +# "Hello, #{person}!" +# +# source://syntax_tree//lib/syntax_tree/node.rb#5038 +class SyntaxTree::EmbExprBeg < ::SyntaxTree::Node + # @return [EmbExprBeg] a new instance of EmbExprBeg + # + # source://syntax_tree//lib/syntax_tree/node.rb#5042 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5068 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5047 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5051 + def child_nodes; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5055 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5051 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5064 + def deconstruct_keys(_keys); end + + # [String] the #{ used in the string + # + # source://syntax_tree//lib/syntax_tree/node.rb#5040 + def value; end +end + +# EmbExprEnd represents the ending token for using interpolation inside of a +# parent node that accepts string content (like a string or regular +# expression). +# +# "Hello, #{person}!" +# +# source://syntax_tree//lib/syntax_tree/node.rb#5079 +class SyntaxTree::EmbExprEnd < ::SyntaxTree::Node + # @return [EmbExprEnd] a new instance of EmbExprEnd + # + # source://syntax_tree//lib/syntax_tree/node.rb#5083 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5109 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5088 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5092 + def child_nodes; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5096 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5092 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5105 + def deconstruct_keys(_keys); end + + # [String] the } used in the string + # + # source://syntax_tree//lib/syntax_tree/node.rb#5081 + def value; end +end + +# EmbVar represents the use of shorthand interpolation for an instance, class, +# or global variable into a parent node that accepts string content (like a +# string or regular expression). +# +# "#@variable" +# +# In the example above, an EmbVar node represents the # because it forces +# +# source://syntax_tree//lib/syntax_tree/node.rb#5122 +class SyntaxTree::EmbVar < ::SyntaxTree::Node + # @return [EmbVar] a new instance of EmbVar + # + # source://syntax_tree//lib/syntax_tree/node.rb#5126 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5152 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5131 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5135 + def child_nodes; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5139 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5135 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5148 + def deconstruct_keys(_keys); end + + # [String] the # used in the string + # + # source://syntax_tree//lib/syntax_tree/node.rb#5124 + def value; end +end + +# EndContent represents the use of __END__ syntax, which allows individual +# scripts to keep content after the main ruby code that can be read through +# the DATA constant. +# +# puts DATA.read +# +# __END__ +# some other content that is not executed by the program +# +# source://syntax_tree//lib/syntax_tree/node.rb#386 +class SyntaxTree::EndContent < ::SyntaxTree::Node + # @return [EndContent] a new instance of EndContent + # + # source://syntax_tree//lib/syntax_tree/node.rb#393 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#442 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#399 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#403 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#391 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#407 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#403 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#420 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#424 + def format(q); end + + # [String] the content after the script + # + # source://syntax_tree//lib/syntax_tree/node.rb#388 + def value; end +end + +# Ensure represents the use of the +ensure+ keyword and its subsequent +# statements. +# +# begin +# ensure +# end +# +# source://syntax_tree//lib/syntax_tree/node.rb#5164 +class SyntaxTree::Ensure < ::SyntaxTree::Node + # @return [Ensure] a new instance of Ensure + # + # source://syntax_tree//lib/syntax_tree/node.rb#5174 + def initialize(keyword:, statements:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5223 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5181 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5185 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#5172 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5189 + def copy(keyword: T.unsafe(nil), statements: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5185 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5203 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5212 + def format(q); end + + # [Kw] the ensure keyword that began this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#5166 + def keyword; end + + # [Statements] the expressions to be executed + # + # source://syntax_tree//lib/syntax_tree/node.rb#5169 + def statements; end +end + +# ExcessedComma represents a trailing comma in a list of block parameters. It +# changes the block parameters such that they will destructure. +# +# [[1, 2, 3], [2, 3, 4]].each do |first, second,| +# end +# +# In the above example, an ExcessedComma node would appear in the third +# position of the Params node that is used to declare that block. The third +# position typically represents a rest-type parameter, but in this case is +# used to indicate that a trailing comma was used. +# +# source://syntax_tree//lib/syntax_tree/node.rb#5239 +class SyntaxTree::ExcessedComma < ::SyntaxTree::Node + # @return [ExcessedComma] a new instance of ExcessedComma + # + # source://syntax_tree//lib/syntax_tree/node.rb#5246 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5281 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5252 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5256 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#5244 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5260 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5256 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5273 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5277 + def format(q); end + + # [String] the comma + # + # source://syntax_tree//lib/syntax_tree/node.rb#5241 + def value; end +end + +# Field is always the child of an assignment. It represents assigning to a +# “field” on an object. +# +# object.variable = value +# +# source://syntax_tree//lib/syntax_tree/node.rb#5291 +class SyntaxTree::Field < ::SyntaxTree::Node + # @return [Field] a new instance of Field + # + # source://syntax_tree//lib/syntax_tree/node.rb#5304 + def initialize(parent:, operator:, name:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5354 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5312 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5316 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#5302 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5321 + def copy(parent: T.unsafe(nil), operator: T.unsafe(nil), name: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5316 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5336 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5346 + def format(q); end + + # [Const | Ident] the name of the field being assigned + # + # source://syntax_tree//lib/syntax_tree/node.rb#5299 + def name; end + + # [:"::" | Op | Period] the operator being used for the assignment + # + # source://syntax_tree//lib/syntax_tree/node.rb#5296 + def operator; end + + # [Node] the parent object that owns the field being assigned + # + # source://syntax_tree//lib/syntax_tree/node.rb#5293 + def parent; end +end + +# This is the parent class of a lot of built-in visitors for Syntax Tree. It +# reflects visiting each of the fields on every node in turn. It itself does +# not do anything with these fields, it leaves that behavior up to the +# subclass to implement. +# +# In order to properly use this class, you will need to subclass it and +# implement #comments, #field, #list, #node, #pairs, and #text. Those are +# documented here. +# +# == comments(node) +# +# This accepts the node that is being visited and does something depending on +# the comments attached to the node. +# +# == field(name, value) +# +# This accepts the name of the field being visited as a string (like "value") +# and the actual value of that field. The value can be a subclass of Node or +# any other type that can be held within the tree. +# +# == list(name, values) +# +# This accepts the name of the field being visited as well as a list of +# values. This is used, for example, when visiting something like the body of +# a Statements node. +# +# == node(name, node) +# +# This is the parent serialization method for each node. It is called with the +# node itself, as well as the type of the node as a string. The type is an +# internally used value that usually resembles the name of the ripper event +# that generated the node. The method should yield to the given block which +# then calls through to visit each of the fields on the node. +# +# == text(name, value) +# +# This accepts the name of the field being visited as well as a string value +# representing the value of the field. +# +# == pairs(name, values) +# +# This accepts the name of the field being visited as well as a list of pairs +# that represent the value of the field. It is used only in a couple of +# circumstances, like when visiting the list of optional parameters defined on +# a method. +# +# source://syntax_tree//lib/syntax_tree/field_visitor.rb#50 +class SyntaxTree::FieldVisitor < ::SyntaxTree::BasicVisitor + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#163 + def visit_BEGIN(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#245 + def visit_CHAR(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#342 + def visit_END(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#1018 + def visit___end__(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#68 + def visit_alias(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#52 + def visit_aref(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#60 + def visit_aref_field(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#76 + def visit_arg_block(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#83 + def visit_arg_paren(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#90 + def visit_arg_star(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#97 + def visit_args(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#104 + def visit_args_forward(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#108 + def visit_array(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#115 + def visit_aryptn(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#125 + def visit_assign(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#133 + def visit_assoc(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#141 + def visit_assoc_splat(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#148 + def visit_backref(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#152 + def visit_backtick(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#156 + def visit_bare_assoc_hash(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#170 + def visit_begin(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#177 + def visit_binary(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#186 + def visit_block(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#201 + def visit_block_var(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#194 + def visit_blockarg(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#209 + def visit_bodystmt(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#219 + def visit_break(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#226 + def visit_call(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#236 + def visit_case(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#249 + def visit_class(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#258 + def visit_comma(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#262 + def visit_command(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#271 + def visit_command_call(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#282 + def visit_comment(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#286 + def visit_const(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#290 + def visit_const_path_field(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#298 + def visit_const_path_ref(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#306 + def visit_const_ref(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#313 + def visit_cvar(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#317 + def visit_def(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#328 + def visit_defined(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#335 + def visit_dyna_symbol(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#349 + def visit_else(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#356 + def visit_elsif(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#365 + def visit_embdoc(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#369 + def visit_embexpr_beg(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#373 + def visit_embexpr_end(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#377 + def visit_embvar(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#381 + def visit_ensure(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#388 + def visit_excessed_comma(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#392 + def visit_field(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#401 + def visit_float(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#405 + def visit_fndptn(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#415 + def visit_for(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#424 + def visit_gvar(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#428 + def visit_hash(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#435 + def visit_heredoc(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#442 + def visit_heredoc_beg(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#446 + def visit_heredoc_end(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#450 + def visit_hshptn(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#459 + def visit_ident(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#463 + def visit_if(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#472 + def visit_if_op(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#481 + def visit_imaginary(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#485 + def visit_in(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#494 + def visit_int(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#498 + def visit_ivar(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#502 + def visit_kw(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#506 + def visit_kwrest_param(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#513 + def visit_label(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#517 + def visit_label_end(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#521 + def visit_lambda(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#529 + def visit_lambda_var(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#537 + def visit_lbrace(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#541 + def visit_lbracket(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#545 + def visit_lparen(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#549 + def visit_massign(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#557 + def visit_method_add_block(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#565 + def visit_mlhs(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#572 + def visit_mlhs_paren(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#579 + def visit_module(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#587 + def visit_mrhs(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#594 + def visit_next(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#601 + def visit_not(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#608 + def visit_op(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#612 + def visit_opassign(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#621 + def visit_params(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#634 + def visit_paren(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#641 + def visit_period(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#645 + def visit_pinned_begin(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#652 + def visit_pinned_var_ref(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#659 + def visit_program(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#666 + def visit_qsymbols(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#673 + def visit_qsymbols_beg(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#677 + def visit_qwords(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#684 + def visit_qwords_beg(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#688 + def visit_range(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#697 + def visit_rassign(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#706 + def visit_rational(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#710 + def visit_rbrace(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#714 + def visit_rbracket(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#718 + def visit_redo(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#722 + def visit_regexp_beg(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#726 + def visit_regexp_content(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#730 + def visit_regexp_end(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#734 + def visit_regexp_literal(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#742 + def visit_rescue(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#751 + def visit_rescue_ex(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#759 + def visit_rescue_mod(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#767 + def visit_rest_param(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#774 + def visit_retry(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#778 + def visit_return(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#785 + def visit_rparen(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#789 + def visit_sclass(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#797 + def visit_statements(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#804 + def visit_string_concat(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#812 + def visit_string_content(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#816 + def visit_string_dvar(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#823 + def visit_string_embexpr(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#830 + def visit_string_literal(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#837 + def visit_super(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#844 + def visit_symbeg(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#848 + def visit_symbol_content(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#852 + def visit_symbol_literal(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#859 + def visit_symbols(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#866 + def visit_symbols_beg(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#870 + def visit_tlambda(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#874 + def visit_tlambeg(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#878 + def visit_top_const_field(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#885 + def visit_top_const_ref(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#892 + def visit_tstring_beg(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#896 + def visit_tstring_content(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#900 + def visit_tstring_end(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#904 + def visit_unary(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#912 + def visit_undef(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#919 + def visit_unless(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#928 + def visit_until(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#936 + def visit_var_field(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#943 + def visit_var_ref(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#950 + def visit_vcall(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#957 + def visit_void_stmt(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#961 + def visit_when(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#970 + def visit_while(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#978 + def visit_word(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#985 + def visit_words(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#992 + def visit_words_beg(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#996 + def visit_xstring(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#1000 + def visit_xstring_literal(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#1007 + def visit_yield(node); end + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#1014 + def visit_zsuper(node); end + + private + + # source://syntax_tree//lib/syntax_tree/field_visitor.rb#1025 + def visit_token(node, type); end +end + +# FloatLiteral represents a floating point number literal. +# +# 1.0 +# +# source://syntax_tree//lib/syntax_tree/node.rb#5364 +class SyntaxTree::FloatLiteral < ::SyntaxTree::Node + # @return [FloatLiteral] a new instance of FloatLiteral + # + # source://syntax_tree//lib/syntax_tree/node.rb#5371 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5406 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5377 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5381 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#5369 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5385 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5381 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5398 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5402 + def format(q); end + + # [String] the value of the floating point number literal + # + # source://syntax_tree//lib/syntax_tree/node.rb#5366 + def value; end +end + +# Formats either a Break, Next, or Return node. +# +# source://syntax_tree//lib/syntax_tree/node.rb#2438 +class SyntaxTree::FlowControlFormatter + # @return [FlowControlFormatter] a new instance of FlowControlFormatter + # + # source://syntax_tree//lib/syntax_tree/node.rb#2445 + def initialize(keyword, node); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2450 + def format(q); end + + # [String] the keyword to print + # + # source://syntax_tree//lib/syntax_tree/node.rb#2440 + def keyword; end + + # [Break | Next | Return] the node being formatted + # + # source://syntax_tree//lib/syntax_tree/node.rb#2443 + def node; end + + private + + # source://syntax_tree//lib/syntax_tree/node.rb#2599 + def format_arguments(q, opening, closing); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2589 + def format_array_contents(q, array); end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#2609 + def skip_parens?(node); end +end + +# FndPtn represents matching against a pattern where you find a pattern in an +# array using the Ruby 3.0+ pattern matching syntax. +# +# case value +# in [*, 7, *] +# end +# +# source://syntax_tree//lib/syntax_tree/node.rb#5418 +class SyntaxTree::FndPtn < ::SyntaxTree::Node + # @return [FndPtn] a new instance of FndPtn + # + # source://syntax_tree//lib/syntax_tree/node.rb#5435 + def initialize(constant:, left:, values:, right:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5504 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5444 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5448 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#5433 + def comments; end + + # [nil | VarRef | ConstPathRef] the optional constant wrapper + # + # source://syntax_tree//lib/syntax_tree/node.rb#5420 + def constant; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5452 + def copy(constant: T.unsafe(nil), left: T.unsafe(nil), values: T.unsafe(nil), right: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5448 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5468 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5479 + def format(q); end + + # [VarField] the splat on the left-hand side + # + # source://syntax_tree//lib/syntax_tree/node.rb#5423 + def left; end + + # [VarField] the splat on the right-hand side + # + # source://syntax_tree//lib/syntax_tree/node.rb#5430 + def right; end + + # [Array[ Node ]] the list of positional expressions in the pattern that + # are being matched + # + # source://syntax_tree//lib/syntax_tree/node.rb#5427 + def values; end +end + +# For represents using a +for+ loop. +# +# for value in list do +# end +# +# source://syntax_tree//lib/syntax_tree/node.rb#5516 +class SyntaxTree::For < ::SyntaxTree::Node + # @return [For] a new instance of For + # + # source://syntax_tree//lib/syntax_tree/node.rb#5530 + def initialize(index:, collection:, statements:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5590 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5538 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5542 + def child_nodes; end + + # [Node] the object being enumerated in the loop + # + # source://syntax_tree//lib/syntax_tree/node.rb#5522 + def collection; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#5528 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5546 + def copy(index: T.unsafe(nil), collection: T.unsafe(nil), statements: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5542 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5561 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5571 + def format(q); end + + # [MLHS | VarField] the variable declaration being used to + # pull values out of the object being enumerated + # + # source://syntax_tree//lib/syntax_tree/node.rb#5519 + def index; end + + # [Statements] the statements to be executed + # + # source://syntax_tree//lib/syntax_tree/node.rb#5525 + def statements; end +end + +# A slightly enhanced PP that knows how to format recursively including +# comments. +# +# source://syntax_tree//lib/syntax_tree/formatter.rb#6 +class SyntaxTree::Formatter < ::PrettierPrint + # @return [Formatter] a new instance of Formatter + # + # source://syntax_tree//lib/syntax_tree/formatter.rb#95 + def initialize(source, *args, options: T.unsafe(nil)); end + + # These options are overridden in plugins to we need to make sure they are + # available here. + # + # source://syntax_tree//lib/syntax_tree/formatter.rb#87 + def disable_auto_ternary; end + + # These options are overridden in plugins to we need to make sure they are + # available here. + # + # source://syntax_tree//lib/syntax_tree/formatter.rb#87 + def disable_auto_ternary?; end + + # source://syntax_tree//lib/syntax_tree/formatter.rb#115 + def format(node, stackable: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/formatter.rb#175 + def format_each(nodes); end + + # source://syntax_tree//lib/syntax_tree/formatter.rb#179 + def grandparent; end + + # This is a simplified version of prettyprint's group. It doesn't provide + # any of the more advanced options because we don't need them and they take + # up expensive computation time. + # + # source://syntax_tree//lib/syntax_tree/formatter.rb#194 + def group; end + + # source://syntax_tree//lib/syntax_tree/formatter.rb#183 + def parent; end + + # source://syntax_tree//lib/syntax_tree/formatter.rb#187 + def parents; end + + # These options are overridden in plugins to we need to make sure they are + # available here. + # + # source://syntax_tree//lib/syntax_tree/formatter.rb#87 + def quote; end + + # A similar version to the super, except that it calls back into the + # separator proc with the instance of `self`. + # + # source://syntax_tree//lib/syntax_tree/formatter.rb#208 + def seplist(list, sep = T.unsafe(nil), iter_method = T.unsafe(nil)); end + + # Returns the value of attribute source. + # + # source://syntax_tree//lib/syntax_tree/formatter.rb#83 + def source; end + + # Returns the value of attribute stack. + # + # source://syntax_tree//lib/syntax_tree/formatter.rb#83 + def stack; end + + # These options are overridden in plugins to we need to make sure they are + # available here. + # + # source://syntax_tree//lib/syntax_tree/formatter.rb#87 + def target_ruby_version; end + + # This is a much simplified version of prettyprint's text. It avoids + # calculating width by pushing the string directly onto the target. + # + # source://syntax_tree//lib/syntax_tree/formatter.rb#224 + def text(string); end + + # These options are overridden in plugins to we need to make sure they are + # available here. + # + # source://syntax_tree//lib/syntax_tree/formatter.rb#87 + def trailing_comma; end + + # These options are overridden in plugins to we need to make sure they are + # available here. + # + # source://syntax_tree//lib/syntax_tree/formatter.rb#87 + def trailing_comma?; end + + class << self + # source://syntax_tree//lib/syntax_tree/formatter.rb#108 + def format(source, node, base_indentation = T.unsafe(nil)); end + end +end + +# source://syntax_tree//lib/syntax_tree/formatter.rb#80 +SyntaxTree::Formatter::COMMENT_PRIORITY = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/formatter.rb#81 +SyntaxTree::Formatter::HEREDOC_PRIORITY = T.let(T.unsafe(nil), Integer) + +# We want to minimize as much as possible the number of options that are +# available in syntax tree. For the most part, if users want non-default +# formatting, they should override the format methods on the specific nodes +# themselves. However, because of some history with prettier and the fact +# that folks have become entrenched in their ways, we decided to provide a +# small amount of configurability. +# +# source://syntax_tree//lib/syntax_tree/formatter.rb#23 +class SyntaxTree::Formatter::Options + # @return [Options] a new instance of Options + # + # source://syntax_tree//lib/syntax_tree/formatter.rb#29 + def initialize(quote: T.unsafe(nil), trailing_comma: T.unsafe(nil), disable_auto_ternary: T.unsafe(nil), target_ruby_version: T.unsafe(nil)); end + + # Returns the value of attribute disable_auto_ternary. + # + # source://syntax_tree//lib/syntax_tree/formatter.rb#24 + def disable_auto_ternary; end + + # Returns the value of attribute quote. + # + # source://syntax_tree//lib/syntax_tree/formatter.rb#24 + def quote; end + + # Returns the value of attribute target_ruby_version. + # + # source://syntax_tree//lib/syntax_tree/formatter.rb#24 + def target_ruby_version; end + + # Returns the value of attribute trailing_comma. + # + # source://syntax_tree//lib/syntax_tree/formatter.rb#24 + def trailing_comma; end +end + +# Unfortunately, Gem::Version.new is not ractor-safe because it performs +# global caching using a class variable. This works around that by just +# setting the instance variables directly. +# +# source://syntax_tree//lib/syntax_tree/formatter.rb#10 +class SyntaxTree::Formatter::SemanticVersion < ::Gem::Version + # @return [SemanticVersion] a new instance of SemanticVersion + # + # source://syntax_tree//lib/syntax_tree/formatter.rb#11 + def initialize(version); end +end + +# GVar represents a global variable literal. +# +# $variable +# +# source://syntax_tree//lib/syntax_tree/node.rb#5600 +class SyntaxTree::GVar < ::SyntaxTree::Node + # @return [GVar] a new instance of GVar + # + # source://syntax_tree//lib/syntax_tree/node.rb#5607 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5642 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5613 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5617 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#5605 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5621 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5617 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5634 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5638 + def format(q); end + + # [String] the name of the global variable + # + # source://syntax_tree//lib/syntax_tree/node.rb#5602 + def value; end +end + +# This holds references to objects that respond to both #parse and #format +# so that we can use them in the CLI. +# +# source://syntax_tree//lib/syntax_tree.rb#43 +SyntaxTree::HANDLERS = T.let(T.unsafe(nil), Hash) + +# This module is responsible for formatting the assocs contained within a +# hash or bare hash. It first determines if every key in the hash can use +# labels. If it can, it uses labels. Otherwise it uses hash rockets. +# +# source://syntax_tree//lib/syntax_tree/node.rb#1728 +module SyntaxTree::HashKeyFormatter + class << self + # source://syntax_tree//lib/syntax_tree/node.rb#1786 + def for(container); end + end +end + +# When formatting a single assoc node without the context of the parent +# hash, this formatter is used. It uses whatever is present in the node, +# because there is nothing to be consistent with. +# +# source://syntax_tree//lib/syntax_tree/node.rb#1775 +class SyntaxTree::HashKeyFormatter::Identity + # source://syntax_tree//lib/syntax_tree/node.rb#1776 + def format_key(q, key); end +end + +# Formats the keys of a hash literal using labels. +# +# source://syntax_tree//lib/syntax_tree/node.rb#1730 +class SyntaxTree::HashKeyFormatter::Labels + # source://syntax_tree//lib/syntax_tree/node.rb#1733 + def format_key(q, key); end +end + +# source://syntax_tree//lib/syntax_tree/node.rb#1731 +SyntaxTree::HashKeyFormatter::Labels::LABEL = T.let(T.unsafe(nil), Regexp) + +# Formats the keys of a hash literal using hash rockets. +# +# source://syntax_tree//lib/syntax_tree/node.rb#1756 +class SyntaxTree::HashKeyFormatter::Rockets + # source://syntax_tree//lib/syntax_tree/node.rb#1757 + def format_key(q, key); end +end + +# HashLiteral represents a hash literal. +# +# { key => value } +# +# source://syntax_tree//lib/syntax_tree/node.rb#5651 +class SyntaxTree::HashLiteral < ::SyntaxTree::Node + # @return [HashLiteral] a new instance of HashLiteral + # + # source://syntax_tree//lib/syntax_tree/node.rb#5687 + def initialize(lbrace:, assocs:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5728 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5694 + def accept(visitor); end + + # [Array[ Assoc | AssocSplat ]] the optional contents of the hash + # + # source://syntax_tree//lib/syntax_tree/node.rb#5682 + def assocs; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5698 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#5685 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5702 + def copy(lbrace: T.unsafe(nil), assocs: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5698 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5716 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5720 + def format(q); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5733 + def format_key(q, key); end + + # [LBrace] the left brace that opens this hash + # + # source://syntax_tree//lib/syntax_tree/node.rb#5679 + def lbrace; end + + private + + # If we have an empty hash that contains only comments, then we're going + # to do some special printing to ensure they get indented correctly. + # + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#5741 + def empty_with_comments?; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5745 + def format_contents(q); end +end + +# This is a special formatter used if the hash literal contains no values +# but _does_ contain comments. In this case we do some special formatting to +# make sure the comments gets indented properly. +# +# source://syntax_tree//lib/syntax_tree/node.rb#5655 +class SyntaxTree::HashLiteral::EmptyWithCommentsFormatter + # @return [EmptyWithCommentsFormatter] a new instance of EmptyWithCommentsFormatter + # + # source://syntax_tree//lib/syntax_tree/node.rb#5659 + def initialize(lbrace); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5663 + def format(q); end + + # [LBrace] the opening brace + # + # source://syntax_tree//lib/syntax_tree/node.rb#5657 + def lbrace; end +end + +# Heredoc represents a heredoc string literal. +# +# <<~DOC +# contents +# DOC +# +# source://syntax_tree//lib/syntax_tree/node.rb#5774 +class SyntaxTree::Heredoc < ::SyntaxTree::Node + # @return [Heredoc] a new instance of Heredoc + # + # source://syntax_tree//lib/syntax_tree/node.rb#5791 + def initialize(beginning:, location:, ending: T.unsafe(nil), dedent: T.unsafe(nil), parts: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5873 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5800 + def accept(visitor); end + + # [HeredocBeg] the opening of the heredoc + # + # source://syntax_tree//lib/syntax_tree/node.rb#5776 + def beginning; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5804 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#5789 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5808 + def copy(beginning: T.unsafe(nil), location: T.unsafe(nil), ending: T.unsafe(nil), parts: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5804 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5823 + def deconstruct_keys(_keys); end + + # [Integer] how far to dedent the heredoc + # + # source://syntax_tree//lib/syntax_tree/node.rb#5782 + def dedent; end + + # [HeredocEnd] the ending of the heredoc + # + # source://syntax_tree//lib/syntax_tree/node.rb#5779 + def ending; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5838 + def format(q); end + + # [Array[ StringEmbExpr | StringDVar | TStringContent ]] the parts of the + # heredoc string literal + # + # source://syntax_tree//lib/syntax_tree/node.rb#5786 + def parts; end +end + +# This is a very specific behavior where you want to force a newline, but +# don't want to force the break parent. +# +# source://syntax_tree//lib/syntax_tree/node.rb#5835 +SyntaxTree::Heredoc::SEPARATOR = T.let(T.unsafe(nil), PrettierPrint::Breakable) + +# HeredocBeg represents the beginning declaration of a heredoc. +# +# <<~DOC +# contents +# DOC +# +# In the example above the HeredocBeg node represents <<~DOC. +# +# source://syntax_tree//lib/syntax_tree/node.rb#5886 +class SyntaxTree::HeredocBeg < ::SyntaxTree::Node + # @return [HeredocBeg] a new instance of HeredocBeg + # + # source://syntax_tree//lib/syntax_tree/node.rb#5893 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5928 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5899 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5903 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#5891 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5907 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5903 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5920 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5924 + def format(q); end + + # [String] the opening declaration of the heredoc + # + # source://syntax_tree//lib/syntax_tree/node.rb#5888 + def value; end +end + +# HeredocEnd represents the closing declaration of a heredoc. +# +# <<~DOC +# contents +# DOC +# +# In the example above the HeredocEnd node represents the closing DOC. +# +# source://syntax_tree//lib/syntax_tree/node.rb#5940 +class SyntaxTree::HeredocEnd < ::SyntaxTree::Node + # @return [HeredocEnd] a new instance of HeredocEnd + # + # source://syntax_tree//lib/syntax_tree/node.rb#5947 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5982 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5953 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5957 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#5945 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5961 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5957 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#5974 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#5978 + def format(q); end + + # [String] the closing declaration of the heredoc + # + # source://syntax_tree//lib/syntax_tree/node.rb#5942 + def value; end +end + +# HshPtn represents matching against a hash pattern using the Ruby 2.7+ +# pattern matching syntax. +# +# case value +# in { key: } +# end +# +# source://syntax_tree//lib/syntax_tree/node.rb#5994 +class SyntaxTree::HshPtn < ::SyntaxTree::Node + # @return [HshPtn] a new instance of HshPtn + # + # source://syntax_tree//lib/syntax_tree/node.rb#6054 + def initialize(constant:, keywords:, keyword_rest:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6147 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6062 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6066 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#6052 + def comments; end + + # [nil | VarRef | ConstPathRef] the optional constant wrapper + # + # source://syntax_tree//lib/syntax_tree/node.rb#6042 + def constant; end + + # source://syntax_tree//lib/syntax_tree/node.rb#6070 + def copy(constant: T.unsafe(nil), keywords: T.unsafe(nil), keyword_rest: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6066 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#6085 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6095 + def format(q); end + + # [nil | VarField] an optional parameter to gather up all remaining keywords + # + # source://syntax_tree//lib/syntax_tree/node.rb#6049 + def keyword_rest; end + + # [Array[ [DynaSymbol | Label, nil | Node] ]] the set of tuples + # representing the keywords that should be matched against in the pattern + # + # source://syntax_tree//lib/syntax_tree/node.rb#6046 + def keywords; end + + private + + # source://syntax_tree//lib/syntax_tree/node.rb#6158 + def format_contents(q, parts, nested); end +end + +# Formats a key-value pair in a hash pattern. The value is optional. +# +# source://syntax_tree//lib/syntax_tree/node.rb#5996 +class SyntaxTree::HshPtn::KeywordFormatter + # @return [KeywordFormatter] a new instance of KeywordFormatter + # + # source://syntax_tree//lib/syntax_tree/node.rb#6003 + def initialize(key, value); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6008 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#6012 + def format(q); end + + # [Label] the keyword being used + # + # source://syntax_tree//lib/syntax_tree/node.rb#5998 + def key; end + + # [Node] the optional value for the keyword + # + # source://syntax_tree//lib/syntax_tree/node.rb#6001 + def value; end +end + +# Formats the optional double-splat from the pattern. +# +# source://syntax_tree//lib/syntax_tree/node.rb#6023 +class SyntaxTree::HshPtn::KeywordRestFormatter + # @return [KeywordRestFormatter] a new instance of KeywordRestFormatter + # + # source://syntax_tree//lib/syntax_tree/node.rb#6027 + def initialize(keyword_rest); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6031 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#6035 + def format(q); end + + # [VarField] the parameter that matches the remaining keywords + # + # source://syntax_tree//lib/syntax_tree/node.rb#6025 + def keyword_rest; end +end + +# IVar represents an instance variable literal. +# +# @variable +# +# source://syntax_tree//lib/syntax_tree/node.rb#6878 +class SyntaxTree::IVar < ::SyntaxTree::Node + # @return [IVar] a new instance of IVar + # + # source://syntax_tree//lib/syntax_tree/node.rb#6885 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6920 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6891 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6895 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#6883 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#6899 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6895 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#6912 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6916 + def format(q); end + + # [String] the name of the instance variable + # + # source://syntax_tree//lib/syntax_tree/node.rb#6880 + def value; end +end + +# Ident represents an identifier anywhere in code. It can represent a very +# large number of things, depending on where it is in the syntax tree. +# +# value +# +# source://syntax_tree//lib/syntax_tree/node.rb#6181 +class SyntaxTree::Ident < ::SyntaxTree::Node + # @return [Ident] a new instance of Ident + # + # source://syntax_tree//lib/syntax_tree/node.rb#6188 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6223 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6194 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6198 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#6186 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#6202 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6198 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#6215 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6219 + def format(q); end + + # [String] the value of the identifier + # + # source://syntax_tree//lib/syntax_tree/node.rb#6183 + def value; end +end + +# If represents the first clause in an +if+ chain. +# +# if predicate +# end +# +# source://syntax_tree//lib/syntax_tree/node.rb#6471 +class SyntaxTree::IfNode < ::SyntaxTree::Node + # @return [IfNode] a new instance of IfNode + # + # source://syntax_tree//lib/syntax_tree/node.rb#6484 + def initialize(predicate:, statements:, consequent:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6529 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6492 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6496 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#6482 + def comments; end + + # [nil | Elsif | Else] the next clause in the chain + # + # source://syntax_tree//lib/syntax_tree/node.rb#6479 + def consequent; end + + # source://syntax_tree//lib/syntax_tree/node.rb#6500 + def copy(predicate: T.unsafe(nil), statements: T.unsafe(nil), consequent: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6496 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#6515 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6525 + def format(q); end + + # Checks if the node was originally found in the modifier form. + # + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#6535 + def modifier?; end + + # [Node] the expression to be checked + # + # source://syntax_tree//lib/syntax_tree/node.rb#6473 + def predicate; end + + # [Statements] the expressions to be executed + # + # source://syntax_tree//lib/syntax_tree/node.rb#6476 + def statements; end +end + +# IfOp represents a ternary clause. +# +# predicate ? truthy : falsy +# +# source://syntax_tree//lib/syntax_tree/node.rb#6544 +class SyntaxTree::IfOp < ::SyntaxTree::Node + # @return [IfOp] a new instance of IfOp + # + # source://syntax_tree//lib/syntax_tree/node.rb#6557 + def initialize(predicate:, truthy:, falsy:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6631 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6565 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6569 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#6555 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#6573 + def copy(predicate: T.unsafe(nil), truthy: T.unsafe(nil), falsy: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6569 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#6588 + def deconstruct_keys(_keys); end + + # [Node] the expression to be executed if the predicate is falsy + # + # source://syntax_tree//lib/syntax_tree/node.rb#6552 + def falsy; end + + # source://syntax_tree//lib/syntax_tree/node.rb#6598 + def format(q); end + + # [Node] the expression to be checked + # + # source://syntax_tree//lib/syntax_tree/node.rb#6546 + def predicate; end + + # [Node] the expression to be executed if the predicate is truthy + # + # source://syntax_tree//lib/syntax_tree/node.rb#6549 + def truthy; end + + private + + # source://syntax_tree//lib/syntax_tree/node.rb#6638 + def format_break(q); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6661 + def format_flat(q); end +end + +# Imaginary represents an imaginary number literal. +# +# 1i +# +# source://syntax_tree//lib/syntax_tree/node.rb#6680 +class SyntaxTree::Imaginary < ::SyntaxTree::Node + # @return [Imaginary] a new instance of Imaginary + # + # source://syntax_tree//lib/syntax_tree/node.rb#6687 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6722 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6693 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6697 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#6685 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#6701 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6697 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#6714 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6718 + def format(q); end + + # [String] the value of the imaginary number literal + # + # source://syntax_tree//lib/syntax_tree/node.rb#6682 + def value; end +end + +# In represents using the +in+ keyword within the Ruby 2.7+ pattern matching +# syntax. +# +# case value +# in pattern +# end +# +# source://syntax_tree//lib/syntax_tree/node.rb#6734 +class SyntaxTree::In < ::SyntaxTree::Node + # @return [In] a new instance of In + # + # source://syntax_tree//lib/syntax_tree/node.rb#6747 + def initialize(pattern:, statements:, consequent:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6812 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6755 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6759 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#6745 + def comments; end + + # [nil | In | Else] the next clause in the chain + # + # source://syntax_tree//lib/syntax_tree/node.rb#6742 + def consequent; end + + # source://syntax_tree//lib/syntax_tree/node.rb#6763 + def copy(pattern: T.unsafe(nil), statements: T.unsafe(nil), consequent: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6759 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#6778 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6788 + def format(q); end + + # [Node] the pattern to check against + # + # source://syntax_tree//lib/syntax_tree/node.rb#6736 + def pattern; end + + # [Statements] the expressions to execute if the pattern matched + # + # source://syntax_tree//lib/syntax_tree/node.rb#6739 + def statements; end +end + +# This class can be used to build an index of the structure of Ruby files. We +# define an index as the list of constants and methods defined within a file. +# +# This index strives to be as fast as possible to better support tools like +# IDEs. Because of that, it has different backends depending on what +# functionality is available. +# +# source://syntax_tree//lib/syntax_tree/index.rb#10 +module SyntaxTree::Index + class << self + # This method accepts source code and then indexes it. + # + # source://syntax_tree//lib/syntax_tree/index.rb#674 + def index(source, backend: T.unsafe(nil)); end + + # This method accepts a filepath and then indexes it. + # + # source://syntax_tree//lib/syntax_tree/index.rb#679 + def index_file(filepath, backend: T.unsafe(nil)); end + end +end + +# This entry represents a method definition that was created using the alias +# keyword. +# +# source://syntax_tree//lib/syntax_tree/index.rb#85 +class SyntaxTree::Index::AliasMethodDefinition + # @return [AliasMethodDefinition] a new instance of AliasMethodDefinition + # + # source://syntax_tree//lib/syntax_tree/index.rb#88 + def initialize(nesting, name, location, comments); end + + # Returns the value of attribute comments. + # + # source://syntax_tree//lib/syntax_tree/index.rb#86 + def comments; end + + # Returns the value of attribute location. + # + # source://syntax_tree//lib/syntax_tree/index.rb#86 + def location; end + + # Returns the value of attribute name. + # + # source://syntax_tree//lib/syntax_tree/index.rb#86 + def name; end + + # Returns the value of attribute nesting. + # + # source://syntax_tree//lib/syntax_tree/index.rb#86 + def nesting; end +end + +# This entry represents a class definition using the class keyword. +# +# source://syntax_tree//lib/syntax_tree/index.rb#22 +class SyntaxTree::Index::ClassDefinition + # @return [ClassDefinition] a new instance of ClassDefinition + # + # source://syntax_tree//lib/syntax_tree/index.rb#25 + def initialize(nesting, name, superclass, location, comments); end + + # Returns the value of attribute comments. + # + # source://syntax_tree//lib/syntax_tree/index.rb#23 + def comments; end + + # Returns the value of attribute location. + # + # source://syntax_tree//lib/syntax_tree/index.rb#23 + def location; end + + # Returns the value of attribute name. + # + # source://syntax_tree//lib/syntax_tree/index.rb#23 + def name; end + + # Returns the value of attribute nesting. + # + # source://syntax_tree//lib/syntax_tree/index.rb#23 + def nesting; end + + # Returns the value of attribute superclass. + # + # source://syntax_tree//lib/syntax_tree/index.rb#23 + def superclass; end +end + +# This entry represents a constant assignment. +# +# source://syntax_tree//lib/syntax_tree/index.rb#35 +class SyntaxTree::Index::ConstantDefinition + # @return [ConstantDefinition] a new instance of ConstantDefinition + # + # source://syntax_tree//lib/syntax_tree/index.rb#38 + def initialize(nesting, name, location, comments); end + + # Returns the value of attribute comments. + # + # source://syntax_tree//lib/syntax_tree/index.rb#36 + def comments; end + + # Returns the value of attribute location. + # + # source://syntax_tree//lib/syntax_tree/index.rb#36 + def location; end + + # Returns the value of attribute name. + # + # source://syntax_tree//lib/syntax_tree/index.rb#36 + def name; end + + # Returns the value of attribute nesting. + # + # source://syntax_tree//lib/syntax_tree/index.rb#36 + def nesting; end +end + +# This class handles parsing comments from Ruby source code in the case that +# we use the instruction sequence backend. Because the instruction sequence +# backend doesn't provide comments (since they are dropped) we provide this +# interface to lazily parse them out. +# +# source://syntax_tree//lib/syntax_tree/index.rb#152 +class SyntaxTree::Index::EntryComments + include ::Enumerable + + # @return [EntryComments] a new instance of EntryComments + # + # source://syntax_tree//lib/syntax_tree/index.rb#156 + def initialize(file_comments, location); end + + # source://syntax_tree//lib/syntax_tree/index.rb#161 + def each(&block); end + + # Returns the value of attribute file_comments. + # + # source://syntax_tree//lib/syntax_tree/index.rb#154 + def file_comments; end + + # Returns the value of attribute location. + # + # source://syntax_tree//lib/syntax_tree/index.rb#154 + def location; end +end + +# When you're using the instruction sequence backend, this class is used to +# lazily parse comments out of the source code. +# +# source://syntax_tree//lib/syntax_tree/index.rb#98 +class SyntaxTree::Index::FileComments + # @return [FileComments] a new instance of FileComments + # + # source://syntax_tree//lib/syntax_tree/index.rb#139 + def initialize(source); end + + # source://syntax_tree//lib/syntax_tree/index.rb#143 + def comments; end + + # Returns the value of attribute source. + # + # source://syntax_tree//lib/syntax_tree/index.rb#137 + def source; end +end + +# This represents the Ruby source in the form of a file. When it needs to +# be read we'll read the file. +# +# source://syntax_tree//lib/syntax_tree/index.rb#115 +class SyntaxTree::Index::FileComments::FileSource + # @return [FileSource] a new instance of FileSource + # + # source://syntax_tree//lib/syntax_tree/index.rb#118 + def initialize(filepath); end + + # Returns the value of attribute filepath. + # + # source://syntax_tree//lib/syntax_tree/index.rb#116 + def filepath; end + + # source://syntax_tree//lib/syntax_tree/index.rb#122 + def source; end +end + +# We use the ripper library to pull out source comments. +# +# source://syntax_tree//lib/syntax_tree/index.rb#100 +class SyntaxTree::Index::FileComments::Parser < ::Ripper + # @return [Parser] a new instance of Parser + # + # source://syntax_tree//lib/syntax_tree/index.rb#103 + def initialize(*_arg0); end + + # Returns the value of attribute comments. + # + # source://syntax_tree//lib/syntax_tree/index.rb#101 + def comments; end + + # source://syntax_tree//lib/syntax_tree/index.rb#108 + def on_comment(value); end +end + +# This represents the Ruby source in the form of a string. When it needs +# to be read the string is returned. +# +# source://syntax_tree//lib/syntax_tree/index.rb#129 +class SyntaxTree::Index::FileComments::StringSource + # @return [StringSource] a new instance of StringSource + # + # source://syntax_tree//lib/syntax_tree/index.rb#132 + def initialize(source); end + + # Returns the value of attribute source. + # + # source://syntax_tree//lib/syntax_tree/index.rb#130 + def source; end +end + +# The class defined here is used to perform the indexing, depending on what +# functionality is available from the runtime. +# +# source://syntax_tree//lib/syntax_tree/index.rb#670 +SyntaxTree::Index::INDEX_BACKEND = SyntaxTree::Index::ISeqBackend + +# This backend creates the index using RubyVM::InstructionSequence, which is +# faster than using the Syntax Tree parser, but is not available on all +# runtimes. +# +# source://syntax_tree//lib/syntax_tree/index.rb#177 +class SyntaxTree::Index::ISeqBackend + # source://syntax_tree//lib/syntax_tree/index.rb#184 + def index(source); end + + # source://syntax_tree//lib/syntax_tree/index.rb#191 + def index_file(filepath); end + + private + + # source://syntax_tree//lib/syntax_tree/index.rb#242 + def find_attr_arguments(insns, index); end + + # source://syntax_tree//lib/syntax_tree/index.rb#205 + def find_constant_path(insns, index); end + + # source://syntax_tree//lib/syntax_tree/index.rb#273 + def index_iseq(iseq, file_comments); end + + # source://syntax_tree//lib/syntax_tree/index.rb#200 + def location_for(iseq); end + + # source://syntax_tree//lib/syntax_tree/index.rb#258 + def method_definition(nesting, name, location, file_comments); end +end + +# source://syntax_tree//lib/syntax_tree/index.rb#182 +SyntaxTree::Index::ISeqBackend::VM_DEFINECLASS_FLAG_HAS_SUPERCLASS = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/index.rb#181 +SyntaxTree::Index::ISeqBackend::VM_DEFINECLASS_FLAG_SCOPED = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/index.rb#178 +SyntaxTree::Index::ISeqBackend::VM_DEFINECLASS_TYPE_CLASS = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/index.rb#180 +SyntaxTree::Index::ISeqBackend::VM_DEFINECLASS_TYPE_MODULE = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/index.rb#179 +SyntaxTree::Index::ISeqBackend::VM_DEFINECLASS_TYPE_SINGLETON_CLASS = T.let(T.unsafe(nil), Integer) + +# This is a location for an index entry. +# +# source://syntax_tree//lib/syntax_tree/index.rb#12 +class SyntaxTree::Index::Location + # @return [Location] a new instance of Location + # + # source://syntax_tree//lib/syntax_tree/index.rb#15 + def initialize(line, column); end + + # Returns the value of attribute column. + # + # source://syntax_tree//lib/syntax_tree/index.rb#13 + def column; end + + # Returns the value of attribute line. + # + # source://syntax_tree//lib/syntax_tree/index.rb#13 + def line; end +end + +# This entry represents a method definition using the def keyword. +# +# source://syntax_tree//lib/syntax_tree/index.rb#59 +class SyntaxTree::Index::MethodDefinition + # @return [MethodDefinition] a new instance of MethodDefinition + # + # source://syntax_tree//lib/syntax_tree/index.rb#62 + def initialize(nesting, name, location, comments); end + + # Returns the value of attribute comments. + # + # source://syntax_tree//lib/syntax_tree/index.rb#60 + def comments; end + + # Returns the value of attribute location. + # + # source://syntax_tree//lib/syntax_tree/index.rb#60 + def location; end + + # Returns the value of attribute name. + # + # source://syntax_tree//lib/syntax_tree/index.rb#60 + def name; end + + # Returns the value of attribute nesting. + # + # source://syntax_tree//lib/syntax_tree/index.rb#60 + def nesting; end +end + +# This entry represents a module definition using the module keyword. +# +# source://syntax_tree//lib/syntax_tree/index.rb#47 +class SyntaxTree::Index::ModuleDefinition + # @return [ModuleDefinition] a new instance of ModuleDefinition + # + # source://syntax_tree//lib/syntax_tree/index.rb#50 + def initialize(nesting, name, location, comments); end + + # Returns the value of attribute comments. + # + # source://syntax_tree//lib/syntax_tree/index.rb#48 + def comments; end + + # Returns the value of attribute location. + # + # source://syntax_tree//lib/syntax_tree/index.rb#48 + def location; end + + # Returns the value of attribute name. + # + # source://syntax_tree//lib/syntax_tree/index.rb#48 + def name; end + + # Returns the value of attribute nesting. + # + # source://syntax_tree//lib/syntax_tree/index.rb#48 + def nesting; end +end + +# This backend creates the index using the Syntax Tree parser and a visitor. +# It is not as fast as using the instruction sequences directly, but is +# supported on all runtimes. +# +# source://syntax_tree//lib/syntax_tree/index.rb#452 +class SyntaxTree::Index::ParserBackend + # source://syntax_tree//lib/syntax_tree/index.rb#659 + def index(source); end + + # source://syntax_tree//lib/syntax_tree/index.rb#663 + def index_file(filepath); end +end + +# source://syntax_tree//lib/syntax_tree/index.rb#453 +class SyntaxTree::Index::ParserBackend::ConstantNameVisitor < ::SyntaxTree::Visitor + # source://syntax_tree//lib/syntax_tree/index.rb#458 + def visit_const_path_ref(node); end + + # source://syntax_tree//lib/syntax_tree/index.rb#454 + def visit_const_ref(node); end + + # source://syntax_tree//lib/syntax_tree/index.rb#462 + def visit_var_ref(node); end +end + +# source://syntax_tree//lib/syntax_tree/index.rb#467 +class SyntaxTree::Index::ParserBackend::IndexVisitor < ::SyntaxTree::Visitor + # @return [IndexVisitor] a new instance of IndexVisitor + # + # source://syntax_tree//lib/syntax_tree/index.rb#470 + def initialize; end + + # Returns the value of attribute nesting. + # + # source://syntax_tree//lib/syntax_tree/index.rb#468 + def nesting; end + + # Returns the value of attribute results. + # + # source://syntax_tree//lib/syntax_tree/index.rb#468 + def results; end + + # Returns the value of attribute statements. + # + # source://syntax_tree//lib/syntax_tree/index.rb#468 + def statements; end + + # source://syntax_tree//lib/syntax_tree/index.rb#477 + def visit_alias(node); end + + # source://syntax_tree//lib/syntax_tree/index.rb#496 + def visit_assign(node); end + + # source://syntax_tree//lib/syntax_tree/index.rb#515 + def visit_class(node); end + + # source://syntax_tree//lib/syntax_tree/index.rb#547 + def visit_command(node); end + + # source://syntax_tree//lib/syntax_tree/index.rb#584 + def visit_def(node); end + + # source://syntax_tree//lib/syntax_tree/index.rb#608 + def visit_module(node); end + + # source://syntax_tree//lib/syntax_tree/index.rb#626 + def visit_program(node); end + + # source://syntax_tree//lib/syntax_tree/index.rb#631 + def visit_statements(node); end + + private + + # source://syntax_tree//lib/syntax_tree/index.rb#639 + def comments_for(node); end +end + +# This entry represents a singleton method definition using the def keyword +# with a specified target. +# +# source://syntax_tree//lib/syntax_tree/index.rb#72 +class SyntaxTree::Index::SingletonMethodDefinition + # @return [SingletonMethodDefinition] a new instance of SingletonMethodDefinition + # + # source://syntax_tree//lib/syntax_tree/index.rb#75 + def initialize(nesting, name, location, comments); end + + # Returns the value of attribute comments. + # + # source://syntax_tree//lib/syntax_tree/index.rb#73 + def comments; end + + # Returns the value of attribute location. + # + # source://syntax_tree//lib/syntax_tree/index.rb#73 + def location; end + + # Returns the value of attribute name. + # + # source://syntax_tree//lib/syntax_tree/index.rb#73 + def name; end + + # Returns the value of attribute nesting. + # + # source://syntax_tree//lib/syntax_tree/index.rb#73 + def nesting; end +end + +# Int represents an integer number literal. +# +# 1 +# +# source://syntax_tree//lib/syntax_tree/node.rb#6822 +class SyntaxTree::Int < ::SyntaxTree::Node + # @return [Int] a new instance of Int + # + # source://syntax_tree//lib/syntax_tree/node.rb#6829 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6869 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6835 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6839 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#6827 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#6843 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6839 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#6853 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6857 + def format(q); end + + # [String] the value of the integer + # + # source://syntax_tree//lib/syntax_tree/node.rb#6824 + def value; end +end + +# This visitor transforms the AST into a hash that contains only primitives +# that can be easily serialized into JSON. +# +# source://syntax_tree//lib/syntax_tree/json_visitor.rb#8 +class SyntaxTree::JSONVisitor < ::SyntaxTree::FieldVisitor + # @return [JSONVisitor] a new instance of JSONVisitor + # + # source://syntax_tree//lib/syntax_tree/json_visitor.rb#11 + def initialize; end + + # Returns the value of attribute target. + # + # source://syntax_tree//lib/syntax_tree/json_visitor.rb#9 + def target; end + + private + + # source://syntax_tree//lib/syntax_tree/json_visitor.rb#17 + def comments(node); end + + # source://syntax_tree//lib/syntax_tree/json_visitor.rb#21 + def field(name, value); end + + # source://syntax_tree//lib/syntax_tree/json_visitor.rb#25 + def list(name, values); end + + # source://syntax_tree//lib/syntax_tree/json_visitor.rb#29 + def node(node, type); end + + # source://syntax_tree//lib/syntax_tree/json_visitor.rb#38 + def pairs(name, values); end + + # source://syntax_tree//lib/syntax_tree/json_visitor.rb#42 + def text(name, value); end + + # source://syntax_tree//lib/syntax_tree/json_visitor.rb#46 + def visit_location(location); end +end + +# Kw represents the use of a keyword. It can be almost anywhere in the syntax +# tree, so you end up seeing it quite a lot. +# +# if value +# end +# +# In the above example, there would be two Kw nodes: one for the if and one +# for the end. Note that anything that matches the list of keywords in Ruby +# will use a Kw, so if you use a keyword in a symbol literal for instance: +# +# :if +# +# then the contents of the symbol node will contain a Kw node. +# +# source://syntax_tree//lib/syntax_tree/node.rb#6938 +class SyntaxTree::Kw < ::SyntaxTree::Node + # @return [Kw] a new instance of Kw + # + # source://syntax_tree//lib/syntax_tree/node.rb#6948 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6981 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6955 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6959 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#6946 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#6963 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6959 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#6973 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#6977 + def format(q); end + + # [Symbol] the symbol version of the value + # + # source://syntax_tree//lib/syntax_tree/node.rb#6943 + def name; end + + # [String] the value of the keyword + # + # source://syntax_tree//lib/syntax_tree/node.rb#6940 + def value; end +end + +# KwRestParam represents defining a parameter in a method definition that +# accepts all remaining keyword parameters. +# +# def method(**kwargs) end +# +# source://syntax_tree//lib/syntax_tree/node.rb#6991 +class SyntaxTree::KwRestParam < ::SyntaxTree::Node + # @return [KwRestParam] a new instance of KwRestParam + # + # source://syntax_tree//lib/syntax_tree/node.rb#6998 + def initialize(name:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7034 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7004 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7008 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#6996 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7012 + def copy(name: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7008 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7025 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7029 + def format(q); end + + # [nil | Ident] the name of the parameter + # + # source://syntax_tree//lib/syntax_tree/node.rb#6993 + def name; end +end + +# LBrace represents the use of a left brace, i.e., {. +# +# source://syntax_tree//lib/syntax_tree/node.rb#7316 +class SyntaxTree::LBrace < ::SyntaxTree::Node + # @return [LBrace] a new instance of LBrace + # + # source://syntax_tree//lib/syntax_tree/node.rb#7323 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7358 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7329 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7333 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#7321 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7337 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7333 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7350 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7354 + def format(q); end + + # [String] the left brace + # + # source://syntax_tree//lib/syntax_tree/node.rb#7318 + def value; end + + class << self + # Because some nodes keep around a { token so that comments can be attached + # to it if they occur in the source, oftentimes an LBrace is a child of + # another node. This means it's required at initialization time. To make it + # easier to create LBrace nodes without any specific value, this method + # provides a default node. + # + # source://syntax_tree//lib/syntax_tree/node.rb#7367 + def default; end + end +end + +# LBracket represents the use of a left bracket, i.e., [. +# +# source://syntax_tree//lib/syntax_tree/node.rb#7373 +class SyntaxTree::LBracket < ::SyntaxTree::Node + # @return [LBracket] a new instance of LBracket + # + # source://syntax_tree//lib/syntax_tree/node.rb#7380 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7415 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7386 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7390 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#7378 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7394 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7390 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7407 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7411 + def format(q); end + + # [String] the left bracket + # + # source://syntax_tree//lib/syntax_tree/node.rb#7375 + def value; end + + class << self + # Because some nodes keep around a [ token so that comments can be attached + # to it if they occur in the source, oftentimes an LBracket is a child of + # another node. This means it's required at initialization time. To make it + # easier to create LBracket nodes without any specific value, this method + # provides a default node. + # + # source://syntax_tree//lib/syntax_tree/node.rb#7424 + def default; end + end +end + +# LParen represents the use of a left parenthesis, i.e., (. +# +# source://syntax_tree//lib/syntax_tree/node.rb#7430 +class SyntaxTree::LParen < ::SyntaxTree::Node + # @return [LParen] a new instance of LParen + # + # source://syntax_tree//lib/syntax_tree/node.rb#7437 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7472 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7443 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7447 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#7435 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7451 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7447 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7464 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7468 + def format(q); end + + # [String] the left parenthesis + # + # source://syntax_tree//lib/syntax_tree/node.rb#7432 + def value; end + + class << self + # Because some nodes keep around a ( token so that comments can be attached + # to it if they occur in the source, oftentimes an LParen is a child of + # another node. This means it's required at initialization time. To make it + # easier to create LParen nodes without any specific value, this method + # provides a default node. + # + # source://syntax_tree//lib/syntax_tree/node.rb#7481 + def default; end + end +end + +# Label represents the use of an identifier to associate with an object. You +# can find it in a hash key, as in: +# +# { key: value } +# +# In this case "key:" would be the body of the label. You can also find it in +# pattern matching, as in: +# +# case value +# in key: +# end +# +# In this case "key:" would be the body of the label. +# +# source://syntax_tree//lib/syntax_tree/node.rb#7052 +class SyntaxTree::Label < ::SyntaxTree::Node + # @return [Label] a new instance of Label + # + # source://syntax_tree//lib/syntax_tree/node.rb#7059 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7094 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7065 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7069 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#7057 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7073 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7069 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7086 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7090 + def format(q); end + + # [String] the value of the label + # + # source://syntax_tree//lib/syntax_tree/node.rb#7054 + def value; end +end + +# LabelEnd represents the end of a dynamic symbol. +# +# { "key": value } +# +# In the example above, LabelEnd represents the "\":" token at the end of the +# hash key. This node is important for determining the type of quote being +# used by the label. +# +# source://syntax_tree//lib/syntax_tree/node.rb#7106 +class SyntaxTree::LabelEnd < ::SyntaxTree::Node + # @return [LabelEnd] a new instance of LabelEnd + # + # source://syntax_tree//lib/syntax_tree/node.rb#7110 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7136 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7115 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7119 + def child_nodes; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7123 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7119 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7132 + def deconstruct_keys(_keys); end + + # [String] the end of the label + # + # source://syntax_tree//lib/syntax_tree/node.rb#7108 + def value; end +end + +# Lambda represents using a lambda literal (not the lambda method call). +# +# ->(value) { value * 2 } +# +# source://syntax_tree//lib/syntax_tree/node.rb#7145 +class SyntaxTree::Lambda < ::SyntaxTree::Node + # @return [Lambda] a new instance of Lambda + # + # source://syntax_tree//lib/syntax_tree/node.rb#7155 + def initialize(params:, statements:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7239 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7162 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7166 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#7153 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7170 + def copy(params: T.unsafe(nil), statements: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7166 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7184 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7193 + def format(q); end + + # [LambdaVar | Paren] the parameter declaration for this lambda + # + # source://syntax_tree//lib/syntax_tree/node.rb#7147 + def params; end + + # [BodyStmt | Statements] the expressions to be executed in this lambda + # + # source://syntax_tree//lib/syntax_tree/node.rb#7150 + def statements; end +end + +# LambdaVar represents the parameters being declared for a lambda. Effectively +# this node is everything contained within the parentheses. This includes all +# of the various parameter types, as well as block-local variable +# declarations. +# +# -> (positional, optional = value, keyword:, █ local) do +# end +# +# source://syntax_tree//lib/syntax_tree/node.rb#7253 +class SyntaxTree::LambdaVar < ::SyntaxTree::Node + # @return [LambdaVar] a new instance of LambdaVar + # + # source://syntax_tree//lib/syntax_tree/node.rb#7263 + def initialize(params:, locals:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7309 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7270 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7274 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#7261 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7278 + def copy(params: T.unsafe(nil), locals: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7274 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7292 + def deconstruct_keys(_keys); end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#7296 + def empty?; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7300 + def format(q); end + + # [Array[ Ident ]] the list of block-local variable declarations + # + # source://syntax_tree//lib/syntax_tree/node.rb#7258 + def locals; end + + # [Params] the parameters being declared with the block + # + # source://syntax_tree//lib/syntax_tree/node.rb#7255 + def params; end +end + +# Syntax Tree additionally ships with a language server conforming to the +# language server protocol. It can be invoked through the CLI by running: +# +# stree lsp +# +# source://syntax_tree//lib/syntax_tree/language_server.rb#14 +class SyntaxTree::LanguageServer + # @return [LanguageServer] a new instance of LanguageServer + # + # source://syntax_tree//lib/syntax_tree/language_server.rb#217 + def initialize(input: T.unsafe(nil), output: T.unsafe(nil), print_width: T.unsafe(nil)); end + + # Returns the value of attribute input. + # + # source://syntax_tree//lib/syntax_tree/language_server.rb#215 + def input; end + + # Returns the value of attribute output. + # + # source://syntax_tree//lib/syntax_tree/language_server.rb#215 + def output; end + + # Returns the value of attribute print_width. + # + # source://syntax_tree//lib/syntax_tree/language_server.rb#215 + def print_width; end + + # source://syntax_tree//lib/syntax_tree/language_server.rb#228 + def run; end + + private + + # source://syntax_tree//lib/syntax_tree/language_server.rb#280 + def capabilities; end + + # source://syntax_tree//lib/syntax_tree/language_server.rb#293 + def format(source, extension); end + + # source://syntax_tree//lib/syntax_tree/language_server.rb#317 + def inlay_hints(source); end + + # source://syntax_tree//lib/syntax_tree/language_server.rb#333 + def log(message); end + + # source://syntax_tree//lib/syntax_tree/language_server.rb#327 + def write(value); end +end + +# This class provides inlay hints for the language server. For more +# information, see the spec here: +# https://github.com/microsoft/language-server-protocol/issues/956. +# +# source://syntax_tree//lib/syntax_tree/language_server.rb#18 +class SyntaxTree::LanguageServer::InlayHints < ::SyntaxTree::Visitor + # @return [InlayHints] a new instance of InlayHints + # + # source://syntax_tree//lib/syntax_tree/language_server.rb#43 + def initialize; end + + # Returns the value of attribute hints. + # + # source://syntax_tree//lib/syntax_tree/language_server.rb#41 + def hints; end + + # Returns the value of attribute stack. + # + # source://syntax_tree//lib/syntax_tree/language_server.rb#41 + def stack; end + + # source://syntax_tree//lib/syntax_tree/language_server.rb#48 + def visit(node); end + + # source://syntax_tree//lib/syntax_tree/language_server.rb#67 + def visit_assign(node); end + + # source://syntax_tree//lib/syntax_tree/language_server.rb#81 + def visit_binary(node); end + + # source://syntax_tree//lib/syntax_tree/language_server.rb#102 + def visit_if_op(node); end + + # source://syntax_tree//lib/syntax_tree/language_server.rb#124 + def visit_rescue(node); end + + # source://syntax_tree//lib/syntax_tree/language_server.rb#145 + def visit_unary(node); end + + private + + # source://syntax_tree//lib/syntax_tree/language_server.rb#156 + def parentheses(location); end +end + +# This represents a hint that is going to be displayed in the editor. +# +# source://syntax_tree//lib/syntax_tree/language_server.rb#20 +class SyntaxTree::LanguageServer::InlayHints::Hint + # @return [Hint] a new instance of Hint + # + # source://syntax_tree//lib/syntax_tree/language_server.rb#23 + def initialize(line:, character:, label:); end + + # Returns the value of attribute character. + # + # source://syntax_tree//lib/syntax_tree/language_server.rb#21 + def character; end + + # Returns the value of attribute label. + # + # source://syntax_tree//lib/syntax_tree/language_server.rb#21 + def label; end + + # Returns the value of attribute line. + # + # source://syntax_tree//lib/syntax_tree/language_server.rb#21 + def line; end + + # This is the shape that the LSP expects. + # + # source://syntax_tree//lib/syntax_tree/language_server.rb#30 + def to_json(*opts); end +end + +# This is a small module that effectively mirrors pattern matching. We're +# using it so that we can support truffleruby without having to ignore the +# language server. +# +# source://syntax_tree//lib/syntax_tree/language_server.rb#174 +module SyntaxTree::LanguageServer::Request + class << self + # source://syntax_tree//lib/syntax_tree/language_server.rb#203 + def [](value); end + end +end + +# Represents a hash pattern. +# +# source://syntax_tree//lib/syntax_tree/language_server.rb#176 +class SyntaxTree::LanguageServer::Request::Shape + # @return [Shape] a new instance of Shape + # + # source://syntax_tree//lib/syntax_tree/language_server.rb#179 + def initialize(values); end + + # source://syntax_tree//lib/syntax_tree/language_server.rb#183 + def ===(other); end + + # Returns the value of attribute values. + # + # source://syntax_tree//lib/syntax_tree/language_server.rb#177 + def values; end +end + +# Represents an array pattern. +# +# source://syntax_tree//lib/syntax_tree/language_server.rb#191 +class SyntaxTree::LanguageServer::Request::Tuple + # @return [Tuple] a new instance of Tuple + # + # source://syntax_tree//lib/syntax_tree/language_server.rb#194 + def initialize(values); end + + # source://syntax_tree//lib/syntax_tree/language_server.rb#198 + def ===(other); end + + # Returns the value of attribute values. + # + # source://syntax_tree//lib/syntax_tree/language_server.rb#192 + def values; end +end + +# Represents the location of a node in the tree from the source code. +# +# source://syntax_tree//lib/syntax_tree/node.rb#5 +class SyntaxTree::Location + # @return [Location] a new instance of Location + # + # source://syntax_tree//lib/syntax_tree/node.rb#13 + def initialize(start_line:, start_char:, start_column:, end_line:, end_char:, end_column:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#33 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#50 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#54 + def deconstruct_keys(_keys); end + + # Returns the value of attribute end_char. + # + # source://syntax_tree//lib/syntax_tree/node.rb#6 + def end_char; end + + # Returns the value of attribute end_column. + # + # source://syntax_tree//lib/syntax_tree/node.rb#6 + def end_column; end + + # Returns the value of attribute end_line. + # + # source://syntax_tree//lib/syntax_tree/node.rb#6 + def end_line; end + + # source://syntax_tree//lib/syntax_tree/node.rb#29 + def lines; end + + # Returns the value of attribute start_char. + # + # source://syntax_tree//lib/syntax_tree/node.rb#6 + def start_char; end + + # Returns the value of attribute start_column. + # + # source://syntax_tree//lib/syntax_tree/node.rb#6 + def start_column; end + + # Returns the value of attribute start_line. + # + # source://syntax_tree//lib/syntax_tree/node.rb#6 + def start_line; end + + # source://syntax_tree//lib/syntax_tree/node.rb#39 + def to(other); end + + class << self + # A convenience method that is typically used when you don't care about the + # location of a node, but need to create a Location instance to pass to a + # constructor. + # + # source://syntax_tree//lib/syntax_tree/node.rb#90 + def default; end + + # source://syntax_tree//lib/syntax_tree/node.rb#76 + def fixed(line:, char:, column:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#65 + def token(line:, char:, column:, size:); end + end +end + +# Formats an Until or While node. +# +# source://syntax_tree//lib/syntax_tree/node.rb#11378 +class SyntaxTree::LoopFormatter + # @return [LoopFormatter] a new instance of LoopFormatter + # + # source://syntax_tree//lib/syntax_tree/node.rb#11385 + def initialize(keyword, node); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11390 + def format(q); end + + # [String] the name of the keyword used for this loop + # + # source://syntax_tree//lib/syntax_tree/node.rb#11380 + def keyword; end + + # [Until | While] the node that is being formatted + # + # source://syntax_tree//lib/syntax_tree/node.rb#11383 + def node; end + + private + + # source://syntax_tree//lib/syntax_tree/node.rb#11437 + def format_break(q); end +end + +# MAssign is a parent node of any kind of multiple assignment. This includes +# splitting out variables on the left like: +# +# first, second, third = value +# +# as well as splitting out variables on the right, as in: +# +# value = first, second, third +# +# Both sides support splats, as well as variables following them. There's also +# destructuring behavior that you can achieve with the following: +# +# first, = value +# +# source://syntax_tree//lib/syntax_tree/node.rb#7500 +class SyntaxTree::MAssign < ::SyntaxTree::Node + # @return [MAssign] a new instance of MAssign + # + # source://syntax_tree//lib/syntax_tree/node.rb#7510 + def initialize(target:, value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7554 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7517 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7521 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#7508 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7525 + def copy(target: T.unsafe(nil), value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7521 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7539 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7543 + def format(q); end + + # [MLHS | MLHSParen] the target of the multiple assignment + # + # source://syntax_tree//lib/syntax_tree/node.rb#7502 + def target; end + + # [Node] the value being assigned + # + # source://syntax_tree//lib/syntax_tree/node.rb#7505 + def value; end +end + +# MLHS represents a list of values being destructured on the left-hand side +# of a multiple assignment. +# +# first, second, third = value +# +# source://syntax_tree//lib/syntax_tree/node.rb#7638 +class SyntaxTree::MLHS < ::SyntaxTree::Node + # @return [MLHS] a new instance of MLHS + # + # source://syntax_tree//lib/syntax_tree/node.rb#7655 + def initialize(parts:, location:, comma: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7693 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7662 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7666 + def child_nodes; end + + # [boolean] whether or not there is a trailing comma at the end of this + # list, which impacts destructuring. It's an attr_accessor so that while + # the syntax tree is being built it can be set by its parent node + # + # source://syntax_tree//lib/syntax_tree/node.rb#7650 + def comma; end + + # [boolean] whether or not there is a trailing comma at the end of this + # list, which impacts destructuring. It's an attr_accessor so that while + # the syntax tree is being built it can be set by its parent node + # + # source://syntax_tree//lib/syntax_tree/node.rb#7650 + def comma=(_arg0); end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#7653 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7670 + def copy(parts: T.unsafe(nil), location: T.unsafe(nil), comma: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7666 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7684 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7688 + def format(q); end + + # [ + # Array[ + # ARefField | ArgStar | ConstPathField | Field | Ident | MLHSParen | + # TopConstField | VarField + # ] + # ] the parts of the left-hand side of a multiple assignment + # + # source://syntax_tree//lib/syntax_tree/node.rb#7645 + def parts; end +end + +# MLHSParen represents parentheses being used to destruct values in a multiple +# assignment on the left hand side. +# +# (left, right) = value +# +# source://syntax_tree//lib/syntax_tree/node.rb#7704 +class SyntaxTree::MLHSParen < ::SyntaxTree::Node + # @return [MLHSParen] a new instance of MLHSParen + # + # source://syntax_tree//lib/syntax_tree/node.rb#7716 + def initialize(contents:, location:, comma: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7769 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7723 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7727 + def child_nodes; end + + # [boolean] whether or not there is a trailing comma at the end of this + # list, which impacts destructuring. It's an attr_accessor so that while + # the syntax tree is being built it can be set by its parent node + # + # source://syntax_tree//lib/syntax_tree/node.rb#7711 + def comma; end + + # [boolean] whether or not there is a trailing comma at the end of this + # list, which impacts destructuring. It's an attr_accessor so that while + # the syntax tree is being built it can be set by its parent node + # + # source://syntax_tree//lib/syntax_tree/node.rb#7711 + def comma=(_arg0); end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#7714 + def comments; end + + # [MLHS | MLHSParen] the contents inside of the parentheses + # + # source://syntax_tree//lib/syntax_tree/node.rb#7706 + def contents; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7731 + def copy(contents: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7727 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7744 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7748 + def format(q); end +end + +# MRHS represents the values that are being assigned on the right-hand side of +# a multiple assignment. +# +# values = first, second, third +# +# source://syntax_tree//lib/syntax_tree/node.rb#7869 +class SyntaxTree::MRHS < ::SyntaxTree::Node + # @return [MRHS] a new instance of MRHS + # + # source://syntax_tree//lib/syntax_tree/node.rb#7876 + def initialize(parts:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7911 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7882 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7886 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#7874 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7890 + def copy(parts: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7886 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7903 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7907 + def format(q); end + + # [Array[Node]] the parts that are being assigned + # + # source://syntax_tree//lib/syntax_tree/node.rb#7871 + def parts; end +end + +# This visitor transforms the AST into a Ruby pattern matching expression that +# would match correctly against the AST. +# +# source://syntax_tree//lib/syntax_tree/match_visitor.rb#6 +class SyntaxTree::MatchVisitor < ::SyntaxTree::FieldVisitor + # @return [MatchVisitor] a new instance of MatchVisitor + # + # source://syntax_tree//lib/syntax_tree/match_visitor.rb#9 + def initialize(q); end + + # Returns the value of attribute q. + # + # source://syntax_tree//lib/syntax_tree/match_visitor.rb#7 + def q; end + + # source://syntax_tree//lib/syntax_tree/match_visitor.rb#13 + def visit(node); end + + private + + # source://syntax_tree//lib/syntax_tree/match_visitor.rb#30 + def comments(node); end + + # source://syntax_tree//lib/syntax_tree/match_visitor.rb#44 + def field(name, value); end + + # source://syntax_tree//lib/syntax_tree/match_visitor.rb#52 + def list(name, values); end + + # source://syntax_tree//lib/syntax_tree/match_visitor.rb#65 + def node(node, _type); end + + # source://syntax_tree//lib/syntax_tree/match_visitor.rb#86 + def pairs(name, values); end + + # source://syntax_tree//lib/syntax_tree/match_visitor.rb#112 + def text(name, value); end +end + +# This module is responsible for rendering mermaid (https://mermaid.js.org/) +# flow charts. +# +# source://syntax_tree//lib/syntax_tree/mermaid.rb#9 +module SyntaxTree::Mermaid + class << self + # Escape a label to be used in the mermaid syntax. This is used to escape + # HTML entities such that they render properly within the quotes. + # + # source://syntax_tree//lib/syntax_tree/mermaid.rb#158 + def escape(label); end + + # Create a new flowchart. If a block is given, it will be yielded to and + # the flowchart will be rendered. Otherwise, the flowchart will be + # returned. + # + # source://syntax_tree//lib/syntax_tree/mermaid.rb#165 + def flowchart; end + end +end + +# This is the main class that handles rendering a flowchart. It keeps track +# of its nodes and links and renders them according to the mermaid syntax. +# +# source://syntax_tree//lib/syntax_tree/mermaid.rb#12 +class SyntaxTree::Mermaid::FlowChart + # @return [FlowChart] a new instance of FlowChart + # + # source://syntax_tree//lib/syntax_tree/mermaid.rb#15 + def initialize; end + + # Retrieve a node that has already been added to the flowchart by its id. + # + # source://syntax_tree//lib/syntax_tree/mermaid.rb#25 + def fetch(id); end + + # Add a link to the flowchart between two nodes with an optional label. + # + # source://syntax_tree//lib/syntax_tree/mermaid.rb#30 + def link(from, to, label = T.unsafe(nil), type: T.unsafe(nil), color: T.unsafe(nil)); end + + # Returns the value of attribute links. + # + # source://syntax_tree//lib/syntax_tree/mermaid.rb#13 + def links; end + + # Add a node to the flowchart with an optional label. + # + # source://syntax_tree//lib/syntax_tree/mermaid.rb#39 + def node(id, label = T.unsafe(nil), shape: T.unsafe(nil)); end + + # Returns the value of attribute nodes. + # + # source://syntax_tree//lib/syntax_tree/mermaid.rb#13 + def nodes; end + + # Returns the value of attribute output. + # + # source://syntax_tree//lib/syntax_tree/mermaid.rb#13 + def output; end + + # Returns the value of attribute prefix. + # + # source://syntax_tree//lib/syntax_tree/mermaid.rb#13 + def prefix; end + + # Return the rendered flowchart. + # + # source://syntax_tree//lib/syntax_tree/mermaid.rb#64 + def render; end + + # Add a subgraph to the flowchart. Within the given block, all of the + # nodes will be rendered within the subgraph. + # + # source://syntax_tree//lib/syntax_tree/mermaid.rb#49 + def subgraph(label); end +end + +# This class represents a link between two nodes in a flowchart. It is not +# meant to be interacted with directly, but rather used as a data structure +# by the FlowChart class. +# +# source://syntax_tree//lib/syntax_tree/mermaid.rb#78 +class SyntaxTree::Mermaid::Link + # @return [Link] a new instance of Link + # + # source://syntax_tree//lib/syntax_tree/mermaid.rb#84 + def initialize(from, to, label, type, color); end + + # Returns the value of attribute color. + # + # source://syntax_tree//lib/syntax_tree/mermaid.rb#82 + def color; end + + # Returns the value of attribute from. + # + # source://syntax_tree//lib/syntax_tree/mermaid.rb#82 + def from; end + + # Returns the value of attribute label. + # + # source://syntax_tree//lib/syntax_tree/mermaid.rb#82 + def label; end + + # source://syntax_tree//lib/syntax_tree/mermaid.rb#95 + def render; end + + # Returns the value of attribute to. + # + # source://syntax_tree//lib/syntax_tree/mermaid.rb#82 + def to; end + + # Returns the value of attribute type. + # + # source://syntax_tree//lib/syntax_tree/mermaid.rb#82 + def type; end + + private + + # source://syntax_tree//lib/syntax_tree/mermaid.rb#108 + def sides; end +end + +# source://syntax_tree//lib/syntax_tree/mermaid.rb#80 +SyntaxTree::Mermaid::Link::COLORS = T.let(T.unsafe(nil), Array) + +# source://syntax_tree//lib/syntax_tree/mermaid.rb#79 +SyntaxTree::Mermaid::Link::TYPES = T.let(T.unsafe(nil), Array) + +# This class represents a node in a flowchart. Unlike the Link class, it can +# be used directly. It is the return value of the #node method, and is meant +# to be passed around to #link methods to create links between nodes. +# +# source://syntax_tree//lib/syntax_tree/mermaid.rb#121 +class SyntaxTree::Mermaid::Node + # @return [Node] a new instance of Node + # + # source://syntax_tree//lib/syntax_tree/mermaid.rb#126 + def initialize(id, label, shape); end + + # Returns the value of attribute id. + # + # source://syntax_tree//lib/syntax_tree/mermaid.rb#124 + def id; end + + # Returns the value of attribute label. + # + # source://syntax_tree//lib/syntax_tree/mermaid.rb#124 + def label; end + + # source://syntax_tree//lib/syntax_tree/mermaid.rb#134 + def render; end + + # Returns the value of attribute shape. + # + # source://syntax_tree//lib/syntax_tree/mermaid.rb#124 + def shape; end + + private + + # source://syntax_tree//lib/syntax_tree/mermaid.rb#141 + def bounds; end +end + +# source://syntax_tree//lib/syntax_tree/mermaid.rb#122 +SyntaxTree::Mermaid::Node::SHAPES = T.let(T.unsafe(nil), Array) + +# This visitor transforms the AST into a mermaid flow chart. +# +# source://syntax_tree//lib/syntax_tree/mermaid_visitor.rb#5 +class SyntaxTree::MermaidVisitor < ::SyntaxTree::FieldVisitor + # @return [MermaidVisitor] a new instance of MermaidVisitor + # + # source://syntax_tree//lib/syntax_tree/mermaid_visitor.rb#8 + def initialize; end + + # Returns the value of attribute flowchart. + # + # source://syntax_tree//lib/syntax_tree/mermaid_visitor.rb#6 + def flowchart; end + + # Returns the value of attribute target. + # + # source://syntax_tree//lib/syntax_tree/mermaid_visitor.rb#6 + def target; end + + # source://syntax_tree//lib/syntax_tree/mermaid_visitor.rb#13 + def visit_program(node); end + + private + + # source://syntax_tree//lib/syntax_tree/mermaid_visitor.rb#20 + def comments(node); end + + # source://syntax_tree//lib/syntax_tree/mermaid_visitor.rb#24 + def field(name, value); end + + # source://syntax_tree//lib/syntax_tree/mermaid_visitor.rb#37 + def list(name, values); end + + # source://syntax_tree//lib/syntax_tree/mermaid_visitor.rb#43 + def node(node, type); end + + # source://syntax_tree//lib/syntax_tree/mermaid_visitor.rb#55 + def pairs(name, values); end + + # source://syntax_tree//lib/syntax_tree/mermaid_visitor.rb#65 + def text(name, value); end +end + +# MethodAddBlock represents a method call with a block argument. +# +# method {} +# +# source://syntax_tree//lib/syntax_tree/node.rb#7563 +class SyntaxTree::MethodAddBlock < ::SyntaxTree::Node + # @return [MethodAddBlock] a new instance of MethodAddBlock + # + # source://syntax_tree//lib/syntax_tree/node.rb#7573 + def initialize(call:, block:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7622 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7580 + def accept(visitor); end + + # [BlockNode] the block being sent with the method call + # + # source://syntax_tree//lib/syntax_tree/node.rb#7568 + def block; end + + # [ARef | CallNode | Command | CommandCall | Super | ZSuper] the method call + # + # source://syntax_tree//lib/syntax_tree/node.rb#7565 + def call; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7584 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#7571 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7588 + def copy(call: T.unsafe(nil), block: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7584 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7602 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7606 + def format(q); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7627 + def format_contents(q); end +end + +# ModuleDeclaration represents defining a module using the +module+ keyword. +# +# module Namespace +# end +# +# source://syntax_tree//lib/syntax_tree/node.rb#7779 +class SyntaxTree::ModuleDeclaration < ::SyntaxTree::Node + # @return [ModuleDeclaration] a new instance of ModuleDeclaration + # + # source://syntax_tree//lib/syntax_tree/node.rb#7789 + def initialize(constant:, bodystmt:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7849 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7796 + def accept(visitor); end + + # [BodyStmt] the expressions to be executed in the context of the module + # + # source://syntax_tree//lib/syntax_tree/node.rb#7784 + def bodystmt; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7800 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#7787 + def comments; end + + # [ConstPathRef | ConstRef | TopConstRef] the name of the module + # + # source://syntax_tree//lib/syntax_tree/node.rb#7781 + def constant; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7804 + def copy(constant: T.unsafe(nil), bodystmt: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7800 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7818 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7827 + def format(q); end + + private + + # source://syntax_tree//lib/syntax_tree/node.rb#7856 + def format_declaration(q); end +end + +# This visitor walks through the tree and copies each node as it is being +# visited. This is useful for mutating the tree before it is formatted. +# +# source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#6 +class SyntaxTree::MutationVisitor < ::SyntaxTree::BasicVisitor + # @return [MutationVisitor] a new instance of MutationVisitor + # + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#9 + def initialize; end + + # Create a new mutation based on the given query that will mutate the node + # using the given block. The block should return a new node that will take + # the place of the given node in the tree. These blocks frequently make use + # of the `copy` method on nodes to create a new node with the same + # properties as the original node. + # + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#18 + def mutate(query, &block); end + + # Returns the value of attribute mutations. + # + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#7 + def mutations; end + + # This is the base visit method for each node in the tree. It first creates + # a copy of the node using the visit_* methods defined below. Then it checks + # each mutation in sequence and calls it if it finds a match. + # + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#25 + def visit(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#38 + def visit_BEGIN(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#46 + def visit_CHAR(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#51 + def visit_END(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#59 + def visit___end__(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#64 + def visit_alias(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#69 + def visit_aref(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#74 + def visit_aref_field(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#89 + def visit_arg_block(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#79 + def visit_arg_paren(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#94 + def visit_arg_star(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#84 + def visit_args(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#99 + def visit_args_forward(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#104 + def visit_array(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#112 + def visit_aryptn(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#122 + def visit_assign(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#127 + def visit_assoc(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#132 + def visit_assoc_splat(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#137 + def visit_backref(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#142 + def visit_backtick(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#147 + def visit_bare_assoc_hash(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#152 + def visit_begin(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#162 + def visit_binary(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#295 + def visit_block(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#167 + def visit_block_var(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#172 + def visit_blockarg(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#177 + def visit_bodystmt(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#187 + def visit_break(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#192 + def visit_call(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#202 + def visit_case(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#216 + def visit_class(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#225 + def visit_comma(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#230 + def visit_command(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#239 + def visit_command_call(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#249 + def visit_comment(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#254 + def visit_const(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#259 + def visit_const_path_field(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#264 + def visit_const_path_ref(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#269 + def visit_const_ref(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#274 + def visit_cvar(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#279 + def visit_def(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#290 + def visit_defined(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#313 + def visit_dyna_symbol(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#318 + def visit_else(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#326 + def visit_elsif(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#334 + def visit_embdoc(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#339 + def visit_embexpr_beg(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#344 + def visit_embexpr_end(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#349 + def visit_embvar(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#354 + def visit_ensure(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#362 + def visit_excessed_comma(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#367 + def visit_field(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#375 + def visit_float(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#380 + def visit_fndptn(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#390 + def visit_for(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#395 + def visit_gvar(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#400 + def visit_hash(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#405 + def visit_heredoc(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#414 + def visit_heredoc_beg(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#419 + def visit_heredoc_end(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#424 + def visit_hshptn(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#434 + def visit_ident(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#439 + def visit_if(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#448 + def visit_if_op(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#453 + def visit_imaginary(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#458 + def visit_in(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#466 + def visit_int(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#471 + def visit_ivar(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#476 + def visit_kw(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#481 + def visit_kwrest_param(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#486 + def visit_label(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#491 + def visit_label_end(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#496 + def visit_lambda(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#504 + def visit_lambda_var(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#509 + def visit_lbrace(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#514 + def visit_lbracket(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#519 + def visit_lparen(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#524 + def visit_massign(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#529 + def visit_method_add_block(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#534 + def visit_mlhs(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#539 + def visit_mlhs_paren(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#544 + def visit_module(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#552 + def visit_mrhs(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#557 + def visit_next(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#812 + def visit_not(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#562 + def visit_op(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#567 + def visit_opassign(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#572 + def visit_params(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#588 + def visit_paren(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#593 + def visit_period(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#157 + def visit_pinned_begin(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#854 + def visit_pinned_var_ref(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#598 + def visit_program(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#603 + def visit_qsymbols(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#611 + def visit_qsymbols_beg(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#616 + def visit_qwords(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#624 + def visit_qwords_beg(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#304 + def visit_range(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#211 + def visit_rassign(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#629 + def visit_rational(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#634 + def visit_rbrace(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#639 + def visit_rbracket(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#644 + def visit_redo(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#654 + def visit_regexp_beg(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#649 + def visit_regexp_content(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#659 + def visit_regexp_end(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#664 + def visit_regexp_literal(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#674 + def visit_rescue(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#669 + def visit_rescue_ex(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#684 + def visit_rescue_mod(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#689 + def visit_rest_param(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#694 + def visit_retry(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#699 + def visit_return(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#704 + def visit_rparen(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#709 + def visit_sclass(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#714 + def visit_statements(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#724 + def visit_string_concat(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#719 + def visit_string_content(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#729 + def visit_string_dvar(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#734 + def visit_string_embexpr(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#739 + def visit_string_literal(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#744 + def visit_super(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#749 + def visit_symbeg(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#754 + def visit_symbol_content(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#759 + def visit_symbol_literal(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#764 + def visit_symbols(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#772 + def visit_symbols_beg(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#777 + def visit_tlambda(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#782 + def visit_tlambeg(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#787 + def visit_top_const_field(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#792 + def visit_top_const_ref(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#797 + def visit_tstring_beg(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#802 + def visit_tstring_content(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#807 + def visit_tstring_end(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#817 + def visit_unary(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#822 + def visit_undef(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#827 + def visit_unless(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#836 + def visit_until(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#844 + def visit_var_field(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#849 + def visit_var_ref(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#859 + def visit_vcall(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#864 + def visit_void_stmt(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#869 + def visit_when(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#878 + def visit_while(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#886 + def visit_word(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#891 + def visit_words(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#899 + def visit_words_beg(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#904 + def visit_xstring(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#909 + def visit_xstring_literal(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#914 + def visit_yield(node); end + + # source://syntax_tree//lib/syntax_tree/mutation_visitor.rb#919 + def visit_zsuper(node); end +end + +# Next represents using the +next+ keyword. +# +# next +# +# The +next+ keyword can also optionally be called with an argument: +# +# next value +# +# +next+ can even be called with multiple arguments, but only if parentheses +# are omitted, as in: +# +# next first, second, third +# +# If a single value is being given, parentheses can be used, as in: +# +# next(value) +# +# source://syntax_tree//lib/syntax_tree/node.rb#7933 +class SyntaxTree::Next < ::SyntaxTree::Node + # @return [Next] a new instance of Next + # + # source://syntax_tree//lib/syntax_tree/node.rb#7940 + def initialize(arguments:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7975 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7946 + def accept(visitor); end + + # [Args] the arguments passed to the next keyword + # + # source://syntax_tree//lib/syntax_tree/node.rb#7935 + def arguments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7950 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#7938 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7954 + def copy(arguments: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7950 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#7967 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#7971 + def format(q); end +end + +# This is the parent node of all of the syntax tree nodes. It's pretty much +# exclusively here to make it easier to operate with the tree in cases where +# you're trying to monkey-patch or strictly type. +# +# source://syntax_tree//lib/syntax_tree/node.rb#105 +class SyntaxTree::Node + # @raise [NotImplementedError] + # + # source://syntax_tree//lib/syntax_tree/node.rb#109 + def accept(visitor); end + + # @raise [NotImplementedError] + # + # source://syntax_tree//lib/syntax_tree/node.rb#113 + def child_nodes; end + + # source://syntax_tree//lib/syntax_tree/node.rb#149 + def construct_keys; end + + # @raise [NotImplementedError] + # + # source://syntax_tree//lib/syntax_tree/node.rb#117 + def deconstruct; end + + # @raise [NotImplementedError] + # + # source://syntax_tree//lib/syntax_tree/node.rb#121 + def deconstruct_keys(keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#133 + def end_char; end + + # @raise [NotImplementedError] + # + # source://syntax_tree//lib/syntax_tree/node.rb#125 + def format(q); end + + # [Location] the location of this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#107 + def location; end + + # source://syntax_tree//lib/syntax_tree/node.rb#137 + def pretty_print(q); end + + # source://syntax_tree//lib/syntax_tree/node.rb#129 + def start_char; end + + # source://syntax_tree//lib/syntax_tree/node.rb#141 + def to_json(*opts); end + + # source://syntax_tree//lib/syntax_tree/node.rb#145 + def to_mermaid; end +end + +# Not represents the unary +not+ method being called on an expression. +# +# not value +# +# source://syntax_tree//lib/syntax_tree/node.rb#11077 +class SyntaxTree::Not < ::SyntaxTree::Node + # @return [Not] a new instance of Not + # + # source://syntax_tree//lib/syntax_tree/node.rb#11088 + def initialize(statement:, parentheses:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11150 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11095 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11099 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#11086 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11103 + def copy(statement: T.unsafe(nil), parentheses: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11099 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11117 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11126 + def format(q); end + + # [boolean] whether or not parentheses were used + # + # source://syntax_tree//lib/syntax_tree/node.rb#11082 + def parentheses; end + + # [boolean] whether or not parentheses were used + # + # source://syntax_tree//lib/syntax_tree/node.rb#11082 + def parentheses?; end + + # [nil | Node] the statement on which to operate + # + # source://syntax_tree//lib/syntax_tree/node.rb#11079 + def statement; end +end + +# Op represents an operator literal in the source. +# +# 1 + 2 +# +# In the example above, the Op node represents the + operator. +# +# source://syntax_tree//lib/syntax_tree/node.rb#7985 +class SyntaxTree::Op < ::SyntaxTree::Node + # @return [Op] a new instance of Op + # + # source://syntax_tree//lib/syntax_tree/node.rb#7995 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8028 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8002 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8006 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#7993 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8010 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8006 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8020 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8024 + def format(q); end + + # [Symbol] the symbol version of the value + # + # source://syntax_tree//lib/syntax_tree/node.rb#7990 + def name; end + + # [String] the operator + # + # source://syntax_tree//lib/syntax_tree/node.rb#7987 + def value; end +end + +# OpAssign represents assigning a value to a variable or constant using an +# operator like += or ||=. +# +# variable += value +# +# source://syntax_tree//lib/syntax_tree/node.rb#8038 +class SyntaxTree::OpAssign < ::SyntaxTree::Node + # @return [OpAssign] a new instance of OpAssign + # + # source://syntax_tree//lib/syntax_tree/node.rb#8052 + def initialize(target:, operator:, value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8111 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8060 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8064 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#8050 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8068 + def copy(target: T.unsafe(nil), operator: T.unsafe(nil), value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8064 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8083 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8093 + def format(q); end + + # [Op] the operator being used for the assignment + # + # source://syntax_tree//lib/syntax_tree/node.rb#8044 + def operator; end + + # [ARefField | ConstPathField | Field | TopConstField | VarField] the target + # to assign the result of the expression to + # + # source://syntax_tree//lib/syntax_tree/node.rb#8041 + def target; end + + # [Node] the expression to be assigned + # + # source://syntax_tree//lib/syntax_tree/node.rb#8047 + def value; end + + private + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#8118 + def skip_indent?; end +end + +# The list of nodes that represent patterns inside of pattern matching so that +# when a pattern is being printed it knows if it's nested. +# +# source://syntax_tree//lib/syntax_tree/node.rb#6174 +SyntaxTree::PATTERNS = T.let(T.unsafe(nil), Array) + +# Params represents defining parameters on a method or lambda. +# +# def method(param) end +# +# source://syntax_tree//lib/syntax_tree/node.rb#8196 +class SyntaxTree::Params < ::SyntaxTree::Node + # @return [Params] a new instance of Params + # + # source://syntax_tree//lib/syntax_tree/node.rb#8298 + def initialize(location:, requireds: T.unsafe(nil), optionals: T.unsafe(nil), rest: T.unsafe(nil), posts: T.unsafe(nil), keywords: T.unsafe(nil), keyword_rest: T.unsafe(nil), block: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8428 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8328 + def accept(visitor); end + + # Returns a range representing the possible number of arguments accepted + # by this params node not including the block. For example: + # + # def foo(a, b = 1, c:, d: 2, &block) + # ... + # end + # + # has arity 2..4. + # + # source://syntax_tree//lib/syntax_tree/node.rb#8451 + def arity; end + + # [nil | BlockArg] the optional block parameter + # + # source://syntax_tree//lib/syntax_tree/node.rb#8293 + def block; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8332 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#8296 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8346 + def copy(location: T.unsafe(nil), requireds: T.unsafe(nil), optionals: T.unsafe(nil), rest: T.unsafe(nil), posts: T.unsafe(nil), keywords: T.unsafe(nil), keyword_rest: T.unsafe(nil), block: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8332 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8374 + def deconstruct_keys(_keys); end + + # Params nodes are the most complicated in the tree. Occasionally you want + # to know if they are "empty", which means not having any parameters + # declared. This logic accesses every kind of parameter and determines if + # it's missing. + # + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#8323 + def empty?; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8388 + def format(q); end + + # [nil | :nil | ArgsForward | KwRestParam] the optional keyword rest + # parameter + # + # source://syntax_tree//lib/syntax_tree/node.rb#8290 + def keyword_rest; end + + # [Array[ [ Label, nil | Node ] ]] any keyword parameters and their + # optional default values + # + # source://syntax_tree//lib/syntax_tree/node.rb#8286 + def keywords; end + + # [Array[ [ Ident, Node ] ]] any optional parameters and their default + # values + # + # source://syntax_tree//lib/syntax_tree/node.rb#8274 + def optionals; end + + # [Array[ Ident | MLHSParen ]] any positional parameters that exist after a + # rest parameter + # + # source://syntax_tree//lib/syntax_tree/node.rb#8282 + def posts; end + + # [Array[ Ident | MLHSParen ]] any required parameters + # + # source://syntax_tree//lib/syntax_tree/node.rb#8270 + def requireds; end + + # [nil | ArgsForward | ExcessedComma | RestParam] the optional rest + # parameter + # + # source://syntax_tree//lib/syntax_tree/node.rb#8278 + def rest; end + + private + + # source://syntax_tree//lib/syntax_tree/node.rb#8467 + def format_contents(q, parts); end +end + +# Formats the keyword position of the parameters. This includes the label, +# as well as an optional default value. +# +# source://syntax_tree//lib/syntax_tree/node.rb#8224 +class SyntaxTree::Params::KeywordFormatter + # @return [KeywordFormatter] a new instance of KeywordFormatter + # + # source://syntax_tree//lib/syntax_tree/node.rb#8231 + def initialize(name, value); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8236 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8240 + def format(q); end + + # [Ident] the name of the parameter + # + # source://syntax_tree//lib/syntax_tree/node.rb#8226 + def name; end + + # [nil | Node] the value of the parameter + # + # source://syntax_tree//lib/syntax_tree/node.rb#8229 + def value; end +end + +# Formats the keyword_rest position of the parameters. This can be the **nil +# syntax, the ... syntax, or the ** syntax. +# +# source://syntax_tree//lib/syntax_tree/node.rb#8252 +class SyntaxTree::Params::KeywordRestFormatter + # @return [KeywordRestFormatter] a new instance of KeywordRestFormatter + # + # source://syntax_tree//lib/syntax_tree/node.rb#8256 + def initialize(value); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8260 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8264 + def format(q); end + + # [:nil | ArgsForward | KwRestParam] the value of the parameter + # + # source://syntax_tree//lib/syntax_tree/node.rb#8254 + def value; end +end + +# Formats the optional position of the parameters. This includes the label, +# as well as the default value. +# +# source://syntax_tree//lib/syntax_tree/node.rb#8199 +class SyntaxTree::Params::OptionalFormatter + # @return [OptionalFormatter] a new instance of OptionalFormatter + # + # source://syntax_tree//lib/syntax_tree/node.rb#8206 + def initialize(name, value); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8211 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8215 + def format(q); end + + # [Ident] the name of the parameter + # + # source://syntax_tree//lib/syntax_tree/node.rb#8201 + def name; end + + # [Node] the value of the parameter + # + # source://syntax_tree//lib/syntax_tree/node.rb#8204 + def value; end +end + +# Paren represents using balanced parentheses in a couple places in a Ruby +# program. In general parentheses can be used anywhere a Ruby expression can +# be used. +# +# (1 + 2) +# +# source://syntax_tree//lib/syntax_tree/node.rb#8479 +class SyntaxTree::Paren < ::SyntaxTree::Node + # @return [Paren] a new instance of Paren + # + # source://syntax_tree//lib/syntax_tree/node.rb#8489 + def initialize(lparen:, contents:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8545 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8496 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8500 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#8487 + def comments; end + + # [nil | Node] the expression inside the parentheses + # + # source://syntax_tree//lib/syntax_tree/node.rb#8484 + def contents; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8504 + def copy(lparen: T.unsafe(nil), contents: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8500 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8518 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8527 + def format(q); end + + # [LParen] the left parenthesis that opened this statement + # + # source://syntax_tree//lib/syntax_tree/node.rb#8481 + def lparen; end +end + +# If you have a modifier statement (for instance a modifier if statement or a +# modifier while loop) there are times when you need to wrap the entire +# statement in parentheses. This occurs when you have something like: +# +# foo[:foo] = +# if bar? +# baz +# end +# +# Normally we would shorten this to an inline version, which would result in: +# +# foo[:foo] = baz if bar? +# +# but this actually has different semantic meaning. The first example will +# result in a nil being inserted into the hash for the :foo key, whereas the +# second example will result in an empty hash because the if statement applies +# to the entire assignment. +# +# We can fix this in a couple of ways. We can use the then keyword, as in: +# +# foo[:foo] = if bar? then baz end +# +# But this isn't used very often. We can also just leave it as is with the +# multi-line version, but for a short predicate and short value it looks +# verbose. The last option and the one used here is to add parentheses on +# both sides of the expression, as in: +# +# foo[:foo] = (baz if bar?) +# +# This approach maintains the nice conciseness of the inline version, while +# keeping the correct semantic meaning. +# +# source://syntax_tree//lib/syntax_tree/node.rb#8155 +module SyntaxTree::Parentheses + class << self + # source://syntax_tree//lib/syntax_tree/node.rb#8175 + def break(q); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8167 + def flat(q); end + end +end + +# source://syntax_tree//lib/syntax_tree/node.rb#8156 +SyntaxTree::Parentheses::NODES = T.let(T.unsafe(nil), Array) + +# Parser is a subclass of the Ripper library that subscribes to the stream of +# tokens and nodes coming from the parser and builds up a syntax tree. +# +# source://syntax_tree//lib/syntax_tree/parser.rb#6 +class SyntaxTree::Parser < ::Ripper + # @return [Parser] a new instance of Parser + # + # source://syntax_tree//lib/syntax_tree/parser.rb#116 + def initialize(source, *_arg1); end + + # [Array[ Comment | EmbDoc ]] the list of comments that have been found + # while parsing the source. + # + # source://syntax_tree//lib/syntax_tree/parser.rb#114 + def comments; end + + # [Array[ SingleByteString | MultiByteString ]] the list of objects that + # represent the start of each line in character offsets + # + # source://syntax_tree//lib/syntax_tree/parser.rb#105 + def line_counts; end + + # [String] the source being parsed + # + # source://syntax_tree//lib/syntax_tree/parser.rb#101 + def source; end + + # [Array[ untyped ]] a running list of tokens that have been found in the + # source. This list changes a lot as certain nodes will "consume" these + # tokens to determine their bounds. + # + # source://syntax_tree//lib/syntax_tree/parser.rb#110 + def tokens; end + + private + + # Attaches comments to the nodes in the tree that most closely correspond to + # the location of the comments. + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2911 + def attach_comments(program, comments); end + + # This represents the current place in the source string that we've gotten + # to so far. We have a memoized line_counts object that we can use to get + # the number of characters that we've had to go through to get to the + # beginning of this line, then we add the number of columns into this line + # that we've gone through. + # + # source://syntax_tree//lib/syntax_tree/parser.rb#197 + def char_pos; end + + # @raise [ParseError] + # + # source://syntax_tree//lib/syntax_tree/parser.rb#295 + def consume_error(name, location); end + + # source://syntax_tree//lib/syntax_tree/parser.rb#312 + def consume_keyword(name); end + + # source://syntax_tree//lib/syntax_tree/parser.rb#318 + def consume_operator(name); end + + # source://syntax_tree//lib/syntax_tree/parser.rb#300 + def consume_token(type); end + + # source://syntax_tree//lib/syntax_tree/parser.rb#306 + def consume_tstring_end(location); end + + # This represents the current column we're in relative to the beginning of + # the current line. + # + # source://syntax_tree//lib/syntax_tree/parser.rb#203 + def current_column; end + + # A helper function to find a :: operator. We do special handling instead of + # using find_token here because we don't pop off all of the :: operators so + # you could end up getting the wrong information if you have for instance + # ::X::Y::Z. + # + # source://syntax_tree//lib/syntax_tree/parser.rb#328 + def find_colon2_before(const); end + + # source://syntax_tree//lib/syntax_tree/parser.rb#272 + def find_keyword(name); end + + # source://syntax_tree//lib/syntax_tree/parser.rb#277 + def find_keyword_between(name, left, right); end + + # Finds the next position in the source string that begins a statement. This + # is used to bind statements lists and make sure they don't include a + # preceding comment. For example, we want the following comment to be + # attached to the class node and not the statement node: + # + # ... + # end + # + # By finding the next non-space character, we can make sure that the bounds + # of the statement list are correct. + # + # source://syntax_tree//lib/syntax_tree/parser.rb#349 + def find_next_statement_start(position); end + + # source://syntax_tree//lib/syntax_tree/parser.rb#290 + def find_operator(name); end + + # As we build up a list of tokens, we'll periodically need to go backwards + # and find the ones that we've already hit in order to determine the + # location information for nodes that use them. For example, if you have a + # module node then you'll look backward for a kw token to determine your + # start location. + # + # This works with nesting since we're deleting tokens from the list once + # they've been used up. For example if you had nested module declarations + # then the innermost declaration would grab the last kw node that matches + # "module" (which would happen to be the innermost keyword). Then the outer + # one would only be able to grab the first one. In this way all of the + # tokens act as their own stack. + # + # If we're expecting to be able to find a token and consume it, but can't + # actually find it, then we need to raise an error. This is _usually_ caused + # by a syntax error in the source that we're printing. It could also be + # caused by accidentally attempting to consume a token twice by two + # different parser event handlers. + # + # source://syntax_tree//lib/syntax_tree/parser.rb#254 + def find_token(type); end + + # source://syntax_tree//lib/syntax_tree/parser.rb#259 + def find_token_between(type, left, right); end + + # Returns the current location that is being looked at for the parser for + # the purpose of locating the error. + # + # source://syntax_tree//lib/syntax_tree/parser.rb#210 + def find_token_error(location); end + + # Ripper doesn't support capturing lambda local variables until 3.2. To + # mitigate this, we have to parse that code for ourselves. We use the range + # from the parentheses to find where we _should_ be looking. Then we check + # if the resulting tokens match a pattern that we determine means that the + # declaration has block-local variables. Once it does, we parse those out + # and convert them into Ident nodes. + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2362 + def lambda_locals(source); end + + # Responsible for finding the nearest nodes to the given comment within the + # context of the given encapsulating node. + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2946 + def nearest_nodes(node, comment); end + + # :call-seq: + # on_BEGIN: (Statements statements) -> BEGINBlock + # + # source://syntax_tree//lib/syntax_tree/parser.rb#371 + def on_BEGIN(statements); end + + # :call-seq: + # on_CHAR: (String value) -> CHAR + # + # source://syntax_tree//lib/syntax_tree/parser.rb#395 + def on_CHAR(value); end + + # :call-seq: + # on_END: (Statements statements) -> ENDBlock + # + # source://syntax_tree//lib/syntax_tree/parser.rb#410 + def on_END(statements); end + + # :call-seq: + # on___end__: (String value) -> EndContent + # + # source://syntax_tree//lib/syntax_tree/parser.rb#434 + def on___end__(value); end + + # :call-seq: + # on_alias: ( + # (DynaSymbol | SymbolLiteral) left, + # (DynaSymbol | SymbolLiteral) right + # ) -> AliasNode + # + # source://syntax_tree//lib/syntax_tree/parser.rb#453 + def on_alias(left, right); end + + # If we encounter a parse error, just immediately bail out so that our + # runner can catch it. + # + # @raise [ParseError] + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2863 + def on_alias_error(error, *_arg1); end + + # :call-seq: + # on_aref: (untyped collection, (nil | Args) index) -> ARef + # + # source://syntax_tree//lib/syntax_tree/parser.rb#465 + def on_aref(collection, index); end + + # :call-seq: + # on_aref_field: ( + # untyped collection, + # (nil | Args) index + # ) -> ARefField + # + # source://syntax_tree//lib/syntax_tree/parser.rb#481 + def on_aref_field(collection, index); end + + # :call-seq: + # on_arg_paren: ( + # (nil | Args | ArgsForward) arguments + # ) -> ArgParen + # + # source://syntax_tree//lib/syntax_tree/parser.rb#500 + def on_arg_paren(arguments); end + + # :call-seq: + # on_args_add: (Args arguments, untyped argument) -> Args + # + # source://syntax_tree//lib/syntax_tree/parser.rb#522 + def on_args_add(arguments, argument); end + + # :call-seq: + # on_args_add_block: ( + # Args arguments, + # (false | untyped) block + # ) -> Args + # + # source://syntax_tree//lib/syntax_tree/parser.rb#543 + def on_args_add_block(arguments, block); end + + # :call-seq: + # on_args_add_star: (Args arguments, untyped star) -> Args + # + # source://syntax_tree//lib/syntax_tree/parser.rb#581 + def on_args_add_star(arguments, argument); end + + # :call-seq: + # on_args_forward: () -> ArgsForward + # + # source://syntax_tree//lib/syntax_tree/parser.rb#603 + def on_args_forward; end + + # :call-seq: + # on_args_new: () -> Args + # + # source://syntax_tree//lib/syntax_tree/parser.rb#611 + def on_args_new; end + + # :call-seq: + # on_array: ((nil | Args) contents) -> + # ArrayLiteral | QSymbols | QWords | Symbols | Words + # + # source://syntax_tree//lib/syntax_tree/parser.rb#622 + def on_array(contents); end + + # :call-seq: + # on_aryptn: ( + # (nil | VarRef) constant, + # (nil | Array[untyped]) requireds, + # (nil | VarField) rest, + # (nil | Array[untyped]) posts + # ) -> AryPtn + # + # source://syntax_tree//lib/syntax_tree/parser.rb#701 + def on_aryptn(constant, requireds, rest, posts); end + + # :call-seq: + # on_assign: ( + # ( + # ARefField | + # ConstPathField | + # Field | + # TopConstField | + # VarField + # ) target, + # untyped value + # ) -> Assign + # + # source://syntax_tree//lib/syntax_tree/parser.rb#756 + def on_assign(target, value); end + + # If we encounter a parse error, just immediately bail out so that our + # runner can catch it. + # + # @raise [ParseError] + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2863 + def on_assign_error(error, *_arg1); end + + # :call-seq: + # on_assoc_new: (untyped key, untyped value) -> Assoc + # + # source://syntax_tree//lib/syntax_tree/parser.rb#766 + def on_assoc_new(key, value); end + + # :call-seq: + # on_assoc_splat: (untyped value) -> AssocSplat + # + # source://syntax_tree//lib/syntax_tree/parser.rb#775 + def on_assoc_splat(value); end + + # :call-seq: + # on_backref: (String value) -> Backref + # + # source://syntax_tree//lib/syntax_tree/parser.rb#790 + def on_backref(value); end + + # :call-seq: + # on_backtick: (String value) -> Backtick + # + # source://syntax_tree//lib/syntax_tree/parser.rb#805 + def on_backtick(value); end + + # :call-seq: + # on_bare_assoc_hash: ( + # Array[AssocNew | AssocSplat] assocs + # ) -> BareAssocHash + # + # source://syntax_tree//lib/syntax_tree/parser.rb#826 + def on_bare_assoc_hash(assocs); end + + # :call-seq: + # on_begin: (untyped bodystmt) -> Begin | PinnedBegin + # + # source://syntax_tree//lib/syntax_tree/parser.rb#835 + def on_begin(bodystmt); end + + # :call-seq: + # on_binary: ( + # untyped left, + # (Op | Symbol) operator, + # untyped right + # ) -> Binary + # + # source://syntax_tree//lib/syntax_tree/parser.rb#874 + def on_binary(left, operator, right); end + + # :call-seq: + # on_block_var: (Params params, (nil | Array[Ident]) locals) -> BlockVar + # + # source://syntax_tree//lib/syntax_tree/parser.rb#906 + def on_block_var(params, locals); end + + # :call-seq: + # on_blockarg: (Ident name) -> BlockArg + # + # source://syntax_tree//lib/syntax_tree/parser.rb#946 + def on_blockarg(name); end + + # :call-seq: + # on_bodystmt: ( + # Statements statements, + # (nil | Rescue) rescue_clause, + # (nil | Statements) else_clause, + # (nil | Ensure) ensure_clause + # ) -> BodyStmt + # + # source://syntax_tree//lib/syntax_tree/parser.rb#962 + def on_bodystmt(statements, rescue_clause, else_clause, ensure_clause); end + + # :call-seq: + # on_brace_block: ( + # (nil | BlockVar) block_var, + # Statements statements + # ) -> BlockNode + # + # source://syntax_tree//lib/syntax_tree/parser.rb#988 + def on_brace_block(block_var, statements); end + + # :call-seq: + # on_break: (Args arguments) -> Break + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1025 + def on_break(arguments); end + + # :call-seq: + # on_call: ( + # untyped receiver, + # (:"::" | Op | Period) operator, + # (:call | Backtick | Const | Ident | Op) message + # ) -> CallNode + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1040 + def on_call(receiver, operator, message); end + + # :call-seq: + # on_case: (untyped value, untyped consequent) -> Case | RAssign + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1061 + def on_case(value, consequent); end + + # :call-seq: + # on_class: ( + # (ConstPathRef | ConstRef | TopConstRef) constant, + # untyped superclass, + # BodyStmt bodystmt + # ) -> ClassDeclaration + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1096 + def on_class(constant, superclass, bodystmt); end + + # If we encounter a parse error, just immediately bail out so that our + # runner can catch it. + # + # @raise [ParseError] + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2863 + def on_class_name_error(error, *_arg1); end + + # :call-seq: + # on_comma: (String value) -> Comma + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1120 + def on_comma(value); end + + # :call-seq: + # on_command: ((Const | Ident) message, Args arguments) -> Command + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1139 + def on_command(message, arguments); end + + # :call-seq: + # on_command_call: ( + # untyped receiver, + # (:"::" | Op | Period) operator, + # (Const | Ident | Op) message, + # (nil | Args) arguments + # ) -> CommandCall + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1155 + def on_command_call(receiver, operator, message, arguments); end + + # :call-seq: + # on_comment: (String value) -> Comment + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1170 + def on_comment(value); end + + # :call-seq: + # on_const: (String value) -> Const + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1208 + def on_const(value); end + + # :call-seq: + # on_const_path_field: (untyped parent, Const constant) -> + # ConstPathField | Field + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1224 + def on_const_path_field(parent, constant); end + + # :call-seq: + # on_const_path_ref: (untyped parent, Const constant) -> ConstPathRef + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1243 + def on_const_path_ref(parent, constant); end + + # :call-seq: + # on_const_ref: (Const constant) -> ConstRef + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1253 + def on_const_ref(constant); end + + # :call-seq: + # on_cvar: (String value) -> CVar + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1259 + def on_cvar(value); end + + # :call-seq: + # on_def: ( + # (Backtick | Const | Ident | Kw | Op) name, + # (nil | Params | Paren) params, + # untyped bodystmt + # ) -> DefNode + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1278 + def on_def(name, params, bodystmt); end + + # :call-seq: + # on_defined: (untyped value) -> Defined + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1346 + def on_defined(value); end + + # :call-seq: + # on_defs: ( + # untyped target, + # (Op | Period) operator, + # (Backtick | Const | Ident | Kw | Op) name, + # (Params | Paren) params, + # BodyStmt bodystmt + # ) -> DefNode + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1370 + def on_defs(target, operator, name, params, bodystmt); end + + # :call-seq: + # on_do_block: (BlockVar block_var, BodyStmt bodystmt) -> BlockNode + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1435 + def on_do_block(block_var, bodystmt); end + + # :call-seq: + # on_dot2: ((nil | untyped) left, (nil | untyped) right) -> RangeNode + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1459 + def on_dot2(left, right); end + + # :call-seq: + # on_dot3: ((nil | untyped) left, (nil | untyped) right) -> RangeNode + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1475 + def on_dot3(left, right); end + + # :call-seq: + # on_dyna_symbol: (StringContent string_content) -> DynaSymbol + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1491 + def on_dyna_symbol(string_content); end + + # :call-seq: + # on_else: (Statements statements) -> Else + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1517 + def on_else(statements); end + + # :call-seq: + # on_elsif: ( + # untyped predicate, + # Statements statements, + # (nil | Elsif | Else) consequent + # ) -> Elsif + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1558 + def on_elsif(predicate, statements, consequent); end + + # :call-seq: + # on_embdoc: (String value) -> EmbDoc + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1588 + def on_embdoc(value); end + + # :call-seq: + # on_embdoc_beg: (String value) -> EmbDoc + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1595 + def on_embdoc_beg(value); end + + # :call-seq: + # on_embdoc_end: (String value) -> EmbDoc + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1606 + def on_embdoc_end(value); end + + # :call-seq: + # on_embexpr_beg: (String value) -> EmbExprBeg + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1630 + def on_embexpr_beg(value); end + + # :call-seq: + # on_embexpr_end: (String value) -> EmbExprEnd + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1649 + def on_embexpr_end(value); end + + # :call-seq: + # on_embvar: (String value) -> EmbVar + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1668 + def on_embvar(value); end + + # :call-seq: + # on_ensure: (Statements statements) -> Ensure + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1687 + def on_ensure(statements); end + + # The handler for this event accepts no parameters (though in previous + # versions of Ruby it accepted a string literal with a value of ","). + # + # :call-seq: + # on_excessed_comma: () -> ExcessedComma + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1714 + def on_excessed_comma(*_arg0); end + + # :call-seq: + # on_fcall: ((Const | Ident) value) -> CallNode + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1722 + def on_fcall(value); end + + # :call-seq: + # on_field: ( + # untyped parent, + # (:"::" | Op | Period) operator + # (Const | Ident) name + # ) -> Field + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1738 + def on_field(parent, operator, name); end + + # :call-seq: + # on_float: (String value) -> FloatLiteral + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1749 + def on_float(value); end + + # :call-seq: + # on_fndptn: ( + # (nil | untyped) constant, + # VarField left, + # Array[untyped] values, + # VarField right + # ) -> FndPtn + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1769 + def on_fndptn(constant, left, values, right); end + + # :call-seq: + # on_for: ( + # (MLHS | VarField) value, + # untyped collection, + # Statements statements + # ) -> For + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1821 + def on_for(index, collection, statements); end + + # :call-seq: + # on_gvar: (String value) -> GVar + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1859 + def on_gvar(value); end + + # :call-seq: + # on_hash: ((nil | Array[AssocNew | AssocSplat]) assocs) -> HashLiteral + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1874 + def on_hash(assocs); end + + # :call-seq: + # on_heredoc_beg: (String value) -> HeredocBeg + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1887 + def on_heredoc_beg(value); end + + # :call-seq: + # on_heredoc_dedent: (StringContent string, Integer width) -> Heredoc + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1906 + def on_heredoc_dedent(string, width); end + + # :call-seq: + # on_heredoc_end: (String value) -> Heredoc + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1920 + def on_heredoc_end(value); end + + # :call-seq: + # on_hshptn: ( + # (nil | untyped) constant, + # Array[[Label | StringContent, untyped]] keywords, + # (nil | VarField) keyword_rest + # ) -> HshPtn + # + # source://syntax_tree//lib/syntax_tree/parser.rb#1956 + def on_hshptn(constant, keywords, keyword_rest); end + + # :call-seq: + # on_ident: (String value) -> Ident + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2026 + def on_ident(value); end + + # :call-seq: + # on_if: ( + # untyped predicate, + # Statements statements, + # (nil | Elsif | Else) consequent + # ) -> IfNode + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2045 + def on_if(predicate, statements, consequent); end + + # :call-seq: + # on_if_mod: (untyped predicate, untyped statement) -> IfNode + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2085 + def on_if_mod(predicate, statement); end + + # :call-seq: + # on_ifop: (untyped predicate, untyped truthy, untyped falsy) -> IfOp + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2074 + def on_ifop(predicate, truthy, falsy); end + + # :call-seq: + # on_imaginary: (String value) -> Imaginary + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2107 + def on_imaginary(value); end + + # :call-seq: + # on_in: (RAssign pattern, nil statements, nil consequent) -> RAssign + # | ( + # untyped pattern, + # Statements statements, + # (nil | In | Else) consequent + # ) -> In + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2127 + def on_in(pattern, statements, consequent); end + + # :call-seq: + # on_int: (String value) -> Int + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2172 + def on_int(value); end + + # :call-seq: + # on_ivar: (String value) -> IVar + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2187 + def on_ivar(value); end + + # :call-seq: + # on_kw: (String value) -> Kw + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2202 + def on_kw(value); end + + # :call-seq: + # on_kwrest_param: ((nil | Ident) name) -> KwRestParam + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2221 + def on_kwrest_param(name); end + + # :call-seq: + # on_label: (String value) -> Label + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2230 + def on_label(value); end + + # :call-seq: + # on_label_end: (String value) -> LabelEnd + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2245 + def on_label_end(value); end + + # :call-seq: + # on_lambda: ( + # (Params | Paren) params, + # (BodyStmt | Statements) statements + # ) -> Lambda + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2267 + def on_lambda(params, statements); end + + # :call-seq: + # on_lambda_var: (Params params, Array[ Ident ] locals) -> LambdaVar + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2349 + def on_lambda_var(params, locals); end + + # :call-seq: + # on_lbrace: (String value) -> LBrace + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2432 + def on_lbrace(value); end + + # :call-seq: + # on_lbracket: (String value) -> LBracket + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2451 + def on_lbracket(value); end + + # :call-seq: + # on_lparen: (String value) -> LParen + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2470 + def on_lparen(value); end + + # :call-seq: + # on_massign: ((MLHS | MLHSParen) target, untyped value) -> MAssign + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2493 + def on_massign(target, value); end + + # :call-seq: + # on_method_add_arg: ( + # CallNode call, + # (ArgParen | Args) arguments + # ) -> CallNode + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2509 + def on_method_add_arg(call, arguments); end + + # :call-seq: + # on_method_add_block: ( + # (Break | Call | Command | CommandCall, Next) call, + # Block block + # ) -> Break | MethodAddBlock + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2527 + def on_method_add_block(call, block); end + + # :call-seq: + # on_mlhs_add: ( + # MLHS mlhs, + # (ARefField | Field | Ident | MLHSParen | VarField) part + # ) -> MLHS + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2556 + def on_mlhs_add(mlhs, part); end + + # :call-seq: + # on_mlhs_add_post: (MLHS left, MLHS right) -> MLHS + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2565 + def on_mlhs_add_post(left, right); end + + # :call-seq: + # on_mlhs_add_star: ( + # MLHS mlhs, + # (nil | ARefField | Field | Ident | VarField) part + # ) -> MLHS + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2577 + def on_mlhs_add_star(mlhs, part); end + + # :call-seq: + # on_mlhs_new: () -> MLHS + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2590 + def on_mlhs_new; end + + # :call-seq: + # on_mlhs_paren: ((MLHS | MLHSParen) contents) -> MLHSParen + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2600 + def on_mlhs_paren(contents); end + + # :call-seq: + # on_module: ( + # (ConstPathRef | ConstRef | TopConstRef) constant, + # BodyStmt bodystmt + # ) -> ModuleDeclaration + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2618 + def on_module(constant, bodystmt); end + + # :call-seq: + # on_mrhs_add: (MRHS mrhs, untyped part) -> MRHS + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2650 + def on_mrhs_add(mrhs, part); end + + # :call-seq: + # on_mrhs_add_star: (MRHS mrhs, untyped value) -> MRHS + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2659 + def on_mrhs_add_star(mrhs, value); end + + # :call-seq: + # on_mrhs_new: () -> MRHS + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2640 + def on_mrhs_new; end + + # :call-seq: + # on_mrhs_new_from_args: (Args arguments) -> MRHS + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2681 + def on_mrhs_new_from_args(arguments); end + + # :call-seq: + # on_next: (Args arguments) -> Next + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2687 + def on_next(arguments); end + + # :call-seq: + # on_op: (String value) -> Op + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2706 + def on_op(value); end + + # :call-seq: + # on_opassign: ( + # ( + # ARefField | + # ConstPathField | + # Field | + # TopConstField | + # VarField + # ) target, + # Op operator, + # untyped value + # ) -> OpAssign + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2735 + def on_opassign(target, operator, value); end + + # If we encounter a parse error, just immediately bail out so that our + # runner can catch it. + # + # @raise [ParseError] + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2863 + def on_param_error(error, *_arg1); end + + # :call-seq: + # on_params: ( + # (nil | Array[Ident]) requireds, + # (nil | Array[[Ident, untyped]]) optionals, + # (nil | ArgsForward | ExcessedComma | RestParam) rest, + # (nil | Array[Ident]) posts, + # (nil | Array[[Ident, nil | untyped]]) keywords, + # (nil | :nil | ArgsForward | KwRestParam) keyword_rest, + # (nil | :& | BlockArg) block + # ) -> Params + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2758 + def on_params(requireds, optionals, rest, posts, keywords, keyword_rest, block); end + + # :call-seq: + # on_paren: (untyped contents) -> Paren + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2823 + def on_paren(contents); end + + # If we encounter a parse error, just immediately bail out so that our + # runner can catch it. + # + # @raise [ParseError] + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2863 + def on_parse_error(error, *_arg1); end + + # :call-seq: + # on_period: (String value) -> Period + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2873 + def on_period(value); end + + # :call-seq: + # on_program: (Statements statements) -> Program + # + # source://syntax_tree//lib/syntax_tree/parser.rb#2888 + def on_program(statements); end + + # :call-seq: + # on_qsymbols_add: (QSymbols qsymbols, TStringContent element) -> QSymbols + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3000 + def on_qsymbols_add(qsymbols, element); end + + # :call-seq: + # on_qsymbols_beg: (String value) -> QSymbolsBeg + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3010 + def on_qsymbols_beg(value); end + + # :call-seq: + # on_qsymbols_new: () -> QSymbols + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3029 + def on_qsymbols_new; end + + # :call-seq: + # on_qwords_add: (QWords qwords, TStringContent element) -> QWords + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3041 + def on_qwords_add(qwords, element); end + + # :call-seq: + # on_qwords_beg: (String value) -> QWordsBeg + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3051 + def on_qwords_beg(value); end + + # :call-seq: + # on_qwords_new: () -> QWords + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3070 + def on_qwords_new; end + + # :call-seq: + # on_rational: (String value) -> RationalLiteral + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3082 + def on_rational(value); end + + # :call-seq: + # on_rbrace: (String value) -> RBrace + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3097 + def on_rbrace(value); end + + # :call-seq: + # on_rbracket: (String value) -> RBracket + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3116 + def on_rbracket(value); end + + # :call-seq: + # on_redo: () -> Redo + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3135 + def on_redo; end + + # :call-seq: + # on_regexp_add: ( + # RegexpContent regexp_content, + # (StringDVar | StringEmbExpr | TStringContent) part + # ) -> RegexpContent + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3146 + def on_regexp_add(regexp_content, part); end + + # :call-seq: + # on_regexp_beg: (String value) -> RegexpBeg + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3156 + def on_regexp_beg(value); end + + # :call-seq: + # on_regexp_end: (String value) -> RegexpEnd + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3175 + def on_regexp_end(value); end + + # :call-seq: + # on_regexp_literal: ( + # RegexpContent regexp_content, + # (nil | RegexpEnd) ending + # ) -> RegexpLiteral + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3193 + def on_regexp_literal(regexp_content, ending); end + + # :call-seq: + # on_regexp_new: () -> RegexpContent + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3211 + def on_regexp_new; end + + # :call-seq: + # on_rescue: ( + # (nil | [untyped] | MRHS | MRHSAddStar) exceptions, + # (nil | Field | VarField) variable, + # Statements statements, + # (nil | Rescue) consequent + # ) -> Rescue + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3228 + def on_rescue(exceptions, variable, statements, consequent); end + + # :call-seq: + # on_rescue_mod: (untyped statement, untyped value) -> RescueMod + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3281 + def on_rescue_mod(statement, value); end + + # :call-seq: + # on_rest_param: ((nil | Ident) name) -> RestParam + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3293 + def on_rest_param(name); end + + # :call-seq: + # on_retry: () -> Retry + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3302 + def on_retry; end + + # :call-seq: + # on_return: (Args arguments) -> ReturnNode + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3310 + def on_return(arguments); end + + # :call-seq: + # on_return0: () -> ReturnNode + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3321 + def on_return0; end + + # :call-seq: + # on_rparen: (String value) -> RParen + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3329 + def on_rparen(value); end + + # :call-seq: + # on_sclass: (untyped target, BodyStmt bodystmt) -> SClass + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3348 + def on_sclass(target, bodystmt); end + + # :call-seq: + # on_semicolon: (String value) -> Semicolon + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3381 + def on_semicolon(value); end + + # stmts_add is a parser event that represents a single statement inside a + # list of statements within any lexical block. It accepts as arguments the + # parent stmts node as well as an stmt which can be any expression in + # Ruby. + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3400 + def on_stmts_add(statements, statement); end + + # :call-seq: + # on_stmts_new: () -> Statements + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3413 + def on_stmts_new; end + + # :call-seq: + # on_string_add: ( + # String string, + # (StringEmbExpr | StringDVar | TStringContent) part + # ) -> StringContent + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3426 + def on_string_add(string, part); end + + # :call-seq: + # on_string_concat: ( + # (StringConcat | StringLiteral) left, + # StringLiteral right + # ) -> StringConcat + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3443 + def on_string_concat(left, right); end + + # :call-seq: + # on_string_content: () -> StringContent + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3453 + def on_string_content; end + + # :call-seq: + # on_string_dvar: ((Backref | VarRef) variable) -> StringDVar + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3463 + def on_string_dvar(variable); end + + # :call-seq: + # on_string_embexpr: (Statements statements) -> StringEmbExpr + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3474 + def on_string_embexpr(statements); end + + # :call-seq: + # on_string_literal: (String string) -> Heredoc | StringLiteral + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3504 + def on_string_literal(string); end + + # :call-seq: + # on_super: ((ArgParen | Args) arguments) -> Super + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3544 + def on_super(arguments); end + + # symbeg is a token that represents the beginning of a symbol literal. In + # most cases it will contain just ":" as in the value, but if its a dynamic + # symbol being defined it will contain ":'" or ":\"". + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3556 + def on_symbeg(value); end + + # :call-seq: + # on_symbol: ( + # (Backtick | Const | CVar | GVar | Ident | IVar | Kw | Op) value + # ) -> SymbolContent + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3577 + def on_symbol(value); end + + # :call-seq: + # on_symbol_literal: ( + # ( + # Backtick | Const | CVar | GVar | Ident | + # IVar | Kw | Op | SymbolContent + # ) value + # ) -> SymbolLiteral + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3590 + def on_symbol_literal(value); end + + # :call-seq: + # on_symbols_add: (Symbols symbols, Word word) -> Symbols + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3606 + def on_symbols_add(symbols, word); end + + # :call-seq: + # on_symbols_beg: (String value) -> SymbolsBeg + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3616 + def on_symbols_beg(value); end + + # :call-seq: + # on_symbols_new: () -> Symbols + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3635 + def on_symbols_new; end + + # :call-seq: + # on_tlambda: (String value) -> TLambda + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3647 + def on_tlambda(value); end + + # :call-seq: + # on_tlambeg: (String value) -> TLamBeg + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3666 + def on_tlambeg(value); end + + # :call-seq: + # on_top_const_field: (Const constant) -> TopConstRef + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3685 + def on_top_const_field(constant); end + + # :call-seq: + # on_top_const_ref: (Const constant) -> TopConstRef + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3696 + def on_top_const_ref(constant); end + + # :call-seq: + # on_tstring_beg: (String value) -> TStringBeg + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3707 + def on_tstring_beg(value); end + + # :call-seq: + # on_tstring_content: (String value) -> TStringContent + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3726 + def on_tstring_content(value); end + + # :call-seq: + # on_tstring_end: (String value) -> TStringEnd + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3741 + def on_tstring_end(value); end + + # :call-seq: + # on_unary: (:not operator, untyped statement) -> Not + # | (Symbol operator, untyped statement) -> Unary + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3761 + def on_unary(operator, statement); end + + # :call-seq: + # on_undef: (Array[DynaSymbol | SymbolLiteral] symbols) -> Undef + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3804 + def on_undef(symbols); end + + # :call-seq: + # on_unless: ( + # untyped predicate, + # Statements statements, + # ((nil | Elsif | Else) consequent) + # ) -> UnlessNode + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3819 + def on_unless(predicate, statements, consequent); end + + # :call-seq: + # on_unless_mod: (untyped predicate, untyped statement) -> UnlessNode + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3848 + def on_unless_mod(predicate, statement); end + + # :call-seq: + # on_until: (untyped predicate, Statements statements) -> UntilNode + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3862 + def on_until(predicate, statements); end + + # :call-seq: + # on_until_mod: (untyped predicate, untyped statement) -> UntilNode + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3893 + def on_until_mod(predicate, statement); end + + # :call-seq: + # on_var_alias: (GVar left, (Backref | GVar) right) -> AliasNode + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3906 + def on_var_alias(left, right); end + + # :call-seq: + # on_var_field: ( + # (nil | Const | CVar | GVar | Ident | IVar) value + # ) -> VarField + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3920 + def on_var_field(value); end + + # :call-seq: + # on_var_ref: ((Const | CVar | GVar | Ident | IVar | Kw) value) -> VarRef + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3935 + def on_var_ref(value); end + + # :call-seq: + # on_vcall: (Ident ident) -> VCall + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3941 + def on_vcall(ident); end + + # :call-seq: + # on_void_stmt: () -> VoidStmt + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3947 + def on_void_stmt; end + + # :call-seq: + # on_when: ( + # Args arguments, + # Statements statements, + # (nil | Else | When) consequent + # ) -> When + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3960 + def on_when(arguments, statements, consequent); end + + # :call-seq: + # on_while: (untyped predicate, Statements statements) -> WhileNode + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3992 + def on_while(predicate, statements); end + + # :call-seq: + # on_while_mod: (untyped predicate, untyped statement) -> WhileNode + # + # source://syntax_tree//lib/syntax_tree/parser.rb#4023 + def on_while_mod(predicate, statement); end + + # :call-seq: + # on_word_add: ( + # Word word, + # (StringEmbExpr | StringDVar | TStringContent) part + # ) -> Word + # + # source://syntax_tree//lib/syntax_tree/parser.rb#4039 + def on_word_add(word, part); end + + # :call-seq: + # on_word_new: () -> Word + # + # source://syntax_tree//lib/syntax_tree/parser.rb#4048 + def on_word_new; end + + # :call-seq: + # on_words_add: (Words words, Word word) -> Words + # + # source://syntax_tree//lib/syntax_tree/parser.rb#4058 + def on_words_add(words, word); end + + # :call-seq: + # on_words_beg: (String value) -> WordsBeg + # + # source://syntax_tree//lib/syntax_tree/parser.rb#4068 + def on_words_beg(value); end + + # :call-seq: + # on_words_new: () -> Words + # + # source://syntax_tree//lib/syntax_tree/parser.rb#4087 + def on_words_new; end + + # :call-seq: + # on_xstring_add: ( + # XString xstring, + # (StringEmbExpr | StringDVar | TStringContent) part + # ) -> XString + # + # source://syntax_tree//lib/syntax_tree/parser.rb#4106 + def on_xstring_add(xstring, part); end + + # :call-seq: + # on_xstring_literal: (XString xstring) -> Heredoc | XStringLiteral + # + # source://syntax_tree//lib/syntax_tree/parser.rb#4130 + def on_xstring_literal(xstring); end + + # :call-seq: + # on_xstring_new: () -> XString + # + # source://syntax_tree//lib/syntax_tree/parser.rb#4115 + def on_xstring_new; end + + # :call-seq: + # on_yield: ((Args | Paren) arguments) -> YieldNode + # + # source://syntax_tree//lib/syntax_tree/parser.rb#4153 + def on_yield(arguments); end + + # :call-seq: + # on_yield0: () -> YieldNode + # + # source://syntax_tree//lib/syntax_tree/parser.rb#4164 + def on_yield0; end + + # :call-seq: + # on_zsuper: () -> ZSuper + # + # source://syntax_tree//lib/syntax_tree/parser.rb#4172 + def on_zsuper; end +end + +# Represents a line in the source. If this class is being used, it means +# that there are characters in the string that are multi-byte, so we will +# build up an array of indices, such that array[byteindex] will be equal to +# the index of the character within the string. +# +# source://syntax_tree//lib/syntax_tree/parser.rb#38 +class SyntaxTree::Parser::MultiByteString + # @return [MultiByteString] a new instance of MultiByteString + # + # source://syntax_tree//lib/syntax_tree/parser.rb#41 + def initialize(start, line); end + + # Technically it's possible for the column index to be a negative value if + # there's a BOM at the beginning of the file, which is the reason we need + # to compare it to 0 here. + # + # source://syntax_tree//lib/syntax_tree/parser.rb#55 + def [](byteindex); end + + # Returns the value of attribute indices. + # + # source://syntax_tree//lib/syntax_tree/parser.rb#39 + def indices; end + + # Returns the value of attribute start. + # + # source://syntax_tree//lib/syntax_tree/parser.rb#39 + def start; end +end + +# A special parser error so that we can get nice syntax displays on the +# error message when prettier prints out the results. +# +# source://syntax_tree//lib/syntax_tree/parser.rb#9 +class SyntaxTree::Parser::ParseError < ::StandardError + # @return [ParseError] a new instance of ParseError + # + # source://syntax_tree//lib/syntax_tree/parser.rb#12 + def initialize(error, lineno, column); end + + # Returns the value of attribute column. + # + # source://syntax_tree//lib/syntax_tree/parser.rb#10 + def column; end + + # Returns the value of attribute lineno. + # + # source://syntax_tree//lib/syntax_tree/parser.rb#10 + def lineno; end +end + +# Ugh... I really do not like this class. Basically, ripper doesn't provide +# enough information about where pins are located in the tree. It only gives +# events for ^ ops and var_ref nodes. You have to piece it together +# yourself. +# +# Note that there are edge cases here that we straight up do not address, +# because I honestly think it's going to be faster to write a new parser +# than to address them. For example, this will not work properly: +# +# foo in ^((bar = 0; bar; baz)) +# +# If someone actually does something like that, we'll have to find another +# way to make this work. +# +# source://syntax_tree//lib/syntax_tree/parser.rb#656 +class SyntaxTree::Parser::PinVisitor < ::SyntaxTree::Visitor + # @return [PinVisitor] a new instance of PinVisitor + # + # source://syntax_tree//lib/syntax_tree/parser.rb#659 + def initialize(pins); end + + # Returns the value of attribute pins. + # + # source://syntax_tree//lib/syntax_tree/parser.rb#657 + def pins; end + + # Returns the value of attribute stack. + # + # source://syntax_tree//lib/syntax_tree/parser.rb#657 + def stack; end + + # source://syntax_tree//lib/syntax_tree/parser.rb#664 + def visit(node); end + + # source://syntax_tree//lib/syntax_tree/parser.rb#672 + def visit_var_ref(node); end + + class << self + # source://syntax_tree//lib/syntax_tree/parser.rb#677 + def visit(node, tokens); end + end +end + +# Semicolons are tokens that get added to the token list but never get +# attached to the AST. Because of this they only need to track their +# associated location so they can be used for computing bounds. +# +# source://syntax_tree//lib/syntax_tree/parser.rb#3371 +class SyntaxTree::Parser::Semicolon + # @return [Semicolon] a new instance of Semicolon + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3374 + def initialize(location); end + + # Returns the value of attribute location. + # + # source://syntax_tree//lib/syntax_tree/parser.rb#3372 + def location; end +end + +# Represents a line in the source. If this class is being used, it means +# that every character in the string is 1 byte in length, so we can just +# return the start of the line + the index. +# +# source://syntax_tree//lib/syntax_tree/parser.rb#22 +class SyntaxTree::Parser::SingleByteString + # @return [SingleByteString] a new instance of SingleByteString + # + # source://syntax_tree//lib/syntax_tree/parser.rb#25 + def initialize(start); end + + # source://syntax_tree//lib/syntax_tree/parser.rb#29 + def [](byteindex); end + + # Returns the value of attribute start. + # + # source://syntax_tree//lib/syntax_tree/parser.rb#23 + def start; end +end + +# This represents all of the tokens coming back from the lexer. It is +# replacing a simple array because it keeps track of the last deleted token +# from the list for better error messages. +# +# source://syntax_tree//lib/syntax_tree/parser.rb#63 +class SyntaxTree::Parser::TokenList + # @return [TokenList] a new instance of TokenList + # + # source://syntax_tree//lib/syntax_tree/parser.rb#66 + def initialize; end + + # source://syntax_tree//lib/syntax_tree/parser.rb#71 + def <<(token); end + + # source://syntax_tree//lib/syntax_tree/parser.rb#75 + def [](index); end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/parser.rb#79 + def any?(&block); end + + # source://syntax_tree//lib/syntax_tree/parser.rb#91 + def delete(value); end + + # source://syntax_tree//lib/syntax_tree/parser.rb#95 + def delete_at(index); end + + # Returns the value of attribute last_deleted. + # + # source://syntax_tree//lib/syntax_tree/parser.rb#64 + def last_deleted; end + + # source://syntax_tree//lib/syntax_tree/parser.rb#83 + def reverse_each(&block); end + + # source://syntax_tree//lib/syntax_tree/parser.rb#87 + def rindex(&block); end + + # Returns the value of attribute tokens. + # + # source://syntax_tree//lib/syntax_tree/parser.rb#64 + def tokens; 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 Const[value: "SyntaxTree"] +# end +# +# the pattern is the `Const[value: "SyntaxTree"]` expression. Within Syntax +# Tree, every node generates these kinds of expressions using the +# #construct_keys method. +# +# The pattern gets compiled into an object that responds to call by running +# the #compile method. This method itself will run back through Syntax Tree 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 = SyntaxTree::Pattern.new("Const[value: 'SyntaxTree']").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 SyntaxTree::Pattern::CompilationError will be +# raised. +# +# source://syntax_tree//lib/syntax_tree/pattern.rb#39 +class SyntaxTree::Pattern + # @return [Pattern] a new instance of Pattern + # + # source://syntax_tree//lib/syntax_tree/pattern.rb#61 + def initialize(query); end + + # source://syntax_tree//lib/syntax_tree/pattern.rb#65 + def compile; end + + # Returns the value of attribute query. + # + # source://syntax_tree//lib/syntax_tree/pattern.rb#59 + def query; end + + private + + # Shortcut for combining two procs into one that returns true if both return + # true. + # + # source://syntax_tree//lib/syntax_tree/pattern.rb#80 + def combine_and(left, right); end + + # Shortcut for combining two procs into one that returns true if either + # returns true. + # + # source://syntax_tree//lib/syntax_tree/pattern.rb#86 + def combine_or(left, right); end + + # in [foo, bar, baz] + # + # source://syntax_tree//lib/syntax_tree/pattern.rb#109 + def compile_aryptn(node); end + + # in foo | bar + # + # source://syntax_tree//lib/syntax_tree/pattern.rb#134 + def compile_binary(node); end + + # in Ident + # in String + # + # source://syntax_tree//lib/syntax_tree/pattern.rb#142 + def compile_const(node); end + + # in SyntaxTree::Ident + # + # source://syntax_tree//lib/syntax_tree/pattern.rb#159 + def compile_const_path_ref(node); end + + # in :"" + # in :"foo" + # + # source://syntax_tree//lib/syntax_tree/pattern.rb#172 + def compile_dyna_symbol(node); end + + # Raise an error because the given node is not supported. + # + # @raise [CompilationError] + # + # source://syntax_tree//lib/syntax_tree/pattern.rb#91 + def compile_error(node); end + + # in Ident[value: String] + # in { value: String } + # + # source://syntax_tree//lib/syntax_tree/pattern.rb#188 + def compile_hshptn(node); end + + # Compile any kind of node. Dispatch out to the individual compilation + # methods based on the type of node. + # + # source://syntax_tree//lib/syntax_tree/pattern.rb#260 + def compile_node(node); end + + # in /foo/ + # + # source://syntax_tree//lib/syntax_tree/pattern.rb#214 + def compile_regexp_literal(node); end + + # in "" + # in "foo" + # + # source://syntax_tree//lib/syntax_tree/pattern.rb#226 + def compile_string_literal(node); end + + # in :+ + # in :foo + # + # source://syntax_tree//lib/syntax_tree/pattern.rb#238 + def compile_symbol_literal(node); end + + # in Foo + # in nil + # + # source://syntax_tree//lib/syntax_tree/pattern.rb#246 + def compile_var_ref(node); end + + # There are a couple of nodes (string literals, dynamic symbols, and regexp) + # that contain list of parts. This can include plain string content, + # interpolated expressions, and interpolated variables. We only support + # plain string content, so this method will extract out the plain string + # content if it is the only element in the list. + # + # source://syntax_tree//lib/syntax_tree/pattern.rb#100 + def extract_string(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://syntax_tree//lib/syntax_tree/pattern.rb#42 +class SyntaxTree::Pattern::CompilationError < ::StandardError + # @return [CompilationError] a new instance of CompilationError + # + # source://syntax_tree//lib/syntax_tree/pattern.rb#43 + def initialize(repr); end +end + +# Period represents the use of the +.+ operator. It is usually found in method +# calls. +# +# source://syntax_tree//lib/syntax_tree/node.rb#8553 +class SyntaxTree::Period < ::SyntaxTree::Node + # @return [Period] a new instance of Period + # + # source://syntax_tree//lib/syntax_tree/node.rb#8560 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8595 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8566 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8570 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#8558 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8574 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8570 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8587 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8591 + def format(q); end + + # [String] the period + # + # source://syntax_tree//lib/syntax_tree/node.rb#8555 + def value; end +end + +# PinnedBegin represents a pinning a nested statement within pattern matching. +# +# case value +# in ^(statement) +# end +# +# source://syntax_tree//lib/syntax_tree/node.rb#1962 +class SyntaxTree::PinnedBegin < ::SyntaxTree::Node + # @return [PinnedBegin] a new instance of PinnedBegin + # + # source://syntax_tree//lib/syntax_tree/node.rb#1969 + def initialize(statement:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2014 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1975 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1979 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#1967 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1983 + def copy(statement: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#1979 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#1996 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#2000 + def format(q); end + + # [Node] the expression being pinned + # + # source://syntax_tree//lib/syntax_tree/node.rb#1964 + def statement; end +end + +# PinnedVarRef represents a pinned variable reference within a pattern +# matching pattern. +# +# case value +# in ^variable +# end +# +# This can be a plain local variable like the example above. It can also be a +# a class variable, a global variable, or an instance variable. +# +# source://syntax_tree//lib/syntax_tree/node.rb#11661 +class SyntaxTree::PinnedVarRef < ::SyntaxTree::Node + # @return [PinnedVarRef] a new instance of PinnedVarRef + # + # source://syntax_tree//lib/syntax_tree/node.rb#11668 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11706 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11674 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11678 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#11666 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11682 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11678 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11695 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11699 + def format(q); end + + # [Const | CVar | GVar | Ident | IVar] the value of this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#11663 + def value; end +end + +# This visitor pretty-prints the AST into an equivalent s-expression. +# +# source://syntax_tree//lib/syntax_tree/pretty_print_visitor.rb#5 +class SyntaxTree::PrettyPrintVisitor < ::SyntaxTree::FieldVisitor + # @return [PrettyPrintVisitor] a new instance of PrettyPrintVisitor + # + # source://syntax_tree//lib/syntax_tree/pretty_print_visitor.rb#8 + def initialize(q); end + + # Returns the value of attribute q. + # + # source://syntax_tree//lib/syntax_tree/pretty_print_visitor.rb#6 + def q; end + + # This is here because we need to make sure the operator is cast to a string + # before we print it out. + # + # source://syntax_tree//lib/syntax_tree/pretty_print_visitor.rb#14 + def visit_binary(node); end + + # This is here to make it a little nicer to look at labels since they + # typically have their : at the end of the value. + # + # source://syntax_tree//lib/syntax_tree/pretty_print_visitor.rb#25 + def visit_label(node); end + + private + + # source://syntax_tree//lib/syntax_tree/pretty_print_visitor.rb#36 + def comments(node); end + + # source://syntax_tree//lib/syntax_tree/pretty_print_visitor.rb#45 + def field(_name, value); end + + # source://syntax_tree//lib/syntax_tree/pretty_print_visitor.rb#50 + def list(_name, values); end + + # source://syntax_tree//lib/syntax_tree/pretty_print_visitor.rb#55 + def node(_node, type); end + + # source://syntax_tree//lib/syntax_tree/pretty_print_visitor.rb#62 + def pairs(_name, values); end + + # source://syntax_tree//lib/syntax_tree/pretty_print_visitor.rb#78 + def text(_name, value); end +end + +# Program represents the overall syntax tree. +# +# source://syntax_tree//lib/syntax_tree/node.rb#8601 +class SyntaxTree::Program < ::SyntaxTree::Node + # @return [Program] a new instance of Program + # + # source://syntax_tree//lib/syntax_tree/node.rb#8608 + def initialize(statements:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8648 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8614 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8618 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#8606 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8622 + def copy(statements: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8618 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8635 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8639 + def format(q); end + + # [Statements] the top-level expressions of the program + # + # source://syntax_tree//lib/syntax_tree/node.rb#8603 + def statements; end +end + +# QSymbols represents a symbol literal array without interpolation. +# +# %i[one two three] +# +# source://syntax_tree//lib/syntax_tree/node.rb#8657 +class SyntaxTree::QSymbols < ::SyntaxTree::Node + # @return [QSymbols] a new instance of QSymbols + # + # source://syntax_tree//lib/syntax_tree/node.rb#8667 + def initialize(beginning:, elements:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8727 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8674 + def accept(visitor); end + + # [QSymbolsBeg] the token that opens this array literal + # + # source://syntax_tree//lib/syntax_tree/node.rb#8659 + def beginning; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8678 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#8665 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8682 + def copy(beginning: T.unsafe(nil), elements: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8678 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8696 + def deconstruct_keys(_keys); end + + # [Array[ TStringContent ]] the elements of the array + # + # source://syntax_tree//lib/syntax_tree/node.rb#8662 + def elements; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8705 + def format(q); end +end + +# QSymbolsBeg represents the beginning of a symbol literal array. +# +# %i[one two three] +# +# In the snippet above, QSymbolsBeg represents the "%i[" token. Note that +# these kinds of arrays can start with a lot of different delimiter types +# (e.g., %i| or %i<). +# +# source://syntax_tree//lib/syntax_tree/node.rb#8740 +class SyntaxTree::QSymbolsBeg < ::SyntaxTree::Node + # @return [QSymbolsBeg] a new instance of QSymbolsBeg + # + # source://syntax_tree//lib/syntax_tree/node.rb#8744 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8770 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8749 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8753 + def child_nodes; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8757 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8753 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8766 + def deconstruct_keys(_keys); end + + # [String] the beginning of the array literal + # + # source://syntax_tree//lib/syntax_tree/node.rb#8742 + def value; end +end + +# QWords represents a string literal array without interpolation. +# +# %w[one two three] +# +# source://syntax_tree//lib/syntax_tree/node.rb#8779 +class SyntaxTree::QWords < ::SyntaxTree::Node + # @return [QWords] a new instance of QWords + # + # source://syntax_tree//lib/syntax_tree/node.rb#8789 + def initialize(beginning:, elements:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8845 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8796 + def accept(visitor); end + + # [QWordsBeg] the token that opens this array literal + # + # source://syntax_tree//lib/syntax_tree/node.rb#8781 + def beginning; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8800 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#8787 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8804 + def copy(beginning: T.unsafe(nil), elements: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8800 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8814 + def deconstruct_keys(_keys); end + + # [Array[ TStringContent ]] the elements of the array + # + # source://syntax_tree//lib/syntax_tree/node.rb#8784 + def elements; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8823 + def format(q); end +end + +# QWordsBeg represents the beginning of a string literal array. +# +# %w[one two three] +# +# In the snippet above, QWordsBeg represents the "%w[" token. Note that these +# kinds of arrays can start with a lot of different delimiter types (e.g., +# %w| or %w<). +# +# source://syntax_tree//lib/syntax_tree/node.rb#8858 +class SyntaxTree::QWordsBeg < ::SyntaxTree::Node + # @return [QWordsBeg] a new instance of QWordsBeg + # + # source://syntax_tree//lib/syntax_tree/node.rb#8862 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8888 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8867 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8871 + def child_nodes; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8875 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8871 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8884 + def deconstruct_keys(_keys); end + + # [String] the beginning of the array literal + # + # source://syntax_tree//lib/syntax_tree/node.rb#8860 + def value; end +end + +# Responsible for providing information about quotes to be used for strings +# and dynamic symbols. +# +# source://syntax_tree//lib/syntax_tree/node.rb#4615 +module SyntaxTree::Quotes + class << self + # If there is some part of this string that matches an escape sequence or + # that contains the interpolation pattern ("#{"), then we are locked into + # whichever quote the user chose. (If they chose single quotes, then double + # quoting would activate the escape sequence, and if they chose double + # quotes, then single quotes would deactivate it.) + # + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#4624 + def locked?(node, quote); end + + # Find the matching closing quote for the given opening quote. + # + # source://syntax_tree//lib/syntax_tree/node.rb#4631 + def matching(quote); end + + # Escape and unescape single and double quotes as needed to be able to + # enclose +content+ with +enclosing+. + # + # source://syntax_tree//lib/syntax_tree/node.rb#4637 + def normalize(content, enclosing); end + end +end + +# The matching pairs of quotes that can be used with % literals. +# +# source://syntax_tree//lib/syntax_tree/node.rb#4617 +SyntaxTree::Quotes::PAIRS = T.let(T.unsafe(nil), Hash) + +# RAssign represents a single-line pattern match. +# +# value in pattern +# value => pattern +# +# source://syntax_tree//lib/syntax_tree/node.rb#3201 +class SyntaxTree::RAssign < ::SyntaxTree::Node + # @return [RAssign] a new instance of RAssign + # + # source://syntax_tree//lib/syntax_tree/node.rb#3215 + def initialize(value:, operator:, pattern:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3277 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3223 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3227 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#3213 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3231 + def copy(value: T.unsafe(nil), operator: T.unsafe(nil), pattern: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3227 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#3246 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#3256 + def format(q); end + + # [Kw | Op] the operator being used to match against the pattern, which is + # either => or in + # + # source://syntax_tree//lib/syntax_tree/node.rb#3207 + def operator; end + + # [Node] the pattern on the right-hand side of the expression + # + # source://syntax_tree//lib/syntax_tree/node.rb#3210 + def pattern; end + + # [Node] the left-hand expression + # + # source://syntax_tree//lib/syntax_tree/node.rb#3203 + def value; end +end + +# RBrace represents the use of a right brace, i.e., +++. +# +# source://syntax_tree//lib/syntax_tree/node.rb#8945 +class SyntaxTree::RBrace < ::SyntaxTree::Node + # @return [RBrace] a new instance of RBrace + # + # source://syntax_tree//lib/syntax_tree/node.rb#8949 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8975 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8954 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8958 + def child_nodes; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8962 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8958 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8971 + def deconstruct_keys(_keys); end + + # [String] the right brace + # + # source://syntax_tree//lib/syntax_tree/node.rb#8947 + def value; end +end + +# RBracket represents the use of a right bracket, i.e., +]+. +# +# source://syntax_tree//lib/syntax_tree/node.rb#8981 +class SyntaxTree::RBracket < ::SyntaxTree::Node + # @return [RBracket] a new instance of RBracket + # + # source://syntax_tree//lib/syntax_tree/node.rb#8985 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9011 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8990 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8994 + def child_nodes; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8998 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8994 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9007 + def deconstruct_keys(_keys); end + + # [String] the right bracket + # + # source://syntax_tree//lib/syntax_tree/node.rb#8983 + def value; end +end + +# RParen represents the use of a right parenthesis, i.e., +)+. +# +# source://syntax_tree//lib/syntax_tree/node.rb#9751 +class SyntaxTree::RParen < ::SyntaxTree::Node + # @return [RParen] a new instance of RParen + # + # source://syntax_tree//lib/syntax_tree/node.rb#9755 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9781 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9760 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9764 + def child_nodes; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9768 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9764 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9777 + def deconstruct_keys(_keys); end + + # [String] the parenthesis + # + # source://syntax_tree//lib/syntax_tree/node.rb#9753 + def value; end +end + +# RangeNode represents using the .. or the ... operator between two +# expressions. Usually this is to create a range object. +# +# 1..2 +# +# Sometimes this operator is used to create a flip-flop. +# +# if value == 5 .. value == 10 +# end +# +# One of the sides of the expression may be nil, but not both. +# +# source://syntax_tree//lib/syntax_tree/node.rb#4540 +class SyntaxTree::RangeNode < ::SyntaxTree::Node + # @return [RangeNode] a new instance of RangeNode + # + # source://syntax_tree//lib/syntax_tree/node.rb#4553 + def initialize(left:, operator:, right:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4607 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4561 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4565 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#4551 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#4569 + def copy(left: T.unsafe(nil), operator: T.unsafe(nil), right: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4565 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#4584 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#4594 + def format(q); end + + # [nil | Node] the left side of the expression + # + # source://syntax_tree//lib/syntax_tree/node.rb#4542 + def left; end + + # [Op] the operator used for this range + # + # source://syntax_tree//lib/syntax_tree/node.rb#4545 + def operator; end + + # [nil | Node] the right side of the expression + # + # source://syntax_tree//lib/syntax_tree/node.rb#4548 + def right; end +end + +# RationalLiteral represents the use of a rational number literal. +# +# 1r +# +# source://syntax_tree//lib/syntax_tree/node.rb#8897 +class SyntaxTree::RationalLiteral < ::SyntaxTree::Node + # @return [RationalLiteral] a new instance of RationalLiteral + # + # source://syntax_tree//lib/syntax_tree/node.rb#8904 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8939 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8910 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8914 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#8902 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8918 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8914 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#8931 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#8935 + def format(q); end + + # [String] the rational number literal + # + # source://syntax_tree//lib/syntax_tree/node.rb#8899 + def value; end +end + +# Redo represents the use of the +redo+ keyword. +# +# redo +# +# source://syntax_tree//lib/syntax_tree/node.rb#9020 +class SyntaxTree::Redo < ::SyntaxTree::Node + # @return [Redo] a new instance of Redo + # + # source://syntax_tree//lib/syntax_tree/node.rb#9024 + def initialize(location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9054 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9029 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9033 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#9022 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9037 + def copy(location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9033 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9046 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9050 + def format(q); end +end + +# RegexpBeg represents the start of a regular expression literal. +# +# /.+/ +# +# In the example above, RegexpBeg represents the first / token. Regular +# expression literals can also be declared using the %r syntax, as in: +# +# %r{.+} +# +# source://syntax_tree//lib/syntax_tree/node.rb#9116 +class SyntaxTree::RegexpBeg < ::SyntaxTree::Node + # @return [RegexpBeg] a new instance of RegexpBeg + # + # source://syntax_tree//lib/syntax_tree/node.rb#9120 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9146 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9125 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9129 + def child_nodes; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9133 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9129 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9142 + def deconstruct_keys(_keys); end + + # [String] the beginning of the regular expression + # + # source://syntax_tree//lib/syntax_tree/node.rb#9118 + def value; end +end + +# RegexpContent represents the body of a regular expression. +# +# /.+ #{pattern} .+/ +# +# In the example above, a RegexpContent node represents everything contained +# within the forward slashes. +# +# source://syntax_tree//lib/syntax_tree/node.rb#9065 +class SyntaxTree::RegexpContent < ::SyntaxTree::Node + # @return [RegexpContent] a new instance of RegexpContent + # + # source://syntax_tree//lib/syntax_tree/node.rb#9073 + def initialize(beginning:, parts:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9101 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9079 + def accept(visitor); end + + # [String] the opening of the regular expression + # + # source://syntax_tree//lib/syntax_tree/node.rb#9067 + def beginning; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9083 + def child_nodes; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9087 + def copy(beginning: T.unsafe(nil), parts: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9083 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9097 + def deconstruct_keys(_keys); end + + # [Array[ StringDVar | StringEmbExpr | TStringContent ]] the parts of the + # regular expression + # + # source://syntax_tree//lib/syntax_tree/node.rb#9071 + def parts; end +end + +# RegexpEnd represents the end of a regular expression literal. +# +# /.+/m +# +# In the example above, the RegexpEnd event represents the /m at the end of +# the regular expression literal. You can also declare regular expression +# literals using %r, as in: +# +# %r{.+}m +# +# source://syntax_tree//lib/syntax_tree/node.rb#9161 +class SyntaxTree::RegexpEnd < ::SyntaxTree::Node + # @return [RegexpEnd] a new instance of RegexpEnd + # + # source://syntax_tree//lib/syntax_tree/node.rb#9165 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9191 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9170 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9174 + def child_nodes; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9178 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9174 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9187 + def deconstruct_keys(_keys); end + + # [String] the end of the regular expression + # + # source://syntax_tree//lib/syntax_tree/node.rb#9163 + def value; end +end + +# RegexpLiteral represents a regular expression literal. +# +# /.+/ +# +# source://syntax_tree//lib/syntax_tree/node.rb#9200 +class SyntaxTree::RegexpLiteral < ::SyntaxTree::Node + # @return [RegexpLiteral] a new instance of RegexpLiteral + # + # source://syntax_tree//lib/syntax_tree/node.rb#9214 + def initialize(beginning:, ending:, parts:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9296 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9222 + def accept(visitor); end + + # [String] the beginning of the regular expression literal + # + # source://syntax_tree//lib/syntax_tree/node.rb#9202 + def beginning; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9226 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#9212 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9230 + def copy(beginning: T.unsafe(nil), ending: T.unsafe(nil), parts: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9226 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9245 + def deconstruct_keys(_keys); end + + # [String] the ending of the regular expression literal + # + # source://syntax_tree//lib/syntax_tree/node.rb#9205 + def ending; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9256 + def format(q); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9302 + def options; end + + # [Array[ StringEmbExpr | StringDVar | TStringContent ]] the parts of the + # regular expression literal + # + # source://syntax_tree//lib/syntax_tree/node.rb#9209 + def parts; end + + private + + # If the first part of this regex is plain string content, we have a space + # or an =, and we're contained within a command or command_call node, then + # we want to use braces because otherwise we could end up with an ambiguous + # operator, e.g. foo / bar/ or foo /=bar/ + # + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#9318 + def ambiguous?(q); end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#9308 + def include?(pattern); end +end + +# Rescue represents the use of the rescue keyword inside of a BodyStmt node. +# +# begin +# rescue +# end +# +# source://syntax_tree//lib/syntax_tree/node.rb#9408 +class SyntaxTree::Rescue < ::SyntaxTree::Node + # @return [Rescue] a new instance of Rescue + # + # source://syntax_tree//lib/syntax_tree/node.rb#9424 + def initialize(keyword:, exception:, statements:, consequent:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9520 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9455 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9433 + def bind_end(end_char, end_column); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9459 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#9422 + def comments; end + + # [nil | Rescue] the optional next clause in the chain + # + # source://syntax_tree//lib/syntax_tree/node.rb#9419 + def consequent; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9463 + def copy(keyword: T.unsafe(nil), exception: T.unsafe(nil), statements: T.unsafe(nil), consequent: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9459 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9485 + def deconstruct_keys(_keys); end + + # [nil | RescueEx] the exceptions being rescued + # + # source://syntax_tree//lib/syntax_tree/node.rb#9413 + def exception; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9496 + def format(q); end + + # [Kw] the rescue keyword + # + # source://syntax_tree//lib/syntax_tree/node.rb#9410 + def keyword; end + + # [Statements] the expressions to evaluate when an error is rescued + # + # source://syntax_tree//lib/syntax_tree/node.rb#9416 + def statements; end +end + +# RescueEx represents the list of exceptions being rescued in a rescue clause. +# +# begin +# rescue Exception => exception +# end +# +# source://syntax_tree//lib/syntax_tree/node.rb#9333 +class SyntaxTree::RescueEx < ::SyntaxTree::Node + # @return [RescueEx] a new instance of RescueEx + # + # source://syntax_tree//lib/syntax_tree/node.rb#9344 + def initialize(exceptions:, variable:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9396 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9351 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9355 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#9342 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9359 + def copy(exceptions: T.unsafe(nil), variable: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9355 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9373 + def deconstruct_keys(_keys); end + + # [nil | Node] the list of exceptions being rescued + # + # source://syntax_tree//lib/syntax_tree/node.rb#9335 + def exceptions; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9382 + def format(q); end + + # [nil | Field | VarField] the expression being used to capture the raised + # exception + # + # source://syntax_tree//lib/syntax_tree/node.rb#9339 + def variable; end +end + +# RescueMod represents the use of the modifier form of a +rescue+ clause. +# +# expression rescue value +# +# source://syntax_tree//lib/syntax_tree/node.rb#9531 +class SyntaxTree::RescueMod < ::SyntaxTree::Node + # @return [RescueMod] a new instance of RescueMod + # + # source://syntax_tree//lib/syntax_tree/node.rb#9541 + def initialize(statement:, value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9597 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9548 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9552 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#9539 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9556 + def copy(statement: T.unsafe(nil), value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9552 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9570 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9579 + def format(q); end + + # [Node] the expression to execute + # + # source://syntax_tree//lib/syntax_tree/node.rb#9533 + def statement; end + + # [Node] the value to use if the executed expression raises an error + # + # source://syntax_tree//lib/syntax_tree/node.rb#9536 + def value; end +end + +# RestParam represents defining a parameter in a method definition that +# accepts all remaining positional parameters. +# +# def method(*rest) end +# +# source://syntax_tree//lib/syntax_tree/node.rb#9608 +class SyntaxTree::RestParam < ::SyntaxTree::Node + # @return [RestParam] a new instance of RestParam + # + # source://syntax_tree//lib/syntax_tree/node.rb#9615 + def initialize(name:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9651 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9621 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9625 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#9613 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9629 + def copy(name: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9625 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9642 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9646 + def format(q); end + + # [nil | Ident] the name of the parameter + # + # source://syntax_tree//lib/syntax_tree/node.rb#9610 + def name; end +end + +# Retry represents the use of the +retry+ keyword. +# +# retry +# +# source://syntax_tree//lib/syntax_tree/node.rb#9660 +class SyntaxTree::Retry < ::SyntaxTree::Node + # @return [Retry] a new instance of Retry + # + # source://syntax_tree//lib/syntax_tree/node.rb#9664 + def initialize(location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9694 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9669 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9673 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#9662 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9677 + def copy(location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9673 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9686 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9690 + def format(q); end +end + +# Return represents using the +return+ keyword with arguments. +# +# return value +# +# source://syntax_tree//lib/syntax_tree/node.rb#9703 +class SyntaxTree::ReturnNode < ::SyntaxTree::Node + # @return [ReturnNode] a new instance of ReturnNode + # + # source://syntax_tree//lib/syntax_tree/node.rb#9710 + def initialize(arguments:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9745 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9716 + def accept(visitor); end + + # [nil | Args] the arguments being passed to the keyword + # + # source://syntax_tree//lib/syntax_tree/node.rb#9705 + def arguments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9720 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#9708 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9724 + def copy(arguments: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9720 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9737 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9741 + def format(q); end +end + +# SClass represents a block of statements that should be evaluated within the +# context of the singleton class of an object. It's frequently used to define +# singleton methods. +# +# class << self +# end +# +# source://syntax_tree//lib/syntax_tree/node.rb#9793 +class SyntaxTree::SClass < ::SyntaxTree::Node + # @return [SClass] a new instance of SClass + # + # source://syntax_tree//lib/syntax_tree/node.rb#9803 + def initialize(target:, bodystmt:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9854 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9810 + def accept(visitor); end + + # [BodyStmt] the expressions to be executed + # + # source://syntax_tree//lib/syntax_tree/node.rb#9798 + def bodystmt; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9814 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#9801 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9818 + def copy(target: T.unsafe(nil), bodystmt: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9814 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9832 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9841 + def format(q); end + + # [Node] the target of the singleton class to enter + # + # source://syntax_tree//lib/syntax_tree/node.rb#9795 + def target; end +end + +# Provides an interface for searching for a pattern of nodes against a +# subtree of an AST. +# +# source://syntax_tree//lib/syntax_tree/search.rb#6 +class SyntaxTree::Search + # @return [Search] a new instance of Search + # + # source://syntax_tree//lib/syntax_tree/search.rb#9 + def initialize(pattern); end + + # Returns the value of attribute pattern. + # + # source://syntax_tree//lib/syntax_tree/search.rb#7 + def pattern; end + + # source://syntax_tree//lib/syntax_tree/search.rb#13 + def scan(root); end +end + +# Everything that has a block of code inside of it has a list of statements. +# Normally we would just track those as a node that has an array body, but we +# have some special handling in order to handle empty statement lists. They +# need to have the right location information, so all of the parent node of +# stmts nodes will report back down the location information. We then +# propagate that onto void_stmt nodes inside the stmts in order to make sure +# all comments get printed appropriately. +# +# source://syntax_tree//lib/syntax_tree/node.rb#9867 +class SyntaxTree::Statements < ::SyntaxTree::Node + # @return [Statements] a new instance of Statements + # + # source://syntax_tree//lib/syntax_tree/node.rb#9874 + def initialize(body:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10000 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9927 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9880 + def bind(parser, start_char, start_column, end_char, end_column); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9909 + def bind_end(end_char, end_column); end + + # [Array[ Node ]] the list of expressions contained within this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#9869 + def body; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9931 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#9872 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9935 + def copy(body: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#9931 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9948 + def deconstruct_keys(_keys); end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#9921 + def empty?; end + + # source://syntax_tree//lib/syntax_tree/node.rb#9952 + def format(q); end + + private + + # As efficiently as possible, gather up all of the comments that have been + # found while this statements list was being parsed and add them into the + # body. + # + # source://syntax_tree//lib/syntax_tree/node.rb#10009 + def attach_comments(parser, start_char, end_char); end +end + +# StringConcat represents concatenating two strings together using a backward +# slash. +# +# "first" \ +# "second" +# +# source://syntax_tree//lib/syntax_tree/node.rb#10124 +class SyntaxTree::StringConcat < ::SyntaxTree::Node + # @return [StringConcat] a new instance of StringConcat + # + # source://syntax_tree//lib/syntax_tree/node.rb#10135 + def initialize(left:, right:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10179 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10142 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10146 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#10133 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10150 + def copy(left: T.unsafe(nil), right: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10146 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10164 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10168 + def format(q); end + + # [Heredoc | StringConcat | StringLiteral] the left side of the + # concatenation + # + # source://syntax_tree//lib/syntax_tree/node.rb#10127 + def left; end + + # [StringLiteral] the right side of the concatenation + # + # source://syntax_tree//lib/syntax_tree/node.rb#10130 + def right; end +end + +# StringContent represents the contents of a string-like value. +# +# "string" +# +# source://syntax_tree//lib/syntax_tree/node.rb#10051 +class SyntaxTree::StringContent < ::SyntaxTree::Node + # @return [StringContent] a new instance of StringContent + # + # source://syntax_tree//lib/syntax_tree/node.rb#10059 + def initialize(parts:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10086 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10065 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10069 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#10057 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10073 + def copy(parts: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10069 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10082 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10090 + def format(q); end + + # [Array[ StringEmbExpr | StringDVar | TStringContent ]] the parts of the + # string + # + # source://syntax_tree//lib/syntax_tree/node.rb#10054 + def parts; end +end + +# StringDVar represents shorthand interpolation of a variable into a string. +# It allows you to take an instance variable, class variable, or global +# variable and omit the braces when interpolating. +# +# "#@variable" +# +# source://syntax_tree//lib/syntax_tree/node.rb#10190 +class SyntaxTree::StringDVar < ::SyntaxTree::Node + # @return [StringDVar] a new instance of StringDVar + # + # source://syntax_tree//lib/syntax_tree/node.rb#10197 + def initialize(variable:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10234 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10203 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10207 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#10195 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10211 + def copy(variable: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10207 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10224 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10228 + def format(q); end + + # [Backref | VarRef] the variable being interpolated + # + # source://syntax_tree//lib/syntax_tree/node.rb#10192 + def variable; end +end + +# StringEmbExpr represents interpolated content. It can be contained within a +# couple of different parent nodes, including regular expressions, strings, +# and dynamic symbols. +# +# "string #{expression}" +# +# source://syntax_tree//lib/syntax_tree/node.rb#10245 +class SyntaxTree::StringEmbExpr < ::SyntaxTree::Node + # @return [StringEmbExpr] a new instance of StringEmbExpr + # + # source://syntax_tree//lib/syntax_tree/node.rb#10252 + def initialize(statements:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10309 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10258 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10262 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#10250 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10266 + def copy(statements: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10262 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10279 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10283 + def format(q); end + + # [Statements] the expressions to be interpolated + # + # source://syntax_tree//lib/syntax_tree/node.rb#10247 + def statements; end +end + +# StringLiteral represents a string literal. +# +# "string" +# +# source://syntax_tree//lib/syntax_tree/node.rb#10318 +class SyntaxTree::StringLiteral < ::SyntaxTree::Node + # @return [StringLiteral] a new instance of StringLiteral + # + # source://syntax_tree//lib/syntax_tree/node.rb#10329 + def initialize(parts:, quote:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10403 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10336 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10340 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#10327 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10344 + def copy(parts: T.unsafe(nil), quote: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10340 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10358 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10362 + def format(q); end + + # [Array[ StringEmbExpr | StringDVar | TStringContent ]] the parts of the + # string literal + # + # source://syntax_tree//lib/syntax_tree/node.rb#10321 + def parts; end + + # [nil | String] which quote was used by the string literal + # + # source://syntax_tree//lib/syntax_tree/node.rb#10324 + def quote; end +end + +# Super represents using the +super+ keyword with arguments. It can optionally +# use parentheses. +# +# super(value) +# +# source://syntax_tree//lib/syntax_tree/node.rb#10414 +class SyntaxTree::Super < ::SyntaxTree::Node + # @return [Super] a new instance of Super + # + # source://syntax_tree//lib/syntax_tree/node.rb#10421 + def initialize(arguments:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10465 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10427 + def accept(visitor); end + + # [ArgParen | Args] the arguments to the keyword + # + # source://syntax_tree//lib/syntax_tree/node.rb#10416 + def arguments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10431 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#10419 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10435 + def copy(arguments: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10431 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10448 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10452 + def format(q); end +end + +# SymBeg represents the beginning of a symbol literal. +# +# :symbol +# +# SymBeg is also used for dynamic symbols, as in: +# +# :"symbol" +# +# Finally, SymBeg is also used for symbols using the %s syntax, as in: +# +# %s[symbol] +# +# The value of this node is a string. In most cases (as in the first example +# above) it will contain just ":". In the case of dynamic symbols it will +# contain ":'" or ":\"". In the case of %s symbols, it will contain the start +# of the symbol including the %s and the delimiter. +# +# source://syntax_tree//lib/syntax_tree/node.rb#10486 +class SyntaxTree::SymBeg < ::SyntaxTree::Node + # @return [SymBeg] a new instance of SymBeg + # + # source://syntax_tree//lib/syntax_tree/node.rb#10490 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10516 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10495 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10499 + def child_nodes; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10503 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10499 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10512 + def deconstruct_keys(_keys); end + + # [String] the beginning of the symbol + # + # source://syntax_tree//lib/syntax_tree/node.rb#10488 + def value; end +end + +# SymbolContent represents symbol contents and is always the child of a +# SymbolLiteral node. +# +# :symbol +# +# source://syntax_tree//lib/syntax_tree/node.rb#10526 +class SyntaxTree::SymbolContent < ::SyntaxTree::Node + # @return [SymbolContent] a new instance of SymbolContent + # + # source://syntax_tree//lib/syntax_tree/node.rb#10531 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10557 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10536 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10540 + def child_nodes; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10544 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10540 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10553 + def deconstruct_keys(_keys); end + + # [Backtick | Const | CVar | GVar | Ident | IVar | Kw | Op] the value of the + # symbol + # + # source://syntax_tree//lib/syntax_tree/node.rb#10529 + def value; end +end + +# SymbolLiteral represents a symbol in the system with no interpolation +# (as opposed to a DynaSymbol which has interpolation). +# +# :symbol +# +# source://syntax_tree//lib/syntax_tree/node.rb#10567 +class SyntaxTree::SymbolLiteral < ::SyntaxTree::Node + # @return [SymbolLiteral] a new instance of SymbolLiteral + # + # source://syntax_tree//lib/syntax_tree/node.rb#10575 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10612 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10581 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10585 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#10573 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10589 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10585 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10602 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10606 + def format(q); end + + # [Backtick | Const | CVar | GVar | Ident | IVar | Kw | Op | TStringContent] + # the value of the symbol + # + # source://syntax_tree//lib/syntax_tree/node.rb#10570 + def value; end +end + +# Symbols represents a symbol array literal with interpolation. +# +# %I[one two three] +# +# source://syntax_tree//lib/syntax_tree/node.rb#10621 +class SyntaxTree::Symbols < ::SyntaxTree::Node + # @return [Symbols] a new instance of Symbols + # + # source://syntax_tree//lib/syntax_tree/node.rb#10631 + def initialize(beginning:, elements:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10687 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10638 + def accept(visitor); end + + # [SymbolsBeg] the token that opens this array literal + # + # source://syntax_tree//lib/syntax_tree/node.rb#10623 + def beginning; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10642 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#10629 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10646 + def copy(beginning: T.unsafe(nil), elements: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10642 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10656 + def deconstruct_keys(_keys); end + + # [Array[ Word ]] the words in the symbol array literal + # + # source://syntax_tree//lib/syntax_tree/node.rb#10626 + def elements; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10665 + def format(q); end +end + +# SymbolsBeg represents the start of a symbol array literal with +# interpolation. +# +# %I[one two three] +# +# In the snippet above, SymbolsBeg represents the "%I[" token. Note that these +# kinds of arrays can start with a lot of different delimiter types +# (e.g., %I| or %I<). +# +# source://syntax_tree//lib/syntax_tree/node.rb#10701 +class SyntaxTree::SymbolsBeg < ::SyntaxTree::Node + # @return [SymbolsBeg] a new instance of SymbolsBeg + # + # source://syntax_tree//lib/syntax_tree/node.rb#10705 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10731 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10710 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10714 + def child_nodes; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10718 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10714 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10727 + def deconstruct_keys(_keys); end + + # [String] the beginning of the symbol literal array + # + # source://syntax_tree//lib/syntax_tree/node.rb#10703 + def value; end +end + +# TLamBeg represents the beginning of the body of a lambda literal using +# braces. +# +# -> { value } +# +# In the example above the TLamBeg represents the +{+ operator. +# +# source://syntax_tree//lib/syntax_tree/node.rb#10782 +class SyntaxTree::TLamBeg < ::SyntaxTree::Node + # @return [TLamBeg] a new instance of TLamBeg + # + # source://syntax_tree//lib/syntax_tree/node.rb#10786 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10812 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10791 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10795 + def child_nodes; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10799 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10795 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10808 + def deconstruct_keys(_keys); end + + # [String] the beginning of the body of the lambda literal + # + # source://syntax_tree//lib/syntax_tree/node.rb#10784 + def value; end +end + +# TLambda represents the beginning of a lambda literal. +# +# -> { value } +# +# In the example above the TLambda represents the +->+ operator. +# +# source://syntax_tree//lib/syntax_tree/node.rb#10741 +class SyntaxTree::TLambda < ::SyntaxTree::Node + # @return [TLambda] a new instance of TLambda + # + # source://syntax_tree//lib/syntax_tree/node.rb#10745 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10771 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10750 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10754 + def child_nodes; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10758 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10754 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10767 + def deconstruct_keys(_keys); end + + # [String] the beginning of the lambda literal + # + # source://syntax_tree//lib/syntax_tree/node.rb#10743 + def value; end +end + +# TStringBeg represents the beginning of a string literal. +# +# "string" +# +# In the example above, TStringBeg represents the first set of quotes. Strings +# can also use single quotes. They can also be declared using the +%q+ and +# +%Q+ syntax, as in: +# +# %q{string} +# +# source://syntax_tree//lib/syntax_tree/node.rb#10934 +class SyntaxTree::TStringBeg < ::SyntaxTree::Node + # @return [TStringBeg] a new instance of TStringBeg + # + # source://syntax_tree//lib/syntax_tree/node.rb#10938 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10964 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10943 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10947 + def child_nodes; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10951 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10947 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10960 + def deconstruct_keys(_keys); end + + # [String] the beginning of the string + # + # source://syntax_tree//lib/syntax_tree/node.rb#10936 + def value; end +end + +# TStringContent represents plain characters inside of an entity that accepts +# string content like a string, heredoc, command string, or regular +# expression. +# +# "string" +# +# In the example above, TStringContent represents the +string+ token contained +# within the string. +# +# source://syntax_tree//lib/syntax_tree/node.rb#10977 +class SyntaxTree::TStringContent < ::SyntaxTree::Node + # @return [TStringContent] a new instance of TStringContent + # + # source://syntax_tree//lib/syntax_tree/node.rb#10984 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11023 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10994 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10998 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#10982 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11002 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10998 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11015 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11019 + def format(q); end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#10990 + def match?(pattern); end + + # [String] the content of the string + # + # source://syntax_tree//lib/syntax_tree/node.rb#10979 + def value; end +end + +# TStringEnd represents the end of a string literal. +# +# "string" +# +# In the example above, TStringEnd represents the second set of quotes. +# Strings can also use single quotes. They can also be declared using the +%q+ +# and +%Q+ syntax, as in: +# +# %q{string} +# +# source://syntax_tree//lib/syntax_tree/node.rb#11038 +class SyntaxTree::TStringEnd < ::SyntaxTree::Node + # @return [TStringEnd] a new instance of TStringEnd + # + # source://syntax_tree//lib/syntax_tree/node.rb#11042 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11068 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11047 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11051 + def child_nodes; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11055 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11051 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11064 + def deconstruct_keys(_keys); end + + # [String] the end of the string + # + # source://syntax_tree//lib/syntax_tree/node.rb#11040 + def value; end +end + +# In order for an `if` or `unless` expression to be shortened to a ternary, +# there has to be one and only one consequent clause which is an Else. Both +# the body of the main node and the body of the Else node must have only one +# statement, and that statement must not be on the denied list of potential +# statements. +# +# source://syntax_tree//lib/syntax_tree/node.rb#6254 +module SyntaxTree::Ternaryable + class << self + # source://syntax_tree//lib/syntax_tree/node.rb#6256 + def call(q, node); end + + private + + # Certain expressions cannot be reduced to a ternary without adding + # parentheses around them. In this case we say they cannot be ternaried + # and default instead to breaking them into multiple lines. + # + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#6294 + def ternaryable?(statement); end + end +end + +# TopConstField is always the child node of some kind of assignment. It +# represents when you're assigning to a constant that is being referenced at +# the top level. +# +# ::Constant = value +# +# source://syntax_tree//lib/syntax_tree/node.rb#10823 +class SyntaxTree::TopConstField < ::SyntaxTree::Node + # @return [TopConstField] a new instance of TopConstField + # + # source://syntax_tree//lib/syntax_tree/node.rb#10830 + def initialize(constant:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10866 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10836 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10840 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#10828 + def comments; end + + # [Const] the constant being assigned + # + # source://syntax_tree//lib/syntax_tree/node.rb#10825 + def constant; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10844 + def copy(constant: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10840 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10857 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10861 + def format(q); end +end + +# TopConstRef is very similar to TopConstField except that it is not involved +# in an assignment. +# +# ::Constant +# +# source://syntax_tree//lib/syntax_tree/node.rb#10876 +class SyntaxTree::TopConstRef < ::SyntaxTree::Node + # @return [TopConstRef] a new instance of TopConstRef + # + # source://syntax_tree//lib/syntax_tree/node.rb#10883 + def initialize(constant:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10919 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10889 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10893 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#10881 + def comments; end + + # [Const] the constant being referenced + # + # source://syntax_tree//lib/syntax_tree/node.rb#10878 + def constant; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10897 + def copy(constant: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10893 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#10910 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#10914 + def format(q); end +end + +# This module is responsible for translating the Syntax Tree syntax tree into +# other representations. +# +# source://syntax_tree//lib/syntax_tree/translation.rb#6 +module SyntaxTree::Translation + class << self + # This method translates the given node into the representation defined by + # the whitequark/parser gem. We don't explicitly list it as a dependency + # because it's not required for the core functionality of Syntax Tree. + # + # source://syntax_tree//lib/syntax_tree/translation.rb#10 + def to_parser(node, buffer); end + + # This method translates the given node into the representation defined by + # the rubocop/rubocop-ast gem. We don't explicitly list it as a dependency + # because it's not required for the core functionality of Syntax Tree. + # + # source://syntax_tree//lib/syntax_tree/translation.rb#20 + def to_rubocop_ast(node, buffer); end + end +end + +# Unary represents a unary method being called on an expression, as in +!+ or +# +~+. +# +# !value +# +# source://syntax_tree//lib/syntax_tree/node.rb#11161 +class SyntaxTree::Unary < ::SyntaxTree::Node + # @return [Unary] a new instance of Unary + # + # source://syntax_tree//lib/syntax_tree/node.rb#11171 + def initialize(operator:, statement:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11214 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11178 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11182 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#11169 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11186 + def copy(operator: T.unsafe(nil), statement: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11182 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11200 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11209 + def format(q); end + + # [String] the operator being used + # + # source://syntax_tree//lib/syntax_tree/node.rb#11163 + def operator; end + + # [Node] the statement on which to operate + # + # source://syntax_tree//lib/syntax_tree/node.rb#11166 + def statement; end +end + +# Undef represents the use of the +undef+ keyword. +# +# undef method +# +# source://syntax_tree//lib/syntax_tree/node.rb#11224 +class SyntaxTree::Undef < ::SyntaxTree::Node + # @return [Undef] a new instance of Undef + # + # source://syntax_tree//lib/syntax_tree/node.rb#11255 + def initialize(symbols:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11298 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11261 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11265 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#11253 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11269 + def copy(symbols: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11265 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11282 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11286 + def format(q); end + + # [Array[ DynaSymbol | SymbolLiteral ]] the symbols to undefine + # + # source://syntax_tree//lib/syntax_tree/node.rb#11250 + def symbols; end +end + +# Undef accepts a variable number of arguments that can be either DynaSymbol +# or SymbolLiteral objects. For SymbolLiteral objects we descend directly +# into the value in order to have it come out as bare words. +# +# source://syntax_tree//lib/syntax_tree/node.rb#11228 +class SyntaxTree::Undef::UndefArgumentFormatter + # @return [UndefArgumentFormatter] a new instance of UndefArgumentFormatter + # + # source://syntax_tree//lib/syntax_tree/node.rb#11232 + def initialize(node); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11236 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11244 + def format(q); end + + # [DynaSymbol | SymbolLiteral] the symbol to undefine + # + # source://syntax_tree//lib/syntax_tree/node.rb#11230 + def node; end +end + +# Unless represents the first clause in an +unless+ chain. +# +# unless predicate +# end +# +# source://syntax_tree//lib/syntax_tree/node.rb#11308 +class SyntaxTree::UnlessNode < ::SyntaxTree::Node + # @return [UnlessNode] a new instance of UnlessNode + # + # source://syntax_tree//lib/syntax_tree/node.rb#11321 + def initialize(predicate:, statements:, consequent:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11366 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11329 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11333 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#11319 + def comments; end + + # [nil | Elsif | Else] the next clause in the chain + # + # source://syntax_tree//lib/syntax_tree/node.rb#11316 + def consequent; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11337 + def copy(predicate: T.unsafe(nil), statements: T.unsafe(nil), consequent: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11333 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11352 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11362 + def format(q); end + + # Checks if the node was originally found in the modifier form. + # + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#11372 + def modifier?; end + + # [Node] the expression to be checked + # + # source://syntax_tree//lib/syntax_tree/node.rb#11310 + def predicate; end + + # [Statements] the expressions to be executed + # + # source://syntax_tree//lib/syntax_tree/node.rb#11313 + def statements; end +end + +# Until represents an +until+ loop. +# +# until predicate +# end +# +# source://syntax_tree//lib/syntax_tree/node.rb#11454 +class SyntaxTree::UntilNode < ::SyntaxTree::Node + # @return [UntilNode] a new instance of UntilNode + # + # source://syntax_tree//lib/syntax_tree/node.rb#11464 + def initialize(predicate:, statements:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11506 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11471 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11475 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#11462 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11479 + def copy(predicate: T.unsafe(nil), statements: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11475 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11493 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11502 + def format(q); end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#11511 + def modifier?; end + + # [Node] the expression to be checked + # + # source://syntax_tree//lib/syntax_tree/node.rb#11456 + def predicate; end + + # [Statements] the expressions to be executed + # + # source://syntax_tree//lib/syntax_tree/node.rb#11459 + def statements; end +end + +# VCall represent any plain named object with Ruby that could be either a +# local variable or a method call. +# +# variable +# +# source://syntax_tree//lib/syntax_tree/node.rb#11716 +class SyntaxTree::VCall < ::SyntaxTree::Node + # @return [VCall] a new instance of VCall + # + # source://syntax_tree//lib/syntax_tree/node.rb#11723 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11758 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11729 + def accept(visitor); end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#11762 + def access_control?; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11766 + def arity; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11733 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#11721 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11737 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11733 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11750 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11754 + def format(q); end + + # [Ident] the value of this expression + # + # source://syntax_tree//lib/syntax_tree/node.rb#11718 + def value; end +end + +# source://syntax_tree//lib/syntax_tree/version.rb#4 +SyntaxTree::VERSION = T.let(T.unsafe(nil), String) + +# VarField represents a variable that is being assigned a value. As such, it +# is always a child of an assignment type node. +# +# variable = value +# +# In the example above, the VarField node represents the +variable+ token. +# +# source://syntax_tree//lib/syntax_tree/node.rb#11522 +class SyntaxTree::VarField < ::SyntaxTree::Node + # @return [VarField] a new instance of VarField + # + # source://syntax_tree//lib/syntax_tree/node.rb#11529 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11568 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11535 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11539 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#11527 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11543 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11539 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11556 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11560 + def format(q); end + + # [nil | :nil | Const | CVar | GVar | Ident | IVar] the target of this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#11524 + def value; end +end + +# VarRef represents a variable reference. +# +# true +# +# This can be a plain local variable like the example above. It can also be a +# constant, a class variable, a global variable, an instance variable, a +# keyword (like +self+, +nil+, +true+, or +false+), or a numbered block +# variable. +# +# source://syntax_tree//lib/syntax_tree/node.rb#11581 +class SyntaxTree::VarRef < ::SyntaxTree::Node + # @return [VarRef] a new instance of VarRef + # + # source://syntax_tree//lib/syntax_tree/node.rb#11588 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11623 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11594 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11598 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#11586 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11602 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11598 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11615 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11619 + def format(q); end + + # Oh man I hate this so much. Basically, ripper doesn't provide enough + # functionality to actually know where pins are within an expression. So we + # have to walk the tree ourselves and insert more information. In doing so, + # we have to replace this node by a pinned node when necessary. + # + # To be clear, this method should just not exist. It's not good. It's a + # place of shame. But it's necessary for now, so I'm keeping it. + # + # source://syntax_tree//lib/syntax_tree/node.rb#11634 + def pin(parent, pin); end + + # [Const | CVar | GVar | Ident | IVar | Kw] the value of this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#11583 + def value; end +end + +# Visitor is a parent class that provides the ability to walk down the tree +# and handle a subset of nodes. By defining your own subclass, you can +# explicitly handle a node type by defining a visit_* method. +# +# source://syntax_tree//lib/syntax_tree/visitor.rb#7 +class SyntaxTree::Visitor < ::SyntaxTree::BasicVisitor + # Visit a BEGINBlock node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_BEGIN(node); end + + # Visit a CHAR node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_CHAR(node); end + + # Visit an ENDBlock node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_END(node); end + + # Visit an EndContent node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit___end__(node); end + + # Visit an AliasNode node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_alias(node); end + + # Visit an ARef node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_aref(node); end + + # Visit an ARefField node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_aref_field(node); end + + # Visit an ArgBlock node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_arg_block(node); end + + # Visit an ArgParen node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_arg_paren(node); end + + # Visit an ArgStar node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_arg_star(node); end + + # Visit an Args node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_args(node); end + + # Visit an ArgsForward node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_args_forward(node); end + + # Visit an ArrayLiteral node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_array(node); end + + # Visit an AryPtn node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_aryptn(node); end + + # Visit an Assign node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_assign(node); end + + # Visit an Assoc node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_assoc(node); end + + # Visit an AssocSplat node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_assoc_splat(node); end + + # Visit a Backref node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_backref(node); end + + # Visit a Backtick node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_backtick(node); end + + # Visit a BareAssocHash node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_bare_assoc_hash(node); end + + # Visit a Begin node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_begin(node); end + + # Visit a Binary node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_binary(node); end + + # Visit a Block node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_block(node); end + + # Visit a BlockVar node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_block_var(node); end + + # Visit a BlockArg node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_blockarg(node); end + + # Visit a BodyStmt node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_bodystmt(node); end + + # Visit a Break node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_break(node); end + + # Visit a Call node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_call(node); end + + # Visit a Case node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_case(node); end + + # Visit a ClassDeclaration node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_class(node); end + + # Visit a Comma node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_comma(node); end + + # Visit a Command node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_command(node); end + + # Visit a CommandCall node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_command_call(node); end + + # Visit a Comment node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_comment(node); end + + # Visit a Const node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_const(node); end + + # Visit a ConstPathField node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_const_path_field(node); end + + # Visit a ConstPathRef node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_const_path_ref(node); end + + # Visit a ConstRef node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_const_ref(node); end + + # Visit a CVar node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_cvar(node); end + + # Visit a Def node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_def(node); end + + # Visit a Defined node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_defined(node); end + + # Visit a DynaSymbol node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_dyna_symbol(node); end + + # Visit an Else node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_else(node); end + + # Visit an Elsif node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_elsif(node); end + + # Visit an EmbDoc node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_embdoc(node); end + + # Visit an EmbExprBeg node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_embexpr_beg(node); end + + # Visit an EmbExprEnd node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_embexpr_end(node); end + + # Visit an EmbVar node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_embvar(node); end + + # Visit an Ensure node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_ensure(node); end + + # Visit an ExcessedComma node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_excessed_comma(node); end + + # Visit a Field node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_field(node); end + + # Visit a FloatLiteral node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_float(node); end + + # Visit a FndPtn node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_fndptn(node); end + + # Visit a For node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_for(node); end + + # Visit a GVar node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_gvar(node); end + + # Visit a HashLiteral node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_hash(node); end + + # Visit a Heredoc node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_heredoc(node); end + + # Visit a HeredocBeg node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_heredoc_beg(node); end + + # Visit a HeredocEnd node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_heredoc_end(node); end + + # Visit a HshPtn node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_hshptn(node); end + + # Visit an Ident node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_ident(node); end + + # Visit an IfNode node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_if(node); end + + # Visit an IfOp node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_if_op(node); end + + # Visit an Imaginary node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_imaginary(node); end + + # Visit an In node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_in(node); end + + # Visit an Int node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_int(node); end + + # Visit an IVar node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_ivar(node); end + + # Visit a Kw node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_kw(node); end + + # Visit a KwRestParam node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_kwrest_param(node); end + + # Visit a Label node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_label(node); end + + # Visit a LabelEnd node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_label_end(node); end + + # Visit a Lambda node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_lambda(node); end + + # Visit a LambdaVar node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_lambda_var(node); end + + # Visit a LBrace node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_lbrace(node); end + + # Visit a LBracket node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_lbracket(node); end + + # Visit a LParen node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_lparen(node); end + + # Visit a MAssign node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_massign(node); end + + # Visit a MethodAddBlock node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_method_add_block(node); end + + # Visit a MLHS node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_mlhs(node); end + + # Visit a MLHSParen node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_mlhs_paren(node); end + + # Visit a ModuleDeclaration node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_module(node); end + + # Visit a MRHS node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_mrhs(node); end + + # Visit a Next node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_next(node); end + + # Visit a Not node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_not(node); end + + # Visit an Op node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_op(node); end + + # Visit an OpAssign node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_opassign(node); end + + # Visit a Params node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_params(node); end + + # Visit a Paren node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_paren(node); end + + # Visit a Period node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_period(node); end + + # Visit a PinnedBegin node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_pinned_begin(node); end + + # Visit a PinnedVarRef node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_pinned_var_ref(node); end + + # Visit a Program node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_program(node); end + + # Visit a QSymbols node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_qsymbols(node); end + + # Visit a QSymbolsBeg node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_qsymbols_beg(node); end + + # Visit a QWords node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_qwords(node); end + + # Visit a QWordsBeg node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_qwords_beg(node); end + + # Visit a RangeNode node + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_range(node); end + + # Visit a RAssign node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_rassign(node); end + + # Visit a RationalLiteral node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_rational(node); end + + # Visit a RBrace node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_rbrace(node); end + + # Visit a RBracket node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_rbracket(node); end + + # Visit a Redo node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_redo(node); end + + # Visit a RegexpBeg node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_regexp_beg(node); end + + # Visit a RegexpContent node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_regexp_content(node); end + + # Visit a RegexpEnd node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_regexp_end(node); end + + # Visit a RegexpLiteral node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_regexp_literal(node); end + + # Visit a Rescue node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_rescue(node); end + + # Visit a RescueEx node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_rescue_ex(node); end + + # Visit a RescueMod node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_rescue_mod(node); end + + # Visit a RestParam node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_rest_param(node); end + + # Visit a Retry node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_retry(node); end + + # Visit a Return node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_return(node); end + + # Visit a RParen node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_rparen(node); end + + # Visit a SClass node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_sclass(node); end + + # Visit a Statements node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_statements(node); end + + # Visit a StringConcat node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_string_concat(node); end + + # Visit a StringContent node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_string_content(node); end + + # Visit a StringDVar node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_string_dvar(node); end + + # Visit a StringEmbExpr node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_string_embexpr(node); end + + # Visit a StringLiteral node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_string_literal(node); end + + # Visit a Super node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_super(node); end + + # Visit a SymBeg node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_symbeg(node); end + + # Visit a SymbolContent node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_symbol_content(node); end + + # Visit a SymbolLiteral node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_symbol_literal(node); end + + # Visit a Symbols node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_symbols(node); end + + # Visit a SymbolsBeg node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_symbols_beg(node); end + + # Visit a TLambda node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_tlambda(node); end + + # Visit a TLamBeg node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_tlambeg(node); end + + # Visit a TopConstField node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_top_const_field(node); end + + # Visit a TopConstRef node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_top_const_ref(node); end + + # Visit a TStringBeg node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_tstring_beg(node); end + + # Visit a TStringContent node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_tstring_content(node); end + + # Visit a TStringEnd node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_tstring_end(node); end + + # Visit an Unary node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_unary(node); end + + # Visit an Undef node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_undef(node); end + + # Visit an UnlessNode node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_unless(node); end + + # Visit an UntilNode node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_until(node); end + + # Visit a VarField node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_var_field(node); end + + # Visit a VarRef node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_var_ref(node); end + + # Visit a VCall node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_vcall(node); end + + # Visit a VoidStmt node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_void_stmt(node); end + + # Visit a When node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_when(node); end + + # Visit a WhileNode node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_while(node); end + + # Visit a Word node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_word(node); end + + # Visit a Words node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_words(node); end + + # Visit a WordsBeg node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_words_beg(node); end + + # Visit a XString node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_xstring(node); end + + # Visit a XStringLiteral node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_xstring_literal(node); end + + # Visit a YieldNode node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_yield(node); end + + # Visit a ZSuper node. + # + # source://syntax_tree//lib/syntax_tree/basic_visitor.rb#113 + def visit_zsuper(node); end +end + +# VoidStmt represents an empty lexical block of code. +# +# ;; +# +# source://syntax_tree//lib/syntax_tree/node.rb#11775 +class SyntaxTree::VoidStmt < ::SyntaxTree::Node + # @return [VoidStmt] a new instance of VoidStmt + # + # source://syntax_tree//lib/syntax_tree/node.rb#11779 + def initialize(location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11808 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11784 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11788 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#11777 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11792 + def copy(location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11788 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11801 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11805 + def format(q); end +end + +# When represents a +when+ clause in a +case+ chain. +# +# case value +# when predicate +# end +# +# source://syntax_tree//lib/syntax_tree/node.rb#11819 +class SyntaxTree::When < ::SyntaxTree::Node + # @return [When] a new instance of When + # + # source://syntax_tree//lib/syntax_tree/node.rb#11832 + def initialize(arguments:, statements:, consequent:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11924 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11840 + def accept(visitor); end + + # [Args] the arguments to the when clause + # + # source://syntax_tree//lib/syntax_tree/node.rb#11821 + def arguments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11844 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#11830 + def comments; end + + # [nil | Else | When] the next clause in the chain + # + # source://syntax_tree//lib/syntax_tree/node.rb#11827 + def consequent; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11848 + def copy(arguments: T.unsafe(nil), statements: T.unsafe(nil), consequent: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11844 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11863 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11889 + def format(q); end + + # [Statements] the expressions to be executed + # + # source://syntax_tree//lib/syntax_tree/node.rb#11824 + def statements; end +end + +# We're going to keep a single instance of this separator around so we don't +# have to allocate a new one every time we format a when clause. +# +# source://syntax_tree//lib/syntax_tree/node.rb#11887 +SyntaxTree::When::SEPARATOR = T.let(T.unsafe(nil), SyntaxTree::When::Separator) + +# We have a special separator here for when clauses which causes them to +# fill as much of the line as possible as opposed to everything breaking +# into its own line as soon as you hit the print limit. +# +# source://syntax_tree//lib/syntax_tree/node.rb#11876 +class SyntaxTree::When::Separator + # source://syntax_tree//lib/syntax_tree/node.rb#11877 + def call(q); end +end + +# While represents a +while+ loop. +# +# while predicate +# end +# +# source://syntax_tree//lib/syntax_tree/node.rb#11935 +class SyntaxTree::WhileNode < ::SyntaxTree::Node + # @return [WhileNode] a new instance of WhileNode + # + # source://syntax_tree//lib/syntax_tree/node.rb#11945 + def initialize(predicate:, statements:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11987 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11952 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11956 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#11943 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11960 + def copy(predicate: T.unsafe(nil), statements: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11956 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#11974 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#11983 + def format(q); end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#11992 + def modifier?; end + + # [Node] the expression to be checked + # + # source://syntax_tree//lib/syntax_tree/node.rb#11937 + def predicate; end + + # [Statements] the expressions to be executed + # + # source://syntax_tree//lib/syntax_tree/node.rb#11940 + def statements; end +end + +# WithScope is a module intended to be included in classes inheriting from +# Visitor. The module overrides a few visit methods to automatically keep +# track of local variables and arguments defined in the current scope. +# Example usage: +# +# class MyVisitor < Visitor +# include WithScope +# +# def visit_ident(node) +# # Check if we're visiting an identifier for an argument, a local +# # variable or something else +# local = current_scope.find_local(node) +# +# if local.type == :argument +# # handle identifiers for arguments +# elsif local.type == :variable +# # handle identifiers for variables +# else +# # handle other identifiers, such as method names +# end +# end +# end +# +# source://syntax_tree//lib/syntax_tree/with_scope.rb#27 +module SyntaxTree::WithScope + # source://syntax_tree//lib/syntax_tree/with_scope.rb#122 + def initialize(*args, **kwargs, &block); end + + # Returns the value of attribute current_scope. + # + # source://syntax_tree//lib/syntax_tree/with_scope.rb#120 + def current_scope; end + + # Visit for capturing local variables defined in regex named capture groups + # + # source://syntax_tree//lib/syntax_tree/with_scope.rb#236 + def visit_binary(node); end + + # source://syntax_tree//lib/syntax_tree/with_scope.rb#189 + def visit_block_var(node); end + + # source://syntax_tree//lib/syntax_tree/with_scope.rb#182 + def visit_blockarg(node); end + + # Visits for nodes that create new scopes, such as classes, modules + # and method definitions. + # + # source://syntax_tree//lib/syntax_tree/with_scope.rb#131 + def visit_class(node); end + + # source://syntax_tree//lib/syntax_tree/with_scope.rb#147 + def visit_def(node); end + + # source://syntax_tree//lib/syntax_tree/with_scope.rb#175 + def visit_kwrest_param(node); end + + # source://syntax_tree//lib/syntax_tree/with_scope.rb#189 + def visit_lambda_var(node); end + + # When we find a method invocation with a block, only the code that happens + # inside of the block needs a fresh scope. The method invocation + # itself happens in the same scope. + # + # source://syntax_tree//lib/syntax_tree/with_scope.rb#142 + def visit_method_add_block(node); end + + # source://syntax_tree//lib/syntax_tree/with_scope.rb#135 + def visit_module(node); end + + # Visit for keeping track of local arguments, such as method and block + # arguments. + # + # source://syntax_tree//lib/syntax_tree/with_scope.rb#153 + def visit_params(node); end + + # Visit for keeping track of local variable definitions + # + # source://syntax_tree//lib/syntax_tree/with_scope.rb#207 + def visit_pinned_var_ref(node); end + + # source://syntax_tree//lib/syntax_tree/with_scope.rb#168 + def visit_rest_param(node); end + + # Visit for keeping track of local variable definitions + # + # source://syntax_tree//lib/syntax_tree/with_scope.rb#199 + def visit_var_field(node); end + + # Visits for keeping track of variable and argument usages + # + # source://syntax_tree//lib/syntax_tree/with_scope.rb#215 + def visit_var_ref(node); end + + # When using regex named capture groups, vcalls might actually be a variable + # + # source://syntax_tree//lib/syntax_tree/with_scope.rb#227 + def visit_vcall(node); end + + private + + # source://syntax_tree//lib/syntax_tree/with_scope.rb#285 + def add_argument_definitions(list); end + + # source://syntax_tree//lib/syntax_tree/with_scope.rb#299 + def next_scope_id; end + + # source://syntax_tree//lib/syntax_tree/with_scope.rb#303 + def with_scope(parent_scope = T.unsafe(nil)); end +end + +# The scope class is used to keep track of local variables and arguments +# inside a particular scope. +# +# source://syntax_tree//lib/syntax_tree/with_scope.rb#30 +class SyntaxTree::WithScope::Scope + # @return [Scope] a new instance of Scope + # + # source://syntax_tree//lib/syntax_tree/with_scope.rb#68 + def initialize(id, parent = T.unsafe(nil)); end + + # Adding a local definition will either insert a new entry in the locals + # hash or append a new definition location to an existing local. Notice + # that it's not possible to change the type of a local after it has been + # registered. + # + # source://syntax_tree//lib/syntax_tree/with_scope.rb#78 + def add_local_definition(identifier, type); end + + # Adding a local usage will either insert a new entry in the locals + # hash or append a new usage location to an existing local. Notice that + # it's not possible to change the type of a local after it has been + # registered. + # + # source://syntax_tree//lib/syntax_tree/with_scope.rb#95 + def add_local_usage(identifier, type); end + + # Try to find the local given its name in this scope or any of its + # parents. + # + # source://syntax_tree//lib/syntax_tree/with_scope.rb#102 + def find_local(name); end + + # [Integer] a unique identifier for this scope + # + # source://syntax_tree//lib/syntax_tree/with_scope.rb#59 + def id; end + + # [Hash[String, Local]] The local variables and arguments defined in this + # scope + # + # source://syntax_tree//lib/syntax_tree/with_scope.rb#66 + def locals; end + + # [scope | nil] The parent scope + # + # source://syntax_tree//lib/syntax_tree/with_scope.rb#62 + def parent; end + + private + + # source://syntax_tree//lib/syntax_tree/with_scope.rb#108 + def resolve_local(name, type); end +end + +# This class tracks the occurrences of a local variable or argument. +# +# source://syntax_tree//lib/syntax_tree/with_scope.rb#32 +class SyntaxTree::WithScope::Scope::Local + # @return [Local] a new instance of Local + # + # source://syntax_tree//lib/syntax_tree/with_scope.rb#43 + def initialize(type); end + + # source://syntax_tree//lib/syntax_tree/with_scope.rb#49 + def add_definition(location); end + + # source://syntax_tree//lib/syntax_tree/with_scope.rb#53 + def add_usage(location); end + + # [Array[Location]] The locations of all definitions and assignments of + # this local + # + # source://syntax_tree//lib/syntax_tree/with_scope.rb#38 + def definitions; end + + # [Symbol] The type of the local (e.g. :argument, :variable) + # + # source://syntax_tree//lib/syntax_tree/with_scope.rb#34 + def type; end + + # [Array[Location]] The locations of all usages of this local + # + # source://syntax_tree//lib/syntax_tree/with_scope.rb#41 + def usages; end +end + +# Word represents an element within a special array literal that accepts +# interpolation. +# +# %W[a#{b}c xyz] +# +# In the example above, there would be two Word nodes within a parent Words +# node. +# +# source://syntax_tree//lib/syntax_tree/node.rb#12004 +class SyntaxTree::Word < ::SyntaxTree::Node + # @return [Word] a new instance of Word + # + # source://syntax_tree//lib/syntax_tree/node.rb#12012 + def initialize(parts:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12051 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12022 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12026 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#12010 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#12030 + def copy(parts: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12026 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#12043 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12047 + def format(q); end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/node.rb#12018 + def match?(pattern); end + + # [Array[ StringEmbExpr | StringDVar | TStringContent ]] the parts of the + # word + # + # source://syntax_tree//lib/syntax_tree/node.rb#12007 + def parts; end +end + +# Words represents a string literal array with interpolation. +# +# %W[one two three] +# +# source://syntax_tree//lib/syntax_tree/node.rb#12060 +class SyntaxTree::Words < ::SyntaxTree::Node + # @return [Words] a new instance of Words + # + # source://syntax_tree//lib/syntax_tree/node.rb#12070 + def initialize(beginning:, elements:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12126 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12077 + def accept(visitor); end + + # [WordsBeg] the token that opens this array literal + # + # source://syntax_tree//lib/syntax_tree/node.rb#12062 + def beginning; end + + # source://syntax_tree//lib/syntax_tree/node.rb#12081 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#12068 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#12085 + def copy(beginning: T.unsafe(nil), elements: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12081 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#12095 + def deconstruct_keys(_keys); end + + # [Array[ Word ]] the elements of this array + # + # source://syntax_tree//lib/syntax_tree/node.rb#12065 + def elements; end + + # source://syntax_tree//lib/syntax_tree/node.rb#12104 + def format(q); end +end + +# WordsBeg represents the beginning of a string literal array with +# interpolation. +# +# %W[one two three] +# +# In the snippet above, a WordsBeg would be created with the value of "%W[". +# Note that these kinds of arrays can start with a lot of different delimiter +# types (e.g., %W| or %W<). +# +# source://syntax_tree//lib/syntax_tree/node.rb#12140 +class SyntaxTree::WordsBeg < ::SyntaxTree::Node + # @return [WordsBeg] a new instance of WordsBeg + # + # source://syntax_tree//lib/syntax_tree/node.rb#12144 + def initialize(value:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12170 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12149 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12153 + def child_nodes; end + + # source://syntax_tree//lib/syntax_tree/node.rb#12157 + def copy(value: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12153 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#12166 + def deconstruct_keys(_keys); end + + # [String] the start of the word literal array + # + # source://syntax_tree//lib/syntax_tree/node.rb#12142 + def value; end +end + +# XString represents the contents of an XStringLiteral. +# +# `ls` +# +# source://syntax_tree//lib/syntax_tree/node.rb#12179 +class SyntaxTree::XString < ::SyntaxTree::Node + # @return [XString] a new instance of XString + # + # source://syntax_tree//lib/syntax_tree/node.rb#12184 + def initialize(parts:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12210 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12189 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12193 + def child_nodes; end + + # source://syntax_tree//lib/syntax_tree/node.rb#12197 + def copy(parts: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12193 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#12206 + def deconstruct_keys(_keys); end + + # [Array[ StringEmbExpr | StringDVar | TStringContent ]] the parts of the + # xstring + # + # source://syntax_tree//lib/syntax_tree/node.rb#12182 + def parts; end +end + +# XStringLiteral represents a string that gets executed. +# +# `ls` +# +# source://syntax_tree//lib/syntax_tree/node.rb#12219 +class SyntaxTree::XStringLiteral < ::SyntaxTree::Node + # @return [XStringLiteral] a new instance of XStringLiteral + # + # source://syntax_tree//lib/syntax_tree/node.rb#12227 + def initialize(parts:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12264 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12233 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12237 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#12225 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#12241 + def copy(parts: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12237 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#12254 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12258 + def format(q); end + + # [Array[ StringEmbExpr | StringDVar | TStringContent ]] the parts of the + # xstring + # + # source://syntax_tree//lib/syntax_tree/node.rb#12222 + def parts; end +end + +# This module provides an object representation of the YARV bytecode. +# +# source://syntax_tree//lib/syntax_tree/yarv/basic_block.rb#4 +module SyntaxTree::YARV + class << self + # A convenience method for creating a CallData object. + # + # source://syntax_tree//lib/syntax_tree/yarv/calldata.rb#88 + def calldata(method, argc = T.unsafe(nil), flags = T.unsafe(nil), kw_arg = T.unsafe(nil)); end + + # Compile the given source into a YARV instruction sequence. + # + # source://syntax_tree//lib/syntax_tree/yarv.rb#25 + def compile(source, options = T.unsafe(nil)); end + + # Compile and interpret the given source. + # + # source://syntax_tree//lib/syntax_tree/yarv.rb#30 + def interpret(source, options = T.unsafe(nil)); end + end +end + +# ### Summary +# +# `adjuststack` accepts a single integer argument and removes that many +# elements from the top of the stack. +# +# ### Usage +# +# ~~~ruby +# x = [true] +# x[0] ||= nil +# x[0] +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#69 +class SyntaxTree::YARV::AdjustStack < ::SyntaxTree::YARV::Instruction + # @return [AdjustStack] a new instance of AdjustStack + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#72 + def initialize(number); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#88 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#100 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#84 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#76 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#92 + def length; end + + # Returns the value of attribute number. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#70 + def number; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#96 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#80 + def to_a(_iseq); end +end + +# ### Summary +# +# `anytostring` ensures that the value on top of the stack is a string. +# +# It pops two values off the stack. If the first value is a string it +# pushes it back on the stack. If the first value is not a string, it uses +# Ruby's built in string coercion to coerce the second value to a string +# and then pushes that back on the stack. +# +# This is used in conjunction with `objtostring` as a fallback for when an +# object's `to_s` method does not return a string. +# +# ### Usage +# +# ~~~ruby +# "#{5}" +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#123 +class SyntaxTree::YARV::AnyToString < ::SyntaxTree::YARV::Instruction + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#136 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#148 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#132 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#124 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#140 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#144 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#128 + def to_a(_iseq); end +end + +# source://syntax_tree//lib/syntax_tree/yarv/assembler.rb#5 +class SyntaxTree::YARV::Assembler + # @return [Assembler] a new instance of Assembler + # + # source://syntax_tree//lib/syntax_tree/yarv/assembler.rb#66 + def initialize(lines); end + + # source://syntax_tree//lib/syntax_tree/yarv/assembler.rb#70 + def assemble; end + + # Returns the value of attribute lines. + # + # source://syntax_tree//lib/syntax_tree/yarv/assembler.rb#64 + def lines; end + + private + + # source://syntax_tree//lib/syntax_tree/yarv/assembler.rb#88 + def assemble_iseq(iseq, lines); end + + # source://syntax_tree//lib/syntax_tree/yarv/assembler.rb#408 + def find_local(iseq, operands); end + + # source://syntax_tree//lib/syntax_tree/yarv/assembler.rb#417 + def parse(value); end + + # source://syntax_tree//lib/syntax_tree/yarv/assembler.rb#449 + def parse_calldata(value); end + + # source://syntax_tree//lib/syntax_tree/yarv/assembler.rb#444 + def parse_nested(lines); end + + # source://syntax_tree//lib/syntax_tree/yarv/assembler.rb#432 + def parse_number(value); end + + # source://syntax_tree//lib/syntax_tree/yarv/assembler.rb#424 + def parse_options(value, options); end + + # source://syntax_tree//lib/syntax_tree/yarv/assembler.rb#436 + def parse_string(value); end + + # source://syntax_tree//lib/syntax_tree/yarv/assembler.rb#440 + def parse_symbol(value); end + + # source://syntax_tree//lib/syntax_tree/yarv/assembler.rb#428 + def parse_type(value, type); end + + class << self + # source://syntax_tree//lib/syntax_tree/yarv/assembler.rb#78 + def assemble(source); end + + # source://syntax_tree//lib/syntax_tree/yarv/assembler.rb#82 + def assemble_file(filepath); end + end +end + +# source://syntax_tree//lib/syntax_tree/yarv/assembler.rb#28 +SyntaxTree::YARV::Assembler::CALLDATA_FLAGS = T.let(T.unsafe(nil), Hash) + +# source://syntax_tree//lib/syntax_tree/yarv/assembler.rb#43 +SyntaxTree::YARV::Assembler::DEFINED_TYPES = T.let(T.unsafe(nil), Array) + +# source://syntax_tree//lib/syntax_tree/yarv/assembler.rb#6 +class SyntaxTree::YARV::Assembler::ObjectVisitor < ::SyntaxTree::YARV::Compiler::RubyVisitor + # source://syntax_tree//lib/syntax_tree/yarv/assembler.rb#7 + def visit_dyna_symbol(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/assembler.rb#15 + def visit_string_literal(node); end +end + +# This object represents a single basic block, wherein all contained +# instructions do not branch except for the last one. +# +# source://syntax_tree//lib/syntax_tree/yarv/basic_block.rb#7 +class SyntaxTree::YARV::BasicBlock + # @return [BasicBlock] a new instance of BasicBlock + # + # source://syntax_tree//lib/syntax_tree/yarv/basic_block.rb#23 + def initialize(block_start, insns); end + + # This is the index into the list of instructions where this block starts. + # + # source://syntax_tree//lib/syntax_tree/yarv/basic_block.rb#12 + def block_start; end + + # Yield each instruction in this basic block along with its index from the + # original instruction sequence. + # + # source://syntax_tree//lib/syntax_tree/yarv/basic_block.rb#35 + def each_with_length; end + + # This is the unique identifier for this basic block. + # + # source://syntax_tree//lib/syntax_tree/yarv/basic_block.rb#9 + def id; end + + # This is an array of basic blocks that lead into this block. + # + # source://syntax_tree//lib/syntax_tree/yarv/basic_block.rb#18 + def incoming_blocks; end + + # This is the set of instructions that this block contains. + # + # source://syntax_tree//lib/syntax_tree/yarv/basic_block.rb#15 + def insns; end + + # This is an array of basic blocks that this block leads into. + # + # source://syntax_tree//lib/syntax_tree/yarv/basic_block.rb#21 + def outgoing_blocks; end + + # This method is used to verify that the basic block is well formed. It + # checks that the only instruction in this basic block that branches is + # the last instruction. + # + # source://syntax_tree//lib/syntax_tree/yarv/basic_block.rb#48 + def verify; end +end + +# Parses the given source code into a syntax tree, compiles that syntax tree +# into YARV bytecode. +# +# source://syntax_tree//lib/syntax_tree/yarv/bf.rb#7 +class SyntaxTree::YARV::Bf + # @return [Bf] a new instance of Bf + # + # source://syntax_tree//lib/syntax_tree/yarv/bf.rb#10 + def initialize(source); end + + # source://syntax_tree//lib/syntax_tree/yarv/bf.rb#14 + def compile; end + + # Returns the value of attribute source. + # + # source://syntax_tree//lib/syntax_tree/yarv/bf.rb#8 + def source; end + + private + + # $tape[$cursor] += value + # + # source://syntax_tree//lib/syntax_tree/yarv/bf.rb#84 + def change_by(iseq, value); end + + # $tape[$cursor] = $stdin.getc.ord + # + # source://syntax_tree//lib/syntax_tree/yarv/bf.rb#133 + def input_char(iseq); end + + # Jump back to the start of the loop. + # + # source://syntax_tree//lib/syntax_tree/yarv/bf.rb#163 + def loop_end(iseq, start_label, end_label); end + + # unless $tape[$cursor] == 0 + # + # source://syntax_tree//lib/syntax_tree/yarv/bf.rb#146 + def loop_start(iseq); end + + # $stdout.putc($tape[$cursor].chr) + # + # source://syntax_tree//lib/syntax_tree/yarv/bf.rb#120 + def output_char(iseq); end + + # $cursor += value + # + # source://syntax_tree//lib/syntax_tree/yarv/bf.rb#105 + def shift_by(iseq, value); end +end + +# ### Summary +# +# `branchif` has one argument: the jump index. It pops one value off the +# stack: the jump condition. +# +# If the value popped off the stack is true, `branchif` jumps to +# the jump index and continues executing there. +# +# ### Usage +# +# ~~~ruby +# x = true +# x ||= "foo" +# puts x +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#175 +class SyntaxTree::YARV::BranchIf < ::SyntaxTree::YARV::Instruction + # @return [BranchIf] a new instance of BranchIf + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#178 + def initialize(label); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#194 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#210 + def branch_targets; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#206 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#190 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#182 + def disasm(fmt); end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#214 + def falls_through?; end + + # Returns the value of attribute label. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#176 + def label; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#198 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#202 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#186 + def to_a(_iseq); end +end + +# ### Summary +# +# `branchnil` has one argument: the jump index. It pops one value off the +# stack: the jump condition. +# +# If the value popped off the stack is nil, `branchnil` jumps to +# the jump index and continues executing there. +# +# ### Usage +# +# ~~~ruby +# x = nil +# if x&.to_s +# puts "hi" +# end +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#236 +class SyntaxTree::YARV::BranchNil < ::SyntaxTree::YARV::Instruction + # @return [BranchNil] a new instance of BranchNil + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#239 + def initialize(label); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#255 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#271 + def branch_targets; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#267 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#251 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#243 + def disasm(fmt); end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#275 + def falls_through?; end + + # Returns the value of attribute label. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#237 + def label; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#259 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#263 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#247 + def to_a(_iseq); end +end + +# ### Summary +# +# `branchunless` has one argument: the jump index. It pops one value off +# the stack: the jump condition. +# +# If the value popped off the stack is false or nil, `branchunless` jumps +# to the jump index and continues executing there. +# +# ### Usage +# +# ~~~ruby +# if 2 + 3 +# puts "foo" +# end +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#296 +class SyntaxTree::YARV::BranchUnless < ::SyntaxTree::YARV::Instruction + # @return [BranchUnless] a new instance of BranchUnless + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#299 + def initialize(label); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#315 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#331 + def branch_targets; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#327 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#311 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#303 + def disasm(fmt); end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#335 + def falls_through?; end + + # Returns the value of attribute label. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#297 + def label; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#319 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#323 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#307 + def to_a(_iseq); end +end + +# This is an operand to various YARV instructions that represents the +# information about a specific call site. +# +# source://syntax_tree//lib/syntax_tree/yarv/calldata.rb#7 +class SyntaxTree::YARV::CallData + # @return [CallData] a new instance of CallData + # + # source://syntax_tree//lib/syntax_tree/yarv/calldata.rb#31 + def initialize(method, argc = T.unsafe(nil), flags = T.unsafe(nil), kw_arg = T.unsafe(nil)); end + + # Returns the value of attribute argc. + # + # source://syntax_tree//lib/syntax_tree/yarv/calldata.rb#29 + def argc; end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/calldata.rb#43 + def flag?(mask); end + + # Returns the value of attribute flags. + # + # source://syntax_tree//lib/syntax_tree/yarv/calldata.rb#29 + def flags; end + + # source://syntax_tree//lib/syntax_tree/yarv/calldata.rb#53 + def inspect; end + + # Returns the value of attribute kw_arg. + # + # source://syntax_tree//lib/syntax_tree/yarv/calldata.rb#29 + def kw_arg; end + + # Returns the value of attribute method. + # + # source://syntax_tree//lib/syntax_tree/yarv/calldata.rb#29 + def method; end + + # source://syntax_tree//lib/syntax_tree/yarv/calldata.rb#47 + def to_h; end + + class << self + # source://syntax_tree//lib/syntax_tree/yarv/calldata.rb#77 + def from(serialized); end + end +end + +# source://syntax_tree//lib/syntax_tree/yarv/calldata.rb#27 +SyntaxTree::YARV::CallData::CALL_ARGS_BLOCKARG = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/calldata.rb#27 +SyntaxTree::YARV::CallData::CALL_ARGS_SIMPLE = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/calldata.rb#27 +SyntaxTree::YARV::CallData::CALL_ARGS_SPLAT = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/calldata.rb#27 +SyntaxTree::YARV::CallData::CALL_BLOCKISEQ = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/calldata.rb#27 +SyntaxTree::YARV::CallData::CALL_FCALL = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/calldata.rb#27 +SyntaxTree::YARV::CallData::CALL_KWARG = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/calldata.rb#27 +SyntaxTree::YARV::CallData::CALL_KW_SPLAT = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/calldata.rb#27 +SyntaxTree::YARV::CallData::CALL_KW_SPLAT_MUT = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/calldata.rb#27 +SyntaxTree::YARV::CallData::CALL_OPT_SEND = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/calldata.rb#27 +SyntaxTree::YARV::CallData::CALL_SUPER = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/calldata.rb#27 +SyntaxTree::YARV::CallData::CALL_TAILCALL = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/calldata.rb#27 +SyntaxTree::YARV::CallData::CALL_VCALL = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/calldata.rb#27 +SyntaxTree::YARV::CallData::CALL_ZSUPER = T.let(T.unsafe(nil), Integer) + +# ### Summary +# +# `checkkeyword` checks if a keyword was passed at the callsite that +# called into the method represented by the instruction sequence. It has +# two arguments: the index of the local variable that stores the keywords +# metadata and the index of the keyword within that metadata. It pushes +# a boolean onto the stack indicating whether or not the keyword was +# given. +# +# ### Usage +# +# ~~~ruby +# def evaluate(value: rand) +# value +# end +# +# evaluate(value: 3) +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#359 +class SyntaxTree::YARV::CheckKeyword < ::SyntaxTree::YARV::Instruction + # @return [CheckKeyword] a new instance of CheckKeyword + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#362 + def initialize(keyword_bits_index, keyword_index); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#386 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#400 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#382 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#367 + def disasm(fmt); end + + # Returns the value of attribute keyword_bits_index. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#360 + def keyword_bits_index; end + + # Returns the value of attribute keyword_index. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#360 + def keyword_index; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#392 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#396 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#374 + def to_a(iseq); end +end + +# ### Summary +# +# `checkmatch` checks if the current pattern matches the current value. It +# pops the target and the pattern off the stack and pushes a boolean onto +# the stack if it matches or not. +# +# ### Usage +# +# ~~~ruby +# foo in Foo +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#417 +class SyntaxTree::YARV::CheckMatch < ::SyntaxTree::YARV::Instruction + # @return [CheckMatch] a new instance of CheckMatch + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#426 + def initialize(type); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#442 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#458 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#438 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#430 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#446 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#450 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#454 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#434 + def to_a(_iseq); end + + # Returns the value of attribute type. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#424 + def type; end + + private + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#472 + def check?(pattern, target); end +end + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#422 +SyntaxTree::YARV::CheckMatch::VM_CHECKMATCH_ARRAY = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#419 +SyntaxTree::YARV::CheckMatch::VM_CHECKMATCH_TYPE_CASE = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#421 +SyntaxTree::YARV::CheckMatch::VM_CHECKMATCH_TYPE_MASK = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#420 +SyntaxTree::YARV::CheckMatch::VM_CHECKMATCH_TYPE_RESCUE = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#418 +SyntaxTree::YARV::CheckMatch::VM_CHECKMATCH_TYPE_WHEN = T.let(T.unsafe(nil), Integer) + +# ### Summary +# +# `checktype` checks if the value on top of the stack is of a certain type. +# The type is the only argument. It pops the value off the stack and pushes +# a boolean onto the stack indicating whether or not the value is of the +# given type. +# +# ### Usage +# +# ~~~ruby +# foo in [bar] +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#501 +class SyntaxTree::YARV::CheckType < ::SyntaxTree::YARV::Instruction + # @return [CheckType] a new instance of CheckType + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#526 + def initialize(type); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#588 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#608 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#584 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#530 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#592 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#596 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#600 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#580 + def to_a(_iseq); end + + # Returns the value of attribute type. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#524 + def type; end +end + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#508 +SyntaxTree::YARV::CheckType::TYPE_ARRAY = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#511 +SyntaxTree::YARV::CheckType::TYPE_BIGNUM = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#503 +SyntaxTree::YARV::CheckType::TYPE_CLASS = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#515 +SyntaxTree::YARV::CheckType::TYPE_COMPLEX = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#513 +SyntaxTree::YARV::CheckType::TYPE_DATA = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#519 +SyntaxTree::YARV::CheckType::TYPE_FALSE = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#512 +SyntaxTree::YARV::CheckType::TYPE_FILE = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#521 +SyntaxTree::YARV::CheckType::TYPE_FIXNUM = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#505 +SyntaxTree::YARV::CheckType::TYPE_FLOAT = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#509 +SyntaxTree::YARV::CheckType::TYPE_HASH = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#514 +SyntaxTree::YARV::CheckType::TYPE_MATCH = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#504 +SyntaxTree::YARV::CheckType::TYPE_MODULE = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#517 +SyntaxTree::YARV::CheckType::TYPE_NIL = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#502 +SyntaxTree::YARV::CheckType::TYPE_OBJECT = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#516 +SyntaxTree::YARV::CheckType::TYPE_RATIONAL = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#507 +SyntaxTree::YARV::CheckType::TYPE_REGEXP = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#506 +SyntaxTree::YARV::CheckType::TYPE_STRING = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#510 +SyntaxTree::YARV::CheckType::TYPE_STRUCT = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#520 +SyntaxTree::YARV::CheckType::TYPE_SYMBOL = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#518 +SyntaxTree::YARV::CheckType::TYPE_TRUE = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#522 +SyntaxTree::YARV::CheckType::TYPE_UNDEF = T.let(T.unsafe(nil), Integer) + +# This class is an experiment in transforming Syntax Tree nodes into their +# corresponding YARV instruction sequences. It attempts to mirror the +# behavior of RubyVM::InstructionSequence.compile. +# +# You use this as with any other visitor. First you parse code into a tree, +# then you visit it with this compiler. Visiting the root node of the tree +# will return a SyntaxTree::YARV::Compiler::InstructionSequence object. +# With that object you can call #to_a on it, which will return a serialized +# form of the instruction sequence as an array. This array _should_ mirror +# the array given by RubyVM::InstructionSequence#to_a. +# +# As an example, here is how you would compile a single expression: +# +# program = SyntaxTree.parse("1 + 2") +# program.accept(SyntaxTree::YARV::Compiler.new).to_a +# +# [ +# "YARVInstructionSequence/SimpleDataFormat", +# 3, +# 1, +# 1, +# {:arg_size=>0, :local_size=>0, :stack_max=>2}, +# "", +# "", +# "", +# 1, +# :top, +# [], +# {}, +# [], +# [ +# [:putobject_INT2FIX_1_], +# [:putobject, 2], +# [:opt_plus, {:mid=>:+, :flag=>16, :orig_argc=>1}], +# [:leave] +# ] +# ] +# +# Note that this is the same output as calling: +# +# RubyVM::InstructionSequence.compile("1 + 2").to_a +# +# source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#47 +class SyntaxTree::YARV::Compiler < ::SyntaxTree::BasicVisitor + # @return [Compiler] a new instance of Compiler + # + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#293 + def initialize(options = T.unsafe(nil)); end + + # The current instruction sequence that is being compiled. + # + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#286 + def iseq; end + + # A boolean to track if we're currently compiling the last statement + # within a set of statements. This information is necessary to determine + # if we need to return the value of the last statement. + # + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#291 + def last_statement; end + + # These options mirror the compilation options that we currently support + # that can be also passed to RubyVM::InstructionSequence.compile. + # + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#283 + def options; end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#299 + def visit_BEGIN(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#303 + def visit_CHAR(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#311 + def visit_END(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#339 + def visit_alias(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#347 + def visit_aref(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#369 + def visit_arg_block(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#373 + def visit_arg_paren(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#377 + def visit_arg_star(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#382 + def visit_args(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#386 + def visit_array(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#421 + def visit_aryptn(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#424 + def visit_assign(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#522 + def visit_assoc(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#527 + def visit_assoc_splat(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#531 + def visit_backref(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#535 + def visit_bare_assoc_hash(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#543 + def visit_begin(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#546 + def visit_binary(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#575 + def visit_block(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#585 + def visit_block_var(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#599 + def visit_blockarg(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#605 + def visit_bodystmt(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#609 + def visit_break(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#612 + def visit_call(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#712 + def visit_case(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#757 + def visit_class(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#792 + def visit_command(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#805 + def visit_command_call(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#818 + def visit_const_path_field(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#822 + def visit_const_path_ref(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#827 + def visit_def(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#850 + def visit_defined(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#907 + def visit_dyna_symbol(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#913 + def visit_else(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#918 + def visit_elsif(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#929 + def visit_ensure(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#932 + def visit_field(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#936 + def visit_float(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#940 + def visit_fndptn(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#943 + def visit_for(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#976 + def visit_hash(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#988 + def visit_heredoc(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#985 + def visit_hshptn(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#999 + def visit_if(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1053 + def visit_if_op(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1074 + def visit_imaginary(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1078 + def visit_int(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1082 + def visit_kwrest_param(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1088 + def visit_label(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1092 + def visit_lambda(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1106 + def visit_lambda_var(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1110 + def visit_massign(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1116 + def visit_method_add_block(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1129 + def visit_mlhs(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1142 + def visit_module(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1171 + def visit_mrhs(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1180 + def visit_next(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1183 + def visit_not(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1188 + def visit_opassign(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1254 + def visit_params(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1360 + def visit_paren(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1364 + def visit_pinned_begin(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1367 + def visit_pinned_var_ref(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1370 + def visit_program(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1421 + def visit_qsymbols(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1425 + def visit_qwords(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1434 + def visit_range(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1444 + def visit_rassign(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1521 + def visit_rational(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1525 + def visit_redo(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1528 + def visit_regexp_literal(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1538 + def visit_rescue(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1541 + def visit_rescue_ex(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1544 + def visit_rescue_mod(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1547 + def visit_rest_param(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1553 + def visit_retry(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1556 + def visit_return(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1559 + def visit_sclass(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1580 + def visit_statements(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1594 + def visit_string_concat(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1606 + def visit_string_embexpr(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1610 + def visit_string_literal(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1619 + def visit_super(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1633 + def visit_symbol_literal(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1637 + def visit_symbols(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1656 + def visit_top_const_ref(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1660 + def visit_tstring_content(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1668 + def visit_unary(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1689 + def visit_undef(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1699 + def visit_unless(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1725 + def visit_until(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1744 + def visit_var_field(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1761 + def visit_var_ref(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1796 + def visit_vcall(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1808 + def visit_when(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1812 + def visit_while(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1831 + def visit_word(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1840 + def visit_words(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1850 + def visit_xstring_literal(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1863 + def visit_yield(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1869 + def visit_zsuper(_node); end + + private + + # This is a helper that is used in places where arguments may be present + # or they may be wrapped in parentheses. It's meant to descend down the + # tree and return an array of argument nodes. + # + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1887 + def argument_parts(node); end + + # Constant names when they are being assigned or referenced come in as a + # tree, but it's more convenient to work with them as an array. This + # method converts them into that array. This is nice because it's the + # operand that goes to opt_getconstant_path in Ruby 3.2. + # + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1908 + def constant_names(node); end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#2196 + def last_statement?; end + + # For the most part when an OpAssign (operator assignment) node with a ||= + # operator is being compiled it's a matter of reading the target, checking + # if the value should be evaluated, evaluating it if so, and then writing + # the result back to the target. + # + # However, in certain kinds of assignments (X, ::X, X::Y, @@x, and $x) we + # first check if the value is defined using the defined instruction. I + # don't know why it is necessary, and suspect that it isn't. + # + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#1936 + def opassign_defined(node); end + + # Whenever a value is interpolated into a string-like structure, these + # three instructions are pushed. + # + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#2016 + def push_interpolate; end + + # Visit a type of pattern in a pattern match. + # + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#2029 + def visit_pattern(node, end_label); end + + # There are a lot of nodes in the AST that act as contains of parts of + # strings. This includes things like string literals, regular expressions, + # heredocs, etc. This method will visit all the parts of a string within + # those containers. + # + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#2137 + def visit_string_parts(node); end + + # The current instruction sequence that we're compiling is always stored + # on the compiler. When we descend into a node that has its own + # instruction sequence, this method can be called to temporarily set the + # new value of the instruction sequence, yield, and then set it back. + # + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#2167 + def with_child_iseq(child_iseq); end + + # When we're compiling the last statement of a set of statements within a + # scope, the instructions sometimes change from pops to leaves. These + # kinds of peephole optimizations can reduce the overall number of + # instructions. Therefore, we keep track of whether we're compiling the + # last statement of a scope and allow visit methods to query that + # information. + # + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#2185 + def with_last_statement; end + + # OpAssign nodes can have a number of different kinds of nodes as their + # "target" (i.e., the left-hand side of the assignment). When compiling + # these nodes we typically need to first fetch the current value of the + # variable, then perform some kind of action, then store the result back + # into the variable. This method handles that by first fetching the value, + # then yielding to the block, then storing the result. + # + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#2206 + def with_opassign(node); end +end + +# This represents a set of options that can be passed to the compiler to +# control how it compiles the code. It mirrors the options that can be +# passed to RubyVM::InstructionSequence.compile, except it only includes +# options that actually change the behavior. +# +# source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#52 +class SyntaxTree::YARV::Compiler::Options + # @return [Options] a new instance of Options + # + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#53 + def initialize(frozen_string_literal: T.unsafe(nil), inline_const_cache: T.unsafe(nil), operands_unification: T.unsafe(nil), peephole_optimization: T.unsafe(nil), specialized_instruction: T.unsafe(nil), tailcall_optimization: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#80 + def frozen_string_literal!; end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#84 + def frozen_string_literal?; end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#88 + def inline_const_cache?; end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#92 + def operands_unification?; end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#96 + def peephole_optimization?; end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#100 + def specialized_instruction?; end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#104 + def tailcall_optimization?; end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#69 + def to_hash; end +end + +# This visitor is responsible for converting Syntax Tree nodes into their +# corresponding Ruby structures. This is used to convert the operands of +# some instructions like putobject that push a Ruby object directly onto +# the stack. It is only used when the entire structure can be represented +# at compile-time, as opposed to constructed at run-time. +# +# source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#114 +class SyntaxTree::YARV::Compiler::RubyVisitor < ::SyntaxTree::BasicVisitor + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_BEGIN(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_CHAR(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_END(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit___end__(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_alias(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_aref(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_aref_field(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_arg_block(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_arg_paren(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_arg_star(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_args(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_args_forward(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#128 + def visit_array(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_aryptn(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_assign(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_assoc(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_assoc_splat(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_backref(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_backtick(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#132 + def visit_bare_assoc_hash(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_begin(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_binary(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_block(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_block_var(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_blockarg(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_bodystmt(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_break(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_call(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_case(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_class(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_comma(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_command(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_command_call(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_comment(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_const(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_const_path_field(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_const_path_ref(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_const_ref(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_cvar(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_def(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_defined(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_dyna_symbol(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_else(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_elsif(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_embdoc(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_embexpr_beg(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_embexpr_end(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_embvar(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_ensure(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_excessed_comma(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_field(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#141 + def visit_float(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_fndptn(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_for(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_gvar(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#132 + def visit_hash(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_heredoc(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_heredoc_beg(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_heredoc_end(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_hshptn(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_ident(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_if(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_if_op(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#147 + def visit_imaginary(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_in(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#151 + def visit_int(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_ivar(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_kw(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_kwrest_param(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#166 + def visit_label(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_label_end(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_lambda(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_lambda_var(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_lbrace(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_lbracket(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_lparen(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_massign(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_method_add_block(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_mlhs(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_mlhs_paren(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_module(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#170 + def visit_mrhs(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_next(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_not(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_op(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_opassign(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_params(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_paren(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_period(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_pinned_begin(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_pinned_var_ref(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_program(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#174 + def visit_qsymbols(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_qsymbols_beg(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#178 + def visit_qwords(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_qwords_beg(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#182 + def visit_range(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_rassign(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#187 + def visit_rational(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_rbrace(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_rbracket(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_redo(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_regexp_beg(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_regexp_content(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_regexp_end(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#191 + def visit_regexp_literal(node); end + + # This isn't actually a visit method, though maybe it should be. It is + # responsible for converting the set of string options on a regular + # expression into its equivalent integer. + # + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#249 + def visit_regexp_literal_flags(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_rescue(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_rescue_ex(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_rescue_mod(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_rest_param(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_retry(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_return(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_rparen(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_sclass(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_statements(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_string_concat(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_string_content(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_string_dvar(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_string_embexpr(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_string_literal(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_super(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_symbeg(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_symbol_content(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#204 + def visit_symbol_literal(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#208 + def visit_symbols(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_symbols_beg(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_tlambda(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_tlambeg(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_top_const_field(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_top_const_ref(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_tstring_beg(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#212 + def visit_tstring_content(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_tstring_end(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_unary(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_undef(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_unless(_node); end + + # @raise [CompilationError] + # + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_unsupported(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_until(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_var_field(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#216 + def visit_var_ref(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_vcall(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_void_stmt(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_when(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_while(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#231 + def visit_word(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#241 + def visit_words(node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_words_beg(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_xstring(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_xstring_literal(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_yield(_node); end + + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#268 + def visit_zsuper(_node); end + + class << self + # This will attempt to compile the given node. If it's possible, then + # it will return the compiled object. Otherwise it will return nil. + # + # source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#122 + def compile(node); end + end +end + +# This error is raised whenever a node cannot be converted into a Ruby +# object at compile-time. +# +# source://syntax_tree//lib/syntax_tree/yarv/compiler.rb#117 +class SyntaxTree::YARV::Compiler::RubyVisitor::CompilationError < ::StandardError; end + +# ### Summary +# +# `concatarray` concatenates the two Arrays on top of the stack. +# +# It coerces the two objects at the top of the stack into Arrays by +# calling `to_a` if necessary, and makes sure to `dup` the first Array if +# it was already an Array, to avoid mutating it when concatenating. +# +# ### Usage +# +# ~~~ruby +# [1, *2] +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#674 +class SyntaxTree::YARV::ConcatArray < ::SyntaxTree::YARV::Instruction + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#687 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#699 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#683 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#675 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#691 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#695 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#679 + def to_a(_iseq); end +end + +# ### Summary +# +# `concatstrings` pops a number of strings from the stack joins them +# together into a single string and pushes that string back on the stack. +# +# This does no coercion and so is always used in conjunction with +# `objtostring` and `anytostring` to ensure the stack contents are always +# strings. +# +# ### Usage +# +# ~~~ruby +# "#{5}" +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#720 +class SyntaxTree::YARV::ConcatStrings < ::SyntaxTree::YARV::Instruction + # @return [ConcatStrings] a new instance of ConcatStrings + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#723 + def initialize(number); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#739 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#755 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#735 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#727 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#743 + def length; end + + # Returns the value of attribute number. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#721 + def number; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#747 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#751 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#731 + def to_a(_iseq); end +end + +# This class represents a control flow graph of a YARV instruction sequence. +# It constructs a graph of basic blocks that hold subsets of the list of +# instructions from the instruction sequence. +# +# You can use this class by calling the ::compile method and passing it a +# YARV instruction sequence. It will return a control flow graph object. +# +# iseq = RubyVM::InstructionSequence.compile("1 + 2") +# iseq = SyntaxTree::YARV::InstructionSequence.from(iseq.to_a) +# cfg = SyntaxTree::YARV::ControlFlowGraph.compile(iseq) +# +# source://syntax_tree//lib/syntax_tree/yarv/control_flow_graph.rb#16 +class SyntaxTree::YARV::ControlFlowGraph + # @return [ControlFlowGraph] a new instance of ControlFlowGraph + # + # source://syntax_tree//lib/syntax_tree/yarv/control_flow_graph.rb#173 + def initialize(iseq, insns, blocks); end + + # This is the set of basic blocks that this control-flow graph contains. + # + # source://syntax_tree//lib/syntax_tree/yarv/control_flow_graph.rb#171 + def blocks; end + + # source://syntax_tree//lib/syntax_tree/yarv/control_flow_graph.rb#179 + def disasm; end + + # This is the list of instructions that this control flow graph contains. + # It is effectively the same as the list of instructions in the + # instruction sequence but with line numbers and events filtered out. + # + # source://syntax_tree//lib/syntax_tree/yarv/control_flow_graph.rb#168 + def insns; end + + # This is the instruction sequence that this control flow graph + # corresponds to. + # + # source://syntax_tree//lib/syntax_tree/yarv/control_flow_graph.rb#163 + def iseq; end + + # source://syntax_tree//lib/syntax_tree/yarv/control_flow_graph.rb#202 + def to_dfg; end + + # source://syntax_tree//lib/syntax_tree/yarv/control_flow_graph.rb#210 + def to_mermaid; end + + # source://syntax_tree//lib/syntax_tree/yarv/control_flow_graph.rb#206 + def to_son; end + + # This method is used to verify that the control flow graph is well + # formed. It does this by checking that each basic block is itself well + # formed. + # + # source://syntax_tree//lib/syntax_tree/yarv/control_flow_graph.rb#248 + def verify; end + + class << self + # source://syntax_tree//lib/syntax_tree/yarv/control_flow_graph.rb#252 + def compile(iseq); end + end +end + +# This class is responsible for creating a control flow graph from the +# given instruction sequence. +# +# source://syntax_tree//lib/syntax_tree/yarv/control_flow_graph.rb#19 +class SyntaxTree::YARV::ControlFlowGraph::Compiler + # @return [Compiler] a new instance of Compiler + # + # source://syntax_tree//lib/syntax_tree/yarv/control_flow_graph.rb#34 + def initialize(iseq); end + + # This method is used to compile the instruction sequence into a control + # flow graph. It returns an instance of ControlFlowGraph. + # + # source://syntax_tree//lib/syntax_tree/yarv/control_flow_graph.rb#54 + def compile; end + + # This is a hash of indices in the YARV instruction sequence that point + # to their corresponding instruction. + # + # source://syntax_tree//lib/syntax_tree/yarv/control_flow_graph.rb#25 + def insns; end + + # This is the instruction sequence that is being compiled. + # + # source://syntax_tree//lib/syntax_tree/yarv/control_flow_graph.rb#21 + def iseq; end + + # This is a hash of labels that point to their corresponding index into + # the YARV instruction sequence. Note that this is not the same as the + # index into the list of instructions on the instruction sequence + # object. Instead, this is the index into the C array, so it includes + # operands. + # + # source://syntax_tree//lib/syntax_tree/yarv/control_flow_graph.rb#32 + def labels; end + + private + + # Builds up a set of basic blocks by iterating over the starts of each + # block. They are keyed by the index of their first instruction. + # + # source://syntax_tree//lib/syntax_tree/yarv/control_flow_graph.rb#92 + def build_basic_blocks; end + + # Connect the blocks by letting them know which blocks are incoming and + # outgoing from each block. + # + # source://syntax_tree//lib/syntax_tree/yarv/control_flow_graph.rb#123 + def connect_basic_blocks(blocks); end + + # Finds the indices of the instructions that start a basic block because + # they're either: + # + # * the start of an instruction sequence + # * the target of a branch + # * fallen through to from a branch + # + # source://syntax_tree//lib/syntax_tree/yarv/control_flow_graph.rb#72 + def find_basic_block_starts; end + + # If there are blocks that are unreachable, we can remove them from the + # graph entirely at this point. + # + # source://syntax_tree//lib/syntax_tree/yarv/control_flow_graph.rb#145 + def prune_basic_blocks(blocks); end +end + +# Constructs a data-flow-graph of a YARV instruction sequence, via a +# control-flow-graph. Data flow is discovered locally and then globally. The +# graph only considers data flow through the stack - local variables and +# objects are considered fully escaped in this analysis. +# +# You can use this class by calling the ::compile method and passing it a +# control flow graph. It will return a data flow graph object. +# +# iseq = RubyVM::InstructionSequence.compile("1 + 2") +# iseq = SyntaxTree::YARV::InstructionSequence.from(iseq.to_a) +# cfg = SyntaxTree::YARV::ControlFlowGraph.compile(iseq) +# dfg = SyntaxTree::YARV::DataFlowGraph.compile(cfg) +# +# source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#18 +class SyntaxTree::YARV::DataFlowGraph + # @return [DataFlowGraph] a new instance of DataFlowGraph + # + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#68 + def initialize(cfg, insn_flows, block_flows); end + + # Returns the value of attribute block_flows. + # + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#66 + def block_flows; end + + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#74 + def blocks; end + + # Returns the value of attribute cfg. + # + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#66 + def cfg; end + + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#78 + def disasm; end + + # Returns the value of attribute insn_flows. + # + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#66 + def insn_flows; end + + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#127 + def to_mermaid; end + + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#123 + def to_son; end + + # Verify that we constructed the data flow graph correctly. + # + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#179 + def verify; end + + class << self + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#204 + def compile(cfg); end + end +end + +# This represents an object that goes on the stack that is passed between +# basic blocks. +# +# source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#32 +class SyntaxTree::YARV::DataFlowGraph::BlockArgument + # @return [BlockArgument] a new instance of BlockArgument + # + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#35 + def initialize(name); end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#39 + def local?; end + + # Returns the value of attribute name. + # + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#33 + def name; end + + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#43 + def to_str; end +end + +# This class is responsible for creating a data flow graph from the given +# control flow graph. +# +# source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#210 +class SyntaxTree::YARV::DataFlowGraph::Compiler + # @return [Compiler] a new instance of Compiler + # + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#221 + def initialize(cfg); end + + # This data structure will hold the data flow between basic blocks. + # + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#219 + def block_flows; end + + # This is the control flow graph that is being compiled. + # + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#212 + def cfg; end + + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#227 + def compile; end + + # This data structure will hold the data flow between instructions + # within individual basic blocks. + # + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#216 + def insn_flows; end + + private + + # Find the data that flows between basic blocks. + # + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#304 + def find_external_flow; end + + # Find the data flow within each basic block. Using an abstract stack, + # connect from consumers of data to the producers of that data. + # + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#237 + def find_internal_flow; end +end + +# This object represents the flow of data between instructions. +# +# source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#20 +class SyntaxTree::YARV::DataFlowGraph::DataFlow + # @return [DataFlow] a new instance of DataFlow + # + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#24 + def initialize; end + + # Returns the value of attribute in. + # + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#21 + def in; end + + # Returns the value of attribute out. + # + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#22 + def out; end +end + +# This represents an object that goes on the stack that is passed between +# instructions within a basic block. +# +# source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#50 +class SyntaxTree::YARV::DataFlowGraph::LocalArgument + # @return [LocalArgument] a new instance of LocalArgument + # + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#53 + def initialize(length); end + + # Returns the value of attribute length. + # + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#51 + def length; end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#57 + def local?; end + + # Returns the value of attribute name. + # + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#51 + def name; end + + # source://syntax_tree//lib/syntax_tree/yarv/data_flow_graph.rb#61 + def to_str; end +end + +# This class is responsible for taking a compiled instruction sequence and +# walking through it to generate equivalent Ruby code. +# +# source://syntax_tree//lib/syntax_tree/yarv/decompiler.rb#7 +class SyntaxTree::YARV::Decompiler + include ::SyntaxTree::DSL + + # @return [Decompiler] a new instance of Decompiler + # + # source://syntax_tree//lib/syntax_tree/yarv/decompiler.rb#32 + def initialize(iseq); end + + # Returns the value of attribute block_label. + # + # source://syntax_tree//lib/syntax_tree/yarv/decompiler.rb#30 + def block_label; end + + # Returns the value of attribute iseq. + # + # source://syntax_tree//lib/syntax_tree/yarv/decompiler.rb#30 + def iseq; end + + # source://syntax_tree//lib/syntax_tree/yarv/decompiler.rb#37 + def to_ruby; end + + private + + # source://syntax_tree//lib/syntax_tree/yarv/decompiler.rb#52 + def decompile(iseq); end + + # source://syntax_tree//lib/syntax_tree/yarv/decompiler.rb#256 + def local_name(index, level); end + + # source://syntax_tree//lib/syntax_tree/yarv/decompiler.rb#43 + def node_for(value); end +end + +# When we're decompiling, we use a looped case statement to emulate +# jumping around in the same way the virtual machine would. This class +# provides convenience methods for generating the AST nodes that have to +# do with that label. +# +# source://syntax_tree//lib/syntax_tree/yarv/decompiler.rb#12 +class SyntaxTree::YARV::Decompiler::BlockLabel + include ::SyntaxTree::DSL + + # @return [BlockLabel] a new instance of BlockLabel + # + # source://syntax_tree//lib/syntax_tree/yarv/decompiler.rb#16 + def initialize(name); end + + # source://syntax_tree//lib/syntax_tree/yarv/decompiler.rb#20 + def field; end + + # Returns the value of attribute name. + # + # source://syntax_tree//lib/syntax_tree/yarv/decompiler.rb#14 + def name; end + + # source://syntax_tree//lib/syntax_tree/yarv/decompiler.rb#24 + def ref; end +end + +# ### Summary +# +# `defineclass` defines a class. First it pops the superclass off the +# stack, then it pops the object off the stack that the class should be +# defined under. It has three arguments: the name of the constant, the +# instruction sequence associated with the class, and various flags that +# indicate if it is a singleton class, a module, or a regular class. +# +# ### Usage +# +# ~~~ruby +# class Foo +# end +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#775 +class SyntaxTree::YARV::DefineClass < ::SyntaxTree::YARV::Instruction + # @return [DefineClass] a new instance of DefineClass + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#784 + def initialize(name, class_iseq, flags); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#806 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#823 + def call(vm); end + + # Returns the value of attribute class_iseq. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#782 + def class_iseq; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#802 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#790 + def disasm(fmt); end + + # Returns the value of attribute flags. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#782 + def flags; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#811 + def length; end + + # Returns the value of attribute name. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#782 + def name; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#815 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#819 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#798 + def to_a(_iseq); end +end + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#780 +SyntaxTree::YARV::DefineClass::FLAG_HAS_SUPERCLASS = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#779 +SyntaxTree::YARV::DefineClass::FLAG_SCOPED = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#776 +SyntaxTree::YARV::DefineClass::TYPE_CLASS = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#778 +SyntaxTree::YARV::DefineClass::TYPE_MODULE = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#777 +SyntaxTree::YARV::DefineClass::TYPE_SINGLETON_CLASS = T.let(T.unsafe(nil), Integer) + +# ### Summary +# +# `definemethod` defines a method on the class of the current value of +# `self`. It accepts two arguments. The first is the name of the method +# being defined. The second is the instruction sequence representing the +# body of the method. +# +# ### Usage +# +# ~~~ruby +# def value = "value" +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1068 +class SyntaxTree::YARV::DefineMethod < ::SyntaxTree::YARV::Instruction + # @return [DefineMethod] a new instance of DefineMethod + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1071 + def initialize(method_name, method_iseq); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1092 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1101 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1088 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1076 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1097 + def length; end + + # Returns the value of attribute method_iseq. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1069 + def method_iseq; end + + # Returns the value of attribute method_name. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1069 + def method_name; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1084 + def to_a(_iseq); end +end + +# ### Summary +# +# `definesmethod` defines a method on the singleton class of the current +# value of `self`. It accepts two arguments. The first is the name of the +# method being defined. The second is the instruction sequence representing +# the body of the method. It pops the object off the stack that the method +# should be defined on. +# +# ### Usage +# +# ~~~ruby +# def self.value = "value" +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1137 +class SyntaxTree::YARV::DefineSMethod < ::SyntaxTree::YARV::Instruction + # @return [DefineSMethod] a new instance of DefineSMethod + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1140 + def initialize(method_name, method_iseq); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1161 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1174 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1157 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1145 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1166 + def length; end + + # Returns the value of attribute method_iseq. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1138 + def method_iseq; end + + # Returns the value of attribute method_name. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1138 + def method_name; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1170 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1153 + def to_a(_iseq); end +end + +# ### Summary +# +# `defined` checks if the top value of the stack is defined. If it is, it +# pushes its value onto the stack. Otherwise it pushes `nil`. +# +# ### Usage +# +# ~~~ruby +# defined?(x) +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#859 +class SyntaxTree::YARV::Defined < ::SyntaxTree::YARV::Instruction + # @return [Defined] a new instance of Defined + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#880 + def initialize(type, name, message); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#939 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#956 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#935 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#886 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#944 + def length; end + + # Returns the value of attribute message. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#878 + def message; end + + # Returns the value of attribute name. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#878 + def name; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#948 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#952 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#931 + def to_a(_iseq); end + + # Returns the value of attribute type. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#878 + def type; end +end + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#872 +SyntaxTree::YARV::Defined::TYPE_ASGN = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#865 +SyntaxTree::YARV::Defined::TYPE_CONST = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#876 +SyntaxTree::YARV::Defined::TYPE_CONST_FROM = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#864 +SyntaxTree::YARV::Defined::TYPE_CVAR = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#873 +SyntaxTree::YARV::Defined::TYPE_EXPR = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#871 +SyntaxTree::YARV::Defined::TYPE_FALSE = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#875 +SyntaxTree::YARV::Defined::TYPE_FUNC = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#863 +SyntaxTree::YARV::Defined::TYPE_GVAR = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#861 +SyntaxTree::YARV::Defined::TYPE_IVAR = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#862 +SyntaxTree::YARV::Defined::TYPE_LVAR = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#866 +SyntaxTree::YARV::Defined::TYPE_METHOD = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#860 +SyntaxTree::YARV::Defined::TYPE_NIL = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#874 +SyntaxTree::YARV::Defined::TYPE_REF = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#869 +SyntaxTree::YARV::Defined::TYPE_SELF = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#870 +SyntaxTree::YARV::Defined::TYPE_TRUE = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#867 +SyntaxTree::YARV::Defined::TYPE_YIELD = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#868 +SyntaxTree::YARV::Defined::TYPE_ZSUPER = T.let(T.unsafe(nil), Integer) + +# ### Summary +# +# `definedivar` checks if an instance variable is defined. It is a +# specialization of the `defined` instruction. It accepts three arguments: +# the name of the instance variable, an inline cache, and the string that +# should be pushed onto the stack in the event that the instance variable +# is defined. +# +# ### Usage +# +# ~~~ruby +# defined?(@value) +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1011 +class SyntaxTree::YARV::DefinedIVar < ::SyntaxTree::YARV::Instruction + # @return [DefinedIVar] a new instance of DefinedIVar + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1014 + def initialize(name, cache, message); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1035 + def ==(other); end + + # Returns the value of attribute cache. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1012 + def cache; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1048 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1031 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1020 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1040 + def length; end + + # Returns the value of attribute message. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1012 + def message; end + + # Returns the value of attribute name. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1012 + def name; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1044 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1027 + def to_a(_iseq); end +end + +# source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#5 +class SyntaxTree::YARV::Disassembler + # @return [Disassembler] a new instance of Disassembler + # + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#46 + def initialize(current_iseq = T.unsafe(nil)); end + + # Helpers for various instructions + # + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#58 + def calldata(value); end + + # Returns the value of attribute current_iseq. + # + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#44 + def current_iseq; end + + # Sets the attribute current_iseq + # + # @param value the value to set the attribute current_iseq to. + # + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#44 + def current_iseq=(_arg0); end + + # Returns the value of attribute current_prefix. + # + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#43 + def current_prefix; end + + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#62 + def enqueue(iseq); end + + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#66 + def event(name); end + + # Entrypoints + # + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#116 + def format!; end + + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#123 + def format_insns!(insns, length = T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#87 + def inline_storage(cache); end + + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#91 + def instruction(name, operands = T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#95 + def label(value); end + + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#99 + def local(index, explicit: T.unsafe(nil), implicit: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#108 + def object(value); end + + # Returns the value of attribute output. + # + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#41 + def output; end + + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#167 + def print(string); end + + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#171 + def puts(string); end + + # Returns the value of attribute queue. + # + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#41 + def queue; end + + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#175 + def string; end + + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#179 + def with_prefix(value); end + + private + + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#192 + def format_iseq(iseq); end +end + +# This class is another object that handles disassembling a YARV +# instruction sequence but it renders it without any of the extra spacing +# or alignment. +# +# source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#9 +class SyntaxTree::YARV::Disassembler::Squished + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#10 + def calldata(value); end + + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#14 + def enqueue(iseq); end + + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#17 + def event(name); end + + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#20 + def inline_storage(cache); end + + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#24 + def instruction(name, operands = T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#28 + def label(value); end + + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#32 + def local(index, **_arg1); end + + # source://syntax_tree//lib/syntax_tree/yarv/disassembler.rb#36 + def object(value); end +end + +# ### Summary +# +# `dup` copies the top value of the stack and pushes it onto the stack. +# +# ### Usage +# +# ~~~ruby +# $global = 5 +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1206 +class SyntaxTree::YARV::Dup < ::SyntaxTree::YARV::Instruction + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1219 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1231 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1215 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1207 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1223 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1227 + def pushes; end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1235 + def side_effects?; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1211 + def to_a(_iseq); end +end + +# ### Summary +# +# `duparray` dups an Array literal and pushes it onto the stack. +# +# ### Usage +# +# ~~~ruby +# [true] +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1250 +class SyntaxTree::YARV::DupArray < ::SyntaxTree::YARV::Instruction + # @return [DupArray] a new instance of DupArray + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1253 + def initialize(object); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1269 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1281 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1265 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1257 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1273 + def length; end + + # Returns the value of attribute object. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1251 + def object; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1277 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1261 + def to_a(_iseq); end +end + +# ### Summary +# +# `duphash` dups a Hash literal and pushes it onto the stack. +# +# ### Usage +# +# ~~~ruby +# { a: 1 } +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1296 +class SyntaxTree::YARV::DupHash < ::SyntaxTree::YARV::Instruction + # @return [DupHash] a new instance of DupHash + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1299 + def initialize(object); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1315 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1327 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1311 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1303 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1319 + def length; end + + # Returns the value of attribute object. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1297 + def object; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1323 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1307 + def to_a(_iseq); end +end + +# ### Summary +# +# `dupn` duplicates the top `n` stack elements. +# +# ### Usage +# +# ~~~ruby +# Object::X ||= true +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1342 +class SyntaxTree::YARV::DupN < ::SyntaxTree::YARV::Instruction + # @return [DupN] a new instance of DupN + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1345 + def initialize(number); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1361 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1373 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1357 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1349 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1365 + def length; end + + # Returns the value of attribute number. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1343 + def number; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1369 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1353 + def to_a(_iseq); end +end + +# ### Summary +# +# `expandarray` looks at the top of the stack, and if the value is an array +# it replaces it on the stack with `number` elements of the array, or `nil` +# if the elements are missing. +# +# ### Usage +# +# ~~~ruby +# x, = [true, false, nil] +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1392 +class SyntaxTree::YARV::ExpandArray < ::SyntaxTree::YARV::Instruction + # @return [ExpandArray] a new instance of ExpandArray + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1395 + def initialize(number, flags); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1412 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1429 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1408 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1400 + def disasm(fmt); end + + # Returns the value of attribute flags. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1393 + def flags; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1417 + def length; end + + # Returns the value of attribute number. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1393 + def number; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1421 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1425 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1404 + def to_a(_iseq); end +end + +# ### Summary +# +# `getblockparam` is a similar instruction to `getlocal` in that it looks +# for a local variable in the current instruction sequence's local table and +# walks recursively up the parent instruction sequences until it finds it. +# The local it retrieves, however, is a special block local that was passed +# to the current method. It pushes the value of the block local onto the +# stack. +# +# ### Usage +# +# ~~~ruby +# def foo(&block) +# block +# end +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1486 +class SyntaxTree::YARV::GetBlockParam < ::SyntaxTree::YARV::Instruction + # @return [GetBlockParam] a new instance of GetBlockParam + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1489 + def initialize(index, level); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1508 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1521 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1504 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1494 + def disasm(fmt); end + + # Returns the value of attribute index. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1487 + def index; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1513 + def length; end + + # Returns the value of attribute level. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1487 + def level; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1517 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1498 + def to_a(iseq); end +end + +# ### Summary +# +# `getblockparamproxy` is almost the same as `getblockparam` except that it +# pushes a proxy object onto the stack instead of the actual value of the +# block local. This is used when a method is being called on the block +# local. +# +# ### Usage +# +# ~~~ruby +# def foo(&block) +# block.call +# end +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1541 +class SyntaxTree::YARV::GetBlockParamProxy < ::SyntaxTree::YARV::Instruction + # @return [GetBlockParamProxy] a new instance of GetBlockParamProxy + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1544 + def initialize(index, level); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1566 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1579 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1562 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1549 + def disasm(fmt); end + + # Returns the value of attribute index. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1542 + def index; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1571 + def length; end + + # Returns the value of attribute level. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1542 + def level; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1575 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1556 + def to_a(iseq); end +end + +# ### Summary +# +# `getclassvariable` looks for a class variable in the current class and +# pushes its value onto the stack. It uses an inline cache to reduce the +# need to lookup the class variable in the class hierarchy every time. +# +# ### Usage +# +# ~~~ruby +# @@class_variable +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1596 +class SyntaxTree::YARV::GetClassVariable < ::SyntaxTree::YARV::Instruction + # @return [GetClassVariable] a new instance of GetClassVariable + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1599 + def initialize(name, cache); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1619 + def ==(other); end + + # Returns the value of attribute cache. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1597 + def cache; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1632 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1615 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1604 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1624 + def length; end + + # Returns the value of attribute name. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1597 + def name; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1628 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1611 + def to_a(_iseq); end +end + +# ### Summary +# +# `getconstant` performs a constant lookup and pushes the value of the +# constant onto the stack. It pops both the class it should look in and +# whether or not it should look globally as well. +# +# ### Usage +# +# ~~~ruby +# Constant +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1651 +class SyntaxTree::YARV::GetConstant < ::SyntaxTree::YARV::Instruction + # @return [GetConstant] a new instance of GetConstant + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1654 + def initialize(name); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1670 + def ==(other); end + + # @raise [NameError] + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1686 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1666 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1658 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1674 + def length; end + + # Returns the value of attribute name. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1652 + def name; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1678 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1682 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1662 + def to_a(_iseq); end +end + +# ### Summary +# +# `getglobal` pushes the value of a global variables onto the stack. +# +# ### Usage +# +# ~~~ruby +# $$ +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1717 +class SyntaxTree::YARV::GetGlobal < ::SyntaxTree::YARV::Instruction + # @return [GetGlobal] a new instance of GetGlobal + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1720 + def initialize(name); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1736 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1748 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1732 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1724 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1740 + def length; end + + # Returns the value of attribute name. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1718 + def name; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1744 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1728 + def to_a(_iseq); end +end + +# ### Summary +# +# `getinstancevariable` pushes the value of an instance variable onto the +# stack. It uses an inline cache to avoid having to look up the instance +# variable in the class hierarchy every time. +# +# This instruction has two forms, but both have the same structure. Before +# Ruby 3.2, the inline cache corresponded to both the get and set +# instructions and could be shared. Since Ruby 3.2, it uses object shapes +# instead so the caches are unique per instruction. +# +# ### Usage +# +# ~~~ruby +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1772 +class SyntaxTree::YARV::GetInstanceVariable < ::SyntaxTree::YARV::Instruction + # @return [GetInstanceVariable] a new instance of GetInstanceVariable + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1775 + def initialize(name, cache); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1795 + def ==(other); end + + # Returns the value of attribute cache. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1773 + def cache; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1808 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1791 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1780 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1800 + def length; end + + # Returns the value of attribute name. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1773 + def name; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1804 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1787 + def to_a(_iseq); end +end + +# ### Summary +# +# `getlocal` fetches the value of a local variable from a frame determined +# by the level and index arguments. The level is the number of frames back +# to look and the index is the index in the local table. It pushes the value +# it finds onto the stack. +# +# ### Usage +# +# ~~~ruby +# value = 5 +# tap { tap { value } } +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1828 +class SyntaxTree::YARV::GetLocal < ::SyntaxTree::YARV::Instruction + # @return [GetLocal] a new instance of GetLocal + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1831 + def initialize(index, level); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1850 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1862 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1846 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1836 + def disasm(fmt); end + + # Returns the value of attribute index. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1829 + def index; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1854 + def length; end + + # Returns the value of attribute level. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1829 + def level; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1858 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1840 + def to_a(iseq); end +end + +# ### Summary +# +# `getlocal_WC_0` is a specialized version of the `getlocal` instruction. It +# fetches the value of a local variable from the current frame determined by +# the index given as its only argument. +# +# ### Usage +# +# ~~~ruby +# value = 5 +# value +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1880 +class SyntaxTree::YARV::GetLocalWC0 < ::SyntaxTree::YARV::Instruction + # @return [GetLocalWC0] a new instance of GetLocalWC0 + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1883 + def initialize(index); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1899 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1915 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1911 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1895 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1887 + def disasm(fmt); end + + # Returns the value of attribute index. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1881 + def index; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1903 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1907 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1891 + def to_a(iseq); end +end + +# ### Summary +# +# `getlocal_WC_1` is a specialized version of the `getlocal` instruction. It +# fetches the value of a local variable from the parent frame determined by +# the index given as its only argument. +# +# ### Usage +# +# ~~~ruby +# value = 5 +# self.then { value } +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1933 +class SyntaxTree::YARV::GetLocalWC1 < ::SyntaxTree::YARV::Instruction + # @return [GetLocalWC1] a new instance of GetLocalWC1 + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1936 + def initialize(index); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1952 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1968 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1964 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1948 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1940 + def disasm(fmt); end + + # Returns the value of attribute index. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1934 + def index; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1956 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1960 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1944 + def to_a(iseq); end +end + +# ### Summary +# +# `getspecial` pushes the value of a special local variable onto the stack. +# +# ### Usage +# +# ~~~ruby +# 1 if (a == 1) .. (b == 2) +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1983 +class SyntaxTree::YARV::GetSpecial < ::SyntaxTree::YARV::Instruction + # @return [GetSpecial] a new instance of GetSpecial + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1990 + def initialize(key, type); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2007 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2019 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2003 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1995 + def disasm(fmt); end + + # Returns the value of attribute key. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1988 + def key; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2011 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2015 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1999 + def to_a(_iseq); end + + # Returns the value of attribute type. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1988 + def type; end +end + +# $~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1985 +SyntaxTree::YARV::GetSpecial::SVAR_BACKREF = T.let(T.unsafe(nil), Integer) + +# flipflop +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1986 +SyntaxTree::YARV::GetSpecial::SVAR_FLIPFLOP_START = T.let(T.unsafe(nil), Integer) + +# $_ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#1984 +SyntaxTree::YARV::GetSpecial::SVAR_LASTLINE = T.let(T.unsafe(nil), Integer) + +# This is a base class for all YARV instructions. It provides a few +# convenience methods for working with instructions. +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#7 +class SyntaxTree::YARV::Instruction + # This returns an array of labels. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#33 + def branch_targets; end + + # This method creates an instruction that represents the canonical + # (non-specialized) form of this instruction. If this instruction is not + # a specialized instruction, then this method returns `self`. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#11 + def canonical; end + + # Whether or not this instruction falls through to the next instruction if + # its branching fails. + # + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#44 + def falls_through?; end + + # Whether or not this instruction leaves the current frame. + # + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#38 + def leaves?; end + + # This returns the size of the instruction in terms of the number of slots + # it occupies in the instruction sequence. Effectively this is 1 plus the + # number of operands. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#18 + def length; end + + # This returns the number of values that are popped off the stack. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#28 + def pops; end + + # This returns the number of values that are pushed onto the stack. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#23 + def pushes; end + + # Does the instruction have side effects? Control-flow counts as a + # side-effect, as do some special-case instructions like Leave. By default + # every instruction is marked as having side effects. + # + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#51 + def side_effects?; end +end + +# This class is meant to mirror RubyVM::InstructionSequence. It contains a +# list of instructions along with the metadata pertaining to them. It also +# functions as a builder for the instruction sequence. +# +# source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#9 +class SyntaxTree::YARV::InstructionSequence + # @return [InstructionSequence] a new instance of InstructionSequence + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#168 + def initialize(name, file, line, type, parent_iseq = T.unsafe(nil), options = T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#652 + def adjuststack(number); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#656 + def anytostring; end + + # Returns the value of attribute argument_options. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#143 + def argument_options; end + + # This is the list of information about the arguments to this + # instruction sequence. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#142 + def argument_size; end + + # This is the list of information about the arguments to this + # instruction sequence. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#142 + def argument_size=(_arg0); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#472 + def block_child_iseq(line); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#660 + def branchif(label); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#664 + def branchnil(label); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#668 + def branchunless(label); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#565 + def catch_break(iseq, begin_label, end_label, exit_label, restore_sp); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#575 + def catch_ensure(iseq, begin_label, end_label, exit_label, restore_sp); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#585 + def catch_next(begin_label, end_label, exit_label, restore_sp); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#595 + def catch_redo(begin_label, end_label, exit_label, restore_sp); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#605 + def catch_rescue(iseq, begin_label, end_label, exit_label, restore_sp); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#615 + def catch_retry(begin_label, end_label, exit_label, restore_sp); end + + # The catch table for this instruction sequence. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#146 + def catch_table; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#672 + def checkkeyword(keyword_bits_index, keyword_index); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#676 + def checkmatch(type); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#680 + def checktype(type); end + + # Child instruction sequence methods + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#468 + def child_iseq(name, line, type); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#478 + def class_child_iseq(name, line); end + + # This method converts our linked list of instructions into a final array + # and performs any other compilation steps necessary. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#305 + def compile!; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#684 + def concatarray; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#688 + def concatstrings(number); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#692 + def defineclass(name, class_iseq, flags); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#696 + def defined(type, name, message); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#700 + def definedivar(name, cache, message); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#709 + def definemethod(name, method_iseq); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#713 + def definesmethod(name, method_iseq); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#292 + def disasm; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#717 + def dup; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#721 + def duparray(object); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#725 + def duphash(object); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#729 + def dupn(number); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#232 + def eval; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#648 + def event(name); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#733 + def expandarray(length, flags); end + + # The source location of the instruction sequence. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#132 + def file; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#737 + def getblockparam(index, level); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#741 + def getblockparamproxy(index, level); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#745 + def getclassvariable(name); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#753 + def getconstant(name); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#757 + def getglobal(name); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#761 + def getinstancevariable(name); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#769 + def getlocal(index, level); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#788 + def getspecial(key, type); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#207 + def inline_storage; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#213 + def inline_storage_for(name); end + + # The hash of names of instance and class variables pointing to the + # index of their associated inline storage. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#156 + def inline_storages; end + + # The list of instructions for this instruction sequence. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#149 + def insns; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#299 + def inspect; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#792 + def intern; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#796 + def invokeblock(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#800 + def invokesuper(calldata, block_iseq); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#804 + def jump(label); end + + # Instruction push methods + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#629 + def label; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#808 + def leave; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#219 + def length; end + + # The source location of the instruction sequence. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#132 + def line; end + + # The table of local variables. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#152 + def local_table; end + + # Query methods + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#199 + def local_variable(name, level = T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#482 + def method_child_iseq(name, line); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#486 + def module_child_iseq(name, line); end + + # The name of the instruction sequence. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#129 + def name; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#812 + def newarray(number); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#816 + def newarraykwsplat(number); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#820 + def newhash(number); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#824 + def newrange(exclude_end); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#828 + def nop; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#832 + def objtostring(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#836 + def once(iseq, cache); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#840 + def opt_aref_with(object, calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#844 + def opt_aset_with(object, calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#848 + def opt_case_dispatch(case_dispatch_hash, else_label); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#852 + def opt_getconstant_path(names); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#888 + def opt_getinlinecache(label, cache); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#892 + def opt_setinlinecache(cache); end + + # These are various compilation options provided. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#166 + def options; end + + # The parent instruction sequence, if there is one. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#138 + def parent_iseq; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#896 + def pop; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#633 + def push(value); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#900 + def putnil; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#904 + def putobject(object); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#922 + def putself; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#926 + def putspecialobject(object); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#930 + def putstring(object); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#934 + def send(calldata, block_iseq = T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#938 + def setblockparam(index, level); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#942 + def setclassvariable(name); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#950 + def setconstant(name); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#954 + def setglobal(name); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#958 + def setinstancevariable(name); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#966 + def setlocal(index, level); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#985 + def setn(number); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#989 + def setspecial(key); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#490 + def singleton_class_child_iseq(line); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#341 + def specialize_instructions!; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#993 + def splatarray(flag); end + + # An object that will track the current size of the stack and the + # maximum size of the stack for this instruction sequence. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#163 + def stack; end + + # The index of the next inline storage that will be created. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#159 + def storage_index; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#997 + def swap; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#1001 + def throw(type); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#236 + def to_a; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#280 + def to_cfg; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#284 + def to_dfg; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#288 + def to_son; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#1005 + def topn(number); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#1009 + def toregexp(options, length); end + + # The type of the instruction sequence. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#135 + def type; end + + class << self + # This method will create a new instruction sequence from a serialized + # RubyVM::InstructionSequence object. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#1015 + def from(source, options = T.unsafe(nil), parent_iseq = T.unsafe(nil)); end + + # This provides a handle to the rb_iseq_load function, which allows you + # to pass a serialized iseq to Ruby and have it return a + # RubyVM::InstructionSequence object. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#13 + def iseq_load(iseq); end + end +end + +# source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#510 +class SyntaxTree::YARV::InstructionSequence::CatchBreak < ::SyntaxTree::YARV::InstructionSequence::CatchEntry + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#511 + def to_a; end +end + +# source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#523 +class SyntaxTree::YARV::InstructionSequence::CatchEnsure < ::SyntaxTree::YARV::InstructionSequence::CatchEntry + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#524 + def to_a; end +end + +# Catch table methods +# +# source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#498 +class SyntaxTree::YARV::InstructionSequence::CatchEntry + # @return [CatchEntry] a new instance of CatchEntry + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#501 + def initialize(iseq, begin_label, end_label, exit_label, restore_sp); end + + # Returns the value of attribute begin_label. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#499 + def begin_label; end + + # Returns the value of attribute end_label. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#499 + def end_label; end + + # Returns the value of attribute exit_label. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#499 + def exit_label; end + + # Returns the value of attribute iseq. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#499 + def iseq; end + + # Returns the value of attribute restore_sp. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#499 + def restore_sp; end +end + +# source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#535 +class SyntaxTree::YARV::InstructionSequence::CatchNext < ::SyntaxTree::YARV::InstructionSequence::CatchEntry + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#536 + def to_a; end +end + +# source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#541 +class SyntaxTree::YARV::InstructionSequence::CatchRedo < ::SyntaxTree::YARV::InstructionSequence::CatchEntry + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#542 + def to_a; end +end + +# source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#547 +class SyntaxTree::YARV::InstructionSequence::CatchRescue < ::SyntaxTree::YARV::InstructionSequence::CatchEntry + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#548 + def to_a; end +end + +# source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#559 +class SyntaxTree::YARV::InstructionSequence::CatchRetry < ::SyntaxTree::YARV::InstructionSequence::CatchEntry + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#560 + def to_a; end +end + +# When the list of instructions is first being created, it's stored as a +# linked list. This is to make it easier to perform peephole optimizations +# and other transformations like instruction specialization. +# +# source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#35 +class SyntaxTree::YARV::InstructionSequence::InstructionList + include ::Enumerable + + # @return [InstructionList] a new instance of InstructionList + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#48 + def initialize; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#53 + def each(&_blk); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#58 + def each_node; end + + # Returns the value of attribute head_node. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#46 + def head_node; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#68 + def push(instruction); end + + # Returns the value of attribute tail_node. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#46 + def tail_node; end +end + +# source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#36 +class SyntaxTree::YARV::InstructionSequence::InstructionList::Node + # @return [Node] a new instance of Node + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#39 + def initialize(value, next_node = T.unsafe(nil)); end + + # Returns the value of attribute next_node. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#37 + def next_node; end + + # Sets the attribute next_node + # + # @param value the value to set the attribute next_node to. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#37 + def next_node=(_arg0); end + + # Returns the value of attribute value. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#37 + def value; end + + # Sets the attribute value + # + # @param value the value to set the attribute value to. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#37 + def value=(_arg0); end +end + +# This represents the destination of instructions that jump. Initially it +# does not track its position so that when we perform optimizations the +# indices don't get messed up. +# +# source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#107 +class SyntaxTree::YARV::InstructionSequence::Label + # @return [Label] a new instance of Label + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#115 + def initialize(name = T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#123 + def inspect; end + + # Returns the value of attribute name. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#108 + def name; end + + # When we're serializing the instruction sequence, we need to be able to + # look up the label from the branch instructions and then access the + # subsequent node. So we'll store the reference here. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#113 + def node; end + + # When we're serializing the instruction sequence, we need to be able to + # look up the label from the branch instructions and then access the + # subsequent node. So we'll store the reference here. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#113 + def node=(_arg0); end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#119 + def patch!(name); end +end + +# source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#83 +SyntaxTree::YARV::InstructionSequence::MAGIC = T.let(T.unsafe(nil), String) + +# This object is used to track the size of the stack at any given time. It +# is effectively a mini symbolic interpreter. It's necessary because when +# instruction sequences get serialized they include a :stack_max field on +# them. This field is used to determine how much stack space to allocate +# for the instruction sequence. +# +# source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#90 +class SyntaxTree::YARV::InstructionSequence::Stack + # @return [Stack] a new instance of Stack + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#93 + def initialize; end + + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#98 + def change_by(value); end + + # Returns the value of attribute current_size. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#91 + def current_size; end + + # Returns the value of attribute maximum_size. + # + # source://syntax_tree//lib/syntax_tree/yarv/instruction_sequence.rb#91 + def maximum_size; end +end + +# ### Summary +# +# `intern` converts the top element of the stack to a symbol and pushes the +# symbol onto the stack. +# +# ### Usage +# +# ~~~ruby +# :"#{"foo"}" +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2042 +class SyntaxTree::YARV::Intern < ::SyntaxTree::YARV::Instruction + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2055 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2067 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2051 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2043 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2059 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2063 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2047 + def to_a(_iseq); end +end + +# ### Summary +# +# `invokeblock` invokes the block given to the current method. It pops the +# arguments for the block off the stack and pushes the result of running the +# block onto the stack. +# +# ### Usage +# +# ~~~ruby +# def foo +# yield +# end +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2086 +class SyntaxTree::YARV::InvokeBlock < ::SyntaxTree::YARV::Instruction + # @return [InvokeBlock] a new instance of InvokeBlock + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2089 + def initialize(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2105 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2121 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2087 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2101 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2093 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2109 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2113 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2117 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2097 + def to_a(_iseq); end +end + +# ### Summary +# +# `invokesuper` is similar to the `send` instruction, except that it calls +# the super method. It pops the receiver and arguments off the stack and +# pushes the return value onto the stack. +# +# ### Usage +# +# ~~~ruby +# def foo +# super +# end +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2140 +class SyntaxTree::YARV::InvokeSuper < ::SyntaxTree::YARV::Instruction + # @return [InvokeSuper] a new instance of InvokeSuper + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2143 + def initialize(calldata, block_iseq); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2164 + def ==(other); end + + # Returns the value of attribute block_iseq. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2141 + def block_iseq; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2178 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2141 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2160 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2148 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2169 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2174 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2156 + def to_a(_iseq); end +end + +# ### Summary +# +# `jump` unconditionally jumps to the label given as its only argument. +# +# ### Usage +# +# ~~~ruby +# x = 0 +# if x == 0 +# puts "0" +# else +# puts "2" +# end +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2217 +class SyntaxTree::YARV::Jump < ::SyntaxTree::YARV::Instruction + # @return [Jump] a new instance of Jump + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2220 + def initialize(label); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2236 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2248 + def branch_targets; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2244 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2232 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2224 + def disasm(fmt); end + + # Returns the value of attribute label. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2218 + def label; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2240 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2228 + def to_a(_iseq); end +end + +# ### Summary +# +# `leave` exits the current frame. +# +# ### Usage +# +# ~~~ruby +# ;; +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2263 +class SyntaxTree::YARV::Leave < ::SyntaxTree::YARV::Instruction + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2276 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2290 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2272 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2264 + def disasm(fmt); end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2294 + def leaves?; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2280 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2284 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2268 + def to_a(_iseq); end +end + +# This module contains the instructions that used to be a part of YARV but +# have been replaced or removed in more recent versions. +# +# source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#7 +module SyntaxTree::YARV::Legacy; end + +# ### Summary +# +# `getclassvariable` looks for a class variable in the current class and +# pushes its value onto the stack. +# +# This version of the `getclassvariable` instruction is no longer used +# since in Ruby 3.0 it gained an inline cache.` +# +# ### Usage +# +# ~~~ruby +# @@class_variable +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#22 +class SyntaxTree::YARV::Legacy::GetClassVariable < ::SyntaxTree::YARV::Instruction + # @return [GetClassVariable] a new instance of GetClassVariable + # + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#25 + def initialize(name); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#41 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#57 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#53 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#37 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#29 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#45 + def length; end + + # Returns the value of attribute name. + # + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#23 + def name; end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#49 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#33 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_getinlinecache` is a wrapper around a series of `putobject` and +# `getconstant` instructions that allows skipping past them if the inline +# cache is currently set. It pushes the value of the cache onto the stack +# if it is set, otherwise it pushes `nil`. +# +# This instruction is no longer used since in Ruby 3.2 it was replaced by +# the consolidated `opt_getconstant_path` instruction. +# +# ### Usage +# +# ~~~ruby +# Constant +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#78 +class SyntaxTree::YARV::Legacy::OptGetInlineCache < ::SyntaxTree::YARV::Instruction + # @return [OptGetInlineCache] a new instance of OptGetInlineCache + # + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#81 + def initialize(label, cache); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#101 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#118 + def branch_targets; end + + # Returns the value of attribute cache. + # + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#79 + def cache; end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#114 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#97 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#86 + def disasm(fmt); end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#122 + def falls_through?; end + + # Returns the value of attribute label. + # + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#79 + def label; end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#106 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#110 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#93 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_newarray_max` is a specialization that occurs when the `max` method +# is called on an array literal. It pops the values of the array off the +# stack and pushes on the result. +# +# ### Usage +# +# ~~~ruby +# [a, b, c].max +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#139 +class SyntaxTree::YARV::Legacy::OptNewArrayMax < ::SyntaxTree::YARV::Instruction + # @return [OptNewArrayMax] a new instance of OptNewArrayMax + # + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#142 + def initialize(number); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#158 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#174 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#154 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#146 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#162 + def length; end + + # Returns the value of attribute number. + # + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#140 + def number; end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#166 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#170 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#150 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_newarray_min` is a specialization that occurs when the `min` method +# is called on an array literal. It pops the values of the array off the +# stack and pushes on the result. +# +# ### Usage +# +# ~~~ruby +# [a, b, c].min +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#191 +class SyntaxTree::YARV::Legacy::OptNewArrayMin < ::SyntaxTree::YARV::Instruction + # @return [OptNewArrayMin] a new instance of OptNewArrayMin + # + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#194 + def initialize(number); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#210 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#226 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#206 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#198 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#214 + def length; end + + # Returns the value of attribute number. + # + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#192 + def number; end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#218 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#222 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#202 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_setinlinecache` sets an inline cache for a constant lookup. It pops +# the value it should set off the top of the stack. It uses this value to +# set the cache. It then pushes that value back onto the top of the stack. +# +# This instruction is no longer used since in Ruby 3.2 it was replaced by +# the consolidated `opt_getconstant_path` instruction. +# +# ### Usage +# +# ~~~ruby +# Constant +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#246 +class SyntaxTree::YARV::Legacy::OptSetInlineCache < ::SyntaxTree::YARV::Instruction + # @return [OptSetInlineCache] a new instance of OptSetInlineCache + # + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#249 + def initialize(cache); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#265 + def ==(other); end + + # Returns the value of attribute cache. + # + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#247 + def cache; end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#281 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#261 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#253 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#269 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#273 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#277 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#257 + def to_a(_iseq); end +end + +# ### Summary +# +# `setclassvariable` looks for a class variable in the current class and +# sets its value to the value it pops off the top of the stack. +# +# This version of the `setclassvariable` instruction is no longer used +# since in Ruby 3.0 it gained an inline cache. +# +# ### Usage +# +# ~~~ruby +# @@class_variable = 1 +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#299 +class SyntaxTree::YARV::Legacy::SetClassVariable < ::SyntaxTree::YARV::Instruction + # @return [SetClassVariable] a new instance of SetClassVariable + # + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#302 + def initialize(name); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#318 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#334 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#330 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#314 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#306 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#322 + def length; end + + # Returns the value of attribute name. + # + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#300 + def name; end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#326 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/legacy.rb#310 + def to_a(_iseq); end +end + +# This represents every local variable associated with an instruction +# sequence. There are two kinds of locals: plain locals that are what you +# expect, and block proxy locals, which represent local variables +# associated with blocks that were passed into the current instruction +# sequence. +# +# source://syntax_tree//lib/syntax_tree/yarv/local_table.rb#10 +class SyntaxTree::YARV::LocalTable + # @return [LocalTable] a new instance of LocalTable + # + # source://syntax_tree//lib/syntax_tree/yarv/local_table.rb#43 + def initialize; end + + # Add a BlockLocal to the local table. + # + # source://syntax_tree//lib/syntax_tree/yarv/local_table.rb#73 + def block(name); end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/local_table.rb#47 + def empty?; end + + # source://syntax_tree//lib/syntax_tree/yarv/local_table.rb#51 + def find(name, level = T.unsafe(nil)); end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/local_table.rb#56 + def has?(name); end + + # Returns the value of attribute locals. + # + # source://syntax_tree//lib/syntax_tree/yarv/local_table.rb#41 + def locals; end + + # source://syntax_tree//lib/syntax_tree/yarv/local_table.rb#64 + def name_at(index); end + + # source://syntax_tree//lib/syntax_tree/yarv/local_table.rb#60 + def names; end + + # This is the offset from the top of the stack where this local variable + # lives. + # + # source://syntax_tree//lib/syntax_tree/yarv/local_table.rb#84 + def offset(index); end + + # Add a PlainLocal to the local table. + # + # source://syntax_tree//lib/syntax_tree/yarv/local_table.rb#78 + def plain(name); end + + # source://syntax_tree//lib/syntax_tree/yarv/local_table.rb#68 + def size; end +end + +# A local representing a block passed into the current instruction +# sequence. +# +# source://syntax_tree//lib/syntax_tree/yarv/local_table.rb#13 +class SyntaxTree::YARV::LocalTable::BlockLocal + # @return [BlockLocal] a new instance of BlockLocal + # + # source://syntax_tree//lib/syntax_tree/yarv/local_table.rb#16 + def initialize(name); end + + # Returns the value of attribute name. + # + # source://syntax_tree//lib/syntax_tree/yarv/local_table.rb#14 + def name; end +end + +# The result of looking up a local variable in the current local table. +# +# source://syntax_tree//lib/syntax_tree/yarv/local_table.rb#31 +class SyntaxTree::YARV::LocalTable::Lookup + # @return [Lookup] a new instance of Lookup + # + # source://syntax_tree//lib/syntax_tree/yarv/local_table.rb#34 + def initialize(local, index, level); end + + # Returns the value of attribute index. + # + # source://syntax_tree//lib/syntax_tree/yarv/local_table.rb#32 + def index; end + + # Returns the value of attribute level. + # + # source://syntax_tree//lib/syntax_tree/yarv/local_table.rb#32 + def level; end + + # Returns the value of attribute local. + # + # source://syntax_tree//lib/syntax_tree/yarv/local_table.rb#32 + def local; end +end + +# A regular local variable. +# +# source://syntax_tree//lib/syntax_tree/yarv/local_table.rb#22 +class SyntaxTree::YARV::LocalTable::PlainLocal + # @return [PlainLocal] a new instance of PlainLocal + # + # source://syntax_tree//lib/syntax_tree/yarv/local_table.rb#25 + def initialize(name); end + + # Returns the value of attribute name. + # + # source://syntax_tree//lib/syntax_tree/yarv/local_table.rb#23 + def name; end +end + +# ### Summary +# +# `newarray` puts a new array initialized with `number` values from the +# stack. It pops `number` values off the stack and pushes the array onto the +# stack. +# +# ### Usage +# +# ~~~ruby +# ["string"] +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2311 +class SyntaxTree::YARV::NewArray < ::SyntaxTree::YARV::Instruction + # @return [NewArray] a new instance of NewArray + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2314 + def initialize(number); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2330 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2346 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2326 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2318 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2334 + def length; end + + # Returns the value of attribute number. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2312 + def number; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2338 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2342 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2322 + def to_a(_iseq); end +end + +# ### Summary +# +# `newarraykwsplat` is a specialized version of `newarray` that takes a ** +# splat argument. It pops `number` values off the stack and pushes the array +# onto the stack. +# +# ### Usage +# +# ~~~ruby +# ["string", **{ foo: "bar" }] +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2363 +class SyntaxTree::YARV::NewArrayKwSplat < ::SyntaxTree::YARV::Instruction + # @return [NewArrayKwSplat] a new instance of NewArrayKwSplat + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2366 + def initialize(number); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2382 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2398 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2378 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2370 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2386 + def length; end + + # Returns the value of attribute number. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2364 + def number; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2390 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2394 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2374 + def to_a(_iseq); end +end + +# ### Summary +# +# `newhash` puts a new hash onto the stack, using `number` elements from the +# stack. `number` needs to be even. It pops `number` elements off the stack +# and pushes a hash onto the stack. +# +# ### Usage +# +# ~~~ruby +# def foo(key, value) +# { key => value } +# end +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2417 +class SyntaxTree::YARV::NewHash < ::SyntaxTree::YARV::Instruction + # @return [NewHash] a new instance of NewHash + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2420 + def initialize(number); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2436 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2452 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2432 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2424 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2440 + def length; end + + # Returns the value of attribute number. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2418 + def number; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2444 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2448 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2428 + def to_a(_iseq); end +end + +# ### Summary +# +# `newrange` creates a new range object from the top two values on the +# stack. It pops both of them off, and then pushes on the new range. It +# takes one argument which is 0 if the end is included or 1 if the end value +# is excluded. +# +# ### Usage +# +# ~~~ruby +# x = 0 +# y = 1 +# p (x..y), (x...y) +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2472 +class SyntaxTree::YARV::NewRange < ::SyntaxTree::YARV::Instruction + # @return [NewRange] a new instance of NewRange + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2475 + def initialize(exclude_end); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2491 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2507 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2487 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2479 + def disasm(fmt); end + + # Returns the value of attribute exclude_end. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2473 + def exclude_end; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2495 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2499 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2503 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2483 + def to_a(_iseq); end +end + +# ### Summary +# +# `nop` is a no-operation instruction. It is used to pad the instruction +# sequence so there is a place for other instructions to jump to. +# +# ### Usage +# +# ~~~ruby +# raise rescue true +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2523 +class SyntaxTree::YARV::Nop < ::SyntaxTree::YARV::Instruction + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2536 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2540 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2532 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2524 + def disasm(fmt); end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2543 + def side_effects?; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2528 + def to_a(_iseq); end +end + +# ### Summary +# +# `objtostring` pops a value from the stack, calls `to_s` on that value and +# then pushes the result back to the stack. +# +# It has various fast paths for classes like String, Symbol, Module, Class, +# etc. For everything else it calls `to_s`. +# +# ### Usage +# +# ~~~ruby +# "#{5}" +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2562 +class SyntaxTree::YARV::ObjToString < ::SyntaxTree::YARV::Instruction + # @return [ObjToString] a new instance of ObjToString + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2565 + def initialize(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2581 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2597 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2563 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2577 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2569 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2585 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2589 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2593 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2573 + def to_a(_iseq); end +end + +# ### Summary +# +# `once` is an instruction that wraps an instruction sequence and ensures +# that is it only ever executed once for the lifetime of the program. It +# uses a cache to ensure that it is only executed once. It pushes the result +# of running the instruction sequence onto the stack. +# +# ### Usage +# +# ~~~ruby +# END { puts "END" } +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2615 +class SyntaxTree::YARV::Once < ::SyntaxTree::YARV::Instruction + # @return [Once] a new instance of Once + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2618 + def initialize(iseq, cache); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2636 + def ==(other); end + + # Returns the value of attribute cache. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2616 + def cache; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2648 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2632 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2623 + def disasm(fmt); end + + # Returns the value of attribute iseq. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2616 + def iseq; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2640 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2644 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2628 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_and` is a specialization of the `opt_send_without_block` instruction +# that occurs when the `&` operator is used. There is a fast path for if +# both operands are integers. It pops both the receiver and the argument off +# the stack and pushes on the result. +# +# ### Usage +# +# ~~~ruby +# 2 & 3 +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2668 +class SyntaxTree::YARV::OptAnd < ::SyntaxTree::YARV::Instruction + # @return [OptAnd] a new instance of OptAnd + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2671 + def initialize(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2687 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2707 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2669 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2703 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2683 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2675 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2691 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2695 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2699 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2679 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_aref` is a specialization of the `opt_send_without_block` instruction +# that occurs when the `[]` operator is used. There are fast paths if the +# receiver is an integer, array, or hash. +# +# ### Usage +# +# ~~~ruby +# 7[2] +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2724 +class SyntaxTree::YARV::OptAref < ::SyntaxTree::YARV::Instruction + # @return [OptAref] a new instance of OptAref + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2727 + def initialize(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2743 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2763 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2725 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2759 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2739 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2731 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2747 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2751 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2755 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2735 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_aref_with` is a specialization of the `opt_aref` instruction that +# occurs when the `[]` operator is used with a string argument known at +# compile time. There are fast paths if the receiver is a hash. It pops the +# receiver off the stack and pushes on the result. +# +# ### Usage +# +# ~~~ruby +# { 'test' => true }['test'] +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2781 +class SyntaxTree::YARV::OptArefWith < ::SyntaxTree::YARV::Instruction + # @return [OptArefWith] a new instance of OptArefWith + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2784 + def initialize(object, calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2804 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2821 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2782 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2800 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2789 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2809 + def length; end + + # Returns the value of attribute object. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2782 + def object; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2813 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2817 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2796 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_aset` is an instruction for setting the hash value by the key in +# the `recv[obj] = set` format. It is a specialization of the +# `opt_send_without_block` instruction. It pops the receiver, the key, and +# the value off the stack and pushes on the result. +# +# ### Usage +# +# ~~~ruby +# {}[:key] = value +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2839 +class SyntaxTree::YARV::OptAset < ::SyntaxTree::YARV::Instruction + # @return [OptAset] a new instance of OptAset + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2842 + def initialize(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2858 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2878 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2840 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2874 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2854 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2846 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2862 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2866 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2870 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2850 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_aset_with` is an instruction for setting the hash value by the known +# string key in the `recv[obj] = set` format. It pops the receiver and the +# value off the stack and pushes on the result. +# +# ### Usage +# +# ~~~ruby +# {}["key"] = value +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2895 +class SyntaxTree::YARV::OptAsetWith < ::SyntaxTree::YARV::Instruction + # @return [OptAsetWith] a new instance of OptAsetWith + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2898 + def initialize(object, calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2918 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2935 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2896 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2914 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2903 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2923 + def length; end + + # Returns the value of attribute object. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2896 + def object; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2927 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2931 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2910 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_case_dispatch` is a branch instruction that moves the control flow +# for case statements that have clauses where they can all be used as hash +# keys for an internal hash. +# +# It has two arguments: the `case_dispatch_hash` and an `else_label`. It +# pops one value off the stack: a hash key. `opt_case_dispatch` looks up the +# key in the `case_dispatch_hash` and jumps to the corresponding label if +# there is one. If there is no value in the `case_dispatch_hash`, +# `opt_case_dispatch` jumps to the `else_label` index. +# +# ### Usage +# +# ~~~ruby +# case 1 +# when 1 +# puts "foo" +# else +# puts "bar" +# end +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2964 +class SyntaxTree::YARV::OptCaseDispatch < ::SyntaxTree::YARV::Instruction + # @return [OptCaseDispatch] a new instance of OptCaseDispatch + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2967 + def initialize(case_dispatch_hash, else_label); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2991 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3009 + def branch_targets; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3005 + def call(vm); end + + # Returns the value of attribute case_dispatch_hash. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2965 + def case_dispatch_hash; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2987 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2972 + def disasm(fmt); end + + # Returns the value of attribute else_label. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2965 + def else_label; end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3013 + def falls_through?; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2997 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3001 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#2979 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_div` is a specialization of the `opt_send_without_block` instruction +# that occurs when the `/` operator is used. There are fast paths for if +# both operands are integers, or if both operands are floats. It pops both +# the receiver and the argument off the stack and pushes on the result. +# +# ### Usage +# +# ~~~ruby +# 2 / 3 +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3031 +class SyntaxTree::YARV::OptDiv < ::SyntaxTree::YARV::Instruction + # @return [OptDiv] a new instance of OptDiv + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3034 + def initialize(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3050 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3070 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3032 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3066 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3046 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3038 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3054 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3058 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3062 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3042 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_empty_p` is an optimization applied when the method `empty?` is +# called. It pops the receiver off the stack and pushes on the result of the +# method call. +# +# ### Usage +# +# ~~~ruby +# "".empty? +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3087 +class SyntaxTree::YARV::OptEmptyP < ::SyntaxTree::YARV::Instruction + # @return [OptEmptyP] a new instance of OptEmptyP + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3090 + def initialize(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3106 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3126 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3088 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3122 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3102 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3094 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3110 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3114 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3118 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3098 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_eq` is a specialization of the `opt_send_without_block` instruction +# that occurs when the == operator is used. Fast paths exist when both +# operands are integers, floats, symbols or strings. It pops both the +# receiver and the argument off the stack and pushes on the result. +# +# ### Usage +# +# ~~~ruby +# 2 == 2 +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3144 +class SyntaxTree::YARV::OptEq < ::SyntaxTree::YARV::Instruction + # @return [OptEq] a new instance of OptEq + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3147 + def initialize(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3163 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3183 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3145 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3179 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3159 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3151 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3167 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3171 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3175 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3155 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_ge` is a specialization of the `opt_send_without_block` instruction +# that occurs when the >= operator is used. Fast paths exist when both +# operands are integers or floats. It pops both the receiver and the +# argument off the stack and pushes on the result. +# +# ### Usage +# +# ~~~ruby +# 4 >= 3 +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3201 +class SyntaxTree::YARV::OptGE < ::SyntaxTree::YARV::Instruction + # @return [OptGE] a new instance of OptGE + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3204 + def initialize(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3220 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3240 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3202 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3236 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3216 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3208 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3224 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3228 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3232 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3212 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_gt` is a specialization of the `opt_send_without_block` instruction +# that occurs when the > operator is used. Fast paths exist when both +# operands are integers or floats. It pops both the receiver and the +# argument off the stack and pushes on the result. +# +# ### Usage +# +# ~~~ruby +# 4 > 3 +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3314 +class SyntaxTree::YARV::OptGT < ::SyntaxTree::YARV::Instruction + # @return [OptGT] a new instance of OptGT + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3317 + def initialize(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3333 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3353 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3315 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3349 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3329 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3321 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3337 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3341 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3345 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3325 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_getconstant_path` performs a constant lookup on a chain of constant +# names. It accepts as its argument an array of constant names, and pushes +# the value of the constant onto the stack. +# +# ### Usage +# +# ~~~ruby +# ::Object +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3257 +class SyntaxTree::YARV::OptGetConstantPath < ::SyntaxTree::YARV::Instruction + # @return [OptGetConstantPath] a new instance of OptGetConstantPath + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3260 + def initialize(names); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3277 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3289 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3273 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3264 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3281 + def length; end + + # Returns the value of attribute names. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3258 + def names; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3285 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3269 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_le` is a specialization of the `opt_send_without_block` instruction +# that occurs when the <= operator is used. Fast paths exist when both +# operands are integers or floats. It pops both the receiver and the +# argument off the stack and pushes on the result. +# +# ### Usage +# +# ~~~ruby +# 3 <= 4 +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3371 +class SyntaxTree::YARV::OptLE < ::SyntaxTree::YARV::Instruction + # @return [OptLE] a new instance of OptLE + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3374 + def initialize(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3390 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3410 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3372 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3406 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3386 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3378 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3394 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3398 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3402 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3382 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_lt` is a specialization of the `opt_send_without_block` instruction +# that occurs when the < operator is used. Fast paths exist when both +# operands are integers or floats. It pops both the receiver and the +# argument off the stack and pushes on the result. +# +# ### Usage +# +# ~~~ruby +# 3 < 4 +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3485 +class SyntaxTree::YARV::OptLT < ::SyntaxTree::YARV::Instruction + # @return [OptLT] a new instance of OptLT + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3488 + def initialize(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3504 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3524 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3486 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3520 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3500 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3492 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3508 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3512 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3516 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3496 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_ltlt` is a specialization of the `opt_send_without_block` instruction +# that occurs when the `<<` operator is used. Fast paths exists when the +# receiver is either a String or an Array. It pops both the receiver and the +# argument off the stack and pushes on the result. +# +# ### Usage +# +# ~~~ruby +# "" << 2 +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3542 +class SyntaxTree::YARV::OptLTLT < ::SyntaxTree::YARV::Instruction + # @return [OptLTLT] a new instance of OptLTLT + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3545 + def initialize(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3561 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3581 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3543 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3577 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3557 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3549 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3565 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3569 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3573 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3553 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_length` is a specialization of `opt_send_without_block`, when the +# `length` method is called. There are fast paths when the receiver is +# either a string, hash, or array. It pops the receiver off the stack and +# pushes on the result of the method call. +# +# ### Usage +# +# ~~~ruby +# "".length +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3428 +class SyntaxTree::YARV::OptLength < ::SyntaxTree::YARV::Instruction + # @return [OptLength] a new instance of OptLength + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3431 + def initialize(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3447 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3467 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3429 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3463 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3443 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3435 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3451 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3455 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3459 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3439 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_minus` is a specialization of the `opt_send_without_block` +# instruction that occurs when the `-` operator is used. There are fast +# paths for if both operands are integers or if both operands are floats. It +# pops both the receiver and the argument off the stack and pushes on the +# result. +# +# ### Usage +# +# ~~~ruby +# 3 - 2 +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3600 +class SyntaxTree::YARV::OptMinus < ::SyntaxTree::YARV::Instruction + # @return [OptMinus] a new instance of OptMinus + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3603 + def initialize(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3619 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3639 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3601 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3635 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3615 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3607 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3623 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3627 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3631 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3611 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_mod` is a specialization of the `opt_send_without_block` instruction +# that occurs when the `%` operator is used. There are fast paths for if +# both operands are integers or if both operands are floats. It pops both +# the receiver and the argument off the stack and pushes on the result. +# +# ### Usage +# +# ~~~ruby +# 4 % 2 +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3657 +class SyntaxTree::YARV::OptMod < ::SyntaxTree::YARV::Instruction + # @return [OptMod] a new instance of OptMod + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3660 + def initialize(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3676 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3696 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3658 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3692 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3672 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3664 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3680 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3684 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3688 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3668 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_mult` is a specialization of the `opt_send_without_block` instruction +# that occurs when the `*` operator is used. There are fast paths for if +# both operands are integers or floats. It pops both the receiver and the +# argument off the stack and pushes on the result. +# +# ### Usage +# +# ~~~ruby +# 3 * 2 +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3714 +class SyntaxTree::YARV::OptMult < ::SyntaxTree::YARV::Instruction + # @return [OptMult] a new instance of OptMult + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3717 + def initialize(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3733 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3753 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3715 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3749 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3729 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3721 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3737 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3741 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3745 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3725 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_neq` is an optimization that tests whether two values at the top of +# the stack are not equal by testing their equality and calling the `!` on +# the result. This allows `opt_neq` to use the fast paths optimized in +# `opt_eq` when both operands are Integers, Floats, Symbols, or Strings. It +# pops both the receiver and the argument off the stack and pushes on the +# result. +# +# ### Usage +# +# ~~~ruby +# 2 != 2 +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3773 +class SyntaxTree::YARV::OptNEq < ::SyntaxTree::YARV::Instruction + # @return [OptNEq] a new instance of OptNEq + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3776 + def initialize(eq_calldata, neq_calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3796 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3813 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3792 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3781 + def disasm(fmt); end + + # Returns the value of attribute eq_calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3774 + def eq_calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3801 + def length; end + + # Returns the value of attribute neq_calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3774 + def neq_calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3805 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3809 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3788 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_newarray_send` is a specialization that occurs when a dynamic array +# literal is created and immediately sent the `min`, `max`, or `hash` +# methods. It pops the values of the array off the stack and pushes on the +# result of the method call. +# +# ### Usage +# +# ~~~ruby +# [a, b, c].max +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3832 +class SyntaxTree::YARV::OptNewArraySend < ::SyntaxTree::YARV::Instruction + # @return [OptNewArraySend] a new instance of OptNewArraySend + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3835 + def initialize(number, method); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3855 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3872 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3851 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3840 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3860 + def length; end + + # Returns the value of attribute method. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3833 + def method; end + + # Returns the value of attribute number. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3833 + def number; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3864 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3868 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3847 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_nil_p` is an optimization applied when the method `nil?` is called. +# It returns true immediately when the receiver is `nil` and defers to the +# `nil?` method in other cases. It pops the receiver off the stack and +# pushes on the result. +# +# ### Usage +# +# ~~~ruby +# "".nil? +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3890 +class SyntaxTree::YARV::OptNilP < ::SyntaxTree::YARV::Instruction + # @return [OptNilP] a new instance of OptNilP + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3893 + def initialize(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3909 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3929 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3891 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3925 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3905 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3897 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3913 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3917 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3921 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3901 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_not` negates the value on top of the stack by calling the `!` method +# on it. It pops the receiver off the stack and pushes on the result. +# +# ### Usage +# +# ~~~ruby +# !true +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3945 +class SyntaxTree::YARV::OptNot < ::SyntaxTree::YARV::Instruction + # @return [OptNot] a new instance of OptNot + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3948 + def initialize(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3964 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3984 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3946 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3980 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3960 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3952 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3968 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3972 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3976 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#3956 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_or` is a specialization of the `opt_send_without_block` instruction +# that occurs when the `|` operator is used. There is a fast path for if +# both operands are integers. It pops both the receiver and the argument off +# the stack and pushes on the result. +# +# ### Usage +# +# ~~~ruby +# 2 | 3 +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4002 +class SyntaxTree::YARV::OptOr < ::SyntaxTree::YARV::Instruction + # @return [OptOr] a new instance of OptOr + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4005 + def initialize(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4021 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4041 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4003 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4037 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4017 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4009 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4025 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4029 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4033 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4013 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_plus` is a specialization of the `opt_send_without_block` instruction +# that occurs when the `+` operator is used. There are fast paths for if +# both operands are integers, floats, strings, or arrays. It pops both the +# receiver and the argument off the stack and pushes on the result. +# +# ### Usage +# +# ~~~ruby +# 2 + 3 +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4059 +class SyntaxTree::YARV::OptPlus < ::SyntaxTree::YARV::Instruction + # @return [OptPlus] a new instance of OptPlus + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4062 + def initialize(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4078 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4098 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4060 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4094 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4074 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4066 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4082 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4086 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4090 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4070 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_regexpmatch2` is a specialization of the `opt_send_without_block` +# instruction that occurs when the `=~` operator is used. It pops both the +# receiver and the argument off the stack and pushes on the result. +# +# ### Usage +# +# ~~~ruby +# /a/ =~ "a" +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4115 +class SyntaxTree::YARV::OptRegExpMatch2 < ::SyntaxTree::YARV::Instruction + # @return [OptRegExpMatch2] a new instance of OptRegExpMatch2 + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4118 + def initialize(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4134 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4154 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4116 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4150 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4130 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4122 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4138 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4142 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4146 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4126 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_send_without_block` is a specialization of the send instruction that +# occurs when a method is being called without a block. It pops the receiver +# and the arguments off the stack and pushes on the result. +# +# ### Usage +# +# ~~~ruby +# puts "Hello, world!" +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4171 +class SyntaxTree::YARV::OptSendWithoutBlock < ::SyntaxTree::YARV::Instruction + # @return [OptSendWithoutBlock] a new instance of OptSendWithoutBlock + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4174 + def initialize(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4190 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4210 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4172 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4206 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4186 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4178 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4194 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4198 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4202 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4182 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_size` is a specialization of `opt_send_without_block`, when the +# `size` method is called. There are fast paths when the receiver is either +# a string, hash, or array. It pops the receiver off the stack and pushes on +# the result. +# +# ### Usage +# +# ~~~ruby +# "".size +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4228 +class SyntaxTree::YARV::OptSize < ::SyntaxTree::YARV::Instruction + # @return [OptSize] a new instance of OptSize + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4231 + def initialize(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4247 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4267 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4229 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4263 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4243 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4235 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4251 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4255 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4259 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4239 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_str_freeze` pushes a frozen known string value with no interpolation +# onto the stack using the #freeze method. If the method gets overridden, +# this will fall back to a send. +# +# ### Usage +# +# ~~~ruby +# "hello".freeze +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4284 +class SyntaxTree::YARV::OptStrFreeze < ::SyntaxTree::YARV::Instruction + # @return [OptStrFreeze] a new instance of OptStrFreeze + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4287 + def initialize(object, calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4307 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4320 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4285 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4303 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4292 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4312 + def length; end + + # Returns the value of attribute object. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4285 + def object; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4316 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4299 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_str_uminus` pushes a frozen known string value with no interpolation +# onto the stack. If the method gets overridden, this will fall back to a +# send. +# +# ### Usage +# +# ~~~ruby +# -"string" +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4337 +class SyntaxTree::YARV::OptStrUMinus < ::SyntaxTree::YARV::Instruction + # @return [OptStrUMinus] a new instance of OptStrUMinus + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4340 + def initialize(object, calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4360 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4373 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4338 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4356 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4345 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4365 + def length; end + + # Returns the value of attribute object. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4338 + def object; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4369 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4352 + def to_a(_iseq); end +end + +# ### Summary +# +# `opt_succ` is a specialization of the `opt_send_without_block` instruction +# when the method being called is `succ`. Fast paths exist when the receiver +# is either a String or a Fixnum. It pops the receiver off the stack and +# pushes on the result. +# +# ### Usage +# +# ~~~ruby +# "".succ +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4391 +class SyntaxTree::YARV::OptSucc < ::SyntaxTree::YARV::Instruction + # @return [OptSucc] a new instance of OptSucc + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4394 + def initialize(calldata); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4410 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4430 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4392 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4426 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4406 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4398 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4414 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4418 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4422 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4402 + def to_a(_iseq); end +end + +# ### Summary +# +# `pop` pops the top value off the stack. +# +# ### Usage +# +# ~~~ruby +# a ||= 2 +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4445 +class SyntaxTree::YARV::Pop < ::SyntaxTree::YARV::Instruction + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4458 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4466 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4454 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4446 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4462 + def pops; end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4470 + def side_effects?; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4450 + def to_a(_iseq); end +end + +# ### Summary +# +# `putnil` pushes a global nil object onto the stack. +# +# ### Usage +# +# ~~~ruby +# nil +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4485 +class SyntaxTree::YARV::PutNil < ::SyntaxTree::YARV::Instruction + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4498 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4510 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4506 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4494 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4486 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4502 + def pushes; end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4514 + def side_effects?; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4490 + def to_a(_iseq); end +end + +# ### Summary +# +# `putobject` pushes a known value onto the stack. +# +# ### Usage +# +# ~~~ruby +# 5 +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4529 +class SyntaxTree::YARV::PutObject < ::SyntaxTree::YARV::Instruction + # @return [PutObject] a new instance of PutObject + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4532 + def initialize(object); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4548 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4560 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4544 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4536 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4552 + def length; end + + # Returns the value of attribute object. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4530 + def object; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4556 + def pushes; end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4564 + def side_effects?; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4540 + def to_a(_iseq); end +end + +# ### Summary +# +# `putobject_INT2FIX_0_` pushes 0 on the stack. It is a specialized +# instruction resulting from the operand unification optimization. It is +# equivalent to `putobject 0`. +# +# ### Usage +# +# ~~~ruby +# 0 +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4581 +class SyntaxTree::YARV::PutObjectInt2Fix0 < ::SyntaxTree::YARV::Instruction + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4594 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4606 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4602 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4590 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4582 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4598 + def pushes; end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4610 + def side_effects?; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4586 + def to_a(_iseq); end +end + +# ### Summary +# +# `putobject_INT2FIX_1_` pushes 1 on the stack. It is a specialized +# instruction resulting from the operand unification optimization. It is +# equivalent to `putobject 1`. +# +# ### Usage +# +# ~~~ruby +# 1 +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4627 +class SyntaxTree::YARV::PutObjectInt2Fix1 < ::SyntaxTree::YARV::Instruction + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4640 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4652 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4648 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4636 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4628 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4644 + def pushes; end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4656 + def side_effects?; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4632 + def to_a(_iseq); end +end + +# ### Summary +# +# `putself` pushes the current value of self onto the stack. +# +# ### Usage +# +# ~~~ruby +# puts "Hello, world!" +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4671 +class SyntaxTree::YARV::PutSelf < ::SyntaxTree::YARV::Instruction + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4684 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4692 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4680 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4672 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4688 + def pushes; end + + # @return [Boolean] + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4696 + def side_effects?; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4676 + def to_a(_iseq); end +end + +# ### Summary +# +# `putspecialobject` pushes one of three special objects onto the stack. +# These are either the VM core special object, the class base special +# object, or the constant base special object. +# +# ### Usage +# +# ~~~ruby +# alias foo bar +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4713 +class SyntaxTree::YARV::PutSpecialObject < ::SyntaxTree::YARV::Instruction + # @return [PutSpecialObject] a new instance of PutSpecialObject + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4720 + def initialize(object); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4736 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4748 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4732 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4724 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4740 + def length; end + + # Returns the value of attribute object. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4718 + def object; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4744 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4728 + def to_a(_iseq); end +end + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4715 +SyntaxTree::YARV::PutSpecialObject::OBJECT_CBASE = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4716 +SyntaxTree::YARV::PutSpecialObject::OBJECT_CONST_BASE = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4714 +SyntaxTree::YARV::PutSpecialObject::OBJECT_VMCORE = T.let(T.unsafe(nil), Integer) + +# ### Summary +# +# `putstring` pushes an unfrozen string literal onto the stack. +# +# ### Usage +# +# ~~~ruby +# "foo" +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4772 +class SyntaxTree::YARV::PutString < ::SyntaxTree::YARV::Instruction + # @return [PutString] a new instance of PutString + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4775 + def initialize(object); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4791 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4803 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4787 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4779 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4795 + def length; end + + # Returns the value of attribute object. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4773 + def object; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4799 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4783 + def to_a(_iseq); end +end + +# A sea of nodes is an intermediate representation used by a compiler to +# represent both control and data flow in the same graph. The way we use it +# allows us to have the vertices of the graph represent either an +# instruction in the instruction sequence or a synthesized node that we add +# to the graph. The edges of the graph represent either control flow or data +# flow. +# +# source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#11 +class SyntaxTree::YARV::SeaOfNodes + # @return [SeaOfNodes] a new instance of SeaOfNodes + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#462 + def initialize(dfg, nodes, local_graphs); end + + # Returns the value of attribute dfg. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#460 + def dfg; end + + # Returns the value of attribute local_graphs. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#460 + def local_graphs; end + + # Returns the value of attribute nodes. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#460 + def nodes; end + + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#468 + def to_mermaid; end + + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#499 + def verify; end + + class << self + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#529 + def compile(dfg); end + end +end + +# The compiler is responsible for taking a data flow graph and turning it +# into a sea of nodes. +# +# source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#100 +class SyntaxTree::YARV::SeaOfNodes::Compiler + # @return [Compiler] a new instance of Compiler + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#103 + def initialize(dfg); end + + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#113 + def compile; end + + # Returns the value of attribute dfg. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#101 + def dfg; end + + # Returns the value of attribute nodes. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#101 + def nodes; end + + private + + # Eliminate as many unnecessary nodes as we can. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#339 + def cleanup_insn_nodes; end + + # We don't always build things in an optimal way. Go back and fix up + # some mess we left. Ideally we wouldn't create these problems in the + # first place. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#315 + def cleanup_phi_nodes; end + + # Connect one node to another. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#423 + def connect(from, to, type, label = T.unsafe(nil)); end + + # Connect control flow that flows between basic blocks. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#246 + def connect_local_graphs_control(local_graphs); end + + # Connect data flow that flows between basic blocks. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#271 + def connect_local_graphs_data(local_graphs); end + + # Connect all of the inputs to all of the outputs of a node. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#433 + def connect_over(node); end + + # Create a sub-graph for a single basic block - block block argument + # inputs and outputs will be left dangling, to be connected later. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#136 + def create_local_graph(block); end + + # Counter for synthetic nodes. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#130 + def id_counter; end + + # Remove a node from the graph. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#447 + def remove(node); end +end + +# The edge of a graph represents either control flow or data flow. +# +# source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#67 +class SyntaxTree::YARV::SeaOfNodes::Edge + # @return [Edge] a new instance of Edge + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#75 + def initialize(from, to, type, label); end + + # Returns the value of attribute from. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#70 + def from; end + + # Returns the value of attribute label. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#73 + def label; end + + # Returns the value of attribute to. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#71 + def to; end + + # Returns the value of attribute type. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#72 + def type; end +end + +# source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#68 +SyntaxTree::YARV::SeaOfNodes::Edge::TYPES = T.let(T.unsafe(nil), Array) + +# This object represents a node in the graph that holds a YARV +# instruction. +# +# source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#14 +class SyntaxTree::YARV::SeaOfNodes::InsnNode + # @return [InsnNode] a new instance of InsnNode + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#17 + def initialize(insn, offset); end + + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#25 + def id; end + + # Returns the value of attribute inputs. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#15 + def inputs; end + + # Returns the value of attribute insn. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#15 + def insn; end + + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#29 + def label; end + + # Returns the value of attribute offset. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#15 + def offset; end + + # Returns the value of attribute outputs. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#15 + def outputs; end +end + +# Merge nodes are present in any block that has multiple incoming blocks. +# It provides a place for Phi nodes to attach their results. +# +# source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#52 +class SyntaxTree::YARV::SeaOfNodes::MergeNode + # @return [MergeNode] a new instance of MergeNode + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#55 + def initialize(id); end + + # Returns the value of attribute id. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#53 + def id; end + + # Returns the value of attribute inputs. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#53 + def inputs; end + + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#61 + def label; end + + # Returns the value of attribute outputs. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#53 + def outputs; end +end + +# Phi nodes are used to represent the merging of data flow from multiple +# incoming blocks. +# +# source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#36 +class SyntaxTree::YARV::SeaOfNodes::PhiNode + # @return [PhiNode] a new instance of PhiNode + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#39 + def initialize(id); end + + # Returns the value of attribute id. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#37 + def id; end + + # Returns the value of attribute inputs. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#37 + def inputs; end + + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#45 + def label; end + + # Returns the value of attribute outputs. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#37 + def outputs; end +end + +# A subgraph represents the local data and control flow of a single basic +# block. +# +# source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#87 +class SyntaxTree::YARV::SeaOfNodes::SubGraph + # @return [SubGraph] a new instance of SubGraph + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#90 + def initialize(first_fixed, last_fixed, inputs, outputs); end + + # Returns the value of attribute first_fixed. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#88 + def first_fixed; end + + # Returns the value of attribute inputs. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#88 + def inputs; end + + # Returns the value of attribute last_fixed. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#88 + def last_fixed; end + + # Returns the value of attribute outputs. + # + # source://syntax_tree//lib/syntax_tree/yarv/sea_of_nodes.rb#88 + def outputs; end +end + +# ### Summary +# +# `send` invokes a method with an optional block. It pops its receiver and +# the arguments for the method off the stack and pushes the return value +# onto the stack. It has two arguments: the calldata for the call site and +# the optional block instruction sequence. +# +# ### Usage +# +# ~~~ruby +# "hello".tap { |i| p i } +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4821 +class SyntaxTree::YARV::Send < ::SyntaxTree::YARV::Instruction + # @return [Send] a new instance of Send + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4824 + def initialize(calldata, block_iseq); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4845 + def ==(other); end + + # Returns the value of attribute block_iseq. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4822 + def block_iseq; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4863 + def call(vm); end + + # Returns the value of attribute calldata. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4822 + def calldata; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4841 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4829 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4850 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4854 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4859 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4837 + def to_a(_iseq); end +end + +# ### Summary +# +# `setblockparam` sets the value of a block local variable on a frame +# determined by the level and index arguments. The level is the number of +# frames back to look and the index is the index in the local table. It pops +# the value it is setting off the stack. +# +# ### Usage +# +# ~~~ruby +# def foo(&bar) +# bar = baz +# end +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4905 +class SyntaxTree::YARV::SetBlockParam < ::SyntaxTree::YARV::Instruction + # @return [SetBlockParam] a new instance of SetBlockParam + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4908 + def initialize(index, level); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4927 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4940 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4923 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4913 + def disasm(fmt); end + + # Returns the value of attribute index. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4906 + def index; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4932 + def length; end + + # Returns the value of attribute level. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4906 + def level; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4936 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4917 + def to_a(iseq); end +end + +# ### Summary +# +# `setclassvariable` looks for a class variable in the current class and +# sets its value to the value it pops off the top of the stack. It uses an +# inline cache to reduce the need to lookup the class variable in the class +# hierarchy every time. +# +# ### Usage +# +# ~~~ruby +# @@class_variable = 1 +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4958 +class SyntaxTree::YARV::SetClassVariable < ::SyntaxTree::YARV::Instruction + # @return [SetClassVariable] a new instance of SetClassVariable + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4961 + def initialize(name, cache); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4981 + def ==(other); end + + # Returns the value of attribute cache. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4959 + def cache; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4994 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4977 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4966 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4986 + def length; end + + # Returns the value of attribute name. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4959 + def name; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4990 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#4973 + def to_a(_iseq); end +end + +# ### Summary +# +# `setconstant` pops two values off the stack: the value to set the +# constant to and the constant base to set it in. +# +# ### Usage +# +# ~~~ruby +# Constant = 1 +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5012 +class SyntaxTree::YARV::SetConstant < ::SyntaxTree::YARV::Instruction + # @return [SetConstant] a new instance of SetConstant + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5015 + def initialize(name); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5031 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5043 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5027 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5019 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5035 + def length; end + + # Returns the value of attribute name. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5013 + def name; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5039 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5023 + def to_a(_iseq); end +end + +# ### Summary +# +# `setglobal` sets the value of a global variable to a value popped off the +# top of the stack. +# +# ### Usage +# +# ~~~ruby +# $global = 5 +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5060 +class SyntaxTree::YARV::SetGlobal < ::SyntaxTree::YARV::Instruction + # @return [SetGlobal] a new instance of SetGlobal + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5063 + def initialize(name); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5079 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5091 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5075 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5067 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5083 + def length; end + + # Returns the value of attribute name. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5061 + def name; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5087 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5071 + def to_a(_iseq); end +end + +# ### Summary +# +# `setinstancevariable` pops a value off the top of the stack and then sets +# the instance variable associated with the instruction to that value. +# +# This instruction has two forms, but both have the same structure. Before +# Ruby 3.2, the inline cache corresponded to both the get and set +# instructions and could be shared. Since Ruby 3.2, it uses object shapes +# instead so the caches are unique per instruction. +# +# ### Usage +# +# ~~~ruby +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5114 +class SyntaxTree::YARV::SetInstanceVariable < ::SyntaxTree::YARV::Instruction + # @return [SetInstanceVariable] a new instance of SetInstanceVariable + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5117 + def initialize(name, cache); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5137 + def ==(other); end + + # Returns the value of attribute cache. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5115 + def cache; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5150 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5133 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5122 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5142 + def length; end + + # Returns the value of attribute name. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5115 + def name; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5146 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5129 + def to_a(_iseq); end +end + +# ### Summary +# +# `setlocal` sets the value of a local variable on a frame determined by the +# level and index arguments. The level is the number of frames back to +# look and the index is the index in the local table. It pops the value it +# is setting off the stack. +# +# ### Usage +# +# ~~~ruby +# value = 5 +# tap { tap { value = 10 } } +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5170 +class SyntaxTree::YARV::SetLocal < ::SyntaxTree::YARV::Instruction + # @return [SetLocal] a new instance of SetLocal + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5173 + def initialize(index, level); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5192 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5204 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5188 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5178 + def disasm(fmt); end + + # Returns the value of attribute index. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5171 + def index; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5196 + def length; end + + # Returns the value of attribute level. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5171 + def level; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5200 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5182 + def to_a(iseq); end +end + +# ### Summary +# +# `setlocal_WC_0` is a specialized version of the `setlocal` instruction. It +# sets the value of a local variable on the current frame to the value at +# the top of the stack as determined by the index given as its only +# argument. +# +# ### Usage +# +# ~~~ruby +# value = 5 +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5222 +class SyntaxTree::YARV::SetLocalWC0 < ::SyntaxTree::YARV::Instruction + # @return [SetLocalWC0] a new instance of SetLocalWC0 + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5225 + def initialize(index); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5241 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5257 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5253 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5237 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5229 + def disasm(fmt); end + + # Returns the value of attribute index. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5223 + def index; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5245 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5249 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5233 + def to_a(iseq); end +end + +# ### Summary +# +# `setlocal_WC_1` is a specialized version of the `setlocal` instruction. It +# sets the value of a local variable on the parent frame to the value at the +# top of the stack as determined by the index given as its only argument. +# +# ### Usage +# +# ~~~ruby +# value = 5 +# self.then { value = 10 } +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5275 +class SyntaxTree::YARV::SetLocalWC1 < ::SyntaxTree::YARV::Instruction + # @return [SetLocalWC1] a new instance of SetLocalWC1 + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5278 + def initialize(index); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5294 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5310 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5306 + def canonical; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5290 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5282 + def disasm(fmt); end + + # Returns the value of attribute index. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5276 + def index; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5298 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5302 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5286 + def to_a(iseq); end +end + +# ### Summary +# +# `setn` sets a value in the stack to a value popped off the top of the +# stack. It then pushes that value onto the top of the stack as well. +# +# ### Usage +# +# ~~~ruby +# {}[:key] = 'val' +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5326 +class SyntaxTree::YARV::SetN < ::SyntaxTree::YARV::Instruction + # @return [SetN] a new instance of SetN + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5329 + def initialize(number); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5345 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5361 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5341 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5333 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5349 + def length; end + + # Returns the value of attribute number. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5327 + def number; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5353 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5357 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5337 + def to_a(_iseq); end +end + +# ### Summary +# +# `setspecial` pops a value off the top of the stack and sets a special +# local variable to that value. The special local variable is determined by +# the key given as its only argument. +# +# ### Usage +# +# ~~~ruby +# baz if (foo == 1) .. (bar == 1) +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5378 +class SyntaxTree::YARV::SetSpecial < ::SyntaxTree::YARV::Instruction + # @return [SetSpecial] a new instance of SetSpecial + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5381 + def initialize(key); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5397 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5409 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5393 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5385 + def disasm(fmt); end + + # Returns the value of attribute key. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5379 + def key; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5401 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5405 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5389 + def to_a(_iseq); end +end + +# ### Summary +# +# `splatarray` coerces the array object at the top of the stack into Array +# by calling `to_a`. It pushes a duplicate of the array if there is a flag, +# and the original array if there isn't one. +# +# ### Usage +# +# ~~~ruby +# x = *(5) +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5433 +class SyntaxTree::YARV::SplatArray < ::SyntaxTree::YARV::Instruction + # @return [SplatArray] a new instance of SplatArray + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5436 + def initialize(flag); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5452 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5468 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5448 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5440 + def disasm(fmt); end + + # Returns the value of attribute flag. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5434 + def flag; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5456 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5460 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5464 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5444 + def to_a(_iseq); end +end + +# ### Summary +# +# `swap` swaps the top two elements in the stack. +# +# ### TracePoint +# +# `swap` does not dispatch any events. +# +# ### Usage +# +# ~~~ruby +# !!defined?([[]]) +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5507 +class SyntaxTree::YARV::Swap < ::SyntaxTree::YARV::Instruction + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5520 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5532 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5516 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5508 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5524 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5528 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5512 + def to_a(_iseq); end +end + +# ### Summary +# +# `throw` pops a value off the top of the stack and throws it. It is caught +# using the instruction sequence's (or an ancestor's) catch table. It pushes +# on the result of throwing the value. +# +# ### Usage +# +# ~~~ruby +# [1, 2, 3].map { break 2 } +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5550 +class SyntaxTree::YARV::Throw < ::SyntaxTree::YARV::Instruction + # @return [Throw] a new instance of Throw + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5566 + def initialize(type); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5582 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5598 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5578 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5570 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5586 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5590 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5594 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5574 + def to_a(_iseq); end + + # Returns the value of attribute type. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5564 + def type; end + + private + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5625 + def error_backtrace(vm); end +end + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5553 +SyntaxTree::YARV::Throw::RUBY_TAG_BREAK = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5559 +SyntaxTree::YARV::Throw::RUBY_TAG_FATAL = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5554 +SyntaxTree::YARV::Throw::RUBY_TAG_NEXT = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5551 +SyntaxTree::YARV::Throw::RUBY_TAG_NONE = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5557 +SyntaxTree::YARV::Throw::RUBY_TAG_RAISE = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5556 +SyntaxTree::YARV::Throw::RUBY_TAG_REDO = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5555 +SyntaxTree::YARV::Throw::RUBY_TAG_RETRY = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5552 +SyntaxTree::YARV::Throw::RUBY_TAG_RETURN = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5558 +SyntaxTree::YARV::Throw::RUBY_TAG_THROW = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5561 +SyntaxTree::YARV::Throw::VM_THROW_NO_ESCAPE_FLAG = T.let(T.unsafe(nil), Integer) + +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5562 +SyntaxTree::YARV::Throw::VM_THROW_STATE_MASK = T.let(T.unsafe(nil), Integer) + +# ### Summary +# +# `toregexp` pops a number of values off the stack, combines them into a new +# regular expression, and pushes the new regular expression onto the stack. +# +# ### Usage +# +# ~~~ruby +# /foo #{bar}/ +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5700 +class SyntaxTree::YARV::ToRegExp < ::SyntaxTree::YARV::Instruction + # @return [ToRegExp] a new instance of ToRegExp + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5703 + def initialize(options, length); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5720 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5733 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5716 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5708 + def disasm(fmt); end + + # Returns the value of attribute length. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5701 + def length; end + + # Returns the value of attribute options. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5701 + def options; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5725 + def pops; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5729 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5712 + def to_a(_iseq); end +end + +# ### Summary +# +# `topn` pushes a single value onto the stack that is a copy of the value +# within the stack that is `number` of slots down from the top. +# +# ### Usage +# +# ~~~ruby +# case 3 +# when 1..5 +# puts "foo" +# end +# ~~~ +# +# source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5653 +class SyntaxTree::YARV::TopN < ::SyntaxTree::YARV::Instruction + # @return [TopN] a new instance of TopN + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5656 + def initialize(number); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5672 + def ==(other); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5684 + def call(vm); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5668 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5660 + def disasm(fmt); end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5676 + def length; end + + # Returns the value of attribute number. + # + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5654 + def number; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5680 + def pushes; end + + # source://syntax_tree//lib/syntax_tree/yarv/instructions.rb#5664 + def to_a(_iseq); end +end + +# source://syntax_tree//lib/syntax_tree/yarv/vm.rb#8 +class SyntaxTree::YARV::VM + extend ::Forwardable + + # @return [VM] a new instance of VM + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#216 + def initialize(events = T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#623 + def catch(tag, &block); end + + # Helper methods for instructions + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#494 + def const_base; end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#610 + def eval(source, binding = T.unsafe(nil), filename = T.unsafe(nil), lineno = T.unsafe(nil)); end + + # Returns the value of attribute events. + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#209 + def events; end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#344 + def find_catch_entry(frame, type); end + + # Returns the value of attribute frame. + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#214 + def frame; end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#498 + def frame_at(level); end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#504 + def frame_svar; end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#510 + def frame_yield; end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#516 + def frozen_core; end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#520 + def jump(label); end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#524 + def leave; end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#606 + def load(filepath); end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#528 + def local_get(index, level); end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#532 + def local_set(index, level, value); end + + # source://forwardable/1.3.3/forwardable.rb#231 + def pop(*args, **_arg1, &block); end + + # source://forwardable/1.3.3/forwardable.rb#231 + def push(*args, **_arg1, &block); end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#598 + def require(filepath); end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#549 + def require_internal(filepath, loading: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#602 + def require_relative(filepath); end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#543 + def require_resolved(filepath); end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#360 + def run_block_frame(iseq, frame, *args, **kwargs, &block); end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#366 + def run_class_frame(iseq, clazz); end + + # Helper methods for frames + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#230 + def run_frame(frame); end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#370 + def run_method_frame(name, nesting, iseq, _self, *args, **kwargs, &block); end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#384 + def run_rescue_frame(iseq, frame, error); end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#356 + def run_top_frame(iseq); end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#391 + def setup_arguments(iseq, args, kwargs, block); end + + # Returns the value of attribute stack. + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#211 + def stack; end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#619 + def throw(tag, value = T.unsafe(nil)); end + + class << self + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#222 + def run(iseq); end + end +end + +# source://syntax_tree//lib/syntax_tree/yarv/vm.rb#48 +class SyntaxTree::YARV::VM::BlockFrame < ::SyntaxTree::YARV::VM::Frame + # @return [BlockFrame] a new instance of BlockFrame + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#49 + def initialize(iseq, parent, stack_index); end +end + +# source://syntax_tree//lib/syntax_tree/yarv/vm.rb#89 +class SyntaxTree::YARV::VM::BreakError < ::SyntaxTree::YARV::VM::ThrownError; end + +# source://syntax_tree//lib/syntax_tree/yarv/vm.rb#64 +class SyntaxTree::YARV::VM::ClassFrame < ::SyntaxTree::YARV::VM::Frame + # @return [ClassFrame] a new instance of ClassFrame + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#65 + def initialize(iseq, parent, stack_index, _self); end +end + +# Methods for overriding runtime behavior +# +# source://syntax_tree//lib/syntax_tree/yarv/vm.rb#540 +SyntaxTree::YARV::VM::DLEXT = T.let(T.unsafe(nil), String) + +# source://syntax_tree//lib/syntax_tree/yarv/vm.rb#205 +SyntaxTree::YARV::VM::FROZEN_CORE = T.let(T.unsafe(nil), SyntaxTree::YARV::VM::FrozenCore) + +# source://syntax_tree//lib/syntax_tree/yarv/vm.rb#25 +class SyntaxTree::YARV::VM::Frame + # @return [Frame] a new instance of Frame + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#29 + def initialize(iseq, parent, stack_index, _self, nesting); end + + # Returns the value of attribute _self. + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#26 + def _self; end + + # Returns the value of attribute iseq. + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#26 + def iseq; end + + # Returns the value of attribute line. + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#27 + def line; end + + # Sets the attribute line + # + # @param value the value to set the attribute line to. + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#27 + def line=(_arg0); end + + # Returns the value of attribute nesting. + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#26 + def nesting; end + + # Returns the value of attribute parent. + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#26 + def parent; end + + # Returns the value of attribute pc. + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#27 + def pc; end + + # Sets the attribute pc + # + # @param value the value to set the attribute pc to. + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#27 + def pc=(_arg0); end + + # Returns the value of attribute stack_index. + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#26 + def stack_index; end + + # Returns the value of attribute svars. + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#26 + def svars; end +end + +# source://syntax_tree//lib/syntax_tree/yarv/vm.rb#95 +class SyntaxTree::YARV::VM::FrozenCore; end + +# source://syntax_tree//lib/syntax_tree/yarv/vm.rb#9 +class SyntaxTree::YARV::VM::Jump + # @return [Jump] a new instance of Jump + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#12 + def initialize(label); end + + # Returns the value of attribute label. + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#10 + def label; end +end + +# source://syntax_tree//lib/syntax_tree/yarv/vm.rb#17 +class SyntaxTree::YARV::VM::Leave + # @return [Leave] a new instance of Leave + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#20 + def initialize(value); end + + # Returns the value of attribute value. + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#18 + def value; end +end + +# source://syntax_tree//lib/syntax_tree/yarv/vm.rb#54 +class SyntaxTree::YARV::VM::MethodFrame < ::SyntaxTree::YARV::VM::Frame + # @return [MethodFrame] a new instance of MethodFrame + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#57 + def initialize(iseq, nesting, parent, stack_index, _self, name, block); end + + # Returns the value of attribute block. + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#55 + def block; end + + # Returns the value of attribute name. + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#55 + def name; end +end + +# source://syntax_tree//lib/syntax_tree/yarv/vm.rb#92 +class SyntaxTree::YARV::VM::NextError < ::SyntaxTree::YARV::VM::ThrownError; end + +# This is the main entrypoint for events firing in the VM, which allows +# us to implement tracing. +# +# source://syntax_tree//lib/syntax_tree/yarv/vm.rb#122 +class SyntaxTree::YARV::VM::NullEvents + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#123 + def publish_frame_change(frame); end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#126 + def publish_instruction(iseq, insn); end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#129 + def publish_stack_change(stack); end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#132 + def publish_tracepoint(event); end +end + +# source://syntax_tree//lib/syntax_tree/yarv/vm.rb#70 +class SyntaxTree::YARV::VM::RescueFrame < ::SyntaxTree::YARV::VM::Frame + # @return [RescueFrame] a new instance of RescueFrame + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#71 + def initialize(iseq, parent, stack_index); end +end + +# source://syntax_tree//lib/syntax_tree/yarv/vm.rb#86 +class SyntaxTree::YARV::VM::ReturnError < ::SyntaxTree::YARV::VM::ThrownError; end + +# source://syntax_tree//lib/syntax_tree/yarv/vm.rb#541 +SyntaxTree::YARV::VM::SOEXT = T.let(T.unsafe(nil), String) + +# This is a simple implementation of tracing that prints to STDOUT. +# +# source://syntax_tree//lib/syntax_tree/yarv/vm.rb#137 +class SyntaxTree::YARV::VM::STDOUTEvents + # @return [STDOUTEvents] a new instance of STDOUTEvents + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#140 + def initialize; end + + # Returns the value of attribute disassembler. + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#138 + def disassembler; end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#144 + def publish_frame_change(frame); end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#148 + def publish_instruction(iseq, insn); end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#153 + def publish_stack_change(stack); end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#157 + def publish_tracepoint(event); end +end + +# This represents the global VM stack. It effectively is an array, but +# wraps mutating functions with instrumentation. +# +# source://syntax_tree//lib/syntax_tree/yarv/vm.rb#164 +class SyntaxTree::YARV::VM::Stack + # @return [Stack] a new instance of Stack + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#167 + def initialize(events); end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#196 + def [](*_arg0, **_arg1, &_arg2); end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#200 + def []=(*_arg0, **_arg1, &_arg2); end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#172 + def concat(*_arg0, **_arg1, &_arg2); end + + # Returns the value of attribute events. + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#165 + def events; end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#176 + def last; end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#180 + def length; end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#188 + def pop(*_arg0, **_arg1, &_arg2); end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#184 + def push(*_arg0, **_arg1, &_arg2); end + + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#192 + def slice!(*_arg0, **_arg1, &_arg2); end + + # Returns the value of attribute values. + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#165 + def values; end +end + +# source://syntax_tree//lib/syntax_tree/yarv/vm.rb#76 +class SyntaxTree::YARV::VM::ThrownError < ::StandardError + # @return [ThrownError] a new instance of ThrownError + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#79 + def initialize(value, backtrace); end + + # Returns the value of attribute value. + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#77 + def value; end +end + +# source://syntax_tree//lib/syntax_tree/yarv/vm.rb#42 +class SyntaxTree::YARV::VM::TopFrame < ::SyntaxTree::YARV::VM::Frame + # @return [TopFrame] a new instance of TopFrame + # + # source://syntax_tree//lib/syntax_tree/yarv/vm.rb#43 + def initialize(iseq); end +end + +# Yield represents using the +yield+ keyword with arguments. +# +# yield value +# +# source://syntax_tree//lib/syntax_tree/node.rb#12273 +class SyntaxTree::YieldNode < ::SyntaxTree::Node + # @return [YieldNode] a new instance of YieldNode + # + # source://syntax_tree//lib/syntax_tree/node.rb#12280 + def initialize(arguments:, location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12334 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12286 + def accept(visitor); end + + # [nil | Args | Paren] the arguments passed to the yield + # + # source://syntax_tree//lib/syntax_tree/node.rb#12275 + def arguments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#12290 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#12278 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#12294 + def copy(arguments: T.unsafe(nil), location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12290 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#12307 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12311 + def format(q); end +end + +# ZSuper represents the bare +super+ keyword with no arguments. +# +# super +# +# source://syntax_tree//lib/syntax_tree/node.rb#12343 +class SyntaxTree::ZSuper < ::SyntaxTree::Node + # @return [ZSuper] a new instance of ZSuper + # + # source://syntax_tree//lib/syntax_tree/node.rb#12347 + def initialize(location:); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12377 + def ===(other); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12352 + def accept(visitor); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12356 + def child_nodes; end + + # [Array[ Comment | EmbDoc ]] the comments attached to this node + # + # source://syntax_tree//lib/syntax_tree/node.rb#12345 + def comments; end + + # source://syntax_tree//lib/syntax_tree/node.rb#12360 + def copy(location: T.unsafe(nil)); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12356 + def deconstruct; end + + # source://syntax_tree//lib/syntax_tree/node.rb#12369 + def deconstruct_keys(_keys); end + + # source://syntax_tree//lib/syntax_tree/node.rb#12373 + def format(q); end +end diff --git a/sorbet/rbi/gems/tapioca@0.11.7.rbi b/sorbet/rbi/gems/tapioca@0.11.12.rbi similarity index 87% rename from sorbet/rbi/gems/tapioca@0.11.7.rbi rename to sorbet/rbi/gems/tapioca@0.11.12.rbi index 1b1a0ffc..10f95b83 100644 --- a/sorbet/rbi/gems/tapioca@0.11.7.rbi +++ b/sorbet/rbi/gems/tapioca@0.11.12.rbi @@ -8,6 +8,25 @@ class Bundler::Dependency < ::Gem::Dependency include ::Tapioca::BundlerExt::AutoRequireHook end +# source://tapioca//lib/tapioca/helpers/git_attributes.rb#4 +class GitAttributes + class << self + # source://tapioca//lib/tapioca/helpers/git_attributes.rb#9 + sig { params(path: ::Pathname).void } + def create_generated_attribute_file(path); end + + # source://tapioca//lib/tapioca/helpers/git_attributes.rb#16 + sig { params(path: ::Pathname).void } + def create_vendored_attribute_file(path); end + + private + + # source://tapioca//lib/tapioca/helpers/git_attributes.rb#25 + sig { params(path: ::Pathname, content: ::String).void } + def create_gitattributes_file(path, content); end + end +end + # We need to do the alias-method-chain dance since Bootsnap does the same, # and prepended modules and alias-method-chain don't play well together. # @@ -35,7 +54,7 @@ module RBI; end # source://tapioca//lib/tapioca/rbi_ext/model.rb#5 class RBI::Tree < ::RBI::NodeWithComments - # source://rbi/0.0.17/lib/rbi/model.rb#119 + # source://rbi/0.1.5/lib/rbi/model.rb#119 sig do params( loc: T.nilable(::RBI::Loc), @@ -45,19 +64,19 @@ class RBI::Tree < ::RBI::NodeWithComments end def initialize(loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end - # source://rbi/0.0.17/lib/rbi/model.rb#126 + # source://rbi/0.1.5/lib/rbi/model.rb#126 sig { params(node: ::RBI::Node).void } def <<(node); end - # source://rbi/0.0.17/lib/rbi/printer.rb#226 + # source://rbi/0.1.5/lib/rbi/printer.rb#226 sig { override.params(v: ::RBI::Printer).void } def accept_printer(v); end - # source://rbi/0.0.17/lib/rbi/rewriters/add_sig_templates.rb#66 + # source://rbi/0.1.5/lib/rbi/rewriters/add_sig_templates.rb#66 sig { params(with_todo_comment: T::Boolean).void } def add_sig_templates!(with_todo_comment: T.unsafe(nil)); end - # source://rbi/0.0.17/lib/rbi/rewriters/annotate.rb#49 + # source://rbi/0.1.5/lib/rbi/rewriters/annotate.rb#49 sig { params(annotation: ::String, annotate_scopes: T::Boolean, annotate_properties: T::Boolean).void } def annotate!(annotation, annotate_scopes: T.unsafe(nil), annotate_properties: T.unsafe(nil)); end @@ -121,23 +140,23 @@ class RBI::Tree < ::RBI::NodeWithComments end def create_type_variable(name, type:, variance: T.unsafe(nil), fixed: T.unsafe(nil), upper: T.unsafe(nil), lower: T.unsafe(nil)); end - # source://rbi/0.0.17/lib/rbi/rewriters/deannotate.rb#41 + # source://rbi/0.1.5/lib/rbi/rewriters/deannotate.rb#41 sig { params(annotation: ::String).void } def deannotate!(annotation); end - # source://rbi/0.0.17/lib/rbi/model.rb#132 + # source://rbi/0.1.5/lib/rbi/model.rb#132 sig { returns(T::Boolean) } def empty?; end - # source://rbi/0.0.17/lib/rbi/rewriters/group_nodes.rb#38 + # source://rbi/0.1.5/lib/rbi/rewriters/group_nodes.rb#38 sig { void } def group_nodes!; end - # source://rbi/0.0.17/lib/rbi/index.rb#68 + # source://rbi/0.1.5/lib/rbi/index.rb#68 sig { returns(::RBI::Index) } def index; end - # source://rbi/0.0.17/lib/rbi/rewriters/merge_trees.rb#324 + # source://rbi/0.1.5/lib/rbi/rewriters/merge_trees.rb#324 sig do params( other: ::RBI::Tree, @@ -148,23 +167,23 @@ class RBI::Tree < ::RBI::NodeWithComments end def merge(other, left_name: T.unsafe(nil), right_name: T.unsafe(nil), keep: T.unsafe(nil)); end - # source://rbi/0.0.17/lib/rbi/rewriters/nest_non_public_methods.rb#46 + # source://rbi/0.1.5/lib/rbi/rewriters/nest_non_public_methods.rb#46 sig { void } def nest_non_public_methods!; end - # source://rbi/0.0.17/lib/rbi/rewriters/nest_singleton_methods.rb#36 + # source://rbi/0.1.5/lib/rbi/rewriters/nest_singleton_methods.rb#36 sig { void } def nest_singleton_methods!; end - # source://rbi/0.0.17/lib/rbi/model.rb#110 + # source://rbi/0.1.5/lib/rbi/model.rb#110 sig { returns(T::Array[::RBI::Node]) } def nodes; end - # source://rbi/0.0.17/lib/rbi/printer.rb#233 + # source://rbi/0.1.5/lib/rbi/printer.rb#233 sig { override.returns(T::Boolean) } def oneline?; end - # source://rbi/0.0.17/lib/rbi/rewriters/sort_nodes.rb#119 + # source://rbi/0.1.5/lib/rbi/rewriters/sort_nodes.rb#119 sig { void } def sort_nodes!; end @@ -185,7 +204,7 @@ class RBI::TypedParam < ::T::Struct const :type, ::String class << self - # source://sorbet-runtime/0.5.10908/lib/types/struct.rb#13 + # source://sorbet-runtime/0.5.11143/lib/types/struct.rb#13 def inherited(s); end end end @@ -420,40 +439,42 @@ class Tapioca::Cli < ::Thor include ::Tapioca::ConfigHelper include ::Tapioca::EnvHelper - # source://tapioca//lib/tapioca/cli.rb#346 + # source://tapioca//lib/tapioca/cli.rb#355 def __print_version; end - # source://tapioca//lib/tapioca/cli.rb#326 + # source://tapioca//lib/tapioca/cli.rb#337 def annotations; end - # source://tapioca//lib/tapioca/cli.rb#296 + # source://tapioca//lib/tapioca/cli.rb#309 def check_shims; end - # source://tapioca//lib/tapioca/cli.rb#41 + # source://tapioca//lib/tapioca/cli.rb#46 def configure; end - # source://tapioca//lib/tapioca/cli.rb#137 + # source://tapioca//lib/tapioca/cli.rb#138 def dsl(*constant_or_paths); end - # source://tapioca//lib/tapioca/cli.rb#247 + # @raise [MalformattedArgumentError] + # + # source://tapioca//lib/tapioca/cli.rb#253 def gem(*gems); end # source://tapioca//lib/tapioca/cli.rb#27 def init; end - # source://tapioca//lib/tapioca/cli.rb#52 + # source://tapioca//lib/tapioca/cli.rb#57 def require; end - # source://tapioca//lib/tapioca/cli.rb#71 + # source://tapioca//lib/tapioca/cli.rb#74 def todo; end private - # source://tapioca//lib/tapioca/cli.rb#360 + # source://tapioca//lib/tapioca/cli.rb#369 def print_init_next_steps; end class << self - # source://tapioca//lib/tapioca/cli.rb#352 + # source://tapioca//lib/tapioca/cli.rb#361 def exit_on_failure?; end end end @@ -481,6 +502,239 @@ end # source://tapioca//lib/tapioca/commands.rb#5 module Tapioca::Commands; end +# @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below. +# +# source://tapioca//lib/tapioca/commands/abstract_dsl.rb#6 +class Tapioca::Commands::AbstractDsl < ::Tapioca::Commands::CommandWithoutTracker + include ::Tapioca::SorbetHelper + include ::Tapioca::RBIFilesHelper + + abstract! + + # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#31 + sig do + params( + requested_constants: T::Array[::String], + requested_paths: T::Array[::Pathname], + outpath: ::Pathname, + only: T::Array[::String], + exclude: T::Array[::String], + file_header: T::Boolean, + tapioca_path: ::String, + quiet: T::Boolean, + verbose: T::Boolean, + number_of_workers: T.nilable(::Integer), + auto_strictness: T::Boolean, + gem_dir: ::String, + rbi_formatter: ::Tapioca::RBIFormatter, + app_root: ::String, + halt_upon_load_error: T::Boolean + ).void + end + def initialize(requested_constants:, requested_paths:, outpath:, only:, exclude:, file_header:, tapioca_path:, quiet: T.unsafe(nil), verbose: T.unsafe(nil), number_of_workers: T.unsafe(nil), auto_strictness: T.unsafe(nil), gem_dir: T.unsafe(nil), rbi_formatter: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end + + private + + # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#94 + sig { returns(T::Array[::String]) } + def all_requested_constants; end + + # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#284 + sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) } + def build_error_for_files(cause, files); end + + # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#208 + sig do + params( + constant_name: ::String, + rbi: ::RBI::File, + outpath: ::Pathname, + quiet: T::Boolean + ).returns(T.nilable(::Pathname)) + end + def compile_dsl_rbi(constant_name, rbi, outpath: T.unsafe(nil), quiet: T.unsafe(nil)); end + + # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#146 + sig { params(constant_names: T::Array[::String], ignore_missing: T::Boolean).returns(T::Array[::Module]) } + def constantize(constant_names, ignore_missing: T.unsafe(nil)); end + + # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#169 + sig { params(compiler_names: T::Array[::String]).returns(T::Array[T.class_of(Tapioca::Dsl::Compiler)]) } + def constantize_compilers(compiler_names); end + + # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#344 + sig { returns(T::Array[::String]) } + def constants_from_requested_paths; end + + # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#117 + sig { returns(::Tapioca::Dsl::Pipeline) } + def create_pipeline; end + + # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#247 + sig { params(constant_name: ::String).returns(::Pathname) } + def dsl_rbi_filename(constant_name); end + + # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#132 + sig { params(requested_constants: T::Array[::String], path: ::Pathname).returns(T::Set[::Pathname]) } + def existing_rbi_filenames(requested_constants, path: T.unsafe(nil)); end + + # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#339 + sig { params(constant: ::String).returns(::String) } + def generate_command_for(constant); end + + # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#70 + sig { params(outpath: ::Pathname, quiet: T::Boolean).returns(T::Set[::Pathname]) } + def generate_dsl_rbi_files(outpath, quiet:); end + + # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#107 + sig { void } + def load_application; end + + # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#226 + sig { params(dir: ::Pathname).void } + def perform_dsl_verification(dir); end + + # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#102 + sig { returns(::Tapioca::Dsl::Pipeline) } + def pipeline; end + + # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#235 + sig { params(files: T::Set[::Pathname]).void } + def purge_stale_dsl_rbi_files(files); end + + # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#334 + sig { params(constant: ::String).returns(::String) } + def rbi_filename_for(constant); end + + # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#315 + sig { params(path: ::Pathname).returns(T::Array[::Pathname]) } + def rbi_files_in(path); end + + # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#293 + sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void } + def report_diff_and_exit_if_out_of_date(diff, command); end + + # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#188 + sig { params(name: ::String).returns(T.nilable(T.class_of(Tapioca::Dsl::Compiler))) } + def resolve(name); end + + # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#322 + sig { params(class_name: ::String).returns(::String) } + def underscore(class_name); end + + # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#252 + sig { params(tmp_dir: ::Pathname).returns(T::Hash[::String, ::Symbol]) } + def verify_dsl_rbi(tmp_dir:); end +end + +# @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below. +# +# source://tapioca//lib/tapioca/commands/abstract_gem.rb#6 +class Tapioca::Commands::AbstractGem < ::Tapioca::Commands::Command + include ::Tapioca::SorbetHelper + include ::Tapioca::RBIFilesHelper + + abstract! + + # source://tapioca//lib/tapioca/commands/abstract_gem.rb#32 + sig do + params( + gem_names: T::Array[::String], + exclude: T::Array[::String], + include_dependencies: T::Boolean, + prerequire: T.nilable(::String), + postrequire: ::String, + typed_overrides: T::Hash[::String, ::String], + outpath: ::Pathname, + file_header: T::Boolean, + include_doc: T::Boolean, + include_loc: T::Boolean, + include_exported_rbis: T::Boolean, + number_of_workers: T.nilable(::Integer), + auto_strictness: T::Boolean, + dsl_dir: ::String, + rbi_formatter: ::Tapioca::RBIFormatter, + halt_upon_load_error: T::Boolean + ).void + end + def initialize(gem_names:, exclude:, include_dependencies:, prerequire:, postrequire:, typed_overrides:, outpath:, file_header:, include_doc:, include_loc:, include_exported_rbis:, number_of_workers: T.unsafe(nil), auto_strictness: T.unsafe(nil), dsl_dir: T.unsafe(nil), rbi_formatter: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end + + private + + # source://tapioca//lib/tapioca/commands/abstract_gem.rb#221 + sig { returns(T::Array[::String]) } + def added_rbis; end + + # source://tapioca//lib/tapioca/commands/abstract_gem.rb#282 + sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) } + def build_error_for_files(cause, files); end + + # source://tapioca//lib/tapioca/commands/abstract_gem.rb#110 + sig { params(gem: ::Tapioca::Gemfile::GemSpec).void } + def compile_gem_rbi(gem); end + + # source://tapioca//lib/tapioca/commands/abstract_gem.rb#216 + sig { params(gem_name: ::String).returns(::Pathname) } + def existing_rbi(gem_name); end + + # source://tapioca//lib/tapioca/commands/abstract_gem.rb#264 + sig { returns(T::Hash[::String, ::String]) } + def existing_rbis; end + + # source://tapioca//lib/tapioca/commands/abstract_gem.rb#228 + sig { params(gem_name: ::String).returns(::Pathname) } + def expected_rbi(gem_name); end + + # source://tapioca//lib/tapioca/commands/abstract_gem.rb#270 + sig { returns(T::Hash[::String, ::String]) } + def expected_rbis; end + + # source://tapioca//lib/tapioca/commands/abstract_gem.rb#98 + sig do + params( + gem: ::Tapioca::Gemfile::GemSpec, + dependencies: T::Array[::Tapioca::Gemfile::GemSpec] + ).returns(T::Array[::Tapioca::Gemfile::GemSpec]) + end + def gem_dependencies(gem, dependencies = T.unsafe(nil)); end + + # source://tapioca//lib/tapioca/commands/abstract_gem.rb#233 + sig { params(gem_name: ::String).returns(T::Boolean) } + def gem_rbi_exists?(gem_name); end + + # source://tapioca//lib/tapioca/commands/abstract_gem.rb#277 + sig { params(gem_name: ::String, version: ::String).returns(::Pathname) } + def gem_rbi_filename(gem_name, version); end + + # source://tapioca//lib/tapioca/commands/abstract_gem.rb#77 + sig { params(gem_names: T::Array[::String]).returns(T::Array[::Tapioca::Gemfile::GemSpec]) } + def gems_to_generate(gem_names); end + + # source://tapioca//lib/tapioca/commands/abstract_gem.rb#287 + sig { params(gem: ::Tapioca::Gemfile::GemSpec, file: ::RBI::File).void } + def merge_with_exported_rbi(gem, file); end + + # source://tapioca//lib/tapioca/commands/abstract_gem.rb#258 + sig { params(old_filename: ::Pathname, new_filename: ::Pathname).void } + def move(old_filename, new_filename); end + + # source://tapioca//lib/tapioca/commands/abstract_gem.rb#168 + sig { void } + def perform_additions; end + + # source://tapioca//lib/tapioca/commands/abstract_gem.rb#141 + sig { void } + def perform_removals; end + + # source://tapioca//lib/tapioca/commands/abstract_gem.rb#211 + sig { returns(T::Array[::String]) } + def removed_rbis; end + + # source://tapioca//lib/tapioca/commands/abstract_gem.rb#238 + sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void } + def report_diff_and_exit_if_out_of_date(diff, command); end +end + # source://tapioca//lib/tapioca/commands/annotations.rb#6 class Tapioca::Commands::Annotations < ::Tapioca::Commands::CommandWithoutTracker # source://tapioca//lib/tapioca/commands/annotations.rb#18 @@ -495,69 +749,69 @@ class Tapioca::Commands::Annotations < ::Tapioca::Commands::CommandWithoutTracke end def initialize(central_repo_root_uris:, auth: T.unsafe(nil), netrc_file: T.unsafe(nil), central_repo_index_path: T.unsafe(nil), typed_overrides: T.unsafe(nil)); end - # source://tapioca//lib/tapioca/commands/annotations.rb#36 - sig { override.void } - def execute; end - private - # source://tapioca//lib/tapioca/commands/annotations.rb#191 + # source://tapioca//lib/tapioca/commands/annotations.rb#193 sig { params(name: ::String, content: ::String).returns(::String) } def add_header(name, content); end - # source://tapioca//lib/tapioca/commands/annotations.rb#211 + # source://tapioca//lib/tapioca/commands/annotations.rb#213 sig { params(name: ::String, content: ::String).returns(::String) } def apply_typed_override(name, content); end - # source://tapioca//lib/tapioca/commands/annotations.rb#132 + # source://tapioca//lib/tapioca/commands/annotations.rb#39 + sig { override.void } + def execute; end + + # source://tapioca//lib/tapioca/commands/annotations.rb#136 sig { params(repo_uris: T::Array[::String], gem_name: ::String).void } def fetch_annotation(repo_uris, gem_name); end - # source://tapioca//lib/tapioca/commands/annotations.rb#109 + # source://tapioca//lib/tapioca/commands/annotations.rb#113 sig { params(gem_names: T::Array[::String]).returns(T::Array[::String]) } def fetch_annotations(gem_names); end - # source://tapioca//lib/tapioca/commands/annotations.rb#150 + # source://tapioca//lib/tapioca/commands/annotations.rb#152 sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) } def fetch_file(repo_uri, path); end - # source://tapioca//lib/tapioca/commands/annotations.rb#167 + # source://tapioca//lib/tapioca/commands/annotations.rb#169 sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) } def fetch_http_file(repo_uri, path); end - # source://tapioca//lib/tapioca/commands/annotations.rb#98 + # source://tapioca//lib/tapioca/commands/annotations.rb#102 sig { params(repo_uri: ::String, repo_number: T.nilable(::Integer)).returns(T.nilable(Tapioca::RepoIndex)) } def fetch_index(repo_uri, repo_number:); end - # source://tapioca//lib/tapioca/commands/annotations.rb#77 + # source://tapioca//lib/tapioca/commands/annotations.rb#81 sig { returns(T::Hash[::String, Tapioca::RepoIndex]) } def fetch_indexes; end - # source://tapioca//lib/tapioca/commands/annotations.rb#159 + # source://tapioca//lib/tapioca/commands/annotations.rb#161 sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) } def fetch_local_file(repo_uri, path); end - # source://tapioca//lib/tapioca/commands/annotations.rb#46 + # source://tapioca//lib/tapioca/commands/annotations.rb#50 sig { returns(T::Array[::String]) } def list_gemfile_gems; end - # source://tapioca//lib/tapioca/commands/annotations.rb#223 + # source://tapioca//lib/tapioca/commands/annotations.rb#225 sig { params(gem_name: ::String, contents: T::Array[::String]).returns(T.nilable(::String)) } def merge_files(gem_name, contents); end - # source://tapioca//lib/tapioca/commands/annotations.rb#56 + # source://tapioca//lib/tapioca/commands/annotations.rb#60 sig { params(project_gems: T::Array[::String]).void } def remove_expired_annotations(project_gems); end - # source://tapioca//lib/tapioca/commands/annotations.rb#250 + # source://tapioca//lib/tapioca/commands/annotations.rb#252 sig { returns(T::Hash[::String, T.nilable(::String)]) } def repo_tokens; end - # source://tapioca//lib/tapioca/commands/annotations.rb#278 + # source://tapioca//lib/tapioca/commands/annotations.rb#280 sig { params(path: ::String, repo_uri: ::String, message: ::String).void } def say_http_error(path, repo_uri, message:); end - # source://tapioca//lib/tapioca/commands/annotations.rb#262 + # source://tapioca//lib/tapioca/commands/annotations.rb#264 sig { params(repo_uri: ::String).returns(T.nilable(::String)) } def token_for(repo_uri); end end @@ -581,7 +835,9 @@ class Tapioca::Commands::CheckShims < ::Tapioca::Commands::CommandWithoutTracker end def initialize(gem_rbi_dir:, dsl_rbi_dir:, annotations_rbi_dir:, shim_rbi_dir:, todo_rbi_file:, payload:, number_of_workers:); end - # source://tapioca//lib/tapioca/commands/check_shims.rb#42 + private + + # source://tapioca//lib/tapioca/commands/check_shims.rb#44 sig { override.void } def execute; end end @@ -603,19 +859,17 @@ class Tapioca::Commands::Command sig { void } def initialize; end - # @abstract - # - # source://tapioca//lib/tapioca/commands/command.rb#25 - sig { abstract.void } - def execute; end - - # source://thor/1.2.2/lib/thor/base.rb#139 + # source://thor/1.3.0/lib/thor/base.rb#155 sig { returns(::Thor::Actions) } def file_writer; end + # source://tapioca//lib/tapioca/commands/command.rb#25 + sig(:final) { void } + def run; end + private - # source://tapioca//lib/tapioca/commands/command.rb#46 + # source://tapioca//lib/tapioca/commands/command.rb#53 sig do params( path: T.any(::Pathname, ::String), @@ -627,11 +881,17 @@ class Tapioca::Commands::Command end def create_file(path, content, force: T.unsafe(nil), skip: T.unsafe(nil), verbose: T.unsafe(nil)); end - # source://tapioca//lib/tapioca/commands/command.rb#30 + # source://tapioca//lib/tapioca/commands/command.rb#37 sig { params(command: ::Symbol, args: ::String).returns(::String) } def default_command(command, *args); end - # source://tapioca//lib/tapioca/commands/command.rb#56 + # @abstract + # + # source://tapioca//lib/tapioca/commands/command.rb#34 + sig { abstract.void } + def execute; end + + # source://tapioca//lib/tapioca/commands/command.rb#63 sig { params(path: T.any(::Pathname, ::String), verbose: T::Boolean).void } def remove_file(path, verbose: T.unsafe(nil)); end end @@ -659,10 +919,6 @@ class Tapioca::Commands::Configure < ::Tapioca::Commands::CommandWithoutTracker sig { params(sorbet_config: ::String, tapioca_config: ::String, default_postrequire: ::String).void } def initialize(sorbet_config:, tapioca_config:, default_postrequire:); end - # source://tapioca//lib/tapioca/commands/configure.rb#30 - sig { override.void } - def execute; end - private # source://tapioca//lib/tapioca/commands/configure.rb#79 @@ -681,6 +937,10 @@ class Tapioca::Commands::Configure < ::Tapioca::Commands::CommandWithoutTracker sig { void } def create_tapioca_config; end + # source://tapioca//lib/tapioca/commands/configure.rb#32 + sig { override.void } + def execute; end + # source://tapioca//lib/tapioca/commands/configure.rb#92 sig { returns(::Bundler::Installer) } def installer; end @@ -690,224 +950,62 @@ class Tapioca::Commands::Configure < ::Tapioca::Commands::CommandWithoutTracker def spec; end end -# source://tapioca//lib/tapioca/commands/dsl.rb#6 -class Tapioca::Commands::Dsl < ::Tapioca::Commands::CommandWithoutTracker - include ::Tapioca::SorbetHelper - include ::Tapioca::RBIFilesHelper - - # source://tapioca//lib/tapioca/commands/dsl.rb#30 - sig do - params( - requested_constants: T::Array[::String], - requested_paths: T::Array[::Pathname], - outpath: ::Pathname, - only: T::Array[::String], - exclude: T::Array[::String], - file_header: T::Boolean, - tapioca_path: ::String, - should_verify: T::Boolean, - quiet: T::Boolean, - verbose: T::Boolean, - number_of_workers: T.nilable(::Integer), - auto_strictness: T::Boolean, - gem_dir: ::String, - rbi_formatter: ::Tapioca::RBIFormatter, - app_root: ::String, - halt_upon_load_error: T::Boolean - ).void - end - def initialize(requested_constants:, requested_paths:, outpath:, only:, exclude:, file_header:, tapioca_path:, should_verify: T.unsafe(nil), quiet: T.unsafe(nil), verbose: T.unsafe(nil), number_of_workers: T.unsafe(nil), auto_strictness: T.unsafe(nil), gem_dir: T.unsafe(nil), rbi_formatter: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end +# source://tapioca//lib/tapioca/commands/dsl_compiler_list.rb#6 +class Tapioca::Commands::DslCompilerList < ::Tapioca::Commands::AbstractDsl + private - # source://tapioca//lib/tapioca/commands/dsl.rb#97 + # source://tapioca//lib/tapioca/commands/dsl_compiler_list.rb#10 sig { override.void } def execute; end +end - # source://tapioca//lib/tapioca/commands/dsl.rb#69 - sig { void } - def list_compilers; end - +# source://tapioca//lib/tapioca/commands/dsl_generate.rb#6 +class Tapioca::Commands::DslGenerate < ::Tapioca::Commands::AbstractDsl private - # source://tapioca//lib/tapioca/commands/dsl.rb#330 - sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) } - def build_error_for_files(cause, files); end - - # source://tapioca//lib/tapioca/commands/dsl.rb#254 - sig do - params( - constant_name: ::String, - rbi: ::RBI::File, - outpath: ::Pathname, - quiet: T::Boolean - ).returns(T.nilable(::Pathname)) - end - def compile_dsl_rbi(constant_name, rbi, outpath: T.unsafe(nil), quiet: T.unsafe(nil)); end - - # source://tapioca//lib/tapioca/commands/dsl.rb#192 - sig { params(constant_names: T::Array[::String], ignore_missing: T::Boolean).returns(T::Array[::Module]) } - def constantize(constant_names, ignore_missing: T.unsafe(nil)); end - - # source://tapioca//lib/tapioca/commands/dsl.rb#215 - sig { params(compiler_names: T::Array[::String]).returns(T::Array[T.class_of(Tapioca::Dsl::Compiler)]) } - def constantize_compilers(compiler_names); end - - # source://tapioca//lib/tapioca/commands/dsl.rb#390 - sig { returns(T::Array[::String]) } - def constants_from_requested_paths; end - - # source://tapioca//lib/tapioca/commands/dsl.rb#163 - sig { returns(::Tapioca::Dsl::Pipeline) } - def create_pipeline; end - - # source://tapioca//lib/tapioca/commands/dsl.rb#293 - sig { params(constant_name: ::String).returns(::Pathname) } - def dsl_rbi_filename(constant_name); end - - # source://tapioca//lib/tapioca/commands/dsl.rb#178 - sig { params(requested_constants: T::Array[::String], path: ::Pathname).returns(T::Set[::Pathname]) } - def existing_rbi_filenames(requested_constants, path: T.unsafe(nil)); end - - # source://tapioca//lib/tapioca/commands/dsl.rb#385 - sig { params(constant: ::String).returns(::String) } - def generate_command_for(constant); end - - # source://tapioca//lib/tapioca/commands/dsl.rb#272 - sig { params(dir: ::Pathname).void } - def perform_dsl_verification(dir); end - - # source://tapioca//lib/tapioca/commands/dsl.rb#281 - sig { params(files: T::Set[::Pathname]).void } - def purge_stale_dsl_rbi_files(files); end - - # source://tapioca//lib/tapioca/commands/dsl.rb#380 - sig { params(constant: ::String).returns(::String) } - def rbi_filename_for(constant); end - - # source://tapioca//lib/tapioca/commands/dsl.rb#361 - sig { params(path: ::Pathname).returns(T::Array[::Pathname]) } - def rbi_files_in(path); end - - # source://tapioca//lib/tapioca/commands/dsl.rb#339 - sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void } - def report_diff_and_exit_if_out_of_date(diff, command); end - - # source://tapioca//lib/tapioca/commands/dsl.rb#234 - sig { params(name: ::String).returns(T.nilable(T.class_of(Tapioca::Dsl::Compiler))) } - def resolve(name); end - - # source://tapioca//lib/tapioca/commands/dsl.rb#368 - sig { params(class_name: ::String).returns(::String) } - def underscore(class_name); end - - # source://tapioca//lib/tapioca/commands/dsl.rb#298 - sig { params(tmp_dir: ::Pathname).returns(T::Hash[::String, ::Symbol]) } - def verify_dsl_rbi(tmp_dir:); end + # source://tapioca//lib/tapioca/commands/dsl_generate.rb#10 + sig { override.void } + def execute; end end -# source://tapioca//lib/tapioca/commands/gem.rb#6 -class Tapioca::Commands::Gem < ::Tapioca::Commands::Command - include ::Tapioca::SorbetHelper - include ::Tapioca::RBIFilesHelper - - # source://tapioca//lib/tapioca/commands/gem.rb#29 - sig do - params( - gem_names: T::Array[::String], - exclude: T::Array[::String], - prerequire: T.nilable(::String), - postrequire: ::String, - typed_overrides: T::Hash[::String, ::String], - outpath: ::Pathname, - file_header: T::Boolean, - include_doc: T::Boolean, - include_loc: T::Boolean, - include_exported_rbis: T::Boolean, - number_of_workers: T.nilable(::Integer), - auto_strictness: T::Boolean, - dsl_dir: ::String, - rbi_formatter: ::Tapioca::RBIFormatter, - halt_upon_load_error: T::Boolean - ).void - end - def initialize(gem_names:, exclude:, prerequire:, postrequire:, typed_overrides:, outpath:, file_header:, include_doc:, include_loc:, include_exported_rbis:, number_of_workers: T.unsafe(nil), auto_strictness: T.unsafe(nil), dsl_dir: T.unsafe(nil), rbi_formatter: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end +# source://tapioca//lib/tapioca/commands/dsl_verify.rb#6 +class Tapioca::Commands::DslVerify < ::Tapioca::Commands::AbstractDsl + private - # source://tapioca//lib/tapioca/commands/gem.rb#70 + # source://tapioca//lib/tapioca/commands/dsl_verify.rb#10 sig { override.void } def execute; end +end - # source://tapioca//lib/tapioca/commands/gem.rb#109 - sig { params(should_verify: T::Boolean, exclude: T::Array[::String]).void } - def sync(should_verify: T.unsafe(nil), exclude: T.unsafe(nil)); end - +# source://tapioca//lib/tapioca/commands/gem_generate.rb#6 +class Tapioca::Commands::GemGenerate < ::Tapioca::Commands::AbstractGem private - # source://tapioca//lib/tapioca/commands/gem.rb#288 - sig { returns(T::Array[::String]) } - def added_rbis; end - - # source://tapioca//lib/tapioca/commands/gem.rb#349 - sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) } - def build_error_for_files(cause, files); end - - # source://tapioca//lib/tapioca/commands/gem.rb#158 - sig { params(gem: ::Tapioca::Gemfile::GemSpec).void } - def compile_gem_rbi(gem); end - - # source://tapioca//lib/tapioca/commands/gem.rb#283 - sig { params(gem_name: ::String).returns(::Pathname) } - def existing_rbi(gem_name); end - - # source://tapioca//lib/tapioca/commands/gem.rb#331 - sig { returns(T::Hash[::String, ::String]) } - def existing_rbis; end - - # source://tapioca//lib/tapioca/commands/gem.rb#295 - sig { params(gem_name: ::String).returns(::Pathname) } - def expected_rbi(gem_name); end - - # source://tapioca//lib/tapioca/commands/gem.rb#337 - sig { returns(T::Hash[::String, ::String]) } - def expected_rbis; end - - # source://tapioca//lib/tapioca/commands/gem.rb#300 - sig { params(gem_name: ::String).returns(T::Boolean) } - def gem_rbi_exists?(gem_name); end - - # source://tapioca//lib/tapioca/commands/gem.rb#344 - sig { params(gem_name: ::String, version: ::String).returns(::Pathname) } - def gem_rbi_filename(gem_name, version); end + # source://tapioca//lib/tapioca/commands/gem_generate.rb#10 + sig { override.void } + def execute; end +end - # source://tapioca//lib/tapioca/commands/gem.rb#143 - sig { params(gem_names: T::Array[::String]).returns(T::Array[::Tapioca::Gemfile::GemSpec]) } - def gems_to_generate(gem_names); end +# source://tapioca//lib/tapioca/commands/gem_sync.rb#6 +class Tapioca::Commands::GemSync < ::Tapioca::Commands::AbstractGem + private - # source://tapioca//lib/tapioca/commands/gem.rb#354 - sig { params(gem: ::Tapioca::Gemfile::GemSpec, file: ::RBI::File).void } - def merge_with_exported_rbi(gem, file); end + # source://tapioca//lib/tapioca/commands/gem_sync.rb#10 + sig { override.void } + def execute; end +end - # source://tapioca//lib/tapioca/commands/gem.rb#325 - sig { params(old_filename: ::Pathname, new_filename: ::Pathname).void } - def move(old_filename, new_filename); end +# source://tapioca//lib/tapioca/commands/gem_verify.rb#6 +class Tapioca::Commands::GemVerify < ::Tapioca::Commands::AbstractGem + private - # source://tapioca//lib/tapioca/commands/gem.rb#235 - sig { void } - def perform_additions; end + # source://tapioca//lib/tapioca/commands/gem_verify.rb#10 + sig { override.void } + def execute; end - # source://tapioca//lib/tapioca/commands/gem.rb#208 + # source://tapioca//lib/tapioca/commands/gem_verify.rb#17 sig { void } - def perform_removals; end - - # source://tapioca//lib/tapioca/commands/gem.rb#189 - sig { params(exclude: T::Array[::String]).void } - def perform_sync_verification(exclude: T.unsafe(nil)); end - - # source://tapioca//lib/tapioca/commands/gem.rb#278 - sig { returns(T::Array[::String]) } - def removed_rbis; end - - # source://tapioca//lib/tapioca/commands/gem.rb#305 - sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void } - def report_diff_and_exit_if_out_of_date(diff, command); end + def perform_sync_verification; end end # source://tapioca//lib/tapioca/commands/require.rb#6 @@ -916,7 +1014,9 @@ class Tapioca::Commands::Require < ::Tapioca::Commands::CommandWithoutTracker sig { params(requires_path: ::String, sorbet_config_path: ::String).void } def initialize(requires_path:, sorbet_config_path:); end - # source://tapioca//lib/tapioca/commands/require.rb#21 + private + + # source://tapioca//lib/tapioca/commands/require.rb#23 sig { override.void } def execute; end end @@ -925,25 +1025,32 @@ end class Tapioca::Commands::Todo < ::Tapioca::Commands::CommandWithoutTracker include ::Tapioca::SorbetHelper - # source://tapioca//lib/tapioca/commands/todo.rb#15 + # source://tapioca//lib/tapioca/commands/todo.rb#26 sig { params(todo_file: ::String, file_header: T::Boolean).void } def initialize(todo_file:, file_header:); end - # source://tapioca//lib/tapioca/commands/todo.rb#23 - sig { override.void } - def execute; end + # source://tapioca//lib/tapioca/commands/todo.rb#34 + sig { void } + def run_with_deprecation; end private - # source://tapioca//lib/tapioca/commands/todo.rb#49 + # source://tapioca//lib/tapioca/commands/todo.rb#44 + sig { override.void } + def execute; end + + # source://tapioca//lib/tapioca/commands/todo.rb#68 sig { params(constants: T::Array[::String], command: ::String).returns(::RBI::File) } def rbi(constants, command:); end - # source://tapioca//lib/tapioca/commands/todo.rb#69 + # source://tapioca//lib/tapioca/commands/todo.rb#88 sig { returns(T::Array[::String]) } def unresolved_constants; end end +# source://tapioca//lib/tapioca/commands/todo.rb#9 +Tapioca::Commands::Todo::DEPRECATION_MESSAGE = T.let(T.unsafe(nil), String) + # source://tapioca//lib/tapioca/helpers/config_helper.rb#5 module Tapioca::ConfigHelper requires_ancestor { Thor } @@ -1014,7 +1121,7 @@ class Tapioca::ConfigHelper::ConfigError < ::T::Struct const :message_parts, T::Array[::Tapioca::ConfigHelper::ConfigErrorMessagePart] class << self - # source://sorbet-runtime/0.5.10908/lib/types/struct.rb#13 + # source://sorbet-runtime/0.5.11143/lib/types/struct.rb#13 def inherited(s); end end end @@ -1025,7 +1132,7 @@ class Tapioca::ConfigHelper::ConfigErrorMessagePart < ::T::Struct const :colors, T::Array[::Symbol] class << self - # source://sorbet-runtime/0.5.10908/lib/types/struct.rb#13 + # source://sorbet-runtime/0.5.11143/lib/types/struct.rb#13 def inherited(s); end end end @@ -1082,17 +1189,17 @@ class Tapioca::Dsl::Compiler ConstantType = type_member { { upper: Module } } - # source://tapioca//lib/tapioca/dsl/compiler.rb#60 + # source://tapioca//lib/tapioca/dsl/compiler.rb#64 sig { params(pipeline: ::Tapioca::Dsl::Pipeline, root: ::RBI::Tree, constant: ConstantType).void } def initialize(pipeline, root, constant); end # NOTE: This should eventually accept an `Error` object or `Exception` rather than simply a `String`. # - # source://tapioca//lib/tapioca/dsl/compiler.rb#77 + # source://tapioca//lib/tapioca/dsl/compiler.rb#81 sig { params(error: ::String).void } def add_error(error); end - # source://tapioca//lib/tapioca/dsl/compiler.rb#68 + # source://tapioca//lib/tapioca/dsl/compiler.rb#72 sig { params(compiler_name: ::String).returns(T::Boolean) } def compiler_enabled?(compiler_name); end @@ -1102,7 +1209,7 @@ class Tapioca::Dsl::Compiler # @abstract # - # source://tapioca//lib/tapioca/dsl/compiler.rb#73 + # source://tapioca//lib/tapioca/dsl/compiler.rb#77 sig { abstract.void } def decorate; end @@ -1112,21 +1219,21 @@ class Tapioca::Dsl::Compiler private - # source://tapioca//lib/tapioca/dsl/compiler.rb#126 + # source://tapioca//lib/tapioca/dsl/compiler.rb#130 sig { params(method_def: T.any(::Method, ::UnboundMethod)).returns(T::Array[::RBI::TypedParam]) } def compile_method_parameters_to_rbi(method_def); end - # source://tapioca//lib/tapioca/dsl/compiler.rb#162 + # source://tapioca//lib/tapioca/dsl/compiler.rb#166 sig { params(method_def: T.any(::Method, ::UnboundMethod)).returns(::String) } def compile_method_return_type_to_rbi(method_def); end - # source://tapioca//lib/tapioca/dsl/compiler.rb#116 + # source://tapioca//lib/tapioca/dsl/compiler.rb#120 sig { params(scope: ::RBI::Scope, method_def: T.any(::Method, ::UnboundMethod), class_method: T::Boolean).void } def create_method_from_def(scope, method_def, class_method: T.unsafe(nil)); end # Get the types of each parameter from a method signature # - # source://tapioca//lib/tapioca/dsl/compiler.rb#90 + # source://tapioca//lib/tapioca/dsl/compiler.rb#94 sig { params(method_def: T.any(::Method, ::UnboundMethod), signature: T.untyped).returns(T::Array[::String]) } def parameters_types_from_signature(method_def, signature); end @@ -1151,7 +1258,7 @@ class Tapioca::Dsl::Compiler sig { returns(T::Enumerable[T::Class[T.anything]]) } def all_classes; end - # source://tapioca//lib/tapioca/dsl/compiler.rb#53 + # source://tapioca//lib/tapioca/dsl/compiler.rb#55 sig { returns(T::Enumerable[::Module]) } def all_modules; end end @@ -1228,15 +1335,15 @@ class Tapioca::Dsl::Pipeline private - # source://tapioca//lib/tapioca/dsl/pipeline.rb#193 + # source://tapioca//lib/tapioca/dsl/pipeline.rb#195 sig { void } def abort_if_pending_migrations!; end - # source://tapioca//lib/tapioca/dsl/pipeline.rb#139 + # source://tapioca//lib/tapioca/dsl/pipeline.rb#141 sig { params(constants: T::Set[::Module]).returns(T::Set[::Module]) } def filter_anonymous_and_reloaded_constants(constants); end - # source://tapioca//lib/tapioca/dsl/pipeline.rb#122 + # source://tapioca//lib/tapioca/dsl/pipeline.rb#124 sig do params( requested_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)], @@ -1245,7 +1352,7 @@ class Tapioca::Dsl::Pipeline end def gather_active_compilers(requested_compilers, excluded_compilers); end - # source://tapioca//lib/tapioca/dsl/pipeline.rb#130 + # source://tapioca//lib/tapioca/dsl/pipeline.rb#132 sig do params( requested_constants: T::Array[::Module], @@ -1254,11 +1361,11 @@ class Tapioca::Dsl::Pipeline end def gather_constants(requested_constants, requested_paths); end - # source://tapioca//lib/tapioca/dsl/pipeline.rb#167 + # source://tapioca//lib/tapioca/dsl/pipeline.rb#169 sig { params(constant: ::Module).returns(T.nilable(::RBI::File)) } def rbi_for_constant(constant); end - # source://tapioca//lib/tapioca/dsl/pipeline.rb#186 + # source://tapioca//lib/tapioca/dsl/pipeline.rb#188 sig { params(error: ::String).returns(T.noreturn) } def report_error(error); end end @@ -1796,7 +1903,7 @@ class Tapioca::Gem::Pipeline sig { returns(::RBI::Tree) } def compile; end - # source://tapioca//lib/tapioca/gem/pipeline.rb#110 + # source://tapioca//lib/tapioca/gem/pipeline.rb#119 sig { params(name: T.any(::String, ::Symbol)).returns(T::Boolean) } def constant_in_gem?(name); end @@ -1804,31 +1911,33 @@ class Tapioca::Gem::Pipeline sig { returns(::Tapioca::Gemfile::GemSpec) } def gem; end - # source://tapioca//lib/tapioca/gem/pipeline.rb#122 + # source://tapioca//lib/tapioca/gem/pipeline.rb#137 sig { params(method: ::UnboundMethod).returns(T::Boolean) } def method_in_gem?(method); end - # source://tapioca//lib/tapioca/gem/pipeline.rb#130 + # Helpers + # + # source://tapioca//lib/tapioca/gem/pipeline.rb#147 sig { params(constant: ::Module).returns(T.nilable(::String)) } def name_of(constant); end - # source://tapioca//lib/tapioca/gem/pipeline.rb#69 + # source://tapioca//lib/tapioca/gem/pipeline.rb#71 sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Const).void } def push_const(symbol, constant, node); end - # source://tapioca//lib/tapioca/gem/pipeline.rb#59 + # source://tapioca//lib/tapioca/gem/pipeline.rb#61 sig { params(symbol: ::String, constant: ::BasicObject).void } def push_constant(symbol, constant); end - # source://tapioca//lib/tapioca/gem/pipeline.rb#64 + # source://tapioca//lib/tapioca/gem/pipeline.rb#66 sig { params(symbol: ::String, constant: ::Module).void } def push_foreign_constant(symbol, constant); end - # source://tapioca//lib/tapioca/gem/pipeline.rb#83 + # source://tapioca//lib/tapioca/gem/pipeline.rb#85 sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void } def push_foreign_scope(symbol, constant, node); end - # source://tapioca//lib/tapioca/gem/pipeline.rb#97 + # source://tapioca//lib/tapioca/gem/pipeline.rb#99 sig do params( symbol: ::String, @@ -1841,103 +1950,148 @@ class Tapioca::Gem::Pipeline end def push_method(symbol, constant, method, node, signature, parameters); end - # source://tapioca//lib/tapioca/gem/pipeline.rb#76 + # source://tapioca//lib/tapioca/gem/pipeline.rb#78 sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void } def push_scope(symbol, constant, node); end - # source://tapioca//lib/tapioca/gem/pipeline.rb#54 + # Events handling + # + # source://tapioca//lib/tapioca/gem/pipeline.rb#56 sig { params(symbol: ::String).void } def push_symbol(symbol); end - # source://tapioca//lib/tapioca/gem/pipeline.rb#102 + # Constants and properties filtering + # + # source://tapioca//lib/tapioca/gem/pipeline.rb#106 sig { params(symbol_name: ::String).returns(T::Boolean) } def symbol_in_payload?(symbol_name); end private - # source://tapioca//lib/tapioca/gem/pipeline.rb#376 + # source://tapioca//lib/tapioca/gem/pipeline.rb#441 sig { params(name: ::String).void } def add_to_alias_namespace(name); end - # source://tapioca//lib/tapioca/gem/pipeline.rb#381 + # source://tapioca//lib/tapioca/gem/pipeline.rb#446 sig { params(name: ::String).returns(T::Boolean) } def alias_namespaced?(name); end - # source://tapioca//lib/tapioca/gem/pipeline.rb#225 + # source://tapioca//lib/tapioca/gem/pipeline.rb#244 sig { params(name: ::String, constant: ::Module).void } def compile_alias(name, constant); end - # source://tapioca//lib/tapioca/gem/pipeline.rb#211 + # source://tapioca//lib/tapioca/gem/pipeline.rb#230 sig { params(symbol: ::String, constant: ::BasicObject).void } def compile_constant(symbol, constant); end - # Compile + # Compiling # - # source://tapioca//lib/tapioca/gem/pipeline.rb#206 + # source://tapioca//lib/tapioca/gem/pipeline.rb#219 sig { params(symbol: ::String, constant: ::Module).void } def compile_foreign_constant(symbol, constant); end - # source://tapioca//lib/tapioca/gem/pipeline.rb#283 - sig { params(name: ::String, constant: ::Module, foreign_constant: T::Boolean).void } - def compile_module(name, constant, foreign_constant: T.unsafe(nil)); end + # source://tapioca//lib/tapioca/gem/pipeline.rb#300 + sig { params(name: ::String, constant: ::Module).void } + def compile_module(name, constant); end - # source://tapioca//lib/tapioca/gem/pipeline.rb#247 + # source://tapioca//lib/tapioca/gem/pipeline.rb#265 sig { params(name: ::String, value: ::BasicObject).void } def compile_object(name, value); end - # source://tapioca//lib/tapioca/gem/pipeline.rb#308 + # source://tapioca//lib/tapioca/gem/pipeline.rb#311 + sig { params(name: ::String, constant: ::Module).returns(::RBI::Scope) } + def compile_scope(name, constant); end + + # source://tapioca//lib/tapioca/gem/pipeline.rb#325 sig { params(constant: T::Class[T.anything]).returns(T.nilable(::String)) } def compile_superclass(constant); end - # source://tapioca//lib/tapioca/gem/pipeline.rb#357 + # source://tapioca//lib/tapioca/gem/pipeline.rb#422 sig { params(constant: ::Module, strict: T::Boolean).returns(T::Boolean) } def defined_in_gem?(constant, strict: T.unsafe(nil)); end - # source://tapioca//lib/tapioca/gem/pipeline.rb#158 + # source://tapioca//lib/tapioca/gem/pipeline.rb#177 sig { params(event: ::Tapioca::Gem::Event).void } def dispatch(event); end - # source://tapioca//lib/tapioca/gem/pipeline.rb#398 + # Helpers + # + # source://tapioca//lib/tapioca/gem/pipeline.rb#465 sig { params(constant: T.all(::Module, ::T::Generic)).returns(::String) } def generic_name_of(constant); end - # source://tapioca//lib/tapioca/gem/pipeline.rb#369 + # source://tapioca//lib/tapioca/gem/pipeline.rb#434 sig { params(constant: ::Module).returns(T::Set[::String]) } def get_file_candidates(constant); end - # source://tapioca//lib/tapioca/gem/pipeline.rb#145 + # source://tapioca//lib/tapioca/gem/pipeline.rb#162 sig { params(gem: ::Tapioca::Gemfile::GemSpec).returns(T::Set[::String]) } def load_bootstrap_symbols(gem); end - # source://tapioca//lib/tapioca/gem/pipeline.rb#388 - sig { params(name: ::String).void } - def mark_seen(name); end - - # source://tapioca//lib/tapioca/gem/pipeline.rb#414 + # source://tapioca//lib/tapioca/gem/pipeline.rb#481 sig { params(constant: ::Module, class_name: T.nilable(::String)).returns(T.nilable(::String)) } def name_of_proxy_target(constant, class_name); end - # source://tapioca//lib/tapioca/gem/pipeline.rb#153 + # Events handling + # + # source://tapioca//lib/tapioca/gem/pipeline.rb#172 sig { returns(::Tapioca::Gem::Event) } def next_event; end - # source://tapioca//lib/tapioca/gem/pipeline.rb#181 + # source://tapioca//lib/tapioca/gem/pipeline.rb#200 sig { params(event: ::Tapioca::Gem::ConstantFound).void } def on_constant(event); end - # source://tapioca//lib/tapioca/gem/pipeline.rb#199 + # source://tapioca//lib/tapioca/gem/pipeline.rb#212 sig { params(event: ::Tapioca::Gem::NodeAdded).void } def on_node(event); end - # source://tapioca//lib/tapioca/gem/pipeline.rb#172 + # source://tapioca//lib/tapioca/gem/pipeline.rb#191 sig { params(event: ::Tapioca::Gem::SymbolFound).void } def on_symbol(event); end - # source://tapioca//lib/tapioca/gem/pipeline.rb#393 + # source://tapioca//lib/tapioca/gem/pipeline.rb#453 + sig { params(name: ::String).void } + def seen!(name); end + + # source://tapioca//lib/tapioca/gem/pipeline.rb#458 sig { params(name: ::String).returns(T::Boolean) } def seen?(name); end + + # source://tapioca//lib/tapioca/gem/pipeline.rb#393 + sig { params(name: ::String, constant: ::Module).returns(T::Boolean) } + def skip_alias?(name, constant); end + + # source://tapioca//lib/tapioca/gem/pipeline.rb#381 + sig { params(name: ::String, constant: T.anything).returns(T::Boolean) } + def skip_constant?(name, constant); end + + # source://tapioca//lib/tapioca/gem/pipeline.rb#409 + sig { params(name: ::String, constant: ::Module).returns(T::Boolean) } + def skip_foreign_constant?(name, constant); end + + # source://tapioca//lib/tapioca/gem/pipeline.rb#414 + sig { params(name: ::String, constant: ::Module).returns(T::Boolean) } + def skip_module?(name, constant); end + + # source://tapioca//lib/tapioca/gem/pipeline.rb#401 + sig { params(name: ::String, constant: ::BasicObject).returns(T::Boolean) } + def skip_object?(name, constant); end + + # Constants and properties filtering + # + # source://tapioca//lib/tapioca/gem/pipeline.rb#376 + sig { params(name: ::String).returns(T::Boolean) } + def skip_symbol?(name); end end +# this looks something like: +# "(eval at /path/to/file.rb:123)" +# and we are just interested in the "/path/to/file.rb" part +# +# source://tapioca//lib/tapioca/gem/pipeline.rb#116 +Tapioca::Gem::Pipeline::EVAL_SOURCE_FILE_PATTERN = T.let(T.unsafe(nil), Regexp) + # source://tapioca//lib/tapioca/gem/pipeline.rb#11 Tapioca::Gem::Pipeline::IGNORED_SYMBOLS = T.let(T.unsafe(nil), Array) @@ -2050,90 +2204,94 @@ end class Tapioca::Gemfile::GemSpec include ::Tapioca::GemHelper - # source://tapioca//lib/tapioca/gemfile.rb#135 + # source://tapioca//lib/tapioca/gemfile.rb#136 sig { params(spec: T.any(::Bundler::StubSpecification, ::Gem::Specification)).void } def initialize(spec); end - # source://tapioca//lib/tapioca/gemfile.rb#145 + # source://tapioca//lib/tapioca/gemfile.rb#146 sig { params(other: ::BasicObject).returns(T::Boolean) } def ==(other); end - # source://tapioca//lib/tapioca/gemfile.rb#165 + # source://tapioca//lib/tapioca/gemfile.rb#171 sig { params(path: ::String).returns(T::Boolean) } def contains_path?(path); end - # source://tapioca//lib/tapioca/gemfile.rb#184 + # source://tapioca//lib/tapioca/gemfile.rb#161 + sig { returns(T::Array[::Gem::Dependency]) } + def dependencies; end + + # source://tapioca//lib/tapioca/gemfile.rb#190 sig { returns(T::Boolean) } def export_rbi_files?; end - # source://tapioca//lib/tapioca/gemfile.rb#179 + # source://tapioca//lib/tapioca/gemfile.rb#185 sig { returns(T::Array[::String]) } def exported_rbi_files; end - # source://tapioca//lib/tapioca/gemfile.rb#189 + # source://tapioca//lib/tapioca/gemfile.rb#195 sig { returns(::RBI::MergeTree) } def exported_rbi_tree; end - # source://tapioca//lib/tapioca/gemfile.rb#132 + # source://tapioca//lib/tapioca/gemfile.rb#133 sig { returns(T::Array[::Pathname]) } def files; end - # source://tapioca//lib/tapioca/gemfile.rb#129 + # source://tapioca//lib/tapioca/gemfile.rb#130 sig { returns(::String) } def full_gem_path; end - # source://tapioca//lib/tapioca/gemfile.rb#150 + # source://tapioca//lib/tapioca/gemfile.rb#151 sig { params(gemfile_dir: ::String).returns(T::Boolean) } def ignore?(gemfile_dir); end - # source://tapioca//lib/tapioca/gemfile.rb#155 + # source://tapioca//lib/tapioca/gemfile.rb#156 sig { returns(::String) } def name; end - # source://tapioca//lib/tapioca/gemfile.rb#174 + # source://tapioca//lib/tapioca/gemfile.rb#180 sig { void } def parse_yard_docs; end - # source://tapioca//lib/tapioca/gemfile.rb#160 + # source://tapioca//lib/tapioca/gemfile.rb#166 sig { returns(::String) } def rbi_file_name; end - # source://tapioca//lib/tapioca/gemfile.rb#201 + # source://tapioca//lib/tapioca/gemfile.rb#207 sig { params(file: ::Pathname).returns(::Pathname) } def relative_path_for(file); end # @return [String] # - # source://tapioca//lib/tapioca/gemfile.rb#129 + # source://tapioca//lib/tapioca/gemfile.rb#130 def version; end private - # source://tapioca//lib/tapioca/gemfile.rb#212 + # source://tapioca//lib/tapioca/gemfile.rb#218 sig { returns(T::Array[::Pathname]) } def collect_files; end - # source://tapioca//lib/tapioca/gemfile.rb#227 + # source://tapioca//lib/tapioca/gemfile.rb#233 sig { returns(T.nilable(T::Boolean)) } def default_gem?; end - # source://tapioca//lib/tapioca/gemfile.rb#285 + # source://tapioca//lib/tapioca/gemfile.rb#292 sig { returns(T::Boolean) } def gem_ignored?; end - # source://tapioca//lib/tapioca/gemfile.rb#264 + # source://tapioca//lib/tapioca/gemfile.rb#271 sig { params(path: ::String).returns(T::Boolean) } def has_parent_gemspec?(path); end - # source://tapioca//lib/tapioca/gemfile.rb#232 + # source://tapioca//lib/tapioca/gemfile.rb#238 sig { returns(::Regexp) } def require_paths_prefix_matcher; end - # source://tapioca//lib/tapioca/gemfile.rb#243 + # source://tapioca//lib/tapioca/gemfile.rb#250 sig { params(file: ::String).returns(::Pathname) } def resolve_to_ruby_lib_dir(file); end - # source://tapioca//lib/tapioca/gemfile.rb#257 + # source://tapioca//lib/tapioca/gemfile.rb#264 sig { returns(::String) } def version_string; end @@ -2172,11 +2330,11 @@ class Tapioca::Loaders::Dsl < ::Tapioca::Loaders::Loader protected - # source://tapioca//lib/tapioca/loaders/dsl.rb#71 + # source://tapioca//lib/tapioca/loaders/dsl.rb#81 sig { void } def load_application; end - # source://tapioca//lib/tapioca/loaders/dsl.rb#53 + # source://tapioca//lib/tapioca/loaders/dsl.rb#63 sig { void } def load_dsl_compilers; end @@ -2263,6 +2421,17 @@ class Tapioca::Loaders::Loader private + # Rails 7.2 renamed `eager_load_paths` to `all_eager_load_paths`, which maintains the same original functionality. + # The `eager_load_paths` method still exists, but doesn't return all paths anymore and causes Tapioca to miss some + # engine paths. The following commit is the change: + # https://github.com/rails/rails/commit/ebfca905db14020589c22e6937382e6f8f687664 + # + # @param engine [T.class_of(Rails::Engine)] + # @return [Array] + # + # source://sorbet-runtime/0.5.11143/lib/types/private/methods/_methods.rb#255 + def eager_load_paths(*args, **_arg1, &blk); end + # source://tapioca//lib/tapioca/loaders/loader.rb#198 sig { void } def eager_load_rails_app; end @@ -3148,7 +3317,7 @@ module Tapioca::Static::SymbolLoader sig { params(gem: ::Tapioca::Gemfile::GemSpec).returns(T::Set[::String]) } def engine_symbols(gem); end - # source://tapioca//lib/tapioca/static/symbol_loader.rb#40 + # source://tapioca//lib/tapioca/static/symbol_loader.rb#48 sig { params(gem: ::Tapioca::Gemfile::GemSpec).returns(T::Set[::String]) } def gem_symbols(gem); end @@ -3156,7 +3325,7 @@ module Tapioca::Static::SymbolLoader sig { returns(T::Set[::String]) } def payload_symbols; end - # source://tapioca//lib/tapioca/static/symbol_loader.rb#45 + # source://tapioca//lib/tapioca/static/symbol_loader.rb#53 sig { params(paths: T::Array[::Pathname]).returns(T::Set[::String]) } def symbols_from_paths(paths); end @@ -3164,10 +3333,10 @@ module Tapioca::Static::SymbolLoader # @return [Array] # - # source://sorbet-runtime/0.5.10908/lib/types/private/methods/_methods.rb#255 + # source://sorbet-runtime/0.5.11143/lib/types/private/methods/_methods.rb#255 def engines(*args, **_arg1, &blk); end - # source://tapioca//lib/tapioca/static/symbol_loader.rb#73 + # source://tapioca//lib/tapioca/static/symbol_loader.rb#82 sig { params(input: ::String, table_type: ::String).returns(::String) } def symbol_table_json_from(input, table_type: T.unsafe(nil)); end end @@ -3242,11 +3411,11 @@ class Tapioca::TypeVariableModule < ::Module end def initialize(context, type, variance, fixed, lower, upper, bounds_proc); end - # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#231 + # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#218 sig { returns(::Tapioca::TypeVariable) } def coerce_to_type_variable; end - # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#211 + # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#198 sig { returns(T::Boolean) } def fixed?; end @@ -3254,7 +3423,7 @@ class Tapioca::TypeVariableModule < ::Module sig { returns(T.nilable(::String)) } def name; end - # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#216 + # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#203 sig { returns(::String) } def serialize; end @@ -3264,11 +3433,11 @@ class Tapioca::TypeVariableModule < ::Module private - # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#265 + # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#238 sig { returns(T::Hash[::Symbol, T.untyped]) } def bounds; end - # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#241 + # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#228 sig do params( fixed: T.untyped, @@ -3277,15 +3446,6 @@ class Tapioca::TypeVariableModule < ::Module ).returns(T.proc.returns(T::Hash[::Symbol, T.untyped])) end def build_bounds_proc(fixed, lower, upper); end - - # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#255 - sig do - type_parameters(:Result) - .params( - block: T.proc.returns(T.type_parameter(:Result)) - ).returns(T.type_parameter(:Result)) - end - def with_bound_name_pre_3_0(&block); end end # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#154 diff --git a/sorbet/rbi/gems/thor@1.2.2.rbi b/sorbet/rbi/gems/thor@1.3.0.rbi similarity index 80% rename from sorbet/rbi/gems/thor@1.2.2.rbi rename to sorbet/rbi/gems/thor@1.3.0.rbi index dcb11ee2..9ed8f62f 100644 --- a/sorbet/rbi/gems/thor@1.2.2.rbi +++ b/sorbet/rbi/gems/thor@1.3.0.rbi @@ -4,6 +4,30 @@ # This is an autogenerated file for types exported from the `thor` gem. # Please instead update this file by running `bin/tapioca gem thor`. +# source://thor//lib/thor/shell/lcs_diff.rb#1 +module LCSDiff + protected + + # Overwrite show_diff to show diff with colors if Diff::LCS is + # available. + # + # source://thor//lib/thor/shell/lcs_diff.rb#6 + def show_diff(destination, content); end + + private + + # Check if Diff::LCS is loaded. If it is, use it to create pretty output + # for diff. + # + # @return [Boolean] + # + # source://thor//lib/thor/shell/lcs_diff.rb#37 + def diff_lcs_loaded?; end + + # source://thor//lib/thor/shell/lcs_diff.rb#21 + def output_diff_line(diff); end +end + # source://thor//lib/thor/command.rb#1 class Thor include ::Thor::Base @@ -12,23 +36,63 @@ class Thor extend ::Thor::Base::ClassMethods extend ::Thor::Invocation::ClassMethods - # source://thor//lib/thor.rb#505 + # source://thor//lib/thor.rb#652 def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end class << self + # Adds and declares option group for required at least one of options in the + # block of arguments. You can declare options as the outside of the block. + # + # If :for is given as option, it allows you to change the options from + # a previous defined command. + # + # ==== Parameters + # Array[Thor::Option.name] + # options:: :for is applied for previous defined command. + # + # ==== Examples + # + # at_least_one do + # option :one + # option :two + # end + # + # Or + # + # option :one + # option :two + # at_least_one :one, :two + # + # If you do not give "--one" and "--two" AtLeastOneRequiredArgumentError + # will be raised. + # + # You can use at_least_one and exclusive at the same time. + # + # exclusive do + # at_least_one do + # option :one + # option :two + # end + # end + # + # Then it is required either only one of "--one" or "--two". + # + # source://thor//lib/thor.rb#246 + def at_least_one(*args, &block); end + # Extend check unknown options to accept a hash of conditions. # # === Parameters # options: A hash containing :only and/or :except keys # - # source://thor//lib/thor.rb#255 + # source://thor//lib/thor.rb#350 def check_unknown_options!(options = T.unsafe(nil)); end # Overwrite check_unknown_options? to take subcommands and options into account. # # @return [Boolean] # - # source://thor//lib/thor.rb#268 + # source://thor//lib/thor.rb#363 def check_unknown_options?(config); end # Prints help information for the given command. @@ -37,7 +101,7 @@ class Thor # shell # command_name # - # source://thor//lib/thor.rb#172 + # source://thor//lib/thor.rb#258 def command_help(shell, command_name); end # Sets the default command when thor is executed without an explicit command to be called. @@ -76,28 +140,64 @@ class Thor # ==== Parameters # Symbol ...:: A list of commands that should be affected. # - # source://thor//lib/thor.rb#339 + # source://thor//lib/thor.rb#434 def disable_required_check!(*command_names); end # @return [Boolean] # - # source://thor//lib/thor.rb#343 + # source://thor//lib/thor.rb#438 def disable_required_check?(command); end + # Adds and declares option group for exclusive options in the + # block and arguments. You can declare options as the outside of the block. + # + # If :for is given as option, it allows you to change the options from + # a previous defined command. + # + # ==== Parameters + # Array[Thor::Option.name] + # options:: :for is applied for previous defined command. + # + # ==== Examples + # + # exclusive do + # option :one + # option :two + # end + # + # Or + # + # option :one + # option :two + # exclusive :one, :two + # + # If you give "--one" and "--two" at the same time ExclusiveArgumentsError + # will be raised. + # + # source://thor//lib/thor.rb#203 + def exclusive(*args, &block); end + # Prints help information for this class. # # ==== Parameters # shell # - # source://thor//lib/thor.rb#195 + # source://thor//lib/thor.rb#288 def help(shell, subcommand = T.unsafe(nil)); end # Defines the long description of the next command. # + # Long description is by default indented, line-wrapped and repeated whitespace merged. + # In order to print long description verbatim, with indentation and spacing exactly + # as found in the code, use the +wrap+ option + # + # long_desc 'your very long description', wrap: false + # # ==== Parameters # long description + # options # - # source://thor//lib/thor.rb#71 + # source://thor//lib/thor.rb#78 def long_desc(long_description, options = T.unsafe(nil)); end # Maps an input to a command. If you define: @@ -113,9 +213,78 @@ class Thor # ==== Parameters # Hash[String|Array => Symbol]:: Maps the string or the strings in the array to the given command. # - # source://thor//lib/thor.rb#93 + # source://thor//lib/thor.rb#101 def map(mappings = T.unsafe(nil), **kw); end + # Adds and declares option group for required at least one of options in the + # block of arguments. You can declare options as the outside of the block. + # + # If :for is given as option, it allows you to change the options from + # a previous defined command. + # + # ==== Parameters + # Array[Thor::Option.name] + # options:: :for is applied for previous defined command. + # + # ==== Examples + # + # at_least_one do + # option :one + # option :two + # end + # + # Or + # + # option :one + # option :two + # at_least_one :one, :two + # + # If you do not give "--one" and "--two" AtLeastOneRequiredArgumentError + # will be raised. + # + # You can use at_least_one and exclusive at the same time. + # + # exclusive do + # at_least_one do + # option :one + # option :two + # end + # end + # + # Then it is required either only one of "--one" or "--two". + # + # source://thor//lib/thor.rb#246 + def method_at_least_one(*args, &block); end + + # Adds and declares option group for exclusive options in the + # block and arguments. You can declare options as the outside of the block. + # + # If :for is given as option, it allows you to change the options from + # a previous defined command. + # + # ==== Parameters + # Array[Thor::Option.name] + # options:: :for is applied for previous defined command. + # + # ==== Examples + # + # exclusive do + # option :one + # option :two + # end + # + # Or + # + # option :one + # option :two + # exclusive :one, :two + # + # If you give "--one" and "--two" at the same time ExclusiveArgumentsError + # will be raised. + # + # source://thor//lib/thor.rb#203 + def method_exclusive(*args, &block); end + # Adds an option to the set of method options. If :for is given as option, # it allows you to change the options from a previous defined command. # @@ -123,7 +292,7 @@ class Thor # # magic # end # - # method_option :foo => :bar, :for => :previous_command + # method_option :foo, :for => :previous_command # # def next_command # # magic @@ -142,7 +311,7 @@ class Thor # :banner - String to show on usage notes. # :hide - If you want to hide this option from the help. # - # source://thor//lib/thor.rb#155 + # source://thor//lib/thor.rb#163 def method_option(name, options = T.unsafe(nil)); end # Declares the options for the next command to be declared. @@ -152,7 +321,7 @@ class Thor # is the type of the option. Can be :string, :array, :hash, :boolean, :numeric # or :required (string). If you give a value, the type of the value is used. # - # source://thor//lib/thor.rb#121 + # source://thor//lib/thor.rb#129 def method_options(options = T.unsafe(nil)); end # Adds an option to the set of method options. If :for is given as option, @@ -162,7 +331,7 @@ class Thor # # magic # end # - # method_option :foo => :bar, :for => :previous_command + # method_option :foo, :for => :previous_command # # def next_command # # magic @@ -181,7 +350,7 @@ class Thor # :banner - String to show on usage notes. # :hide - If you want to hide this option from the help. # - # source://thor//lib/thor.rb#155 + # source://thor//lib/thor.rb#163 def option(name, options = T.unsafe(nil)); end # Declares the options for the next command to be declared. @@ -191,7 +360,7 @@ class Thor # is the type of the option. Can be :string, :array, :hash, :boolean, :numeric # or :required (string). If you give a value, the type of the value is used. # - # source://thor//lib/thor.rb#121 + # source://thor//lib/thor.rb#129 def options(options = T.unsafe(nil)); end # Allows for custom "Command" package naming. @@ -205,12 +374,12 @@ class Thor # Returns commands ready to be printed. # - # source://thor//lib/thor.rb#214 + # source://thor//lib/thor.rb#309 def printable_commands(all = T.unsafe(nil), subcommand = T.unsafe(nil)); end # Returns commands ready to be printed. # - # source://thor//lib/thor.rb#214 + # source://thor//lib/thor.rb#309 def printable_tasks(all = T.unsafe(nil), subcommand = T.unsafe(nil)); end # Registers another Thor subclass as a command. @@ -262,27 +431,27 @@ class Thor # ==== Parameters # Symbol ...:: A list of commands that should be affected. # - # source://thor//lib/thor.rb#325 + # source://thor//lib/thor.rb#420 def stop_on_unknown_option!(*command_names); end # @return [Boolean] # - # source://thor//lib/thor.rb#329 + # source://thor//lib/thor.rb#424 def stop_on_unknown_option?(command); end - # source://thor//lib/thor.rb#234 + # source://thor//lib/thor.rb#329 def subcommand(subcommand, subcommand_class); end - # source://thor//lib/thor.rb#230 + # source://thor//lib/thor.rb#325 def subcommand_classes; end - # source://thor//lib/thor.rb#225 + # source://thor//lib/thor.rb#320 def subcommands; end - # source://thor//lib/thor.rb#234 + # source://thor//lib/thor.rb#329 def subtask(subcommand, subcommand_class); end - # source://thor//lib/thor.rb#225 + # source://thor//lib/thor.rb#320 def subtasks; end # Prints help information for the given command. @@ -291,7 +460,7 @@ class Thor # shell # command_name # - # source://thor//lib/thor.rb#172 + # source://thor//lib/thor.rb#258 def task_help(shell, command_name); end protected @@ -301,50 +470,66 @@ class Thor # the command that is going to be invoked and a boolean which indicates if # the namespace should be displayed as arguments. # - # source://thor//lib/thor.rb#400 + # source://thor//lib/thor.rb#535 def banner(command, namespace = T.unsafe(nil), subcommand = T.unsafe(nil)); end - # source://thor//lib/thor.rb#406 + # source://thor//lib/thor.rb#541 def baseclass; end - # source://thor//lib/thor.rb#414 + # source://thor//lib/thor.rb#549 def create_command(meth); end - # source://thor//lib/thor.rb#414 + # source://thor//lib/thor.rb#549 def create_task(meth); end # help command has the required check disabled by default. # - # source://thor//lib/thor.rb#354 + # source://thor//lib/thor.rb#467 def disable_required_check; end # The method responsible for dispatching given the args. # # @yield [instance] # - # source://thor//lib/thor.rb#359 + # source://thor//lib/thor.rb#494 def dispatch(meth, given_args, given_opts, config); end - # source://thor//lib/thor.rb#410 + # source://thor//lib/thor.rb#545 def dynamic_command_class; end # this is the logic that takes the command name passed in by the user # and determines whether it is an unambiguous substrings of a command or # alias name. # - # source://thor//lib/thor.rb#476 + # source://thor//lib/thor.rb#615 def find_command_possibilities(meth); end # this is the logic that takes the command name passed in by the user # and determines whether it is an unambiguous substrings of a command or # alias name. # - # source://thor//lib/thor.rb#476 + # source://thor//lib/thor.rb#615 def find_task_possibilities(meth); end - # source://thor//lib/thor.rb#436 + # source://thor//lib/thor.rb#575 def initialize_added; end + # Returns this class at least one of required options array set. + # + # ==== Returns + # Array[Array[Thor::Option.name]] + # + # source://thor//lib/thor.rb#458 + def method_at_least_one_option_names; end + + # Returns this class exclusive options array set. + # + # ==== Returns + # Array[Array[Thor::Option.name]] + # + # source://thor//lib/thor.rb#449 + def method_exclusive_option_names; end + # receives a (possibly nil) command name and returns a name that is in # the commands hash. In addition to normalizing aliases, this logic # will determine if a shortened command is an unambiguous substring of @@ -355,7 +540,7 @@ class Thor # # @raise [AmbiguousTaskError] # - # source://thor//lib/thor.rb#455 + # source://thor//lib/thor.rb#594 def normalize_command_name(meth); end # receives a (possibly nil) command name and returns a name that is in @@ -368,26 +553,40 @@ class Thor # # @raise [AmbiguousTaskError] # - # source://thor//lib/thor.rb#455 + # source://thor//lib/thor.rb#594 def normalize_task_name(meth); end + # source://thor//lib/thor.rb#482 + def print_at_least_one_required_options(shell, command = T.unsafe(nil)); end + + # source://thor//lib/thor.rb#471 + def print_exclusive_options(shell, command = T.unsafe(nil)); end + # Retrieve the command name from given args. # - # source://thor//lib/thor.rb#442 + # source://thor//lib/thor.rb#581 def retrieve_command_name(args); end # Retrieve the command name from given args. # - # source://thor//lib/thor.rb#442 + # source://thor//lib/thor.rb#581 def retrieve_task_name(args); end - # source://thor//lib/thor.rb#349 + # Sort the commands, lexicographically by default. + # + # Can be overridden in the subclass to change the display order of the + # commands. + # + # source://thor//lib/thor.rb#642 + def sort_commands!(list); end + + # source://thor//lib/thor.rb#462 def stop_on_unknown_option; end - # source://thor//lib/thor.rb#491 + # source://thor//lib/thor.rb#630 def subcommand_help(cmd); end - # source://thor//lib/thor.rb#491 + # source://thor//lib/thor.rb#630 def subtask_help(cmd); end end end @@ -463,7 +662,7 @@ module Thor::Actions # 'config.gem "rspec"' # end # - # source://thor//lib/thor/actions/file_manipulation.rb#195 + # source://thor//lib/thor/actions/file_manipulation.rb#193 def append_file(path, *args, &block); end # Append text to a file. Since it depends on insert_into_file, it's reversible. @@ -481,7 +680,7 @@ module Thor::Actions # 'config.gem "rspec"' # end # - # source://thor//lib/thor/actions/file_manipulation.rb#195 + # source://thor//lib/thor/actions/file_manipulation.rb#193 def append_to_file(path, *args, &block); end # Loads an external file and execute it in the instance binding. @@ -522,7 +721,7 @@ module Thor::Actions # # chmod "script/server", 0755 # - # source://thor//lib/thor/actions/file_manipulation.rb#148 + # source://thor//lib/thor/actions/file_manipulation.rb#146 def chmod(path, mode, config = T.unsafe(nil)); end # Comment all lines matching a given regex. It will leave the space @@ -538,7 +737,7 @@ module Thor::Actions # # comment_lines 'config/initializers/session_store.rb', /cookie_store/ # - # source://thor//lib/thor/actions/file_manipulation.rb#312 + # source://thor//lib/thor/actions/file_manipulation.rb#310 def comment_lines(path, flag, *args); end # ==== Examples @@ -673,17 +872,20 @@ module Thor::Actions # ==== Parameters # source:: the address of the given content. # destination:: the relative path to the destination root. - # config:: give :verbose => false to not log the status. + # config:: give :verbose => false to not log the status, and + # :http_headers => to add headers to an http request. # # ==== Examples # # get "http://gist.github.com/103208", "doc/README" # + # get "http://gist.github.com/103208", "doc/README", :http_headers => {"Content-Type" => "application/json"} + # # get "http://gist.github.com/103208" do |content| # content.split("\n").first # end # - # source://thor//lib/thor/actions/file_manipulation.rb#79 + # source://thor//lib/thor/actions/file_manipulation.rb#82 def get(source, *args, &block); end # Run a regular expression replacement on a file. @@ -703,7 +905,7 @@ module Thor::Actions # match << " no more. Use thor!" # end # - # source://thor//lib/thor/actions/file_manipulation.rb#265 + # source://thor//lib/thor/actions/file_manipulation.rb#263 def gsub_file(path, flag, *args, &block); end # Goes to the root and execute the given block. @@ -728,7 +930,7 @@ module Thor::Actions # " filter_parameter :password\n" # end # - # source://thor//lib/thor/actions/file_manipulation.rb#219 + # source://thor//lib/thor/actions/file_manipulation.rb#217 def inject_into_class(path, klass, *args, &block); end # source://thor//lib/thor/actions/inject_into_file.rb#26 @@ -751,7 +953,7 @@ module Thor::Actions # " def help; 'help'; end\n" # end # - # source://thor//lib/thor/actions/file_manipulation.rb#242 + # source://thor//lib/thor/actions/file_manipulation.rb#240 def inject_into_module(path, module_name, *args, &block); end # source://thor//lib/thor/actions/inject_into_file.rb#26 @@ -803,7 +1005,7 @@ module Thor::Actions # 'config.gem "rspec"' # end # - # source://thor//lib/thor/actions/file_manipulation.rb#173 + # source://thor//lib/thor/actions/file_manipulation.rb#171 def prepend_file(path, *args, &block); end # Prepend text to a file. Since it depends on insert_into_file, it's reversible. @@ -821,7 +1023,7 @@ module Thor::Actions # 'config.gem "rspec"' # end # - # source://thor//lib/thor/actions/file_manipulation.rb#173 + # source://thor//lib/thor/actions/file_manipulation.rb#171 def prepend_to_file(path, *args, &block); end # Returns the given path relative to the absolute root (ie, root where @@ -841,7 +1043,7 @@ module Thor::Actions # remove_file 'README' # remove_file 'app/controllers/application_controller.rb' # - # source://thor//lib/thor/actions/file_manipulation.rb#329 + # source://thor//lib/thor/actions/file_manipulation.rb#327 def remove_dir(path, config = T.unsafe(nil)); end # Removes a file at the given location. @@ -855,7 +1057,7 @@ module Thor::Actions # remove_file 'README' # remove_file 'app/controllers/application_controller.rb' # - # source://thor//lib/thor/actions/file_manipulation.rb#329 + # source://thor//lib/thor/actions/file_manipulation.rb#327 def remove_file(path, config = T.unsafe(nil)); end # Executes a command returning the contents of the command. @@ -871,7 +1073,7 @@ module Thor::Actions # run('ln -s ~/edge rails') # end # - # source://thor//lib/thor/actions.rb#249 + # source://thor//lib/thor/actions.rb#248 def run(command, config = T.unsafe(nil)); end # Executes a ruby script (taking into account WIN32 platform quirks). @@ -880,7 +1082,7 @@ module Thor::Actions # command:: the command to be executed. # config:: give :verbose => false to not log the status. # - # source://thor//lib/thor/actions.rb#286 + # source://thor//lib/thor/actions.rb#285 def run_ruby_script(command, config = T.unsafe(nil)); end # Holds source paths in instance so they can be manipulated. @@ -903,7 +1105,7 @@ module Thor::Actions # # template "doc/README" # - # source://thor//lib/thor/actions/file_manipulation.rb#115 + # source://thor//lib/thor/actions/file_manipulation.rb#118 def template(source, *args, &block); end # Run a thor command. A hash of options can be given and it's converted to @@ -924,7 +1126,7 @@ module Thor::Actions # thor :list, :all => true, :substring => 'rails' # #=> thor list --all --substring=rails # - # source://thor//lib/thor/actions.rb#309 + # source://thor//lib/thor/actions.rb#308 def thor(command, *args); end # Uncomment all lines matching a given regex. It will leave the space @@ -940,40 +1142,40 @@ module Thor::Actions # # uncomment_lines 'config/initializers/session_store.rb', /active_record/ # - # source://thor//lib/thor/actions/file_manipulation.rb#293 + # source://thor//lib/thor/actions/file_manipulation.rb#291 def uncomment_lines(path, flag, *args); end protected - # source://thor//lib/thor/actions.rb#330 + # source://thor//lib/thor/actions.rb#329 def _cleanup_options_and_set(options, key); end # Allow current root to be shared between invocations. # - # source://thor//lib/thor/actions.rb#326 + # source://thor//lib/thor/actions.rb#325 def _shared_configuration; end private - # source://thor//lib/thor/actions/file_manipulation.rb#350 + # source://thor//lib/thor/actions/file_manipulation.rb#348 def capture(*args); end - # source://thor//lib/thor/actions/file_manipulation.rb#346 + # source://thor//lib/thor/actions/file_manipulation.rb#344 def concat(string); end # Returns the value of attribute output_buffer. # - # source://thor//lib/thor/actions/file_manipulation.rb#341 + # source://thor//lib/thor/actions/file_manipulation.rb#339 def output_buffer; end # Sets the attribute output_buffer # # @param value the value to set the attribute output_buffer to. # - # source://thor//lib/thor/actions/file_manipulation.rb#341 + # source://thor//lib/thor/actions/file_manipulation.rb#339 def output_buffer=(_arg0); end - # source://thor//lib/thor/actions/file_manipulation.rb#354 + # source://thor//lib/thor/actions/file_manipulation.rb#352 def with_output_buffer(buf = T.unsafe(nil)); end class << self @@ -985,9 +1187,9 @@ end # Thor::Actions#capture depends on what kind of buffer is used in ERB. # Thus CapturableERB fixes ERB to use String buffer. # -# source://thor//lib/thor/actions/file_manipulation.rb#366 +# source://thor//lib/thor/actions/file_manipulation.rb#364 class Thor::Actions::CapturableERB < ::ERB - # source://thor//lib/thor/actions/file_manipulation.rb#367 + # source://thor//lib/thor/actions/file_manipulation.rb#365 def set_eoutvar(compiler, eoutvar = T.unsafe(nil)); end end @@ -1043,12 +1245,12 @@ class Thor::Actions::CreateFile < ::Thor::Actions::EmptyDirectory # source://thor//lib/thor/actions/create_file.rb#45 def identical?; end - # source://thor//lib/thor/actions/create_file.rb#59 + # source://thor//lib/thor/actions/create_file.rb#60 def invoke!; end # Holds the content to be added to the file. # - # source://thor//lib/thor/actions/create_file.rb#51 + # source://thor//lib/thor/actions/create_file.rb#52 def render; end protected @@ -1057,19 +1259,19 @@ class Thor::Actions::CreateFile < ::Thor::Actions::EmptyDirectory # # @return [Boolean] # - # source://thor//lib/thor/actions/create_file.rb#99 + # source://thor//lib/thor/actions/create_file.rb#100 def force_on_collision?; end # If force is true, run the action, otherwise check if it's not being # skipped. If both are false, show the file_collision menu, if the menu # returns true, force it, otherwise skip. # - # source://thor//lib/thor/actions/create_file.rb#85 + # source://thor//lib/thor/actions/create_file.rb#86 def force_or_skip_or_conflict(force, skip, &block); end # Now on conflict we check if the file is identical or not. # - # source://thor//lib/thor/actions/create_file.rb#72 + # source://thor//lib/thor/actions/create_file.rb#73 def on_conflict_behavior(&block); end end @@ -1261,17 +1463,25 @@ class Thor::Actions::InjectIntoFile < ::Thor::Actions::EmptyDirectory # source://thor//lib/thor/actions/inject_into_file.rb#37 def replacement; end - # source://thor//lib/thor/actions/inject_into_file.rb#72 + # source://thor//lib/thor/actions/inject_into_file.rb#74 def revoke!; end protected + # source://thor//lib/thor/actions/inject_into_file.rb#110 + def content; end + # Adds the content to the file. # - # source://thor//lib/thor/actions/inject_into_file.rb#108 + # source://thor//lib/thor/actions/inject_into_file.rb#120 def replace!(regexp, string, force); end - # source://thor//lib/thor/actions/inject_into_file.rb#88 + # @return [Boolean] + # + # source://thor//lib/thor/actions/inject_into_file.rb#114 + def replacement_present?; end + + # source://thor//lib/thor/actions/inject_into_file.rb#90 def say_status(behavior, warning: T.unsafe(nil), color: T.unsafe(nil)); end end @@ -1297,10 +1507,10 @@ end # source://thor//lib/thor/actions/inject_into_file.rb#24 Thor::Actions::WARNINGS = T.let(T.unsafe(nil), Hash) -# source://thor//lib/thor/error.rb#68 +# source://thor//lib/thor/error.rb#57 class Thor::AmbiguousCommandError < ::Thor::Error; end -# source://thor//lib/thor/error.rb#70 +# source://thor//lib/thor/error.rb#59 Thor::AmbiguousTaskError = Thor::AmbiguousCommandError # source://thor//lib/thor/parser/argument.rb#2 @@ -1331,6 +1541,9 @@ class Thor::Argument # source://thor//lib/thor/parser/argument.rb#5 def enum; end + # source://thor//lib/thor/parser/argument.rb#55 + def enum_to_s; end + # Returns the value of attribute name. # # source://thor//lib/thor/parser/argument.rb#5 @@ -1341,6 +1554,9 @@ class Thor::Argument # source://thor//lib/thor/parser/argument.rb#5 def name; end + # source://thor//lib/thor/parser/argument.rb#27 + def print_default; end + # Returns the value of attribute required. # # source://thor//lib/thor/parser/argument.rb#5 @@ -1348,12 +1564,12 @@ class Thor::Argument # @return [Boolean] # - # source://thor//lib/thor/parser/argument.rb#31 + # source://thor//lib/thor/parser/argument.rb#42 def required?; end # @return [Boolean] # - # source://thor//lib/thor/parser/argument.rb#35 + # source://thor//lib/thor/parser/argument.rb#46 def show_default?; end # Returns the value of attribute type. @@ -1361,22 +1577,22 @@ class Thor::Argument # source://thor//lib/thor/parser/argument.rb#5 def type; end - # source://thor//lib/thor/parser/argument.rb#27 + # source://thor//lib/thor/parser/argument.rb#38 def usage; end protected - # source://thor//lib/thor/parser/argument.rb#55 + # source://thor//lib/thor/parser/argument.rb#74 def default_banner; end # @return [Boolean] # - # source://thor//lib/thor/parser/argument.rb#51 + # source://thor//lib/thor/parser/argument.rb#70 def valid_type?(type); end # @raise [ArgumentError] # - # source://thor//lib/thor/parser/argument.rb#46 + # source://thor//lib/thor/parser/argument.rb#65 def validate!; end end @@ -1392,10 +1608,10 @@ class Thor::Arguments # source://thor//lib/thor/parser/arguments.rb#26 def initialize(arguments = T.unsafe(nil)); end - # source://thor//lib/thor/parser/arguments.rb#44 + # source://thor//lib/thor/parser/arguments.rb#40 def parse(args); end - # source://thor//lib/thor/parser/arguments.rb#57 + # source://thor//lib/thor/parser/arguments.rb#53 def remaining; end private @@ -1404,22 +1620,22 @@ class Thor::Arguments # # @raise [RequiredArgumentMissingError] # - # source://thor//lib/thor/parser/arguments.rb#170 + # source://thor//lib/thor/parser/arguments.rb#186 def check_requirement!; end # @return [Boolean] # - # source://thor//lib/thor/parser/arguments.rb#88 + # source://thor//lib/thor/parser/arguments.rb#84 def current_is_value?; end # @return [Boolean] # - # source://thor//lib/thor/parser/arguments.rb#68 + # source://thor//lib/thor/parser/arguments.rb#64 def last?; end # @return [Boolean] # - # source://thor//lib/thor/parser/arguments.rb#63 + # source://thor//lib/thor/parser/arguments.rb#59 def no_or_skip?(arg); end # Runs through the argument array getting all strings until no string is @@ -1431,7 +1647,7 @@ class Thor::Arguments # # ["a", "b", "c"] # - # source://thor//lib/thor/parser/arguments.rb#122 + # source://thor//lib/thor/parser/arguments.rb#118 def parse_array(name); end # Runs through the argument array getting strings that contains ":" and @@ -1443,14 +1659,14 @@ class Thor::Arguments # # { "name" => "string", "age" => "integer" } # - # source://thor//lib/thor/parser/arguments.rb#101 + # source://thor//lib/thor/parser/arguments.rb#97 def parse_hash(name); end # Check if the peek is numeric format and return a Float or Integer. # Check if the peek is included in enum if enum is provided. # Otherwise raises an error. # - # source://thor//lib/thor/parser/arguments.rb#133 + # source://thor//lib/thor/parser/arguments.rb#139 def parse_numeric(name); end # Parse string: @@ -1458,18 +1674,23 @@ class Thor::Arguments # for --no-string-arg, nil # Check if the peek is included in enum if enum is provided. Otherwise raises an error. # - # source://thor//lib/thor/parser/arguments.rb#154 + # source://thor//lib/thor/parser/arguments.rb#158 def parse_string(name); end - # source://thor//lib/thor/parser/arguments.rb#72 + # source://thor//lib/thor/parser/arguments.rb#68 def peek; end - # source://thor//lib/thor/parser/arguments.rb#76 + # source://thor//lib/thor/parser/arguments.rb#72 def shift; end - # source://thor//lib/thor/parser/arguments.rb#80 + # source://thor//lib/thor/parser/arguments.rb#76 def unshift(arg); end + # Raises an error if the switch is an enum and the values aren't included on it. + # + # source://thor//lib/thor/parser/arguments.rb#172 + def validate_enum_value!(name, value, message); end + class << self # source://thor//lib/thor/parser/arguments.rb#19 def parse(*args); end @@ -1485,6 +1706,9 @@ end # source://thor//lib/thor/parser/arguments.rb#3 Thor::Arguments::NUMERIC = T.let(T.unsafe(nil), Regexp) +# source://thor//lib/thor/error.rb#104 +class Thor::AtLeastOneRequiredArgumentError < ::Thor::InvocationError; end + # source://thor//lib/thor/shell.rb#4 module Thor::Base include ::Thor::Invocation @@ -1549,13 +1773,13 @@ module Thor::Base def parent_options=(_arg0); end class << self - # source://thor//lib/thor/base.rb#100 + # source://thor//lib/thor/base.rb#116 def included(base); end # Whenever a class inherits from Thor or Thor::Group, we should track the # class and the file on Thor::Base. This is the method responsible for it. # - # source://thor//lib/thor/base.rb#128 + # source://thor//lib/thor/base.rb#144 def register_klass_file(klass); end # Returns the shell used in all Thor classes. If you are in a Unix platform @@ -1576,7 +1800,7 @@ module Thor::Base # ==== Returns # Hash[path => Class] # - # source://thor//lib/thor/base.rb#121 + # source://thor//lib/thor/base.rb#137 def subclass_files; end # Returns the classes that inherits from Thor or Thor::Group. @@ -1584,12 +1808,12 @@ module Thor::Base # ==== Returns # Array[Class] # - # source://thor//lib/thor/base.rb#112 + # source://thor//lib/thor/base.rb#128 def subclasses; end end end -# source://thor//lib/thor/base.rb#137 +# source://thor//lib/thor/base.rb#153 module Thor::Base::ClassMethods # Returns the commands for this Thor class and all subclasses. # @@ -1597,7 +1821,7 @@ module Thor::Base::ClassMethods # Hash:: An ordered hash with commands names as keys and Thor::Command # objects as values. # - # source://thor//lib/thor/base.rb#383 + # source://thor//lib/thor/base.rb#482 def all_commands; end # Returns the commands for this Thor class and all subclasses. @@ -1606,13 +1830,13 @@ module Thor::Base::ClassMethods # Hash:: An ordered hash with commands names as keys and Thor::Command # objects as values. # - # source://thor//lib/thor/base.rb#383 + # source://thor//lib/thor/base.rb#482 def all_tasks; end # If you want to use defaults that don't match the type of an option, # either specify `check_default_type: false` or call `allow_incompatible_default_type!` # - # source://thor//lib/thor/base.rb#173 + # source://thor//lib/thor/base.rb#189 def allow_incompatible_default_type!; end # Adds an argument to the class and creates an attr_accessor for it. @@ -1650,7 +1874,7 @@ module Thor::Base::ClassMethods # ==== Errors # ArgumentError:: Raised if you supply a required argument after a non required one. # - # source://thor//lib/thor/base.rb#245 + # source://thor//lib/thor/base.rb#261 def argument(name, options = T.unsafe(nil)); end # Returns this class arguments, looking up in the ancestors chain. @@ -1658,42 +1882,116 @@ module Thor::Base::ClassMethods # ==== Returns # Array[Thor::Argument] # - # source://thor//lib/thor/base.rb#277 + # source://thor//lib/thor/base.rb#293 def arguments; end - # source://thor//lib/thor/base.rb#146 + # source://thor//lib/thor/base.rb#162 def attr_accessor(*_arg0); end - # source://thor//lib/thor/base.rb#138 + # source://thor//lib/thor/base.rb#154 def attr_reader(*_arg0); end - # source://thor//lib/thor/base.rb#142 + # source://thor//lib/thor/base.rb#158 def attr_writer(*_arg0); end - # source://thor//lib/thor/base.rb#177 + # source://thor//lib/thor/base.rb#193 def check_default_type; end # If you want to raise an error when the default value of an option does not match # the type call check_default_type! # This will be the default; for compatibility a deprecation warning is issued if necessary. # - # source://thor//lib/thor/base.rb#167 + # source://thor//lib/thor/base.rb#183 def check_default_type!; end - # source://thor//lib/thor/base.rb#156 + # source://thor//lib/thor/base.rb#172 def check_unknown_options; end # If you want to raise an error for unknown options, call check_unknown_options! # This is disabled by default to allow dynamic invocations. # - # source://thor//lib/thor/base.rb#152 + # source://thor//lib/thor/base.rb#168 def check_unknown_options!; end # @return [Boolean] # - # source://thor//lib/thor/base.rb#160 + # source://thor//lib/thor/base.rb#176 def check_unknown_options?(config); end + # Adds and declares option group for required at least one of options in the + # block and arguments. You can declare options as the outside of the block. + # + # ==== Examples + # + # class_at_least_one do + # class_option :one + # class_option :two + # end + # + # Or + # + # class_option :one + # class_option :two + # class_at_least_one :one, :two + # + # If you do not give "--one" and "--two" AtLeastOneRequiredArgumentError + # will be raised. + # + # You can use class_at_least_one and class_exclusive at the same time. + # + # class_exclusive do + # class_at_least_one do + # class_option :one + # class_option :two + # end + # end + # + # Then it is required either only one of "--one" or "--two". + # + # source://thor//lib/thor/base.rb#392 + def class_at_least_one(*args, &block); end + + # Returns this class at least one of required options array set, looking up in the ancestors chain. + # + # ==== Returns + # Array[Array[Thor::Option.name]] + # + # source://thor//lib/thor/base.rb#411 + def class_at_least_one_option_names; end + + # Adds and declares option group for exclusive options in the + # block and arguments. You can declare options as the outside of the block. + # + # ==== Parameters + # Array[Thor::Option.name] + # + # ==== Examples + # + # class_exclusive do + # class_option :one + # class_option :two + # end + # + # Or + # + # class_option :one + # class_option :two + # class_exclusive :one, :two + # + # If you give "--one" and "--two" at the same time ExclusiveArgumentsError + # will be raised. + # + # source://thor//lib/thor/base.rb#357 + def class_exclusive(*args, &block); end + + # Returns this class exclusive options array set, looking up in the ancestors chain. + # + # ==== Returns + # Array[Array[Thor::Option.name]] + # + # source://thor//lib/thor/base.rb#402 + def class_exclusive_option_names; end + # Adds an option to the set of class options # # ==== Parameters @@ -1710,7 +2008,7 @@ module Thor::Base::ClassMethods # :banner:: -- String to show on usage notes. # :hide:: -- If you want to hide this option from the help. # - # source://thor//lib/thor/base.rb#312 + # source://thor//lib/thor/base.rb#328 def class_option(name, options = T.unsafe(nil)); end # Adds a bunch of options to the set of class options. @@ -1722,7 +2020,7 @@ module Thor::Base::ClassMethods # ==== Parameters # Hash[Symbol => Object] # - # source://thor//lib/thor/base.rb#290 + # source://thor//lib/thor/base.rb#306 def class_options(options = T.unsafe(nil)); end # Returns the commands for this Thor class. @@ -1731,7 +2029,7 @@ module Thor::Base::ClassMethods # Hash:: An ordered hash with commands names as keys and Thor::Command # objects as values. # - # source://thor//lib/thor/base.rb#372 + # source://thor//lib/thor/base.rb#471 def commands; end # If true, option set will not suspend the execution of the command when @@ -1739,14 +2037,14 @@ module Thor::Base::ClassMethods # # @return [Boolean] # - # source://thor//lib/thor/base.rb#191 + # source://thor//lib/thor/base.rb#207 def disable_required_check?(command_name); end # A flag that makes the process exit with status 1 if any error happens. # # @return [Boolean] # - # source://thor//lib/thor/base.rb#529 + # source://thor//lib/thor/base.rb#628 def exit_on_failure?; end # Defines the group. This is used when thor list is invoked so you can specify @@ -1755,22 +2053,22 @@ module Thor::Base::ClassMethods # ==== Parameters # name # - # source://thor//lib/thor/base.rb#358 + # source://thor//lib/thor/base.rb#457 def group(name = T.unsafe(nil)); end # @raise [InvocationError] # - # source://thor//lib/thor/base.rb#519 + # source://thor//lib/thor/base.rb#618 def handle_argument_error(command, error, args, arity); end # @raise [UndefinedCommandError] # - # source://thor//lib/thor/base.rb#514 + # source://thor//lib/thor/base.rb#613 def handle_no_command_error(command, has_namespace = T.unsafe(nil)); end # @raise [UndefinedCommandError] # - # source://thor//lib/thor/base.rb#514 + # source://thor//lib/thor/base.rb#613 def handle_no_task_error(command, has_namespace = T.unsafe(nil)); end # Sets the namespace for the Thor or Thor::Group class. By default the @@ -1795,7 +2093,7 @@ module Thor::Base::ClassMethods # # thor :my_command # - # source://thor//lib/thor/base.rb#467 + # source://thor//lib/thor/base.rb#566 def namespace(name = T.unsafe(nil)); end # All methods defined inside the given block are not added as commands. @@ -1817,15 +2115,15 @@ module Thor::Base::ClassMethods # remove_command :this_is_not_a_command # end # - # source://thor//lib/thor/base.rb#431 + # source://thor//lib/thor/base.rb#530 def no_commands(&block); end # @return [Boolean] # - # source://thor//lib/thor/base.rb#441 + # source://thor//lib/thor/base.rb#540 def no_commands?; end - # source://thor//lib/thor/base.rb#437 + # source://thor//lib/thor/base.rb#536 def no_commands_context; end # All methods defined inside the given block are not added as commands. @@ -1847,7 +2145,7 @@ module Thor::Base::ClassMethods # remove_command :this_is_not_a_command # end # - # source://thor//lib/thor/base.rb#431 + # source://thor//lib/thor/base.rb#530 def no_tasks(&block); end # Allows to use private methods from parent in child classes as commands. @@ -1860,7 +2158,7 @@ module Thor::Base::ClassMethods # public_command :foo # public_command :foo, :bar, :baz # - # source://thor//lib/thor/base.rb#507 + # source://thor//lib/thor/base.rb#606 def public_command(*names); end # Allows to use private methods from parent in child classes as commands. @@ -1873,7 +2171,7 @@ module Thor::Base::ClassMethods # public_command :foo # public_command :foo, :bar, :baz # - # source://thor//lib/thor/base.rb#507 + # source://thor//lib/thor/base.rb#606 def public_task(*names); end # Removes a previous defined argument. If :undefine is given, undefine @@ -1887,7 +2185,7 @@ module Thor::Base::ClassMethods # remove_argument :foo # remove_argument :foo, :bar, :baz, :undefine => true # - # source://thor//lib/thor/base.rb#327 + # source://thor//lib/thor/base.rb#426 def remove_argument(*names); end # Removes a previous defined class option. @@ -1900,7 +2198,7 @@ module Thor::Base::ClassMethods # remove_class_option :foo # remove_class_option :foo, :bar, :baz # - # source://thor//lib/thor/base.rb#346 + # source://thor//lib/thor/base.rb#445 def remove_class_option(*names); end # Removes a given command from this Thor class. This is usually done if you @@ -1915,7 +2213,7 @@ module Thor::Base::ClassMethods # options:: You can give :undefine => true if you want commands the method # to be undefined from the class as well. # - # source://thor//lib/thor/base.rb#401 + # source://thor//lib/thor/base.rb#500 def remove_command(*names); end # Removes a given command from this Thor class. This is usually done if you @@ -1930,7 +2228,7 @@ module Thor::Base::ClassMethods # options:: You can give :undefine => true if you want commands the method # to be undefined from the class as well. # - # source://thor//lib/thor/base.rb#401 + # source://thor//lib/thor/base.rb#500 def remove_task(*names); end # Parses the command and options from the given args, instantiate the class @@ -1941,7 +2239,7 @@ module Thor::Base::ClassMethods # script = MyScript.new(args, options, config) # script.invoke(:command, first_arg, second_arg, third_arg) # - # source://thor//lib/thor/base.rb#483 + # source://thor//lib/thor/base.rb#582 def start(given_args = T.unsafe(nil), config = T.unsafe(nil)); end # If true, option parsing is suspended as soon as an unknown option or a @@ -1950,22 +2248,22 @@ module Thor::Base::ClassMethods # # @return [Boolean] # - # source://thor//lib/thor/base.rb#185 + # source://thor//lib/thor/base.rb#201 def stop_on_unknown_option?(command_name); end - # source://thor//lib/thor/base.rb#202 + # source://thor//lib/thor/base.rb#218 def strict_args_position; end # If you want only strict string args (useful when cascading thor classes), # call strict_args_position! This is disabled by default to allow dynamic # invocations. # - # source://thor//lib/thor/base.rb#198 + # source://thor//lib/thor/base.rb#214 def strict_args_position!; end # @return [Boolean] # - # source://thor//lib/thor/base.rb#206 + # source://thor//lib/thor/base.rb#222 def strict_args_position?(config); end # Returns the commands for this Thor class. @@ -1974,7 +2272,7 @@ module Thor::Base::ClassMethods # Hash:: An ordered hash with commands names as keys and Thor::Command # objects as values. # - # source://thor//lib/thor/base.rb#372 + # source://thor//lib/thor/base.rb#471 def tasks; end protected @@ -1982,12 +2280,12 @@ module Thor::Base::ClassMethods # SIGNATURE: Sets the baseclass. This is where the superclass lookup # finishes. # - # source://thor//lib/thor/base.rb#678 + # source://thor//lib/thor/base.rb#777 def baseclass; end # The basename of the program invoking the thor class. # - # source://thor//lib/thor/base.rb#672 + # source://thor//lib/thor/base.rb#771 def basename; end # Build an option and adds it to the given scope. @@ -1997,7 +2295,7 @@ module Thor::Base::ClassMethods # options:: Described in both class_option and method_option. # scope:: Options hash that is being built up # - # source://thor//lib/thor/base.rb#589 + # source://thor//lib/thor/base.rb#688 def build_option(name, options, scope); end # Receives a hash of options, parse them and add to the scope. This is a @@ -2008,83 +2306,100 @@ module Thor::Base::ClassMethods # ==== Parameters # Hash[Symbol => Object] # - # source://thor//lib/thor/base.rb#600 + # source://thor//lib/thor/base.rb#699 def build_options(options, scope); end + # Get target(method_options or class_options) options + # of before and after by block evaluation. + # + # source://thor//lib/thor/base.rb#808 + def built_option_names(target, opt = T.unsafe(nil), &block); end + # Prints the class options per group. If an option does not belong to # any group, it's printed as Class option. # - # source://thor//lib/thor/base.rb#539 + # source://thor//lib/thor/base.rb#638 def class_options_help(shell, groups = T.unsafe(nil)); end + # Get command scope member by name. + # + # source://thor//lib/thor/base.rb#816 + def command_scope_member(name, options = T.unsafe(nil)); end + # SIGNATURE: Creates a new command if valid_command? is true. This method is # called when a new method is added to the class. # - # source://thor//lib/thor/base.rb#683 + # source://thor//lib/thor/base.rb#782 def create_command(meth); end # SIGNATURE: Creates a new command if valid_command? is true. This method is # called when a new method is added to the class. # - # source://thor//lib/thor/base.rb#683 + # source://thor//lib/thor/base.rb#782 def create_task(meth); end # SIGNATURE: The hook invoked by start. # # @raise [NotImplementedError] # - # source://thor//lib/thor/base.rb#693 + # source://thor//lib/thor/base.rb#792 def dispatch(command, given_args, given_opts, config); end # Finds a command with the given name. If the command belongs to the current # class, just return it, otherwise dup it and add the fresh copy to the # current command hash. # - # source://thor//lib/thor/base.rb#609 + # source://thor//lib/thor/base.rb#708 def find_and_refresh_command(name); end # Finds a command with the given name. If the command belongs to the current # class, just return it, otherwise dup it and add the fresh copy to the # current command hash. # - # source://thor//lib/thor/base.rb#609 + # source://thor//lib/thor/base.rb#708 def find_and_refresh_task(name); end # Retrieves a value from superclass. If it reaches the baseclass, # returns default. # - # source://thor//lib/thor/base.rb#650 + # source://thor//lib/thor/base.rb#749 def from_superclass(method, default = T.unsafe(nil)); end # Every time someone inherits from a Thor class, register the klass # and file into baseclass. # - # source://thor//lib/thor/base.rb#622 + # source://thor//lib/thor/base.rb#721 def inherited(klass); end # SIGNATURE: Defines behavior when the initialize method is added to the # class. # - # source://thor//lib/thor/base.rb#689 + # source://thor//lib/thor/base.rb#788 def initialize_added; end # Raises an error if the word given is a Thor reserved word. # # @return [Boolean] # - # source://thor//lib/thor/base.rb#578 + # source://thor//lib/thor/base.rb#677 def is_thor_reserved_word?(word, type); end # Fire this callback whenever a method is added. Added methods are # tracked as commands by invoking the create_command method. # - # source://thor//lib/thor/base.rb#630 + # source://thor//lib/thor/base.rb#729 def method_added(meth); end # Receives a set of options and print them. # - # source://thor//lib/thor/base.rb#557 + # source://thor//lib/thor/base.rb#656 def print_options(shell, options, group_name = T.unsafe(nil)); end + + # Register a relation of options for target(method_option/class_option) + # by args and block. + # + # source://thor//lib/thor/base.rb#798 + def register_options_relation_for(target, relation, *args, &block); end end # source://thor//lib/thor/command.rb#2 @@ -2092,68 +2407,74 @@ class Thor::Command < ::Struct # @return [Command] a new instance of Command # # source://thor//lib/thor/command.rb#5 - def initialize(name, description, long_description, usage, options = T.unsafe(nil)); end + def initialize(name, description, long_description, wrap_long_description, usage, options = T.unsafe(nil), options_relation = T.unsafe(nil)); end # Returns the formatted usage by injecting given required arguments # and required options into the given usage. # - # source://thor//lib/thor/command.rb#41 + # source://thor//lib/thor/command.rb#42 def formatted_usage(klass, namespace = T.unsafe(nil), subcommand = T.unsafe(nil)); end # @return [Boolean] # - # source://thor//lib/thor/command.rb#14 + # source://thor//lib/thor/command.rb#15 def hidden?; end + # source://thor//lib/thor/command.rb#70 + def method_at_least_one_option_names; end + + # source://thor//lib/thor/command.rb#66 + def method_exclusive_option_names; end + # By default, a command invokes a method in the thor class. You can change this # implementation to create custom commands. # - # source://thor//lib/thor/command.rb#20 + # source://thor//lib/thor/command.rb#21 def run(instance, args = T.unsafe(nil)); end protected # @return [Boolean] # - # source://thor//lib/thor/command.rb#105 + # source://thor//lib/thor/command.rb#114 def handle_argument_error?(instance, error, caller); end # @return [Boolean] # - # source://thor//lib/thor/command.rb#112 + # source://thor//lib/thor/command.rb#121 def handle_no_method_error?(instance, error, caller); end # @return [Boolean] # - # source://thor//lib/thor/command.rb#95 + # source://thor//lib/thor/command.rb#104 def local_method?(instance, name); end # @return [Boolean] # - # source://thor//lib/thor/command.rb#78 + # source://thor//lib/thor/command.rb#87 def not_debugging?(instance); end # @return [Boolean] # - # source://thor//lib/thor/command.rb#91 + # source://thor//lib/thor/command.rb#100 def private_method?(instance); end # Given a target, checks if this class name is a public method. # # @return [Boolean] # - # source://thor//lib/thor/command.rb#87 + # source://thor//lib/thor/command.rb#96 def public_method?(instance); end # Add usage with required arguments # - # source://thor//lib/thor/command.rb#68 + # source://thor//lib/thor/command.rb#77 def required_arguments_for(klass, usage); end - # source://thor//lib/thor/command.rb#82 + # source://thor//lib/thor/command.rb#91 def required_options; end - # source://thor//lib/thor/command.rb#100 + # source://thor//lib/thor/command.rb#109 def sans_backtrace(backtrace, caller); end private @@ -2200,35 +2521,38 @@ class Thor::CoreExt::HashWithIndifferentAccess < ::Hash # @return [Boolean] # - # source://thor//lib/thor/core_ext/hash_with_indifferent_access.rb#41 + # source://thor//lib/thor/core_ext/hash_with_indifferent_access.rb#45 def key?(key); end - # source://thor//lib/thor/core_ext/hash_with_indifferent_access.rb#49 + # source://thor//lib/thor/core_ext/hash_with_indifferent_access.rb#53 def merge(other); end - # source://thor//lib/thor/core_ext/hash_with_indifferent_access.rb#53 + # source://thor//lib/thor/core_ext/hash_with_indifferent_access.rb#57 def merge!(other); end - # source://thor//lib/thor/core_ext/hash_with_indifferent_access.rb#68 + # source://thor//lib/thor/core_ext/hash_with_indifferent_access.rb#72 def replace(other_hash); end - # source://thor//lib/thor/core_ext/hash_with_indifferent_access.rb#60 + # source://thor//lib/thor/core_ext/hash_with_indifferent_access.rb#64 def reverse_merge(other); end - # source://thor//lib/thor/core_ext/hash_with_indifferent_access.rb#64 + # source://thor//lib/thor/core_ext/hash_with_indifferent_access.rb#68 def reverse_merge!(other_hash); end + # source://thor//lib/thor/core_ext/hash_with_indifferent_access.rb#41 + def slice(*keys); end + # Convert to a Hash with String keys. # - # source://thor//lib/thor/core_ext/hash_with_indifferent_access.rb#73 + # source://thor//lib/thor/core_ext/hash_with_indifferent_access.rb#77 def to_hash; end - # source://thor//lib/thor/core_ext/hash_with_indifferent_access.rb#45 + # source://thor//lib/thor/core_ext/hash_with_indifferent_access.rb#49 def values_at(*indices); end protected - # source://thor//lib/thor/core_ext/hash_with_indifferent_access.rb#79 + # source://thor//lib/thor/core_ext/hash_with_indifferent_access.rb#83 def convert_key(key); end # Magic predicates. For instance: @@ -2237,33 +2561,33 @@ class Thor::CoreExt::HashWithIndifferentAccess < ::Hash # options.shebang # => "/usr/lib/local/ruby" # options.test_framework?(:rspec) # => options[:test_framework] == :rspec # - # source://thor//lib/thor/core_ext/hash_with_indifferent_access.rb#89 + # source://thor//lib/thor/core_ext/hash_with_indifferent_access.rb#93 def method_missing(method, *args); end end -# source://thor//lib/thor/error.rb#14 +# source://thor//lib/thor/error.rb#3 module Thor::Correctable - # source://thor//lib/thor/error.rb#19 + # source://thor//lib/thor/error.rb#8 def corrections; end - # source://thor//lib/thor/error.rb#15 + # source://thor//lib/thor/error.rb#4 def to_s; end end # A dynamic command that handles method missing scenarios. # -# source://thor//lib/thor/command.rb#128 +# source://thor//lib/thor/command.rb#137 class Thor::DynamicCommand < ::Thor::Command # @return [DynamicCommand] a new instance of DynamicCommand # - # source://thor//lib/thor/command.rb#129 + # source://thor//lib/thor/command.rb#138 def initialize(name, options = T.unsafe(nil)); end - # source://thor//lib/thor/command.rb#133 + # source://thor//lib/thor/command.rb#142 def run(instance, args = T.unsafe(nil)); end end -# source://thor//lib/thor/command.rb#141 +# source://thor//lib/thor/command.rb#150 Thor::DynamicTask = Thor::DynamicCommand # Thor::Error is raised when it's caused by wrong usage of thor classes. Those @@ -2273,9 +2597,12 @@ Thor::DynamicTask = Thor::DynamicCommand # overwrites a thor keyword, SHOULD NOT raise a Thor::Error. This way, we # ensure that developer errors are shown with full backtrace. # -# source://thor//lib/thor/error.rb#31 +# source://thor//lib/thor/error.rb#20 class Thor::Error < ::StandardError; end +# source://thor//lib/thor/error.rb#101 +class Thor::ExclusiveArgumentError < ::Thor::InvocationError; end + # Thor has a special class called Thor::Group. The main difference to Thor class # is that it invokes all commands at once. It also include some methods that allows # invocations to be done at the class method, which are not available to Thor @@ -2449,15 +2776,15 @@ Thor::HELP_MAPPINGS = T.let(T.unsafe(nil), Array) # A command that is hidden in help messages but still invocable. # -# source://thor//lib/thor/command.rb#120 +# source://thor//lib/thor/command.rb#129 class Thor::HiddenCommand < ::Thor::Command # @return [Boolean] # - # source://thor//lib/thor/command.rb#121 + # source://thor//lib/thor/command.rb#130 def hidden?; end end -# source://thor//lib/thor/command.rb#125 +# source://thor//lib/thor/command.rb#134 Thor::HiddenTask = Thor::HiddenCommand # source://thor//lib/thor/invocation.rb#2 @@ -2611,7 +2938,7 @@ end # Raised when a command was found, but not invoked properly. # -# source://thor//lib/thor/error.rb#73 +# source://thor//lib/thor/error.rb#62 class Thor::InvocationError < ::Thor::Error; end # source://thor//lib/thor/line_editor/basic.rb#2 @@ -2724,7 +3051,7 @@ class Thor::LineEditor::Readline::PathCompletion def text; end end -# source://thor//lib/thor/error.rb#109 +# source://thor//lib/thor/error.rb#98 class Thor::MalformattedArgumentError < ::Thor::InvocationError; end # source://thor//lib/thor/nested_context.rb#2 @@ -2751,12 +3078,6 @@ class Thor::NestedContext def push; end end -# source://thor//lib/thor/error.rb#8 -class Thor::NoKwargSpellChecker < ::DidYouMean::SpellChecker - # source://thor//lib/thor/error.rb#9 - def initialize(dictionary); end -end - # source://thor//lib/thor/parser/option.rb#2 class Thor::Option < ::Thor::Argument # @return [Option] a new instance of Option @@ -2772,10 +3093,10 @@ class Thor::Option < ::Thor::Argument # source://thor//lib/thor/parser/option.rb#99 def aliases_for_usage; end - # source://thor//lib/thor/parser/option.rb#109 + # source://thor//lib/thor/parser/option.rb#118 def array?; end - # source://thor//lib/thor/parser/option.rb#109 + # source://thor//lib/thor/parser/option.rb#118 def boolean?; end # Returns the value of attribute group. @@ -2783,7 +3104,7 @@ class Thor::Option < ::Thor::Argument # source://thor//lib/thor/parser/option.rb#3 def group; end - # source://thor//lib/thor/parser/option.rb#109 + # source://thor//lib/thor/parser/option.rb#118 def hash?; end # Returns the value of attribute hide. @@ -2799,7 +3120,7 @@ class Thor::Option < ::Thor::Argument # source://thor//lib/thor/parser/option.rb#3 def lazy_default; end - # source://thor//lib/thor/parser/option.rb#109 + # source://thor//lib/thor/parser/option.rb#118 def numeric?; end # Returns the value of attribute repeatable. @@ -2807,7 +3128,12 @@ class Thor::Option < ::Thor::Argument # source://thor//lib/thor/parser/option.rb#3 def repeatable; end - # source://thor//lib/thor/parser/option.rb#109 + # @return [Boolean] + # + # source://thor//lib/thor/parser/option.rb#107 + def show_default?; end + + # source://thor//lib/thor/parser/option.rb#118 def string?; end # source://thor//lib/thor/parser/option.rb#75 @@ -2818,25 +3144,30 @@ class Thor::Option < ::Thor::Argument protected - # source://thor//lib/thor/parser/option.rb#159 + # source://thor//lib/thor/parser/option.rb#168 def dasherize(str); end # @return [Boolean] # - # source://thor//lib/thor/parser/option.rb#151 + # source://thor//lib/thor/parser/option.rb#160 def dasherized?; end - # source://thor//lib/thor/parser/option.rb#155 + # source://thor//lib/thor/parser/option.rb#164 def undasherize(str); end # @raise [ArgumentError] # - # source://thor//lib/thor/parser/option.rb#117 + # source://thor//lib/thor/parser/option.rb#126 def validate!; end - # source://thor//lib/thor/parser/option.rb#122 + # source://thor//lib/thor/parser/option.rb#131 def validate_default_type!; end + private + + # source://thor//lib/thor/parser/option.rb#174 + def normalize_aliases(aliases); end + class << self # This parse quick options given as method_options. It makes several # assumptions, but you can be more specific using the option method. @@ -2883,31 +3214,37 @@ class Thor::Options < ::Thor::Arguments # @return [Options] a new instance of Options # # source://thor//lib/thor/parser/options.rb#32 - def initialize(hash_options = T.unsafe(nil), defaults = T.unsafe(nil), stop_on_unknown = T.unsafe(nil), disable_required_check = T.unsafe(nil)); end + def initialize(hash_options = T.unsafe(nil), defaults = T.unsafe(nil), stop_on_unknown = T.unsafe(nil), disable_required_check = T.unsafe(nil), relations = T.unsafe(nil)); end + + # source://thor//lib/thor/parser/options.rb#156 + def check_at_least_one!; end + + # source://thor//lib/thor/parser/options.rb#144 + def check_exclusive!; end # @raise [UnknownArgumentError] # - # source://thor//lib/thor/parser/options.rb#141 + # source://thor//lib/thor/parser/options.rb#168 def check_unknown!; end - # source://thor//lib/thor/parser/options.rb#88 + # source://thor//lib/thor/parser/options.rb#89 def parse(args); end - # source://thor//lib/thor/parser/options.rb#64 + # source://thor//lib/thor/parser/options.rb#65 def peek; end - # source://thor//lib/thor/parser/options.rb#60 + # source://thor//lib/thor/parser/options.rb#61 def remaining; end - # source://thor//lib/thor/parser/options.rb#78 + # source://thor//lib/thor/parser/options.rb#79 def shift; end - # source://thor//lib/thor/parser/options.rb#83 + # source://thor//lib/thor/parser/options.rb#84 def unshift(arg, is_value: T.unsafe(nil)); end protected - # source://thor//lib/thor/parser/options.rb#151 + # source://thor//lib/thor/parser/options.rb#189 def assign_result!(option, result); end # Check if the current value in peek is a registered switch. @@ -2917,45 +3254,50 @@ class Thor::Options < ::Thor::Arguments # # @return [Boolean] # - # source://thor//lib/thor/parser/options.rb#165 + # source://thor//lib/thor/parser/options.rb#203 def current_is_switch?; end # @return [Boolean] # - # source://thor//lib/thor/parser/options.rb#177 + # source://thor//lib/thor/parser/options.rb#215 def current_is_switch_formatted?; end # @return [Boolean] # - # source://thor//lib/thor/parser/options.rb#187 + # source://thor//lib/thor/parser/options.rb#225 def current_is_value?; end + # Option names changes to swith name or human name + # + # source://thor//lib/thor/parser/options.rb#179 + def names_to_switch_names(names = T.unsafe(nil)); end + # Check if the given argument is actually a shortcut. # - # source://thor//lib/thor/parser/options.rb#206 + # source://thor//lib/thor/parser/options.rb#244 def normalize_switch(arg); end # Parse boolean values which can be given as --foo=true, --foo or --no-foo. # - # source://thor//lib/thor/parser/options.rb#217 + # source://thor//lib/thor/parser/options.rb#255 def parse_boolean(switch); end # Parse the value at the peek analyzing if it requires an input or not. # - # source://thor//lib/thor/parser/options.rb#235 + # source://thor//lib/thor/parser/options.rb#273 def parse_peek(switch, option); end # @return [Boolean] # - # source://thor//lib/thor/parser/options.rb#210 + # source://thor//lib/thor/parser/options.rb#248 def parsing_options?; end # @return [Boolean] # - # source://thor//lib/thor/parser/options.rb#192 + # source://thor//lib/thor/parser/options.rb#230 def switch?(arg); end - # source://thor//lib/thor/parser/options.rb#196 + # source://thor//lib/thor/parser/options.rb#234 def switch_option(arg); end class << self @@ -3019,7 +3361,7 @@ module Thor::RakeCompat end end -# source://thor//lib/thor/error.rb#106 +# source://thor//lib/thor/error.rb#95 class Thor::RequiredArgumentMissingError < ::Thor::InvocationError; end # source://thor//lib/thor/util.rb#4 @@ -3108,13 +3450,13 @@ module Thor::Shell def _shared_configuration; end end -# source://thor//lib/thor/shell/basic.rb#3 +# source://thor//lib/thor/shell/basic.rb#7 class Thor::Shell::Basic # Initialize base, mute and padding to nil. # # @return [Basic] a new instance of Basic # - # source://thor//lib/thor/shell/basic.rb#11 + # source://thor//lib/thor/shell/basic.rb#13 def initialize; end # Asks something to the user and receives a response. @@ -3147,19 +3489,19 @@ class Thor::Shell::Basic # # ask("Where should the file be saved?", :path => true) # - # source://thor//lib/thor/shell/basic.rb#78 + # source://thor//lib/thor/shell/basic.rb#80 def ask(statement, *args); end # Returns the value of attribute base. # - # source://thor//lib/thor/shell/basic.rb#6 + # source://thor//lib/thor/shell/basic.rb#8 def base; end # Sets the attribute base # # @param value the value to set the attribute base to. # - # source://thor//lib/thor/shell/basic.rb#6 + # source://thor//lib/thor/shell/basic.rb#8 def base=(_arg0); end # Called if something goes wrong during the execution. This is used by Thor @@ -3167,7 +3509,7 @@ class Thor::Shell::Basic # wrong, you can always raise an exception. If you raise a Thor::Error, it # will be rescued and wrapped in the method below. # - # source://thor//lib/thor/shell/basic.rb#342 + # source://thor//lib/thor/shell/basic.rb#251 def error(statement); end # Deals with file collision and returns true if the file should be @@ -3178,24 +3520,24 @@ class Thor::Shell::Basic # destination:: the destination file to solve conflicts # block:: an optional block that returns the value to be used in diff and merge # - # source://thor//lib/thor/shell/basic.rb#285 + # source://thor//lib/thor/shell/basic.rb#207 def file_collision(destination); end # Sets the output padding while executing a block and resets it. # - # source://thor//lib/thor/shell/basic.rb#41 + # source://thor//lib/thor/shell/basic.rb#43 def indent(count = T.unsafe(nil)); end # Mute everything that's inside given block # - # source://thor//lib/thor/shell/basic.rb#20 + # source://thor//lib/thor/shell/basic.rb#22 def mute; end # Check if base is muted # # @return [Boolean] # - # source://thor//lib/thor/shell/basic.rb#29 + # source://thor//lib/thor/shell/basic.rb#31 def mute?; end # Make a question the to user and returns true if the user replies "n" or @@ -3203,17 +3545,17 @@ class Thor::Shell::Basic # # @return [Boolean] # - # source://thor//lib/thor/shell/basic.rb#154 + # source://thor//lib/thor/shell/basic.rb#156 def no?(statement, color = T.unsafe(nil)); end # Returns the value of attribute padding. # - # source://thor//lib/thor/shell/basic.rb#7 + # source://thor//lib/thor/shell/basic.rb#9 def padding; end # Sets the output padding, not allowing less than zero values. # - # source://thor//lib/thor/shell/basic.rb#35 + # source://thor//lib/thor/shell/basic.rb#37 def padding=(value); end # Prints values in columns @@ -3221,7 +3563,7 @@ class Thor::Shell::Basic # ==== Parameters # Array[String, String, ...] # - # source://thor//lib/thor/shell/basic.rb#163 + # source://thor//lib/thor/shell/basic.rb#165 def print_in_columns(array); end # Prints a table. @@ -3232,8 +3574,9 @@ class Thor::Shell::Basic # ==== Options # indent:: Indent the first column by indent value. # colwidth:: Force the first column to colwidth spaces wide. + # borders:: Adds ascii borders. # - # source://thor//lib/thor/shell/basic.rb#185 + # source://thor//lib/thor/shell/basic.rb#180 def print_table(array, options = T.unsafe(nil)); end # Prints a long string, word-wrapping the text to the current width of the @@ -3245,7 +3588,7 @@ class Thor::Shell::Basic # ==== Options # indent:: Indent each line of the printed paragraph by indent value. # - # source://thor//lib/thor/shell/basic.rb#247 + # source://thor//lib/thor/shell/basic.rb#194 def print_wrapped(message, options = T.unsafe(nil)); end # Say (print) something to the user. If the sentence ends with a whitespace @@ -3255,7 +3598,7 @@ class Thor::Shell::Basic # ==== Example # say("I know you knew that.") # - # source://thor//lib/thor/shell/basic.rb#96 + # source://thor//lib/thor/shell/basic.rb#98 def say(message = T.unsafe(nil), color = T.unsafe(nil), force_new_line = T.unsafe(nil)); end # Say (print) an error to the user. If the sentence ends with a whitespace @@ -3265,7 +3608,7 @@ class Thor::Shell::Basic # ==== Example # say_error("error: something went wrong") # - # source://thor//lib/thor/shell/basic.rb#113 + # source://thor//lib/thor/shell/basic.rb#115 def say_error(message = T.unsafe(nil), color = T.unsafe(nil), force_new_line = T.unsafe(nil)); end # Say a status with the given color and appends the message. Since this @@ -3273,110 +3616,89 @@ class Thor::Shell::Basic # in log_status, avoiding the message from being shown. If a Symbol is # given in log_status, it's used as the color. # - # source://thor//lib/thor/shell/basic.rb#128 + # source://thor//lib/thor/shell/basic.rb#130 def say_status(status, message, log_status = T.unsafe(nil)); end # Apply color to the given string with optional bold. Disabled in the # Thor::Shell::Basic class. # - # source://thor//lib/thor/shell/basic.rb#349 + # source://thor//lib/thor/shell/basic.rb#258 def set_color(string, *_arg1); end - # source://thor//lib/thor/shell/basic.rb#326 - def terminal_width; end - # Make a question the to user and returns true if the user replies "y" or # "yes". # # @return [Boolean] # - # source://thor//lib/thor/shell/basic.rb#147 + # source://thor//lib/thor/shell/basic.rb#149 def yes?(statement, color = T.unsafe(nil)); end protected - # source://thor//lib/thor/shell/basic.rb#486 + # source://thor//lib/thor/shell/basic.rb#362 def answer_match(possibilities, answer, case_insensitive); end - # source://thor//lib/thor/shell/basic.rb#443 - def as_unicode; end - - # source://thor//lib/thor/shell/basic.rb#473 + # source://thor//lib/thor/shell/basic.rb#349 def ask_filtered(statement, color, options); end - # source://thor//lib/thor/shell/basic.rb#456 + # source://thor//lib/thor/shell/basic.rb#332 def ask_simply(statement, color, options); end # @return [Boolean] # - # source://thor//lib/thor/shell/basic.rb#360 + # source://thor//lib/thor/shell/basic.rb#269 def can_display_colors?; end - # Calculate the dynamic width of the terminal - # - # source://thor//lib/thor/shell/basic.rb#415 - def dynamic_width; end - - # source://thor//lib/thor/shell/basic.rb#419 - def dynamic_width_stty; end - - # source://thor//lib/thor/shell/basic.rb#423 - def dynamic_width_tput; end - - # source://thor//lib/thor/shell/basic.rb#387 - def file_collision_help; end + # source://thor//lib/thor/shell/basic.rb#296 + def file_collision_help(block_given); end - # source://thor//lib/thor/shell/basic.rb#507 + # source://thor//lib/thor/shell/basic.rb#383 def git_merge_tool; end # @return [Boolean] # - # source://thor//lib/thor/shell/basic.rb#377 + # source://thor//lib/thor/shell/basic.rb#286 def is?(value); end - # source://thor//lib/thor/shell/basic.rb#364 + # source://thor//lib/thor/shell/basic.rb#273 def lookup_color(color); end - # source://thor//lib/thor/shell/basic.rb#494 + # source://thor//lib/thor/shell/basic.rb#370 def merge(destination, content); end - # source://thor//lib/thor/shell/basic.rb#503 + # source://thor//lib/thor/shell/basic.rb#379 def merge_tool; end - # source://thor//lib/thor/shell/basic.rb#355 + # source://thor//lib/thor/shell/basic.rb#264 def prepare_message(message, *color); end # @return [Boolean] # - # source://thor//lib/thor/shell/basic.rb#410 + # source://thor//lib/thor/shell/basic.rb#324 def quiet?; end - # source://thor//lib/thor/shell/basic.rb#399 + # source://thor//lib/thor/shell/basic.rb#313 def show_diff(destination, content); end - # source://thor//lib/thor/shell/basic.rb#373 + # source://thor//lib/thor/shell/basic.rb#282 def stderr; end - # source://thor//lib/thor/shell/basic.rb#369 + # source://thor//lib/thor/shell/basic.rb#278 def stdout; end - # source://thor//lib/thor/shell/basic.rb#431 - def truncate(string, width); end - # @return [Boolean] # - # source://thor//lib/thor/shell/basic.rb#427 + # source://thor//lib/thor/shell/basic.rb#328 def unix?; end end -# source://thor//lib/thor/shell/basic.rb#4 -Thor::Shell::Basic::DEFAULT_TERMINAL_WIDTH = T.let(T.unsafe(nil), Integer) - # Inherit from Thor::Shell::Basic and add set_color behavior. Check # Thor::Shell::Basic to see all available methods. # -# source://thor//lib/thor/shell/color.rb#8 +# source://thor//lib/thor/shell/color.rb#9 class Thor::Shell::Color < ::Thor::Shell::Basic + include ::LCSDiff + # Set color by using a string or one of the defined constants. If a third # option is set to true, it also adds bold to the string. This is based # on Highline implementation and it automatically appends CLEAR to the end @@ -3409,139 +3731,145 @@ class Thor::Shell::Color < ::Thor::Shell::Basic # :on_cyan # :on_white # - # source://thor//lib/thor/shell/color.rb#79 + # source://thor//lib/thor/shell/color.rb#82 def set_color(string, *colors); end protected # @return [Boolean] # - # source://thor//lib/thor/shell/color.rb#107 + # source://thor//lib/thor/shell/color.rb#110 def are_colors_disabled?; end # @return [Boolean] # - # source://thor//lib/thor/shell/color.rb#103 + # source://thor//lib/thor/shell/color.rb#106 def are_colors_supported?; end # @return [Boolean] # - # source://thor//lib/thor/shell/color.rb#99 + # source://thor//lib/thor/shell/color.rb#102 def can_display_colors?; end - - # Check if Diff::LCS is loaded. If it is, use it to create pretty output - # for diff. - # - # @return [Boolean] - # - # source://thor//lib/thor/shell/color.rb#144 - def diff_lcs_loaded?; end - - # source://thor//lib/thor/shell/color.rb#127 - def output_diff_line(diff); end - - # Overwrite show_diff to show diff with colors if Diff::LCS is - # available. - # - # source://thor//lib/thor/shell/color.rb#114 - def show_diff(destination, content); end end # Set the terminal's foreground ANSI color to black. # -# source://thor//lib/thor/shell/color.rb#15 +# source://thor//lib/thor/shell/color.rb#18 Thor::Shell::Color::BLACK = T.let(T.unsafe(nil), String) # Set the terminal's foreground ANSI color to blue. # -# source://thor//lib/thor/shell/color.rb#23 +# source://thor//lib/thor/shell/color.rb#26 Thor::Shell::Color::BLUE = T.let(T.unsafe(nil), String) # The start of an ANSI bold sequence. # -# source://thor//lib/thor/shell/color.rb#12 +# source://thor//lib/thor/shell/color.rb#15 Thor::Shell::Color::BOLD = T.let(T.unsafe(nil), String) # Embed in a String to clear all previous ANSI sequences. # -# source://thor//lib/thor/shell/color.rb#10 +# source://thor//lib/thor/shell/color.rb#13 Thor::Shell::Color::CLEAR = T.let(T.unsafe(nil), String) # Set the terminal's foreground ANSI color to cyan. # -# source://thor//lib/thor/shell/color.rb#27 +# source://thor//lib/thor/shell/color.rb#30 Thor::Shell::Color::CYAN = T.let(T.unsafe(nil), String) # Set the terminal's foreground ANSI color to green. # -# source://thor//lib/thor/shell/color.rb#19 +# source://thor//lib/thor/shell/color.rb#22 Thor::Shell::Color::GREEN = T.let(T.unsafe(nil), String) # Set the terminal's foreground ANSI color to magenta. # -# source://thor//lib/thor/shell/color.rb#25 +# source://thor//lib/thor/shell/color.rb#28 Thor::Shell::Color::MAGENTA = T.let(T.unsafe(nil), String) # Set the terminal's background ANSI color to black. # -# source://thor//lib/thor/shell/color.rb#32 +# source://thor//lib/thor/shell/color.rb#35 Thor::Shell::Color::ON_BLACK = T.let(T.unsafe(nil), String) # Set the terminal's background ANSI color to blue. # -# source://thor//lib/thor/shell/color.rb#40 +# source://thor//lib/thor/shell/color.rb#43 Thor::Shell::Color::ON_BLUE = T.let(T.unsafe(nil), String) # Set the terminal's background ANSI color to cyan. # -# source://thor//lib/thor/shell/color.rb#44 +# source://thor//lib/thor/shell/color.rb#47 Thor::Shell::Color::ON_CYAN = T.let(T.unsafe(nil), String) # Set the terminal's background ANSI color to green. # -# source://thor//lib/thor/shell/color.rb#36 +# source://thor//lib/thor/shell/color.rb#39 Thor::Shell::Color::ON_GREEN = T.let(T.unsafe(nil), String) # Set the terminal's background ANSI color to magenta. # -# source://thor//lib/thor/shell/color.rb#42 +# source://thor//lib/thor/shell/color.rb#45 Thor::Shell::Color::ON_MAGENTA = T.let(T.unsafe(nil), String) # Set the terminal's background ANSI color to red. # -# source://thor//lib/thor/shell/color.rb#34 +# source://thor//lib/thor/shell/color.rb#37 Thor::Shell::Color::ON_RED = T.let(T.unsafe(nil), String) # Set the terminal's background ANSI color to white. # -# source://thor//lib/thor/shell/color.rb#46 +# source://thor//lib/thor/shell/color.rb#49 Thor::Shell::Color::ON_WHITE = T.let(T.unsafe(nil), String) # Set the terminal's background ANSI color to yellow. # -# source://thor//lib/thor/shell/color.rb#38 +# source://thor//lib/thor/shell/color.rb#41 Thor::Shell::Color::ON_YELLOW = T.let(T.unsafe(nil), String) # Set the terminal's foreground ANSI color to red. # -# source://thor//lib/thor/shell/color.rb#17 +# source://thor//lib/thor/shell/color.rb#20 Thor::Shell::Color::RED = T.let(T.unsafe(nil), String) # Set the terminal's foreground ANSI color to white. # -# source://thor//lib/thor/shell/color.rb#29 +# source://thor//lib/thor/shell/color.rb#32 Thor::Shell::Color::WHITE = T.let(T.unsafe(nil), String) # Set the terminal's foreground ANSI color to yellow. # -# source://thor//lib/thor/shell/color.rb#21 +# source://thor//lib/thor/shell/color.rb#24 Thor::Shell::Color::YELLOW = T.let(T.unsafe(nil), String) +# source://thor//lib/thor/shell/column_printer.rb#5 +class Thor::Shell::ColumnPrinter + # @return [ColumnPrinter] a new instance of ColumnPrinter + # + # source://thor//lib/thor/shell/column_printer.rb#8 + def initialize(stdout, options = T.unsafe(nil)); end + + # Returns the value of attribute options. + # + # source://thor//lib/thor/shell/column_printer.rb#6 + def options; end + + # source://thor//lib/thor/shell/column_printer.rb#14 + def print(array); end + + # Returns the value of attribute stdout. + # + # source://thor//lib/thor/shell/column_printer.rb#6 + def stdout; end +end + # Inherit from Thor::Shell::Basic and add set_color behavior. Check # Thor::Shell::Basic to see all available methods. # -# source://thor//lib/thor/shell/html.rb#8 +# source://thor//lib/thor/shell/html.rb#9 class Thor::Shell::HTML < ::Thor::Shell::Basic + include ::LCSDiff + # Ask something to the user and receives a response. # # ==== Example @@ -3551,7 +3879,7 @@ class Thor::Shell::HTML < ::Thor::Shell::Basic # # @raise [NotImplementedError] # - # source://thor//lib/thor/shell/html.rb#70 + # source://thor//lib/thor/shell/html.rb#73 def ask(statement, color = T.unsafe(nil)); end # Set color by using a string or one of the defined constants. If a third @@ -3559,122 +3887,174 @@ class Thor::Shell::HTML < ::Thor::Shell::Basic # on Highline implementation and it automatically appends CLEAR to the end # of the returned String. # - # source://thor//lib/thor/shell/html.rb#51 + # source://thor//lib/thor/shell/html.rb#54 def set_color(string, *colors); end protected # @return [Boolean] # - # source://thor//lib/thor/shell/html.rb#76 + # source://thor//lib/thor/shell/html.rb#79 def can_display_colors?; end - - # Check if Diff::LCS is loaded. If it is, use it to create pretty output - # for diff. - # - # @return [Boolean] - # - # source://thor//lib/thor/shell/html.rb#113 - def diff_lcs_loaded?; end - - # source://thor//lib/thor/shell/html.rb#96 - def output_diff_line(diff); end - - # Overwrite show_diff to show diff with colors if Diff::LCS is - # available. - # - # source://thor//lib/thor/shell/html.rb#83 - def show_diff(destination, content); end end # Set the terminal's foreground HTML color to black. # -# source://thor//lib/thor/shell/html.rb#13 +# source://thor//lib/thor/shell/html.rb#16 Thor::Shell::HTML::BLACK = T.let(T.unsafe(nil), String) # Set the terminal's foreground HTML color to blue. # -# source://thor//lib/thor/shell/html.rb#21 +# source://thor//lib/thor/shell/html.rb#24 Thor::Shell::HTML::BLUE = T.let(T.unsafe(nil), String) # The start of an HTML bold sequence. # -# source://thor//lib/thor/shell/html.rb#10 +# source://thor//lib/thor/shell/html.rb#13 Thor::Shell::HTML::BOLD = T.let(T.unsafe(nil), String) # Set the terminal's foreground HTML color to cyan. # -# source://thor//lib/thor/shell/html.rb#25 +# source://thor//lib/thor/shell/html.rb#28 Thor::Shell::HTML::CYAN = T.let(T.unsafe(nil), String) # Set the terminal's foreground HTML color to green. # -# source://thor//lib/thor/shell/html.rb#17 +# source://thor//lib/thor/shell/html.rb#20 Thor::Shell::HTML::GREEN = T.let(T.unsafe(nil), String) # Set the terminal's foreground HTML color to magenta. # -# source://thor//lib/thor/shell/html.rb#23 +# source://thor//lib/thor/shell/html.rb#26 Thor::Shell::HTML::MAGENTA = T.let(T.unsafe(nil), String) # Set the terminal's background HTML color to black. # -# source://thor//lib/thor/shell/html.rb#30 +# source://thor//lib/thor/shell/html.rb#33 Thor::Shell::HTML::ON_BLACK = T.let(T.unsafe(nil), String) # Set the terminal's background HTML color to blue. # -# source://thor//lib/thor/shell/html.rb#38 +# source://thor//lib/thor/shell/html.rb#41 Thor::Shell::HTML::ON_BLUE = T.let(T.unsafe(nil), String) # Set the terminal's background HTML color to cyan. # -# source://thor//lib/thor/shell/html.rb#42 +# source://thor//lib/thor/shell/html.rb#45 Thor::Shell::HTML::ON_CYAN = T.let(T.unsafe(nil), String) # Set the terminal's background HTML color to green. # -# source://thor//lib/thor/shell/html.rb#34 +# source://thor//lib/thor/shell/html.rb#37 Thor::Shell::HTML::ON_GREEN = T.let(T.unsafe(nil), String) # Set the terminal's background HTML color to magenta. # -# source://thor//lib/thor/shell/html.rb#40 +# source://thor//lib/thor/shell/html.rb#43 Thor::Shell::HTML::ON_MAGENTA = T.let(T.unsafe(nil), String) # Set the terminal's background HTML color to red. # -# source://thor//lib/thor/shell/html.rb#32 +# source://thor//lib/thor/shell/html.rb#35 Thor::Shell::HTML::ON_RED = T.let(T.unsafe(nil), String) # Set the terminal's background HTML color to white. # -# source://thor//lib/thor/shell/html.rb#44 +# source://thor//lib/thor/shell/html.rb#47 Thor::Shell::HTML::ON_WHITE = T.let(T.unsafe(nil), String) # Set the terminal's background HTML color to yellow. # -# source://thor//lib/thor/shell/html.rb#36 +# source://thor//lib/thor/shell/html.rb#39 Thor::Shell::HTML::ON_YELLOW = T.let(T.unsafe(nil), String) # Set the terminal's foreground HTML color to red. # -# source://thor//lib/thor/shell/html.rb#15 +# source://thor//lib/thor/shell/html.rb#18 Thor::Shell::HTML::RED = T.let(T.unsafe(nil), String) # Set the terminal's foreground HTML color to white. # -# source://thor//lib/thor/shell/html.rb#27 +# source://thor//lib/thor/shell/html.rb#30 Thor::Shell::HTML::WHITE = T.let(T.unsafe(nil), String) # Set the terminal's foreground HTML color to yellow. # -# source://thor//lib/thor/shell/html.rb#19 +# source://thor//lib/thor/shell/html.rb#22 Thor::Shell::HTML::YELLOW = T.let(T.unsafe(nil), String) # source://thor//lib/thor/shell.rb#24 Thor::Shell::SHELL_DELEGATED_METHODS = T.let(T.unsafe(nil), Array) +# source://thor//lib/thor/shell/table_printer.rb#6 +class Thor::Shell::TablePrinter < ::Thor::Shell::ColumnPrinter + # @return [TablePrinter] a new instance of TablePrinter + # + # source://thor//lib/thor/shell/table_printer.rb#9 + def initialize(stdout, options = T.unsafe(nil)); end + + # source://thor//lib/thor/shell/table_printer.rb#18 + def print(array); end + + private + + # source://thor//lib/thor/shell/table_printer.rb#120 + def as_unicode; end + + # source://thor//lib/thor/shell/table_printer.rb#72 + def format_cell(column, row_size, index); end + + # source://thor//lib/thor/shell/table_printer.rb#115 + def indentation; end + + # source://thor//lib/thor/shell/table_printer.rb#47 + def prepare(array); end + + # source://thor//lib/thor/shell/table_printer.rb#96 + def print_border_separator; end + + # source://thor//lib/thor/shell/table_printer.rb#103 + def truncate(string); end +end + +# source://thor//lib/thor/shell/table_printer.rb#7 +Thor::Shell::TablePrinter::BORDER_SEPARATOR = T.let(T.unsafe(nil), Symbol) + +# source://thor//lib/thor/shell/terminal.rb#3 +module Thor::Shell::Terminal + class << self + # source://thor//lib/thor/shell/terminal.rb#9 + def terminal_width; end + + # @return [Boolean] + # + # source://thor//lib/thor/shell/terminal.rb#20 + def unix?; end + + private + + # Calculate the dynamic width of the terminal + # + # source://thor//lib/thor/shell/terminal.rb#27 + def dynamic_width; end + + # source://thor//lib/thor/shell/terminal.rb#31 + def dynamic_width_stty; end + + # source://thor//lib/thor/shell/terminal.rb#35 + def dynamic_width_tput; end + end +end + +# source://thor//lib/thor/shell/terminal.rb#4 +Thor::Shell::Terminal::DEFAULT_TERMINAL_WIDTH = T.let(T.unsafe(nil), Integer) + +# source://thor//lib/thor/shell/wrapped_printer.rb#6 +class Thor::Shell::WrappedPrinter < ::Thor::Shell::ColumnPrinter + # source://thor//lib/thor/shell/wrapped_printer.rb#7 + def print(message); end +end + # source://thor//lib/thor/base.rb#23 Thor::TEMPLATE_EXTNAME = T.let(T.unsafe(nil), String) @@ -3683,89 +4063,89 @@ Thor::TEMPLATE_EXTNAME = T.let(T.unsafe(nil), String) # source://thor//lib/thor/base.rb#20 Thor::THOR_RESERVED_WORDS = T.let(T.unsafe(nil), Array) -# source://thor//lib/thor/command.rb#117 +# source://thor//lib/thor/command.rb#126 Thor::Task = Thor::Command # Raised when a command was not found. # -# source://thor//lib/thor/error.rb#35 +# source://thor//lib/thor/error.rb#24 class Thor::UndefinedCommandError < ::Thor::Error include ::Thor::Correctable # @return [UndefinedCommandError] a new instance of UndefinedCommandError # - # source://thor//lib/thor/error.rb#54 + # source://thor//lib/thor/error.rb#43 def initialize(command, all_commands, namespace); end # Returns the value of attribute all_commands. # - # source://thor//lib/thor/error.rb#52 + # source://thor//lib/thor/error.rb#41 def all_commands; end # Returns the value of attribute command. # - # source://thor//lib/thor/error.rb#52 + # source://thor//lib/thor/error.rb#41 def command; end end -# source://thor//lib/thor/error.rb#36 +# source://thor//lib/thor/error.rb#25 class Thor::UndefinedCommandError::SpellChecker # @return [SpellChecker] a new instance of SpellChecker # - # source://thor//lib/thor/error.rb#39 + # source://thor//lib/thor/error.rb#28 def initialize(error); end - # source://thor//lib/thor/error.rb#43 + # source://thor//lib/thor/error.rb#32 def corrections; end # Returns the value of attribute error. # - # source://thor//lib/thor/error.rb#37 + # source://thor//lib/thor/error.rb#26 def error; end - # source://thor//lib/thor/error.rb#47 + # source://thor//lib/thor/error.rb#36 def spell_checker; end end -# source://thor//lib/thor/error.rb#66 +# source://thor//lib/thor/error.rb#55 Thor::UndefinedTaskError = Thor::UndefinedCommandError -# source://thor//lib/thor/error.rb#76 +# source://thor//lib/thor/error.rb#65 class Thor::UnknownArgumentError < ::Thor::Error include ::Thor::Correctable # @return [UnknownArgumentError] a new instance of UnknownArgumentError # - # source://thor//lib/thor/error.rb#96 + # source://thor//lib/thor/error.rb#85 def initialize(switches, unknown); end # Returns the value of attribute switches. # - # source://thor//lib/thor/error.rb#94 + # source://thor//lib/thor/error.rb#83 def switches; end # Returns the value of attribute unknown. # - # source://thor//lib/thor/error.rb#94 + # source://thor//lib/thor/error.rb#83 def unknown; end end -# source://thor//lib/thor/error.rb#77 +# source://thor//lib/thor/error.rb#66 class Thor::UnknownArgumentError::SpellChecker # @return [SpellChecker] a new instance of SpellChecker # - # source://thor//lib/thor/error.rb#80 + # source://thor//lib/thor/error.rb#69 def initialize(error); end - # source://thor//lib/thor/error.rb#84 + # source://thor//lib/thor/error.rb#73 def corrections; end # Returns the value of attribute error. # - # source://thor//lib/thor/error.rb#78 + # source://thor//lib/thor/error.rb#67 def error; end - # source://thor//lib/thor/error.rb#89 + # source://thor//lib/thor/error.rb#78 def spell_checker; end end @@ -3806,7 +4186,7 @@ module Thor::Util # ==== Returns # String # - # source://thor//lib/thor/util.rb#263 + # source://thor//lib/thor/util.rb#264 def escape_globs(path); end # Returns a string that has had any HTML characters escaped. @@ -3821,7 +4201,7 @@ module Thor::Util # ==== Returns # String # - # source://thor//lib/thor/util.rb#279 + # source://thor//lib/thor/util.rb#280 def escape_html(string); end # Receives a namespace and search for it in the Thor::Base subclasses. @@ -3884,13 +4264,13 @@ module Thor::Util # Where to look for Thor files. # - # source://thor//lib/thor/util.rb#212 + # source://thor//lib/thor/util.rb#213 def globs_for(path); end # Receives a path and load the thor file in the path. The file is evaluated # inside the sandbox to avoid namespacing conflicts. # - # source://thor//lib/thor/util.rb#152 + # source://thor//lib/thor/util.rb#153 def load_thorfile(path, content = T.unsafe(nil), debug = T.unsafe(nil)); end # Receives a constant and converts it to a Thor namespace. Since Thor @@ -3925,7 +4305,7 @@ module Thor::Util # Return the path to the ruby interpreter taking into account multiple # installations and windows extensions. # - # source://thor//lib/thor/util.rb#220 + # source://thor//lib/thor/util.rb#221 def ruby_command; end # Receives a string and convert it to snake case. SnakeCase returns snake_case. @@ -3946,7 +4326,7 @@ module Thor::Util # Returns the root where thor files are located, depending on the OS. # - # source://thor//lib/thor/util.rb#191 + # source://thor//lib/thor/util.rb#192 def thor_root; end # Returns the files in the thor root. On Windows thor_root will be something @@ -3956,10 +4336,10 @@ module Thor::Util # # If we don't #gsub the \ character, Dir.glob will fail. # - # source://thor//lib/thor/util.rb#202 + # source://thor//lib/thor/util.rb#203 def thor_root_glob; end - # source://thor//lib/thor/util.rb#167 + # source://thor//lib/thor/util.rb#168 def user_home; end end end diff --git a/sorbet/rbi/gems/unicode-display_width@2.4.2.rbi b/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi similarity index 100% rename from sorbet/rbi/gems/unicode-display_width@2.4.2.rbi rename to sorbet/rbi/gems/unicode-display_width@2.5.0.rbi diff --git a/test/rbi/parser_test.rb b/test/rbi/parser_test.rb index c9fb5c72..457d9e8d 100644 --- a/test/rbi/parser_test.rb +++ b/test/rbi/parser_test.rb @@ -869,7 +869,7 @@ def test_parse_errors def bar RBI end - assert_equal("Cannot parse the expression. Expected an `end` to close the `def` statement.", e.message) + assert_equal("cannot parse the expression. expected an `end` to close the `def` statement.", e.message) assert_equal("-:2:0", e.location.to_s) e = assert_raises(ParseError) do @@ -942,7 +942,7 @@ class Foo e = assert_raises(ParseError) do Parser.parse_file(path) end - assert_equal("Cannot parse the expression. Expected an `end` to close the `class` statement.", e.message) + assert_equal("cannot parse the expression. expected an `end` to close the `class` statement.", e.message) assert_equal("test_parse_real_file_with_error.rbi:2:0", e.location.to_s) FileUtils.rm_rf(path)