openfeature-sdk-sorbet 0.2.0.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +9 -6
  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 +7 -5
  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)