openfeature-sdk-sorbet 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -1
  3. data/.ruby-version +1 -1
  4. data/.tool-versions +1 -1
  5. data/CHANGELOG.md +12 -3
  6. data/Gemfile +1 -1
  7. data/Gemfile.lock +55 -49
  8. data/README.md +23 -6
  9. data/lib/open_feature/client.rb +90 -32
  10. data/lib/open_feature/client_metadata.rb +1 -0
  11. data/lib/open_feature/evaluation_context.rb +2 -2
  12. data/lib/open_feature/evaluation_details.rb +2 -2
  13. data/lib/open_feature/hook.rb +41 -1
  14. data/lib/open_feature/hook_context.rb +30 -0
  15. data/lib/open_feature/hooks.rb +22 -0
  16. data/lib/open_feature/multiple_source_provider.rb +28 -12
  17. data/lib/open_feature/no_op_provider.rb +2 -3
  18. data/lib/open_feature/provider.rb +16 -2
  19. data/lib/open_feature/provider_status.rb +13 -0
  20. data/lib/open_feature.rb +9 -2
  21. data/sorbet/rbi/gems/.gitattributes +1 -0
  22. data/sorbet/rbi/gems/{json@2.6.3.rbi → json@2.7.1.rbi} +80 -60
  23. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14237 -0
  24. data/sorbet/rbi/gems/{minitest@5.18.0.rbi → minitest@5.21.2.rbi} +299 -258
  25. data/sorbet/rbi/gems/{parallel@1.23.0.rbi → parallel@1.24.0.rbi} +8 -1
  26. data/sorbet/rbi/gems/{parser@3.2.2.1.rbi → parser@3.3.0.5.rbi} +438 -2219
  27. data/sorbet/rbi/gems/prism@0.19.0.rbi +25199 -0
  28. data/sorbet/rbi/gems/psych@5.1.2.rbi +1731 -0
  29. data/sorbet/rbi/gems/racc@1.7.3.rbi +157 -0
  30. data/sorbet/rbi/gems/{rake@13.0.6.rbi → rake@13.1.0.rbi} +68 -65
  31. data/sorbet/rbi/gems/{rbi@0.0.16.rbi → rbi@0.1.6.rbi} +628 -755
  32. data/sorbet/rbi/gems/{regexp_parser@2.8.0.rbi → regexp_parser@2.9.0.rbi} +203 -180
  33. data/sorbet/rbi/gems/{rexml@3.2.5.rbi → rexml@3.2.6.rbi} +116 -52
  34. data/sorbet/rbi/gems/{rubocop-ast@1.28.1.rbi → rubocop-ast@1.30.0.rbi} +178 -84
  35. data/sorbet/rbi/gems/{rubocop-minitest@0.31.0.rbi → rubocop-minitest@0.34.5.rbi} +280 -232
  36. data/sorbet/rbi/gems/{rubocop-performance@1.17.1.rbi → rubocop-performance@1.20.2.rbi} +397 -172
  37. data/sorbet/rbi/gems/{rubocop-sorbet@0.7.0.rbi → rubocop-sorbet@0.7.6.rbi} +728 -261
  38. data/sorbet/rbi/gems/{rubocop@1.51.0.rbi → rubocop@1.60.2.rbi} +4006 -1936
  39. data/sorbet/rbi/gems/spoom@1.2.1.rbi +17 -56
  40. data/sorbet/rbi/gems/stringio@3.1.0.rbi +8 -0
  41. data/sorbet/rbi/gems/{tapioca@0.11.6.rbi → tapioca@0.11.17.rbi} +778 -576
  42. data/sorbet/rbi/gems/{thor@1.2.2.rbi → thor@1.3.0.rbi} +775 -395
  43. data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +1 -1
  44. data/sorbet/rbi/gems/yard@0.9.34.rbi +2 -2
  45. data/sorbet/rbi/gems/{zeitwerk@2.6.8.rbi → zeitwerk@2.6.12.rbi} +78 -67
  46. data/sorbet/tapioca/config.yml +2 -2
  47. data/sorbet/tapioca/require.rb +3 -1
  48. metadata +36 -31
  49. data/openfeature-sdk-sorbet.gemspec +0 -35
  50. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +0 -1083
  51. data/sorbet/rbi/gems/irb@1.6.4.rbi +0 -342
  52. data/sorbet/rbi/gems/unparser@0.6.7.rbi +0 -4524
  53. /data/sorbet/rbi/gems/{io-console@0.6.0.rbi → io-console@0.7.2.rbi} +0 -0
  54. /data/sorbet/rbi/gems/{reline@0.3.3.rbi → reline@0.4.2.rbi} +0 -0
  55. /data/sorbet/rbi/gems/{unicode-display_width@2.4.2.rbi → unicode-display_width@2.5.0.rbi} +0 -0
@@ -4,19 +4,19 @@
4
4
  # This is an autogenerated file for types exported from the `rubocop-sorbet` gem.
5
5
  # Please instead update this file by running `bin/tapioca gem rubocop-sorbet`.
6
6
 
7
- # source://rubocop-sorbet//lib/rubocop/sorbet/version.rb#2
7
+ # source://rubocop-sorbet//lib/rubocop/sorbet/version.rb#3
8
8
  module RuboCop; end
9
9
 
10
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#6
10
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#4
11
11
  module RuboCop::Cop; end
12
12
 
13
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#7
13
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#5
14
14
  module RuboCop::Cop::Sorbet; end
15
15
 
16
- # This cop disallows using `.override(allow_incompatible: true)`.
16
+ # Disallows using `.override(allow_incompatible: true)`.
17
17
  # Using `allow_incompatible` suggests a violation of the Liskov
18
18
  # Substitution Principle, meaning that a subclass is not a valid
19
- # subtype of it's superclass. This Cop prevents these design smells
19
+ # subtype of its superclass. This Cop prevents these design smells
20
20
  # from occurring.
21
21
  #
22
22
  # @example
@@ -28,26 +28,33 @@ module RuboCop::Cop::Sorbet; end
28
28
  # sig.override
29
29
  #
30
30
  # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#21
31
- class RuboCop::Cop::Sorbet::AllowIncompatibleOverride < ::RuboCop::Cop::Cop
32
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#35
33
- def allow_incompatible?(param0); end
34
-
35
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#39
36
- def allow_incompatible_override?(param0 = T.unsafe(nil)); end
31
+ class RuboCop::Cop::Sorbet::AllowIncompatibleOverride < ::RuboCop::Cop::Base
32
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#55
33
+ def on_block(node); end
37
34
 
38
- # @return [Boolean]
39
- #
40
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#31
41
- def not_nil?(node); end
35
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#55
36
+ def on_numblock(node); end
42
37
 
43
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#48
38
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#49
44
39
  def on_send(node); end
45
40
 
46
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#22
41
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#41
42
+ def override?(param0 = T.unsafe(nil)); end
43
+
44
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#36
47
45
  def sig?(param0); end
46
+
47
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#27
48
+ def sig_dot_override?(param0 = T.unsafe(nil)); end
48
49
  end
49
50
 
50
- # This cop disallows binding the return value of `T.any`, `T.all`, `T.enum`
51
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#22
52
+ RuboCop::Cop::Sorbet::AllowIncompatibleOverride::MSG = T.let(T.unsafe(nil), String)
53
+
54
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#24
55
+ RuboCop::Cop::Sorbet::AllowIncompatibleOverride::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
56
+
57
+ # Disallows binding the return value of `T.any`, `T.all`, `T.enum`
51
58
  # to a constant directly. To bind the value, one must use `T.type_alias`.
52
59
  #
53
60
  # @example
@@ -58,60 +65,101 @@ end
58
65
  # # good
59
66
  # FooOrBar = T.type_alias { T.any(Foo, Bar) }
60
67
  #
61
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#18
62
- class RuboCop::Cop::Sorbet::BindingConstantWithoutTypeAlias < ::RuboCop::Cop::Cop
63
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#116
64
- def autocorrect(node); end
68
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constant_without_type_alias.rb#18
69
+ class RuboCop::Cop::Sorbet::BindingConstantWithoutTypeAlias < ::RuboCop::Cop::Base
70
+ extend ::RuboCop::Cop::AutoCorrector
65
71
 
66
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#19
67
- def binding_unaliased_type?(param0 = T.unsafe(nil)); end
72
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constant_without_type_alias.rb#65
73
+ def on_casgn(node); end
68
74
 
