diff --git a/Gemfile.lock b/Gemfile.lock index 5d9f313..4ae2058 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -9,9 +9,9 @@ PATH GEM remote: https://rubygems.org/ specs: - actionpack (8.1.3) - actionview (= 8.1.3) - activesupport (= 8.1.3) + actionpack (8.1.3.1) + actionview (= 8.1.3.1) + activesupport (= 8.1.3.1) nokogiri (>= 1.8.5) rack (>= 2.2.4) rack-session (>= 1.0.1) @@ -19,13 +19,13 @@ GEM rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) useragent (~> 0.16) - actionview (8.1.3) - activesupport (= 8.1.3) + actionview (8.1.3.1) + activesupport (= 8.1.3.1) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activesupport (8.1.3) + activesupport (8.1.3.1) base64 bigdecimal concurrent-ruby (~> 1.0, >= 1.3.1) @@ -53,24 +53,23 @@ GEM code_teams (1.3.0) sorbet-runtime coderay (1.1.3) - concurrent-ruby (1.3.7) + concurrent-ruby (1.3.8) connection_pool (3.0.2) constant_resolver (0.3.0) crass (1.0.7) - date (3.5.1) drb (2.2.3) - erb (6.0.4) + erb (6.0.7) erubi (1.13.1) - i18n (1.14.8) + i18n (1.15.2) concurrent-ruby (~> 1.0) - io-console (0.8.2) - irb (1.17.0) + io-console (0.9.2) + irb (1.18.0) pp (>= 0.6.0) prism (>= 1.3.0) rdoc (>= 4.0.0) reline (>= 0.4.2) json (2.21.2) - language_server-protocol (3.17.0.5) + language_server-protocol (3.17.0.6) lint_roller (1.1.0) logger (1.7.0) loofah (2.25.2) @@ -101,10 +100,10 @@ GEM prism (>= 1.4.0) zeitwerk (>= 2.6.1) parallel (1.28.0) - parser (3.3.11.1) + parser (3.3.12.0) ast (~> 2.4.1) racc - pp (0.6.3) + pp (0.6.4) prettyprint prettyprint (0.2.0) prism (1.9.0) @@ -112,9 +111,6 @@ GEM coderay (~> 1.1) method_source (~> 1.0) reline (>= 0.6.0) - psych (5.3.1) - date - stringio racc (1.8.1) rack (3.2.6) rack-session (2.1.2) @@ -131,9 +127,9 @@ GEM rails-html-sanitizer (1.7.1) loofah (~> 2.25, >= 2.25.2) nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0) - railties (8.1.3) - actionpack (= 8.1.3) - activesupport (= 8.1.3) + railties (8.1.3.1) + actionpack (= 8.1.3.1) + activesupport (= 8.1.3.1) irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) @@ -149,16 +145,17 @@ GEM logger prism (>= 1.6.0) tsort - rdoc (7.2.0) + rdoc (8.0.0) erb - psych (>= 4.0.0) + prism (>= 1.6.0) + rbs (>= 4.0.0) tsort regexp_parser (2.12.0) - reline (0.6.3) + reline (0.7.0) io-console (~> 0.5) require-hooks (0.4.0) rexml (3.4.4) - rubocop (1.88.1) + rubocop (1.89.0) json (~> 2.3) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.1.0) @@ -169,7 +166,7 @@ GEM rubocop-ast (>= 1.49.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 4.0) - rubocop-ast (1.49.1) + rubocop-ast (1.50.0) parser (>= 3.3.7.2) prism (~> 1.7) rubocop-gusto (11.3.0) @@ -205,14 +202,14 @@ GEM smart_properties (1.17.0) smart_todo (1.11.0) prism (~> 1.0) - sorbet (0.6.13321) - sorbet-static (= 0.6.13321) - sorbet-runtime (0.6.13321) - sorbet-static (0.6.13321-universal-darwin) - sorbet-static (0.6.13321-x86_64-linux) - sorbet-static-and-runtime (0.6.13321) - sorbet (= 0.6.13321) - sorbet-runtime (= 0.6.13321) + sorbet (0.6.13420) + sorbet-static (= 0.6.13420) + sorbet-runtime (0.6.13420) + sorbet-static (0.6.13420-universal-darwin) + sorbet-static (0.6.13420-x86_64-linux) + sorbet-static-and-runtime (0.6.13420) + sorbet (= 0.6.13420) + sorbet-runtime (= 0.6.13420) spoom (1.8.2) erubi (>= 1.10.0) prism (>= 0.28.0) @@ -221,7 +218,6 @@ GEM rexml (>= 3.2.6) sorbet-static-and-runtime (>= 0.5.10187) thor (>= 0.19.2) - stringio (3.2.0) tapioca (0.19.2) benchmark bundler (>= 2.2.25) @@ -243,7 +239,7 @@ GEM unicode-emoji (4.2.0) uri (1.1.1) useragent (0.16.11) - zeitwerk (2.8.2) + zeitwerk (2.8.3) PLATFORMS arm64-darwin diff --git a/sorbet/rbi/gems/actionpack@8.1.3.rbi b/sorbet/rbi/gems/actionpack@8.1.3.1.rbi similarity index 99% rename from sorbet/rbi/gems/actionpack@8.1.3.rbi rename to sorbet/rbi/gems/actionpack@8.1.3.1.rbi index c1570a1..0830deb 100644 --- a/sorbet/rbi/gems/actionpack@8.1.3.rbi +++ b/sorbet/rbi/gems/actionpack@8.1.3.1.rbi @@ -20185,7 +20185,7 @@ ActionPack::VERSION::MAJOR = T.let(T.unsafe(nil), Integer) ActionPack::VERSION::MINOR = T.let(T.unsafe(nil), Integer) # pkg:gem/actionpack#lib/action_pack/gem_version.rb:15 -ActionPack::VERSION::PRE = T.let(T.unsafe(nil), T.untyped) +ActionPack::VERSION::PRE = T.let(T.unsafe(nil), String) # pkg:gem/actionpack#lib/action_pack/gem_version.rb:17 ActionPack::VERSION::STRING = T.let(T.unsafe(nil), String) diff --git a/sorbet/rbi/gems/actionview@8.1.3.rbi b/sorbet/rbi/gems/actionview@8.1.3.1.rbi similarity index 99% rename from sorbet/rbi/gems/actionview@8.1.3.rbi rename to sorbet/rbi/gems/actionview@8.1.3.1.rbi index 286eb13..f15c80d 100644 --- a/sorbet/rbi/gems/actionview@8.1.3.rbi +++ b/sorbet/rbi/gems/actionview@8.1.3.1.rbi @@ -14593,7 +14593,7 @@ ActionView::VERSION::MAJOR = T.let(T.unsafe(nil), Integer) ActionView::VERSION::MINOR = T.let(T.unsafe(nil), Integer) # pkg:gem/actionview#lib/action_view/gem_version.rb:13 -ActionView::VERSION::PRE = T.let(T.unsafe(nil), T.untyped) +ActionView::VERSION::PRE = T.let(T.unsafe(nil), String) # pkg:gem/actionview#lib/action_view/gem_version.rb:15 ActionView::VERSION::STRING = T.let(T.unsafe(nil), String) diff --git a/sorbet/rbi/gems/activesupport@8.1.3.rbi b/sorbet/rbi/gems/activesupport@8.1.3.1.rbi similarity index 99% rename from sorbet/rbi/gems/activesupport@8.1.3.rbi rename to sorbet/rbi/gems/activesupport@8.1.3.1.rbi index 63e74e1..91ad4cc 100644 --- a/sorbet/rbi/gems/activesupport@8.1.3.rbi +++ b/sorbet/rbi/gems/activesupport@8.1.3.1.rbi @@ -14851,7 +14851,7 @@ ActiveSupport::VERSION::MAJOR = T.let(T.unsafe(nil), Integer) ActiveSupport::VERSION::MINOR = T.let(T.unsafe(nil), Integer) # pkg:gem/activesupport#lib/active_support/gem_version.rb:13 -ActiveSupport::VERSION::PRE = T.let(T.unsafe(nil), T.untyped) +ActiveSupport::VERSION::PRE = T.let(T.unsafe(nil), String) # pkg:gem/activesupport#lib/active_support/gem_version.rb:15 ActiveSupport::VERSION::STRING = T.let(T.unsafe(nil), String) diff --git a/sorbet/rbi/gems/concurrent-ruby@1.3.7.rbi b/sorbet/rbi/gems/concurrent-ruby@1.3.8.rbi similarity index 99% rename from sorbet/rbi/gems/concurrent-ruby@1.3.7.rbi rename to sorbet/rbi/gems/concurrent-ruby@1.3.8.rbi index 22021a4..574ba93 100644 --- a/sorbet/rbi/gems/concurrent-ruby@1.3.7.rbi +++ b/sorbet/rbi/gems/concurrent-ruby@1.3.8.rbi @@ -5912,7 +5912,7 @@ end # @abstract # -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2047 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2053 class Concurrent::Promises::AbstractAnyPromise < ::Concurrent::Promises::BlockedPromise; end # Common ancestor of {Event} and {Future} classes, many shared methods are defined here. @@ -6172,196 +6172,196 @@ class Concurrent::Promises::AbstractEventFuture < ::Concurrent::Synchronization: def with_async(executor, *args, &block); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1796 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1802 class Concurrent::Promises::AbstractFlatPromise < ::Concurrent::Promises::BlockedPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1798 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1804 def initialize(delayed_because, blockers_count, event_or_future); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1808 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1814 def touch; end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1828 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1834 def add_delayed_of(future); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1820 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1826 def on_resolvable(resolved_future, index); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1824 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1830 def resolvable?(countdown, future, index); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1816 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1822 def touched?; end end # @abstract # @private # -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1549 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1555 class Concurrent::Promises::AbstractPromise < ::Concurrent::Synchronization::Object include ::Concurrent::Promises::InternalStates extend ::Concurrent::Synchronization::SafeInitialization - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1553 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1559 def initialize(future); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1564 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1570 def default_executor; end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1581 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1587 def delayed_because; end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1562 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1568 def event; end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1558 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1564 def future; end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1579 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1585 def inspect; end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1568 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1574 def state; end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1575 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1581 def to_s; end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1572 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1578 def touch; end private # @return [Future] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1592 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1598 def evaluate_to(*args, block); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1587 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1593 def resolve_with(new_state, raise_on_reassign = T.unsafe(nil)); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2084 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2090 class Concurrent::Promises::AnyFulfilledFuturePromise < ::Concurrent::Promises::AnyResolvedFuturePromise private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2088 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2094 def resolvable?(countdown, event_or_future, index); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2050 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2056 class Concurrent::Promises::AnyResolvedEventPromise < ::Concurrent::Promises::AbstractAnyPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2054 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2060 def initialize(delayed, blockers_count, default_executor); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2062 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2068 def on_resolvable(resolved_future, index); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2058 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2064 def resolvable?(countdown, future, index); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2067 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2073 class Concurrent::Promises::AnyResolvedFuturePromise < ::Concurrent::Promises::AbstractAnyPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2071 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2077 def initialize(delayed, blockers_count, default_executor); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2079 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2085 def on_resolvable(resolved_future, index); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2075 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2081 def resolvable?(countdown, future, index); end end # @abstract # -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1619 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1625 class Concurrent::Promises::BlockedPromise < ::Concurrent::Promises::InnerPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1661 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1667 def initialize(delayed, blockers_count, future); end # for inspection only # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1683 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1689 def blocked_by; end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1674 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1680 def delayed_because; end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1667 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1673 def on_blocker_resolution(future, index); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1678 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1684 def touch; end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1691 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1697 def clear_and_propagate_touch(stack_or_element = T.unsafe(nil)); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1710 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1716 def on_resolvable(resolved_future, index); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1706 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1712 def process_on_blocker_resolution(future, index); end # @return [true,false] if resolvable # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1702 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1708 def resolvable?(countdown, future, index); end class << self - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1652 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1658 def add_delayed(delayed1, delayed2); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1645 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1651 def new_blocked_by(blockers, *args, &block); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1623 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1629 def new_blocked_by1(blocker, *args, &block); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1630 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1636 def new_blocked_by2(blocker1, blocker2, *args, &block); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1621 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1627 def new(*args, &block); end end end # @abstract # -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1716 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1722 class Concurrent::Promises::BlockedTaskPromise < ::Concurrent::Promises::BlockedPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1717 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1723 def initialize(delayed, blockers_count, default_executor, executor, args, &task); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1725 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1731 def executor; end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1766 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1772 class Concurrent::Promises::ChainPromise < ::Concurrent::Promises::BlockedTaskPromise private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1769 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1775 def on_resolvable(resolved_future, index); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2095 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2101 class Concurrent::Promises::DelayPromise < ::Concurrent::Promises::InnerPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2097 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2103 def initialize(default_executor); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2108 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2114 def delayed_because; end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2104 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2110 def touch; end end @@ -6447,14 +6447,14 @@ class Concurrent::Promises::Event < ::Concurrent::Promises::AbstractEventFuture def rejected_resolution(raise_on_reassign, state); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1972 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1978 class Concurrent::Promises::EventWrapperPromise < ::Concurrent::Promises::BlockedPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1973 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1979 def initialize(delayed, blockers_count, default_executor); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1979 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1985 def on_resolvable(resolved_future, index); end end @@ -6741,25 +6741,25 @@ module Concurrent::Promises::FactoryMethods::Configuration def default_executor; end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1840 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1846 class Concurrent::Promises::FlatEventPromise < ::Concurrent::Promises::AbstractFlatPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1844 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1850 def initialize(delayed, blockers_count, default_executor); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1848 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1854 def process_on_blocker_resolution(future, index); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1873 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1879 class Concurrent::Promises::FlatFuturePromise < ::Concurrent::Promises::AbstractFlatPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1877 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1883 def initialize(delayed, blockers_count, levels, default_executor); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1884 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1890 def process_on_blocker_resolution(future, index); end end @@ -6768,7 +6768,7 @@ end # # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:917 class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1078 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1084 def &(other); end # Creates a new event which will be resolved when the first of receiver, `event_or_future` @@ -6777,12 +6777,12 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # # @return [Future] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1085 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1091 def any(event_or_future); end # @!visibility private # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1215 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1221 def apply(args, block); end # Creates new future dependent on receiver which will not evaluate until touched, see {#touch}. @@ -6790,7 +6790,7 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # # @return [Future] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1095 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1101 def delay; end # Allows rejected Future to be risen with `raise` method. @@ -6802,10 +6802,10 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # @raise [Concurrent::Error] when raising not rejected future # @return [Exception] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1013 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1014 def exception(*args); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1124 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1130 def flat(level = T.unsafe(nil)); end # Creates new event which will be resolved when the returned event by receiver is. @@ -6813,7 +6813,7 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # # @return [Event] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1130 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1136 def flat_event; end # Creates new future which will have result of the future returned by receiver. If receiver @@ -6822,22 +6822,22 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # @param [Integer] level how many levels of futures should flatten # @return [Future] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1120 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1126 def flat_future(level = T.unsafe(nil)); end # Is it in fulfilled state? # @return [Boolean] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:921 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:922 def fulfilled?; end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1243 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1249 def inspect; end # @!macro promises.shortcut.using # @return [self] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1136 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1142 def on_fulfillment(*args, &callback); end # Stores the callback to be executed synchronously on resolving thread after it is @@ -6848,7 +6848,7 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # @return [self] # @yield [value, *args] to the callback. # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1147 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1153 def on_fulfillment!(*args, &callback); end # Stores the callback to be executed asynchronously on executor after it is @@ -6860,13 +6860,13 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # @return [self] # @yield [value, *args] to the callback. # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1159 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1165 def on_fulfillment_using(executor, *args, &callback); end # @!macro promises.shortcut.using # @return [self] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1165 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1171 def on_rejection(*args, &callback); end # Stores the callback to be executed synchronously on resolving thread after it is @@ -6877,7 +6877,7 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # @return [self] # @yield [reason, *args] to the callback. # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1176 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1182 def on_rejection!(*args, &callback); end # Stores the callback to be executed asynchronously on executor after it is @@ -6889,7 +6889,7 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # @return [self] # @yield [reason, *args] to the callback. # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1188 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1194 def on_rejection_using(executor, *args, &callback); end # Returns reason of future's rejection. @@ -6901,19 +6901,19 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # @!macro promises.param.timeout_value # @return [Object, timeout_value] the reason, or timeout_value on timeout, or nil on fulfillment. # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:966 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:967 def reason(timeout = T.unsafe(nil), timeout_value = T.unsafe(nil)); end # Is it in rejected state? # @return [Boolean] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:928 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:929 def rejected?; end # @!macro promises.shortcut.on # @return [Future] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1052 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1058 def rescue(*args, &task); end # Chains the task to be executed asynchronously on executor after it rejects. Does not run @@ -6925,7 +6925,7 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # @return [Future] # @yield [reason, *args] to the task. # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1064 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1070 def rescue_on(executor, *args, &task); end # Returns triplet fulfilled?, value, reason. @@ -6936,7 +6936,7 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # @return [Array(Boolean, Object, Object), nil] triplet of fulfilled?, value, reason, or nil # on timeout. # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:981 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:982 def result(timeout = T.unsafe(nil)); end # Allows to use futures as green threads. The receiver has to evaluate to a future which @@ -6958,19 +6958,19 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # end # Promises.future(0, &body).run.value! # => 5 # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1210 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1216 def run(run_test = T.unsafe(nil)); end # @!macro promise.method.schedule # @return [Future] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1102 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1108 def schedule(intended_time); end # @!macro promises.shortcut.on # @return [Future] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1034 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1040 def then(*args, &task); end # Chains the task to be executed asynchronously on executor after it fulfills. Does not run @@ -6982,25 +6982,25 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # @return [Future] # @yield [value, *args] to the task. # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1046 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1052 def then_on(executor, *args, &task); end # Converts future to event which is resolved when future is resolved by fulfillment or rejection. # # @return [Event] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1222 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1228 def to_event; end # Returns self, since this is a future # @return [Future] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1230 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1236 def to_future; end # @return [String] Short string representation. # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1235 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1241 def to_s; end # @!macro promises.method.value @@ -7016,7 +7016,7 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # timeout_value on timeout, # nil on rejection. # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:950 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:951 def value(timeout = T.unsafe(nil), timeout_value = T.unsafe(nil)); end # @!macro promises.method.value @@ -7025,85 +7025,88 @@ class Concurrent::Promises::Future < ::Concurrent::Promises::AbstractEventFuture # or timeout_value on timeout. # @raise [Exception] {#reason} on rejection # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:997 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:998 def value!(timeout = T.unsafe(nil), timeout_value = T.unsafe(nil)); end # @!macro promises.method.wait # @raise [Exception] {#reason} on rejection # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:987 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:988 def wait!(timeout = T.unsafe(nil)); end # @!macro promises.method.with_default_executor # @return [Future] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1111 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1117 def with_default_executor(executor); end # @!macro promises.method.zip # @return [Future] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1070 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1076 def zip(other); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1089 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1095 def |(event_or_future); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1272 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1278 def async_callback_on_fulfillment(state, executor, args, callback); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1278 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1284 def async_callback_on_rejection(state, executor, args, callback); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1284 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1290 def callback_on_fulfillment(state, args, callback); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1288 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1294 def callback_on_rejection(state, args, callback); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1292 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1298 def callback_on_resolution(state, args, callback); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1251 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1257 def rejected_resolution(raise_on_reassign, state); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1247 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1253 def run_test(v); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1266 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1272 def wait_until_resolved!(timeout = T.unsafe(nil)); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1984 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:918 +Concurrent::Promises::Future::SET_BACKTRACE_LOCATIONS_SUPPORTED = T.let(T.unsafe(nil), TrueClass) + +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1990 class Concurrent::Promises::FutureWrapperPromise < ::Concurrent::Promises::BlockedPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1985 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1991 def initialize(delayed, blockers_count, default_executor); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1991 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1997 def on_resolvable(resolved_future, index); end end # will be immediately resolved # -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1783 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1789 class Concurrent::Promises::ImmediateEventPromise < ::Concurrent::Promises::InnerPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1784 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1790 def initialize(default_executor); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1789 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1795 class Concurrent::Promises::ImmediateFuturePromise < ::Concurrent::Promises::InnerPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1790 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1796 def initialize(default_executor, fulfilled, value, reason); end end # @abstract # -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1615 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1621 class Concurrent::Promises::InnerPromise < ::Concurrent::Promises::AbstractPromise; end # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:338 @@ -7254,27 +7257,27 @@ class Concurrent::Promises::InternalStates::State def to_sym; end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1748 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1754 class Concurrent::Promises::RescuePromise < ::Concurrent::Promises::BlockedTaskPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1751 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1757 def initialize(delayed, blockers_count, default_executor, executor, args, &task); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1755 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1761 def on_resolvable(resolved_future, index); end end # Marker module of Future, Event resolved manually. # -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1299 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1305 module Concurrent::Promises::Resolvable include ::Concurrent::Promises::InternalStates end # A Event which can be resolved by user. # -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1304 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1310 class Concurrent::Promises::ResolvableEvent < ::Concurrent::Promises::Event include ::Concurrent::Promises::Resolvable @@ -7287,7 +7290,7 @@ class Concurrent::Promises::ResolvableEvent < ::Concurrent::Promises::Event # marks resolution of reserved resolvable events and futures explicitly. # Advanced feature, ignore unless you use {Resolvable#reserve} from edge. # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1324 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1330 def resolve(raise_on_reassign = T.unsafe(nil), reserved = T.unsafe(nil)); end # Behaves as {AbstractEventFuture#wait} but has one additional optional argument @@ -7298,26 +7301,26 @@ class Concurrent::Promises::ResolvableEvent < ::Concurrent::Promises::Event # @return [self, true, false] # @see AbstractEventFuture#wait # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1342 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1348 def wait(timeout = T.unsafe(nil), resolve_on_timeout = T.unsafe(nil)); end # Creates new event wrapping receiver, effectively hiding the resolve method. # # @return [Event] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1331 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1337 def with_hidden_resolvable; end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1600 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1606 class Concurrent::Promises::ResolvableEventPromise < ::Concurrent::Promises::AbstractPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1601 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1607 def initialize(default_executor); end end # A Future which can be resolved by user. # -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1354 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1360 class Concurrent::Promises::ResolvableFuture < ::Concurrent::Promises::Future include ::Concurrent::Promises::Resolvable @@ -7328,7 +7331,7 @@ class Concurrent::Promises::ResolvableFuture < ::Concurrent::Promises::Future # @yieldreturn [Object] value # @return [self] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1395 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1401 def evaluate_to(*args, &block); end # Evaluates the block and sets its result as future's value fulfilling, if the block raises @@ -7339,7 +7342,7 @@ class Concurrent::Promises::ResolvableFuture < ::Concurrent::Promises::Future # @return [self] # @raise [Exception] also raise reason on rejection. # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1406 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1412 def evaluate_to!(*args, &block); end # Makes the future fulfilled with `value`, @@ -7349,7 +7352,7 @@ class Concurrent::Promises::ResolvableFuture < ::Concurrent::Promises::Future # @!macro promise.param.raise_on_reassign # @!macro promise.param.reserved # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1375 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1381 def fulfill(value, raise_on_reassign = T.unsafe(nil), reserved = T.unsafe(nil)); end # Behaves as {Future#reason} but has one additional optional argument @@ -7359,7 +7362,7 @@ class Concurrent::Promises::ResolvableFuture < ::Concurrent::Promises::Future # @return [Exception, timeout_value, nil] # @see Future#reason # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1503 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1509 def reason(timeout = T.unsafe(nil), timeout_value = T.unsafe(nil), resolve_on_timeout = T.unsafe(nil)); end # Makes the future rejected with `reason`, @@ -7369,7 +7372,7 @@ class Concurrent::Promises::ResolvableFuture < ::Concurrent::Promises::Future # @!macro promise.param.raise_on_reassign # @!macro promise.param.reserved # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1385 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1391 def reject(reason, raise_on_reassign = T.unsafe(nil), reserved = T.unsafe(nil)); end # Makes the future resolved with result of triplet `fulfilled?`, `value`, `reason`, @@ -7381,7 +7384,7 @@ class Concurrent::Promises::ResolvableFuture < ::Concurrent::Promises::Future # @!macro promise.param.raise_on_reassign # @!macro promise.param.reserved # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1365 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1371 def resolve(fulfilled = T.unsafe(nil), value = T.unsafe(nil), reason = T.unsafe(nil), raise_on_reassign = T.unsafe(nil), reserved = T.unsafe(nil)); end # Behaves as {Future#result} but has one additional optional argument @@ -7391,7 +7394,7 @@ class Concurrent::Promises::ResolvableFuture < ::Concurrent::Promises::Future # @return [::Array(Boolean, Object, Exception), nil] # @see Future#result # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1524 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1530 def result(timeout = T.unsafe(nil), resolve_on_timeout = T.unsafe(nil)); end # Behaves as {Future#value} but has one additional optional argument @@ -7401,7 +7404,7 @@ class Concurrent::Promises::ResolvableFuture < ::Concurrent::Promises::Future # @return [Object, timeout_value, nil] # @see Future#value # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1459 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1465 def value(timeout = T.unsafe(nil), timeout_value = T.unsafe(nil), resolve_on_timeout = T.unsafe(nil)); end # Behaves as {Future#value!} but has one additional optional argument @@ -7412,7 +7415,7 @@ class Concurrent::Promises::ResolvableFuture < ::Concurrent::Promises::Future # @raise [Exception] {#reason} on rejection # @see Future#value! # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1481 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1487 def value!(timeout = T.unsafe(nil), timeout_value = T.unsafe(nil), resolve_on_timeout = T.unsafe(nil)); end # Behaves as {AbstractEventFuture#wait} but has one additional optional argument @@ -7422,7 +7425,7 @@ class Concurrent::Promises::ResolvableFuture < ::Concurrent::Promises::Future # @return [self, true, false] # @see AbstractEventFuture#wait # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1421 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1427 def wait(timeout = T.unsafe(nil), resolve_on_timeout = T.unsafe(nil)); end # Behaves as {Future#wait!} but has one additional optional argument @@ -7433,107 +7436,107 @@ class Concurrent::Promises::ResolvableFuture < ::Concurrent::Promises::Future # @raise [Exception] {#reason} on rejection # @see Future#wait! # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1438 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1444 def wait!(timeout = T.unsafe(nil), resolve_on_timeout = T.unsafe(nil)); end # Creates new future wrapping receiver, effectively hiding the resolve method and similar. # # @return [Future] # - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1542 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1548 def with_hidden_resolvable; end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1606 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1612 class Concurrent::Promises::ResolvableFuturePromise < ::Concurrent::Promises::AbstractPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1607 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1613 def initialize(default_executor); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1611 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1617 def evaluate_to(*args, block); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1909 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1915 class Concurrent::Promises::RunFuturePromise < ::Concurrent::Promises::AbstractFlatPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1913 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1919 def initialize(delayed, blockers_count, default_executor, run_test); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1918 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1924 def process_on_blocker_resolution(future, index); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2114 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2120 class Concurrent::Promises::ScheduledPromise < ::Concurrent::Promises::InnerPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2125 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2131 def initialize(default_executor, intended_time); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2119 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2125 def inspect; end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2115 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2121 def intended_time; end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1730 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1736 class Concurrent::Promises::ThenPromise < ::Concurrent::Promises::BlockedTaskPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1733 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1739 def initialize(delayed, blockers_count, default_executor, executor, args, &task); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1737 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1743 def on_resolvable(resolved_future, index); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1940 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1946 class Concurrent::Promises::ZipEventEventPromise < ::Concurrent::Promises::BlockedPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1941 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1947 def initialize(delayed, blockers_count, default_executor); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1947 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1953 def on_resolvable(resolved_future, index); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2031 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2037 class Concurrent::Promises::ZipEventsPromise < ::Concurrent::Promises::BlockedPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2035 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2041 def initialize(delayed, blockers_count, default_executor); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2041 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2047 def on_resolvable(resolved_future, index); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1952 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1958 class Concurrent::Promises::ZipFutureEventPromise < ::Concurrent::Promises::BlockedPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1953 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1959 def initialize(delayed, blockers_count, default_executor); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1967 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1973 def on_resolvable(resolved_future, index); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1960 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1966 def process_on_blocker_resolution(future, index); end end -# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:1996 +# pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2002 class Concurrent::Promises::ZipFuturesPromise < ::Concurrent::Promises::BlockedPromise - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2000 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2006 def initialize(delayed, blockers_count, default_executor); end private - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2013 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2019 def on_resolvable(resolved_future, index); end - # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2007 + # pkg:gem/concurrent-ruby#lib/concurrent-ruby/concurrent/promises.rb:2013 def process_on_blocker_resolution(future, index); end end diff --git a/sorbet/rbi/gems/i18n@1.14.8.rbi b/sorbet/rbi/gems/i18n@1.15.2.rbi similarity index 95% rename from sorbet/rbi/gems/i18n@1.14.8.rbi rename to sorbet/rbi/gems/i18n@1.15.2.rbi index 2fd9c08..b5ab2cc 100644 --- a/sorbet/rbi/gems/i18n@1.14.8.rbi +++ b/sorbet/rbi/gems/i18n@1.15.2.rbi @@ -278,7 +278,7 @@ module I18n # Sets the current fallbacks implementation. Use this to set a different fallbacks implementation. # - # pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:23 + # pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:27 def fallbacks=(fallbacks); end # Return String or raises MissingInterpolationArgument exception. @@ -604,15 +604,15 @@ module I18n::Backend::Chain::Implementation def _deep_merge(hash, other_hash); end end -# pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:30 +# pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:38 module I18n::Backend::Fallbacks - # pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:98 + # pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:106 def exists?(locale, key, options = T.unsafe(nil)); end - # pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:89 + # pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:97 def extract_non_symbol_default!(options); end - # pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:67 + # pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:75 def resolve_entry(locale, object, subject, options = T.unsafe(nil)); end # Overwrites the Base backend translate method so that it will try each @@ -626,14 +626,14 @@ module I18n::Backend::Fallbacks # it's a Symbol. When the default contains a String, Proc or Hash # it is evaluated last after all the fallback locales have been tried. # - # pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:41 + # pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:49 def translate(locale, key, options = T.unsafe(nil)); end private # Overwrite on_fallback to add specified logic when the fallback succeeds. # - # pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:114 + # pkg:gem/i18n#lib/i18n/backend/fallbacks.rb:122 def on_fallback(_original_locale, _fallback_locale, _key, _options); end end @@ -1273,23 +1273,23 @@ I18n::Backend::Transliterator::DEFAULT_REPLACEMENT_CHAR = T.let(T.unsafe(nil), S # # pkg:gem/i18n#lib/i18n/backend/transliterator.rb:42 class I18n::Backend::Transliterator::HashTransliterator - # pkg:gem/i18n#lib/i18n/backend/transliterator.rb:74 + # pkg:gem/i18n#lib/i18n/backend/transliterator.rb:75 def initialize(rule = T.unsafe(nil)); end - # pkg:gem/i18n#lib/i18n/backend/transliterator.rb:80 + # pkg:gem/i18n#lib/i18n/backend/transliterator.rb:81 def transliterate(string, replacement = T.unsafe(nil)); end private # Add transliteration rules to the approximations hash. # - # pkg:gem/i18n#lib/i18n/backend/transliterator.rb:100 + # pkg:gem/i18n#lib/i18n/backend/transliterator.rb:101 def add(hash); end - # pkg:gem/i18n#lib/i18n/backend/transliterator.rb:93 + # pkg:gem/i18n#lib/i18n/backend/transliterator.rb:94 def add_default_approximations; end - # pkg:gem/i18n#lib/i18n/backend/transliterator.rb:89 + # pkg:gem/i18n#lib/i18n/backend/transliterator.rb:90 def approximations; end end @@ -1309,19 +1309,19 @@ end # pkg:gem/i18n#lib/i18n.rb:55 module I18n::Base - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def available_locales; end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def available_locales=(value); end - # pkg:gem/i18n#lib/i18n.rb:387 + # pkg:gem/i18n#lib/i18n.rb:416 def available_locales_initialized?; end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def backend; end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def backend=(value); end # Gets I18n configuration object. @@ -1331,48 +1331,48 @@ module I18n::Base # Sets I18n configuration object. # - # pkg:gem/i18n#lib/i18n.rb:63 + # pkg:gem/i18n#lib/i18n.rb:87 def config=(value); end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def default_locale; end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def default_locale=(value); end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def default_separator; end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def default_separator=(value); end # Tells the backend to load translations now. Used in situations like the # Rails production environment. Backends can implement whatever strategy # is useful. # - # pkg:gem/i18n#lib/i18n.rb:92 + # pkg:gem/i18n#lib/i18n.rb:121 def eager_load!; end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def enforce_available_locales; end # Raises an InvalidLocale exception when the passed locale is not available. # - # pkg:gem/i18n#lib/i18n.rb:381 + # pkg:gem/i18n#lib/i18n.rb:410 def enforce_available_locales!(locale); end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def enforce_available_locales=(value); end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def exception_handler; end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def exception_handler=(value); end # Returns true if a translation exists for a given key, otherwise returns false. # - # pkg:gem/i18n#lib/i18n.rb:266 + # pkg:gem/i18n#lib/i18n.rb:295 def exists?(key, _locale = T.unsafe(nil), locale: T.unsafe(nil), **options); end # Returns an array of interpolation keys for the given translation key @@ -1395,53 +1395,53 @@ module I18n::Base # I18n.interpolation_keys('does-not-exist') #=> [] # I18n.interpolation_keys('example') #=> [] # - # pkg:gem/i18n#lib/i18n.rb:255 + # pkg:gem/i18n#lib/i18n.rb:284 def interpolation_keys(key, **options); end - # pkg:gem/i18n#lib/i18n.rb:344 + # pkg:gem/i18n#lib/i18n.rb:373 def l(object, locale: T.unsafe(nil), format: T.unsafe(nil), **options); end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def load_path; end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def load_path=(value); end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def locale; end - # pkg:gem/i18n#lib/i18n.rb:70 + # pkg:gem/i18n#lib/i18n.rb:99 def locale=(value); end # Returns true when the passed locale, which can be either a String or a # Symbol, is in the list of available locales. Returns false otherwise. # - # pkg:gem/i18n#lib/i18n.rb:376 + # pkg:gem/i18n#lib/i18n.rb:405 def locale_available?(locale); end # Localizes certain objects, such as dates and numbers to local formatting. # - # pkg:gem/i18n#lib/i18n.rb:336 + # pkg:gem/i18n#lib/i18n.rb:365 def localize(object, locale: T.unsafe(nil), format: T.unsafe(nil), **options); end # Merges the given locale, key and scope into a single array of keys. # Splits keys that contain dots into multiple keys. Makes sure all # keys are Symbols. # - # pkg:gem/i18n#lib/i18n.rb:364 + # pkg:gem/i18n#lib/i18n.rb:393 def normalize_keys(locale, key, scope, separator = T.unsafe(nil)); end # Tells the backend to reload translations. Used in situations like the # Rails development environment. Backends can implement whatever strategy # is useful. # - # pkg:gem/i18n#lib/i18n.rb:84 + # pkg:gem/i18n#lib/i18n.rb:113 def reload!; end - # pkg:gem/i18n#lib/i18n.rb:227 + # pkg:gem/i18n#lib/i18n.rb:256 def t(key = T.unsafe(nil), throw: T.unsafe(nil), raise: T.unsafe(nil), locale: T.unsafe(nil), **options); end - # pkg:gem/i18n#lib/i18n.rb:234 + # pkg:gem/i18n#lib/i18n.rb:263 def t!(key, **options); end # Translates, pluralizes and interpolates a given key using a given locale, @@ -1560,13 +1560,13 @@ module I18n::Base # I18n.t(:salutation, { :gender => 'w', :name => 'Smith' }) # I18n.t(:salutation, any_hash) # - # pkg:gem/i18n#lib/i18n.rb:212 + # pkg:gem/i18n#lib/i18n.rb:241 def translate(key = T.unsafe(nil), throw: T.unsafe(nil), raise: T.unsafe(nil), locale: T.unsafe(nil), **options); end # Wrapper for translate that adds :raise => true. With # this option, if no translation is found, it will raise I18n::MissingTranslationData # - # pkg:gem/i18n#lib/i18n.rb:231 + # pkg:gem/i18n#lib/i18n.rb:260 def translate!(key, **options); end # Transliterates UTF-8 characters to ASCII. By default this method will @@ -1621,14 +1621,19 @@ module I18n::Base # I18n.transliterate("Jürgen", :locale => :en) # => "Jurgen" # I18n.transliterate("Jürgen", :locale => :de) # => "Juergen" # - # pkg:gem/i18n#lib/i18n.rb:325 + # pkg:gem/i18n#lib/i18n.rb:354 def transliterate(key, throw: T.unsafe(nil), raise: T.unsafe(nil), locale: T.unsafe(nil), replacement: T.unsafe(nil), **options); end # Executes block with given I18n.locale set. # - # pkg:gem/i18n#lib/i18n.rb:347 + # pkg:gem/i18n#lib/i18n.rb:376 def with_locale(tmp_locale = T.unsafe(nil)); end + # Gets a mutable I18n configuration object. + # + # pkg:gem/i18n#lib/i18n.rb:73 + def writable_config; end + private # Any exceptions thrown in translate will be sent to the @@exception_handler @@ -1650,101 +1655,104 @@ module I18n::Base # I18n.exception_handler = I18nExceptionHandler.new # an object # I18n.exception_handler.call(exception, locale, key, options) # will be called like this # - # pkg:gem/i18n#lib/i18n.rb:423 + # pkg:gem/i18n#lib/i18n.rb:452 def handle_exception(handling, exception, locale, key, options); end - # pkg:gem/i18n#lib/i18n.rb:465 + # pkg:gem/i18n#lib/i18n.rb:494 def interpolation_keys_from_translation(translation); end - # pkg:gem/i18n#lib/i18n.rb:441 + # pkg:gem/i18n#lib/i18n.rb:470 def normalize_key(key, separator); end - # pkg:gem/i18n#lib/i18n.rb:393 + # pkg:gem/i18n#lib/i18n.rb:422 def translate_key(key, throw, raise, locale, backend, options); end end # pkg:gem/i18n#lib/i18n/config.rb:6 class I18n::Config + # pkg:gem/i18n#lib/i18n/config.rb:13 + def initialize; end + # Returns an array of locales for which translations are available. # Unless you explicitly set these through I18n.available_locales= # the call will be delegated to the backend. # - # pkg:gem/i18n#lib/i18n/config.rb:43 + # pkg:gem/i18n#lib/i18n/config.rb:77 def available_locales; end # Sets the available locales. # - # pkg:gem/i18n#lib/i18n/config.rb:57 + # pkg:gem/i18n#lib/i18n/config.rb:91 def available_locales=(locales); end # Returns true if the available_locales have been initialized # - # pkg:gem/i18n#lib/i18n/config.rb:64 + # pkg:gem/i18n#lib/i18n/config.rb:98 def available_locales_initialized?; end # Caches the available locales list as both strings and symbols in a Set, so # that we can have faster lookups to do the available locales enforce check. # - # pkg:gem/i18n#lib/i18n/config.rb:50 + # pkg:gem/i18n#lib/i18n/config.rb:84 def available_locales_set; end # Returns the current backend. Defaults to +Backend::Simple+. # - # pkg:gem/i18n#lib/i18n/config.rb:20 + # pkg:gem/i18n#lib/i18n/config.rb:54 def backend; end # Sets the current backend. Used to set a custom backend. # - # pkg:gem/i18n#lib/i18n/config.rb:25 + # pkg:gem/i18n#lib/i18n/config.rb:59 def backend=(backend); end # Clears the available locales set so it can be recomputed again after I18n # gets reloaded. # - # pkg:gem/i18n#lib/i18n/config.rb:70 + # pkg:gem/i18n#lib/i18n/config.rb:104 def clear_available_locales_set; end # Returns the current default locale. Defaults to :'en' # - # pkg:gem/i18n#lib/i18n/config.rb:30 + # pkg:gem/i18n#lib/i18n/config.rb:64 def default_locale; end # Sets the current default locale. Used to set a custom default locale. # - # pkg:gem/i18n#lib/i18n/config.rb:35 + # pkg:gem/i18n#lib/i18n/config.rb:69 def default_locale=(locale); end # Returns the current default scope separator. Defaults to '.' # - # pkg:gem/i18n#lib/i18n/config.rb:75 + # pkg:gem/i18n#lib/i18n/config.rb:109 def default_separator; end # Sets the current default scope separator. # - # pkg:gem/i18n#lib/i18n/config.rb:80 + # pkg:gem/i18n#lib/i18n/config.rb:114 def default_separator=(separator); end - # pkg:gem/i18n#lib/i18n/config.rb:141 + # pkg:gem/i18n#lib/i18n/config.rb:175 def enforce_available_locales; end - # pkg:gem/i18n#lib/i18n/config.rb:145 + # pkg:gem/i18n#lib/i18n/config.rb:179 def enforce_available_locales=(enforce_available_locales); end # Returns the current exception handler. Defaults to an instance of # I18n::ExceptionHandler. # - # pkg:gem/i18n#lib/i18n/config.rb:86 + # pkg:gem/i18n#lib/i18n/config.rb:120 def exception_handler; end # Sets the exception handler. # - # pkg:gem/i18n#lib/i18n/config.rb:91 + # pkg:gem/i18n#lib/i18n/config.rb:125 def exception_handler=(exception_handler); end # Returns the current interpolation patterns. Defaults to # I18n::DEFAULT_INTERPOLATION_PATTERNS. # - # pkg:gem/i18n#lib/i18n/config.rb:151 + # pkg:gem/i18n#lib/i18n/config.rb:185 def interpolation_patterns; end # Sets the current interpolation patterns. Used to set a interpolation @@ -1754,7 +1762,7 @@ class I18n::Config # # I18n.config.interpolation_patterns << /\{\{(\w+)\}\}/ # - # pkg:gem/i18n#lib/i18n/config.rb:161 + # pkg:gem/i18n#lib/i18n/config.rb:195 def interpolation_patterns=(interpolation_patterns); end # Allow clients to register paths providing translation data sources. The @@ -1766,13 +1774,13 @@ class I18n::Config # register translation files like this: # I18n.load_path << 'path/to/locale/en.yml' # - # pkg:gem/i18n#lib/i18n/config.rb:126 + # pkg:gem/i18n#lib/i18n/config.rb:160 def load_path; end # Sets the load path instance. Custom implementations are expected to # behave like a Ruby Array. # - # pkg:gem/i18n#lib/i18n/config.rb:132 + # pkg:gem/i18n#lib/i18n/config.rb:166 def load_path=(load_path); end # The only configuration value that is not global and scoped to thread is :locale. @@ -1781,15 +1789,15 @@ class I18n::Config # pkg:gem/i18n#lib/i18n/config.rb:9 def locale; end - # Sets the current locale pseudo-globally, i.e. in the Thread.current hash. + # Sets the current locale pseudo-globally, i.e. in the Thread.current or Fiber local hash. # - # pkg:gem/i18n#lib/i18n/config.rb:14 + # pkg:gem/i18n#lib/i18n/config.rb:48 def locale=(locale); end # Returns the current handler for situations when interpolation argument # is missing. MissingInterpolationArgument will be raised by default. # - # pkg:gem/i18n#lib/i18n/config.rb:97 + # pkg:gem/i18n#lib/i18n/config.rb:131 def missing_interpolation_argument_handler; end # Sets the missing interpolation argument handler. It can be any @@ -1804,8 +1812,30 @@ class I18n::Config # "#{key} is missing" # end # - # pkg:gem/i18n#lib/i18n/config.rb:114 + # pkg:gem/i18n#lib/i18n/config.rb:148 def missing_interpolation_argument_handler=(exception_handler); end + + # pkg:gem/i18n#lib/i18n/config.rb:17 + def owned_by?(fiber); end + + # pkg:gem/i18n#lib/i18n/config.rb:21 + def owner=(fiber); end + + # Sets this configuration as the current one for the active execution context. + # The stored configuration is frozen to avoid sharing mutable state between fibers. + # + # pkg:gem/i18n#lib/i18n/config.rb:40 + def set!; end + + # Returns a copied configuration with the provided attributes set. + # + # pkg:gem/i18n#lib/i18n/config.rb:30 + def with(**attrs); end + + private + + # pkg:gem/i18n#lib/i18n/config.rb:25 + def initialize_copy(other); end end # pkg:gem/i18n#lib/i18n/interpolate/ruby.rb:7 diff --git a/sorbet/rbi/gems/io-console@0.8.2.rbi b/sorbet/rbi/gems/io-console@0.9.2.rbi similarity index 100% rename from sorbet/rbi/gems/io-console@0.8.2.rbi rename to sorbet/rbi/gems/io-console@0.9.2.rbi diff --git a/sorbet/rbi/gems/language_server-protocol@3.17.0.5.rbi b/sorbet/rbi/gems/language_server-protocol@3.17.0.6.rbi similarity index 100% rename from sorbet/rbi/gems/language_server-protocol@3.17.0.5.rbi rename to sorbet/rbi/gems/language_server-protocol@3.17.0.6.rbi diff --git a/sorbet/rbi/gems/parser@3.3.11.1.rbi b/sorbet/rbi/gems/parser@3.3.12.0.rbi similarity index 100% rename from sorbet/rbi/gems/parser@3.3.11.1.rbi rename to sorbet/rbi/gems/parser@3.3.12.0.rbi diff --git a/sorbet/rbi/gems/railties@8.1.3.rbi b/sorbet/rbi/gems/railties@8.1.3.1.rbi similarity index 99% rename from sorbet/rbi/gems/railties@8.1.3.rbi rename to sorbet/rbi/gems/railties@8.1.3.1.rbi index c3dc917..fa32117 100644 --- a/sorbet/rbi/gems/railties@8.1.3.rbi +++ b/sorbet/rbi/gems/railties@8.1.3.1.rbi @@ -3548,7 +3548,7 @@ Rails::VERSION::MAJOR = T.let(T.unsafe(nil), Integer) Rails::VERSION::MINOR = T.let(T.unsafe(nil), Integer) # pkg:gem/railties#lib/rails/gem_version.rb:13 -Rails::VERSION::PRE = T.let(T.unsafe(nil), T.untyped) +Rails::VERSION::PRE = T.let(T.unsafe(nil), String) # pkg:gem/railties#lib/rails/gem_version.rb:15 Rails::VERSION::STRING = T.let(T.unsafe(nil), String) diff --git a/sorbet/rbi/gems/rubocop-ast@1.49.1.rbi b/sorbet/rbi/gems/rubocop-ast@1.50.0.rbi similarity index 92% rename from sorbet/rbi/gems/rubocop-ast@1.49.1.rbi rename to sorbet/rbi/gems/rubocop-ast@1.50.0.rbi index 5a0b02d..0103f20 100644 --- a/sorbet/rbi/gems/rubocop-ast@1.49.1.rbi +++ b/sorbet/rbi/gems/rubocop-ast@1.50.0.rbi @@ -54,9 +54,9 @@ class RuboCop::AST::AndAsgnNode < ::RuboCop::AST::OpAsgnNode def operator; end end -# A node extension for `until` nodes. This will be used in place of a plain +# A node extension for `and` nodes. This will be used in place of a plain # node when the builder constructs the AST, making its methods available -# to all `until` nodes within RuboCop. +# to all `and` nodes within RuboCop. # # pkg:gem/rubocop-ast#lib/rubocop/ast/node/and_node.rb:8 class RuboCop::AST::AndNode < ::RuboCop::AST::Node @@ -1359,8 +1359,14 @@ module RuboCop::AST::Descendence protected + # pkg:gem/rubocop-ast#lib/rubocop/ast/node/mixin/descendence.rb:115 + def visit_all_descendants(&block); end + # pkg:gem/rubocop-ast#lib/rubocop/ast/node/mixin/descendence.rb:107 def visit_descendants(types, &block); end + + # pkg:gem/rubocop-ast#lib/rubocop/ast/node/mixin/descendence.rb:124 + def visit_descendants_of_types(types, &block); end end # A node extension for `dstr` nodes. This will be used @@ -1476,7 +1482,7 @@ class RuboCop::AST::ForNode < ::RuboCop::AST::Node # Returns the keyword of the `for` statement as a string. # - # @return [String] the keyword of the `until` statement + # @return [String] the keyword of the `for` statement # # pkg:gem/rubocop-ast#lib/rubocop/ast/node/for_node.rb:12 def keyword; end @@ -1647,7 +1653,7 @@ class RuboCop::AST::HashNode < ::RuboCop::AST::Node # @return [Enumerator] if no block is given # # pkg:gem/rubocop-ast#lib/rubocop/ast/node/hash_node.rb:59 - def each_key(&block); end + def each_key; end # Calls the given block for each `pair` node in the `hash` literal. # If no block is given, an `Enumerator` is returned. @@ -1669,7 +1675,7 @@ class RuboCop::AST::HashNode < ::RuboCop::AST::Node # @return [Enumerator] if no block is given # # pkg:gem/rubocop-ast#lib/rubocop/ast/node/hash_node.rb:83 - def each_value(&block); end + def each_value; end # Checks whether the `hash` node contains any `pair`- or `kwsplat` nodes. # @@ -2730,19 +2736,19 @@ class RuboCop::AST::Node < ::Parser::AST::Node # @see https://www.rubydoc.info/gems/ast/AST/Node:initialize # - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:155 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:162 def initialize(type, children = T.unsafe(nil), properties = T.unsafe(nil)); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def __ENCODING___type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def __FILE___type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def __LINE___type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def alias_type?; end # Returns an array of ancestor nodes. @@ -2750,169 +2756,169 @@ class RuboCop::AST::Node < ::Parser::AST::Node # # @return [Array] an array of ancestor nodes # - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:320 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:334 def ancestors; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def and_asgn_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def and_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:549 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:565 def any_block_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:529 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:545 def any_def_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:553 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:569 def any_match_pattern_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:557 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:573 def any_str_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:561 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:577 def any_sym_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def arg_expr_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def arg_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def args_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:525 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:539 def argument?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:533 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:549 def argument_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def array_pattern_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def array_pattern_with_tail_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def array_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:477 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:491 def assignment?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:427 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:441 def assignment_or_similar?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def back_ref_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:481 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:495 def basic_conditional?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:435 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:449 def basic_literal?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def begin_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def block_pass_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def block_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def blockarg_expr_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def blockarg_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def blocknilarg_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:537 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:553 def boolean_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def break_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:517 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:531 def call_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def case_match_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def case_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def casgn_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def cbase_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:521 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:535 def chained?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:609 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:625 def class_constructor?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:627 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:643 def class_definition?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def class_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:217 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:231 def complete!; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:222 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:236 def complete?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def complex_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:485 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:499 def conditional?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:366 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:380 def const_name; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def const_pattern_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def const_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def csend_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def cvar_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def cvasgn_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def def_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:386 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:400 def defined_module; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:391 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:405 def defined_module_name; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def defined_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def defs_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def dstr_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def dsym_type?; end # Calls the given block for each ancestor node from parent to root. @@ -2931,262 +2937,262 @@ class RuboCop::AST::Node < ::Parser::AST::Node # @return [self] if a block is given # @return [Enumerator] if no block is given # - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:308 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:322 def each_ancestor(*types, &block); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def eflipflop_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def empty_else_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:421 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:435 def empty_source?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def ensure_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:469 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:483 def equals_asgn?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def erange_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def false_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:443 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:457 def falsey_literal?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def find_pattern_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:334 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:348 def first_line; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def float_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def for_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def forward_arg_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def forward_args_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def forwarded_args_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def forwarded_kwrestarg_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def forwarded_restarg_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:606 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:622 def global_const?(param0 = T.unsafe(nil), param1); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:565 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:581 def guard_clause?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def gvar_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def gvasgn_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def hash_pattern_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def hash_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def ident_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def if_guard_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def if_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def iflipflop_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:451 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:465 def immutable_literal?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def in_match_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def in_pattern_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def index_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def indexasgn_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def int_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def irange_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def itarg_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def itblock_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def ivar_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def ivasgn_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:498 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:512 def keyword?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def kwarg_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def kwargs_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def kwbegin_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def kwnilarg_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def kwoptarg_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def kwrestarg_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def kwsplat_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:600 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:616 def lambda?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:603 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:619 def lambda_or_proc?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def lambda_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:338 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:352 def last_line; end # Use is discouraged, this is a potentially slow method and can lead # to even slower algorithms # @return [Node, nil] the left (aka previous) sibling # - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:260 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:274 def left_sibling; end # Use is discouraged, this is a potentially slow method and can lead # to even slower algorithms # @return [Array] the left (aka previous) siblings # - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:270 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:284 def left_siblings; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:342 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:356 def line_count; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:431 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:445 def literal?; end # Shortcut to safely check if a location is present # @return [Boolean] # - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:573 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:589 def loc?(which_loc); end # Shortcut to safely test a particular location, even if # this location does not exist or is `nil` # - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:581 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:597 def loc_is?(which_loc, str); end # NOTE: `loop { }` is a normal method call and thus not a loop keyword. # - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:494 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:508 def loop_keyword?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def lvar_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def lvasgn_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def masgn_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def match_alt_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def match_as_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def match_current_line_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:588 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:604 def match_guard_clause?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def match_nil_pattern_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def match_pattern_p_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def match_pattern_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def match_rest_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def match_var_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def match_with_lvasgn_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def match_with_trailing_comma_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def mlhs_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:634 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:650 def module_definition?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def module_type?; end # Predicates # - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:413 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:427 def multiline?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:447 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:461 def mutable_literal?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:765 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:788 def new_class_or_module_block?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def next_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def nil_type?; end # Common destructuring method. This can be used to normalize @@ -3194,92 +3200,92 @@ class RuboCop::AST::Node < ::Parser::AST::Node # Some node types override this with their own custom # destructuring method. # - # @return [Array] the different parts of the ndde + # @return [Array] the different parts of the node # - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:291 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:305 def node_parts; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:348 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:362 def nonempty_line_count; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def not_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def nth_ref_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def numargs_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def numblock_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:541 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:557 def numeric_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def objc_kwarg_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def objc_restarg_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def objc_varargs_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def op_asgn_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:509 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:523 def operator_keyword?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def optarg_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def or_asgn_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def or_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def pair_type?; end # Returns the parent node, or `nil` if the receiver is a root node. # # @return [Node, nil] the parent node or `nil` # - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:199 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:213 def parent; end # @return [Boolean] # - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:208 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:222 def parent?; end # Searching the AST # - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:397 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:411 def parent_module_name; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:513 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:527 def parenthesized_call?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def pin_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:489 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:503 def post_condition_loop?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def postexe_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def preexe_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:593 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:609 def proc?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def procarg0_type?; end # Some expressions are evaluated for their value, some for their side @@ -3290,89 +3296,89 @@ class RuboCop::AST::Node < ::Parser::AST::Node # expressions which are equivalent in value. # So, is evaluation of this node free of side effects? # - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:677 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:693 def pure?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:545 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:561 def range_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def rational_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:359 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:373 def receiver(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:138 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:145 def recursive_basic_literal?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:138 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:145 def recursive_literal?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def redo_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:465 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:479 def reference?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def regexp_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def regopt_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def resbody_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def rescue_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def restarg_expr_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def restarg_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def retry_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def return_type?; end # Use is discouraged, this is a potentially slow method and can lead # to even slower algorithms # @return [Node, nil] the right (aka next) sibling # - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:251 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:265 def right_sibling; end # Use is discouraged, this is a potentially slow method and can lead # to even slower algorithms # @return [Array] the right (aka next) siblings # - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:279 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:293 def right_siblings; end # @return [Boolean] # - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:213 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:227 def root?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def sclass_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def self_type?; end # Most nodes are of 'send' type, so this method is defined # separately to make this check as fast as possible. # - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:192 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:206 def send_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def shadowarg_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:473 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:487 def shorthand_asgn?; end # Returns the index of the receiver node in its siblings. (Sibling index @@ -3381,68 +3387,75 @@ class RuboCop::AST::Node < ::Parser::AST::Node # # @return [Integer, nil] the index of the receiver node in its siblings # - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:244 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:258 def sibling_index; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:417 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:431 def single_line?; end # NOTE: Some rare nodes may have no source, like `s(:args)` in `foo {}` # @return [String, nil] # - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:326 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:340 def source; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:352 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:366 def source_length; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:330 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:344 def source_range; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:505 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:519 def special_keyword?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def splat_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:364 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:378 def str_content(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def str_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:622 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:638 def struct_constructor?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def super_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def sym_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def true_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:439 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:453 def truthy_literal?; end # Determine if the node is one of several node types in a single query # Allows specific single node types, as well as "grouped" types # (e.g. `:boolean` for `:true` or `:false`) # - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:174 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:181 def type?(*types); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # Non-splatting variant of `type?`, used by the traversal hot paths to + # avoid allocating an array per visited node. + # @api private + # + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:188 + def type_in?(types); end + + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def undef_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def unless_guard_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def until_post_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def until_type?; end # Override `AST::Node#updated` so that `AST::Processor` does not try to @@ -3451,7 +3464,7 @@ class RuboCop::AST::Node < ::Parser::AST::Node # identical subtrees. Rather, the entire AST must be copied any time any # part of it is changed. # - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:233 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:247 def updated(type = T.unsafe(nil), children = T.unsafe(nil), properties = T.unsafe(nil)); end # Some expressions are evaluated for their value, some for their side @@ -3462,68 +3475,68 @@ class RuboCop::AST::Node < ::Parser::AST::Node # So, does the return value of this node matter? If we changed it to # `(...; nil)`, might that affect anything? # - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:647 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:663 def value_used?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:461 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:475 def variable?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def when_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def while_post_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def while_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def xstr_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def yield_type?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:197 def zsuper_type?; end protected - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:203 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:217 def parent=(node); end private - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:704 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:727 def begin_value_used?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:715 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:738 def case_if_value_used?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:377 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:391 def defined_module0(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:709 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:732 def for_value_used?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:751 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:774 def parent_module_name_for_block(ancestor); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:739 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:762 def parent_module_name_for_sclass(sclass_node); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:726 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:749 def parent_module_name_part(node); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:695 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:711 def visit_ancestors(types); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:721 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:744 def while_until_value_used?; end class << self private - # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:134 + # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:141 def def_recursive_literal_predicate(kind); end end end @@ -3559,10 +3572,10 @@ RuboCop::AST::Node::COMPOSITE_LITERALS = T.let(T.unsafe(nil), Set) # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:60 RuboCop::AST::Node::CONDITIONALS = T.let(T.unsafe(nil), Set) -# pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:84 +# pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:91 RuboCop::AST::Node::EMPTY_CHILDREN = T.let(T.unsafe(nil), Array) -# pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:85 +# pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:92 RuboCop::AST::Node::EMPTY_PROPERTIES = T.let(T.unsafe(nil), Hash) # @api private @@ -3577,7 +3590,7 @@ RuboCop::AST::Node::FALSEY_LITERALS = T.let(T.unsafe(nil), Set) # @api private # -# pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:89 +# pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:96 RuboCop::AST::Node::GROUP_FOR_TYPE = T.let(T.unsafe(nil), Hash) # @api private @@ -3595,10 +3608,10 @@ RuboCop::AST::Node::KEYWORDS = T.let(T.unsafe(nil), Set) # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:37 RuboCop::AST::Node::LITERALS = T.let(T.unsafe(nil), Set) -# pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:80 +# pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:87 RuboCop::AST::Node::LITERAL_RECURSIVE_METHODS = T.let(T.unsafe(nil), Set) -# pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:81 +# pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:88 RuboCop::AST::Node::LITERAL_RECURSIVE_TYPES = T.let(T.unsafe(nil), Set) # @api private @@ -3636,6 +3649,15 @@ RuboCop::AST::Node::SHORTHAND_ASSIGNMENTS = T.let(T.unsafe(nil), Set) # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:78 RuboCop::AST::Node::SPECIAL_KEYWORDS = T.let(T.unsafe(nil), Set) +# The node types which could have a source matching `SPECIAL_KEYWORDS`: +# `__FILE__` parses as `str`, `__LINE__` as `int` and `__ENCODING__` as +# `const` (or as their own node types when the builder emits them); +# `str` and `sym` also cover word/symbol array elements, string parts +# and hash labels spelling out one of these keywords. +# +# pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:84 +RuboCop::AST::Node::SPECIAL_KEYWORD_TYPES = T.let(T.unsafe(nil), Set) + # @api private # # pkg:gem/rubocop-ast#lib/rubocop/ast/node.rb:31 @@ -5154,9 +5176,6 @@ RuboCop::AST::NodePattern::Sets::SET_1_2 = T.let(T.unsafe(nil), Set) # pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 RuboCop::AST::NodePattern::Sets::SET_ADD_DEPENDENCY_ADD_RUNTIME_DEPENDENCY_ADD_DEVELOPMENT_DEPENDENCY = T.let(T.unsafe(nil), Set) -# pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 -RuboCop::AST::NodePattern::Sets::SET_ALL_ANY_CLASS_OF_ETC = T.let(T.unsafe(nil), Set) - # pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 RuboCop::AST::NodePattern::Sets::SET_ALL_CONTEXT = T.let(T.unsafe(nil), Set) @@ -5172,9 +5191,6 @@ RuboCop::AST::NodePattern::Sets::SET_ANY_NONE = T.let(T.unsafe(nil), Set) # pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 RuboCop::AST::NodePattern::Sets::SET_ARRAY_HASH = T.let(T.unsafe(nil), Set) -# pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 -RuboCop::AST::NodePattern::Sets::SET_ATTR_READER_ATTR_WRITER_ATTR_ACCESSOR = T.let(T.unsafe(nil), Set) - # pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 RuboCop::AST::NodePattern::Sets::SET_ATTR_READER_ATTR_WRITER_ATTR_ACCESSOR_ATTR = T.let(T.unsafe(nil), Set) @@ -5205,6 +5221,12 @@ RuboCop::AST::NodePattern::Sets::SET_CLASS_EVAL_INSTANCE_EVAL = T.let(T.unsafe(n # pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 RuboCop::AST::NodePattern::Sets::SET_CLASS_EVAL_MODULE_EVAL = T.let(T.unsafe(nil), Set) +# pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 +RuboCop::AST::NodePattern::Sets::SET_CLASS_EVAL_MODULE_EVAL_INSTANCE_EVAL = T.let(T.unsafe(nil), Set) + +# pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 +RuboCop::AST::NodePattern::Sets::SET_CLASS_EXEC_MODULE_EXEC_INSTANCE_EXEC = T.let(T.unsafe(nil), Set) + # pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 RuboCop::AST::NodePattern::Sets::SET_CLASS_MODULE = T.let(T.unsafe(nil), Set) @@ -5232,6 +5254,9 @@ RuboCop::AST::NodePattern::Sets::SET_DEF_DELEGATORS_DEF_INSTANCE_DELEGATORS = T. # pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 RuboCop::AST::NodePattern::Sets::SET_DEF_DELEGATOR_DEF_INSTANCE_DELEGATOR = T.let(T.unsafe(nil), Set) +# pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 +RuboCop::AST::NodePattern::Sets::SET_DESCRIBE_XDESCRIBE_FDESCRIBE_ETC = T.let(T.unsafe(nil), Set) + # pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 RuboCop::AST::NodePattern::Sets::SET_DOUBLE_SPY = T.let(T.unsafe(nil), Set) @@ -5262,9 +5287,6 @@ RuboCop::AST::NodePattern::Sets::SET_EXPECT_ALLOW = T.let(T.unsafe(nil), Set) # pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 RuboCop::AST::NodePattern::Sets::SET_EXPECT_EXPECT_ANY_INSTANCE_OF = T.let(T.unsafe(nil), Set) -# pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 -RuboCop::AST::NodePattern::Sets::SET_EXTEND_INCLUDE = T.let(T.unsafe(nil), Set) - # pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 RuboCop::AST::NodePattern::Sets::SET_FILETEST_FILE_DIR_SHELL = T.let(T.unsafe(nil), Set) @@ -5301,30 +5323,12 @@ RuboCop::AST::NodePattern::Sets::SET_GROUP_BY_TO_H_TALLY_ETC = T.let(T.unsafe(ni # pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 RuboCop::AST::NodePattern::Sets::SET_GSUB_GSUB = T.let(T.unsafe(nil), Set) -# pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 -RuboCop::AST::NodePattern::Sets::SET_IF_UNLESS = T.let(T.unsafe(nil), Set) - # pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 RuboCop::AST::NodePattern::Sets::SET_INCLUDE_EXTEND_PREPEND = T.let(T.unsafe(nil), Set) -# pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 -RuboCop::AST::NodePattern::Sets::SET_INCLUDE_MEMBER = T.let(T.unsafe(nil), Set) - -# pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 -RuboCop::AST::NodePattern::Sets::SET_INCLUDE_PREPEND = T.let(T.unsafe(nil), Set) - -# pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 -RuboCop::AST::NodePattern::Sets::SET_INSTANCE_EVAL_CLASS_EVAL_MODULE_EVAL = T.let(T.unsafe(nil), Set) - -# pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 -RuboCop::AST::NodePattern::Sets::SET_INSTANCE_EXEC_CLASS_EXEC_MODULE_EXEC = T.let(T.unsafe(nil), Set) - # pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 RuboCop::AST::NodePattern::Sets::SET_INTEGER_BIGDECIMAL_COMPLEX_RATIONAL = T.let(T.unsafe(nil), Set) -# pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 -RuboCop::AST::NodePattern::Sets::SET_IS_A_KIND_OF = T.let(T.unsafe(nil), Set) - # pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 RuboCop::AST::NodePattern::Sets::SET_IS_EXPECTED_SHOULD_SHOULD_NOT = T.let(T.unsafe(nil), Set) @@ -5352,6 +5356,9 @@ RuboCop::AST::NodePattern::Sets::SET_MAP_FILTER_MAP = T.let(T.unsafe(nil), Set) # pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 RuboCop::AST::NodePattern::Sets::SET_MAX_BY_MIN_BY_MINMAX_BY = T.let(T.unsafe(nil), Set) +# pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 +RuboCop::AST::NodePattern::Sets::SET_MEMBER_INCLUDE = T.let(T.unsafe(nil), Set) + # pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 RuboCop::AST::NodePattern::Sets::SET_MODULE_FUNCTION_RUBY2_KEYWORDS = T.let(T.unsafe(nil), Set) @@ -5385,9 +5392,6 @@ RuboCop::AST::NodePattern::Sets::SET_PRIVATE_PROTECTED_PUBLIC = T.let(T.unsafe(n # pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 RuboCop::AST::NodePattern::Sets::SET_PROC_LAMBDA = T.let(T.unsafe(nil), Set) -# pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 -RuboCop::AST::NodePattern::Sets::SET_PROP_CONST = T.let(T.unsafe(nil), Set) - # pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 RuboCop::AST::NodePattern::Sets::SET_PUBLIC_CONSTANT_PRIVATE_CONSTANT = T.let(T.unsafe(nil), Set) @@ -5427,9 +5431,6 @@ RuboCop::AST::NodePattern::Sets::SET_REQUIRE_REQUIRE_RELATIVE = T.let(T.unsafe(n # pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 RuboCop::AST::NodePattern::Sets::SET_REVERSE_REVERSE_EACH = T.let(T.unsafe(nil), Set) -# pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 -RuboCop::AST::NodePattern::Sets::SET_SELECT_FILTER = T.let(T.unsafe(nil), Set) - # pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 RuboCop::AST::NodePattern::Sets::SET_SELECT_FILTER_FIND_ALL = T.let(T.unsafe(nil), Set) @@ -5451,9 +5452,6 @@ RuboCop::AST::NodePattern::Sets::SET_SET_SORTEDSET = T.let(T.unsafe(nil), Set) # pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 RuboCop::AST::NodePattern::Sets::SET_SHOULD_SHOULD_NOT = T.let(T.unsafe(nil), Set) -# pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 -RuboCop::AST::NodePattern::Sets::SET_SIG_HELPERS = T.let(T.unsafe(nil), Set) - # pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 RuboCop::AST::NodePattern::Sets::SET_SKIP_PENDING = T.let(T.unsafe(nil), Set) @@ -5475,21 +5473,12 @@ RuboCop::AST::NodePattern::Sets::SET_STDOUT_STDERR = T.let(T.unsafe(nil), Set) # pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 RuboCop::AST::NodePattern::Sets::SET_STRUCT_CLASS = T.let(T.unsafe(nil), Set) -# pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 -RuboCop::AST::NodePattern::Sets::SET_STRUCT_IMMUTABLESTRUCT = T.let(T.unsafe(nil), Set) - -# pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 -RuboCop::AST::NodePattern::Sets::SET_STRUCT_IMMUTABLESTRUCT_INEXACTSTRUCT = T.let(T.unsafe(nil), Set) - # pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 RuboCop::AST::NodePattern::Sets::SET_SUCC_PRED_NEXT = T.let(T.unsafe(nil), Set) # pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 RuboCop::AST::NodePattern::Sets::SET_TASK_NAMESPACE = T.let(T.unsafe(nil), Set) -# pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 -RuboCop::AST::NodePattern::Sets::SET_TESTS_ALWAYS = T.let(T.unsafe(nil), Set) - # pkg:gem/rubocop-ast#lib/rubocop/ast/node_pattern/sets.rb:10 RuboCop::AST::NodePattern::Sets::SET_TO_ENUM_ENUM_FOR = T.let(T.unsafe(nil), Set) @@ -5584,7 +5573,7 @@ RuboCop::AST::NodePattern::VAR = T.let(T.unsafe(nil), String) # # pkg:gem/rubocop-ast#lib/rubocop/ast/node/mixin/numeric_node.rb:6 module RuboCop::AST::NumericNode - # Checks whether this is literal has a sign. + # Checks whether this literal has a sign. # # @example # @@ -5694,7 +5683,7 @@ class RuboCop::AST::PairNode < ::RuboCop::AST::Node def colon?; end # Returns the delimiter of the `pair` as a string. Returns `=>` for a - # colon delimited `pair` and `:` for a hash rocket delimited `pair`. + # hash rocket delimited `pair` and `:` for a colon delimited `pair`. # # @param [Boolean] with_spacing whether to include spacing # @return [String] the delimiter of the `pair` @@ -5907,6 +5896,26 @@ RuboCop::AST::PredicateOperatorNode::SEMANTIC_OPERATORS = T.let(T.unsafe(nil), A # pkg:gem/rubocop-ast#lib/rubocop/ast/node/mixin/predicate_operator_node.rb:14 RuboCop::AST::PredicateOperatorNode::SEMANTIC_OR = T.let(T.unsafe(nil), String) +# Extends the prism translation parsers so that the conversion of tokens +# into the `parser` gem's format is deferred until the tokens are first +# accessed. Building the tokens is a significant part of the translation +# cost, and not every caller needs them. +# @api private +# +# pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:33 +module RuboCop::AST::PrismLazyTokens + # Same contract as `Parser::Base#tokenize`, except the tokens are + # returned as a callable that performs the conversion when invoked. + # + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:36 + def tokenize_deferred(source_buffer); end + + private + + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:54 + def deferred_tokens(source_buffer, tokens, offset_cache); end +end + # A `Prism` interface's class that provides a fixed `Prism::ParseLexResult` instead of parsing. # # This class implements the `parse_lex` method to return a preparsed `Prism::ParseLexResult` @@ -5940,204 +5949,235 @@ end # and other information such as disabled lines for cops. # It also provides a convenient way to access source lines. # -# pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:31 +# pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:69 class RuboCop::AST::ProcessedSource - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:49 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:94 def initialize(source, ruby_version, path = T.unsafe(nil), parser_engine: T.unsafe(nil), prism_result: T.unsafe(nil)); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:91 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:135 def [](*args); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:41 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:79 def ast; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:69 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:114 def ast_with_comments; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:130 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:174 def blank?; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:41 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:79 def buffer; end # Raw source checksum for tracking infinite loops. # - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:102 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:146 def checksum; end # @return [Comment, nil] the comment at that line, if any. # - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:135 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:179 def comment_at_line(line); end # @deprecated use contains_comment? # - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:161 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:205 def commented?(source_range); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:41 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:79 def comments; end # @deprecated Use `each_comment_in_lines` # Should have been called `comments_before_or_at_line`. Doubtful it has of any valid use. # - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:165 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:209 def comments_before_line(line); end # @return [Boolean] if any of the lines in the given `source_range` has a comment. # Consider using `each_comment_in_lines` instead # - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:157 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:201 def contains_comment?(source_range); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:179 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:225 def current_line(token); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:41 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:79 def diagnostics; end # @deprecated Use `comments.each` # - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:107 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:151 def each_comment(&block); end # Enumerates on the comments contained with the given `line_range` # - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:145 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:189 def each_comment_in_lines(line_range); end # @deprecated Use `tokens.each` # - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:117 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:161 def each_token(&block); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:126 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:170 def file_path; end # @deprecated Use `comment_at_line`, `each_comment_in_lines`, or `comments.find` # - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:112 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:156 def find_comment(&block); end # @deprecated Use `tokens.find` # - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:122 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:166 def find_token(&block); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:200 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:259 def first_token_of(range_or_node); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:183 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:229 def following_line(token); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:204 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:263 def last_token_of(range_or_node); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:187 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:233 def line_indentation(line_number); end # @return [Boolean] if the given line number has a comment. # - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:140 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:184 def line_with_comment?(line); end # Returns the source lines, line break characters removed, excluding a # possible __END__ and everything that comes after. # - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:77 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:122 def lines; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:41 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:79 def parser_engine; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:41 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:79 def parser_error; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:41 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:79 def path; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:175 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:219 def preceding_line(token); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:41 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:79 def raw_source; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:41 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:79 def ruby_version; end # The tokens list is always sorted by token position, except for cases when heredoc # is passed as a method argument. In this case tokens are interleaved by # heredoc contents' tokens. # - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:211 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:270 def sorted_tokens; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:169 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:213 def start_with?(string); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:41 + # The tokens of the source. With the prism engine the tokens are built + # lazily on first access, since their conversion is costly and not + # every caller needs them. + # + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:243 def tokens; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:194 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:253 def tokens_within(range_or_node); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:95 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:139 def valid_syntax?; end private - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:328 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:437 def builder_class(parser_engine); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:218 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:301 def comment_index; end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:338 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:447 def create_parser(ruby_version, parser_engine, prism_result); end - # The Parser gem does not support Ruby 3.5 or later. - # It is also not fully compatible with Ruby 3.4 but for - # now respects using parser for backwards compatibility. + # Prism is used for all Ruby versions it can parse (3.3 and later); + # the Parser gem does not support Ruby 3.5 or later and is not fully + # compatible with Ruby 3.4. # - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:384 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:496 def default_parser_engine(ruby_version); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:392 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:504 def first_token_index(range_or_node); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:397 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:509 def last_token_index(range_or_node); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:367 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:479 def normalize_parser_engine(parser_engine, ruby_version); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:224 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:307 def parse(source, ruby_version, parser_engine, prism_result); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:260 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:351 + def parse_and_lex(parser); end + + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:369 def parser_class(ruby_version, parser_engine); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:402 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:359 + def parser_tokens; end + + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:514 def source_range(range_or_node); end - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:243 + # The tokens may be an already converted array, or a deferred conversion + # to be performed when the tokens are first accessed. + # + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:328 + def store_tokens(tokens); end + + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:336 def tokenize(parser); end + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:284 + def tokens_sorted?; end + + # `__END__` only starts a data section when it isn't nested inside a + # string or heredoc, which is what the last token's line disambiguates. + # + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:290 + def trim_lines_after_data_marker(all_lines); end + class << self - # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:44 + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:82 def from_file(path, ruby_version, parser_engine: T.unsafe(nil)); end + + # Subclasses of the prism translation parsers with lazily built tokens. + # @api private + # + # pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:89 + def lazy_tokens_parser_class(base); end end end -# pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:35 +# pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:73 RuboCop::AST::ProcessedSource::INVALID_LEVELS = T.let(T.unsafe(nil), Array) -# pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:38 +# pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:76 RuboCop::AST::ProcessedSource::PARSER_ENGINES = T.let(T.unsafe(nil), Array) # @api private # -# pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:33 +# pkg:gem/rubocop-ast#lib/rubocop/ast/processed_source.rb:71 RuboCop::AST::ProcessedSource::STRING_SOURCE_NAME = T.let(T.unsafe(nil), String) # A node extension for `irange` and `erange` nodes. This will be used in @@ -6474,7 +6514,7 @@ class RuboCop::AST::SuperNode < ::RuboCop::AST::Node def node_parts; end end -# A node extension for `sym` nodes. This will be used in place of a +# A node extension for `sym` nodes. This will be used in place of a # plain node when the builder constructs the AST, making its methods # available to all `sym` nodes within RuboCop. # @@ -7136,9 +7176,9 @@ class RuboCop::AST::WhileNode < ::RuboCop::AST::Node include ::RuboCop::AST::ConditionalNode include ::RuboCop::AST::ModifierNode - # Checks whether the `until` node has a `do` keyword. + # Checks whether the `while` node has a `do` keyword. # - # @return [Boolean] whether the `until` node has a `do` keyword + # @return [Boolean] whether the `while` node has a `do` keyword # # pkg:gem/rubocop-ast#lib/rubocop/ast/node/while_node.rb:30 def do?; end diff --git a/sorbet/rbi/gems/rubocop@1.88.1.rbi b/sorbet/rbi/gems/rubocop@1.89.0.rbi similarity index 94% rename from sorbet/rbi/gems/rubocop@1.88.1.rbi rename to sorbet/rbi/gems/rubocop@1.89.0.rbi index eedb8ad..90e21b2 100644 --- a/sorbet/rbi/gems/rubocop@1.88.1.rbi +++ b/sorbet/rbi/gems/rubocop@1.89.0.rbi @@ -909,6 +909,15 @@ class RuboCop::CommentConfig # pkg:gem/rubocop#lib/rubocop/comment_config.rb:56 def extra_enabled_comments; end + # The names of the cops that are opted in by an `enable` comment directive, + # used to mobilize cops disabled in the config on demand. + # + # @api private + # @return [Set] + # + # pkg:gem/rubocop#lib/rubocop/comment_config.rb:73 + def opt_in_cops; end + # pkg:gem/rubocop#lib/rubocop/comment_config.rb:30 def processed_source; end @@ -917,64 +926,69 @@ class RuboCop::CommentConfig private - # pkg:gem/rubocop#lib/rubocop/comment_config.rb:99 + # pkg:gem/rubocop#lib/rubocop/comment_config.rb:104 def analyze; end - # pkg:gem/rubocop#lib/rubocop/comment_config.rb:174 + # pkg:gem/rubocop#lib/rubocop/comment_config.rb:181 def analyze_cop(analysis, directive); end - # pkg:gem/rubocop#lib/rubocop/comment_config.rb:192 + # pkg:gem/rubocop#lib/rubocop/comment_config.rb:199 def analyze_disabled(analysis, directive); end - # pkg:gem/rubocop#lib/rubocop/comment_config.rb:199 + # pkg:gem/rubocop#lib/rubocop/comment_config.rb:206 def analyze_rest(analysis, directive); end - # pkg:gem/rubocop#lib/rubocop/comment_config.rb:185 + # pkg:gem/rubocop#lib/rubocop/comment_config.rb:192 def analyze_single_line(analysis, directive); end - # pkg:gem/rubocop#lib/rubocop/comment_config.rb:145 + # pkg:gem/rubocop#lib/rubocop/comment_config.rb:152 def apply_cop_op(analyses, operation, cop, line); end - # pkg:gem/rubocop#lib/rubocop/comment_config.rb:139 + # pkg:gem/rubocop#lib/rubocop/comment_config.rb:146 def apply_push(analyses, resolved_cops, line); end - # pkg:gem/rubocop#lib/rubocop/comment_config.rb:206 + # pkg:gem/rubocop#lib/rubocop/comment_config.rb:213 def cop_line_ranges(analysis); end - # pkg:gem/rubocop#lib/rubocop/comment_config.rb:212 + # pkg:gem/rubocop#lib/rubocop/comment_config.rb:219 def each_directive; end - # pkg:gem/rubocop#lib/rubocop/comment_config.rb:133 + # pkg:gem/rubocop#lib/rubocop/comment_config.rb:140 def expand_cop_name(name); end - # pkg:gem/rubocop#lib/rubocop/comment_config.rb:70 + # pkg:gem/rubocop#lib/rubocop/comment_config.rb:88 def extra_enabled_comments_with_names(extras:, names:); end - # pkg:gem/rubocop#lib/rubocop/comment_config.rb:232 + # pkg:gem/rubocop#lib/rubocop/comment_config.rb:248 def handle_enable_all(directive, names, extras); end # Collect cops that have been disabled or enabled by name in a directive comment # so that `Lint/RedundantCopEnableDirective` can register offenses correctly. # - # pkg:gem/rubocop#lib/rubocop/comment_config.rb:246 + # pkg:gem/rubocop#lib/rubocop/comment_config.rb:262 def handle_switch(directive, names, extras); end - # pkg:gem/rubocop#lib/rubocop/comment_config.rb:165 + # pkg:gem/rubocop#lib/rubocop/comment_config.rb:172 def inject_disabled_cops_directives(analyses); end - # pkg:gem/rubocop#lib/rubocop/comment_config.rb:225 + # pkg:gem/rubocop#lib/rubocop/comment_config.rb:241 def non_comment_token_line_numbers; end - # pkg:gem/rubocop#lib/rubocop/comment_config.rb:85 - def opt_in_cops; end - - # pkg:gem/rubocop#lib/rubocop/comment_config.rb:155 + # pkg:gem/rubocop#lib/rubocop/comment_config.rb:162 def pop_state(analyses, line); end - # pkg:gem/rubocop#lib/rubocop/comment_config.rb:221 + # `Style/DisableCopsWithinSourceCodeDirective` cannot be disabled via + # directive comments when it is explicitly enabled with `Enabled: true`. + # This prevents users from bypassing the cop by writing a disable + # directive that targets this cop itself. + # + # pkg:gem/rubocop#lib/rubocop/comment_config.rb:236 + def prevent_directive_disabling?(cop_name); end + + # pkg:gem/rubocop#lib/rubocop/comment_config.rb:228 def qualified_cop_name(cop_name); end - # pkg:gem/rubocop#lib/rubocop/comment_config.rb:127 + # pkg:gem/rubocop#lib/rubocop/comment_config.rb:134 def resolve_push_cops(directive); end end @@ -1106,13 +1120,13 @@ class RuboCop::Config # pkg:gem/rubocop#lib/rubocop/config.rb:97 def []=(*_arg0, **_arg1, &_arg2); end - # pkg:gem/rubocop#lib/rubocop/config.rb:212 + # pkg:gem/rubocop#lib/rubocop/config.rb:226 def active_support_extensions_enabled?; end # pkg:gem/rubocop#lib/rubocop/config.rb:127 def add_excludes_from_higher_level(highest_config); end - # pkg:gem/rubocop#lib/rubocop/config.rb:240 + # pkg:gem/rubocop#lib/rubocop/config.rb:254 def allowed_camel_case_file?(file); end # Paths specified in configuration files starting with .rubocop are @@ -1121,12 +1135,12 @@ class RuboCop::Config # config/default.yml, for example, are not relative to RuboCop's config # directory since that wouldn't work. # - # pkg:gem/rubocop#lib/rubocop/config.rb:281 + # pkg:gem/rubocop#lib/rubocop/config.rb:295 def base_dir_for_path_parameters; end # @return [String, nil] # - # pkg:gem/rubocop#lib/rubocop/config.rb:311 + # pkg:gem/rubocop#lib/rubocop/config.rb:325 def bundler_lock_file_path; end # pkg:gem/rubocop#lib/rubocop/config.rb:85 @@ -1159,20 +1173,28 @@ class RuboCop::Config # pkg:gem/rubocop#lib/rubocop/config.rb:97 def each_key(*_arg0, **_arg1, &_arg2); end + # Whether the given pending cop should be enabled, based on the `NewCops` setting of + # its department (if any) or of `AllCops`. A department may set `NewCops` to `enable`, + # `disable`, `pending`, or a version, in which case pending cops added in that version + # or earlier are enabled. + # + # pkg:gem/rubocop#lib/rubocop/config.rb:216 + def enabled_new_cop?(qualified_cop_name); end + # pkg:gem/rubocop#lib/rubocop/config.rb:208 def enabled_new_cops?; end # pkg:gem/rubocop#lib/rubocop/config.rb:97 def fetch(*_arg0, **_arg1, &_arg2); end - # pkg:gem/rubocop#lib/rubocop/config.rb:259 + # pkg:gem/rubocop#lib/rubocop/config.rb:273 def file_to_exclude?(file); end # Returns true if the file matches any include pattern. If a block is given, the block is called # to determine if the pattern is relevant (true returned by the block) or should be skipped # (false returned). # - # pkg:gem/rubocop#lib/rubocop/config.rb:223 + # pkg:gem/rubocop#lib/rubocop/config.rb:237 def file_to_include?(file); end # pkg:gem/rubocop#lib/rubocop/config.rb:196 @@ -1208,10 +1230,10 @@ class RuboCop::Config # Returns target's locked gem versions (i.e. from Gemfile.lock or gems.locked) # @returns [Hash{String => Gem::Version}] The locked gem versions, keyed by the gems' names. # - # pkg:gem/rubocop#lib/rubocop/config.rb:336 + # pkg:gem/rubocop#lib/rubocop/config.rb:351 def gem_versions_in_target; end - # pkg:gem/rubocop#lib/rubocop/config.rb:340 + # pkg:gem/rubocop#lib/rubocop/config.rb:355 def inspect; end # True if this is a config file that is shipped with RuboCop @@ -1243,25 +1265,25 @@ class RuboCop::Config # pkg:gem/rubocop#lib/rubocop/config.rb:97 def merge(*_arg0, **_arg1, &_arg2); end - # pkg:gem/rubocop#lib/rubocop/config.rb:291 + # pkg:gem/rubocop#lib/rubocop/config.rb:305 def parser_engine; end - # pkg:gem/rubocop#lib/rubocop/config.rb:272 + # pkg:gem/rubocop#lib/rubocop/config.rb:286 def path_relative_to_config(path); end - # pkg:gem/rubocop#lib/rubocop/config.rb:268 + # pkg:gem/rubocop#lib/rubocop/config.rb:282 def patterns_to_exclude; end - # pkg:gem/rubocop#lib/rubocop/config.rb:264 + # pkg:gem/rubocop#lib/rubocop/config.rb:278 def patterns_to_include; end - # pkg:gem/rubocop#lib/rubocop/config.rb:322 + # pkg:gem/rubocop#lib/rubocop/config.rb:336 def pending_cops; end # Returns true if there's a chance that an Include pattern matches hidden # files, false if that's definitely not possible. # - # pkg:gem/rubocop#lib/rubocop/config.rb:251 + # pkg:gem/rubocop#lib/rubocop/config.rb:265 def possibly_include_hidden?; end # pkg:gem/rubocop#lib/rubocop/config.rb:97 @@ -1270,13 +1292,13 @@ class RuboCop::Config # pkg:gem/rubocop#lib/rubocop/config.rb:105 def signature; end - # pkg:gem/rubocop#lib/rubocop/config.rb:306 + # pkg:gem/rubocop#lib/rubocop/config.rb:320 def smart_loaded_path; end - # pkg:gem/rubocop#lib/rubocop/config.rb:216 + # pkg:gem/rubocop#lib/rubocop/config.rb:230 def string_literals_frozen_by_default?; end - # pkg:gem/rubocop#lib/rubocop/config.rb:295 + # pkg:gem/rubocop#lib/rubocop/config.rb:309 def target_rails_version; end # pkg:gem/rubocop#lib/rubocop/config.rb:99 @@ -1302,34 +1324,56 @@ class RuboCop::Config private - # pkg:gem/rubocop#lib/rubocop/config.rb:396 + # Returns a `Gem::Version` for values like `'1.19'` or `1.19`, and `nil` + # for non-version values like `'N/A'` or `'<>'`. + # + # pkg:gem/rubocop#lib/rubocop/config.rb:451 + def comparable_version(value); end + + # pkg:gem/rubocop#lib/rubocop/config.rb:411 def department_of(qualified_cop_name); end - # pkg:gem/rubocop#lib/rubocop/config.rb:384 + # pkg:gem/rubocop#lib/rubocop/config.rb:399 def enable_cop?(qualified_cop_name, cop_options); end # @param [Gem::Version] gem_version an object like `Gem::Version.new("7.1.2.3")` # @return [Float] The major and minor version, like `7.1` # - # pkg:gem/rubocop#lib/rubocop/config.rb:371 + # pkg:gem/rubocop#lib/rubocop/config.rb:386 def gem_version_to_major_minor_float(gem_version); end - # pkg:gem/rubocop#lib/rubocop/config.rb:346 + # pkg:gem/rubocop#lib/rubocop/config.rb:361 def match_relative_or_absolute_path?(pattern, relative_file_path, absolute_file_path); end + # Whether the cop's pending status is resolved by a `NewCops` setting, + # so that it should not appear in the pending cops warning. + # Unlike `enabled_new_cop?`, `disable` counts as covered. + # + # pkg:gem/rubocop#lib/rubocop/config.rb:430 + def new_cops_covered?(qualified_cop_name); end + + # The effective `NewCops` setting for the given cop: the department-level + # setting if present, otherwise the `AllCops` setting. + # + # pkg:gem/rubocop#lib/rubocop/config.rb:420 + def new_cops_setting_for(qualified_cop_name); end + + # pkg:gem/rubocop#lib/rubocop/config.rb:440 + def new_cops_version_covers?(new_cops_version, qualified_cop_name); end + # @returns [Hash{String => Gem::Version}] The locked gem versions, keyed by the gems' names. # - # pkg:gem/rubocop#lib/rubocop/config.rb:377 + # pkg:gem/rubocop#lib/rubocop/config.rb:392 def read_gem_versions_from_target_lockfile; end # @return [Float, nil] The Rails version as a `major.minor` Float. # - # pkg:gem/rubocop#lib/rubocop/config.rb:358 + # pkg:gem/rubocop#lib/rubocop/config.rb:373 def read_rails_version_from_bundler_lock_file; end # @return [Float, nil] The Rails version as a `major.minor` Float. # - # pkg:gem/rubocop#lib/rubocop/config.rb:353 + # pkg:gem/rubocop#lib/rubocop/config.rb:368 def target_rails_version_from_bundler_lock_file; end class << self @@ -2146,19 +2190,19 @@ end class RuboCop::ConfigValidator extend ::RuboCop::SimpleForwardable - # pkg:gem/rubocop#lib/rubocop/config_validator.rb:28 + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:30 def initialize(config); end - # pkg:gem/rubocop#lib/rubocop/config_validator.rb:26 + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:28 def for_all_cops(*_arg0, **_arg1, &_arg2); end - # pkg:gem/rubocop#lib/rubocop/config_validator.rb:26 + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:28 def smart_loaded_path(*_arg0, **_arg1, &_arg2); end - # pkg:gem/rubocop#lib/rubocop/config_validator.rb:65 + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:67 def target_ruby_version; end - # pkg:gem/rubocop#lib/rubocop/config_validator.rb:34 + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:36 def validate; end # Validations that should only be run after all config resolving has @@ -2167,62 +2211,74 @@ class RuboCop::ConfigValidator # chain has been loaded so that only the final value is validated, and # any obsolete but overridden values are ignored. # - # pkg:gem/rubocop#lib/rubocop/config_validator.rb:61 + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:63 def validate_after_resolution; end private - # pkg:gem/rubocop#lib/rubocop/config_validator.rb:100 + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:102 def alert_about_unrecognized_cops(invalid_cop_names); end - # pkg:gem/rubocop#lib/rubocop/config_validator.rb:263 + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:300 def check_cop_config_value(hash, parent = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/config_validator.rb:73 + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:75 def check_obsoletions; end - # pkg:gem/rubocop#lib/rubocop/config_validator.rb:80 + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:82 def check_target_ruby; end - # pkg:gem/rubocop#lib/rubocop/config_validator.rb:205 + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:239 def each_invalid_parameter(cop_name); end - # pkg:gem/rubocop#lib/rubocop/config_validator.rb:116 + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:118 def list_unknown_cops(invalid_cop_names); end + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:196 + def new_cops_value_for_department(name, section); end + + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:203 + def new_cops_version_value?(value); end + # FIXME: Handling colors in exception messages like this is ugly. # - # pkg:gem/rubocop#lib/rubocop/config_validator.rb:284 + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:321 def param_error_message(parent, key, value, supposed_values); end - # pkg:gem/rubocop#lib/rubocop/config_validator.rb:252 + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:289 def reject_conflicting_safe_settings; end - # pkg:gem/rubocop#lib/rubocop/config_validator.rb:243 + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:280 def reject_mutually_exclusive_defaults; end - # pkg:gem/rubocop#lib/rubocop/config_validator.rb:139 + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:141 def suggestion(name); end - # pkg:gem/rubocop#lib/rubocop/config_validator.rb:71 + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:73 def target_ruby; end - # pkg:gem/rubocop#lib/rubocop/config_validator.rb:217 + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:173 + def validate_all_cops_new_cops_parameter; end + + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:184 + def validate_department_new_cops_parameters; end + + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:254 def validate_enforced_styles(valid_cop_names); end - # pkg:gem/rubocop#lib/rubocop/config_validator.rb:166 + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:168 def validate_new_cops_parameter; end - # pkg:gem/rubocop#lib/rubocop/config_validator.rb:191 + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:225 def validate_parameter_names(valid_cop_names); end - # pkg:gem/rubocop#lib/rubocop/config_validator.rb:177 + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:211 def validate_parameter_shape(valid_cop_names); end - # pkg:gem/rubocop#lib/rubocop/config_validator.rb:237 + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:274 def validate_support_and_has_list(name, formats, valid); end - # pkg:gem/rubocop#lib/rubocop/config_validator.rb:155 + # pkg:gem/rubocop#lib/rubocop/config_validator.rb:157 def validate_syntax_cop; end end @@ -2231,15 +2287,15 @@ end # pkg:gem/rubocop#lib/rubocop/config_validator.rb:11 RuboCop::ConfigValidator::COMMON_PARAMS = T.let(T.unsafe(nil), Array) -# pkg:gem/rubocop#lib/rubocop/config_validator.rb:23 +# pkg:gem/rubocop#lib/rubocop/config_validator.rb:25 RuboCop::ConfigValidator::CONFIG_CHECK_AUTOCORRECTS = T.let(T.unsafe(nil), Array) -# pkg:gem/rubocop#lib/rubocop/config_validator.rb:22 +# pkg:gem/rubocop#lib/rubocop/config_validator.rb:24 RuboCop::ConfigValidator::CONFIG_CHECK_DEPARTMENTS = T.let(T.unsafe(nil), Array) # @api private # -# pkg:gem/rubocop#lib/rubocop/config_validator.rb:21 +# pkg:gem/rubocop#lib/rubocop/config_validator.rb:23 RuboCop::ConfigValidator::CONFIG_CHECK_KEYS = T.let(T.unsafe(nil), Set) # @api private @@ -2252,6 +2308,11 @@ RuboCop::ConfigValidator::INTERNAL_PARAMS = T.let(T.unsafe(nil), Array) # pkg:gem/rubocop#lib/rubocop/config_validator.rb:18 RuboCop::ConfigValidator::NEW_COPS_VALUES = T.let(T.unsafe(nil), Array) +# @api private +# +# pkg:gem/rubocop#lib/rubocop/config_validator.rb:20 +RuboCop::ConfigValidator::NEW_COPS_VERSION_PATTERN = T.let(T.unsafe(nil), Regexp) + # pkg:gem/rubocop#lib/rubocop/cop/util.rb:4 module RuboCop::Cop; end @@ -2316,54 +2377,82 @@ class RuboCop::Cop::AlignmentCorrector extend ::RuboCop::Cop::Alignment class << self - # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:32 + # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:40 def align_end(corrector, processed_source, node, align_to); end - # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:15 - def correct(corrector, processed_source, node, column_delta); end + # `tab_indentation` may only be set by callers whose `column_delta` represents + # whole indentation levels (e.g. `Layout/IndentationWidth`). + # Alignment to an arbitrary column cannot be expressed with tabs, so those callers + # leave tab correction disabled to avoid producing a never-converging correction. + # + # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:19 + def correct(corrector, processed_source, node, column_delta, tab_indentation: T.unsafe(nil)); end # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:13 def processed_source; end private - # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:118 + # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:168 def alignment_column(align_to); end - # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:47 + # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:55 def autocorrect_line(corrector, line_begin_pos, expr, column_delta, taboo_ranges); end - # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:86 + # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:136 def block_comment_within?(expr); end - # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:92 + # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:142 def calculate_range(expr, line_begin_pos, column_delta); end + # The number of columns a single tab spans. This must match the width + # `Layout/IndentationWidth` uses to compute `column_delta`, otherwise + # the division below would not land on a tab boundary. `Layout/IndentationStyle` + # has its own `IndentationWidth`, but that only governs how that cop replaces tabs + # with spaces, so it must not be consulted here. + # + # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:107 + def configured_indentation_width; end + + # Tab indentation is corrected by rewriting each line's leading whitespace to + # the target number of tabs. Working in whole tabs rather than applying a column delta + # keeps the result idempotent, which avoids the infinite loops that delta-based correction + # caused for tabs. + # + # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:73 + def correct_tab_indentation(corrector, expr, column_delta, taboo_ranges); end + + # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:82 + def correct_tab_line(corrector, line_range, column_delta, taboo_ranges); end + # Some special kinds of string literals are not composed of literal # characters between two delimiters: # - The source map of `?a` responds to :begin and :end but its end is # nil. # - The source map of `__FILE__` responds to neither :begin nor :end. # - # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:82 + # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:132 def delimited_string_literal?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:104 + # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:154 def each_line(expr); end - # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:128 + # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:178 def indentation_string(column); end - # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:117 def inside_string_range(node); end - # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:61 + # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:111 def inside_string_ranges(node); end - # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:136 + # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:93 + def target_tab_indentation(leading, column_delta); end + + # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:186 def using_tabs?; end - # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:112 + # pkg:gem/rubocop#lib/rubocop/cop/correctors/alignment_corrector.rb:162 def whitespace_range(node); end end end @@ -2425,13 +2514,16 @@ module RuboCop::Cop::AllowedPattern # pkg:gem/rubocop#lib/rubocop/cop/mixin/allowed_pattern.rb:10 def allowed_line?(line); end + # pkg:gem/rubocop#lib/rubocop/cop/mixin/allowed_pattern.rb:52 + def allowed_pattern_regexps; end + # pkg:gem/rubocop#lib/rubocop/cop/mixin/allowed_pattern.rb:42 def allowed_patterns; end - # pkg:gem/rubocop#lib/rubocop/cop/mixin/allowed_pattern.rb:58 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/allowed_pattern.rb:62 def cop_config_deprecated_methods_values; end - # pkg:gem/rubocop#lib/rubocop/cop/mixin/allowed_pattern.rb:52 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/allowed_pattern.rb:56 def cop_config_patterns_values; end # @deprecated Use allowed_line? instead @@ -2690,13 +2782,19 @@ class RuboCop::Cop::Badge # pkg:gem/rubocop#lib/rubocop/cop/badge.rb:51 def match?(other); end - # pkg:gem/rubocop#lib/rubocop/cop/badge.rb:59 + # Returns true if the badge's qualified name or the badge's department + # matches any of the given names. + # + # pkg:gem/rubocop#lib/rubocop/cop/badge.rb:57 + def match_name?(given_names); end + + # pkg:gem/rubocop#lib/rubocop/cop/badge.rb:67 def qualified?; end - # pkg:gem/rubocop#lib/rubocop/cop/badge.rb:55 + # pkg:gem/rubocop#lib/rubocop/cop/badge.rb:63 def to_s; end - # pkg:gem/rubocop#lib/rubocop/cop/badge.rb:63 + # pkg:gem/rubocop#lib/rubocop/cop/badge.rb:71 def with_department(department); end class << self @@ -2773,13 +2871,13 @@ class RuboCop::Cop::Base # @api private # - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:360 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:359 def always_autocorrect?; end # Called before any investigation # @api private # - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:346 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:345 def begin_investigation(processed_source, offset: T.unsafe(nil), original: T.unsafe(nil)); end # @api private @@ -2798,7 +2896,7 @@ class RuboCop::Cop::Base # @api private # - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:366 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:365 def contextual_autocorrect?; end # Configuration Helpers @@ -2831,7 +2929,7 @@ class RuboCop::Cop::Base # pkg:gem/rubocop#lib/rubocop/cop/base.rb:235 def external_dependency_checksum; end - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:370 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:369 def inspect; end # Gets called if no message is specified when calling `add_offense` or @@ -2910,87 +3008,87 @@ class RuboCop::Cop::Base private - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:491 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:492 def annotate(message); end - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:382 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:387 def apply_correction(corrector); end # @return [Symbol] offense status # - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:455 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:456 def attempt_correction(range, corrector); end # Reserved for Cop::Cop # - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:378 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:383 def callback_argument(range); end # Called to complete an investigation # - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:411 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:412 def complete_investigation; end # @return [Symbol, Corrector] offense status # - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:429 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:430 def correct(range); end - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:396 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:401 def current_corrector; end # Reserved for Commissioner: # - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:388 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:393 def current_offense_locations; end - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:400 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:405 def current_offenses; end - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:392 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:397 def currently_disabled_lines; end - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:534 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:535 def custom_severity; end - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:530 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:531 def default_severity; end - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:469 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:470 def disable_uncorrectable(range); end - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:520 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:521 def enabled_line?(line_number); end - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:497 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:498 def file_name_matches_any?(file, parameter, default_result); end - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:487 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:488 def find_message(range, message); end - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:526 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:527 def find_severity(_range, severity); end - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:512 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:513 def matches_absolute_include_pattern?(patterns, file); end - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:547 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:548 def range_for_original(range); end - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:476 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:477 def range_from_node_or_range(node_or_range); end # Actually private methods # - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:421 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:422 def reset_investigation; end - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:555 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:559 def target_satisfies_all_gem_version_requirements?; end # @return [Symbol] offense status # - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:444 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:445 def use_corrector(range, corrector); end class << self @@ -3090,12 +3188,12 @@ class RuboCop::Cop::Base private - # pkg:gem/rubocop#lib/rubocop/cop/base.rb:404 + # pkg:gem/rubocop#lib/rubocop/cop/base.rb:377 def restrict_on_send; end end end -# pkg:gem/rubocop#lib/rubocop/cop/base.rb:408 +# pkg:gem/rubocop#lib/rubocop/cop/base.rb:409 RuboCop::Cop::Base::EMPTY_OFFENSES = T.let(T.unsafe(nil), Array) # Reports of an investigation. @@ -3151,8 +3249,13 @@ end # pkg:gem/rubocop#lib/rubocop/cop/base.rb:52 RuboCop::Cop::Base::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Set) -# pkg:gem/rubocop#lib/rubocop/cop/bundler/duplicated_gem.rb:5 -module RuboCop::Cop::Bundler; end +# Cops for the `Bundler` department. The department's cops are registered for lazy loading +# and their files are loaded on demand. +# +# pkg:gem/rubocop#lib/rubocop/cop/bundler.rb:7 +module RuboCop::Cop::Bundler + extend ::RuboCop::Cop::LazyLoader +end # A Gem's requirements should be listed only once in a Gemfile. # @@ -3829,35 +3932,42 @@ module RuboCop::Cop::CheckLineBreakable # @api private # - # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:202 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:220 def all_on_same_line?(nodes); end # @api private # - # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:222 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:240 def already_on_multiple_lines?(node); end # @api private # - # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:135 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:137 def breakable_collection?(node, elements); end - # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:228 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:246 def chained_to_heredoc?(node); end + # @api private + # The result depends only on the given node, but the check may traverse all children of + # a large collection and is repeated for each contained element, so memoize it per node. + # + # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:195 + def children_could_be_broken_up?(node, children); end + # @api private # - # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:189 - def children_could_be_broken_up?(children); end + # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:207 + def compute_children_could_be_broken_up?(children); end # @api private # - # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:152 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:154 def contained_by_breakable_collection_on_same_line?(node); end # @api private # - # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:172 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:174 def contained_by_multiline_collection_that_could_be_broken_up?(node); end # @api private @@ -3867,34 +3977,34 @@ module RuboCop::Cop::CheckLineBreakable # @api private # - # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:74 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:76 def extract_first_element_over_column_limit(node, elements, max); end # @api private # - # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:94 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:96 def first_argument_is_heredoc?(node); end # @api private # - # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:209 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:227 def process_args(args); end # @api private # - # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:119 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:121 def safe_to_ignore?(node); end # @api private # If a `send` or `csend` node contains a heredoc argument, splitting cannot happen # after the heredoc or else it will cause a syntax error. # - # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:103 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:105 def shift_elements_for_heredoc_arg(node, elements, index); end # @api private # - # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:114 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/check_line_breakable.rb:116 def within_column_limit?(element, max, line); end end @@ -4015,435 +4125,435 @@ class RuboCop::Cop::Commissioner # @return [InvestigationReport] # - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:79 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:81 def investigate(processed_source, offset: T.unsafe(nil), original: T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on___ENCODING__(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on___FILE__(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on___LINE__(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_alias(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_and(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_and_asgn(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_arg(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_arg_expr(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_args(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_array(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_array_pattern(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_array_pattern_with_tail(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_back_ref(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_begin(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_block(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_block_pass(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_blockarg(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_blocknilarg(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_break(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_case(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_case_match(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_casgn(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_cbase(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_class(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_complex(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_const(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_const_pattern(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_csend(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_cvar(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_cvasgn(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_def(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_defined?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_defs(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_dstr(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_dsym(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_eflipflop(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_empty_else(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_ensure(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_erange(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_false(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_find_pattern(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_float(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_for(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_forward_arg(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_forward_args(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_forwarded_args(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_forwarded_kwrestarg(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_forwarded_restarg(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_gvar(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_gvasgn(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_hash(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_hash_pattern(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_if(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_if_guard(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_iflipflop(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_in_match(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_in_pattern(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_index(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_indexasgn(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_int(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_irange(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_itblock(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_ivar(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_ivasgn(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_kwarg(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_kwargs(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_kwbegin(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_kwnilarg(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_kwoptarg(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_kwrestarg(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_kwsplat(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_lambda(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_lvar(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_lvasgn(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_masgn(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_match_alt(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_match_as(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_match_current_line(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_match_nil_pattern(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_match_pattern(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_match_pattern_p(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_match_rest(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_match_var(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_match_with_lvasgn(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_match_with_trailing_comma(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_mlhs(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_module(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_next(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_nil(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_not(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_nth_ref(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_numblock(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_op_asgn(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_optarg(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_or(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_or_asgn(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_pair(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_pin(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_postexe(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_preexe(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_procarg0(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_rational(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_redo(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_regexp(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_regopt(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_resbody(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_rescue(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_restarg(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_retry(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_return(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_sclass(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_self(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_send(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_shadowarg(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_splat(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_str(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_super(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_sym(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_true(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_undef(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_unless_guard(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_until(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_until_post(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_when(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_while(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_while_post(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_xstr(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_yield(node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:69 def on_zsuper(node); end private - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:98 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:100 def begin_investigation(processed_source, offset:, original:); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:121 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:123 def build_callbacks(cops); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:116 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:118 def initialize_callbacks; end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:159 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:161 def invoke(callback, cops); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:163 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:165 def invoke_with_argument(callback, cops, arg); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:112 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:114 def reset; end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:131 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:133 def restrict_callbacks(callbacks); end # NOTE: mutates `callbacks` in place # - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:149 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:151 def restricted_map(callbacks); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:104 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:106 def trigger_responding_cops(callback, node); end - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:139 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:141 def trigger_restricted_cops(event, node); end # Allow blind rescues here, since we're absorbing and packaging or # re-raising exceptions that can be raised from within the individual # cops' `#investigate` methods. # - # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:170 + # pkg:gem/rubocop#lib/rubocop/cop/commissioner.rb:172 def with_cop_error_handling(cop, node = T.unsafe(nil)); end end @@ -5168,8 +5278,14 @@ module RuboCop::Cop::EndlessMethodRewriter private - # pkg:gem/rubocop#lib/rubocop/cop/mixin/endless_method_rewriter.rb:19 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/endless_method_rewriter.rb:23 def arguments(node, missing = T.unsafe(nil)); end + + # pkg:gem/rubocop#lib/rubocop/cop/mixin/endless_method_rewriter.rb:27 + def configured_indentation_width; end + + # pkg:gem/rubocop#lib/rubocop/cop/mixin/endless_method_rewriter.rb:19 + def receiver(node); end end # Common functionality for enforcing a specific superclass. @@ -5288,6 +5404,9 @@ module RuboCop::Cop::ForbiddenPattern # pkg:gem/rubocop#lib/rubocop/cop/mixin/forbidden_pattern.rb:7 def forbidden_pattern?(name); end + # pkg:gem/rubocop#lib/rubocop/cop/mixin/forbidden_pattern.rb:15 + def forbidden_pattern_regexps; end + # pkg:gem/rubocop#lib/rubocop/cop/mixin/forbidden_pattern.rb:11 def forbidden_patterns; end end @@ -5392,8 +5511,13 @@ module RuboCop::Cop::GemDeclaration def gem_declaration?(param0 = T.unsafe(nil)); end end -# pkg:gem/rubocop#lib/rubocop/cop/gemspec/add_runtime_dependency.rb:5 -module RuboCop::Cop::Gemspec; end +# Cops for the `Gemspec` department. The department's cops are registered for lazy loading +# and their files are loaded on demand. +# +# pkg:gem/rubocop#lib/rubocop/cop/gemspec.rb:7 +module RuboCop::Cop::Gemspec + extend ::RuboCop::Cop::LazyLoader +end # Prefer `add_dependency` over `add_runtime_dependency` as the latter is # considered soft-deprecated. @@ -5809,13 +5933,22 @@ class RuboCop::Cop::Gemspec::DuplicatedAssignment < ::RuboCop::Cop::Base # pkg:gem/rubocop#lib/rubocop/cop/gemspec/duplicated_assignment.rb:91 def duplicated_indexed_assignment_method_nodes; end + # Assignments in separate `Gem::Specification.new` blocks are not duplicates of + # one another, so the enclosing specification is part of the grouping key. + # + # pkg:gem/rubocop#lib/rubocop/cop/gemspec/duplicated_assignment.rb:104 + def enclosing_specification(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/gemspec/duplicated_assignment.rb:98 + def indexed_assignment_key(node); end + # pkg:gem/rubocop#lib/rubocop/cop/gemspec/duplicated_assignment.rb:66 def process_assignment_method_nodes; end # pkg:gem/rubocop#lib/rubocop/cop/gemspec/duplicated_assignment.rb:74 def process_indexed_assignment_method_nodes; end - # pkg:gem/rubocop#lib/rubocop/cop/gemspec/duplicated_assignment.rb:98 + # pkg:gem/rubocop#lib/rubocop/cop/gemspec/duplicated_assignment.rb:108 def register_offense(node, assignment, line_of_first_occurrence); end end @@ -6158,13 +6291,16 @@ class RuboCop::Cop::Generator # pkg:gem/rubocop#lib/rubocop/cop/generator.rb:119 def initialize(name, output: T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/generator.rb:139 + # pkg:gem/rubocop#lib/rubocop/cop/generator.rb:143 def inject_config(config_file_path: T.unsafe(nil), version_added: T.unsafe(nil)); end + # pkg:gem/rubocop#lib/rubocop/cop/generator.rb:139 + def inject_registration; end + # pkg:gem/rubocop#lib/rubocop/cop/generator.rb:135 def inject_require(root_file_path: T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/generator.rb:152 + # pkg:gem/rubocop#lib/rubocop/cop/generator.rb:156 def todo; end # pkg:gem/rubocop#lib/rubocop/cop/generator.rb:127 @@ -6175,31 +6311,31 @@ class RuboCop::Cop::Generator private - # pkg:gem/rubocop#lib/rubocop/cop/generator.rb:166 + # pkg:gem/rubocop#lib/rubocop/cop/generator.rb:170 def badge; end - # pkg:gem/rubocop#lib/rubocop/cop/generator.rb:189 + # pkg:gem/rubocop#lib/rubocop/cop/generator.rb:193 def generate(template); end - # pkg:gem/rubocop#lib/rubocop/cop/generator.rb:181 + # pkg:gem/rubocop#lib/rubocop/cop/generator.rb:185 def generated_source; end - # pkg:gem/rubocop#lib/rubocop/cop/generator.rb:185 + # pkg:gem/rubocop#lib/rubocop/cop/generator.rb:189 def generated_spec; end - # pkg:gem/rubocop#lib/rubocop/cop/generator.rb:166 + # pkg:gem/rubocop#lib/rubocop/cop/generator.rb:170 def output; end - # pkg:gem/rubocop#lib/rubocop/cop/generator.rb:214 + # pkg:gem/rubocop#lib/rubocop/cop/generator.rb:218 def snake_case(camel_case_string); end - # pkg:gem/rubocop#lib/rubocop/cop/generator.rb:204 + # pkg:gem/rubocop#lib/rubocop/cop/generator.rb:208 def source_path; end - # pkg:gem/rubocop#lib/rubocop/cop/generator.rb:194 + # pkg:gem/rubocop#lib/rubocop/cop/generator.rb:198 def spec_path; end - # pkg:gem/rubocop#lib/rubocop/cop/generator.rb:168 + # pkg:gem/rubocop#lib/rubocop/cop/generator.rb:172 def write_unless_file_exists(path, contents); end end @@ -6248,6 +6384,99 @@ end # pkg:gem/rubocop#lib/rubocop/cop/generator/configuration_injector.rb:10 RuboCop::Cop::Generator::ConfigurationInjector::TEMPLATE = T.let(T.unsafe(nil), String) +# A class that injects a `register_cop` directive into the cop's department module +# so that the new cop is registered for lazy loading. +# The directive is injected in alphabetical order among the existing directives without +# reordering them, since the registration order defines the cop execution order. +# When the department module file does not exist yet, it is created, and a require for +# it is injected into the root RuboCop file. +# +# Anything unexpected in the department module, such as a commented-out or otherwise +# unparsable `register_cop` line, raises an error instead of silently producing +# a broken registration. +# +# pkg:gem/rubocop#lib/rubocop/cop/generator/registration_injector.rb:16 +class RuboCop::Cop::Generator::RegistrationInjector + # pkg:gem/rubocop#lib/rubocop/cop/generator/registration_injector.rb:25 + def initialize(source_path:, badge:, root_file_path: T.unsafe(nil), output: T.unsafe(nil)); end + + # pkg:gem/rubocop#lib/rubocop/cop/generator/registration_injector.rb:33 + def inject; end + + private + + # pkg:gem/rubocop#lib/rubocop/cop/generator/registration_injector.rb:44 + def badge; end + + # The directive path is relative to the department module file's directory, + # which `__dir__` resolves to at load time. + # + # pkg:gem/rubocop#lib/rubocop/cop/generator/registration_injector.rb:99 + def cop_path; end + + # pkg:gem/rubocop#lib/rubocop/cop/generator/registration_injector.rb:57 + def create_department_file; end + + # pkg:gem/rubocop#lib/rubocop/cop/generator/registration_injector.rb:44 + def department_file_path; end + + # pkg:gem/rubocop#lib/rubocop/cop/generator/registration_injector.rb:152 + def department_module_source; end + + # The department requires form the contiguous block right before + # the `rubocop/cop/team` require in the root RuboCop file. + # + # pkg:gem/rubocop#lib/rubocop/cop/generator/registration_injector.rb:120 + def department_require_index(lines, require_directive); end + + # pkg:gem/rubocop#lib/rubocop/cop/generator/registration_injector.rb:114 + def directive; end + + # pkg:gem/rubocop#lib/rubocop/cop/generator/registration_injector.rb:136 + def first_directive_position(lines); end + + # pkg:gem/rubocop#lib/rubocop/cop/generator/registration_injector.rb:63 + def inject_department_require; end + + # pkg:gem/rubocop#lib/rubocop/cop/generator/registration_injector.rb:46 + def inject_directive; end + + # pkg:gem/rubocop#lib/rubocop/cop/generator/registration_injector.rb:103 + def insertion_point(lines, entries); end + + # pkg:gem/rubocop#lib/rubocop/cop/generator/registration_injector.rb:182 + def module_closing_lines(modules); end + + # pkg:gem/rubocop#lib/rubocop/cop/generator/registration_injector.rb:166 + def module_opening_lines(modules); end + + # pkg:gem/rubocop#lib/rubocop/cop/generator/registration_injector.rb:44 + def output; end + + # @return [Array] the `register_cop` entries with their line numbers + # + # pkg:gem/rubocop#lib/rubocop/cop/generator/registration_injector.rb:83 + def parse_entries(lines); end + + # pkg:gem/rubocop#lib/rubocop/cop/generator/registration_injector.rb:44 + def root_file_path; end + + # pkg:gem/rubocop#lib/rubocop/cop/generator/registration_injector.rb:44 + def source_path; end + + # pkg:gem/rubocop#lib/rubocop/cop/generator/registration_injector.rb:76 + def write_department_file(lines); end +end + +# pkg:gem/rubocop#lib/rubocop/cop/generator/registration_injector.rb:23 +RuboCop::Cop::Generator::RegistrationInjector::DEPARTMENT_REQUIRE_PATTERN = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/rubocop#lib/rubocop/cop/generator/registration_injector.rb:18 +RuboCop::Cop::Generator::RegistrationInjector::ENTRY_PATTERN = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/rubocop#lib/rubocop/cop/generator/registration_injector.rb:17 +RuboCop::Cop::Generator::RegistrationInjector::EXTEND_PATTERN = T.let(T.unsafe(nil), Regexp) + # A class that injects a require directive into the root RuboCop file. # It looks for other directives that require files in the same (cop) # namespace and injects the provided one in alpha @@ -6333,30 +6562,30 @@ end # This is a special case that just ensures the kwsplat is aligned with the rest of the hash # since a `kwsplat` does not have a key, separator or value. # -# pkg:gem/rubocop#lib/rubocop/cop/mixin/hash_alignment_styles.rb:146 +# pkg:gem/rubocop#lib/rubocop/cop/mixin/hash_alignment_styles.rb:163 class RuboCop::Cop::HashAlignmentStyles::KeywordSplatAlignment - # pkg:gem/rubocop#lib/rubocop/cop/mixin/hash_alignment_styles.rb:147 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/hash_alignment_styles.rb:164 def deltas(first_pair, current_pair); end end # Handles calculation of deltas when the enforced style is 'separator'. # -# pkg:gem/rubocop#lib/rubocop/cop/mixin/hash_alignment_styles.rb:121 +# pkg:gem/rubocop#lib/rubocop/cop/mixin/hash_alignment_styles.rb:138 class RuboCop::Cop::HashAlignmentStyles::SeparatorAlignment include ::RuboCop::Cop::HashAlignmentStyles::ValueAlignment - # pkg:gem/rubocop#lib/rubocop/cop/mixin/hash_alignment_styles.rb:124 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/hash_alignment_styles.rb:141 def deltas_for_first_pair(_first_pair); end private - # pkg:gem/rubocop#lib/rubocop/cop/mixin/hash_alignment_styles.rb:134 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/hash_alignment_styles.rb:151 def hash_rocket_delta(first_pair, current_pair); end - # pkg:gem/rubocop#lib/rubocop/cop/mixin/hash_alignment_styles.rb:130 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/hash_alignment_styles.rb:147 def key_delta(first_pair, current_pair); end - # pkg:gem/rubocop#lib/rubocop/cop/mixin/hash_alignment_styles.rb:138 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/hash_alignment_styles.rb:155 def value_delta(first_pair, current_pair); end end @@ -6377,13 +6606,25 @@ class RuboCop::Cop::HashAlignmentStyles::TableAlignment # pkg:gem/rubocop#lib/rubocop/cop/mixin/hash_alignment_styles.rb:94 def key_delta(first_pair, current_pair); end - # pkg:gem/rubocop#lib/rubocop/cop/mixin/hash_alignment_styles.rb:115 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/hash_alignment_styles.rb:132 def max_delimiter_width(hash_node); end - # pkg:gem/rubocop#lib/rubocop/cop/mixin/hash_alignment_styles.rb:111 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/hash_alignment_styles.rb:128 def max_key_width(hash_node); end - # pkg:gem/rubocop#lib/rubocop/cop/mixin/hash_alignment_styles.rb:103 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/hash_alignment_styles.rb:124 + def multiline_key_end_columns(hash_node); end + + # The column the separator should land on: the shared key margin + # plus the widest single-line key, or, if larger, a multiline key's + # own last-line end column. The latter can't be measured from a + # multiline key's (newline-including) source length, so it's a + # separate candidate rather than folded into `max_key_width`. + # + # pkg:gem/rubocop#lib/rubocop/cop/mixin/hash_alignment_styles.rb:114 + def target_operator_column(first_pair); end + + # pkg:gem/rubocop#lib/rubocop/cop/mixin/hash_alignment_styles.rb:102 def value_delta(first_pair, current_pair); end end @@ -6894,7 +7135,7 @@ end # @deprecated IgnoredPattern class has been replaced with AllowedPattern. # -# pkg:gem/rubocop#lib/rubocop/cop/mixin/allowed_pattern.rb:66 +# pkg:gem/rubocop#lib/rubocop/cop/mixin/allowed_pattern.rb:70 RuboCop::Cop::IgnoredPattern = RuboCop::Cop::AllowedPattern # Common functionality for checking integer nodes. @@ -7002,8 +7243,13 @@ class RuboCop::Cop::LambdaLiteralToMethodCorrector def separating_space?; end end -# pkg:gem/rubocop#lib/rubocop/cop/mixin/empty_lines_around_body.rb:5 -module RuboCop::Cop::Layout; end +# Cops for the `Layout` department. The department's cops are registered for lazy loading +# and their files are loaded on demand. +# +# pkg:gem/rubocop#lib/rubocop/cop/layout.rb:7 +module RuboCop::Cop::Layout + extend ::RuboCop::Cop::LazyLoader +end # Bare access modifiers (those not applying to specific methods) should be # indented as deep as method definitions, or as deep as the `class`/`module` @@ -7913,16 +8159,16 @@ class RuboCop::Cop::Layout::ClassStructure < ::RuboCop::Cop::Base # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:209 def autocorrect(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:351 + # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:357 def begin_pos_with_comment(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:374 + # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:380 def buffer; end # Setting categories hash allow you to group methods in group to match # in the {expected_order}. # - # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:386 + # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:392 def categories; end # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:276 @@ -7939,22 +8185,22 @@ class RuboCop::Cop::Layout::ClassStructure < ::RuboCop::Cop::Base # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:229 def classify(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:317 + # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:323 def dynamic_constant?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:341 + # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:347 def end_position_for(node); end # Load expected order from `ExpectedOrder` config. # Define new terms in the expected order by adding new {categories}. # - # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:380 + # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:386 def expected_order; end # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:261 def find_category(name); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:370 + # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:376 def find_heredoc(node); end # Categorize a node according to the {expected_order} @@ -7966,28 +8212,31 @@ class RuboCop::Cop::Layout::ClassStructure < ::RuboCop::Cop::Base # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:248 def find_send_node_category(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:308 + # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:299 + def flatten_class_elements(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:314 def humanize_node(node); end # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:292 def ignore?(node, classification); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:299 + # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:305 def ignore_for_autocorrect?(node, sibling); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:335 + # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:341 def marked_as_private_constant?(node, name); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:325 + # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:331 def private_constant?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:366 + # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:372 def start_line_position(node); end # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:267 def walk_over_nested_class_definition(class_node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:362 + # pkg:gem/rubocop#lib/rubocop/cop/layout/class_structure.rb:368 def whole_line_comment_at_line?(line); end end @@ -8276,6 +8525,14 @@ class RuboCop::Cop::Layout::CommentIndentation < ::RuboCop::Cop::Base # pkg:gem/rubocop#lib/rubocop/cop/layout/comment_indentation.rb:71 def autocorrect_preceding_comments(corrector, comment); end + # Only a bare access modifier (the keyword alone on its line) is outdented by + # `Layout/AccessModifierIndentation`. An inline modifier such as `private def foo` + # keeps the regular method indentation, so a comment above it must not be pushed + # one level deeper. + # + # pkg:gem/rubocop#lib/rubocop/cop/layout/comment_indentation.rb:165 + def bare_access_modifier?(line); end + # pkg:gem/rubocop#lib/rubocop/cop/layout/comment_indentation.rb:92 def check(comment, comment_index); end @@ -8305,7 +8562,7 @@ class RuboCop::Cop::Layout::CommentIndentation < ::RuboCop::Cop::Base # pkg:gem/rubocop#lib/rubocop/cop/layout/comment_indentation.rb:82 def should_correct?(preceding_comment, reference_comment); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/comment_indentation.rb:162 + # pkg:gem/rubocop#lib/rubocop/cop/layout/comment_indentation.rb:169 def two_alternatives?(line); end end @@ -8537,13 +8794,10 @@ class RuboCop::Cop::Layout::ElseAlignment < ::RuboCop::Cop::Base private - # pkg:gem/rubocop#lib/rubocop/cop/layout/else_alignment.rb:147 - def assignment_node(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/else_alignment.rb:71 def autocorrect(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/else_alignment.rb:106 + # pkg:gem/rubocop#lib/rubocop/cop/layout/else_alignment.rb:100 def base_for_method_definition(node); end # pkg:gem/rubocop#lib/rubocop/cop/layout/else_alignment.rb:80 @@ -8552,10 +8806,10 @@ class RuboCop::Cop::Layout::ElseAlignment < ::RuboCop::Cop::Base # pkg:gem/rubocop#lib/rubocop/cop/layout/else_alignment.rb:89 def base_range_of_rescue(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/else_alignment.rb:131 + # pkg:gem/rubocop#lib/rubocop/cop/layout/else_alignment.rb:125 def check_alignment(base_range, else_range); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/else_alignment.rb:115 + # pkg:gem/rubocop#lib/rubocop/cop/layout/else_alignment.rb:109 def check_assignment(node, rhs); end # pkg:gem/rubocop#lib/rubocop/cop/layout/else_alignment.rb:75 @@ -12141,115 +12395,115 @@ class RuboCop::Cop::Layout::IndentationWidth < ::RuboCop::Cop::Base private - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:277 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:279 def access_modifier_indentation_style; end # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:206 def autocorrect(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:503 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:505 def block_body_indentation_base(node, end_loc); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:285 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:287 def check_assignment(node, rhs); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:305 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:307 def check_if(node, body, else_clause, base_loc); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:318 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:320 def check_indentation(base_loc, body_node, style = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:219 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:221 def check_members(base, members); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:243 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:245 def check_members_for_indented_internal_methods_style(members); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:249 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:251 def check_members_for_normal_style(base, members); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:412 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:414 def check_rescue?(rescue_node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:468 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:470 def column_offset_between(base_range, range); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:454 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:456 def contains_access_modifier?(body_node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:515 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:517 def dot_on_new_line?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:257 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:259 def each_member(members); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:281 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:283 def indentation_consistency_style; end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:460 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:462 def indentation_style; end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:395 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:397 def indentation_to_check?(base_loc, body_node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:269 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:271 def indented_internal_methods_style?; end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:497 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:499 def leftmost_modifier_of(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:479 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:481 def line_indentation(range); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:484 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:486 def line_uses_tabs?(range); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:352 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:354 def message(configured_indentation_width, indentation, name); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:373 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:375 def message_for_spaces(configured_indentation_width, indentation, name); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:360 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:362 def message_for_tabs(configured_indentation_width, indentation, name); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:431 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:433 def offending_range(body_node, indentation); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:328 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:330 def offense(body_node, indentation, style); end # Returns a range at the first non-space column of the line the opening parenthesis is on, # used as the base to indent the body from. # - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:214 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:216 def opening_line_start(begin_loc); end # Returns true if the given node is within another node that has # already been marked for autocorrection by this cop. # - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:385 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:387 def other_offense_in_same_range?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:231 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:233 def select_check_member(member); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:523 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:525 def selector_on_new_line?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:416 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:418 def skip_check?(base_loc, body_node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:273 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:275 def special_modifier?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:445 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:447 def starts_with_access_modifier?(body_node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:464 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:466 def using_tabs?; end - # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:488 + # pkg:gem/rubocop#lib/rubocop/cop/layout/indentation_width.rb:490 def visual_column(range); end end @@ -12385,66 +12639,90 @@ RuboCop::Cop::Layout::InitialIndentation::MSG = T.let(T.unsafe(nil), String) # # name = 'John' #: String # -# pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:101 +# @example AllowYARDCommentBlockSeparator: false (default) +# +# # bad +# +# # Copyright (c) Example Corp +# #- +# class Client +# end +# +# @example AllowYARDCommentBlockSeparator: true +# +# # good +# +# # Copyright (c) Example Corp +# #- +# class Client +# end +# +# pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:119 class RuboCop::Cop::Layout::LeadingCommentSpace < ::RuboCop::Cop::Base include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector - # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:107 + # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:125 def on_new_investigation; end private - # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:161 + # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:180 def allow_doxygen_comment?; end - # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:169 + # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:188 def allow_gemfile_ruby_comment?; end - # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:185 + # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:204 def allow_rbs_inline_annotation?; end - # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:193 + # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:212 def allow_steep_annotation?; end - # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:131 + # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:220 + def allow_yard_comment_block_separator?; end + + # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:150 def allowed_on_first_line?(comment); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:165 + # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:184 def doxygen_comment_style?(comment); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:173 + # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:192 def gemfile?; end - # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:181 + # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:200 def gemfile_ruby_comment?(comment); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:127 + # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:146 def hash_mark(expr); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:157 + # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:176 def rackup_config_file?; end - # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:153 + # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:172 def rackup_options?(comment); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:189 + # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:208 def rbs_inline_annotation?(comment); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:177 + # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:196 def ruby_comment_in_gemfile?(comment); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:135 + # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:154 def shebang?(comment); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:139 + # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:158 def shebang_continuation?(comment); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:197 + # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:216 def steep_annotation?(comment); end + + # pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:224 + def yard_comment_block_separator?(comment); end end -# pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:105 +# pkg:gem/rubocop#lib/rubocop/cop/layout/leading_comment_space.rb:123 RuboCop::Cop::Layout::LeadingCommentSpace::MSG = T.let(T.unsafe(nil), String) # Checks for unnecessary leading blank lines at the beginning @@ -12830,98 +13108,96 @@ class RuboCop::Cop::Layout::LineLength < ::RuboCop::Cop::Base include ::RuboCop::Cop::RangeHelp include ::RuboCop::Cop::Alignment include ::RuboCop::Cop::LineLengthHelp + include ::RuboCop::Cop::EndlessMethodRewriter extend ::RuboCop::Cop::AutoCorrector - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:70 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:71 def max=(value); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:91 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:92 def on_array(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:74 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:75 def on_block(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:94 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:95 def on_csend(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:95 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:97 def on_def(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:96 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:104 def on_defs(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:84 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:85 def on_dstr(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:92 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:93 def on_hash(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:104 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:112 def on_investigation_end; end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:78 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:79 def on_itblock(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:98 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:106 def on_new_investigation; end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:77 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:78 def on_numblock(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:88 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:89 def on_potential_breakable_node(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:93 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:94 def on_send(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:80 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:81 def on_str(node); end private - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:316 - def allow_heredoc?; end - - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:324 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:401 def allow_string_split?; end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:391 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:464 def allowed_combination?(line, uri_range, qualified_name_range); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:320 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:397 def allowed_heredoc; end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:272 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:353 def allowed_line?(line, line_index); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:182 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:254 def breakable_block_range(block_node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:403 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:476 def breakable_dstr?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:231 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:303 def breakable_dstr_begin_position(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:112 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:120 def breakable_range; end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:112 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:120 def breakable_range=(_arg0); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:190 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:262 def breakable_range_after_semicolon(semicolon_token); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:236 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:308 def breakable_range_by_line_index; end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:173 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:245 def breakable_string?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:240 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:316 def breakable_string_delimiters; end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:203 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:275 def breakable_string_position(node); end # Locate where to break a string that is too long, ensuring that escape characters @@ -12929,79 +13205,100 @@ class RuboCop::Cop::Layout::LineLength < ::RuboCop::Cop::Base # If the string contains spaces, use them to determine a place for a clean break; # otherwise, the string will be broken at the line length limit. # - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:215 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:287 def breakable_string_range(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:358 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:431 def check_directive_line(line, line_index); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:135 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:207 def check_for_breakable_block(block_node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:158 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:230 def check_for_breakable_dstr(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:114 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:186 def check_for_breakable_node(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:127 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:199 def check_for_breakable_semicolons(processed_source); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:146 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:218 def check_for_breakable_str(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:256 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:332 def check_line(line, line_index); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:375 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:448 def check_line_for_exemptions(line, line_index); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:300 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:174 + def correct_endless_method_block_to_multiline(corrector, node); end + + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:164 + def correctable_endless_method_block?(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:312 + def endless_methods_by_line; end + + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:381 def excess_range(uri_range, line, line_index); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:328 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:405 def extract_heredocs(ast); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:244 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:127 + def handle_endless_method_line(line, line_index); end + + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:320 def heredocs; end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:248 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:324 def highlight_start(line); end # Find the largest possible substring of a string node to retain before a break # - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:419 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:492 def largest_possible_string(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:347 - def line_in_heredoc?(line_number); end - - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:338 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:415 def line_in_permitted_heredoc?(line_number); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:311 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:392 def max; end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:314 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:395 def max_line_length; end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:385 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:458 def range_if_applicable(line, type); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:351 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:424 def receiver_contains_heredoc?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:282 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:140 + def register_endless_method_offense(line, line_index); end + + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:363 def register_offense(loc, line, line_index, length: T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:278 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:151 + def register_required_endless_method_offense(line, line_index); end + + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:135 + def require_endless_methods?; end + + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:359 def shebang?(line, line_index); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:408 + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:481 def string_delimiter(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:122 + def track_endless_method(node); end end -# pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:72 +# pkg:gem/rubocop#lib/rubocop/cop/layout/line_length.rb:73 RuboCop::Cop::Layout::LineLength::MSG = T.let(T.unsafe(nil), String) # Checks that the closing brace in an array literal is either @@ -13801,155 +14098,158 @@ class RuboCop::Cop::Layout::MultilineMethodCallIndentation < ::RuboCop::Cop::Bas private - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:191 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:196 def after_multiline_block_base(first_call, node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:280 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:285 def align_with_base_message(rhs); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:219 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:224 def aligned_with_first_line_dot?(node, rhs); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:302 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:307 def alignment_base(node, rhs, given_style); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:361 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:366 def alignment_base_for_chained_receiver?(receiver_chain, base_receiver); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:83 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:88 def autocorrect(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:284 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:289 def base_source; end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:242 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:247 def calculate_column_delta_offense(rhs, correct_column); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:157 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:162 def check_hash_pair_indentation(node, lhs, rhs); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:148 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:153 def check_hash_pair_indented_style(rhs, pair_ancestor); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:229 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:234 def check_regular_indentation(node, lhs, rhs, given_style); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:98 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:103 def correct_block(corrector, block_node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:92 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:97 def correct_selector_only(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:247 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:252 def extra_indentation(given_style, parent); end # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:69 def find_base_receiver(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:406 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:411 def find_continuation_node(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:207 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:212 def find_enclosing_chain_call(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:349 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:354 def find_hash_method_base_in_receiver_chain(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:167 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:172 def find_hash_pair_alignment_base(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:400 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:405 def find_multiline_block_chain_node(node); end # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:75 def find_pair_ancestor(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:374 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:379 def first_call_alignment_node(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:430 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:445 def first_call_has_a_dot(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:175 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:180 def first_dot_alignment_base(node, rhs); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:391 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:396 def get_dot_right_above(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:420 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:435 def handle_descendant_block(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:215 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:220 def hash_arg_in_chain?(call, hash_node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:140 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:145 def hash_pair_aligned?(pair_ancestor, given_style); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:144 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:149 def hash_pair_indented?(node, pair_ancestor, given_style); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:200 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:205 def inside_multiline_chain_arg?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:257 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:425 + def leftmost_call_on_same_line(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:262 def message(node, lhs, rhs); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:385 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:390 def method_on_receiver_last_line?(node, base_receiver, type); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:288 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:293 def no_base_message(lhs, rhs, node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:120 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:125 def offending_range(node, lhs, rhs, given_style); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:437 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:452 def operation_rhs(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:447 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:462 def operator_rhs?(node, receiver); end # a # .b # .c # - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:341 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:346 def receiver_alignment_base(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:275 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:280 def relative_to_receiver_message(rhs); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:104 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:109 def relevant_node?(send_node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:108 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:113 def right_hand_side(send_node); end # a.b # .c # - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:329 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:334 def semantic_alignment_base(node, rhs); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:366 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:371 def semantic_alignment_node(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:271 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:276 def should_align_with_base?; end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:267 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:272 def should_indent_relative_to_receiver?; end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:416 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:421 def single_line_block_receiver?(receiver); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:136 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:141 def skip_for_context?(node, pair_ancestor); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:311 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:316 def syntactic_alignment_base(lhs, rhs); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:79 + # pkg:gem/rubocop#lib/rubocop/cop/layout/multiline_method_call_indentation.rb:84 def unwrap_block_node(node); end end @@ -14373,51 +14673,90 @@ RuboCop::Cop::Layout::ParameterAlignment::FIXED_INDENT_MSG = T.let(T.unsafe(nil) class RuboCop::Cop::Layout::RedundantLineBreak < ::RuboCop::Cop::Base include ::RuboCop::Cop::CheckAssignment include ::RuboCop::Cop::CheckSingleLineSuitability + include ::RuboCop::Cop::ReparsedEquivalence extend ::RuboCop::Cop::AutoCorrector - # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:70 + # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:71 def on_csend(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:56 + # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:57 def on_lvasgn(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:60 + # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:61 def on_send(node); end private - # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:78 + # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:97 + def apply_reparse_correction(corrector, node); end + + # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:79 def check_assignment(node, _rhs); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:108 + # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:185 def configured_to_not_be_inspected?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:127 + # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:204 def convertible_block?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:74 + # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:75 def end_with_percent_blank_string?(processed_source); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:102 + # Joining lines merges split string literals (`"a" \ "b"` into + # `"ab"`) and turns mixed-quote pairs into `+` concatenation, which + # changes the tree but not the resulting string. Normalize all string + # concatenation to a canonical form before comparing: nested + # concatenations are flattened and adjacent literal parts merged. + # + # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:118 + def fold_string_concatenation(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:179 def index_access_call_chained?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:91 + # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:154 + def merge_plain_strings(chunk); end + + # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:145 + def merge_string_parts(parts); end + + # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:109 + def normalize_reparsed_ast(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:168 def offense?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:115 + # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:192 def other_cop_takes_precedence?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:84 + # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:164 + def plain_string?(node); end + + # Joining lines shifts the value of any later `__LINE__`, exactly as + # any other line-removing correction does; neutralize it on both sides + # with an identifier, which stays valid in every position the keyword + # can appear in. + # + # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:105 + def preprocess_reparsed_source(source); end + + # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:85 def register_offense(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:98 + # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:175 def require_backslash?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:123 + # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:200 def single_line_block_chain_enabled?; end + + # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:135 + def string_concatenation_parts(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:160 + def stringish?(node); end end -# pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:54 +# pkg:gem/rubocop#lib/rubocop/cop/layout/redundant_line_break.rb:55 RuboCop::Cop::Layout::RedundantLineBreak::MSG = T.let(T.unsafe(nil), String) # Checks whether the rescue and ensure keywords are aligned @@ -15685,17 +16024,17 @@ class RuboCop::Cop::Layout::SpaceInsideArrayLiteralBrackets < ::RuboCop::Cop::Ba # pkg:gem/rubocop#lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb:110 def autocorrect(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb:232 + # pkg:gem/rubocop#lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb:231 def compact(corrector, bracket, side); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb:218 - def compact_corrections(corrector, node, left, right); end + # pkg:gem/rubocop#lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb:217 + def compact_corrections(corrector, tokens, left, right); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb:210 + # pkg:gem/rubocop#lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb:209 def compact_offense(node, token, side: T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb:172 - def compact_offenses(node, left, right, start_ok, end_ok); end + # pkg:gem/rubocop#lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb:175 + def compact_offenses(node, tokens, left, right, start_ok, end_ok); end # pkg:gem/rubocop#lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb:133 def empty_config; end @@ -15707,28 +16046,25 @@ class RuboCop::Cop::Layout::SpaceInsideArrayLiteralBrackets < ::RuboCop::Cop::Ba def find_node_with_brackets(node); end # pkg:gem/rubocop#lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb:148 - def index_for(node, token); end + def index_for(tokens, token); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb:156 - def issue_offenses(node, left, right, start_ok, end_ok); end + # pkg:gem/rubocop#lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb:157 + def issue_offenses(node, tokens, left, right, start_ok, end_ok); end # pkg:gem/rubocop#lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb:152 def line_and_column_for(token); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb:193 - def multi_dimensional_array?(node, token, side: T.unsafe(nil)); end - - # pkg:gem/rubocop#lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb:204 - def next_to_bracket?(token, side: T.unsafe(nil)); end + # pkg:gem/rubocop#lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb:198 + def multi_dimensional_array?(tokens, token, side: T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb:168 - def next_to_comment?(node, token); end + # pkg:gem/rubocop#lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb:170 + def next_to_comment?(tokens, token); end # pkg:gem/rubocop#lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb:137 - def next_to_newline?(node, token); end + def next_to_newline?(tokens, token); end - # pkg:gem/rubocop#lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb:185 - def qualifies_for_compact?(node, token, side: T.unsafe(nil)); end + # pkg:gem/rubocop#lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb:190 + def qualifies_for_compact?(tokens, token, side: T.unsafe(nil)); end end # pkg:gem/rubocop#lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb:84 @@ -16528,6 +16864,38 @@ end # pkg:gem/rubocop#lib/rubocop/cop/layout/trailing_whitespace.rb:47 RuboCop::Cop::Layout::TrailingWhitespace::MSG = T.let(T.unsafe(nil), String) +# Extend a department module with this module and call `register_cop` to register +# the department's cops with the global registry without loading their files until +# a cop class itself is needed: +# +# module RuboCop +# module Cop +# # The Foo department. +# module Foo +# extend LazyLoader +# +# register_cop :BarBaz, "#{__dir__}/foo/bar_baz" +# end +# end +# end +# +# pkg:gem/rubocop#lib/rubocop/cop/lazy_loader.rb:19 +module RuboCop::Cop::LazyLoader + # Registers a cop for lazy loading. The cop appears in the registry by name right away, + # but its file is loaded only when the cop class is needed, e.g. when the cop is enabled + # for an inspection run. + # + # The path must be absolute so that loading does not depend on `$LOAD_PATH` and cannot resolve + # to another RuboCop installation. + # + # @param constant_name [Symbol] name of the cop class, e.g. `:BarBaz` + # @param path [String] absolute path to the file defining the cop class, + # with or without the `.rb` extension + # + # pkg:gem/rubocop#lib/rubocop/cop/lazy_loader.rb:30 + def register_cop(constant_name, path); end +end + # pkg:gem/rubocop#lib/rubocop/cop/legacy/corrections_proxy.rb:5 module RuboCop::Cop::Legacy; end @@ -16658,8 +17026,13 @@ module RuboCop::Cop::LineLengthHelp def valid_uri?(uri_ish_string); end end -# pkg:gem/rubocop#lib/rubocop/cop/mixin/unused_argument.rb:5 -module RuboCop::Cop::Lint; end +# Cops for the `Lint` department. The department's cops are registered for lazy loading +# and their files are loaded on demand. +# +# pkg:gem/rubocop#lib/rubocop/cop/lint.rb:7 +module RuboCop::Cop::Lint + extend ::RuboCop::Cop::LazyLoader +end # Checks for mistyped shorthand assignments. # @@ -16678,39 +17051,32 @@ module RuboCop::Cop::Lint; end # # pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_assignment.rb:21 class RuboCop::Cop::Lint::AmbiguousAssignment < ::RuboCop::Cop::Base + include ::RuboCop::Cop::CheckAssignment include ::RuboCop::Cop::RangeHelp - # pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_assignment.rb:30 - def on_asgn(node); end - - # pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_assignment.rb:40 - def on_casgn(node); end - - # pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_assignment.rb:40 - def on_cvasgn(node); end - - # pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_assignment.rb:40 - def on_gvasgn(node); end + # pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_assignment.rb:29 + def on_csend(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_assignment.rb:40 - def on_ivasgn(node); end + private - # pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_assignment.rb:40 - def on_lvasgn(node); end + # pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_assignment.rb:33 + def check_assignment(node, rhs); end end -# pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_assignment.rb:28 +# pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_assignment.rb:27 RuboCop::Cop::Lint::AmbiguousAssignment::MISTAKES = T.let(T.unsafe(nil), Hash) -# pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_assignment.rb:24 +# pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_assignment.rb:25 RuboCop::Cop::Lint::AmbiguousAssignment::MSG = T.let(T.unsafe(nil), String) -# pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_assignment.rb:26 -RuboCop::Cop::Lint::AmbiguousAssignment::SIMPLE_ASSIGNMENT_TYPES = T.let(T.unsafe(nil), Array) - # Checks for ambiguous block association with method # when param passed without parentheses. # +# This cop also detects `do...end` blocks that are likely intended for +# an enumerable method in the arguments but actually bind to the outer +# method call. For example, in `render json: data.map do |x| x end`, +# Ruby parses the `do...end` block as belonging to `render`, not `map`. +# # This cop can customize allowed methods with `AllowedMethods`. # By default, there are no allowed methods. # @@ -16725,6 +17091,18 @@ RuboCop::Cop::Lint::AmbiguousAssignment::SIMPLE_ASSIGNMENT_TYPES = T.let(T.unsaf # # or (different meaning) # some_method(a) { |val| puts val } # +# # bad +# render json: data.map do |item| +# item.to_h +# end +# +# # good +# render json: data.map { |item| item.to_h } +# +# # good +# mapped = data.map { |item| item.to_h } +# render json: mapped +# # # good # # Operator methods require no disambiguation # foo == bar { |b| b.baz } @@ -16754,36 +17132,62 @@ RuboCop::Cop::Lint::AmbiguousAssignment::SIMPLE_ASSIGNMENT_TYPES = T.let(T.unsaf # expect { do_something }.to change { object.attribute } # expect { do_something }.to not_change { object.attribute } # -# pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_block_association.rb:52 +# pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_block_association.rb:69 class RuboCop::Cop::Lint::AmbiguousBlockAssociation < ::RuboCop::Cop::Base include ::RuboCop::Cop::AllowedMethods include ::RuboCop::Cop::AllowedPattern extend ::RuboCop::Cop::AutoCorrector - # pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_block_association.rb:75 + # pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_block_association.rb:107 + def on_block(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_block_association.rb:105 def on_csend(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_block_association.rb:62 + # pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_block_association.rb:120 + def on_itblock(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_block_association.rb:119 + def on_numblock(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_block_association.rb:92 def on_send(node); end private - # pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_block_association.rb:83 + # pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_block_association.rb:141 def allowed_method_pattern?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_block_association.rb:79 + # pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_block_association.rb:137 def ambiguous_block_association?(send_node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_block_association.rb:89 + # pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_block_association.rb:124 + def find_ambiguous_block_method(block_node); end + + # Only the call the `do` block could actually have attached to is a candidate: + # the one whose source ends where the arguments end. This skips calls chained + # into another call (`foo bar.map.to_a`) and calls buried inside a + # parenthesized subcall (`foo bar(baz.map)`), which were never block candidates. + # + # pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_block_association.rb:157 + def find_block_method_arg(send_node); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_block_association.rb:147 def message(send_node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_block_association.rb:95 + # pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_block_association.rb:166 def wrap_in_parentheses(corrector, node); end end -# pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_block_association.rb:58 +# pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_block_association.rb:82 +RuboCop::Cop::Lint::AmbiguousBlockAssociation::BLOCK_METHODS = T.let(T.unsafe(nil), Set) + +# pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_block_association.rb:75 RuboCop::Cop::Lint::AmbiguousBlockAssociation::MSG = T.let(T.unsafe(nil), String) +# pkg:gem/rubocop#lib/rubocop/cop/lint/ambiguous_block_association.rb:78 +RuboCop::Cop::Lint::AmbiguousBlockAssociation::MSG_DO_END_BLOCK = T.let(T.unsafe(nil), String) + # Checks for ambiguous operators in the first argument of a # method invocation without parentheses. # @@ -17648,9 +18052,6 @@ class RuboCop::Cop::Lint::ConstantReassignment < ::RuboCop::Cop::Base # pkg:gem/rubocop#lib/rubocop/cop/lint/constant_reassignment.rb:201 def identifier_namespaces(identifier); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/constant_reassignment.rb:219 - def prior_definition_in_other_file(declaration); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/constant_reassignment.rb:209 def report_cross_file_collision(node, fully_qualified_name, display_name); end @@ -17687,6 +18088,12 @@ RuboCop::Cop::Lint::ConstantReassignment::RESTRICT_ON_SEND = T.let(T.unsafe(nil) # to prevent conflicting rules. This is because it respects user configurations # that want to enable this cop which is disabled by default. # +# When `AllCops/UseProjectIndex` is enabled and the `rubydex` gem is +# installed, only genuinely ambiguous constants are reported: those +# that resolve to a different declaration through the surrounding +# nesting than they would fully qualified. This makes the cop practical +# to enable without `Only`/`Ignore` lists. +# # @example # # By default checks every constant # @@ -17726,27 +18133,39 @@ RuboCop::Cop::Lint::ConstantReassignment::RESTRICT_ON_SEND = T.let(T.unsafe(nil) # # good # Login # -# pkg:gem/rubocop#lib/rubocop/cop/lint/constant_resolution.rb:62 +# pkg:gem/rubocop#lib/rubocop/cop/lint/constant_resolution.rb:68 class RuboCop::Cop::Lint::ConstantResolution < ::RuboCop::Cop::Base - # pkg:gem/rubocop#lib/rubocop/cop/lint/constant_resolution.rb:70 + include ::RuboCop::Cop::ProjectIndexHelp + + # pkg:gem/rubocop#lib/rubocop/cop/lint/constant_resolution.rb:78 def on_const(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/constant_resolution.rb:66 + # pkg:gem/rubocop#lib/rubocop/cop/lint/constant_resolution.rb:74 def unqualified_const?(param0 = T.unsafe(nil)); end private - # pkg:gem/rubocop#lib/rubocop/cop/lint/constant_resolution.rb:83 + # pkg:gem/rubocop#lib/rubocop/cop/lint/constant_resolution.rb:108 def allowed_names; end - # pkg:gem/rubocop#lib/rubocop/cop/lint/constant_resolution.rb:78 + # When `AllCops/UseProjectIndex` is enabled, only genuinely ambiguous + # references are reported: the constant resolves to a different + # declaration through the lexical nesting than it would fully + # qualified. Names that resolve identically either way, or that the + # index cannot resolve at all (e.g. constants from gems), are not + # reported. + # + # pkg:gem/rubocop#lib/rubocop/cop/lint/constant_resolution.rb:93 + def ambiguous_resolution?(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/constant_resolution.rb:103 def const_name?(name); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/constant_resolution.rb:87 + # pkg:gem/rubocop#lib/rubocop/cop/lint/constant_resolution.rb:112 def ignored_names; end end -# pkg:gem/rubocop#lib/rubocop/cop/lint/constant_resolution.rb:63 +# pkg:gem/rubocop#lib/rubocop/cop/lint/constant_resolution.rb:71 RuboCop::Cop::Lint::ConstantResolution::MSG = T.let(T.unsafe(nil), String) # are strictly formatted. @@ -17916,28 +18335,35 @@ class RuboCop::Cop::Lint::Debugger < ::RuboCop::Cop::Base private - # pkg:gem/rubocop#lib/rubocop/cop/lint/debugger.rb:135 + # pkg:gem/rubocop#lib/rubocop/cop/lint/debugger.rb:147 def assumed_argument?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/debugger.rb:114 + # pkg:gem/rubocop#lib/rubocop/cop/lint/debugger.rb:126 def assumed_usage_context?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/debugger.rb:124 + # pkg:gem/rubocop#lib/rubocop/cop/lint/debugger.rb:136 def chained_method_name(send_node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/debugger.rb:103 + # pkg:gem/rubocop#lib/rubocop/cop/lint/debugger.rb:104 def debugger_method?(send_node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/debugger.rb:89 + # The last segment of each configured debugger method, used to cheaply + # rule out the vast majority of `send` nodes before building the + # chained method name. + # + # pkg:gem/rubocop#lib/rubocop/cop/lint/debugger.rb:113 + def debugger_method_names; end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/debugger.rb:90 def debugger_methods; end - # pkg:gem/rubocop#lib/rubocop/cop/lint/debugger.rb:107 + # pkg:gem/rubocop#lib/rubocop/cop/lint/debugger.rb:119 def debugger_require?(send_node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/debugger.rb:96 + # pkg:gem/rubocop#lib/rubocop/cop/lint/debugger.rb:97 def debugger_requires; end - # pkg:gem/rubocop#lib/rubocop/cop/lint/debugger.rb:85 + # pkg:gem/rubocop#lib/rubocop/cop/lint/debugger.rb:86 def message(node); end end @@ -18139,6 +18565,121 @@ RuboCop::Cop::Lint::DeprecatedOpenSSLConstant::NO_ARG_ALGORITHM = T.let(T.unsafe # pkg:gem/rubocop#lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb:36 RuboCop::Cop::Lint::DeprecatedOpenSSLConstant::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) +# Checks for calls to methods and references to constants that are documented +# as deprecated with a YARD `@deprecated` tag. +# +# The check is powered by the project-wide index, so it only runs when +# `AllCops/UseProjectIndex` is enabled and the `rubydex` gem is installed. +# Without the index the cop does nothing. +# +# Only references that can be resolved without type inference are checked: +# constants, method calls without an explicit receiver (or with `self`), +# which are looked up in the enclosing class or module and its ancestry, +# and calls whose receiver is a constant, which are looked up in that +# namespace's singleton class. Calls on arbitrary objects are not checked. +# +# References made from a definition that is itself deprecated are allowed, +# so deprecated implementations can keep calling each other. +# +# @example +# # Given a deprecated method and constant: +# # +# # class Api +# # # @deprecated Use `#new_method` instead. +# # def old_method +# # end +# # +# # # @deprecated +# # OLD_TIMEOUT = 10 +# # end +# +# # bad +# class Client < Api +# def call +# old_method +# end +# +# def timeout +# OLD_TIMEOUT +# end +# end +# +# # good +# class Client < Api +# def call +# new_method +# end +# +# def timeout +# NEW_TIMEOUT +# end +# end +# +# pkg:gem/rubocop#lib/rubocop/cop/lint/deprecated_reference.rb:56 +class RuboCop::Cop::Lint::DeprecatedReference < ::RuboCop::Cop::Base + include ::RuboCop::Cop::ProjectIndexHelp + + # pkg:gem/rubocop#lib/rubocop/cop/lint/deprecated_reference.rb:82 + def on_const(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/deprecated_reference.rb:80 + def on_csend(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/deprecated_reference.rb:65 + def on_new_investigation; end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/deprecated_reference.rb:70 + def on_send(node); end + + private + + # pkg:gem/rubocop#lib/rubocop/cop/lint/deprecated_reference.rb:117 + def const_receiver_declaration(node, receiver); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/deprecated_reference.rb:153 + def deprecated?(declaration); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/deprecated_reference.rb:175 + def deprecation_text(declaration); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/deprecated_reference.rb:168 + def detail_for(declaration); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/deprecated_reference.rb:124 + def enclosing_namespace(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/deprecated_reference.rb:106 + def implicit_receiver_declaration(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/deprecated_reference.rb:96 + def method_declaration_for(node); end + + # Whether an implicit-receiver call runs with the class or module itself + # as `self` (directly in a namespace body, in a singleton method, or + # inside `class << self`) rather than inside an instance method. + # + # pkg:gem/rubocop#lib/rubocop/cop/lint/deprecated_reference.rb:136 + def singleton_context?(node); end + + # References from a definition that is itself documented as deprecated + # are allowed. + # + # pkg:gem/rubocop#lib/rubocop/cop/lint/deprecated_reference.rb:161 + def within_deprecated_definition?(node); end +end + +# pkg:gem/rubocop#lib/rubocop/cop/lint/deprecated_reference.rb:60 +RuboCop::Cop::Lint::DeprecatedReference::CONSTANT_MSG = T.let(T.unsafe(nil), String) + +# pkg:gem/rubocop#lib/rubocop/cop/lint/deprecated_reference.rb:62 +RuboCop::Cop::Lint::DeprecatedReference::DEPRECATED_TAG = T.let(T.unsafe(nil), String) + +# pkg:gem/rubocop#lib/rubocop/cop/lint/deprecated_reference.rb:63 +RuboCop::Cop::Lint::DeprecatedReference::DEPRECATION_DETAIL = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/rubocop#lib/rubocop/cop/lint/deprecated_reference.rb:59 +RuboCop::Cop::Lint::DeprecatedReference::METHOD_MSG = T.let(T.unsafe(nil), String) + # Checks constructors for disjunctive assignments (`||=`) that should # be plain assignments. # @@ -18584,6 +19125,17 @@ RuboCop::Cop::Lint::DuplicateMatchPattern::MSG = T.let(T.unsafe(nil), String) # the developer intends to suppress Ruby's method redefinition warnings. # See https://bugs.ruby-lang.org/issues/13574. # +# By default the cop can only detect duplicates within a single file. +# When `AllCops/UseProjectIndex` is enabled and the `rubydex` gem is installed, +# the cop additionally consults the project-wide index and reports methods +# whose duplicate definition lives in another file. +# +# NOTE: The project index does not record whether a definition in another +# file is wrapped in a conditional, so a platform-specific redefinition in +# another file may still be reported. Aliasing the method to itself (see above) +# before redefining marks the redefinition as intentional and is respected +# across files. +# # @example # # # bad @@ -18692,115 +19244,218 @@ RuboCop::Cop::Lint::DuplicateMatchPattern::MSG = T.let(T.unsafe(nil), String) # delegate :foo, to: :bar # end # -# pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:121 +# @example DelegatingMethods: ['delegate', 'expose'] (default: ['delegate']) +# # A project's own `delegate`-shaped macros can be registered so the +# # methods they define are recognized (with +# # `AllCops/ActiveSupportExtensionsEnabled: true`). +# +# # bad +# def foo +# 1 +# end +# +# expose :foo, to: :bar +# +# pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:144 class RuboCop::Cop::Lint::DuplicateMethods < ::RuboCop::Cop::Base - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:127 + include ::RuboCop::Cop::ProjectIndexHelp + + # No `RESTRICT_ON_SEND`: the delegating method names are configurable + # (`DelegatingMethods`), so `on_send` must see every call. The handler + # returns quickly for calls that are not method definitions, and + # benchmarks show no measurable cost over the previous fixed list. + # + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:159 def initialize(config = T.unsafe(nil), options = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:167 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:211 def alias_method?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:201 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:255 + def class_new_block?(param0 = T.unsafe(nil)); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:248 def class_or_module_new_block?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:172 - def delegate_method?(param0 = T.unsafe(nil)); end + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:219 + def delegate_args(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:180 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:227 def delegator?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:190 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:237 def delegators?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:153 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:193 def method_alias?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:157 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:197 def on_alias(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:133 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:173 def on_def(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:141 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:181 def on_defs(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:207 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:166 + def on_new_investigation; end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:261 def on_send(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:198 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:245 def sym_name(param0 = T.unsafe(nil)); end private - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:317 + # Internal identity for an anonymous block, used as a scope key. + # Includes the source range's begin position to distinguish blocks + # that share the same line (e.g. two Class.new calls separated by `;`). + # The user-facing offense message still uses `source_location`, which + # shows only `path:line`. + # + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:618 + def anon_block_identity(anon_block); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:387 def anon_block_scope_id(anon_block); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:308 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:378 def anonymous_class_block(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:234 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:291 def check_const_receiver(node, name, const_name); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:241 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:545 + def check_cross_file_duplicate(node, method_name); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:298 def check_self_receiver(node, name); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:270 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:557 + def cross_file_prior_definition(method_name); end + + # An alias of the method alongside one of its definitions in another file may be + # the self-alias trick marking an intentional redefinition there, so no offense + # is registered. A genuine `alias` duplicate is still reported when the alias + # itself is inspected. + # + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:595 + def cross_file_self_alias_trick?(definitions); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:340 def delegate_prefix(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:395 + # Recognizing a delegating call as a method definition is Active + # Support behavior, so it stays gated on `ActiveSupportExtensionsEnabled` + # as it was when only `delegate` was supported. `DelegatingMethods` lets + # a project register its own `delegate`-shaped macros. + # + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:321 + def delegating_method?(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:326 + def delegating_methods; end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:604 + def first_indexed_definition(definitions); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:497 def found_attr(node, args, readable: T.unsafe(nil), writable: T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:286 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:356 def found_instance_method(node, name); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:344 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:427 def found_method(node, method_name, scope_id: T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:333 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:440 + def found_redefinition(node, method_name, key, scope); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:417 def found_sclass_method(node, name); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:282 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:352 def hash_value(node, key); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:300 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:370 def humanize_scope(scope); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:251 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:608 + def index_source_location(definition); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:582 + def indexed_declaration_definitions(namespace, name); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:568 + def indexed_definitions(owner, separator, name); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:308 def inside_condition?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:373 + # The self-alias trick (`alias foo foo` or `alias_method :foo, :foo` right before + # a `def`) suppresses Ruby's method redefinition warning, signaling an intentional + # redefinition of a method defined in another file. + # + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:454 + def intentional_cross_file_redefinition?(node, method_name, key); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:475 def location(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:405 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:507 def lookup_constant(node, const_name); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:255 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:312 def message_for_dup(node, method_name, key); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:365 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:467 def method_key(node, method_name); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:328 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:412 def named_receiver(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:381 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:483 def on_attr(node, attr_name, args); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:260 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:330 def on_delegate(node, method_names); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:423 + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:525 def qualified_name(enclosing, namespace, mod_name); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:437 + # When a Class.new block is passed as an argument to a named-receiver + # method call (e.g. T.cast(Class.new(Base) do ... end, ...)), the + # receiver-based scope id (e.g. "T.cast") is the same for every call, + # causing false positives for methods defined in distinct anonymous + # classes. Return nil so the block falls through to the unique + # source-location-based scope id. + # Module.new blocks are excluded because they may be intentionally + # mixed into the same target via prepend/include/extend. + # + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:406 + def scope_receiver(parent, anon_block); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:539 def source_location(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:460 + def track_self_alias(node, name); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:586 + def writer_attr_definition?(definition); end end -# pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:122 -RuboCop::Cop::Lint::DuplicateMethods::MSG = T.let(T.unsafe(nil), String) +# Method names the cop registers that can be looked up in the project index: +# a fully qualified namespace followed by `#` (instance) or `.` (singleton) +# and the method name. +# +# pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:152 +RuboCop::Cop::Lint::DuplicateMethods::INDEXABLE_METHOD_NAME = T.let(T.unsafe(nil), Regexp) -# pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:123 -RuboCop::Cop::Lint::DuplicateMethods::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) +# pkg:gem/rubocop#lib/rubocop/cop/lint/duplicate_methods.rb:147 +RuboCop::Cop::Lint::DuplicateMethods::MSG = T.let(T.unsafe(nil), String) # Checks for duplicate elements in `Regexp` character classes. # @@ -20415,6 +21070,11 @@ RuboCop::Cop::Lint::IneffectiveAccessModifier::MSG = T.let(T.unsafe(nil), String # exception class handle `StandardError` and its subclasses, # but not `Exception` and its subclasses. # +# When `AllCops/UseProjectIndex` is enabled and the `rubydex` gem is +# installed, indirect inheritance is also detected: a class whose parent +# (defined anywhere in the project) ultimately inherits from `Exception` +# is reported, without autocorrection. +# # @example EnforcedStyle: standard_error (default) # # bad # @@ -20441,42 +21101,61 @@ RuboCop::Cop::Lint::IneffectiveAccessModifier::MSG = T.let(T.unsafe(nil), String # # C = Class.new(RuntimeError) # -# pkg:gem/rubocop#lib/rubocop/cop/lint/inherit_exception.rb:40 +# pkg:gem/rubocop#lib/rubocop/cop/lint/inherit_exception.rb:45 class RuboCop::Cop::Lint::InheritException < ::RuboCop::Cop::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle + include ::RuboCop::Cop::ProjectIndexHelp extend ::RuboCop::Cop::AutoCorrector - # pkg:gem/rubocop#lib/rubocop/cop/lint/inherit_exception.rb:53 + # pkg:gem/rubocop#lib/rubocop/cop/lint/inherit_exception.rb:60 def class_new_call?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/inherit_exception.rb:59 + # pkg:gem/rubocop#lib/rubocop/cop/lint/inherit_exception.rb:66 def on_class(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/inherit_exception.rb:70 + # pkg:gem/rubocop#lib/rubocop/cop/lint/inherit_exception.rb:84 def on_send(node); end private - # pkg:gem/rubocop#lib/rubocop/cop/lint/inherit_exception.rb:87 + # pkg:gem/rubocop#lib/rubocop/cop/lint/inherit_exception.rb:121 + def exception_ancestor(declaration); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/inherit_exception.rb:101 def exception_class?(class_node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/inherit_exception.rb:91 + # pkg:gem/rubocop#lib/rubocop/cop/lint/inherit_exception.rb:127 + def exception_superclass_reference?(ancestor); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/inherit_exception.rb:137 def inherit_exception_class_with_omitted_namespace?(class_node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/inherit_exception.rb:83 + # When `AllCops/UseProjectIndex` is enabled, indirect inheritance is + # detected by walking the parent's indexed ancestry: `Exception` itself + # is not indexed, so a chain ending in it shows up as an ancestor whose + # superclass reference is unresolved and literally named `Exception`. + # Returns the name of that ancestor, or `nil`. + # + # pkg:gem/rubocop#lib/rubocop/cop/lint/inherit_exception.rb:110 + def inherits_exception_via(parent_class); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/inherit_exception.rb:97 def message(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/inherit_exception.rb:99 + # pkg:gem/rubocop#lib/rubocop/cop/lint/inherit_exception.rb:145 def preferred_base_class; end end -# pkg:gem/rubocop#lib/rubocop/cop/lint/inherit_exception.rb:44 +# pkg:gem/rubocop#lib/rubocop/cop/lint/inherit_exception.rb:51 +RuboCop::Cop::Lint::InheritException::INDIRECT_MSG = T.let(T.unsafe(nil), String) + +# pkg:gem/rubocop#lib/rubocop/cop/lint/inherit_exception.rb:50 RuboCop::Cop::Lint::InheritException::MSG = T.let(T.unsafe(nil), String) -# pkg:gem/rubocop#lib/rubocop/cop/lint/inherit_exception.rb:45 +# pkg:gem/rubocop#lib/rubocop/cop/lint/inherit_exception.rb:52 RuboCop::Cop::Lint::InheritException::PREFERRED_BASE_CLASS = T.let(T.unsafe(nil), Hash) -# pkg:gem/rubocop#lib/rubocop/cop/lint/inherit_exception.rb:50 +# pkg:gem/rubocop#lib/rubocop/cop/lint/inherit_exception.rb:57 RuboCop::Cop::Lint::InheritException::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Checks for interpolation in a single quoted string. @@ -21011,6 +21690,13 @@ RuboCop::Cop::Lint::MissingCopEnableDirective::MSG_BOUND = T.let(T.unsafe(nil), # `AllowedParentClasses` option to specify which classes should be allowed # *in addition to* `Object` and `BasicObject`. # +# When `AllCops/UseProjectIndex` is enabled and the `rubydex` gem is installed, +# the constructor check additionally consults the project-wide index: if the +# class' entire ancestry is resolvable and no ancestor defines `initialize`, +# no offense is registered, since `super` would only reach the no-op +# `Object#initialize`. Classes whose ancestry contains an unresolvable +# superclass or mixin (e.g. one defined in a gem) are still reported. +# # @example # # bad # class Employee < Person @@ -21072,54 +21758,65 @@ RuboCop::Cop::Lint::MissingCopEnableDirective::MSG_BOUND = T.let(T.unsafe(nil), # end # end # -# pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:85 +# pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:92 class RuboCop::Cop::Lint::MissingSuper < ::RuboCop::Cop::Base - # pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:99 + include ::RuboCop::Cop::ProjectIndexHelp + + # pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:108 def class_new_block(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:105 + # pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:114 def on_def(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:115 + # pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:124 def on_defs(node); end private - # pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:149 + # pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:159 def allowed_class?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:153 + # pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:163 def allowed_classes; end - # pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:127 + # pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:136 def callback_method_def?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:133 + # pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:142 def contains_super?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:137 + # With the project index, the offense is skipped when the class' whole ancestry + # is resolvable and none of the inherited ancestors defines `initialize` — + # `super` would only reach the no-op `Object#initialize`. An unresolvable + # superclass or mixin anywhere in the chain (e.g. a class from a gem) means + # the ancestry cannot be verified and the offense is kept. + # + # pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:172 + def index_verified_stateless_ancestry?(class_node); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:146 def inside_class_with_stateful_parent?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:123 + # pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:132 def offender?(node); end end -# pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:96 +# pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:105 RuboCop::Cop::Lint::MissingSuper::CALLBACKS = T.let(T.unsafe(nil), Set) -# pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:87 +# pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:96 RuboCop::Cop::Lint::MissingSuper::CALLBACK_MSG = T.let(T.unsafe(nil), String) -# pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:91 +# pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:100 RuboCop::Cop::Lint::MissingSuper::CLASS_LIFECYCLE_CALLBACKS = T.let(T.unsafe(nil), Array) -# pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:86 +# pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:95 RuboCop::Cop::Lint::MissingSuper::CONSTRUCTOR_MSG = T.let(T.unsafe(nil), String) -# pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:92 +# pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:101 RuboCop::Cop::Lint::MissingSuper::METHOD_LIFECYCLE_CALLBACKS = T.let(T.unsafe(nil), Array) -# pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:89 +# pkg:gem/rubocop#lib/rubocop/cop/lint/missing_super.rb:98 RuboCop::Cop::Lint::MissingSuper::STATELESS_CLASSES = T.let(T.unsafe(nil), Array) # Checks for mixed-case character ranges since they include likely unintended characters. @@ -21257,6 +21954,143 @@ RuboCop::Cop::Lint::MultipleComparison::RESTRICT_ON_SEND = T.let(T.unsafe(nil), # pkg:gem/rubocop#lib/rubocop/cop/lint/multiple_comparison.rb:25 RuboCop::Cop::Lint::MultipleComparison::SET_OPERATION_OPERATORS = T.let(T.unsafe(nil), Array) +# Checks for probable typos in constant and method names: a name that +# does not resolve anywhere in the project, used in a namespace the +# project does define, with a close-named sibling to suggest instead. +# +# The check is powered by the project-wide index, so it only runs when +# `AllCops/UseProjectIndex` is enabled and the `rubydex` gem is installed. +# Without the index the cop does nothing. +# +# Constants are checked only in qualified references (`Foo::Bar`) whose +# namespace resolves in the index; bare names cannot be distinguished +# from constants provided by gems or the standard library. Methods are +# checked only in calls on constant receivers (`Foo.bar`) whose entire +# indexed ancestry is resolved, so methods gained through gem classes or +# dynamic definitions never produce offenses. In both cases an offense +# requires a similarly named alternative to exist — an unknown name +# alone is not reported, since the index does not see gems or the +# standard library. +# +# Names that appear as symbols or inside string literals in the same +# file are never reported, since they usually belong to runtime +# definitions the index cannot see (`stub_const`, `const_set`, +# `define_method`, and the like). +# +# @example +# # bad - Services::UserCraetor is not defined, Services::UserCreator is +# Services::UserCraetor.new +# +# # good +# Services::UserCreator.new +# +# # bad - Report.generate_sumary is not defined, Report.generate_summary is +# Report.generate_sumary +# +# # good +# Report.generate_summary +# +# @example CheckConstants: false +# # good - constant references are not checked +# Services::UserCraetor.new +# +# @example CheckMethods: false +# # good - method calls are not checked +# Report.generate_sumary +# +# @example AllowedNames: ['generate_sumary'] +# # good - the name is explicitly allowed +# Report.generate_sumary +# +# pkg:gem/rubocop#lib/rubocop/cop/lint/name_typo.rb:60 +class RuboCop::Cop::Lint::NameTypo < ::RuboCop::Cop::Base + include ::RuboCop::Cop::ProjectIndexHelp + + # pkg:gem/rubocop#lib/rubocop/cop/lint/name_typo.rb:71 + def on_const(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/name_typo.rb:96 + def on_csend(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/name_typo.rb:98 + def on_new_investigation; end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/name_typo.rb:83 + def on_send(node); end + + private + + # pkg:gem/rubocop#lib/rubocop/cop/lint/name_typo.rb:115 + def allowed_name?(name); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/name_typo.rb:105 + def check?(key); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/name_typo.rb:109 + def checkable_constant?(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/name_typo.rb:199 + def constant_member_names(namespace); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/name_typo.rb:131 + def constant_typo_suggestion(node); end + + # `defined?(Foo::Bar)` probes whether a name exists; unknown names + # there are deliberate. + # + # pkg:gem/rubocop#lib/rubocop/cop/lint/name_typo.rb:127 + def defined_check?(node); end + + # The last segment of a class, module or constant definition is being + # defined, not referenced. + # + # pkg:gem/rubocop#lib/rubocop/cop/lint/name_typo.rb:121 + def definition_identifier?(node); end + + # Names mentioned as symbols or inside string literals in the current + # file belong to runtime definitions (`stub_const`, `const_set`, + # `define_method`) that the index cannot see. + # + # pkg:gem/rubocop#lib/rubocop/cop/lint/name_typo.rb:187 + def literal_names; end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/name_typo.rb:206 + def method_member_names(declaration); end + + # Writers are indexed under the reader's name, so setter calls are + # verified and spell-checked through the base name. + # + # pkg:gem/rubocop#lib/rubocop/cop/lint/name_typo.rb:145 + def method_typo_suggestion(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/name_typo.rb:174 + def responds_in_index?(declaration, name, base); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/name_typo.rb:170 + def setter_call?(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/name_typo.rb:215 + def spell_check(name, dictionary); end + + # The receiver's declaration when it resolves in the index, its whole + # ancestry is resolved, and the method is not found — nil otherwise. + # + # pkg:gem/rubocop#lib/rubocop/cop/lint/name_typo.rb:161 + def unknown_method_owner(node, base); end +end + +# pkg:gem/rubocop#lib/rubocop/cop/lint/name_typo.rb:63 +RuboCop::Cop::Lint::NameTypo::CONSTANT_MSG = T.let(T.unsafe(nil), String) + +# pkg:gem/rubocop#lib/rubocop/cop/lint/name_typo.rb:69 +RuboCop::Cop::Lint::NameTypo::LITERAL_IDENTIFIER_PATTERN = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/rubocop#lib/rubocop/cop/lint/name_typo.rb:68 +RuboCop::Cop::Lint::NameTypo::METHOD_MEMBER_REGEXP = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/rubocop#lib/rubocop/cop/lint/name_typo.rb:65 +RuboCop::Cop::Lint::NameTypo::METHOD_MSG = T.let(T.unsafe(nil), String) + # Checks for nested method definitions. # # @example @@ -22024,6 +22858,13 @@ RuboCop::Cop::Lint::NumberedParameterAssignment::NUM_PARAM_MSG = T.let(T.unsafe( # can't determine the type of `x`. If `x` is an `Array` or `String`, it doesn't perform # a numeric operation. # +# @safety +# This cop is unsafe because the autocorrection drops the operands, which +# discards any side effects of evaluating them and can change behavior when +# the result is not actually constant. For example, `x / x` raises +# `ZeroDivisionError` when `x` is `0`, and returns `Float::NAN` (not `1`) +# when `x` is `0.0`; replacing it with `1` silences that. +# # @example # # # bad @@ -22052,35 +22893,35 @@ RuboCop::Cop::Lint::NumberedParameterAssignment::NUM_PARAM_MSG = T.let(T.unsafe( # # good # x = 1 # -# pkg:gem/rubocop#lib/rubocop/cop/lint/numeric_operation_with_constant_result.rb:46 +# pkg:gem/rubocop#lib/rubocop/cop/lint/numeric_operation_with_constant_result.rb:53 class RuboCop::Cop::Lint::NumericOperationWithConstantResult < ::RuboCop::Cop::Base extend ::RuboCop::Cop::AutoCorrector - # pkg:gem/rubocop#lib/rubocop/cop/lint/numeric_operation_with_constant_result.rb:57 + # pkg:gem/rubocop#lib/rubocop/cop/lint/numeric_operation_with_constant_result.rb:64 def abbreviated_assignment_with_constant_result?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/numeric_operation_with_constant_result.rb:71 + # pkg:gem/rubocop#lib/rubocop/cop/lint/numeric_operation_with_constant_result.rb:78 def on_csend(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/numeric_operation_with_constant_result.rb:73 + # pkg:gem/rubocop#lib/rubocop/cop/lint/numeric_operation_with_constant_result.rb:80 def on_op_asgn(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/numeric_operation_with_constant_result.rb:60 + # pkg:gem/rubocop#lib/rubocop/cop/lint/numeric_operation_with_constant_result.rb:67 def on_send(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/numeric_operation_with_constant_result.rb:53 + # pkg:gem/rubocop#lib/rubocop/cop/lint/numeric_operation_with_constant_result.rb:60 def operation_with_constant_result?(param0 = T.unsafe(nil)); end private - # pkg:gem/rubocop#lib/rubocop/cop/lint/numeric_operation_with_constant_result.rb:84 + # pkg:gem/rubocop#lib/rubocop/cop/lint/numeric_operation_with_constant_result.rb:91 def constant_result?(lhs, operation, rhs); end end -# pkg:gem/rubocop#lib/rubocop/cop/lint/numeric_operation_with_constant_result.rb:49 +# pkg:gem/rubocop#lib/rubocop/cop/lint/numeric_operation_with_constant_result.rb:56 RuboCop::Cop::Lint::NumericOperationWithConstantResult::MSG = T.let(T.unsafe(nil), String) -# pkg:gem/rubocop#lib/rubocop/cop/lint/numeric_operation_with_constant_result.rb:50 +# pkg:gem/rubocop#lib/rubocop/cop/lint/numeric_operation_with_constant_result.rb:57 RuboCop::Cop::Lint::NumericOperationWithConstantResult::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Checks for unintended or-assignment to a constant. @@ -22212,9 +23053,6 @@ class RuboCop::Cop::Lint::OutOfRangeRegexpRef < ::RuboCop::Cop::Base # pkg:gem/rubocop#lib/rubocop/cop/lint/out_of_range_regexp_ref.rb:103 def check_regexp(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/out_of_range_regexp_ref.rb:123 - def nth_ref_receiver?(send_node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/out_of_range_regexp_ref.rb:114 def regexp_first_argument?(send_node); end @@ -23924,6 +24762,13 @@ RuboCop::Cop::Lint::ReturnInVoidContext::SCOPE_CHANGING_METHODS = T.let(T.unsafe # safe navigation operator after a safe navigation operator. # This cop checks for the problem outlined above. # +# @safety +# This cop's autocorrection is unsafe because it changes the behavior of +# the code: `x&.foo.bar` raises `NoMethodError` when `x` or `x&.foo` is `nil`, +# whereas the corrected `x&.foo&.bar` returns `nil` instead. The autocorrection +# also assumes that extending safe navigation through the chain is intended, +# while removing the first `&.` may be what was intended instead. +# # @example # # # bad @@ -23935,17 +24780,17 @@ RuboCop::Cop::Lint::ReturnInVoidContext::SCOPE_CHANGING_METHODS = T.let(T.unsafe # x&.foo&.bar # x&.foo || bar # -# pkg:gem/rubocop#lib/rubocop/cop/lint/safe_navigation_chain.rb:22 +# pkg:gem/rubocop#lib/rubocop/cop/lint/safe_navigation_chain.rb:29 class RuboCop::Cop::Lint::SafeNavigationChain < ::RuboCop::Cop::Base include ::RuboCop::Cop::AllowedMethods include ::RuboCop::Cop::NilMethods extend ::RuboCop::Cop::AutoCorrector extend ::RuboCop::Cop::TargetRubyVersion - # pkg:gem/rubocop#lib/rubocop/cop/lint/safe_navigation_chain.rb:33 + # pkg:gem/rubocop#lib/rubocop/cop/lint/safe_navigation_chain.rb:40 def bad_method?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/safe_navigation_chain.rb:42 + # pkg:gem/rubocop#lib/rubocop/cop/lint/safe_navigation_chain.rb:49 def on_send(node); end private @@ -23954,39 +24799,39 @@ class RuboCop::Cop::Lint::SafeNavigationChain < ::RuboCop::Cop::Base # @param [RuboCop::AST::SendNode] send_node # @return [String] # - # pkg:gem/rubocop#lib/rubocop/cop/lint/safe_navigation_chain.rb:85 + # pkg:gem/rubocop#lib/rubocop/cop/lint/safe_navigation_chain.rb:92 def add_safe_navigation_operator(offense_range:, send_node:); end # @param [RuboCop::Cop::Corrector] corrector # @param [Parser::Source::Range] offense_range # @param [RuboCop::AST::SendNode] send_node # - # pkg:gem/rubocop#lib/rubocop/cop/lint/safe_navigation_chain.rb:104 + # pkg:gem/rubocop#lib/rubocop/cop/lint/safe_navigation_chain.rb:111 def autocorrect(corrector, offense_range:, send_node:); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/safe_navigation_chain.rb:113 + # pkg:gem/rubocop#lib/rubocop/cop/lint/safe_navigation_chain.rb:120 def brackets?(send_node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/safe_navigation_chain.rb:126 + # pkg:gem/rubocop#lib/rubocop/cop/lint/safe_navigation_chain.rb:133 def operator_inside_collection_literal?(send_node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/safe_navigation_chain.rb:117 + # pkg:gem/rubocop#lib/rubocop/cop/lint/safe_navigation_chain.rb:124 def require_parentheses?(send_node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/safe_navigation_chain.rb:63 + # pkg:gem/rubocop#lib/rubocop/cop/lint/safe_navigation_chain.rb:70 def require_safe_navigation?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/safe_navigation_chain.rb:76 + # pkg:gem/rubocop#lib/rubocop/cop/lint/safe_navigation_chain.rb:83 def ternary_else_branch?(node, safe_nav); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/safe_navigation_chain.rb:70 + # pkg:gem/rubocop#lib/rubocop/cop/lint/safe_navigation_chain.rb:77 def ternary_safe_navigation?(node, safe_nav); end end -# pkg:gem/rubocop#lib/rubocop/cop/lint/safe_navigation_chain.rb:29 +# pkg:gem/rubocop#lib/rubocop/cop/lint/safe_navigation_chain.rb:36 RuboCop::Cop::Lint::SafeNavigationChain::MSG = T.let(T.unsafe(nil), String) -# pkg:gem/rubocop#lib/rubocop/cop/lint/safe_navigation_chain.rb:30 +# pkg:gem/rubocop#lib/rubocop/cop/lint/safe_navigation_chain.rb:37 RuboCop::Cop::Lint::SafeNavigationChain::PLUS_MINUS_METHODS = T.let(T.unsafe(nil), Array) # Checks that if safe navigation is used in an `&&` or `||` condition, @@ -25101,7 +25946,7 @@ class RuboCop::Cop::Lint::ToEnumArguments < ::RuboCop::Cop::Base private - # pkg:gem/rubocop#lib/rubocop/cop/lint/to_enum_arguments.rb:103 + # pkg:gem/rubocop#lib/rubocop/cop/lint/to_enum_arguments.rb:139 def argument_match?(send_arg, def_arg); end # pkg:gem/rubocop#lib/rubocop/cop/lint/to_enum_arguments.rb:61 @@ -25109,25 +25954,45 @@ class RuboCop::Cop::Lint::ToEnumArguments < ::RuboCop::Cop::Base # A splat or argument forwarding on the call side can expand to any arity. # - # pkg:gem/rubocop#lib/rubocop/cop/lint/to_enum_arguments.rb:90 + # pkg:gem/rubocop#lib/rubocop/cop/lint/to_enum_arguments.rb:92 def expandable_arguments?(arguments); end + # A call-side keyword splat or argument forwarding can expand to any set of keywords. + # + # pkg:gem/rubocop#lib/rubocop/cop/lint/to_enum_arguments.rb:118 + def expandable_keyword_arguments?(arguments); end + + # The enumerator re-invokes the method with these arguments, so passing + # unexpected keyword arguments raises `ArgumentError` at runtime. + # + # pkg:gem/rubocop#lib/rubocop/cop/lint/to_enum_arguments.rb:106 + def extra_keyword_arguments?(arguments, def_node); end + # The enumerator re-invokes the method with these arguments, so passing more # positional arguments than the method accepts raises `ArgumentError` at runtime. # - # pkg:gem/rubocop#lib/rubocop/cop/lint/to_enum_arguments.rb:79 + # pkg:gem/rubocop#lib/rubocop/cop/lint/to_enum_arguments.rb:81 def extra_positional_arguments?(arguments, def_node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/to_enum_arguments.rb:126 + # pkg:gem/rubocop#lib/rubocop/cop/lint/to_enum_arguments.rb:162 def keyword_hash_argument?(send_arg); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/to_enum_arguments.rb:94 + # pkg:gem/rubocop#lib/rubocop/cop/lint/to_enum_arguments.rb:132 + def keyword_parameters(def_node); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/to_enum_arguments.rb:124 + def passed_keyword_arguments(arguments); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/to_enum_arguments.rb:96 def positional_arguments(arguments); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/to_enum_arguments.rb:98 + # pkg:gem/rubocop#lib/rubocop/cop/lint/to_enum_arguments.rb:100 def positional_parameters(def_node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/to_enum_arguments.rb:85 + # pkg:gem/rubocop#lib/rubocop/cop/lint/to_enum_arguments.rb:113 + def variadic_keyword_parameters?(def_node); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/to_enum_arguments.rb:87 def variadic_parameters?(def_node); end end @@ -25164,6 +26029,9 @@ class RuboCop::Cop::Lint::ToJSON < ::RuboCop::Cop::Base # pkg:gem/rubocop#lib/rubocop/cop/lint/to_json.rb:32 def on_def(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/to_json.rb:48 + def on_defs(node); end end # pkg:gem/rubocop#lib/rubocop/cop/lint/to_json.rb:30 @@ -25689,7 +26557,7 @@ class RuboCop::Cop::Lint::UnreachableCode < ::RuboCop::Cop::Base # pkg:gem/rubocop#lib/rubocop/cop/lint/unreachable_code.rb:48 def after_block(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/unreachable_code.rb:71 + # pkg:gem/rubocop#lib/rubocop/cop/lint/unreachable_code.rb:76 def flow_command?(param0 = T.unsafe(nil)); end # pkg:gem/rubocop#lib/rubocop/cop/lint/unreachable_code.rb:52 @@ -25701,7 +26569,7 @@ class RuboCop::Cop::Lint::UnreachableCode < ::RuboCop::Cop::Base # pkg:gem/rubocop#lib/rubocop/cop/lint/unreachable_code.rb:46 def on_itblock(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/unreachable_code.rb:62 + # pkg:gem/rubocop#lib/rubocop/cop/lint/unreachable_code.rb:67 def on_kwbegin(node); end # pkg:gem/rubocop#lib/rubocop/cop/lint/unreachable_code.rb:45 @@ -25709,25 +26577,25 @@ class RuboCop::Cop::Lint::UnreachableCode < ::RuboCop::Cop::Base private - # pkg:gem/rubocop#lib/rubocop/cop/lint/unreachable_code.rb:108 + # pkg:gem/rubocop#lib/rubocop/cop/lint/unreachable_code.rb:113 def check_case(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/unreachable_code.rb:102 + # pkg:gem/rubocop#lib/rubocop/cop/lint/unreachable_code.rb:107 def check_if(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/unreachable_code.rb:82 + # pkg:gem/rubocop#lib/rubocop/cop/lint/unreachable_code.rb:87 def flow_expression?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/unreachable_code.rb:122 + # pkg:gem/rubocop#lib/rubocop/cop/lint/unreachable_code.rb:127 def instance_eval_block?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/unreachable_code.rb:66 + # pkg:gem/rubocop#lib/rubocop/cop/lint/unreachable_code.rb:71 def redefinable_flow_method?(method); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/unreachable_code.rb:118 + # pkg:gem/rubocop#lib/rubocop/cop/lint/unreachable_code.rb:123 def register_redefinition(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/unreachable_code.rb:126 + # pkg:gem/rubocop#lib/rubocop/cop/lint/unreachable_code.rb:131 def report_on_flow_command?(node); end end @@ -26184,6 +27052,116 @@ class RuboCop::Cop::Lint::UnusedMethodArgument < ::RuboCop::Cop::Base end end +# Checks for private instance methods that are not referenced anywhere +# in the project. +# +# The check is powered by the project-wide index, so it only runs when +# `AllCops/UseProjectIndex` is enabled and the `rubydex` gem is installed. +# Without the index the cop does nothing. +# +# A method counts as referenced when a call with its name appears anywhere +# in the indexed project (regardless of the receiver), when it is the source +# of an `alias`, or when its name appears in the same file as a symbol or +# inside a string literal (covering `send(:name)` and declarative DSLs like +# `before_action :name`). Methods defined in classes or modules with +# descendants are not checked, since they may be invoked through `super` +# or inherited dispatch, and neither are methods whose names are built +# dynamically (e.g. `send("do_#{action}")`). +# +# The cop is disabled by default because symbol-based references from +# *other* files (e.g. a Rails callback declared in a concern) cannot be +# detected and would be reported as false positives. It is best suited +# for occasional dead-code sweeps rather than permanent enforcement. +# +# @example +# # bad - `helper` is never referenced anywhere in the project +# class Service +# def call +# do_something +# end +# +# private +# +# def helper +# end +# end +# +# # good +# class Service +# def call +# do_something(helper) +# end +# +# private +# +# def helper +# end +# end +# +# pkg:gem/rubocop#lib/rubocop/cop/lint/unused_private_method.rb:52 +class RuboCop::Cop::Lint::UnusedPrivateMethod < ::RuboCop::Cop::Base + include ::RuboCop::Cop::ProjectIndexHelp + + # pkg:gem/rubocop#lib/rubocop/cop/lint/unused_private_method.rb:77 + def on_def(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/unused_private_method.rb:72 + def on_new_investigation; end + + private + + # pkg:gem/rubocop#lib/rubocop/cop/lint/unused_private_method.rb:91 + def checkable_declaration(node); end + + # Symbol literals and identifier-like tokens inside string literals in the + # current file, covering `send(:name)`, declarative DSLs like + # `before_action :name` and names embedded in strings (e.g. node-pattern + # `#helper` references). + # + # pkg:gem/rubocop#lib/rubocop/cop/lint/unused_private_method.rb:123 + def literal_names; end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/unused_private_method.rb:100 + def method_declaration(node, namespace_node); end + + # An override of an inherited method may be invoked polymorphically + # (e.g. a framework hook), even when no direct reference exists. + # + # pkg:gem/rubocop#lib/rubocop/cop/lint/unused_private_method.rb:146 + def override?(declaration, method_name); end + + # A method defined in a class or module with descendants may be invoked + # through `super` or inherited dispatch, which the index does not track. + # + # pkg:gem/rubocop#lib/rubocop/cop/lint/unused_private_method.rb:137 + def owner_with_descendants?(declaration); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/unused_private_method.rb:107 + def referenced?(method_name); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/unused_private_method.rb:113 + def referenced_names; end + + class << self + # The reference-name set is derived once per index and shared by the + # per-file cop instances. + # + # pkg:gem/rubocop#lib/rubocop/cop/lint/unused_private_method.rb:67 + def reference_names_cache; end + end +end + +# pkg:gem/rubocop#lib/rubocop/cop/lint/unused_private_method.rb:57 +RuboCop::Cop::Lint::UnusedPrivateMethod::IDENTIFIER_PATTERN = T.let(T.unsafe(nil), Regexp) + +# Methods invoked implicitly by the Ruby runtime. +# +# pkg:gem/rubocop#lib/rubocop/cop/lint/unused_private_method.rb:60 +RuboCop::Cop::Lint::UnusedPrivateMethod::IMPLICITLY_INVOKED_METHODS = T.let(T.unsafe(nil), Set) + +# pkg:gem/rubocop#lib/rubocop/cop/lint/unused_private_method.rb:55 +RuboCop::Cop::Lint::UnusedPrivateMethod::MSG = T.let(T.unsafe(nil), String) + # Identifies places where `URI.escape` can be replaced by # `CGI.escape`, `URI.encode_www_form`, or `URI.encode_www_form_component` # depending on your specific use case. @@ -26893,16 +27871,16 @@ RuboCop::Cop::Lint::UselessMethodDefinition::MSG = T.let(T.unsafe(nil), String) class RuboCop::Cop::Lint::UselessNumericOperation < ::RuboCop::Cop::Base extend ::RuboCop::Cop::AutoCorrector - # pkg:gem/rubocop#lib/rubocop/cop/lint/useless_numeric_operation.rb:54 + # pkg:gem/rubocop#lib/rubocop/cop/lint/useless_numeric_operation.rb:56 def on_csend(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/useless_numeric_operation.rb:56 + # pkg:gem/rubocop#lib/rubocop/cop/lint/useless_numeric_operation.rb:58 def on_op_asgn(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/useless_numeric_operation.rb:44 + # pkg:gem/rubocop#lib/rubocop/cop/lint/useless_numeric_operation.rb:48 def on_send(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/useless_numeric_operation.rb:42 + # pkg:gem/rubocop#lib/rubocop/cop/lint/useless_numeric_operation.rb:44 def useless_abbreviated_assignment?(param0 = T.unsafe(nil)); end # pkg:gem/rubocop#lib/rubocop/cop/lint/useless_numeric_operation.rb:39 @@ -27144,7 +28122,7 @@ class RuboCop::Cop::Lint::UselessRuby2Keywords < ::RuboCop::Cop::Base # `ruby2_keywords` is only allowed if there's a `restarg` and no keyword arguments # - # pkg:gem/rubocop#lib/rubocop/cop/lint/useless_ruby2_keywords.rb:122 + # pkg:gem/rubocop#lib/rubocop/cop/lint/useless_ruby2_keywords.rb:124 def allowed_arguments?(arguments); end # pkg:gem/rubocop#lib/rubocop/cop/lint/useless_ruby2_keywords.rb:109 @@ -27320,7 +28298,9 @@ RuboCop::Cop::Lint::UselessTimes::MSG = T.let(T.unsafe(nil), String) # pkg:gem/rubocop#lib/rubocop/cop/lint/useless_times.rb:29 RuboCop::Cop::Lint::UselessTimes::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) -# pkg:gem/rubocop#lib/rubocop/cop/lint/utils/nil_receiver_checker.rb:6 +# Utility classes for `Lint` department cops. +# +# pkg:gem/rubocop#lib/rubocop/cop/lint.rb:171 module RuboCop::Cop::Lint::Utils; end # Utility class that checks if the receiver can't be nil. @@ -27381,11 +28361,14 @@ RuboCop::Cop::Lint::Utils::NilReceiverChecker::NIL_METHODS = T.let(T.unsafe(nil) # enumerator.each { |item| item >= 2 } #=> [2, 3] # ---- # -# NOTE: Return values in assignment method definitions such as `def foo=(arg)` are -# detected because they are in a void context. However, autocorrection does not remove -# the return value, as that would change behavior. In such cases, whether to remove -# the return value or rename the method to something more appropriate should be left to -# the user. +# NOTE: The last expression in an assignment method definition such as `def foo=(arg)` +# is not flagged. Ruby discards it (the method returns its argument), but the method can +# still be called directly and its return value relied upon, so flagging it would be a +# false positive for this lint. +# +# NOTE: A constant used in a void context is flagged but not autocorrected, since +# referencing a constant can trigger autoloading side effects (e.g. forcing a file to +# load before a monkey-patch), so removing it may change behavior. # # @example CheckForMethodsWithNoSideEffects: false (default) # # bad @@ -27422,129 +28405,132 @@ RuboCop::Cop::Lint::Utils::NilReceiverChecker::NIL_METHODS = T.let(T.unsafe(nil) # do_something(some_array) # end # -# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:59 +# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:62 class RuboCop::Cop::Lint::Void < ::RuboCop::Cop::Base include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector - # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:98 + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:101 def on_begin(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:87 + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:90 def on_block(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:103 + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:106 def on_ensure(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:96 + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:99 def on_itblock(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:101 + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:104 def on_kwbegin(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:95 + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:98 def on_numblock(node); end private - # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:289 + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:300 def all_keys_entirely_literal?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:293 + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:304 def all_values_entirely_literal?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:267 + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:278 def autocorrect_nonmutating_send(corrector, node, suggestion); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:260 + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:267 def autocorrect_void_expression(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:247 + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:254 def autocorrect_void_op(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:109 + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:112 def check_begin(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:141 + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:144 def check_case_expression(case_node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:146 + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:149 def check_case_match_expression(case_node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:232 + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:235 def check_ensure(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:119 + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:122 def check_expression(expr); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:137 + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:140 def check_if_expression(if_node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:188 + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:191 def check_literal(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:214 + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:217 def check_nonmutating(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:198 + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:201 def check_self(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:170 + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:173 def check_var(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:206 + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:209 def check_void_expression(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:127 + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:130 def check_void_expression_nodes(expr); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:154 + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:157 def check_void_op(node, &block); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:276 + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:287 def entirely_literal?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:240 + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:243 def in_void_context?(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:250 + def setter_method?(node); end end -# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:72 +# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:75 RuboCop::Cop::Lint::Void::BINARY_OPERATORS = T.let(T.unsafe(nil), Array) -# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:66 +# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:69 RuboCop::Cop::Lint::Void::CONST_MSG = T.let(T.unsafe(nil), String) -# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:69 +# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:72 RuboCop::Cop::Lint::Void::EXPRESSION_MSG = T.let(T.unsafe(nil), String) -# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:67 +# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:70 RuboCop::Cop::Lint::Void::LIT_MSG = T.let(T.unsafe(nil), String) -# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:82 +# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:85 RuboCop::Cop::Lint::Void::METHODS_REPLACEABLE_BY_EACH = T.let(T.unsafe(nil), Array) -# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:84 +# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:87 RuboCop::Cop::Lint::Void::NONMUTATING_METHODS = T.let(T.unsafe(nil), Array) -# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:75 +# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:78 RuboCop::Cop::Lint::Void::NONMUTATING_METHODS_WITH_BANG_VERSION = T.let(T.unsafe(nil), Array) -# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:70 +# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:73 RuboCop::Cop::Lint::Void::NONMUTATING_MSG = T.let(T.unsafe(nil), String) -# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:74 +# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:77 RuboCop::Cop::Lint::Void::OPERATORS = T.let(T.unsafe(nil), Array) -# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:64 +# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:67 RuboCop::Cop::Lint::Void::OP_MSG = T.let(T.unsafe(nil), String) -# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:68 +# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:71 RuboCop::Cop::Lint::Void::SELF_MSG = T.let(T.unsafe(nil), String) -# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:73 +# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:76 RuboCop::Cop::Lint::Void::UNARY_OPERATORS = T.let(T.unsafe(nil), Array) -# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:65 +# pkg:gem/rubocop#lib/rubocop/cop/lint/void.rb:68 RuboCop::Cop::Lint::Void::VAR_MSG = T.let(T.unsafe(nil), String) # Common functionality for obtaining source ranges from regexp matches @@ -27727,8 +28713,13 @@ module RuboCop::Cop::MethodPreference def preferred_methods; end end -# pkg:gem/rubocop#lib/rubocop/cop/metrics/utils/repeated_csend_discount.rb:5 -module RuboCop::Cop::Metrics; end +# Cops for the `Metrics` department. The department's cops are registered for lazy loading +# and their files are loaded on demand. +# +# pkg:gem/rubocop#lib/rubocop/cop/metrics.rb:7 +module RuboCop::Cop::Metrics + extend ::RuboCop::Cop::LazyLoader +end # Checks that the ABC size of methods is not higher than the # configured maximum. The ABC size is based on assignments, branches @@ -28378,7 +29369,9 @@ RuboCop::Cop::Metrics::PerceivedComplexity::COUNTED_NODES = T.let(T.unsafe(nil), # pkg:gem/rubocop#lib/rubocop/cop/metrics/perceived_complexity.rb:44 RuboCop::Cop::Metrics::PerceivedComplexity::MSG = T.let(T.unsafe(nil), String) -# pkg:gem/rubocop#lib/rubocop/cop/metrics/utils/repeated_csend_discount.rb:6 +# Utility classes for `Metrics` department cops. +# +# pkg:gem/rubocop#lib/rubocop/cop/metrics.rb:22 module RuboCop::Cop::Metrics::Utils; end # > ABC is .. a software size metric .. computed by counting the number @@ -28657,8 +29650,13 @@ module RuboCop::Cop::Metrics::Utils::RepeatedCsendDiscount def reset_repeated_csend; end end -# pkg:gem/rubocop#lib/rubocop/cop/migration/department_name.rb:8 -module RuboCop::Cop::Migration; end +# Cops for the `Migration` department. The department's cops are registered for lazy loading +# and their files are loaded on demand. +# +# pkg:gem/rubocop#lib/rubocop/cop/migration.rb:7 +module RuboCop::Cop::Migration + extend ::RuboCop::Cop::LazyLoader +end # department name. # @@ -28677,19 +29675,16 @@ class RuboCop::Cop::Migration::DepartmentName < ::RuboCop::Cop::Base private - # pkg:gem/rubocop#lib/rubocop/cop/migration/department_name.rb:57 + # pkg:gem/rubocop#lib/rubocop/cop/migration/department_name.rb:53 def check_cop_name(name, comment, offset); end - # pkg:gem/rubocop#lib/rubocop/cop/migration/department_name.rb:79 + # pkg:gem/rubocop#lib/rubocop/cop/migration/department_name.rb:75 def contain_unexpected_character_for_department_name?(name); end - # pkg:gem/rubocop#lib/rubocop/cop/migration/department_name.rb:53 - def disable_comment_offset; end - - # pkg:gem/rubocop#lib/rubocop/cop/migration/department_name.rb:83 + # pkg:gem/rubocop#lib/rubocop/cop/migration/department_name.rb:79 def qualified_legacy_cop_name(cop_name); end - # pkg:gem/rubocop#lib/rubocop/cop/migration/department_name.rb:73 + # pkg:gem/rubocop#lib/rubocop/cop/migration/department_name.rb:69 def valid_content_token?(content_token); end end @@ -29053,8 +30048,13 @@ module RuboCop::Cop::MultilineLiteralBraceLayout def opening_brace_on_same_line?(node); end end -# pkg:gem/rubocop#lib/rubocop/cop/naming/accessor_method_name.rb:5 -module RuboCop::Cop::Naming; end +# Cops for the `Naming` department. The department's cops are registered for lazy loading +# and their files are loaded on demand. +# +# pkg:gem/rubocop#lib/rubocop/cop/naming.rb:7 +module RuboCop::Cop::Naming + extend ::RuboCop::Cop::LazyLoader +end # Avoid prefixing accessor method names with `get_` or `set_`. # Applies to both instance and class methods. @@ -29064,6 +30064,11 @@ module RuboCop::Cop::Naming; end # Getters (`get_attribute`) must have no arguments to be registered, # and setters (`set_attribute(value)`) must have exactly one. # +# When `AllCops/UseProjectIndex` is enabled and the `rubydex` gem is +# installed, methods that override a method defined by an ancestor +# elsewhere in the project are not reported, since renaming an override +# breaks the inherited contract. +# # @example # # bad # def set_attribute(value) @@ -29089,33 +30094,42 @@ module RuboCop::Cop::Naming; end # def set_value # end # -# pkg:gem/rubocop#lib/rubocop/cop/naming/accessor_method_name.rb:38 +# pkg:gem/rubocop#lib/rubocop/cop/naming/accessor_method_name.rb:43 class RuboCop::Cop::Naming::AccessorMethodName < ::RuboCop::Cop::Base - # pkg:gem/rubocop#lib/rubocop/cop/naming/accessor_method_name.rb:42 + include ::RuboCop::Cop::ProjectIndexHelp + + # pkg:gem/rubocop#lib/rubocop/cop/naming/accessor_method_name.rb:49 def on_def(node); end - # pkg:gem/rubocop#lib/rubocop/cop/naming/accessor_method_name.rb:50 + # pkg:gem/rubocop#lib/rubocop/cop/naming/accessor_method_name.rb:58 def on_defs(node); end private - # pkg:gem/rubocop#lib/rubocop/cop/naming/accessor_method_name.rb:66 + # pkg:gem/rubocop#lib/rubocop/cop/naming/accessor_method_name.rb:74 def bad_reader_name?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/naming/accessor_method_name.rb:70 + # pkg:gem/rubocop#lib/rubocop/cop/naming/accessor_method_name.rb:78 def bad_writer_name?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/naming/accessor_method_name.rb:54 + # pkg:gem/rubocop#lib/rubocop/cop/naming/accessor_method_name.rb:62 def message(node); end - # pkg:gem/rubocop#lib/rubocop/cop/naming/accessor_method_name.rb:62 + # When `AllCops/UseProjectIndex` is enabled, methods that override a + # method defined by an ancestor elsewhere in the project are not + # reported: renaming an override breaks the inherited contract. + # + # pkg:gem/rubocop#lib/rubocop/cop/naming/accessor_method_name.rb:87 + def overrides_inherited_method?(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/naming/accessor_method_name.rb:70 def proper_attribute_name?(node); end end -# pkg:gem/rubocop#lib/rubocop/cop/naming/accessor_method_name.rb:39 +# pkg:gem/rubocop#lib/rubocop/cop/naming/accessor_method_name.rb:46 RuboCop::Cop::Naming::AccessorMethodName::MSG_READER = T.let(T.unsafe(nil), String) -# pkg:gem/rubocop#lib/rubocop/cop/naming/accessor_method_name.rb:40 +# pkg:gem/rubocop#lib/rubocop/cop/naming/accessor_method_name.rb:47 RuboCop::Cop::Naming::AccessorMethodName::MSG_WRITER = T.let(T.unsafe(nil), String) # Checks for non-ascii characters in identifier and constant names. @@ -30527,6 +31541,11 @@ RuboCop::Cop::Naming::PredicateMethod::MSG_PREDICATE = T.let(T.unsafe(nil), Stri # offenses if the method has a Sorbet `sig` with a return type of # `T::Boolean`. Dynamic methods are not supported with this configuration. # +# When `AllCops/UseProjectIndex` is enabled and the `rubydex` gem is +# installed, methods that override a method defined by an ancestor +# elsewhere in the project are not reported, since renaming an override +# breaks the inherited contract. +# # @example NamePrefix: ['is_', 'has_', 'have_'] (default) # # bad # def is_even(value) @@ -30606,52 +31625,63 @@ RuboCop::Cop::Naming::PredicateMethod::MSG_PREDICATE = T.let(T.unsafe(nil), Stri # # good # def_node_matcher(:even?) { |value| } # -# pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:103 +# pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:108 class RuboCop::Cop::Naming::PredicatePrefix < ::RuboCop::Cop::Base + include ::RuboCop::Cop::ProjectIndexHelp include ::RuboCop::Cop::AllowedMethods - # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:107 + # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:113 def dynamic_method_define(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:126 + # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:145 + def offending_prefixes_for(node, method_name); end + + # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:132 def on_def(node); end - # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:139 + # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:151 def on_defs(node); end - # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:113 + # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:119 def on_send(node); end - # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:154 + # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:166 def sorbet_return_type(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:141 + # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:153 def validate_config; end private - # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:164 + # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:176 def allowed_method_name?(method_name, prefix); end - # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:172 + # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:184 def expected_name(method_name, prefix); end - # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:186 + # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:198 def forbidden_prefixes; end - # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:182 + # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:194 def message(method_name, new_name); end - # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:198 + # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:210 def method_definition_macro?(macro_name); end - # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:190 + # When `AllCops/UseProjectIndex` is enabled, methods that override a + # method defined by an ancestor elsewhere in the project are not + # reported: renaming an override breaks the inherited contract. + # + # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:217 + def overrides_inherited_method?(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:202 def predicate_prefixes; end - # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:158 + # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:170 def sorbet_sig?(node, return_type: T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:194 + # pkg:gem/rubocop#lib/rubocop/cop/naming/predicate_prefix.rb:206 def use_sorbet_sigs?; end end @@ -31006,7 +32036,7 @@ class RuboCop::Cop::Naming::VariableNumber < ::RuboCop::Cop::Base private - # pkg:gem/rubocop#lib/rubocop/cop/naming/variable_number.rb:142 + # pkg:gem/rubocop#lib/rubocop/cop/naming/variable_number.rb:144 def message(style); end end @@ -31072,7 +32102,7 @@ class RuboCop::Cop::Offense # @return [Integer] # comparison result # - # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:245 + # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:249 def <=>(other); end # @api public @@ -31080,22 +32110,22 @@ class RuboCop::Cop::Offense # @return [Boolean] # returns `true` if two offenses contain same attributes # - # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:226 + # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:230 def ==(other); end # @api private # - # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:175 + # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:181 def column; end # @api private # - # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:185 + # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:189 def column_length; end # @api private # - # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:209 + # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:213 def column_range; end # @api public @@ -31119,7 +32149,7 @@ class RuboCop::Cop::Offense # whether this offense can be automatically corrected via autocorrect. # This includes todo comments, for example when requested with `--disable-uncorrectable`. # - # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:116 + # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:124 def correctable?; end # @api public @@ -31130,7 +32160,7 @@ class RuboCop::Cop::Offense # whether this offense is automatically corrected via # autocorrect or a todo. # - # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:127 + # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:135 def corrected?; end # @api public @@ -31140,7 +32170,7 @@ class RuboCop::Cop::Offense # @return [Boolean] # whether this offense is automatically disabled via a todo. # - # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:137 + # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:145 def corrected_with_todo?; end # @api public @@ -31161,18 +32191,18 @@ class RuboCop::Cop::Offense # whether this offense was locally disabled with a # disable or todo where it occurred. # - # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:148 + # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:156 def disabled?; end - # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:232 + # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:236 def eql?(other); end # @api private # - # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:194 + # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:198 def first_line; end - # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:234 + # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:238 def hash; end # @api public @@ -31180,22 +32210,22 @@ class RuboCop::Cop::Offense # @return [Parser::Source::Range] # the range of the code that is highlighted # - # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:156 + # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:164 def highlighted_area; end # @api private # - # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:204 + # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:208 def last_column; end # @api private # - # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:199 + # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:203 def last_line; end # @api private # - # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:170 + # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:178 def line; end # @api public @@ -31211,10 +32241,10 @@ class RuboCop::Cop::Offense # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:28 def location; end - # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:101 + # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:107 def marshal_dump; end - # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:105 + # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:111 def marshal_load(array); end # @api public @@ -31236,7 +32266,7 @@ class RuboCop::Cop::Offense # outputting column numbers, we want them to start at 1. One # reason is that editors, such as Emacs, expect this. # - # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:218 + # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:222 def real_column; end # @api public @@ -31250,7 +32280,7 @@ class RuboCop::Cop::Offense # @api private # - # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:180 + # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:184 def source_line; end # @api private @@ -31261,7 +32291,7 @@ class RuboCop::Cop::Offense # @api private # This is just for debugging purpose. # - # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:163 + # pkg:gem/rubocop#lib/rubocop/cop/offense.rb:171 def to_s; end end @@ -31764,13 +32794,102 @@ RuboCop::Cop::PreferredDelimiters::PERCENT_LITERAL_TYPES = T.let(T.unsafe(nil), # # pkg:gem/rubocop#lib/rubocop/cop/mixin/project_index_help.rb:13 module RuboCop::Cop::ProjectIndexHelp - # pkg:gem/rubocop#lib/rubocop/cop/mixin/project_index_help.rb:20 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/project_index_help.rb:28 def external_dependency_checksum; end private - # pkg:gem/rubocop#lib/rubocop/cop/mixin/project_index_help.rb:30 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/project_index_help.rb:170 + def compute_project_index_signature; end + + # Returns the definitions among `definitions` that live in a file other than the + # one being inspected, ordered by path and line. Definitions without a `file://` + # URI (e.g. Rubydex's built-in declarations) are ignored. + # + # pkg:gem/rubocop#lib/rubocop/cop/mixin/project_index_help.rb:41 + def definitions_in_other_files(definitions); end + + # Whether every link of the declaration's ancestry is resolved in the + # index: no definition of any ancestor has an unresolved superclass or + # mixin reference. Unresolved links silently vanish from `ancestors`, + # so this is the completeness check that must pass before reasoning + # about what an ancestry does or does not define. `extend` mixins only + # affect the singleton class; pass `ignore_extend: true` when reasoning + # about instance-side ancestry only. + # + # pkg:gem/rubocop#lib/rubocop/cop/mixin/project_index_help.rb:129 + def fully_resolved_index_ancestry?(declaration, ignore_extend: T.unsafe(nil)); end + + # A namespace without any singleton method has no singleton-class + # declaration of its own, so the lookup starts from the first ancestor + # that has one; its `find_member` covers the rest of the chain. + # + # pkg:gem/rubocop#lib/rubocop/cop/mixin/project_index_help.rb:105 + def indexed_singleton_member(namespace, member_name); end + + # The declaration of `declaration`'s singleton class, or nil when no + # singleton method is defined on it anywhere in the project. + # + # pkg:gem/rubocop#lib/rubocop/cop/mixin/project_index_help.rb:98 + def indexed_singleton_of(declaration); end + + # Whether an ancestor of `scope` other than `scope` itself defines + # `member_name`. + # + # pkg:gem/rubocop#lib/rubocop/cop/mixin/project_index_help.rb:116 + def inherited_index_member?(scope, member_name); end + + # The lexical nesting the node's constants resolve through, outermost + # first. Only scopes whose *body* contains the node count: a class or + # module's identifier and superclass expression are evaluated before its + # scope exists, so ancestors reached through them are excluded. + # + # pkg:gem/rubocop#lib/rubocop/cop/mixin/project_index_help.rb:82 + def lexical_nesting_of(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/mixin/project_index_help.rb:53 + def prior_definition_in_other_file(definitions); end + + # pkg:gem/rubocop#lib/rubocop/cop/mixin/project_index_help.rb:161 def project_index_signature; end + + # Resolves a constant node the way Ruby does: the first segment through + # the lexical nesting and every following segment inside the previous + # one. (Qualified names cannot be passed to `resolve_constant` as a + # whole, since it only applies the nesting to the full name. Later + # segments use `find_member` — the namespace and its ancestors — since + # `resolve_constant` cannot take an already-resolved namespace as the + # scope, only names as they appear in source.) + # + # pkg:gem/rubocop#lib/rubocop/cop/mixin/project_index_help.rb:64 + def resolve_constant_in_index(const_node); end + + # pkg:gem/rubocop#lib/rubocop/cop/mixin/project_index_help.rb:144 + def resolved_mixin_references?(definition, ignore_extend: T.unsafe(nil)); end + + # pkg:gem/rubocop#lib/rubocop/cop/mixin/project_index_help.rb:138 + def resolved_superclass_reference?(definition); end + + # pkg:gem/rubocop#lib/rubocop/cop/mixin/project_index_help.rb:154 + def same_file?(path, other); end + + class << self + # The signature is a property of the index, not of the cop, and computing + # it stats every indexed file, so all cops sharing an index share one + # computation. A single-entry cache (instead of a hash keyed by index) + # avoids retaining stale graphs in long-lived processes. + # + # pkg:gem/rubocop#lib/rubocop/cop/mixin/project_index_help.rb:25 + def cached_index_signature; end + + # The signature is a property of the index, not of the cop, and computing + # it stats every indexed file, so all cops sharing an index share one + # computation. A single-entry cache (instead of a hash keyed by index) + # avoids retaining stale graphs in long-lived processes. + # + # pkg:gem/rubocop#lib/rubocop/cop/mixin/project_index_help.rb:25 + def cached_index_signature=(_arg0); end + end end # pkg:gem/rubocop#lib/rubocop/cop/mixin/project_index_help.rb:14 @@ -31905,84 +33024,114 @@ class RuboCop::Cop::Registry # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:51 def initialize(cops = T.unsafe(nil), options = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:237 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:290 def ==(other); end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:99 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:138 def contains_cop_matching?(names); end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:182 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:222 def cops; end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:229 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:280 def cops_for_department(department); end # @return [Boolean] Checks if given name is department # - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:95 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:134 def department?(name); end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:149 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:188 def department_missing?(badge, name); end # @return [Array] list of departments for current cops. # - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:79 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:104 def departments; end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:197 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:245 def disabled(config); end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:74 + # Returns the names of the disabled cops without loading any of them. + # + # @api private + # @return [Array] + # + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:253 + def disabled_names(config); end + + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:90 def dismiss(cop); end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:253 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:306 def each(&block); end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:193 + # Returns the enabled cop classes, loading lazy-loaded cops only when they are enabled. + # + # @return [Array] + # + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:236 def enabled(config); end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:201 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:260 def enabled?(cop, config); end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:217 - def enabled_pending_cop?(cop_cfg, config); end + # @param cop [Class, String, nil] the cop class or the qualified cop name + # + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:265 + def enabled_pending_cop?(cop_cfg, config, cop = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:70 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:86 def enlist(cop); end + # Returns a new registry containing the cops whose badge satisfies the given block, + # keeping lazy-loaded cops unloaded. + # + # @api private + # @return [Registry] + # + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:124 + def filter_by_badge(options = T.unsafe(nil)); end + # @param [String] cop_name # @return [Class, nil] # - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:259 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:312 def find_by_cop_name(cop_name); end # When a cop name is given returns a single-element array with the cop class. # When a department name is given returns an array with all the cop classes # for that department. # - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:268 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:323 def find_cops_by_directive(directive); end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:273 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:328 def freeze; end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:64 - def lazy_load(cop_name, constant_name); end + # Registers a cop by its badge and constant name without loading the class. + # The constant is resolved (loading the cop's file through `autoload`) only + # when the cop class itself is needed. + # + # @param badge [Badge, String] the badge, or the qualified cop name + # @param constant_name [String] the fully qualified constant name + # + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:75 + def lazy_load(badge, constant_name); end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:188 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:228 def length; end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:224 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:275 def names; end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:233 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:284 def names_for_department(department); end # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:49 def options; end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:153 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:192 def print_department_missing_warning(name, path); end # Convert a user provided cop name into a properly namespaced name @@ -32018,73 +33167,87 @@ class RuboCop::Cop::Registry # # @return [String] Qualified cop name # - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:135 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:174 def qualified_cop_name(name, path, warn: T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:168 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:208 def qualify_badge(badge); end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:249 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:302 def select(&block); end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:241 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:294 def sort!; end # @return [Hash{String => Array}] # - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:176 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:216 def to_h; end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:161 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:200 def unqualified_cop_names; end # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:49 def warnings; end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:286 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:341 def warnings?(path); end # @return [Registry] Cops for that specific department. # - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:85 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:110 def with_department(department); end # @return [Registry] Cops not for a specific department. # - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:90 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:115 def without_department(department); end + protected + + # Adds an already-loaded cop class or a lazy-load constant name under the given badge, + # used to build filtered copies. + # + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:349 + def add_entry(badge, cop_or_name); end + private - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:296 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:368 def clear_enrollment_queue; end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:331 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:441 def emit_warning(path, message); end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:292 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:385 + def enabled_cop_name?(cop_name, config); end + + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:356 def initialize_copy(reg); end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:306 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:401 def load_all_lazy_cops; end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:310 + # @return [Class, nil] the loaded cop class, or nil if the cop excluded + # itself from the registry while being loaded + # + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:410 def load_lazy_cop(badge); end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:336 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:446 def registered?(badge); end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:321 - def resolve_badge(given_badge, real_badge, source_path, warn: T.unsafe(nil)); end + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:380 + def registered_badges; end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:317 - def with(cops); end + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:431 + def resolve_badge(given_badge, real_badge, source_path, warn: T.unsafe(nil)); end class << self # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:22 def all; end - # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:283 + # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:338 def global; end # pkg:gem/rubocop#lib/rubocop/cop/registry.rb:44 @@ -32104,6 +33267,120 @@ class RuboCop::Cop::Registry end end +# Verifies that a candidate correction of the inspected source is a +# syntactic no-op: the corrected source must parse successfully and produce +# the same AST as the original. +# +# This turns "is this piece of syntax redundant?" questions into a +# parser-backed check instead of a hand-maintained enumeration of grammar +# rules: instead of modeling which constructs make (for example) a line +# continuation or a pair of parentheses significant, a cop can apply the +# correction and let the parser answer. +# +# Cops implement `#apply_reparse_correction(corrector, item)` and call +# `verified_by_reparse(items)`, which returns the items whose corrections +# are verified. Items sharing a reparse scope (the innermost method +# definition or class/module body, which parse standalone and cannot +# capture outer local variables) are verified together with a single +# reparse, falling back to per-item verification when the batch does not +# hold. Scope groups are keyed by node identity, since structurally +# identical definitions in different places must not share a group. +# +# Two hooks customize the comparison: +# +# * `normalize_reparsed_ast(node)` - loosen strict tree equality where a +# cop's correction is equivalence-preserving beyond parse identity (such +# laws must be justified per cop; the default compares trees as-is). +# * `preprocess_reparsed_source(source)` - rewrite both sides before +# parsing (e.g. to neutralize `__LINE__` when a correction legitimately +# shifts line numbers). +# +# `__FILE__` is handled by parsing with the original path, and fragments +# containing `__LINE__` are verified by reparsing both sides so that +# fragment line offsets cancel out. +# +# Note that comments are invisible to the AST, so corrections that may +# touch comment text must be guarded separately by the caller. +# +# pkg:gem/rubocop#lib/rubocop/cop/mixin/reparsed_equivalence.rb:39 +module RuboCop::Cop::ReparsedEquivalence + private + + # The corrections' edits are all contained within the scope, so the + # corrected fragment can be cut out of the corrected source by adjusting + # for the edits' length delta. + # + # pkg:gem/rubocop#lib/rubocop/cop/mixin/reparsed_equivalence.rb:139 + def corrected_scope_fragment(scope, corrected); end + + # Whether the exact correction for `item` produces source that still + # parses, without requiring an equivalent AST. For corrections that + # intentionally change the tree. + # + # pkg:gem/rubocop#lib/rubocop/cop/mixin/reparsed_equivalence.rb:66 + def correction_parses?(item); end + + # pkg:gem/rubocop#lib/rubocop/cop/mixin/reparsed_equivalence.rb:121 + def corrections_verify?(scope, items); end + + # pkg:gem/rubocop#lib/rubocop/cop/mixin/reparsed_equivalence.rb:93 + def item_range(item); end + + # Hook: loosen strict tree equality for corrections that are + # equivalence-preserving beyond parse identity. + # + # pkg:gem/rubocop#lib/rubocop/cop/mixin/reparsed_equivalence.rb:77 + def normalize_reparsed_ast(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/mixin/reparsed_equivalence.rb:159 + def normalized_original(original_source, original_ast); end + + # Both sides are parsed with the original path so that `__FILE__` + # resolves identically. The original side is reparsed (instead of using + # the already parsed node) when preprocessing altered it or it contains + # `__LINE__`, whose values would otherwise differ from a fragment parsed + # at a different line offset. + # + # pkg:gem/rubocop#lib/rubocop/cop/mixin/reparsed_equivalence.rb:151 + def parses_equivalently?(original_source, original_ast, corrected_source); end + + # Hook: rewrite both sides before parsing. + # + # pkg:gem/rubocop#lib/rubocop/cop/mixin/reparsed_equivalence.rb:82 + def preprocess_reparsed_source(source); end + + # The innermost scope that both contains `range` and parses standalone. + # Method definitions and class/module bodies neither capture outer local + # variables nor continue an outer expression; blocks and single + # statements do not qualify, since an outer local would reparse as a + # method call. + # + # pkg:gem/rubocop#lib/rubocop/cop/mixin/reparsed_equivalence.rb:102 + def reparse_scope(range); end + + # pkg:gem/rubocop#lib/rubocop/cop/mixin/reparsed_equivalence.rb:86 + def scope_groups(items); end + + # pkg:gem/rubocop#lib/rubocop/cop/mixin/reparsed_equivalence.rb:116 + def verification_too_large?(scope); end + + # Returns the items whose corrections are verified. `oversized` controls + # items whose reparse scope exceeds `MAX_VERIFICATION_FRAGMENT_SIZE`: + # `:report` accepts them unverified (for cops whose offense logic stands + # on its own and uses verification as a safety gate), `:verify` reparses + # regardless of size (for cops where verification is the offense logic). + # + # pkg:gem/rubocop#lib/rubocop/cop/mixin/reparsed_equivalence.rb:52 + def verified_by_reparse(items, oversized: T.unsafe(nil)); end +end + +# Above this size, verification does not reparse. What happens to such +# items depends on `oversized`; in practice only machine-generated files +# come near the limit. +# +# pkg:gem/rubocop#lib/rubocop/cop/mixin/reparsed_equivalence.rb:43 +RuboCop::Cop::ReparsedEquivalence::MAX_VERIFICATION_FRAGMENT_SIZE = T.let(T.unsafe(nil), Integer) + # Ensure a require statement is present for a standard library determined # by variable library_name # @@ -32192,8 +33469,13 @@ module RuboCop::Cop::SafeAssignment def safe_assignment_allowed?; end end -# pkg:gem/rubocop#lib/rubocop/cop/security/compound_hash.rb:5 -module RuboCop::Cop::Security; end +# Cops for the `Security` department. The department's cops are registered for lazy loading +# and their files are loaded on demand. +# +# pkg:gem/rubocop#lib/rubocop/cop/security.rb:7 +module RuboCop::Cop::Security + extend ::RuboCop::Cop::LazyLoader +end # Checks for implementations of the `hash` method which combine # values using custom logic instead of delegating to `Array#hash`. @@ -32680,49 +33962,72 @@ end module RuboCop::Cop::StatementModifier include ::RuboCop::Cop::Alignment include ::RuboCop::Cop::LineLengthHelp + include ::RuboCop::Cop::AllowedPattern private - # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:85 + # Rather than comparing the rendered modifier form against the bare + # maximum, ask the question `Layout/LineLength` would: a line the user's + # configuration exempts (`Layout/LineLength` disabled at that line, an + # allowed pattern, an allowed cop directive, an allowed URI) fits by + # definition. This keeps every modifier cop consistent with + # `Layout/LineLength` instead of each reimplementing part of its policy. + # + # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:55 + def acceptable_line_length?(line, line_number); end + + # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:68 + def allowed_by_uri?(line); end + + # `Layout/LineLength`'s allowed patterns, so a modifier line that the + # user has configured that cop to accept is not flagged for length here. + # + # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:81 + def allowed_patterns; end + + # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:121 def code_after(node); end - # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:103 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:139 def comment_disables_cop?(comment); end - # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:77 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:113 def first_line_comment(node); end - # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:57 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:93 def if_body_source(if_body); end - # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:43 - def length_in_modifier_form(node); end + # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:42 + def line_in_modifier_form(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:75 + def line_length_enabled_at_line?(line); end - # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:71 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:107 def method_source(if_body); end - # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:37 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:38 def modifier_fits_on_single_line?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:26 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:27 def non_eligible_body?(body); end - # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:33 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:34 def non_eligible_condition?(condition); end - # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:19 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:20 def non_eligible_node?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:65 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:101 def omitted_value_in_last_hash_arg?(if_body); end - # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:91 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:127 def parenthesize?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:11 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:12 def single_line_as_modifier?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:50 + # pkg:gem/rubocop#lib/rubocop/cop/mixin/statement_modifier.rb:86 def to_modifier_form(node); end end @@ -32777,8 +34082,13 @@ module RuboCop::Cop::StringLiteralsHelp def wrong_quotes?(src_or_node); end end -# pkg:gem/rubocop#lib/rubocop/cop/style/access_modifier_declarations.rb:5 -module RuboCop::Cop::Style; end +# Cops for the `Style` department. The department's cops are registered for lazy loading +# and their files are loaded on demand. +# +# pkg:gem/rubocop#lib/rubocop/cop/style.rb:7 +module RuboCop::Cop::Style + extend ::RuboCop::Cop::LazyLoader +end # Access modifiers should be declared to apply to a group of methods # or inline before each method, depending on configuration. @@ -33885,6 +35195,11 @@ RuboCop::Cop::Style::ArrayFirstLast::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Arr # only cases where exactly one argument is provided can be replaced with # `Array#intersect?` and are handled by this cop. # +# NOTE: In the block form, `include?` is only detected when its receiver is +# an array literal, because `include?` is defined with different semantics +# on many non-array classes (e.g. `String#include?` checks for substrings). +# `member?` does not have this restriction. +# # @safety # This cop cannot guarantee that `array1` and `array2` are # actually arrays while method `intersect?` is for arrays only. @@ -33902,7 +35217,7 @@ RuboCop::Cop::Style::ArrayFirstLast::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Arr # # # bad # array1.any? { |elem| array2.member?(elem) } -# array1.none? { |elem| array2.member?(elem) } +# array1.none? { |elem| [1, 2].include?(elem) } # # # good # array1.intersect?(array2) @@ -33935,69 +35250,72 @@ RuboCop::Cop::Style::ArrayFirstLast::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Arr # array1.intersect?(array2) # !array1.intersect?(array2) # -# pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:82 +# pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:87 class RuboCop::Cop::Style::ArrayIntersect < ::RuboCop::Cop::Base extend ::RuboCop::Cop::AutoCorrector extend ::RuboCop::Cop::TargetRubyVersion - # pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:119 + # pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:124 def any_none_block_intersection(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:94 + # pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:99 def bad_intersection_check?(param0 = T.unsafe(nil), param1); end - # pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:105 + # pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:110 def intersection_size_check?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:158 + # pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:163 def on_block(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:156 + # pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:161 def on_csend(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:168 + # pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:176 def on_itblock(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:167 + # pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:175 def on_numblock(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:142 + # pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:147 def on_send(node); end private - # pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:172 + # pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:180 def bad_intersection?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:177 + # pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:185 def bad_intersection_predicates; end - # pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:189 + # pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:208 def register_offense(node, replacement); end - # pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:185 + # pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:193 def straight?(method_name); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:197 + def uncorrectable_block_intersection?(node, method_name, argument, block_method); end end -# pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:89 +# pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:94 RuboCop::Cop::Style::ArrayIntersect::ACTIVE_SUPPORT_PREDICATES = T.let(T.unsafe(nil), Set) -# pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:91 +# pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:96 RuboCop::Cop::Style::ArrayIntersect::ARRAY_SIZE_METHODS = T.let(T.unsafe(nil), Set) -# pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:137 +# pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:142 RuboCop::Cop::Style::ArrayIntersect::MSG = T.let(T.unsafe(nil), String) -# pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:139 +# pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:144 RuboCop::Cop::Style::ArrayIntersect::NEGATED_METHODS = T.let(T.unsafe(nil), Array) -# pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:88 +# pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:93 RuboCop::Cop::Style::ArrayIntersect::PREDICATES = T.let(T.unsafe(nil), Set) -# pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:140 +# pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:145 RuboCop::Cop::Style::ArrayIntersect::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) -# pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:138 +# pkg:gem/rubocop#lib/rubocop/cop/style/array_intersect.rb:143 RuboCop::Cop::Style::ArrayIntersect::STRAIGHT_METHODS = T.let(T.unsafe(nil), Array) # Use `include?(element)` instead of `intersect?([element])`. @@ -34784,27 +36102,27 @@ RuboCop::Cop::Style::BlockDelimiters::BRACES_REQUIRED_MESSAGE = T.let(T.unsafe(n # Corrector to correct conditional assignment in `case` statements. # -# pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:611 +# pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:633 class RuboCop::Cop::Style::CaseCorrector extend ::RuboCop::Cop::Style::ConditionalAssignmentHelper extend ::RuboCop::Cop::Style::ConditionalCorrectorHelper class << self - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:616 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:638 def correct(corrector, cop, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:626 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:648 def move_assignment_inside_condition(corrector, node); end private - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:646 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:668 def extract_branches(case_node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:640 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:662 def extract_tail_branches(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:656 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:678 def move_branch_inside_condition(corrector, branch, condition, assignment, column); end end end @@ -35085,10 +36403,15 @@ RuboCop::Cop::Style::CharacterLiteral::MSG = T.let(T.unsafe(nil), String) # # Moving from `compact` to `nested` children requires knowledge of whether the # outer parent is a module or a class. Moving from `nested` to `compact` requires -# verification that the outer parent is defined elsewhere. RuboCop does not -# have the knowledge to perform either operation safely and thus requires +# verification that the outer parent is defined elsewhere. By default RuboCop does +# not have the knowledge to perform either operation safely and thus requires # manual oversight. # +# When `AllCops/UseProjectIndex` is enabled and the `rubydex` gem is installed, +# the project-wide index is consulted to resolve whether the outer parent is a +# class or a module, and compacting is skipped when the outer parent is not +# defined elsewhere. +# # @example EnforcedStyle: nested (default) # # bad # class Foo::Bar @@ -35113,95 +36436,118 @@ RuboCop::Cop::Style::CharacterLiteral::MSG = T.let(T.unsafe(nil), String) # # The compact style is only forced for classes/modules with one child. # -# pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:53 +# pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:58 class RuboCop::Cop::Style::ClassAndModuleChildren < ::RuboCop::Cop::Base include ::RuboCop::Cop::Alignment include ::RuboCop::Cop::ConfigurableEnforcedStyle + include ::RuboCop::Cop::ProjectIndexHelp include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector - # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:62 + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:68 def on_class(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:68 + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:74 def on_module(node); end private - # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:111 + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:136 def add_trailing_end(corrector, node, padding); end - # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:220 + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:276 def autocorrect(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:209 + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:265 def check_compact_style(node, body); end - # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:200 + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:256 def check_nested_style(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:182 + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:238 def check_style(node, body, style); end - # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:116 + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:141 def compact_definition(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:137 + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:192 def compact_identifier_name(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:122 + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:177 def compact_node(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:230 + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:286 def compact_node_name?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:127 + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:182 def compact_replacement(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:193 + # Compacting removes this definition of the namespace, so the result raises + # `NameError` at load time unless the namespace is also defined somewhere else. + # With the project index this is verified before correcting; without it the + # correction is performed regardless (the cop's autocorrection is unsafe). + # + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:156 + def compactible_namespace?(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:249 def const_namespace?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:168 + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:165 + def definition_elsewhere?(definition, node); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:119 + def heuristic_namespace_keyword(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:108 + def indexed_namespace_keyword(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:225 def leading_spaces(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:226 + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:104 + def namespace_keyword(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:282 def needs_compacting?(body); end - # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:84 + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:90 def nest_definition(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:74 + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:80 def nest_or_compact(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:143 + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:198 def remove_end(corrector, body); end - # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:93 - def replace_namespace_keyword(corrector, node); end - - # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:172 + # A tab counts as `configured_indentation_width` columns, matching the + # width `AlignmentCorrector` uses to convert `column_delta` back into + # tabs. Using `Layout/IndentationStyle`'s own `IndentationWidth` here + # would make the delta and the correction disagree. + # + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:233 def spaces_size(spaces_string); end - # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:102 + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:127 def split_on_double_colon(corrector, node, padding); end - # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:234 + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:294 def style_for_classes; end - # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:238 - def style_for_modules; end + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:290 + def style_for_kind(kind); end - # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:177 - def tab_indentation_width; end + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:298 + def style_for_modules; end - # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:156 + # pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:211 def unindent(corrector, node); end end -# pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:60 +# pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:66 RuboCop::Cop::Style::ClassAndModuleChildren::COMPACT_MSG = T.let(T.unsafe(nil), String) -# pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:59 +# pkg:gem/rubocop#lib/rubocop/cop/style/class_and_module_children.rb:65 RuboCop::Cop::Style::ClassAndModuleChildren::NESTED_MSG = T.let(T.unsafe(nil), String) # Enforces consistent use of `Object#is_a?` or `Object#kind_of?`. @@ -36634,80 +37980,87 @@ RuboCop::Cop::Style::ConcatArrayLiterals::RESTRICT_ON_SEND = T.let(T.unsafe(nil) class RuboCop::Cop::Style::ConditionalAssignment < ::RuboCop::Cop::Base include ::RuboCop::Cop::Style::ConditionalAssignmentHelper include ::RuboCop::Cop::ConfigurableEnforcedStyle + include ::RuboCop::Cop::ReparsedEquivalence extend ::RuboCop::Cop::AutoCorrector - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:218 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:219 def assignment_type?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:302 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:304 def candidate_condition?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:226 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:227 def on_and_asgn(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:254 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:255 def on_case(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:264 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:265 def on_case_match(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:226 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:227 def on_casgn(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:226 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:227 def on_cvasgn(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:226 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:227 def on_gvasgn(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:240 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:241 def on_if(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:226 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:227 def on_ivasgn(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:226 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:227 def on_lvasgn(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:226 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:227 def on_masgn(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:226 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:227 def on_op_asgn(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:226 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:227 def on_or_asgn(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:234 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:235 def on_send(node); end private - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:308 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:310 def allowed_single_line?(branches); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:382 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:404 def allowed_statements?(branches); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:304 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:306 def allowed_ternary?(assignment); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:312 + # `ReparsedEquivalence#correction_parses?` contract: apply the exact + # correction this cop would perform. + # + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:400 + def apply_reparse_correction(corrector, node); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:314 def assignment_node(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:359 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:361 def assignment_types_match?(*nodes); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:374 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:377 def autocorrect(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:297 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:299 def candidate_node?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:276 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:277 def check_assignment_to_condition(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:365 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:367 def check_node(node, branches); end # If `Layout/LineLength` is enabled, we do not want to introduce an @@ -36718,50 +38071,61 @@ class RuboCop::Cop::Style::ConditionalAssignment < ::RuboCop::Cop::Base # of the longest line + the length of the corrected assignment is # greater than the max configured line length # - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:398 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:420 def correction_exceeds_line_limit?(node, branches); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:421 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:443 def include_ternary?; end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:352 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:354 def lhs_all_match?(branches); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:410 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:432 def longest_line(node, assignment); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:406 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:428 def longest_line_exceeds_line_limit?(node, assignment); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:336 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:338 def move_assignment_inside_condition(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:326 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:328 def move_assignment_outside_condition(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:417 + # The correction rewrites the conditional structurally, so full AST + # equivalence cannot be asserted, but the result must at least reparse + # to valid Ruby. Applying the correction to a throwaway buffer here + # also exercises the branch-shape handling before an offense is even + # reported, so unusual branches that the corrector cannot handle are + # left alone instead of crashing or emitting invalid code - the bug + # class behind most of this cop's history. + # + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:392 + def safe_to_correct?(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:439 def single_line_conditions_only?; end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:348 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:350 def ternary_condition?(node); end end -# pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:211 +# pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:212 RuboCop::Cop::Style::ConditionalAssignment::ASSIGNMENT_TYPES = T.let(T.unsafe(nil), Array) -# pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:209 +# pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:210 RuboCop::Cop::Style::ConditionalAssignment::ASSIGN_TO_CONDITION_MSG = T.let(T.unsafe(nil), String) -# pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:212 +# pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:213 RuboCop::Cop::Style::ConditionalAssignment::ENABLED = T.let(T.unsafe(nil), String) -# pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:208 +# pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:209 RuboCop::Cop::Style::ConditionalAssignment::MSG = T.let(T.unsafe(nil), String) -# pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:213 +# pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:214 RuboCop::Cop::Style::ConditionalAssignment::SINGLE_LINE_CONDITIONS_ONLY = T.let(T.unsafe(nil), String) -# pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:210 +# pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:211 RuboCop::Cop::Style::ConditionalAssignment::VARIABLE_ASSIGNMENT_TYPES = T.let(T.unsafe(nil), Array) # Helper module to provide common methods to classes needed for the @@ -36827,27 +38191,27 @@ RuboCop::Cop::Style::ConditionalAssignmentHelper::KEYWORD = T.let(T.unsafe(nil), # Helper module to provide common methods to ConditionalAssignment # correctors # -# pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:428 +# pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:450 module RuboCop::Cop::Style::ConditionalCorrectorHelper - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:466 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:488 def assignment(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:495 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:517 def correct_branches(corrector, branches); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:472 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:494 def correct_if_branches(corrector, cop, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:430 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:452 def remove_whitespace_in_branches(corrector, branch, condition, column); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:482 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:504 def replace_branch_assignment(corrector, branch); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:451 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:473 def same_line?(node1, node2); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:455 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:477 def white_space_range(node, column); end end @@ -36938,39 +38302,39 @@ class RuboCop::Cop::Style::Copyright < ::RuboCop::Cop::Base include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector - # pkg:gem/rubocop#lib/rubocop/cop/style/copyright.rb:28 + # pkg:gem/rubocop#lib/rubocop/cop/style/copyright.rb:29 def on_new_investigation; end private - # pkg:gem/rubocop#lib/rubocop/cop/style/copyright.rb:45 + # pkg:gem/rubocop#lib/rubocop/cop/style/copyright.rb:50 def autocorrect(corrector); end - # pkg:gem/rubocop#lib/rubocop/cop/style/copyright.rb:114 + # pkg:gem/rubocop#lib/rubocop/cop/style/copyright.rb:119 def autocorrect_notice; end - # pkg:gem/rubocop#lib/rubocop/cop/style/copyright.rb:86 + # pkg:gem/rubocop#lib/rubocop/cop/style/copyright.rb:91 def encoding_token?(processed_source, token_index); end - # pkg:gem/rubocop#lib/rubocop/cop/style/copyright.rb:72 + # pkg:gem/rubocop#lib/rubocop/cop/style/copyright.rb:77 def insert_notice_before(processed_source); end - # pkg:gem/rubocop#lib/rubocop/cop/style/copyright.rb:52 + # pkg:gem/rubocop#lib/rubocop/cop/style/copyright.rb:57 def normalized_autocorrect_notice; end - # pkg:gem/rubocop#lib/rubocop/cop/style/copyright.rb:110 + # pkg:gem/rubocop#lib/rubocop/cop/style/copyright.rb:115 def notice; end - # pkg:gem/rubocop#lib/rubocop/cop/style/copyright.rb:93 + # pkg:gem/rubocop#lib/rubocop/cop/style/copyright.rb:98 def notice_found?(processed_source); end - # pkg:gem/rubocop#lib/rubocop/cop/style/copyright.rb:106 + # pkg:gem/rubocop#lib/rubocop/cop/style/copyright.rb:111 def notice_regexp; end - # pkg:gem/rubocop#lib/rubocop/cop/style/copyright.rb:79 + # pkg:gem/rubocop#lib/rubocop/cop/style/copyright.rb:84 def shebang_token?(processed_source, token_index); end - # pkg:gem/rubocop#lib/rubocop/cop/style/copyright.rb:61 + # pkg:gem/rubocop#lib/rubocop/cop/style/copyright.rb:66 def verify_autocorrect_notice!; end end @@ -37295,6 +38659,16 @@ RuboCop::Cop::Style::DirEmpty::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # # Specific cops can be allowed with the `AllowedCops` configuration. Note that # +# Alternatively, specific cops can be disallowed with the `DisallowedCops` +# configuration. When `DisallowedCops` is set, only directives for the listed +# cops (and `all`) will be flagged. This is useful when you want +# to protect a small set of critical cops from being disabled rather than +# allowlisting all other cops. `AllowedCops` and `DisallowedCops` should not +# both be set at the same time; if `DisallowedCops` is set, it takes precedence. +# +# This cop cannot be disabled via directive comments when it is explicitly +# enabled with `Enabled: true`. This prevents users from bypassing the cop +# # @example # # bad # def foo @@ -37309,32 +38683,45 @@ RuboCop::Cop::Style::DirEmpty::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # def foo # end # -# pkg:gem/rubocop#lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb:33 +# @example DisallowedCops: [Lint/Void] +# # bad +# foo +# +# # good +# foo +# +# pkg:gem/rubocop#lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb:55 class RuboCop::Cop::Style::DisableCopsWithinSourceCodeDirective < ::RuboCop::Cop::Base extend ::RuboCop::Cop::AutoCorrector - # pkg:gem/rubocop#lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb:40 + # pkg:gem/rubocop#lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb:62 def on_new_investigation; end private - # pkg:gem/rubocop#lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb:77 + # pkg:gem/rubocop#lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb:111 def allowed_cops; end - # pkg:gem/rubocop#lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb:81 + # pkg:gem/rubocop#lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb:115 def any_cops_allowed?; end - # pkg:gem/rubocop#lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb:72 + # pkg:gem/rubocop#lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb:75 + def compute_disallowed_cops(directive_cops); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb:106 def directive_cops(comment); end - # pkg:gem/rubocop#lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb:53 + # pkg:gem/rubocop#lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb:119 + def disallowed_cops_config; end + + # pkg:gem/rubocop#lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb:87 def register_offense(comment, directive_cops, disallowed_cops); end end -# pkg:gem/rubocop#lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb:37 +# pkg:gem/rubocop#lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb:59 RuboCop::Cop::Style::DisableCopsWithinSourceCodeDirective::MSG = T.let(T.unsafe(nil), String) -# pkg:gem/rubocop#lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb:38 +# pkg:gem/rubocop#lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb:60 RuboCop::Cop::Style::DisableCopsWithinSourceCodeDirective::MSG_FOR_COPS = T.let(T.unsafe(nil), String) # When using `class_eval` (or other `eval`) with string interpolation, @@ -37462,6 +38849,11 @@ RuboCop::Cop::Style::DocumentDynamicEvalDefinition::RESTRICT_ON_SEND = T.let(T.u # The documentation requirement is annulled if the class or module has # same for all its children. # +# When `AllCops/UseProjectIndex` is enabled and the `rubydex` gem is +# installed, a reopened class or module is not reported when any of its +# other definition sites (in the same or another file) carries a +# documentation comment. +# # @example # # bad # class Person @@ -37518,75 +38910,98 @@ RuboCop::Cop::Style::DocumentDynamicEvalDefinition::RESTRICT_ON_SEND = T.let(T.u # end # end # -# pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:72 +# pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:77 class RuboCop::Cop::Style::Documentation < ::RuboCop::Cop::Base include ::RuboCop::Cop::DocumentationComment + include ::RuboCop::Cop::ProjectIndexHelp include ::RuboCop::Cop::RangeHelp - # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:79 + # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:89 def constant_definition?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:85 + # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:95 def constant_visibility_declaration?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:90 + # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:100 def include_statement?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:94 + # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:104 def on_class(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:100 + # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:110 def on_module(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:82 + # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:92 def outer_module(param0); end private - # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:174 + # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:127 + def add_documentation_offense(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:221 def allowed_constants; end - # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:106 + # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:116 def check(node, body); end - # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:147 + # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:194 def compact_namespace?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:143 + # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:190 def constant_allowed?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:139 + # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:186 def constant_declaration?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:178 + # A reopened class or module is typically documented at a single + # definition site. When `AllCops/UseProjectIndex` is enabled, the + # documentation requirement is satisfied by a comment on any other + # definition of the same class or module. + # + # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:137 + def documented_elsewhere?(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:158 + def documenting_comments?(definition); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:225 def identifier(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:123 + # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:170 def include_statement_only?(body); end - # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:129 + # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:176 def namespace?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:170 + # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:217 def nodoc(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:166 + # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:213 def nodoc?(comment, require_all: T.unsafe(nil)); end # Note: How end-of-line comments are associated with code changed in # parser-2.2.0.4. # - # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:156 + # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:203 def nodoc_comment?(node, require_all: T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:118 + # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:165 def nodoc_self_or_outer_module?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:186 + # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:150 + def other_definition?(definition, node); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:233 def qualify_const(node); end end -# pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:76 +# Comments that configure tooling rather than document the code. +# +# pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:85 +RuboCop::Cop::Style::Documentation::DIRECTIVE_COMMENT_REGEXP = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/rubocop#lib/rubocop/cop/style/documentation.rb:82 RuboCop::Cop::Style::Documentation::MSG = T.let(T.unsafe(nil), String) # Checks for missing documentation comment for public methods. @@ -37709,7 +39124,7 @@ class RuboCop::Cop::Style::DocumentationMethod < ::RuboCop::Cop::Base private - # pkg:gem/rubocop#lib/rubocop/cop/style/documentation_method.rb:146 + # pkg:gem/rubocop#lib/rubocop/cop/style/documentation_method.rb:150 def allowed_methods; end # pkg:gem/rubocop#lib/rubocop/cop/style/documentation_method.rb:130 @@ -38862,16 +40277,13 @@ class RuboCop::Cop::Style::EndlessMethod < ::RuboCop::Cop::Base private - # pkg:gem/rubocop#lib/rubocop/cop/style/endless_method.rb:229 + # pkg:gem/rubocop#lib/rubocop/cop/style/endless_method.rb:219 def arguments(node, missing = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/style/endless_method.rb:233 + # pkg:gem/rubocop#lib/rubocop/cop/style/endless_method.rb:223 def can_be_made_endless?(node); end # pkg:gem/rubocop#lib/rubocop/cop/style/endless_method.rb:209 - def correct_to_multiline(corrector, node); end - - # pkg:gem/rubocop#lib/rubocop/cop/style/endless_method.rb:219 def endless_replacement(node); end # pkg:gem/rubocop#lib/rubocop/cop/style/endless_method.rb:164 @@ -38886,13 +40298,13 @@ class RuboCop::Cop::Style::EndlessMethod < ::RuboCop::Cop::Base # pkg:gem/rubocop#lib/rubocop/cop/style/endless_method.rb:173 def handle_require_single_line_style(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/endless_method.rb:245 + # pkg:gem/rubocop#lib/rubocop/cop/style/endless_method.rb:235 def modifier_offset(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/endless_method.rb:225 + # pkg:gem/rubocop#lib/rubocop/cop/style/endless_method.rb:215 def receiver(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/endless_method.rb:237 + # pkg:gem/rubocop#lib/rubocop/cop/style/endless_method.rb:227 def too_long_when_made_endless?(node); end # pkg:gem/rubocop#lib/rubocop/cop/style/endless_method.rb:202 @@ -40777,6 +42189,7 @@ class RuboCop::Cop::Style::GuardClause < ::RuboCop::Cop::Base include ::RuboCop::Cop::MinBodyLength include ::RuboCop::Cop::Alignment include ::RuboCop::Cop::LineLengthHelp + include ::RuboCop::Cop::AllowedPattern include ::RuboCop::Cop::StatementModifier extend ::RuboCop::Cop::AutoCorrector @@ -40978,12 +42391,15 @@ class RuboCop::Cop::Style::HashConversion < ::RuboCop::Cop::Base private - # pkg:gem/rubocop#lib/rubocop/cop/style/hash_conversion.rb:145 + # pkg:gem/rubocop#lib/rubocop/cop/style/hash_conversion.rb:153 def allowed_splat_argument?; end - # pkg:gem/rubocop#lib/rubocop/cop/style/hash_conversion.rb:138 + # pkg:gem/rubocop#lib/rubocop/cop/style/hash_conversion.rb:146 def args_to_hash(args); end + # pkg:gem/rubocop#lib/rubocop/cop/style/hash_conversion.rb:135 + def correct_multi_argument(node); end + # pkg:gem/rubocop#lib/rubocop/cop/style/hash_conversion.rb:123 def multi_argument(node); end @@ -41384,7 +42800,7 @@ class RuboCop::Cop::Style::HashLookupMethod < ::RuboCop::Cop::Base private - # pkg:gem/rubocop#lib/rubocop/cop/style/hash_lookup_method.rb:94 + # pkg:gem/rubocop#lib/rubocop/cop/style/hash_lookup_method.rb:90 def correct_brackets_to_fetch(corrector, node); end # pkg:gem/rubocop#lib/rubocop/cop/style/hash_lookup_method.rb:84 @@ -41946,7 +43362,7 @@ class RuboCop::Cop::Style::IdenticalConditionalBranches < ::RuboCop::Cop::Base # pkg:gem/rubocop#lib/rubocop/cop/style/identical_conditional_branches.rb:218 def correct_assignment(corrector, node, expression, insert_position); end - # pkg:gem/rubocop#lib/rubocop/cop/style/identical_conditional_branches.rb:228 + # pkg:gem/rubocop#lib/rubocop/cop/style/identical_conditional_branches.rb:230 def correct_no_assignment(corrector, node, expression, insert_position); end # pkg:gem/rubocop#lib/rubocop/cop/style/identical_conditional_branches.rb:173 @@ -41955,22 +43371,29 @@ class RuboCop::Cop::Style::IdenticalConditionalBranches < ::RuboCop::Cop::Base # `elsif` branches show up in the if node as nested `else` branches. We # need to recursively iterate over all `else` branches. # - # pkg:gem/rubocop#lib/rubocop/cop/style/identical_conditional_branches.rb:252 + # pkg:gem/rubocop#lib/rubocop/cop/style/identical_conditional_branches.rb:263 def expand_elses(branch); end - # pkg:gem/rubocop#lib/rubocop/cop/style/identical_conditional_branches.rb:267 + # pkg:gem/rubocop#lib/rubocop/cop/style/identical_conditional_branches.rb:278 def head(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/identical_conditional_branches.rb:236 + # The leading indentation of the line the conditional starts on, so a + # hoisted expression keeps the surrounding nesting instead of landing + # at column zero. + # + # pkg:gem/rubocop#lib/rubocop/cop/style/identical_conditional_branches.rb:243 + def indentation_of(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/identical_conditional_branches.rb:247 def last_child_of_parent?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/identical_conditional_branches.rb:246 + # pkg:gem/rubocop#lib/rubocop/cop/style/identical_conditional_branches.rb:257 def message(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/identical_conditional_branches.rb:242 + # pkg:gem/rubocop#lib/rubocop/cop/style/identical_conditional_branches.rb:253 def single_child_branch?(branch_node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/identical_conditional_branches.rb:263 + # pkg:gem/rubocop#lib/rubocop/cop/style/identical_conditional_branches.rb:274 def tail(node); end end @@ -41979,24 +43402,24 @@ RuboCop::Cop::Style::IdenticalConditionalBranches::MSG = T.let(T.unsafe(nil), St # Corrector to correct conditional assignment in `if` statements. # -# pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:564 +# pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:586 class RuboCop::Cop::Style::IfCorrector extend ::RuboCop::Cop::Style::ConditionalAssignmentHelper extend ::RuboCop::Cop::Style::ConditionalCorrectorHelper class << self - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:569 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:591 def correct(corrector, cop, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:573 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:595 def move_assignment_inside_condition(corrector, node); end private - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:587 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:609 def extract_tail_branches(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:594 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:616 def move_branch_inside_condition(corrector, branch, condition, assignment, column); end end end @@ -42167,126 +43590,114 @@ RuboCop::Cop::Style::IfInsideElse::MSG = T.let(T.unsafe(nil), String) class RuboCop::Cop::Style::IfUnlessModifier < ::RuboCop::Cop::Base include ::RuboCop::Cop::Alignment include ::RuboCop::Cop::LineLengthHelp - include ::RuboCop::Cop::StatementModifier include ::RuboCop::Cop::AllowedPattern + include ::RuboCop::Cop::StatementModifier include ::RuboCop::Cop::RangeHelp include ::RuboCop::Cop::CommentsHelp extend ::RuboCop::Cop::AutoCorrector - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:93 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:95 def on_if(node); end private - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:191 - def allowed_patterns; end - - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:284 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:243 def another_modifier_if_on_same_line?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:298 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:257 def another_statement_on_same_line?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:152 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:154 def autocorrect(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:278 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:237 def collection_from_ancestor(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:352 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:311 def comment_on_node_line(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:126 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:128 def defined_argument_is_undefined?(if_node, defined_node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:118 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:120 def defined_nodes(condition); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:114 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:116 def endless_method?(body); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:339 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:298 def extract_heredoc_from(last_argument); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:271 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:230 def find_containing_collection(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:235 - def line_length_enabled_at_line?(line); end - - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:144 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:146 def message(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:248 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:207 def multiline_inside_collection?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:239 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:198 def named_capture_in_condition?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:243 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:202 def non_eligible_node?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:294 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:253 def non_simple_if_unless?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:136 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:138 def pattern_matching_nodes(condition); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:356 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:315 def remove_comment(corrector, _node, comment); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:346 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:305 def remove_heredoc(corrector, heredoc); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:161 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:163 def replacement_for_modifier_form(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:267 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:226 def shares_line_with?(inner, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:255 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:214 def sibling_if_shares_line?(child, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:332 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:291 def to_modifier_form_with_move_comment(node, indentation, comment); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:312 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:271 def to_normal_form(node, indentation); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:320 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:279 def to_normal_form_with_heredoc(node, indentation, heredoc); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:185 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:187 def too_long_due_to_comment_after_modifier?(node, comment); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:180 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:182 def too_long_due_to_modifier?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:218 - def too_long_line_based_on_allow_cop_directives?(range, line); end - - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:226 - def too_long_line_based_on_allow_uri?(line); end - - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:209 - def too_long_line_based_on_config?(range, line); end - - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:196 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:193 def too_long_single_line?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:260 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:219 def unwrap_begin(node); end class << self - # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:88 + # pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:90 def autocorrect_incompatible_with; end end end -# pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:83 +# pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:81 RuboCop::Cop::Style::IfUnlessModifier::MSG_USE_MODIFIER = T.let(T.unsafe(nil), String) -# pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:86 +# pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:84 +RuboCop::Cop::Style::IfUnlessModifier::MSG_USE_MODIFIER_PARENS = T.let(T.unsafe(nil), String) + +# pkg:gem/rubocop#lib/rubocop/cop/style/if_unless_modifier.rb:88 RuboCop::Cop::Style::IfUnlessModifier::MSG_USE_NORMAL = T.let(T.unsafe(nil), String) # Checks for if and unless statements used as modifiers of other if or @@ -42313,6 +43724,7 @@ RuboCop::Cop::Style::IfUnlessModifier::MSG_USE_NORMAL = T.let(T.unsafe(nil), Str class RuboCop::Cop::Style::IfUnlessModifierOfIfUnless < ::RuboCop::Cop::Base include ::RuboCop::Cop::Alignment include ::RuboCop::Cop::LineLengthHelp + include ::RuboCop::Cop::AllowedPattern include ::RuboCop::Cop::StatementModifier extend ::RuboCop::Cop::AutoCorrector @@ -42857,28 +44269,42 @@ class RuboCop::Cop::Style::InvertibleUnlessCondition < ::RuboCop::Cop::Base private - # pkg:gem/rubocop#lib/rubocop/cop/style/invertible_unless_condition.rb:133 + # pkg:gem/rubocop#lib/rubocop/cop/style/invertible_unless_condition.rb:140 def autocorrect(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/invertible_unless_condition.rb:146 + # pkg:gem/rubocop#lib/rubocop/cop/style/invertible_unless_condition.rb:153 + def autocorrect_operand(corrector, node, operand); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/invertible_unless_condition.rb:166 def autocorrect_send_node(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/invertible_unless_condition.rb:90 + # pkg:gem/rubocop#lib/rubocop/cop/style/invertible_unless_condition.rb:92 def inheritance_check?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/invertible_unless_condition.rb:154 + # pkg:gem/rubocop#lib/rubocop/cop/style/invertible_unless_condition.rb:174 def inverse_methods; end # pkg:gem/rubocop#lib/rubocop/cop/style/invertible_unless_condition.rb:75 def invertible?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/invertible_unless_condition.rb:96 + # When an `and` is nested in an `or`, inverting both operators turns the + # `and` into an `or` that now binds looser than its parent, so it must be + # parenthesized to keep the original grouping (`a && b || c` inverts to + # `(!a || !b) && !c`, not `!a || !b && !c`). + # + # pkg:gem/rubocop#lib/rubocop/cop/style/invertible_unless_condition.rb:162 + def parenthesize_inverted_operand?(node, operand); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/invertible_unless_condition.rb:98 def preferred_condition(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/invertible_unless_condition.rb:126 + # pkg:gem/rubocop#lib/rubocop/cop/style/invertible_unless_condition.rb:128 def preferred_logical_condition(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/invertible_unless_condition.rb:104 + # pkg:gem/rubocop#lib/rubocop/cop/style/invertible_unless_condition.rb:135 + def preferred_operand(node, operand); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/invertible_unless_condition.rb:106 def preferred_send_condition(node); end end @@ -43252,34 +44678,39 @@ class RuboCop::Cop::Style::Lambda < ::RuboCop::Cop::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle extend ::RuboCop::Cop::AutoCorrector - # pkg:gem/rubocop#lib/rubocop/cop/style/lambda.rb:64 + # pkg:gem/rubocop#lib/rubocop/cop/style/lambda.rb:68 def on_block(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/lambda.rb:80 + # pkg:gem/rubocop#lib/rubocop/cop/style/lambda.rb:84 def on_itblock(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/lambda.rb:79 + # pkg:gem/rubocop#lib/rubocop/cop/style/lambda.rb:83 def on_numblock(node); end private - # pkg:gem/rubocop#lib/rubocop/cop/style/lambda.rb:116 + # pkg:gem/rubocop#lib/rubocop/cop/style/lambda.rb:120 def arguments_with_whitespace(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/lambda.rb:105 + # pkg:gem/rubocop#lib/rubocop/cop/style/lambda.rb:109 def autocorrect_method_to_literal(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/lambda.rb:120 + # pkg:gem/rubocop#lib/rubocop/cop/style/lambda.rb:124 def lambda_arg_string(args); end - # pkg:gem/rubocop#lib/rubocop/cop/style/lambda.rb:90 + # pkg:gem/rubocop#lib/rubocop/cop/style/lambda.rb:94 def message(node, selector); end - # pkg:gem/rubocop#lib/rubocop/cop/style/lambda.rb:96 + # pkg:gem/rubocop#lib/rubocop/cop/style/lambda.rb:100 def message_line_modifier(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/lambda.rb:84 + # pkg:gem/rubocop#lib/rubocop/cop/style/lambda.rb:88 def offending_selector?(node, selector); end + + class << self + # pkg:gem/rubocop#lib/rubocop/cop/style/lambda.rb:64 + def autocorrect_incompatible_with; end + end end # pkg:gem/rubocop#lib/rubocop/cop/style/lambda.rb:53 @@ -43312,7 +44743,7 @@ class RuboCop::Cop::Style::LambdaCall < ::RuboCop::Cop::Base include ::RuboCop::Cop::ConfigurableEnforcedStyle extend ::RuboCop::Cop::AutoCorrector - # pkg:gem/rubocop#lib/rubocop/cop/style/lambda_call.rb:47 + # pkg:gem/rubocop#lib/rubocop/cop/style/lambda_call.rb:50 def on_csend(node); end # pkg:gem/rubocop#lib/rubocop/cop/style/lambda_call.rb:28 @@ -43320,16 +44751,19 @@ class RuboCop::Cop::Style::LambdaCall < ::RuboCop::Cop::Base private - # pkg:gem/rubocop#lib/rubocop/cop/style/lambda_call.rb:73 + # pkg:gem/rubocop#lib/rubocop/cop/style/lambda_call.rb:54 + def comments_in_node?(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/lambda_call.rb:84 def explicit_style?; end - # pkg:gem/rubocop#lib/rubocop/cop/style/lambda_call.rb:69 + # pkg:gem/rubocop#lib/rubocop/cop/style/lambda_call.rb:80 def implicit_style?; end - # pkg:gem/rubocop#lib/rubocop/cop/style/lambda_call.rb:51 + # pkg:gem/rubocop#lib/rubocop/cop/style/lambda_call.rb:62 def offense?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/lambda_call.rb:55 + # pkg:gem/rubocop#lib/rubocop/cop/style/lambda_call.rb:66 def prefer(node); end end @@ -44276,6 +45710,7 @@ class RuboCop::Cop::Style::MethodCallWithArgsParentheses < ::RuboCop::Cop::Base include ::RuboCop::Cop::AllowedPattern include ::RuboCop::Cop::Style::MethodCallWithArgsParentheses::RequireParentheses include ::RuboCop::Cop::RangeHelp + include ::RuboCop::Cop::ReparsedEquivalence include ::RuboCop::Cop::Style::MethodCallWithArgsParentheses::OmitParentheses extend ::RuboCop::Cop::AutoCorrector @@ -44310,128 +45745,135 @@ end # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:9 module RuboCop::Cop::Style::MethodCallWithArgsParentheses::OmitParentheses include ::RuboCop::Cop::RangeHelp + include ::RuboCop::Cop::ReparsedEquivalence + + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:17 + def on_investigation_end; end private - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:80 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:97 def allowed_camel_case_method_call?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:191 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:208 def allowed_chained_call_with_parentheses?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:187 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:204 def allowed_multiline_call_with_parentheses?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:85 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:102 def allowed_string_interpolation_method_call?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:200 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:217 def ambiguous_literal?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:180 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:197 def ambiguous_range_argument?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:230 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:47 + def apply_reparse_correction(corrector, node); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:247 def assigned_before?(node, target); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:238 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:255 def assignment_in_condition?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:34 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:51 def autocorrect(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:162 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:179 def call_as_argument_or_chain?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:155 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:172 def call_in_argument_with_block?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:110 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:127 def call_in_literals?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:119 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:136 def call_in_logical_operators?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:167 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:184 def call_in_match_pattern?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:128 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:145 def call_in_optional_arguments?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:132 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:149 def call_in_single_line_inheritance?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:137 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:154 def call_with_ambiguous_arguments?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:151 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:168 def call_with_braced_block?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:248 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:265 def forwards_anonymous_rest_arguments?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:216 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:233 def hash_literal?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:173 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:190 def hash_literal_in_arguments?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:50 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:67 def inside_endless_method_def?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:234 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:251 def inside_string_interpolation?(node); end # Require hash value omission be enclosed in parentheses to prevent the following issue: # https://bugs.ruby-lang.org/issues/18396. # - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:64 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:81 def last_expression?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:97 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:114 def legitimate_call_with_parentheses?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:212 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:229 def logical_operator?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:72 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:89 def method_call_before_constant_resolution?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:46 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:63 def offense_range(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:18 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:33 def omit_parentheses(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:90 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:107 def parentheses_at_the_end_of_multiline_call?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:220 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:237 def regexp_slash_literal?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:55 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:72 def require_parentheses_for_hash_value_omission?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:204 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:221 def splat?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:76 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:93 def super_call_without_arguments?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:68 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:85 def syntax_like_method_call?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:208 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:225 def ternary_if?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:224 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:241 def unary_literal?(node); end end -# pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:13 +# pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:14 RuboCop::Cop::Style::MethodCallWithArgsParentheses::OmitParentheses::OMIT_MSG = T.let(T.unsafe(nil), String) -# pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:12 +# pkg:gem/rubocop#lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb:13 RuboCop::Cop::Style::MethodCallWithArgsParentheses::OmitParentheses::TRAILING_WHITESPACE_REGEX = T.let(T.unsafe(nil), Regexp) # Style require_parentheses @@ -44502,19 +45944,19 @@ class RuboCop::Cop::Style::MethodCallWithoutArgsParentheses < ::RuboCop::Cop::Ba private - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_without_args_parentheses.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_without_args_parentheses.rb:69 def allowed_method_name?(name); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_without_args_parentheses.rb:101 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_without_args_parentheses.rb:103 def any_assignment?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_without_args_parentheses.rb:63 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_without_args_parentheses.rb:65 def default_argument?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_without_args_parentheses.rb:59 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_without_args_parentheses.rb:61 def ineligible_node?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_without_args_parentheses.rb:118 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_without_args_parentheses.rb:120 def offense_range(node); end # Respects `Lint/ItWithoutArgumentsInBlock` cop and the following Ruby 3.3's warning: @@ -44523,16 +45965,16 @@ class RuboCop::Cop::Style::MethodCallWithoutArgsParentheses < ::RuboCop::Cop::Ba # -e:1: warning: `it` calls without arguments will refer to the first block param in # Ruby 3.4; use it() or self.it # - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_without_args_parentheses.rb:89 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_without_args_parentheses.rb:91 def parenthesized_it_method_in_block?(node); end # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_without_args_parentheses.rb:52 def register_offense(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_without_args_parentheses.rb:71 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_without_args_parentheses.rb:73 def same_name_assignment?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_without_args_parentheses.rb:114 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_call_without_args_parentheses.rb:116 def variable_in_mass_assignment?(variable_name, node); end end @@ -44679,34 +46121,39 @@ class RuboCop::Cop::Style::MethodDefParentheses < ::RuboCop::Cop::Base include ::RuboCop::Cop::RangeHelp extend ::RuboCop::Cop::AutoCorrector - # pkg:gem/rubocop#lib/rubocop/cop/style/method_def_parentheses.rb:105 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_def_parentheses.rb:109 def on_def(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_def_parentheses.rb:120 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_def_parentheses.rb:124 def on_defs(node); end private - # pkg:gem/rubocop#lib/rubocop/cop/style/method_def_parentheses.rb:167 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_def_parentheses.rb:171 def anonymous_arguments?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_def_parentheses.rb:145 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_def_parentheses.rb:149 def arguments_without_parentheses?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_def_parentheses.rb:124 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_def_parentheses.rb:128 def correct_arguments(arg_node, corrector); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_def_parentheses.rb:129 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_def_parentheses.rb:133 def forced_parentheses?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_def_parentheses.rb:149 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_def_parentheses.rb:153 def missing_parentheses(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_def_parentheses.rb:140 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_def_parentheses.rb:144 def require_parentheses?(args); end - # pkg:gem/rubocop#lib/rubocop/cop/style/method_def_parentheses.rb:159 + # pkg:gem/rubocop#lib/rubocop/cop/style/method_def_parentheses.rb:163 def unwanted_parentheses(args); end + + class << self + # pkg:gem/rubocop#lib/rubocop/cop/style/method_def_parentheses.rb:105 + def autocorrect_incompatible_with; end + end end # pkg:gem/rubocop#lib/rubocop/cop/style/method_def_parentheses.rb:103 @@ -44991,6 +46438,11 @@ RuboCop::Cop::Style::MissingElse::MSG_NIL = T.let(T.unsafe(nil), String) # delegator.upcase # => FOO # ---- # +# When `AllCops/UseProjectIndex` is enabled and the `rubydex` gem is +# installed, `respond_to_missing?` defined in another definition of the +# same class or module (e.g. a reopening in another file) also +# satisfies the check. +# # @example # # bad # def method_missing(name, *args) @@ -45014,21 +46466,41 @@ RuboCop::Cop::Style::MissingElse::MSG_NIL = T.let(T.unsafe(nil), String) # end # end # -# pkg:gem/rubocop#lib/rubocop/cop/style/missing_respond_to_missing.rb:54 +# pkg:gem/rubocop#lib/rubocop/cop/style/missing_respond_to_missing.rb:59 class RuboCop::Cop::Style::MissingRespondToMissing < ::RuboCop::Cop::Base - # pkg:gem/rubocop#lib/rubocop/cop/style/missing_respond_to_missing.rb:57 + include ::RuboCop::Cop::ProjectIndexHelp + + # pkg:gem/rubocop#lib/rubocop/cop/style/missing_respond_to_missing.rb:64 def on_def(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/missing_respond_to_missing.rb:63 + # pkg:gem/rubocop#lib/rubocop/cop/style/missing_respond_to_missing.rb:71 def on_defs(node); end private - # pkg:gem/rubocop#lib/rubocop/cop/style/missing_respond_to_missing.rb:67 + # The class/module/`class << self` body that lexically contains `node`, + # or `nil` when `node` is defined at the top level. + # + # pkg:gem/rubocop#lib/rubocop/cop/style/missing_respond_to_missing.rb:109 + def enclosing_scope(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/missing_respond_to_missing.rb:97 def implements_respond_to_missing?(node); end + + # When `AllCops/UseProjectIndex` is enabled, `respond_to_missing?` + # defined in another definition of the same class or module (e.g. a + # reopening in another file) also satisfies the check. Ancestors are + # not consulted: overriding `method_missing` warrants a matching + # `respond_to_missing?` for the same class. + # + # pkg:gem/rubocop#lib/rubocop/cop/style/missing_respond_to_missing.rb:80 + def respond_to_missing_elsewhere?(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/missing_respond_to_missing.rb:93 + def singleton_definition?(node); end end -# pkg:gem/rubocop#lib/rubocop/cop/style/missing_respond_to_missing.rb:55 +# pkg:gem/rubocop#lib/rubocop/cop/style/missing_respond_to_missing.rb:62 RuboCop::Cop::Style::MissingRespondToMissing::MSG = T.let(T.unsafe(nil), String) # Checks for grouping of mixins in `class` and `module` bodies. @@ -45271,19 +46743,19 @@ class RuboCop::Cop::Style::ModuleFunction < ::RuboCop::Cop::Base private - # pkg:gem/rubocop#lib/rubocop/cop/style/module_function.rb:149 + # pkg:gem/rubocop#lib/rubocop/cop/style/module_function.rb:151 def check_extend_self(nodes); end - # pkg:gem/rubocop#lib/rubocop/cop/style/module_function.rb:155 + # pkg:gem/rubocop#lib/rubocop/cop/style/module_function.rb:157 def check_forbidden(nodes); end - # pkg:gem/rubocop#lib/rubocop/cop/style/module_function.rb:141 + # pkg:gem/rubocop#lib/rubocop/cop/style/module_function.rb:143 def check_module_function(nodes); end - # pkg:gem/rubocop#lib/rubocop/cop/style/module_function.rb:130 + # pkg:gem/rubocop#lib/rubocop/cop/style/module_function.rb:132 def each_wrong_style(nodes, &block); end - # pkg:gem/rubocop#lib/rubocop/cop/style/module_function.rb:162 + # pkg:gem/rubocop#lib/rubocop/cop/style/module_function.rb:164 def message(_range); end end @@ -45427,6 +46899,7 @@ RuboCop::Cop::Style::MultilineBlockChain::MSG = T.let(T.unsafe(nil), String) class RuboCop::Cop::Style::MultilineIfModifier < ::RuboCop::Cop::Base include ::RuboCop::Cop::Alignment include ::RuboCop::Cop::LineLengthHelp + include ::RuboCop::Cop::AllowedPattern include ::RuboCop::Cop::StatementModifier extend ::RuboCop::Cop::AutoCorrector @@ -45474,6 +46947,12 @@ class RuboCop::Cop::Style::MultilineIfThen < ::RuboCop::Cop::Base # pkg:gem/rubocop#lib/rubocop/cop/style/multiline_if_then.rb:38 def non_modifier_then?(node); end + + # Prism gives an `elsif` with no `then` of its own the previous branch's `then` location, + # which lies outside the node. + # + # pkg:gem/rubocop#lib/rubocop/cop/style/multiline_if_then.rb:44 + def own_then?(node); end end # pkg:gem/rubocop#lib/rubocop/cop/style/multiline_if_then.rb:26 @@ -45802,7 +47281,7 @@ RuboCop::Cop::Style::MultilineWhenThen::MSG = T.let(T.unsafe(nil), String) class RuboCop::Cop::Style::MultipleComparison < ::RuboCop::Cop::Base extend ::RuboCop::Cop::AutoCorrector - # pkg:gem/rubocop#lib/rubocop/cop/style/multiple_comparison.rb:74 + # pkg:gem/rubocop#lib/rubocop/cop/style/multiple_comparison.rb:73 def on_or(node); end # pkg:gem/rubocop#lib/rubocop/cop/style/multiple_comparison.rb:64 @@ -45816,31 +47295,40 @@ class RuboCop::Cop::Style::MultipleComparison < ::RuboCop::Cop::Base private - # pkg:gem/rubocop#lib/rubocop/cop/style/multiple_comparison.rb:154 + # pkg:gem/rubocop#lib/rubocop/cop/style/multiple_comparison.rb:165 def allow_method_comparison?; end - # pkg:gem/rubocop#lib/rubocop/cop/style/multiple_comparison.rb:132 + # pkg:gem/rubocop#lib/rubocop/cop/style/multiple_comparison.rb:114 + def collect_comparison(node, comparison, variables, values, skipped); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/multiple_comparison.rb:143 def comparison?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/multiple_comparison.rb:158 + # pkg:gem/rubocop#lib/rubocop/cop/style/multiple_comparison.rb:169 def comparisons_threshold; end - # pkg:gem/rubocop#lib/rubocop/cop/style/multiple_comparison.rb:97 - def find_offending_var(node, variables = T.unsafe(nil), values = T.unsafe(nil)); end + # pkg:gem/rubocop#lib/rubocop/cop/style/multiple_comparison.rb:101 + def find_offending_var(node, variables = T.unsafe(nil), values = T.unsafe(nil), skipped = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/style/multiple_comparison.rb:124 + # pkg:gem/rubocop#lib/rubocop/cop/style/multiple_comparison.rb:135 def nested_comparison?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/multiple_comparison.rb:116 + # pkg:gem/rubocop#lib/rubocop/cop/style/multiple_comparison.rb:127 def offense_range(values); end - # pkg:gem/rubocop#lib/rubocop/cop/style/multiple_comparison.rb:144 + # pkg:gem/rubocop#lib/rubocop/cop/style/multiple_comparison.rb:95 + def preferred_method(variable, values); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/multiple_comparison.rb:155 def root_of_or_node(or_node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/multiple_comparison.rb:136 + # pkg:gem/rubocop#lib/rubocop/cop/style/multiple_comparison.rb:147 def simple_comparison(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/multiple_comparison.rb:120 + # pkg:gem/rubocop#lib/rubocop/cop/style/multiple_comparison.rb:91 + def skipped_within_range?(skipped, range); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/multiple_comparison.rb:131 def variable_name(node); end end @@ -45933,6 +47421,9 @@ RuboCop::Cop::Style::MultipleComparison::MSG = T.let(T.unsafe(nil), String) # end # end.freeze # +# # good - `Data.define` declares an immutable value type +# CONST = Data.define(:foo, :bar) +# # @example # # # bad @@ -45941,53 +47432,53 @@ RuboCop::Cop::Style::MultipleComparison::MSG = T.let(T.unsafe(nil), String) # # good # CONST = [1, 2, 3] # -# pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:102 +# pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:105 class RuboCop::Cop::Style::MutableConstant < ::RuboCop::Cop::Base include ::RuboCop::Cop::Style::MutableConstant::ShareableConstantValue include ::RuboCop::Cop::FrozenStringLiteral include ::RuboCop::Cop::ConfigurableEnforcedStyle extend ::RuboCop::Cop::AutoCorrector - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:146 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:149 def on_casgn(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:317 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:320 def operation_produces_immutable_object?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:334 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:339 def range_enclosed_in_parentheses?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:310 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:313 def splat_value(param0 = T.unsafe(nil)); end private - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:209 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:212 def autocorrect(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:301 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:304 def correct_splat_expansion(corrector, expr, splat_value); end - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:267 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:270 def explicitly_frozen_literal?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:243 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:246 def freezable_nested_literal?(node); end # Recursively freezes every nested mutable literal inside an array or # hash literal. Already-frozen subtrees are not re-frozen, but their # children are still inspected for unfrozen literals deeper down. # - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:233 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:236 def freeze_nested_literals(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:293 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:296 def frozen_regexp_or_range_literals?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:283 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:286 def immutable_literal?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:196 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:199 def literal_check(value); end # Returns the child literals of an array or hash node that may @@ -45995,35 +47486,35 @@ class RuboCop::Cop::Style::MutableConstant < ::RuboCop::Cop::Base # included. Percent-literal arrays (e.g. `%w(a b)`) are skipped because # `.freeze` cannot be appended to their contents. # - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:254 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:257 def literal_children(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:277 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:280 def mutable_literal?(value); end - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:173 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:176 def mutable_nodes(value, &block); end - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:204 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:207 def mutable_or_unfrozen_range?(value); end - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:159 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:162 def on_assignment(value); end - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:273 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:276 def recursive?; end - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:297 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:300 def requires_parentheses?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:287 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:290 def shareable_constant_value?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:187 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:190 def strict_check(value); end end -# pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:144 +# pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:147 RuboCop::Cop::Style::MutableConstant::MSG = T.let(T.unsafe(nil), String) # Handles magic comment shareable_constant_value with O(n ^ 2) complexity @@ -46031,33 +47522,33 @@ RuboCop::Cop::Style::MutableConstant::MSG = T.let(T.unsafe(nil), String) # Iterates over all lines before a CONSTANT # until it reaches shareable_constant_value # -# pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:107 +# pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:110 module RuboCop::Cop::Style::MutableConstant::ShareableConstantValue private # Identifies the most recent magic comment with valid shareable constant values # that's in scope for this node # - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:121 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:124 def magic_comment_in_scope(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:129 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:132 def processed_source_till_node(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:110 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:113 def recent_shareable_value?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:133 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:136 def shareable_constant_value_enabled?(value); end class << self # Identifies the most recent magic comment with valid shareable constant values # that's in scope for this node # - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:121 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:124 def magic_comment_in_scope(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:110 + # pkg:gem/rubocop#lib/rubocop/cop/style/mutable_constant.rb:113 def recent_shareable_value?(node); end end end @@ -46377,22 +47868,22 @@ class RuboCop::Cop::Style::NegativeArrayIndex < ::RuboCop::Cop::Base # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:82 def add_offense_for_subtraction(node, index_arg, negative_index); end - # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:168 + # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:170 def build_current_source(receiver, range_without_parens, index_arg); end - # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:151 + # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:153 def build_message_for_range(receiver, start, range_op, index, current); end - # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:126 + # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:128 def build_range_offense_data(receiver, range_node, range_end, inner_end, negative_index, index_arg); end - # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:178 + # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:180 def build_range_without_parens(range_start, range_op, range_end, inner_end); end - # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:158 + # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:160 def build_replacement_string(range_start, range_op, negative_index, index_arg); end - # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:200 + # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:202 def extract_base_receiver(node); end # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:78 @@ -46401,25 +47892,25 @@ class RuboCop::Cop::Style::NegativeArrayIndex < ::RuboCop::Cop::Base # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:74 def extract_range_from_begin(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:143 + # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:145 def format_range_message_parts(range_start, negative_index, index_arg); end - # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:111 + # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:113 def handle_range_pattern(receiver, range_node, index_arg); end # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:65 def handle_simple_index_pattern(node, index_arg); end - # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:209 + # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:211 def preserving_method?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:94 + # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:95 def range_with_length_subtraction?(range_node, array_receiver); end - # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:184 + # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:186 def receivers_match?(length_receiver, array_receiver); end - # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:195 + # pkg:gem/rubocop#lib/rubocop/cop/style/negative_array_index.rb:197 def receivers_match_strict?(length_receiver, array_receiver); end end @@ -49311,6 +50802,9 @@ RuboCop::Cop::Style::RedundantArrayFlatten::RESTRICT_ON_SEND = T.let(T.unsafe(ni # Checks for redundant assignment before returning. # +# When there are comments between the assignment and reference, +# the cop will report an offense but it will not autocorrect. +# # @example # # bad # def test @@ -49343,44 +50837,47 @@ RuboCop::Cop::Style::RedundantArrayFlatten::RESTRICT_ON_SEND = T.let(T.unsafe(ni # end # end # -# pkg:gem/rubocop#lib/rubocop/cop/style/redundant_assignment.rb:40 +# pkg:gem/rubocop#lib/rubocop/cop/style/redundant_assignment.rb:43 class RuboCop::Cop::Style::RedundantAssignment < ::RuboCop::Cop::Base extend ::RuboCop::Cop::AutoCorrector - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_assignment.rb:50 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_assignment.rb:53 def on_def(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_assignment.rb:53 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_assignment.rb:56 def on_defs(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_assignment.rb:46 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_assignment.rb:49 def redundant_assignment?(param0 = T.unsafe(nil)); end private - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_assignment.rb:99 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_assignment.rb:102 def check_begin_node(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_assignment.rb:58 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_assignment.rb:61 def check_branch(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_assignment.rb:79 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_assignment.rb:82 def check_case_match_node(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_assignment.rb:74 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_assignment.rb:77 def check_case_node(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_assignment.rb:95 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_assignment.rb:98 def check_ensure_node(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_assignment.rb:84 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_assignment.rb:87 def check_if_node(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_assignment.rb:91 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_assignment.rb:94 def check_rescue_node(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_assignment.rb:117 + def comments_between_assignment_and_reference?(assignment); end end -# pkg:gem/rubocop#lib/rubocop/cop/style/redundant_assignment.rb:43 +# pkg:gem/rubocop#lib/rubocop/cop/style/redundant_assignment.rb:46 RuboCop::Cop::Style::RedundantAssignment::MSG = T.let(T.unsafe(nil), String) # Checks for redundant `begin` blocks. A `begin` block is redundant @@ -49809,6 +51306,11 @@ RuboCop::Cop::Style::RedundantConditional::MSG = T.let(T.unsafe(nil), String) # to prevent conflicting rules. This is because it respects user configurations # that want to enable `Lint/ConstantResolution` cop which is disabled by default. # +# When `AllCops/UseProjectIndex` is enabled and the `rubydex` gem is +# installed, a leading `::` inside a namespace is also reported when the +# constant provably resolves to the same declaration with and without +# the base, i.e. nothing in the surrounding nesting shadows it. +# # @example # # bad # ::Const @@ -49836,32 +51338,47 @@ RuboCop::Cop::Style::RedundantConditional::MSG = T.let(T.unsafe(nil), String) # ::Const # end # -# pkg:gem/rubocop#lib/rubocop/cop/style/redundant_constant_base.rb:43 +# pkg:gem/rubocop#lib/rubocop/cop/style/redundant_constant_base.rb:48 class RuboCop::Cop::Style::RedundantConstantBase < ::RuboCop::Cop::Base + include ::RuboCop::Cop::ProjectIndexHelp extend ::RuboCop::Cop::AutoCorrector - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_constant_base.rb:48 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_constant_base.rb:54 def on_cbase(node); end private - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_constant_base.rb:67 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_constant_base.rb:103 def bad?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_constant_base.rb:63 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_constant_base.rb:88 + def first_constant_segment(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_constant_base.rb:99 def lint_constant_resolution_config; end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_constant_base.rb:59 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_constant_base.rb:95 def lint_constant_resolution_cop_enabled?; end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_constant_base.rb:71 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_constant_base.rb:107 def module_nesting_ancestors_of(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_constant_base.rb:77 + # When `AllCops/UseProjectIndex` is enabled, `::` inside a namespace is + # also redundant when the first constant segment resolves to the same + # declaration with and without the base, i.e. nothing in the + # surrounding nesting shadows it. + # + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_constant_base.rb:69 + def provably_unshadowed?(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_constant_base.rb:81 + def same_resolution?(segment, nesting); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_constant_base.rb:113 def used_in_super_class_part?(node, class_node:); end end -# pkg:gem/rubocop#lib/rubocop/cop/style/redundant_constant_base.rb:46 +# pkg:gem/rubocop#lib/rubocop/cop/style/redundant_constant_base.rb:52 RuboCop::Cop::Style::RedundantConstantBase::MSG = T.let(T.unsafe(nil), String) # Checks for paths given to `require_relative` that start with @@ -49885,7 +51402,14 @@ class RuboCop::Cop::Style::RedundantCurrentDirectoryInPath < ::RuboCop::Cop::Bas private - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_current_directory_in_path.rb:42 + # The literal text at the start of the path, which is the whole string + # for a plain string and the leading literal segment for an interpolated + # one (`nil` when it starts with interpolation). + # + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_current_directory_in_path.rb:47 + def leading_path_content(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_current_directory_in_path.rb:54 def redundant_path_length(path); end end @@ -50194,7 +51718,10 @@ class RuboCop::Cop::Style::RedundantFileExtensionInRequire < ::RuboCop::Cop::Bas private - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_file_extension_in_require.rb:53 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_file_extension_in_require.rb:63 + def escaped_extension?(name_node, extension_range); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_file_extension_in_require.rb:57 def extension_range(name_node); end end @@ -50362,36 +51889,36 @@ class RuboCop::Cop::Style::RedundantFormat < ::RuboCop::Cop::Base # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:159 def all_fields_literal?(string, arguments); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:266 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:275 def argument_value(argument); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:262 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:271 def argument_values(arguments); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:306 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:315 def complex_value(complex_node); end # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:129 def detect_unnecessary_fields(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:292 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:301 def dsym_value(dsym_node); end # Escape any control characters in the string (eg. `\t` or `\n` become `\\t` or `\\n`) # - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:258 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:267 def escape_control_chars(string); end # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:190 def find_argument(sequence, arguments, hash); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:233 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:242 def float?(argument); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:296 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:305 def hash_value(hash_node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:229 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:238 def integer?(argument); end # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:205 @@ -50400,16 +51927,23 @@ class RuboCop::Cop::Style::RedundantFormat < ::RuboCop::Cop::Base # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:125 def message(node, prefer); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:223 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:232 def numeric?(argument); end + # `Array#[]` raises `RangeError` for an index beyond the 64-bit range + # (e.g. `format('%*9999999999999999999999$d', 1)`) instead of returning `nil`, + # so the index needs to be checked before accessing the array. + # + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:226 + def positional_argument(arguments, number); end + # Add correct quotes to the formatted string, preferring retaining the existing # quotes if possible. # - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:239 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:248 def quote(string, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:302 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:311 def rational_value(rational_node); end # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:142 @@ -50425,7 +51959,7 @@ class RuboCop::Cop::Style::RedundantFormat < ::RuboCop::Cop::Base # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:110 def string_with_format_sequence?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:276 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_format.rb:285 def typed_argument_value(argument); end # If the sequence has a variable (`*`) width, it cannot be autocorrected @@ -50791,10 +52325,13 @@ RuboCop::Cop::Style::RedundantInterpolationUnfreeze::MSG = T.let(T.unsafe(nil), # Checks for redundant line continuation. # -# This cop marks a line continuation as redundant if removing the backslash -# does not result in a syntax error. -# However, a backslash at the end of a comment or -# for string concatenation is not redundant and is not considered an offense. +# A line continuation is redundant when removing the backslash does not +# change how the program parses: the source is reparsed without the +# backslash and the resulting AST is compared to the original. Only +# backslashes that are pure noise are reported; backslashes that are +# significant — inside strings, for string concatenation, before an +# operator or argument that would otherwise start a new statement, and +# so on — are left alone, as are backslashes in comments. # # @example # # bad @@ -50850,104 +52387,91 @@ RuboCop::Cop::Style::RedundantInterpolationUnfreeze::MSG = T.let(T.unsafe(nil), # some_method \ # (argument) # -# pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:67 +# pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:70 class RuboCop::Cop::Style::RedundantLineContinuation < ::RuboCop::Cop::Base include ::RuboCop::Cop::RangeHelp include ::RuboCop::Cop::MatchRange + include ::RuboCop::Cop::ReparsedEquivalence extend ::RuboCop::Cop::AutoCorrector - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:87 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:82 def on_new_investigation; end private - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:242 - def argument_is_method?(node); end - - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:208 - def argument_newline?(node); end - - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:179 - def code_ends_with_continuation?(last_line); end - - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:113 - def ends_with_uncommented_backslash?(range); end + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:99 + def apply_reparse_correction(corrector, range); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:222 - def find_node_for_line(last_line); end + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:163 + def first_token_after(tokens, range); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:193 - def inside_string_literal?(range, token); end - - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:126 - def inside_string_literal_or_method_with_argument?(range); end - - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:137 - def inside_string_literal_with_interpolation?(range); end + # A backslash directly joining two string literals is never redundant: + # removing it moves the second literal onto its own logical line, + # severing the implicit string concatenation. Skipping these up front + # avoids reparse verification, which is prohibitively slow on generated + # files gluing thousands of string fragments with line continuations. + # + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:128 + def implicit_string_concatenation?(range); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:167 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:179 def inspect_end_of_ruby_code_line_continuation; end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:151 - def leading_dot_method_chain_with_blank_line?(range); end - - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:249 - def method_call_with_arguments?(node); end + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:158 + def last_token_before(tokens, range); end - # A method call without parentheses such as the following cannot remove `\`: - # - # do_something \ - # argument + # The `parser` gem, unlike Ruby itself, accepts a leading-dot method + # chain continued across a blank line, so the reparse check alone would + # deem the backslash redundant even though removing it breaks the code + # on MRI. Prism matches Ruby here and does not need this guard. # - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:201 - def method_with_argument?(line_range, current_token, next_token); end - - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:157 - def redundant_line_continuation?(range); end - - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:104 - def require_line_continuation?(range); end + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:152 + def leading_dot_method_chain_with_blank_line?(range); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:228 - def same_line?(node, line); end + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:103 + def line_continuation_candidates; end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:253 - def start_with_arithmetic_operator?(range); end + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:173 + def string_literal_beginning_on_line?(token, line); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:122 - def string_concatenation?(source_line); end + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:167 + def string_literal_ending_on_line?(token, line); end # The backslash is the last character of the line; locate it by the line's # position in the buffer rather than treating the column as an absolute offset # (which corrupts an earlier line in multi-line files). # - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:188 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:196 def trailing_line_continuation_range(line_number); end -end -# pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:74 -RuboCop::Cop::Style::RedundantLineContinuation::ALLOWED_STRING_TOKENS = T.let(T.unsafe(nil), Array) + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:117 + def within_comment?(range); end -# pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:81 -RuboCop::Cop::Style::RedundantLineContinuation::ARGUMENT_TAKING_FLOW_TOKEN_TYPES = T.let(T.unsafe(nil), Array) - -# pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:75 -RuboCop::Cop::Style::RedundantLineContinuation::ARGUMENT_TYPES = T.let(T.unsafe(nil), Array) - -# pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:84 -RuboCop::Cop::Style::RedundantLineContinuation::ARITHMETIC_OPERATOR_TOKENS = T.let(T.unsafe(nil), Array) + # A backslash in string content is never a redundant line continuation + # (removing it changes the string's value, which the reparse check would + # detect); skipping it up front just avoids a useless reparse. + # + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:140 + def within_string_content?(range); end +end -# pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:72 +# pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:76 RuboCop::Cop::Style::RedundantLineContinuation::LINE_CONTINUATION = T.let(T.unsafe(nil), String) -# pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:73 +# pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:77 RuboCop::Cop::Style::RedundantLineContinuation::LINE_CONTINUATION_PATTERN = T.let(T.unsafe(nil), Regexp) -# pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:71 +# pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:75 RuboCop::Cop::Style::RedundantLineContinuation::MSG = T.let(T.unsafe(nil), String) -# pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:85 -RuboCop::Cop::Style::RedundantLineContinuation::STRING_LITERAL_BEGIN_TOKENS = T.let(T.unsafe(nil), Array) +# pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:80 +RuboCop::Cop::Style::RedundantLineContinuation::STRING_LITERAL_BEGINNING_TOKEN_TYPES = T.let(T.unsafe(nil), Array) + +# pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:79 +RuboCop::Cop::Style::RedundantLineContinuation::STRING_LITERAL_ENDING_TOKEN_TYPES = T.let(T.unsafe(nil), Array) + +# pkg:gem/rubocop#lib/rubocop/cop/style/redundant_line_continuation.rb:78 +RuboCop::Cop::Style::RedundantLineContinuation::STRING_TOKEN_TYPES = T.let(T.unsafe(nil), Array) # Identifies places where `max_by { ... }`, `min_by { ... }`, or # `minmax_by { ... }` can be replaced by `max`, `min`, or `minmax`. @@ -51029,141 +52553,146 @@ RuboCop::Cop::Style::RedundantMinMaxBy::REPLACEMENTS = T.let(T.unsafe(nil), Hash # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:16 class RuboCop::Cop::Style::RedundantParentheses < ::RuboCop::Cop::Base include ::RuboCop::Cop::Parentheses + include ::RuboCop::Cop::ReparsedEquivalence extend ::RuboCop::Cop::AutoCorrector - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:31 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:32 def allowed_pin_operator?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:344 - def first_call_argument?(param0 = T.unsafe(nil)); end - - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:194 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:195 def interpolation?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:33 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:39 def on_begin(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:28 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:45 + def on_investigation_end; end + + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:34 + def on_new_investigation; end + + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:29 def rescue?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:23 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:24 def square_brackets?(param0 = T.unsafe(nil)); end private - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:220 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:221 def allow_in_multiline_conditions?; end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:68 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:86 def allowed_ancestor?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:61 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:79 def allowed_expression?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:73 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:91 def allowed_multiple_expression?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:82 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:100 def allowed_ternary?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:196 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:252 + def apply_reparse_correction(corrector, node); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:197 def argument_of_parenthesized_method_call?(begin_node, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:274 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:309 def body_range?(begin_node, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:349 - def call_chain_starts_with_int?(begin_node, send_node); end - - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:224 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:225 def call_node?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:138 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:139 def check(begin_node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:228 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:229 def check_send(begin_node, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:240 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:239 def check_unary(begin_node, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:263 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:301 def disallowed_literal?(begin_node, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:285 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:320 def disallowed_one_line_pattern_matching?(begin_node, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:355 - def do_end_block_in_method_chain?(begin_node, node); end - - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:109 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:127 def empty_parentheses?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:155 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:156 def find_offense_message(begin_node, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:114 - def first_arg_begins_with_hash_literal?(node); end - - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:337 - def first_argument?(node); end - - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:54 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:72 def ignore_syntax?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:123 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:132 def in_pattern_matching_in_method_argument?(begin_node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:259 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:297 def keyword_ancestor?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:305 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:329 def keyword_with_redundant_parentheses?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:95 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:113 def like_method_argument_parentheses?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:214 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:215 def method_call_parentheses_required?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:318 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:342 def method_call_with_redundant_parentheses?(begin_node, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:130 - def method_chain_begins_with_hash_literal(node); end - - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:102 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:120 def multiline_control_flow_statements?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:249 + # Grouping parentheses are transparent to the comparison: single-child + # `begin` nodes are collapsed, a parenthesized statement sequence + # inside another sequence is spliced in place, and chains of the same + # `&&`/`||` operator are normalized to left association (`x && (y && + # z)` and `x && y && z` differ as trees but `&&` and `||` cannot be + # redefined, so same-operator regrouping is semantically transparent). + # + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:262 + def normalize_reparsed_ast(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:248 def offense(node, msg); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:205 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:206 def oneline_rescue_parentheses_required?(begin_node, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:333 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:357 def only_begin_arg?(args); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:45 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:64 def parens_allowed?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:294 - def raised_to_power_negative_numeric?(begin_node, node); end + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:282 + def rotate_same_operator(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:326 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:350 def singular_parenthesized_parent?(begin_node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:255 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:276 + def splice_nested_sequences(children); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:293 def suspect_unary?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:88 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:106 def ternary_parentheses_required?; end - # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:41 + # pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:60 def variable?(node); end end -# pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:20 +# pkg:gem/rubocop#lib/rubocop/cop/style/redundant_parentheses.rb:21 RuboCop::Cop::Style::RedundantParentheses::ALLOWED_NODE_TYPES = T.let(T.unsafe(nil), Array) # Checks for usage of the %q/%Q syntax when '' or "" would do. @@ -52921,6 +54450,16 @@ RuboCop::Cop::Style::ReverseFind::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # x&.foo # raises NoMethodError # ---- # +# Additionally, when a method chain is converted, a `NoMethodError` that +# the original code raised for an intermediate `nil` value is suppressed: +# +# [source,ruby] +# ---- +# x = Struct.new(:foo).new(nil) +# x && x.foo.bar # raises NoMethodError +# x&.foo&.bar # returns nil +# ---- +# # @example # # bad # foo.bar if foo @@ -52975,7 +54514,7 @@ RuboCop::Cop::Style::ReverseFind::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # foo ? foo[idx] = v : nil # Ignored `foo&.[]=(idx, v)` due to unclear readability benefit. # foo ? foo * 42 : nil # Ignored `foo&.*(42)` due to unclear readability benefit. # -# pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:93 +# pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:103 class RuboCop::Cop::Style::SafeNavigation < ::RuboCop::Cop::Base include ::RuboCop::Cop::AllowedMethods include ::RuboCop::Cop::NilMethods @@ -52983,121 +54522,121 @@ class RuboCop::Cop::Style::SafeNavigation < ::RuboCop::Cop::Base extend ::RuboCop::Cop::AutoCorrector extend ::RuboCop::Cop::TargetRubyVersion - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:140 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:150 def and_inside_begin?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:134 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:144 def and_with_rhs_or?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:108 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:118 def modifier_if_safe_navigation_candidate(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:137 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:147 def not_nil_check?(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:165 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:175 def on_and(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:146 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:156 def on_if(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:143 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:153 def strip_begin(param0 = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:123 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:133 def ternary_safe_navigation_candidate(param0 = T.unsafe(nil)); end private - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:408 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:418 def add_safe_nav_to_all_methods_in_chain(corrector, start_method, method_chain); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:304 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:314 def allowed_if_condition?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:235 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:245 def and_parts(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:400 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:410 def begin_range(node, method_call); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:359 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:369 def chain_length(method_chain, method); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:217 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:227 def collect_and_clauses(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:285 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:295 def comments(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:229 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:239 def concat_nodes(nodes, and_node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:264 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:274 def dotless_operator_call?(method_call); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:272 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:282 def dotless_operator_method?(method_call); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:404 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:414 def end_range(node, method_call); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:323 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:333 def extract_common_parts(method_chain, checked_variable); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:256 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:266 def extract_if_body(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:308 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:318 def extract_parts_from_if(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:331 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:341 def find_matching_receiver_invocation(method_chain, checked_variable); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:211 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:221 def find_method_chain(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:278 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:288 def handle_comments(corrector, node, method_call); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:345 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:355 def matching_call_nodes?(left, right); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:341 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:351 def matching_nodes?(left, right); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:421 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:431 def max_chain_length; end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:396 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:406 def method_called?(send_node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:388 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:398 def negated?(send_node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:242 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:252 def offending_node?(node, lhs_receiver, rhs, rhs_receiver); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:291 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:301 def relevant_comment_ranges(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:194 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:204 def report_offense(node, rhs, rhs_receiver, *removal_ranges, offense_range: T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:379 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:389 def unsafe_method?(node, send_node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:367 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:377 def unsafe_method_used?(node, method_chain, method); end - # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:252 + # pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:262 def use_var_only_in_unless_modifier?(node, variable); end end -# pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:101 +# pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:111 RuboCop::Cop::Style::SafeNavigation::LOGIC_JUMP_KEYWORDS = T.let(T.unsafe(nil), Array) -# pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:99 +# pkg:gem/rubocop#lib/rubocop/cop/style/safe_navigation.rb:109 RuboCop::Cop::Style::SafeNavigation::MSG = T.let(T.unsafe(nil), String) # Enforces safe navigation chains length to not exceed the configured maximum. @@ -54339,77 +55878,89 @@ RuboCop::Cop::Style::SlicingWithRange::RESTRICT_ON_SEND = T.let(T.unsafe(nil), A # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:49 class RuboCop::Cop::Style::SoleNestedConditional < ::RuboCop::Cop::Base include ::RuboCop::Cop::RangeHelp + include ::RuboCop::Cop::ReparsedEquivalence extend ::RuboCop::Cop::AutoCorrector - # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:59 + # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:60 def on_if(node); end private - # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:199 + # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:216 def add_parentheses?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:178 + # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:195 def add_parentheses_if_needed(condition); end - # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:240 + # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:257 def allow_modifier?; end - # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:84 + # Merging the conditionals intentionally produces a different AST, so + # full equivalence cannot be checked, but the corrected source must at + # least remain parseable (see `ReparsedEquivalence#correction_parses?`), + # which suppresses the entire produces-invalid-code bug class. + # + # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:90 + def apply_reparse_correction(corrector, node); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:101 def assigned_variables(condition); end - # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:207 + # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:224 def assignment_in_and?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:101 + # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:118 def autocorrect(corrector, node, if_branch); end - # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:109 + # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:126 def autocorrect_outer_condition_basic(corrector, node, if_branch); end - # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:152 + # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:169 def autocorrect_outer_condition_modify_form(corrector, node, if_branch); end - # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:170 + # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:187 def chainable_condition(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:135 + # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:152 def correct_for_basic_condition_style(corrector, node, if_branch); end - # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:161 + # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:178 def correct_for_comment(corrector, node, if_branch); end - # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:125 + # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:142 def correct_for_guard_condition_style(corrector, node, if_branch); end - # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:120 + # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:137 def correct_node(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:92 + # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:109 def offending_branch?(node, branch); end - # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:194 + # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:77 + def offending_conditional?(node); end + + # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:211 def parenthesize_method?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:220 + # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:237 def parenthesized_and(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:230 + # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:247 def parenthesized_and_clause(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:213 + # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:230 def parenthesized_method_arguments(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:77 + # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:94 def use_variable_assignment_in_condition?(condition, if_branch); end class << self - # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:55 + # pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:56 def autocorrect_incompatible_with; end end end -# pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:53 +# pkg:gem/rubocop#lib/rubocop/cop/style/sole_nested_conditional.rb:54 RuboCop::Cop::Style::SoleNestedConditional::MSG = T.let(T.unsafe(nil), String) # Looks for uses of Perl-style global variables. @@ -54641,6 +56192,11 @@ RuboCop::Cop::Style::StabbyLambdaParentheses::MSG_REQUIRE = T.let(T.unsafe(nil), # for some other subclass, monkey-patched with instance methods or # a dummy instance is instantiated from it somewhere. # +# When `AllCops/UseProjectIndex` is enabled and the `rubydex` gem is +# installed, classes that are subclassed anywhere in the project are +# not reported, since converting them to modules would break their +# subclasses. +# # @example # # bad # class SomeClass @@ -54672,40 +56228,48 @@ RuboCop::Cop::Style::StabbyLambdaParentheses::MSG_REQUIRE = T.let(T.unsafe(nil), # def self.class_method; end # end # -# pkg:gem/rubocop#lib/rubocop/cop/style/static_class.rb:46 +# pkg:gem/rubocop#lib/rubocop/cop/style/static_class.rb:51 class RuboCop::Cop::Style::StaticClass < ::RuboCop::Cop::Base + include ::RuboCop::Cop::ProjectIndexHelp include ::RuboCop::Cop::RangeHelp include ::RuboCop::Cop::VisibilityHelp extend ::RuboCop::Cop::AutoCorrector - # pkg:gem/rubocop#lib/rubocop/cop/style/static_class.rb:53 + # pkg:gem/rubocop#lib/rubocop/cop/style/static_class.rb:59 def on_class(class_node); end private - # pkg:gem/rubocop#lib/rubocop/cop/style/static_class.rb:64 + # pkg:gem/rubocop#lib/rubocop/cop/style/static_class.rb:85 def autocorrect(corrector, class_node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/static_class.rb:77 + # pkg:gem/rubocop#lib/rubocop/cop/style/static_class.rb:98 def autocorrect_def(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/static_class.rb:83 + # pkg:gem/rubocop#lib/rubocop/cop/style/static_class.rb:104 def autocorrect_sclass(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/static_class.rb:90 + # pkg:gem/rubocop#lib/rubocop/cop/style/static_class.rb:111 def class_convertible_to_module?(class_node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/static_class.rb:114 + # pkg:gem/rubocop#lib/rubocop/cop/style/static_class.rb:135 def class_elements(class_node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/static_class.rb:102 + # pkg:gem/rubocop#lib/rubocop/cop/style/static_class.rb:123 def extend_call?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/static_class.rb:106 + # pkg:gem/rubocop#lib/rubocop/cop/style/static_class.rb:127 def sclass_convertible_to_module?(node); end + + # When `AllCops/UseProjectIndex` is enabled, a class with descendants + # anywhere in the project is not reported: converting it to a module + # would break its subclasses. + # + # pkg:gem/rubocop#lib/rubocop/cop/style/static_class.rb:74 + def subclassed_in_project?(class_node); end end -# pkg:gem/rubocop#lib/rubocop/cop/style/static_class.rb:51 +# pkg:gem/rubocop#lib/rubocop/cop/style/static_class.rb:57 RuboCop::Cop::Style::StaticClass::MSG = T.let(T.unsafe(nil), String) # Identifies places where `$stderr.puts` can be replaced by @@ -55154,21 +56718,21 @@ class RuboCop::Cop::Style::StructInheritance < ::RuboCop::Cop::Base # pkg:gem/rubocop#lib/rubocop/cop/style/struct_inheritance.rb:40 def on_class(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/struct_inheritance.rb:52 + # pkg:gem/rubocop#lib/rubocop/cop/style/struct_inheritance.rb:54 def struct_constructor?(param0 = T.unsafe(nil)); end private - # pkg:gem/rubocop#lib/rubocop/cop/style/struct_inheritance.rb:59 + # pkg:gem/rubocop#lib/rubocop/cop/style/struct_inheritance.rb:61 def correct_parent(parent, corrector); end - # pkg:gem/rubocop#lib/rubocop/cop/style/struct_inheritance.rb:71 + # pkg:gem/rubocop#lib/rubocop/cop/style/struct_inheritance.rb:73 def range_for_empty_class_body(class_node, struct_new); end - # pkg:gem/rubocop#lib/rubocop/cop/style/struct_inheritance.rb:79 + # pkg:gem/rubocop#lib/rubocop/cop/style/struct_inheritance.rb:81 def unparenthesized_struct_new?(parent); end - # pkg:gem/rubocop#lib/rubocop/cop/style/struct_inheritance.rb:83 + # pkg:gem/rubocop#lib/rubocop/cop/style/struct_inheritance.rb:85 def wrap_unparenthesized_call_with_do(corrector, parent); end end @@ -55803,36 +57367,36 @@ RuboCop::Cop::Style::TallyMethod::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array) # Corrector to correct conditional assignment in ternary conditions. # -# pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:504 +# pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:526 class RuboCop::Cop::Style::TernaryCorrector extend ::RuboCop::Cop::Style::ConditionalAssignmentHelper extend ::RuboCop::Cop::Style::ConditionalCorrectorHelper class << self - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:509 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:531 def correct(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:513 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:535 def move_assignment_inside_condition(corrector, node); end private - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:527 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:549 def correction(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:540 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:562 def element_assignment?(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:544 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:566 def extract_branches(node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:557 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:579 def move_branch_inside_condition(corrector, branch, assignment); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:552 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:574 def remove_parentheses(corrector, node); end - # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:531 + # pkg:gem/rubocop#lib/rubocop/cop/style/conditional_assignment.rb:553 def ternary(node); end end end @@ -57268,6 +58832,7 @@ RuboCop::Cop::Style::WhileUntilDo::MSG = T.let(T.unsafe(nil), String) class RuboCop::Cop::Style::WhileUntilModifier < ::RuboCop::Cop::Base include ::RuboCop::Cop::Alignment include ::RuboCop::Cop::LineLengthHelp + include ::RuboCop::Cop::AllowedPattern include ::RuboCop::Cop::StatementModifier extend ::RuboCop::Cop::AutoCorrector @@ -57849,118 +59414,162 @@ end # # pkg:gem/rubocop#lib/rubocop/cop/team.rb:13 class RuboCop::Cop::Team - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:64 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:89 def initialize(cops, config = T.unsafe(nil), options = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:75 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:102 def autocorrect?; end - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:60 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:69 def cops; end - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:79 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:106 def debug?; end - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:60 + # When set to true, the corrected source is not written back to the + # inspected file; it is exposed through `#updated_source` instead. + # @api private + # + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:74 + def defer_corrections; end + + # When set to true, the corrected source is not written back to the + # inspected file; it is exposed through `#updated_source` instead. + # @api private + # + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:74 + def defer_corrections=(_arg0); end + + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:69 def errors; end - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:125 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:152 def external_dependency_checksum; end # @deprecated # - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:117 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:144 def forces; end # @deprecated. Use investigate # @return Array # - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:85 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:112 def inspect_file(processed_source); end # @return [Commissioner::InvestigationReport] # - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:94 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:121 def investigate(processed_source, offset: T.unsafe(nil), original: T.unsafe(nil)); end # @return [Array] # - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:101 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:128 def investigate_fragments(fragments, original:); end - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:60 + # Registry used to mobilize cops that were not instantiated because they are disabled in + # the config, when a comment directive opts them back in for a file. + # + # @api private + # + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:85 + def standby_registry=(_arg0); end + + # The corrected source of the last investigation, if corrections were + # made with `#defer_corrections` enabled. + # @api private + # + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:79 + def updated_source; end + + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:69 def updated_source_file; end - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:62 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:87 def updated_source_file?; end - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:60 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:69 def warnings; end private - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:136 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:174 + def apply_correction(processed_source, new_source); end + + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:163 def autocorrect(processed_source, corrector); end - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:154 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:185 def be_ready; end - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:256 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:315 def collate_corrections(report, offset:, original:); end - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:247 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:306 def collated_corrector(report, offset:, original:); end - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:276 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:335 def each_corrector(report); end - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:328 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:387 def handle_error(error, location, cop); end - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:320 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:379 def handle_warning(error, location); end - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:203 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:235 def investigate_fragment(fragment, original, data); end # @return [Commissioner::InvestigationReport] # - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:168 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:200 def investigate_partial(cops, processed_source, offset:, original:); end - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:173 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:205 def investigate_with_corrector(processed_source, offset:, original:); end - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:266 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:325 def merge_corrector!(corrector, to_merge, offset:); end - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:303 + # Cops that were not mobilized because they are disabled in the config, + # but are opted back in for the given file by an `enable` comment directive. + # Their classes are loaded on demand. + # + # @return [Array] + # + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:269 + def opted_in_standby_cops(processed_source); end + + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:362 def process_errors(file, errors); end - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:162 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:194 def reset; end # @return [Array] # - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:222 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:254 def roundup_relevant_cops(processed_source); end - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:238 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:283 + def standby_cop(cop_name); end + + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:297 def support_target_rails_version?(cop); end - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:232 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:291 def support_target_ruby_version?(cop); end - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:291 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:350 def suppress_clobbering; end - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:297 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:356 def validate_config; end class << self # @return [Array] needed for the given cops # - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:46 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:55 def forces_for(cops); end # @return [Team] with cops assembled from the given `cop_classes` @@ -57970,7 +59579,7 @@ class RuboCop::Cop::Team # @return [Array] # - # pkg:gem/rubocop#lib/rubocop/cop/team.rb:37 + # pkg:gem/rubocop#lib/rubocop/cop/team.rb:46 def mobilize_cops(cop_classes, config, options = T.unsafe(nil)); end # @return [Team] @@ -59346,7 +60955,7 @@ class RuboCop::Cop::VariableForce::Variable # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:15 def initialize(name, declaration_node, scope); end - # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:105 + # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:117 def argument?; end # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:31 @@ -59355,10 +60964,10 @@ class RuboCop::Cop::VariableForce::Variable # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:11 def assignments; end - # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:113 + # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:125 def block_argument?; end - # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:85 + # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:97 def capture_with_block!; end # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:11 @@ -59367,24 +60976,30 @@ class RuboCop::Cop::VariableForce::Variable # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:13 def captured_by_block?; end + # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:93 + def covers?(container, node); end + # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:11 def declaration_node; end - # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:121 + # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:133 def explicit_block_local_variable?; end # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:77 - def in_modifier_conditional?(assignment); end + def in_modifier_conditional?(assignment, reference_node); end - # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:117 + # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:129 def keyword_argument?; end # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:39 def mark_last_as_reassigned!(assignment); end - # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:109 + # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:121 def method_argument?; end + # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:87 + def modifier_conditional_of(node); end + # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:11 def name; end @@ -59400,7 +61015,7 @@ class RuboCop::Cop::VariableForce::Variable # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:11 def scope; end - # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:101 + # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:113 def should_be_unused?; end # This is a convenient way to check whether the variable is used @@ -59412,7 +61027,7 @@ class RuboCop::Cop::VariableForce::Variable # This means we cannot track the usage of the variable. # So we consider it's used to suppress false positive offenses. # - # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:97 + # pkg:gem/rubocop#lib/rubocop/cop/variable_force/variable.rb:109 def used?; end end @@ -59553,198 +61168,198 @@ RuboCop::Cop::VisibilityHelp::VISIBILITY_SCOPES = T.let(T.unsafe(nil), Set) # # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:7 class RuboCop::DirectiveComment - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:52 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:54 def initialize(comment, cop_registry = T.unsafe(nil)); end # Checks if all cops specified in this directive # - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:146 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:148 def all_cops?; end - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:50 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:52 def comment; end # Returns array of specified in this directive cop names # - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:151 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:153 def cop_names; end - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:50 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:52 def cop_registry; end - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:50 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:52 def cops; end # Returns array of specified in this directive department names # when all department disabled # - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:162 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:164 def department_names; end - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:176 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:178 def directive_count; end # Checks if this directive disables cops # - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:111 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:113 def disabled?; end # Checks if this directive disables all cops # - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:141 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:143 def disabled_all?; end # Checks if this directive enables cops # - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:116 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:118 def enabled?; end # Checks if this directive enables all cops # - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:136 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:138 def enabled_all?; end # Checks if directive departments include cop # - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:167 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:169 def in_directive_department?(cop); end # Returns line number for directive # - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:181 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:183 def line_number; end - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:66 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:68 def malformed?; end # Checks if this directive contains all the given cop names # - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:87 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:89 def match?(cop_names); end # Returns match captures to directive comment pattern # - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:100 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:102 def match_captures; end # Checks if the directive comment is missing a cop name # - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:75 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:77 def missing_cop_name?; end - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:50 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:52 def mode; end # Checks if cop department has already used in directive comment # - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:172 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:174 def overridden_by_department?(cop); end # Checks if this directive is a pop # - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:126 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:128 def pop?; end # Checks if this directive is a push # - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:121 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:123 def push?; end # Returns the push arguments as a hash of cop names with their operations # - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:131 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:133 def push_args; end - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:91 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:93 def range; end # Returns an array of cops for this directive comment, without resolving departments # - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:156 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:158 def raw_cop_names; end # Checks if this directive relates to single line # - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:82 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:84 def single_line?; end - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:61 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:63 def start_with_marker?; end private - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:198 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:200 def all_cop_names; end - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:202 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:204 def cop_names_for_department(department); end - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:194 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:196 def department?(name); end - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:207 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:209 def exclude_lint_department_cops(cops); end - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:211 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:213 def parse_push_args; end - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:187 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:189 def parsed_cop_names; end class << self - # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:46 + # pkg:gem/rubocop#lib/rubocop/directive_comment.rb:48 def before_comment(line); end end end # @api private # -# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:27 +# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:29 RuboCop::DirectiveComment::AVAILABLE_MODES = T.let(T.unsafe(nil), Array) # @api private # -# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:23 +# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:25 RuboCop::DirectiveComment::COPS_PATTERN = T.let(T.unsafe(nil), String) # @api private # -# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:21 +# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:23 RuboCop::DirectiveComment::COP_NAMES_PATTERN = T.let(T.unsafe(nil), String) # @api private # -# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:19 +# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:21 RuboCop::DirectiveComment::COP_NAMES_PATTERN_NC = T.let(T.unsafe(nil), String) # @api private # -# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:15 +# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:17 RuboCop::DirectiveComment::COP_NAME_PATTERN = T.let(T.unsafe(nil), String) # @api private # -# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:17 +# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:19 RuboCop::DirectiveComment::COP_NAME_PATTERN_NC = T.let(T.unsafe(nil), String) # @api private # -# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:35 +# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:37 RuboCop::DirectiveComment::DIRECTIVE_COMMENT_REGEXP = T.let(T.unsafe(nil), Regexp) # @api private # -# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:33 +# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:35 RuboCop::DirectiveComment::DIRECTIVE_HEADER_PATTERN = T.let(T.unsafe(nil), String) # @api private # -# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:29 +# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:31 RuboCop::DirectiveComment::DIRECTIVE_MARKER_PATTERN = T.let(T.unsafe(nil), String) # @api private # -# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:31 +# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:33 RuboCop::DirectiveComment::DIRECTIVE_MARKER_REGEXP = T.let(T.unsafe(nil), Regexp) # @api private @@ -59764,17 +61379,22 @@ RuboCop::DirectiveComment::LINT_SYNTAX_COP = T.let(T.unsafe(nil), String) # @api private # -# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:42 +# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:44 RuboCop::DirectiveComment::MALFORMED_DIRECTIVE_WITHOUT_COP_NAME_REGEXP = T.let(T.unsafe(nil), Regexp) # @api private # -# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:25 +# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:27 RuboCop::DirectiveComment::PUSH_POP_ARGS_PATTERN = T.let(T.unsafe(nil), String) # @api private # -# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:40 +# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:15 +RuboCop::DirectiveComment::STYLE_DISABLE_COPS_DIRECTIVE_COP = T.let(T.unsafe(nil), String) + +# @api private +# +# pkg:gem/rubocop#lib/rubocop/directive_comment.rb:42 RuboCop::DirectiveComment::TRAILING_COMMENT_MARKER = T.let(T.unsafe(nil), String) # An Error exception is different from an Offense with severity 'error' @@ -60043,15 +61663,9 @@ class RuboCop::FeatureLoader # pkg:gem/rubocop#lib/rubocop/feature_loader.rb:75 def relative?; end - # @param [LoadError] error - # @return [Boolean] - # - # pkg:gem/rubocop#lib/rubocop/feature_loader.rb:81 - def seems_cannot_load_such_file_error?(error); end - # @return [String] # - # pkg:gem/rubocop#lib/rubocop/feature_loader.rb:86 + # pkg:gem/rubocop#lib/rubocop/feature_loader.rb:80 def target; end class << self @@ -62025,12 +63639,9 @@ class RuboCop::PendingCopsReporter def pending_cops_only_qualified(pending_cops); end # pkg:gem/rubocop#lib/rubocop/pending_cops_reporter.rb:35 - def possible_new_cops?(config); end - - # pkg:gem/rubocop#lib/rubocop/pending_cops_reporter.rb:40 def warn_on_pending_cops(pending_cops); end - # pkg:gem/rubocop#lib/rubocop/pending_cops_reporter.rb:48 + # pkg:gem/rubocop#lib/rubocop/pending_cops_reporter.rb:43 def warn_pending_cop(cop); end end end @@ -62204,6 +63815,14 @@ module RuboCop::ProjectIndexLoader # pkg:gem/rubocop#lib/rubocop/project_index_loader.rb:57 def build_index(paths); end + # The Ruby source files of every gem in the project's bundle, for + # `AllCops/ProjectIndexIncludesGems`. Returns an empty array when RuboCop + # does not run inside Bundler, so the option silently degrades to + # project-only indexing. + # + # pkg:gem/rubocop#lib/rubocop/project_index_loader.rb:70 + def bundled_gem_source_files; end + # pkg:gem/rubocop#lib/rubocop/project_index_loader.rb:24 def supported_ruby?; end @@ -62228,6 +63847,14 @@ module RuboCop::ProjectIndexLoader # pkg:gem/rubocop#lib/rubocop/project_index_loader.rb:57 def build_index(paths); end + # The Ruby source files of every gem in the project's bundle, for + # `AllCops/ProjectIndexIncludesGems`. Returns an empty array when RuboCop + # does not run inside Bundler, so the option silently degrades to + # project-only indexing. + # + # pkg:gem/rubocop#lib/rubocop/project_index_loader.rb:70 + def bundled_gem_source_files; end + # pkg:gem/rubocop#lib/rubocop/project_index_loader.rb:24 def supported_ruby?; end @@ -62322,7 +63949,7 @@ class RuboCop::ResultCache # This context is for anything that's not (1) the RuboCop executable # checksum or (2) the inspected file checksum. # - # pkg:gem/rubocop#lib/rubocop/result_cache.rb:254 + # pkg:gem/rubocop#lib/rubocop/result_cache.rb:256 def context_checksum(team, options); end # pkg:gem/rubocop#lib/rubocop/result_cache.rb:178 @@ -62429,130 +64056,164 @@ class RuboCop::Runner private - # pkg:gem/rubocop#lib/rubocop/runner.rb:269 + # pkg:gem/rubocop#lib/rubocop/runner.rb:297 def add_redundant_disables(file, offenses, source); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:243 + # pkg:gem/rubocop#lib/rubocop/runner.rb:107 + def build_project_index(target_files); end + + # pkg:gem/rubocop#lib/rubocop/runner.rb:129 + def bundled_gem_files; end + + # pkg:gem/rubocop#lib/rubocop/runner.rb:271 def cached_result(file, team); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:324 + # pkg:gem/rubocop#lib/rubocop/runner.rb:352 def cached_run?; end # Check whether a run created source identical to a previous run, which # means that we definitely have an infinite loop. # - # pkg:gem/rubocop#lib/rubocop/runner.rb:400 + # pkg:gem/rubocop#lib/rubocop/runner.rb:461 def check_for_infinite_loop(processed_source, offenses_by_iteration); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:295 + # pkg:gem/rubocop#lib/rubocop/runner.rb:323 def check_for_redundant_disables?(source); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:503 + # pkg:gem/rubocop#lib/rubocop/runner.rb:561 def considered_failure?(offense); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:540 + # pkg:gem/rubocop#lib/rubocop/runner.rb:598 def default_config(cop_name); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:342 + # pkg:gem/rubocop#lib/rubocop/runner.rb:370 def do_inspection_loop(file); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:309 + # When corrections were written to disk and read back between iterations, + # the text-mode write converted LF to CRLF on Windows, and cops like + # `Layout/EndOfLine` rely on seeing the source as it would be on disk. + # Apply the same conversion to the in-memory source. The final `File.write` + # still performs it for the file itself. + # + # pkg:gem/rubocop#lib/rubocop/runner.rb:423 + def emulate_write_read_cycle(source); end + + # pkg:gem/rubocop#lib/rubocop/runner.rb:337 def except_redundant_cop_disable_directive?; end - # pkg:gem/rubocop#lib/rubocop/runner.rb:422 + # pkg:gem/rubocop#lib/rubocop/runner.rb:483 def extract_ruby_sources(processed_source); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:318 + # pkg:gem/rubocop#lib/rubocop/runner.rb:346 def file_finished(file, offenses); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:137 + # pkg:gem/rubocop#lib/rubocop/runner.rb:165 def file_iterator(files, &block); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:247 + # pkg:gem/rubocop#lib/rubocop/runner.rb:275 def file_offense_cache(file); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:235 + # pkg:gem/rubocop#lib/rubocop/runner.rb:263 def file_offenses(file); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:313 + # pkg:gem/rubocop#lib/rubocop/runner.rb:341 def file_started(file); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:483 - def filter_cop_classes(cop_classes, config); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:96 def find_target_files(paths); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:157 + # pkg:gem/rubocop#lib/rubocop/runner.rb:185 def finished_report(file, index, offenses); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:494 + # pkg:gem/rubocop#lib/rubocop/runner.rb:552 def formatter_set; end - # pkg:gem/rubocop#lib/rubocop/runner.rb:555 - def get_processed_source(file, prism_result); end + # pkg:gem/rubocop#lib/rubocop/runner.rb:613 + def get_processed_source(file, prism_result, source: T.unsafe(nil)); end + + # Custom ruby extractors may derive their fragments from the file on + # disk rather than from the passed processed source, so corrections can + # only be kept in memory when the default extractor is used. + # + # pkg:gem/rubocop#lib/rubocop/runner.rb:432 + def in_memory_corrections_possible?; end - # pkg:gem/rubocop#lib/rubocop/runner.rb:414 + # pkg:gem/rubocop#lib/rubocop/runner.rb:475 def inspect_file(processed_source, team = T.unsafe(nil)); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:118 + # pkg:gem/rubocop#lib/rubocop/runner.rb:146 def inspect_files(files); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:375 + # pkg:gem/rubocop#lib/rubocop/runner.rb:411 + def inspect_iteration(processed_source); end + + # pkg:gem/rubocop#lib/rubocop/runner.rb:436 def iterate_until_no_changes(source, offenses_by_iteration); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:221 + # pkg:gem/rubocop#lib/rubocop/runner.rb:249 def list_files(paths); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:536 + # pkg:gem/rubocop#lib/rubocop/runner.rb:594 def mark_as_safe_by_config?(config); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:544 + # pkg:gem/rubocop#lib/rubocop/runner.rb:602 def minimum_severity_to_fail; end - # pkg:gem/rubocop#lib/rubocop/runner.rb:436 + # pkg:gem/rubocop#lib/rubocop/runner.rb:526 + def mobilize_cop_badge?(badge, config); end + + # pkg:gem/rubocop#lib/rubocop/runner.rb:497 def mobilize_team(processed_source); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:449 + # pkg:gem/rubocop#lib/rubocop/runner.rb:510 def mobilized_cop_classes(config); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:512 + # pkg:gem/rubocop#lib/rubocop/runner.rb:570 def offense_displayed?(offense); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:524 + # pkg:gem/rubocop#lib/rubocop/runner.rb:582 def offenses_to_report(offenses); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:204 + # pkg:gem/rubocop#lib/rubocop/runner.rb:232 def parallel_file_iterator(files, on_start, on_finish, &block); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:225 + # pkg:gem/rubocop#lib/rubocop/runner.rb:253 def process_file(file); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:171 + # pkg:gem/rubocop#lib/rubocop/runner.rb:199 def process_remaining_report_queue; end - # pkg:gem/rubocop#lib/rubocop/runner.rb:166 + # pkg:gem/rubocop#lib/rubocop/runner.rb:194 def process_report_queue_entry(index); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:193 + # pkg:gem/rubocop#lib/rubocop/runner.rb:221 def project_index_disables_parallel?; end - # pkg:gem/rubocop#lib/rubocop/runner.rb:107 + # pkg:gem/rubocop#lib/rubocop/runner.rb:135 def project_index_enabled?; end - # pkg:gem/rubocop#lib/rubocop/runner.rb:473 + # The index always covers the whole project, not just the files being + # inspected: cross-file offenses must not depend on which files a + # particular run happens to include, or single-file runs (editors, CI + # sharding) would see different offenses than full runs. The project is + # rooted at the directory of the configuration that enabled the index. + # + # pkg:gem/rubocop#lib/rubocop/runner.rb:118 + def project_index_files(target_files); end + + # pkg:gem/rubocop#lib/rubocop/runner.rb:538 def qualify_option_cop_names; end - # pkg:gem/rubocop#lib/rubocop/runner.rb:301 + # pkg:gem/rubocop#lib/rubocop/runner.rb:329 def redundant_cop_disable_directive(file); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:177 + # pkg:gem/rubocop#lib/rubocop/runner.rb:205 def run_in_parallel?(files); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:332 + # pkg:gem/rubocop#lib/rubocop/runner.rb:360 def save_in_cache(cache, offenses); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:208 + # pkg:gem/rubocop#lib/rubocop/runner.rb:236 def serial_file_iterator(files, on_start, on_finish, &block); end # A Cop::Team instance is stateful and may change when inspecting. @@ -62560,16 +64221,16 @@ class RuboCop::Runner # otherwise dormant team that can be used for config- and option- # level caching in ResultCache. # - # pkg:gem/rubocop#lib/rubocop/runner.rb:587 + # pkg:gem/rubocop#lib/rubocop/runner.rb:652 def standby_team(config); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:490 + # pkg:gem/rubocop#lib/rubocop/runner.rb:548 def style_guide_cops_only?(config); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:528 + # pkg:gem/rubocop#lib/rubocop/runner.rb:586 def supports_safe_autocorrect?(offense); end - # pkg:gem/rubocop#lib/rubocop/runner.rb:284 + # pkg:gem/rubocop#lib/rubocop/runner.rb:312 def team_for_redundant_disables(file, offenses, source); end class << self diff --git a/sorbet/rbi/gems/zeitwerk@2.8.2.rbi b/sorbet/rbi/gems/zeitwerk@2.8.3.rbi similarity index 99% rename from sorbet/rbi/gems/zeitwerk@2.8.2.rbi rename to sorbet/rbi/gems/zeitwerk@2.8.3.rbi index 2ca063c..166710b 100644 --- a/sorbet/rbi/gems/zeitwerk@2.8.2.rbi +++ b/sorbet/rbi/gems/zeitwerk@2.8.3.rbi @@ -885,7 +885,7 @@ module Zeitwerk::Loader::EagerLoad # In order to invoke this method, the caller has to ensure `child` is a # strict namespace descendant of `root_namespace`. # - # pkg:gem/zeitwerk#lib/zeitwerk/loader/eager_load.rb:191 + # pkg:gem/zeitwerk#lib/zeitwerk/loader/eager_load.rb:193 def eager_load_child_namespace(child, child_name, root_dir, root_namespace); end end