69
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#51
70
- def dynamic_type_creation_with_block?(param0 = T.unsafe(nil)); end
75
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constant_without_type_alias.rb#48
76
+ def requires_type_alias?(param0 = T.unsafe(nil)); end
71
77
 
72
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#66
73
- def generic_parameter_decl_block_call?(param0 = T.unsafe(nil)); end
78
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constant_without_type_alias.rb#38
79
+ def type_alias_with_block?(param0 = T.unsafe(nil)); end
74
80
 
75
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#60
76
- def generic_parameter_decl_call?(param0 = T.unsafe(nil)); end
81
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constant_without_type_alias.rb#29
82
+ def type_alias_without_block(param0 = T.unsafe(nil)); end
77
83
 
78
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#72
79
- def method_needing_aliasing_on_t?(param0); end
84
+ private
80
85
 
81
- # @return [Boolean]
86
+ # Given nested send nodes, returns the leaf with explicit receiver.
82
87
  #
83
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#85
84
- def not_dynamic_type_creation_with_block?(node); end
85
-
86
- # @return [Boolean]
88
+ # i.e. in Ruby
87
89
  #
88
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#89
89
- def not_generic_parameter_decl?(node); end
90
-
91
- # @return [Boolean]
90
+ # a.b.c.d.e.f
91
+ # ^^^
92
92
  #
93
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#93
94
- def not_nil?(node); end
95
-
96
- # @return [Boolean]
93
+ # i.e. in AST
97
94
  #
98
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#81
99
- def not_t_let?(node); end
95
+ # (send (send (send (send (send (send nil :a) :b) :c) :d) :e) :f)
96
+ # ^^^^^^^^^^^^^^^^^^^^^^^
97
+ #
98
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constant_without_type_alias.rb#98
99
+ def send_leaf(node); end
100
+ end
100
101
 
101
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#97
102
- def on_casgn(node); end
102
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constant_without_type_alias.rb#21
103
+ RuboCop::Cop::Sorbet::BindingConstantWithoutTypeAlias::MSG = T.let(T.unsafe(nil), String)
104
+
105
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constant_without_type_alias.rb#23
106
+ RuboCop::Cop::Sorbet::BindingConstantWithoutTypeAlias::WITHOUT_BLOCK_MSG = T.let(T.unsafe(nil), String)
107
+
108
+ # Checks for the a mistaken variant of the "obsolete memoization pattern" that used to be required
109
+ # on every call, causing the memoized value to be discarded and recomputed on every call.
110
+ #
111
+ # This cop will correct it to read from the ivar instead of `nil`, which will memoize it correctly.
112
+ #
113
+ # The result of this correction will be the "obsolete memoization pattern", which can further be corrected by
114
+ # the `Sorbet/ObsoleteStrictMemoization` cop.
115
+ #
116
+ # See `Sorbet/ObsoleteStrictMemoization` for more details.
117
+ #
118
+ # @example
119
+ # # bad
120
+ # sig { returns(Foo) }
121
+ # def foo
122
+ # # This `nil` is likely a mistake, causing the memoized value to be discarded and recomputed on every call.
123
+ # @foo = T.let(nil, T.nilable(Foo))
124
+ # @foo ||= some_computation
125
+ # end
126
+ #
127
+ # # good
128
+ # sig { returns(Foo) }
129
+ # def foo
130
+ # # This will now memoize the value as was likely intended, so `some_computation` is only ever called once.
131
+ # # ⚠️If `some_computation` has side effects, this might be a breaking change!
132
+ # @foo = T.let(@foo, T.nilable(Foo))
133
+ # @foo ||= some_computation
134
+ # end
135
+ # @see Sorbet/ObsoleteStrictMemoization
136
+ #
137
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/buggy_obsolete_strict_memoization.rb#42
138
+ class RuboCop::Cop::Sorbet::BuggyObsoleteStrictMemoization < ::RuboCop::Cop::Base
139
+ include ::RuboCop::Cop::RangeHelp
140
+ include ::RuboCop::Cop::MatchRange
141
+ include ::RuboCop::Cop::Alignment
142
+ include ::RuboCop::Cop::LineLengthHelp
143
+ include ::RuboCop::Cop::Sorbet::TargetSorbetVersion
144
+ extend ::RuboCop::Cop::AutoCorrector
145
+ extend ::RuboCop::Cop::Sorbet::TargetSorbetVersion::ClassMethods
103
146
 
104
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#41
105
- def t_let?(param0 = T.unsafe(nil)); end
147
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/buggy_obsolete_strict_memoization.rb#55
148
+ def buggy_legacy_memoization_pattern?(param0 = T.unsafe(nil)); end
106
149
 
107
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#32
108
- def using_deprecated_type_alias_syntax?(param0 = T.unsafe(nil)); end
150
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/buggy_obsolete_strict_memoization.rb#66
151
+ def on_begin(node); end
109
152
 
110
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#23
111
- def using_type_alias?(param0 = T.unsafe(nil)); end
153
+ # @return [Boolean]
154
+ #
155
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/buggy_obsolete_strict_memoization.rb#77
156
+ def relevant_file?(file); end
112
157
  end
113
158
 
114
- # This cop ensures that callback conditionals are bound to the right type
159
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/buggy_obsolete_strict_memoization.rb#51
160
+ RuboCop::Cop::Sorbet::BuggyObsoleteStrictMemoization::MSG = T.let(T.unsafe(nil), String)
161
+
162
+ # Ensures that callback conditionals are bound to the right type
115
163
  # so that they are type checked properly.
116
164
  #
117
165
  # Auto-correction is unsafe because other libraries define similar style callbacks as Rails, but don't always need
@@ -143,17 +191,17 @@ end
143
191
  #
144
192
  # source://rubocop-sorbet//lib/rubocop/cop/sorbet/callback_conditionals_binding.rb#35
145
193
  class RuboCop::Cop::Sorbet::CallbackConditionalsBinding < ::RuboCop::Cop::Cop
146
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/callback_conditionals_binding.rb#47
194
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/callback_conditionals_binding.rb#75
147
195
  def autocorrect(node); end
148
196
 
149
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/callback_conditionals_binding.rb#99
197
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/callback_conditionals_binding.rb#127
150
198
  def on_send(node); end
151
199
  end
152
200
 
153
201
  # source://rubocop-sorbet//lib/rubocop/cop/sorbet/callback_conditionals_binding.rb#36
154
202
  RuboCop::Cop::Sorbet::CallbackConditionalsBinding::CALLBACKS = T.let(T.unsafe(nil), Array)
155
203
 
156
- # This cop disallows the usage of `checked(true)`. This usage could cause
204
+ # Disallows the usage of `checked(true)`. This usage could cause
157
205
  # confusion; it could lead some people to believe that a method would be checked
158
206
  # even if runtime checks have not been enabled on the class or globally.
159
207
  # Additionally, in the event where checks are enabled, `checked(true)` would
@@ -167,21 +215,22 @@ RuboCop::Cop::Sorbet::CallbackConditionalsBinding::CALLBACKS = T.let(T.unsafe(ni
167
215
  # # good
168
216
  # sig { void }
169
217
  #
170
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb#22
171
- class RuboCop::Cop::Sorbet::CheckedTrueInSignature < ::RuboCop::Cop::Sorbet::SignatureCop
218
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb#19
219
+ class RuboCop::Cop::Sorbet::CheckedTrueInSignature < ::RuboCop::Cop::Cop
172
220
  include ::RuboCop::Cop::RangeHelp
221
+ include ::RuboCop::Cop::Sorbet::SignatureHelp
173
222
 
174
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb#25
223
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb#24
175
224
  def offending_node(param0); end
176
225
 
177
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb#36
226
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb#35
178
227
  def on_signature(node); end
179
228
  end
180
229
 
181
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb#29
230
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb#28
182
231
  RuboCop::Cop::Sorbet::CheckedTrueInSignature::MESSAGE = T.let(T.unsafe(nil), String)
183
232
 
184
- # This cop disallows the calls that are used to get constants fom Strings
233
+ # Disallows the calls that are used to get constants fom Strings
185
234
  # such as +constantize+, +const_get+, and +constants+.
186
235
  #
187
236
  # The goal of this cop is to make the code easier to statically analyze,
@@ -210,21 +259,18 @@ RuboCop::Cop::Sorbet::CheckedTrueInSignature::MESSAGE = T.let(T.unsafe(nil), Str
210
259
  # # good
211
260
  # { "User" => User }.fetch(class_name)
212
261
  #
213
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/constants_from_strings.rb#36
262
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/constants_from_strings.rb#37
214
263
  class RuboCop::Cop::Sorbet::ConstantsFromStrings < ::RuboCop::Cop::Cop
215
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/constants_from_strings.rb#37
264
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/constants_from_strings.rb#38
216
265
  def constant_from_string?(param0 = T.unsafe(nil)); end
217
266
 
218
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/constants_from_strings.rb#41
267
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/constants_from_strings.rb#42
219
268
  def on_send(node); end
220
269
  end
221
270
 
222
- # This cop checks for blank lines after signatures.
223
- #
224
- # It also suggests an autocorrect
271
+ # Checks for blank lines after signatures.
225
272
  #
226
273
  # @example
227
- #
228
274
  # # bad
229
275
  # sig { void }
230
276
  #
@@ -234,23 +280,31 @@ end
234
280
  # sig { void }
235
281
  # def foo; end
236
282
  #
237
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb#23
238
- class RuboCop::Cop::Sorbet::EmptyLineAfterSig < ::RuboCop::Cop::Sorbet::SignatureCop
283
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb#17
284
+ class RuboCop::Cop::Sorbet::EmptyLineAfterSig < ::RuboCop::Cop::Base
239
285
  include ::RuboCop::Cop::RangeHelp
286
+ include ::RuboCop::Cop::Sorbet::SignatureHelp
287
+ extend ::RuboCop::Cop::AutoCorrector
240
288
 
241
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb#33
242
- def autocorrect(node); end
289
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb#34
290
+ def on_signature(sig); end
243
291
 
244
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb#26
245
- def on_signature(node); end
292
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb#25
293
+ def sig_or_signable_method_definition?(param0 = T.unsafe(nil)); end
246
294
 
247
295
  private
248
296
 
249
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb#48
250
- def next_method(node); end
297
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb#57
298
+ def lines_between(node1, node2, buffer: T.unsafe(nil)); end
299
+
300
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb#53
301
+ def next_sibling(node); end
251
302
  end
252
303
 
253
- # This cop checks that the Sorbet sigil comes as the first magic comment in the file.
304
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb#22
305
+ RuboCop::Cop::Sorbet::EmptyLineAfterSig::MSG = T.let(T.unsafe(nil), String)
306
+
307
+ # Checks that the Sorbet sigil comes as the first magic comment in the file.
254
308
  #
255
309
  # The expected order for magic comments is: (en)?coding, typed, warn_indent then frozen_string_literal.
256
310
  #
@@ -283,31 +337,31 @@ class RuboCop::Cop::Sorbet::EnforceSigilOrder < ::RuboCop::Cop::Sorbet::ValidSig
283
337
 
284
338
  # checks
285
339
  #
286
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#91
340
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#92
287
341
  def check_magic_comments_order(tokens); end
288
342
 
289
343
  # Get all the tokens in `processed_source` that match `MAGIC_REGEX`
290
344
  #
291
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#83
345
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#84
292
346
  def extract_magic_comments(processed_source); end
293
347
  end
294
348
 
295
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#67
349
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#68
296
350
  RuboCop::Cop::Sorbet::EnforceSigilOrder::CODING_REGEX = T.let(T.unsafe(nil), Regexp)
297
351
 
298
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#69
352
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#70
299
353
  RuboCop::Cop::Sorbet::EnforceSigilOrder::FROZEN_REGEX = T.let(T.unsafe(nil), Regexp)
300
354
 
301
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#68
355
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#69
302
356
  RuboCop::Cop::Sorbet::EnforceSigilOrder::INDENT_REGEX = T.let(T.unsafe(nil), Regexp)
303
357
 
304
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#78
358
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#79
305
359
  RuboCop::Cop::Sorbet::EnforceSigilOrder::MAGIC_REGEX = T.let(T.unsafe(nil), Regexp)
306
360
 
307
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#71
361
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#72
308
362
  RuboCop::Cop::Sorbet::EnforceSigilOrder::PREFERRED_ORDER = T.let(T.unsafe(nil), Hash)
309
363
 
310
- # This cop checks that every method definition and attribute accessor has a Sorbet signature.
364
+ # Checks that every method definition and attribute accessor has a Sorbet signature.
311
365
  #
312
366
  # It also suggest an autocorrect with placeholders so the following code:
313
367
  #
@@ -327,90 +381,92 @@ RuboCop::Cop::Sorbet::EnforceSigilOrder::PREFERRED_ORDER = T.let(T.unsafe(nil),
327
381
  # * `ParameterTypePlaceholder`: placeholders used for parameter types (default: 'T.untyped')
328
382
  # * `ReturnTypePlaceholder`: placeholders used for return types (default: 'T.untyped')
329
383
  #
330
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#29
331
- class RuboCop::Cop::Sorbet::EnforceSignatures < ::RuboCop::Cop::Sorbet::SignatureCop
384
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#27
385
+ class RuboCop::Cop::Sorbet::EnforceSignatures < ::RuboCop::Cop::Cop
386
+ include ::RuboCop::Cop::Sorbet::SignatureHelp
387
+
332
388
  # @return [EnforceSignatures] a new instance of EnforceSignatures
333
389
  #
334
390
  # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#30
335
391
  def initialize(config = T.unsafe(nil), options = T.unsafe(nil)); end
336
392
 
337
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#35
393
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#36
338
394
  def accessor?(param0 = T.unsafe(nil)); end
339
395
 
340
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#55
396
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#56
341
397
  def autocorrect(node); end
342
398
 
343
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#39
399
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#40
344
400
  def on_def(node); end
345
401
 
346
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#43
402
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#44
347
403
  def on_defs(node); end
348
404
 
349
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#47
405
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#48
350
406
  def on_send(node); end
351
407
 
352
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#51
408
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#52
353
409
  def on_signature(node); end
354
410
 
355
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#74
411
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#75
356
412
  def scope(node); end
357
413
 
358
414
  private
359
415
 
360
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#82
416
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#84
361
417
  def check_node(node); end
362
418
 
363
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#93
419
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#95
364
420
  def param_type_placeholder; end
365
421
 
366
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#97
422
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#99
367
423
  def return_type_placeholder; end
368
424
  end
369
425
 
370
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#101
426
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#103
371
427
  class RuboCop::Cop::Sorbet::EnforceSignatures::SigSuggestion
372
428
  # @return [SigSuggestion] a new instance of SigSuggestion
373
429
  #
374
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#104
430
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#106
375
431
  def initialize(indent, param_placeholder, return_placeholder); end
376
432
 
377
433
  # Returns the value of attribute params.
378
434
  #
379
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#102
435
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#104
380
436
  def params; end
381
437
 
382
438
  # Sets the attribute params
383
439
  #
384
440
  # @param value the value to set the attribute params to.
385
441
  #
386
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#102
442
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#104
387
443
  def params=(_arg0); end
388
444
 
389
445
  # Returns the value of attribute returns.
390
446
  #
391
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#102
447
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#104
392
448
  def returns; end
393
449
 
394
450
  # Sets the attribute returns
395
451
  #
396
452
  # @param value the value to set the attribute returns to.
397
453
  #
398
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#102
454
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#104
399
455
  def returns=(_arg0); end
400
456
 
401
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#112
457
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#114
402
458
  def to_autocorrect; end
403
459
 
404
460
  private
405
461
 
406
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#124
462
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#126
407
463
  def generate_params; end
408
464
 
409
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#135
465
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#138
410
466
  def generate_return; end
411
467
  end
412
468
 
413
- # This cop checks that there is only one Sorbet sigil in a given file
469
+ # Checks that there is only one Sorbet sigil in a given file
414
470
  #
415
471
  # For example, the following class with two sigils
416
472
  #
@@ -430,7 +486,7 @@ end
430
486
  class RuboCop::Cop::Sorbet::EnforceSingleSigil < ::RuboCop::Cop::Sorbet::ValidSigil
431
487
  include ::RuboCop::Cop::RangeHelp
432
488
 
433
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_single_sigil.rb#39
489
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_single_sigil.rb#40
434
490
  def autocorrect(_node); end
435
491
 
436
492
  # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_single_sigil.rb#29
@@ -438,11 +494,11 @@ class RuboCop::Cop::Sorbet::EnforceSingleSigil < ::RuboCop::Cop::Sorbet::ValidSi
438
494
 
439
495
  protected
440
496
 
441
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_single_sigil.rb#55
497
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_single_sigil.rb#56
442
498
  def extract_all_sigils(processed_source); end
443
499
  end
444
500
 
445
- # This cop makes the Sorbet `false` sigil mandatory in all files.
501
+ # Makes the Sorbet `false` sigil mandatory in all files.
446
502
  #
447
503
  # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/false_sigil.rb#10
448
504
  class RuboCop::Cop::Sorbet::FalseSigil < ::RuboCop::Cop::Sorbet::HasSigil
@@ -450,7 +506,7 @@ class RuboCop::Cop::Sorbet::FalseSigil < ::RuboCop::Cop::Sorbet::HasSigil
450
506
  def minimum_strictness; end
451
507
  end
452
508
 
453
- # This cop ensures RBI shims do not include a call to extend T::Sig
509
+ # Ensures RBI shims do not include a call to extend T::Sig
454
510
  # or to extend T::Helpers
455
511
  #
456
512
  # @example
@@ -471,61 +527,76 @@ end
471
527
  # end
472
528
  #
473
529
  # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#25
474
- class RuboCop::Cop::Sorbet::ForbidExtendTSigHelpersInShims < ::RuboCop::Cop::Cop
530
+ class RuboCop::Cop::Sorbet::ForbidExtendTSigHelpersInShims < ::RuboCop::Cop::Base
475
531
  include ::RuboCop::Cop::RangeHelp
532
+ extend ::RuboCop::Cop::AutoCorrector
476
533
 
477
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#39
478
- def autocorrect(node); end
479
-
480
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#35
481
- def extend_t_helpers?(param0 = T.unsafe(nil)); end
534
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#33
535
+ def extend_t_sig_or_helpers?(param0 = T.unsafe(nil)); end
482
536
 
483
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#31
484
- def extend_t_sig?(param0 = T.unsafe(nil)); end
485
-
486
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#47
537
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#37
487
538
  def on_send(node); end
488
539
  end
489
540
 
490
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#28
541
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#29
491
542
  RuboCop::Cop::Sorbet::ForbidExtendTSigHelpersInShims::MSG = T.let(T.unsafe(nil), String)
492
543
 
493
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#29
544
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#30
494
545
  RuboCop::Cop::Sorbet::ForbidExtendTSigHelpersInShims::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
495
546
 
547
+ # Correct `send` expressions in include statements by constant literals.
548
+ #
549
+ # Sorbet, the static checker, is not (yet) able to support constructs on the
550
+ # following form:
551
+ #
552
+ # ```ruby
553
+ # class MyClass
554
+ # include send_expr
555
+ # end
556
+ # ```
557
+ #
558
+ # Multiple occurences of this can be found in Shopify's code base like:
559
+ #
560
+ # ```ruby
561
+ # include Rails.application.routes.url_helpers
562
+ # ```
563
+ # or
564
+ # ```ruby
565
+ # include Polaris::Engine.helpers
566
+ # ```
567
+ #
496
568
  # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#29
497
- class RuboCop::Cop::Sorbet::ForbidIncludeConstLiteral < ::RuboCop::Cop::Cop
498
- # @return [ForbidIncludeConstLiteral] a new instance of ForbidIncludeConstLiteral
499
- #
500
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#40
501
- def initialize(*_arg0); end
502
-
503
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#56
504
- def autocorrect(node); end
569
+ class RuboCop::Cop::Sorbet::ForbidIncludeConstLiteral < ::RuboCop::Cop::Base
570
+ extend ::RuboCop::Cop::AutoCorrector
505
571
 
506
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#34
507
- def not_lit_const_include?(param0 = T.unsafe(nil)); end
572
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#36
573
+ def dynamic_inclusion?(param0 = T.unsafe(nil)); end
508
574
 
509
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#45
575
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#40
510
576
  def on_send(node); end
511
577
 
512
- # Returns the value of attribute used_names.
578
+ private
579
+
580
+ # @return [Boolean]
513
581
  #
514
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#32
515
- def used_names; end
582
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#52
583
+ def neither_const_nor_self?(node); end
516
584
 
517
- # Sets the attribute used_names
585
+ # Returns true if the node is within a module declaration that is not anonymous.
518
586
  #
519
- # @param value the value to set the attribute used_names to.
587
+ # @return [Boolean]
520
588
  #
521
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#32
522
- def used_names=(_arg0); end
589
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#57
590
+ def within_onymous_module?(node); end
523
591
  end
524
592
 
525
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#30
593
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#32
526
594
  RuboCop::Cop::Sorbet::ForbidIncludeConstLiteral::MSG = T.let(T.unsafe(nil), String)
527
595
 
528
- # This cop makes sure that RBI files are always located under the defined allowed paths.
596
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#33
597
+ RuboCop::Cop::Sorbet::ForbidIncludeConstLiteral::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
598
+
599
+ # Makes sure that RBI files are always located under the defined allowed paths.
529
600
  #
530
601
  # Options:
531
602
  #
@@ -554,19 +625,199 @@ class RuboCop::Cop::Sorbet::ForbidRBIOutsideOfAllowedPaths < ::RuboCop::Cop::Cop
554
625
  def allowed_paths; end
555
626
  end
556
627
 
557
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb#27
558
- class RuboCop::Cop::Sorbet::ForbidSuperclassConstLiteral < ::RuboCop::Cop::Cop
559
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb#30
560
- def not_lit_const_superclass?(param0 = T.unsafe(nil)); end
628
+ # Correct superclass `send` expressions by constant literals.
629
+ #
630
+ # Sorbet, the static checker, is not (yet) able to support constructs on the
631
+ # following form:
632
+ #
633
+ # ```ruby
634
+ # class Foo < send_expr; end
635
+ # ```
636
+ #
637
+ # Multiple occurences of this can be found in Shopify's code base like:
638
+ #
639
+ # ```ruby
640
+ # class ShopScope < Component::TrustedIdScope[ShopIdentity::ShopId]
641
+ # ```
642
+ # or
643
+ # ```ruby
644
+ # class ApiClientEligibility < Struct.new(:api_client, :match_results, :shop)
645
+ # ```
646
+ #
647
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb#28
648
+ class RuboCop::Cop::Sorbet::ForbidSuperclassConstLiteral < ::RuboCop::Cop::Base
649
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb#32
650
+ def dynamic_superclass?(param0 = T.unsafe(nil)); end
561
651
 
562
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb#38
652
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb#36
563
653
  def on_class(node); end
564
654
  end
565
655
 
566
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb#28
656
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb#29
567
657
  RuboCop::Cop::Sorbet::ForbidSuperclassConstLiteral::MSG = T.let(T.unsafe(nil), String)
568
658
 
569
- # This cop disallows using `T.unsafe` anywhere.
659
+ # Disallow using `T::Struct` and `T::Props`.
660
+ #
661
+ # @example
662
+ #
663
+ # # bad
664
+ # class MyStruct < T::Struct
665
+ # const :foo, String
666
+ # prop :bar, Integer, default: 0
667
+ #
668
+ # def some_method; end
669
+ # end
670
+ #
671
+ # # good
672
+ # class MyStruct
673
+ # extend T::Sig
674
+ #
675
+ # sig { returns(String) }
676
+ # attr_reader :foo
677
+ #
678
+ # sig { returns(Integer) }
679
+ # attr_accessor :bar
680
+ #
681
+ # sig { params(foo: String, bar: Integer) }
682
+ # def initialize(foo:, bar: 0)
683
+ # @foo = foo
684
+ # @bar = bar
685
+ # end
686
+ #
687
+ # def some_method; end
688
+ # end
689
+ #
690
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#38
691
+ class RuboCop::Cop::Sorbet::ForbidTStruct < ::RuboCop::Cop::Base
692
+ include ::RuboCop::Cop::Alignment
693
+ include ::RuboCop::Cop::RangeHelp
694
+ include ::RuboCop::Cop::CommentsHelp
695
+ extend ::RuboCop::Cop::AutoCorrector
696
+
697
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#164
698
+ def on_class(node); end
699
+
700
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#205
701
+ def on_send(node); end
702
+
703
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#162
704
+ def t_props?(param0 = T.unsafe(nil)); end
705
+
706
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#157
707
+ def t_struct?(param0 = T.unsafe(nil)); end
708
+
709
+ private
710
+
711
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#213
712
+ def initialize_method(indent, props); end
713
+
714
+ # @return [Boolean]
715
+ #
716
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#226
717
+ def previous_line_blank?(node); end
718
+ end
719
+
720
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#47
721
+ RuboCop::Cop::Sorbet::ForbidTStruct::MSG_PROPS = T.let(T.unsafe(nil), String)
722
+
723
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#46
724
+ RuboCop::Cop::Sorbet::ForbidTStruct::MSG_STRUCT = T.let(T.unsafe(nil), String)
725
+
726
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#104
727
+ class RuboCop::Cop::Sorbet::ForbidTStruct::Property
728
+ # @return [Property] a new instance of Property
729
+ #
730
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#107
731
+ def initialize(node, kind, name, type, default:, factory:); end
732
+
733
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#123
734
+ def attr_accessor; end
735
+
736
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#119
737
+ def attr_sig; end
738
+
739
+ # Returns the value of attribute default.
740
+ #
741
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#105
742
+ def default; end
743
+
744
+ # Returns the value of attribute factory.
745
+ #
746
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#105
747
+ def factory; end
748
+
749
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#144
750
+ def initialize_assign; end
751
+
752
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#131
753
+ def initialize_param; end
754
+
755
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#127
756
+ def initialize_sig_param; end
757
+
758
+ # Returns the value of attribute kind.
759
+ #
760
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#105
761
+ def kind; end
762
+
763
+ # Returns the value of attribute name.
764
+ #
765
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#105
766
+ def name; end
767
+
768
+ # @return [Boolean]
769
+ #
770
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#151
771
+ def nilable?; end
772
+
773
+ # Returns the value of attribute node.
774
+ #
775
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#105
776
+ def node; end
777
+
778
+ # Returns the value of attribute type.
779
+ #
780
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#105
781
+ def type; end
782
+ end
783
+
784
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#44
785
+ RuboCop::Cop::Sorbet::ForbidTStruct::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
786
+
787
+ # This class walks down the class body of a T::Struct and collects all the properties that will need to be
788
+ # translated into `attr_reader` and `attr_accessor` methods.
789
+ #
790
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#51
791
+ class RuboCop::Cop::Sorbet::ForbidTStruct::TStructWalker
792
+ include ::RuboCop::AST::Traversal
793
+ extend ::RuboCop::AST::NodePattern::Macros
794
+
795
+ # @return [TStructWalker] a new instance of TStructWalker
796
+ #
797
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#57
798
+ def initialize; end
799
+
800
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#63
801
+ def extend_t_sig?(param0 = T.unsafe(nil)); end
802
+
803
+ # Returns the value of attribute has_extend_t_sig.
804
+ #
805
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#55
806
+ def has_extend_t_sig; end
807
+
808
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#72
809
+ def on_send(node); end
810
+
811
+ # Returns the value of attribute props.
812
+ #
813
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#55
814
+ def props; end
815
+
816
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_struct.rb#68
817
+ def t_struct_prop?(param0 = T.unsafe(nil)); end
818
+ end
819
+
820
+ # Disallows using `T.unsafe` anywhere.
570
821
  #
571
822
  # @example
572
823
  #
@@ -577,15 +828,21 @@ RuboCop::Cop::Sorbet::ForbidSuperclassConstLiteral::MSG = T.let(T.unsafe(nil), S
577
828
  # foo
578
829
  #
579
830
  # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_unsafe.rb#17
580
- class RuboCop::Cop::Sorbet::ForbidTUnsafe < ::RuboCop::Cop::Cop
581
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_unsafe.rb#20
831
+ class RuboCop::Cop::Sorbet::ForbidTUnsafe < ::RuboCop::Cop::Base
832
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_unsafe.rb#24
582
833
  def on_send(node); end
583
834
 
584
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_unsafe.rb#18
835
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_unsafe.rb#22
585
836
  def t_unsafe?(param0 = T.unsafe(nil)); end
586
837
  end
587
838
 
588
- # This cop disallows using `T.untyped` anywhere.
839
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_unsafe.rb#18
840
+ RuboCop::Cop::Sorbet::ForbidTUnsafe::MSG = T.let(T.unsafe(nil), String)
841
+
842
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_unsafe.rb#19
843
+ RuboCop::Cop::Sorbet::ForbidTUnsafe::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
844
+
845
+ # Disallows using `T.untyped` anywhere.
589
846
  #
590
847
  # @example
591
848
  #
@@ -598,15 +855,53 @@ end
598
855
  # def foo(my_argument); end
599
856
  #
600
857
  # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_untyped.rb#20
601
- class RuboCop::Cop::Sorbet::ForbidTUntyped < ::RuboCop::Cop::Cop
602
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_untyped.rb#23
858
+ class RuboCop::Cop::Sorbet::ForbidTUntyped < ::RuboCop::Cop::Base
859
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_untyped.rb#27
603
860
  def on_send(node); end
604
861
 
605
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_untyped.rb#21
862
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_untyped.rb#25
606
863
  def t_untyped?(param0 = T.unsafe(nil)); end
607
864
  end
608
865
 
609
- # This cop disallows use of `T.untyped` or `T.nilable(T.untyped)`
866
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_untyped.rb#21
867
+ RuboCop::Cop::Sorbet::ForbidTUntyped::MSG = T.let(T.unsafe(nil), String)
868
+
869
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_untyped.rb#22
870
+ RuboCop::Cop::Sorbet::ForbidTUntyped::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
871
+
872
+ # Disallows defining type aliases that contain shapes
873
+ #
874
+ # @example
875
+ #
876
+ # # bad
877
+ # Foo = T.type_alias { { foo: Integer } }
878
+ #
879
+ # # good
880
+ # class Foo
881
+ # extend T::Sig
882
+ #
883
+ # sig { params(foo: Integer).void }
884
+ # def initialize(foo)
885
+ # @foo = foo
886
+ # end
887
+ # end
888
+ #
889
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_type_aliased_shapes.rb#24
890
+ class RuboCop::Cop::Sorbet::ForbidTypeAliasedShapes < ::RuboCop::Cop::Base
891
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_type_aliased_shapes.rb#36
892
+ def on_block(node); end
893
+
894
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_type_aliased_shapes.rb#36
895
+ def on_numblock(node); end
896
+
897
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_type_aliased_shapes.rb#28
898
+ def shape_type_alias?(param0 = T.unsafe(nil)); end
899
+ end
900
+
901
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_type_aliased_shapes.rb#25
902
+ RuboCop::Cop::Sorbet::ForbidTypeAliasedShapes::MSG = T.let(T.unsafe(nil), String)
903
+
904
+ # Disallows use of `T.untyped` or `T.nilable(T.untyped)`
610
905
  # as a prop type for `T::Struct` or `T::ImmutableStruct`.
611
906
  #
612
907
  # @example
@@ -624,33 +919,32 @@ end
624
919
  # end
625
920
  #
626
921
  # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#25
627
- class RuboCop::Cop::Sorbet::ForbidUntypedStructProps < ::RuboCop::Cop::Cop
628
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#52
922
+ class RuboCop::Cop::Sorbet::ForbidUntypedStructProps < ::RuboCop::Cop::Base
923
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#54
629
924
  def on_class(node); end
630
925
 
631
926
  # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#44
632
927
  def subclass_of_t_struct?(param0 = T.unsafe(nil)); end
633
928
 
634
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#32
635
- def t_immutable_struct(param0 = T.unsafe(nil)); end
636
-
637
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#40
929
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#39
638
930
  def t_nilable_untyped(param0 = T.unsafe(nil)); end
639
931
 
640
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#28
932
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#29
641
933
  def t_struct(param0 = T.unsafe(nil)); end
642
934
 
643
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#36
935
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#34
644
936
  def t_untyped(param0 = T.unsafe(nil)); end
645
937
 
646
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#48
938
+ # Search for untyped prop/const declarations and capture their types
939
+ #
940
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#50
647
941
  def untyped_props(param0); end
648
942
  end
649
943
 
650
944
  # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#26
651
945
  RuboCop::Cop::Sorbet::ForbidUntypedStructProps::MSG = T.let(T.unsafe(nil), String)
652
946
 
653
- # This cop makes the Sorbet typed sigil mandatory in all files.
947
+ # Makes the Sorbet typed sigil mandatory in all files.
654
948
  #
655
949
  # Options:
656
950
  #
@@ -667,7 +961,7 @@ class RuboCop::Cop::Sorbet::HasSigil < ::RuboCop::Cop::Sorbet::ValidSigil
667
961
  def require_sigil_on_all_files?; end
668
962
  end
669
963
 
670
- # This cop makes the Sorbet `ignore` sigil mandatory in all files.
964
+ # Makes the Sorbet `ignore` sigil mandatory in all files.
671
965
  #
672
966
  # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/ignore_sigil.rb#10
673
967
  class RuboCop::Cop::Sorbet::IgnoreSigil < ::RuboCop::Cop::Sorbet::HasSigil
@@ -675,7 +969,54 @@ class RuboCop::Cop::Sorbet::IgnoreSigil < ::RuboCop::Cop::Sorbet::HasSigil
675
969
  def minimum_strictness; end
676
970
  end
677
971
 
678
- # This cop checks for the ordering of keyword arguments required by
972
+ # Disallows declaring implicit conversion methods.
973
+ # Since Sorbet is a nominal (not structural) type system,
974
+ # implicit conversion is currently unsupported.
975
+ #
976
+ # @example
977
+ #
978
+ # # bad
979
+ # def to_str; end
980
+ #
981
+ # # good
982
+ # def to_str(x); end
983
+ #
984
+ # # bad
985
+ # def self.to_str; end
986
+ #
987
+ # # good
988
+ # def self.to_str(x); end
989
+ #
990
+ # # bad
991
+ # alias to_str to_s
992
+ # @note Since the arity of aliased methods is not checked, false positives may result.
993
+ # @see https://docs.ruby-lang.org/en/master/implicit_conversion_rdoc.html
994
+ #
995
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#31
996
+ class RuboCop::Cop::Sorbet::ImplicitConversionMethod < ::RuboCop::Cop::Base
997
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#37
998
+ def on_alias(node); end
999
+
1000
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#42
1001
+ def on_def(node); end
1002
+
1003
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#42
1004
+ def on_defs(node); end
1005
+
1006
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#50
1007
+ def on_send(node); end
1008
+ end
1009
+
1010
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#32
1011
+ RuboCop::Cop::Sorbet::ImplicitConversionMethod::IMPLICIT_CONVERSION_METHODS = T.let(T.unsafe(nil), Array)
1012
+
1013
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#33
1014
+ RuboCop::Cop::Sorbet::ImplicitConversionMethod::MSG = T.let(T.unsafe(nil), String)
1015
+
1016
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#35
1017
+ RuboCop::Cop::Sorbet::ImplicitConversionMethod::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
1018
+
1019
+ # Checks for the ordering of keyword arguments required by
679
1020
  # sorbet-runtime. The ordering requires that all keyword arguments
680
1021
  # are at the end of the parameters list, and all keyword arguments
681
1022
  # with a default value must be after those without default values.
@@ -690,9 +1031,11 @@ end
690
1031
  # sig { params(b: String, a: Integer).void }
691
1032
  # def foo(b:, a: 1); end
692
1033
  #
693
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/keyword_argument_ordering.rb#23
694
- class RuboCop::Cop::Sorbet::KeywordArgumentOrdering < ::RuboCop::Cop::Sorbet::SignatureCop
695
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/keyword_argument_ordering.rb#24
1034
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/keyword_argument_ordering.rb#20
1035
+ class RuboCop::Cop::Sorbet::KeywordArgumentOrdering < ::RuboCop::Cop::Cop
1036
+ include ::RuboCop::Cop::Sorbet::SignatureHelp
1037
+
1038
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/keyword_argument_ordering.rb#23
696
1039
  def on_signature(node); end
697
1040
 
698
1041
  private
@@ -703,16 +1046,69 @@ end
703
1046
 
704
1047
  # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mutable_constant_sorbet_aware_behaviour.rb#8
705
1048
  module RuboCop::Cop::Sorbet::MutableConstantSorbetAwareBehaviour
706
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mutable_constant_sorbet_aware_behaviour.rb#15
1049
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mutable_constant_sorbet_aware_behaviour.rb#18
707
1050
  def on_assignment(value); end
708
1051
 
709
1052
  class << self
710
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mutable_constant_sorbet_aware_behaviour.rb#9
1053
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mutable_constant_sorbet_aware_behaviour.rb#10
711
1054
  def prepended(base); end
712
1055
  end
713
1056
  end
714
1057
 
715
- # This cop ensures one ancestor per requires_ancestor line
1058
+ # Checks for the obsolete pattern for initializing instance variables that was required for older Sorbet
1059
+ #
1060
+ # It's no longer required, as of Sorbet 0.5.10210
1061
+ # See https://sorbet.org/docs/type-assertions#put-type-assertions-behind-memoization
1062
+ #
1063
+ # @example
1064
+ #
1065
+ # # bad
1066
+ # sig { returns(Foo) }
1067
+ # def foo
1068
+ # @foo = T.let(@foo, T.nilable(Foo))
1069
+ # @foo ||= Foo.new
1070
+ # end
1071
+ #
1072
+ # # bad
1073
+ # sig { returns(Foo) }
1074
+ # def foo
1075
+ # # This would have been a mistake, causing the memoized value to be discarded and recomputed on every call.
1076
+ # @foo = T.let(nil, T.nilable(Foo))
1077
+ # @foo ||= Foo.new
1078
+ # end
1079
+ #
1080
+ # # good
1081
+ # sig { returns(Foo) }
1082
+ # def foo
1083
+ # @foo ||= T.let(Foo.new, T.nilable(Foo))
1084
+ # end
1085
+ #
1086
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/obsolete_strict_memoization.rb#37
1087
+ class RuboCop::Cop::Sorbet::ObsoleteStrictMemoization < ::RuboCop::Cop::Base
1088
+ include ::RuboCop::Cop::RangeHelp
1089
+ include ::RuboCop::Cop::MatchRange
1090
+ include ::RuboCop::Cop::Alignment
1091
+ include ::RuboCop::Cop::LineLengthHelp
1092
+ include ::RuboCop::Cop::Sorbet::TargetSorbetVersion
1093
+ extend ::RuboCop::Cop::AutoCorrector
1094
+ extend ::RuboCop::Cop::Sorbet::TargetSorbetVersion::ClassMethods
1095
+
1096
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/obsolete_strict_memoization.rb#51
1097
+ def legacy_memoization_pattern?(param0 = T.unsafe(nil)); end
1098
+
1099
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/obsolete_strict_memoization.rb#62
1100
+ def on_begin(node); end
1101
+
1102
+ # @return [Boolean]
1103
+ #
1104
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/obsolete_strict_memoization.rb#86
1105
+ def relevant_file?(file); end
1106
+ end
1107
+
1108
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/obsolete_strict_memoization.rb#47
1109
+ RuboCop::Cop::Sorbet::ObsoleteStrictMemoization::MSG = T.let(T.unsafe(nil), String)
1110
+
1111
+ # Ensures one ancestor per requires_ancestor line
716
1112
  # rather than chaining them as a comma-separated list.
717
1113
  #
718
1114
  # @example
@@ -730,30 +1126,30 @@ end
730
1126
  #
731
1127
  # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#24
732
1128
  class RuboCop::Cop::Sorbet::OneAncestorPerLine < ::RuboCop::Cop::Cop
733
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#35
1129
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#38
734
1130
  def abstract?(param0); end
735
1131
 
736
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#51
1132
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#56
737
1133
  def autocorrect(node); end
738
1134
 
739
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#31
1135
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#33
740
1136
  def more_than_one_ancestor(param0 = T.unsafe(nil)); end
741
1137
 
742
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#45
1138
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#49
743
1139
  def on_class(node); end
744
1140
 
745
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#39
1141
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#42
746
1142
  def on_module(node); end
747
1143
 
748
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#27
1144
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#28
749
1145
  def requires_ancestors(param0); end
750
1146
 
751
1147
  private
752
1148
 
753
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#67
1149
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#72
754
1150
  def new_ra_line(indent_count); end
755
1151
 
756
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#61
1152
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#66
757
1153
  def process_node(node); end
758
1154
  end
759
1155
 
@@ -779,42 +1175,64 @@ RuboCop::Cop::Sorbet::OneAncestorPerLine::MSG = T.let(T.unsafe(nil), String)
779
1175
  # end
780
1176
  #
781
1177
  # source://rubocop-sorbet//lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb#28
782
- class RuboCop::Cop::Sorbet::RedundantExtendTSig < ::RuboCop::Cop::Cop
783
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb#42
784
- def autocorrect(node); end
1178
+ class RuboCop::Cop::Sorbet::RedundantExtendTSig < ::RuboCop::Cop::Base
1179
+ include ::RuboCop::Cop::RangeHelp
1180
+ extend ::RuboCop::Cop::AutoCorrector
785
1181
 
786
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb#32
1182
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb#36
787
1183
  def extend_t_sig?(param0 = T.unsafe(nil)); end
788
1184
 
789
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb#36
1185
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb#40
790
1186
  def on_send(node); end
791
1187
  end
792
1188
 
793
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb#29
1189
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb#32
794
1190
  RuboCop::Cop::Sorbet::RedundantExtendTSig::MSG = T.let(T.unsafe(nil), String)
795
1191
 
796
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb#30
1192
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb#33
797
1193
  RuboCop::Cop::Sorbet::RedundantExtendTSig::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
798
1194
 
799
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#15
800
- class RuboCop::Cop::Sorbet::SignatureBuildOrder < ::RuboCop::Cop::Sorbet::SignatureCop
801
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#54
1195
+ # Checks for the correct order of sig builder methods:
1196
+ # - abstract, override, or overridable
1197
+ # - type_parameters
1198
+ # - params
1199
+ # - returns, or void
1200
+ # - soft, checked, or on_failure
1201
+ #
1202
+ # # bad
1203
+ # sig { returns(Integer).params(x: Integer) }
1204
+ #
1205
+ # # good
1206
+ # sig { params(x: Integer).returns(Integer) }
1207
+ #
1208
+ # @example
1209
+ # # bad
1210
+ # sig { void.abstract }
1211
+ #
1212
+ # # good
1213
+ # sig { abstract.void }
1214
+ #
1215
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#31
1216
+ class RuboCop::Cop::Sorbet::SignatureBuildOrder < ::RuboCop::Cop::Cop
1217
+ include ::RuboCop::Cop::Sorbet::SignatureHelp
1218
+
1219
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#77
802
1220
  def autocorrect(node); end
803
1221
 
804
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#34
1222
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#53
805
1223
  def on_signature(node); end
806
1224
 
807
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#30
1225
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#49
808
1226
  def root_call(param0); end
809
1227
 
810
1228
  private
811
1229
 
812
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#96
1230
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#119
813
1231
  def call_chain(sig_child_node); end
814
1232
 
815
1233
  # @return [Boolean]
816
1234
  #
817
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#92
1235
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#115
818
1236
  def can_autocorrect?; end
819
1237
 
820
1238
  # This method exists to reparse the current node with modern features enabled.
@@ -822,41 +1240,44 @@ class RuboCop::Cop::Sorbet::SignatureBuildOrder < ::RuboCop::Cop::Sorbet::Signat
822
1240
  # "index sends" (i.e. `[]` calls) back to index accessors (i.e. as `foo[bar]``).
823
1241
  # Otherwise, we would get the unparsed node as `foo.[](bar)`.
824
1242
  #
825
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#83
1243
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#106
826
1244
  def node_reparsed_with_modern_features(node); end
827
1245
  end
828
1246
 
829
1247
  # Create a subclass of AST Builder that has modern features turned on
830
1248
  #
831
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#72
1249
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#95
832
1250
  class RuboCop::Cop::Sorbet::SignatureBuildOrder::ModernBuilder < ::RuboCop::AST::Builder; end
833
1251
 
834
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#16
1252
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#34
835
1253
  RuboCop::Cop::Sorbet::SignatureBuildOrder::ORDER = T.let(T.unsafe(nil), Hash)
836
1254
 
837
- # Abstract cop specific to Sorbet signatures
838
- #
839
- # You can subclass it to use the `on_signature` trigger and the `signature?` node matcher.
1255
+ # Mixin for writing cops for signatures, providing a `signature?` node matcher and an `on_signature` trigger.
840
1256
  #
841
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_cop.rb#11
842
- class RuboCop::Cop::Sorbet::SignatureCop < ::RuboCop::Cop::Cop
843
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_cop.rb#30
1257
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/signature_help.rb#7
1258
+ module RuboCop::Cop::Sorbet::SignatureHelp
1259
+ extend ::RuboCop::AST::NodePattern::Macros
1260
+
1261
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/signature_help.rb#29
844
1262
  def on_block(node); end
845
1263
 
846
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_cop.rb#34
847
- def on_signature(_); end
1264
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/signature_help.rb#29
1265
+ def on_numblock(node); end
1266
+
1267
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/signature_help.rb#35
1268
+ def on_signature(_node); end
848
1269
 
849
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_cop.rb#14
1270
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/signature_help.rb#11
850
1271
  def signature?(param0 = T.unsafe(nil)); end
851
1272
 
852
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_cop.rb#22
1273
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/signature_help.rb#20
853
1274
  def with_runtime?(param0 = T.unsafe(nil)); end
854
1275
 
855
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_cop.rb#26
1276
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/signature_help.rb#25
856
1277
  def without_runtime?(param0 = T.unsafe(nil)); end
857
1278
  end
858
1279
 
859
- # This cop ensures empty class/module definitions in RBI files are
1280
+ # Ensures empty class/module definitions in RBI files are
860
1281
  # done on a single line rather than being split across multiple lines.
861
1282
  #
862
1283
  # @example
@@ -869,29 +1290,25 @@ end
869
1290
  # module SomeModule; end
870
1291
  #
871
1292
  # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#17
872
- class RuboCop::Cop::Sorbet::SingleLineRbiClassModuleDefinitions < ::RuboCop::Cop::Cop
873
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#28
874
- def autocorrect(node); end
1293
+ class RuboCop::Cop::Sorbet::SingleLineRbiClassModuleDefinitions < ::RuboCop::Cop::Base
1294
+ extend ::RuboCop::Cop::AutoCorrector
875
1295
 
876
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#24
1296
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#22
877
1297
  def on_class(node); end
878
1298
 
879
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#20
1299
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#22
880
1300
  def on_module(node); end
881
1301
 
882
- protected
1302
+ private
883
1303
 
884
1304
  # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#34
885
- def convert_newlines(source); end
886
-
887
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#38
888
- def process_node(node); end
1305
+ def convert_newlines_to_semicolons(source); end
889
1306
  end
890
1307
 
891
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#18
1308
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#20
892
1309
  RuboCop::Cop::Sorbet::SingleLineRbiClassModuleDefinitions::MSG = T.let(T.unsafe(nil), String)
893
1310
 
894
- # This cop makes the Sorbet `strict` sigil mandatory in all files.
1311
+ # Makes the Sorbet `strict` sigil mandatory in all files.
895
1312
  #
896
1313
  # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/strict_sigil.rb#10
897
1314
  class RuboCop::Cop::Sorbet::StrictSigil < ::RuboCop::Cop::Sorbet::HasSigil
@@ -899,7 +1316,7 @@ class RuboCop::Cop::Sorbet::StrictSigil < ::RuboCop::Cop::Sorbet::HasSigil
899
1316
  def minimum_strictness; end
900
1317
  end
901
1318
 
902
- # This cop makes the Sorbet `strong` sigil mandatory in all files.
1319
+ # Makes the Sorbet `strong` sigil mandatory in all files.
903
1320
  #
904
1321
  # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/strong_sigil.rb#10
905
1322
  class RuboCop::Cop::Sorbet::StrongSigil < ::RuboCop::Cop::Sorbet::HasSigil
@@ -907,7 +1324,48 @@ class RuboCop::Cop::Sorbet::StrongSigil < ::RuboCop::Cop::Sorbet::HasSigil
907
1324
  def minimum_strictness; end
908
1325
  end
909
1326
 
910
- # This cop makes the Sorbet `true` sigil mandatory in all files.
1327
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#6
1328
+ module RuboCop::Cop::Sorbet::TargetSorbetVersion
1329
+ mixes_in_class_methods ::RuboCop::Cop::Sorbet::TargetSorbetVersion::ClassMethods
1330
+
1331
+ # @return [Boolean]
1332
+ #
1333
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#28
1334
+ def enabled_for_sorbet_static_version?; end
1335
+
1336
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#44
1337
+ def read_sorbet_static_version_from_bundler_lock_file; end
1338
+
1339
+ # @return [Boolean]
1340
+ #
1341
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#24
1342
+ def sorbet_enabled?; end
1343
+
1344
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#35
1345
+ def target_sorbet_static_version_from_bundler_lock_file; end
1346
+
1347
+ class << self
1348
+ # @private
1349
+ #
1350
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#8
1351
+ def included(target); end
1352
+ end
1353
+ end
1354
+
1355
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#13
1356
+ module RuboCop::Cop::Sorbet::TargetSorbetVersion::ClassMethods
1357
+ # Sets the version of the Sorbet static type checker required by this cop
1358
+ #
1359
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#15
1360
+ def minimum_target_sorbet_static_version(version); end
1361
+
1362
+ # @return [Boolean]
1363
+ #
1364
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#19
1365
+ def supports_target_sorbet_static_version?(version); end
1366
+ end
1367
+
1368
+ # Makes the Sorbet `true` sigil mandatory in all files.
911
1369
  #
912
1370
  # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/true_sigil.rb#10
913
1371
  class RuboCop::Cop::Sorbet::TrueSigil < ::RuboCop::Cop::Sorbet::HasSigil
@@ -915,7 +1373,7 @@ class RuboCop::Cop::Sorbet::TrueSigil < ::RuboCop::Cop::Sorbet::HasSigil
915
1373
  def minimum_strictness; end
916
1374
  end
917
1375
 
918
- # This cop ensures all constants used as `T.type_alias` are using CamelCase.
1376
+ # Ensures all constants used as `T.type_alias` are using CamelCase.
919
1377
  #
920
1378
  # @example
921
1379
  #
@@ -926,18 +1384,18 @@ end
926
1384
  # FooOrBar = T.type_alias { T.any(Foo, Bar) }
927
1385
  #
928
1386
  # source://rubocop-sorbet//lib/rubocop/cop/sorbet/type_alias_name.rb#17
929
- class RuboCop::Cop::Sorbet::TypeAliasName < ::RuboCop::Cop::Cop
930
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/type_alias_name.rb#20
931
- def casgn_type_alias?(param0 = T.unsafe(nil)); end
932
-
1387
+ class RuboCop::Cop::Sorbet::TypeAliasName < ::RuboCop::Cop::Base
933
1388
  # source://rubocop-sorbet//lib/rubocop/cop/sorbet/type_alias_name.rb#32
934
1389
  def on_casgn(node); end
1390
+
1391
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/type_alias_name.rb#21
1392
+ def underscored_type_alias?(param0 = T.unsafe(nil)); end
935
1393
  end
936
1394
 
937
1395
  # source://rubocop-sorbet//lib/rubocop/cop/sorbet/type_alias_name.rb#18
938
1396
  RuboCop::Cop::Sorbet::TypeAliasName::MSG = T.let(T.unsafe(nil), String)
939
1397
 
940
- # This cop checks that every Ruby file contains a valid Sorbet sigil.
1398
+ # Checks that every Ruby file contains a valid Sorbet sigil.
941
1399
  # Adapted from: https://gist.github.com/clarkdave/85aca4e16f33fd52aceb6a0a29936e52
942
1400
  #
943
1401
  # Options:
@@ -945,66 +1403,75 @@ RuboCop::Cop::Sorbet::TypeAliasName::MSG = T.let(T.unsafe(nil), String)
945
1403
  # * `RequireSigilOnAllFiles`: make offense if the Sorbet typed is not found in the file (default: false)
946
1404
  # * `SuggestedStrictness`: Sorbet strictness level suggested in offense messages (default: 'false')
947
1405
  # * `MinimumStrictness`: If set, make offense if the strictness level in the file is below this one
1406
+ # * `ExactStrictness`: If set, make offense if the strictness level in the file is different than this one
948
1407
  #
949
- # If a `MinimumStrictness` level is specified, it will be used in offense messages and autocorrect.
1408
+ # If an `ExactStrictness` level is specified, it will be used in offense messages and autocorrect.
1409
+ # Otherwise, if a `MinimumStrictness` level is specified, it will be used in offense messages and autocorrect.
950
1410
  #
951
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#18
1411
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#20
952
1412
  class RuboCop::Cop::Sorbet::ValidSigil < ::RuboCop::Cop::Cop
953
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#33
1413
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#35
954
1414
  def autocorrect(_node); end
955
1415
 
956
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#21
1416
+ # So we can properly subclass this cop
1417
+ #
1418
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#23
957
1419
  def investigate(processed_source); end
958
1420
 
959
1421
  protected
960
1422
 
961
1423
  # checks
962
1424
  #
963
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#68
1425
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#70
964
1426
  def check_sigil_present(sigil); end
965
1427
 
966
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#125
1428
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#130
967
1429
  def check_strictness_level(sigil, strictness); end
968
1430
 
969
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#103
1431
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#108
970
1432
  def check_strictness_not_empty(sigil, strictness); end
971
1433
 
972
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#114
1434
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#119
973
1435
  def check_strictness_valid(sigil, strictness); end
974
1436
 
1437
+ # Default is `nil`
1438
+ #
1439
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#180
1440
+ def exact_strictness; end
1441
+
975
1442
  # extraction
976
1443
  #
977
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#56
1444
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#58
978
1445
  def extract_sigil(processed_source); end
979
1446
 
980
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#62
1447
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#64
981
1448
  def extract_strictness(sigil); end
982
1449
 
983
1450
  # Default is `nil`
984
1451
  #
985
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#155
1452
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#174
986
1453
  def minimum_strictness; end
987
1454
 
988
1455
  # Default is `false`
989
1456
  #
990
1457
  # @return [Boolean]
991
1458
  #
992
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#144
1459
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#163
993
1460
  def require_sigil_on_all_files?; end
994
1461
 
995
1462
  # Default is `'false'`
996
1463
  #
997
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#149
1464
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#168
998
1465
  def suggested_strictness; end
999
1466
 
1000
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#84
1001
- def suggested_strictness_level(minimum_strictness, suggested_strictness); end
1467
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#86
1468
+ def suggested_strictness_level; end
1002
1469
  end
1003
1470
 
1004
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#52
1471
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#54
1005
1472
  RuboCop::Cop::Sorbet::ValidSigil::SIGIL_REGEX = T.let(T.unsafe(nil), Regexp)
1006
1473
 
1007
- # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#51
1474
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#53
1008
1475
  RuboCop::Cop::Sorbet::ValidSigil::STRICTNESS_LEVELS = T.let(T.unsafe(nil), Array)
1009
1476
 
1010
1477
  module RuboCop::Cop::Style; end
@@ -1013,16 +1480,16 @@ class RuboCop::Cop::Style::MutableConstant < ::RuboCop::Cop::Base
1013
1480
  include ::RuboCop::Cop::Sorbet::MutableConstantSorbetAwareBehaviour
1014
1481
  end
1015
1482
 
1016
- # source://rubocop-sorbet//lib/rubocop/sorbet/version.rb#3
1483
+ # source://rubocop-sorbet//lib/rubocop/sorbet/version.rb#4
1017
1484
  module RuboCop::Sorbet; end
1018
1485
 
1019
- # source://rubocop-sorbet//lib/rubocop/sorbet.rb#11
1486
+ # source://rubocop-sorbet//lib/rubocop/sorbet.rb#12
1020
1487
  RuboCop::Sorbet::CONFIG = T.let(T.unsafe(nil), Hash)
1021
1488
 
1022
- # source://rubocop-sorbet//lib/rubocop/sorbet.rb#10
1489
+ # source://rubocop-sorbet//lib/rubocop/sorbet.rb#11
1023
1490
  RuboCop::Sorbet::CONFIG_DEFAULT = T.let(T.unsafe(nil), Pathname)
1024
1491
 
1025
- # source://rubocop-sorbet//lib/rubocop/sorbet.rb#7
1492
+ # source://rubocop-sorbet//lib/rubocop/sorbet.rb#8
1026
1493
  class RuboCop::Sorbet::Error < ::StandardError; end
1027
1494
 
1028
1495
  # Because RuboCop doesn't yet support plugins, we have to monkey patch in a
@@ -1031,13 +1498,13 @@ class RuboCop::Sorbet::Error < ::StandardError; end
1031
1498
  # source://rubocop-sorbet//lib/rubocop/sorbet/inject.rb#9
1032
1499
  module RuboCop::Sorbet::Inject
1033
1500
  class << self
1034
- # source://rubocop-sorbet//lib/rubocop/sorbet/inject.rb#10
1501
+ # source://rubocop-sorbet//lib/rubocop/sorbet/inject.rb#11
1035
1502
  def defaults!; end
1036
1503
  end
1037
1504
  end
1038
1505
 
1039
- # source://rubocop-sorbet//lib/rubocop/sorbet.rb#9
1506
+ # source://rubocop-sorbet//lib/rubocop/sorbet.rb#10
1040
1507
  RuboCop::Sorbet::PROJECT_ROOT = T.let(T.unsafe(nil), Pathname)
1041
1508
 
1042
- # source://rubocop-sorbet//lib/rubocop/sorbet/version.rb#4
1509
+ # source://rubocop-sorbet//lib/rubocop/sorbet/version.rb#5
1043
1510
  RuboCop::Sorbet::VERSION = T.let(T.unsafe(nil), String)