tsumanne 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/.rubocop.yml +32 -0
  4. data/.ruby-version +1 -0
  5. data/LICENSE.txt +21 -0
  6. data/README.md +31 -0
  7. data/Rakefile +45 -0
  8. data/lib/tsumanne/version.rb +7 -0
  9. data/lib/tsumanne.rb +128 -0
  10. data/sorbet/config +4 -0
  11. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  12. data/sorbet/rbi/gems/ast@2.4.2.rbi +584 -0
  13. data/sorbet/rbi/gems/base64@0.1.1.rbi +172 -0
  14. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +1083 -0
  15. data/sorbet/rbi/gems/erubi@1.12.0.rbi +145 -0
  16. data/sorbet/rbi/gems/ffi-compiler@1.0.1.rbi +206 -0
  17. data/sorbet/rbi/gems/ffi@1.15.5.rbi +1994 -0
  18. data/sorbet/rbi/gems/http-parser@1.2.3.rbi +422 -0
  19. data/sorbet/rbi/gems/json@2.6.3.rbi +1533 -0
  20. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14237 -0
  21. data/sorbet/rbi/gems/mhtml@0.1.6.rbi +353 -0
  22. data/sorbet/rbi/gems/netrc@0.11.0.rbi +158 -0
  23. data/sorbet/rbi/gems/parallel@1.23.0.rbi +273 -0
  24. data/sorbet/rbi/gems/parser@3.2.2.3.rbi +7253 -0
  25. data/sorbet/rbi/gems/prettier_print@1.2.1.rbi +951 -0
  26. data/sorbet/rbi/gems/racc@1.7.1.rbi +161 -0
  27. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +402 -0
  28. data/sorbet/rbi/gems/rake@13.0.6.rbi +3024 -0
  29. data/sorbet/rbi/gems/rbi@0.0.17.rbi +2967 -0
  30. data/sorbet/rbi/gems/regexp_parser@2.8.1.rbi +3749 -0
  31. data/sorbet/rbi/gems/rexml@3.2.6.rbi +4781 -0
  32. data/sorbet/rbi/gems/rspec-core@3.12.2.rbi +10805 -0
  33. data/sorbet/rbi/gems/rspec-expectations@3.12.3.rbi +8100 -0
  34. data/sorbet/rbi/gems/rspec-mocks@3.12.6.rbi +5310 -0
  35. data/sorbet/rbi/gems/rspec-support@3.12.1.rbi +1609 -0
  36. data/sorbet/rbi/gems/rspec@3.12.0.rbi +82 -0
  37. data/sorbet/rbi/gems/rubocop-ast@1.29.0.rbi +7144 -0
  38. data/sorbet/rbi/gems/rubocop-capybara@2.18.0.rbi +827 -0
  39. data/sorbet/rbi/gems/rubocop-factory_bot@2.23.1.rbi +812 -0
  40. data/sorbet/rbi/gems/rubocop-performance@1.19.0.rbi +3157 -0
  41. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +328 -0
  42. data/sorbet/rbi/gems/rubocop-rspec@2.23.2.rbi +7691 -0
  43. data/sorbet/rbi/gems/rubocop-sorbet@0.7.3.rbi +1226 -0
  44. data/sorbet/rbi/gems/rubocop@1.56.2.rbi +56541 -0
  45. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1317 -0
  46. data/sorbet/rbi/gems/spoom@1.2.3.rbi +3199 -0
  47. data/sorbet/rbi/gems/syntax_tree@6.1.1.rbi +22855 -0
  48. data/sorbet/rbi/gems/tapioca@0.11.8.rbi +3329 -0
  49. data/sorbet/rbi/gems/thor@1.2.2.rbi +3965 -0
  50. data/sorbet/rbi/gems/unicode-display_width@2.4.2.rbi +65 -0
  51. data/sorbet/rbi/gems/unparser@0.6.8.rbi +4525 -0
  52. data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +425 -0
  53. data/sorbet/rbi/gems/yard@0.9.34.rbi +18219 -0
  54. data/sorbet/tapioca/config.yml +13 -0
  55. data/sorbet/tapioca/require.rb +4 -0
  56. metadata +254 -0
@@ -0,0 +1,1226 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `rubocop-sorbet` gem.
5
+ # Please instead update this file by running `bin/tapioca gem rubocop-sorbet`.
6
+
7
+ # source://rubocop-sorbet//lib/rubocop/sorbet/version.rb#3
8
+ module RuboCop; end
9
+
10
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#4
11
+ module RuboCop::Cop; end
12
+
13
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#5
14
+ module RuboCop::Cop::Sorbet; end
15
+
16
+ # Disallows using `.override(allow_incompatible: true)`.
17
+ # Using `allow_incompatible` suggests a violation of the Liskov
18
+ # Substitution Principle, meaning that a subclass is not a valid
19
+ # subtype of its superclass. This Cop prevents these design smells
20
+ # from occurring.
21
+ #
22
+ # @example
23
+ #
24
+ # # bad
25
+ # sig.override(allow_incompatible: true)
26
+ #
27
+ # # good
28
+ # sig.override
29
+ #
30
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#21
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
34
+
35
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#55
36
+ def on_numblock(node); end
37
+
38
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#49
39
+ def on_send(node); end
40
+
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
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
49
+ end
50
+
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`
58
+ # to a constant directly. To bind the value, one must use `T.type_alias`.
59
+ #
60
+ # @example
61
+ #
62
+ # # bad
63
+ # FooOrBar = T.any(Foo, Bar)
64
+ #
65
+ # # good
66
+ # FooOrBar = T.type_alias { T.any(Foo, Bar) }
67
+ #
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
71
+
72
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constant_without_type_alias.rb#65
73
+ def on_casgn(node); end
74
+
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
77
+
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
80
+
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
83
+
84
+ private
85
+
86
+ # Given nested send nodes, returns the leaf with explicit receiver.
87
+ #
88
+ # i.e. in Ruby
89
+ #
90
+ # a.b.c.d.e.f
91
+ # ^^^
92
+ #
93
+ # i.e. in AST
94
+ #
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
101
+
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
+ # Ensures that callback conditionals are bound to the right type
109
+ # so that they are type checked properly.
110
+ #
111
+ # Auto-correction is unsafe because other libraries define similar style callbacks as Rails, but don't always need
112
+ # binding to the attached class. Auto-correcting those usages can lead to false positives and auto-correction
113
+ # introduces new typing errors.
114
+ #
115
+ # @example
116
+ #
117
+ # # bad
118
+ # class Post < ApplicationRecord
119
+ # before_create :do_it, if: -> { should_do_it? }
120
+ #
121
+ # def should_do_it?
122
+ # true
123
+ # end
124
+ # end
125
+ #
126
+ # # good
127
+ # class Post < ApplicationRecord
128
+ # before_create :do_it, if: -> {
129
+ # T.bind(self, Post)
130
+ # should_do_it?
131
+ # }
132
+ #
133
+ # def should_do_it?
134
+ # true
135
+ # end
136
+ # end
137
+ #
138
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/callback_conditionals_binding.rb#35
139
+ class RuboCop::Cop::Sorbet::CallbackConditionalsBinding < ::RuboCop::Cop::Cop
140
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/callback_conditionals_binding.rb#75
141
+ def autocorrect(node); end
142
+
143
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/callback_conditionals_binding.rb#127
144
+ def on_send(node); end
145
+ end
146
+
147
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/callback_conditionals_binding.rb#36
148
+ RuboCop::Cop::Sorbet::CallbackConditionalsBinding::CALLBACKS = T.let(T.unsafe(nil), Array)
149
+
150
+ # Disallows the usage of `checked(true)`. This usage could cause
151
+ # confusion; it could lead some people to believe that a method would be checked
152
+ # even if runtime checks have not been enabled on the class or globally.
153
+ # Additionally, in the event where checks are enabled, `checked(true)` would
154
+ # be redundant; only `checked(false)` or `soft` would change the behaviour.
155
+ #
156
+ # @example
157
+ #
158
+ # # bad
159
+ # sig { void.checked(true) }
160
+ #
161
+ # # good
162
+ # sig { void }
163
+ #
164
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb#22
165
+ class RuboCop::Cop::Sorbet::CheckedTrueInSignature < ::RuboCop::Cop::Sorbet::SignatureCop
166
+ include ::RuboCop::Cop::RangeHelp
167
+
168
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb#26
169
+ def offending_node(param0); end
170
+
171
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb#37
172
+ def on_signature(node); end
173
+ end
174
+
175
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb#30
176
+ RuboCop::Cop::Sorbet::CheckedTrueInSignature::MESSAGE = T.let(T.unsafe(nil), String)
177
+
178
+ # Disallows the calls that are used to get constants fom Strings
179
+ # such as +constantize+, +const_get+, and +constants+.
180
+ #
181
+ # The goal of this cop is to make the code easier to statically analyze,
182
+ # more IDE-friendly, and more predictable. It leads to code that clearly
183
+ # expresses which values the constant can have.
184
+ #
185
+ # @example
186
+ #
187
+ # # bad
188
+ # class_name.constantize
189
+ #
190
+ # # bad
191
+ # constants.detect { |c| c.name == "User" }
192
+ #
193
+ # # bad
194
+ # const_get(class_name)
195
+ #
196
+ # # good
197
+ # case class_name
198
+ # when "User"
199
+ # User
200
+ # else
201
+ # raise ArgumentError
202
+ # end
203
+ #
204
+ # # good
205
+ # { "User" => User }.fetch(class_name)
206
+ #
207
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/constants_from_strings.rb#37
208
+ class RuboCop::Cop::Sorbet::ConstantsFromStrings < ::RuboCop::Cop::Cop
209
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/constants_from_strings.rb#38
210
+ def constant_from_string?(param0 = T.unsafe(nil)); end
211
+
212
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/constants_from_strings.rb#42
213
+ def on_send(node); end
214
+ end
215
+
216
+ # Checks for blank lines after signatures.
217
+ #
218
+ # It also suggests an autocorrect
219
+ #
220
+ # @example
221
+ #
222
+ # # bad
223
+ # sig { void }
224
+ #
225
+ # def foo; end
226
+ #
227
+ # # good
228
+ # sig { void }
229
+ # def foo; end
230
+ #
231
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb#23
232
+ class RuboCop::Cop::Sorbet::EmptyLineAfterSig < ::RuboCop::Cop::Sorbet::SignatureCop
233
+ include ::RuboCop::Cop::RangeHelp
234
+
235
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb#33
236
+ def autocorrect(node); end
237
+
238
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb#26
239
+ def on_signature(node); end
240
+
241
+ private
242
+
243
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb#48
244
+ def next_method(node); end
245
+ end
246
+
247
+ # Checks that the Sorbet sigil comes as the first magic comment in the file.
248
+ #
249
+ # The expected order for magic comments is: (en)?coding, typed, warn_indent then frozen_string_literal.
250
+ #
251
+ # For example, the following bad ordering:
252
+ #
253
+ # ```ruby
254
+ # class Foo; end
255
+ # ```
256
+ #
257
+ # Will be corrected as:
258
+ #
259
+ # ```ruby
260
+ # class Foo; end
261
+ # ```
262
+ #
263
+ # Only `(en)?coding`, `typed`, `warn_indent` and `frozen_string_literal` magic comments are considered,
264
+ # other comments or magic comments are left in the same place.
265
+ #
266
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#30
267
+ class RuboCop::Cop::Sorbet::EnforceSigilOrder < ::RuboCop::Cop::Sorbet::ValidSigil
268
+ include ::RuboCop::Cop::RangeHelp
269
+
270
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#42
271
+ def autocorrect(_node); end
272
+
273
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#33
274
+ def investigate(processed_source); end
275
+
276
+ protected
277
+
278
+ # checks
279
+ #
280
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#92
281
+ def check_magic_comments_order(tokens); end
282
+
283
+ # Get all the tokens in `processed_source` that match `MAGIC_REGEX`
284
+ #
285
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#84
286
+ def extract_magic_comments(processed_source); end
287
+ end
288
+
289
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#68
290
+ RuboCop::Cop::Sorbet::EnforceSigilOrder::CODING_REGEX = T.let(T.unsafe(nil), Regexp)
291
+
292
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#70
293
+ RuboCop::Cop::Sorbet::EnforceSigilOrder::FROZEN_REGEX = T.let(T.unsafe(nil), Regexp)
294
+
295
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#69
296
+ RuboCop::Cop::Sorbet::EnforceSigilOrder::INDENT_REGEX = T.let(T.unsafe(nil), Regexp)
297
+
298
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#79
299
+ RuboCop::Cop::Sorbet::EnforceSigilOrder::MAGIC_REGEX = T.let(T.unsafe(nil), Regexp)
300
+
301
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#72
302
+ RuboCop::Cop::Sorbet::EnforceSigilOrder::PREFERRED_ORDER = T.let(T.unsafe(nil), Hash)
303
+
304
+ # Checks that every method definition and attribute accessor has a Sorbet signature.
305
+ #
306
+ # It also suggest an autocorrect with placeholders so the following code:
307
+ #
308
+ # ```
309
+ # def foo(a, b, c); end
310
+ # ```
311
+ #
312
+ # Will be corrected as:
313
+ #
314
+ # ```
315
+ # sig { params(a: T.untyped, b: T.untyped, c: T.untyped).returns(T.untyped)
316
+ # def foo(a, b, c); end
317
+ # ```
318
+ #
319
+ # You can configure the placeholders used by changing the following options:
320
+ #
321
+ # * `ParameterTypePlaceholder`: placeholders used for parameter types (default: 'T.untyped')
322
+ # * `ReturnTypePlaceholder`: placeholders used for return types (default: 'T.untyped')
323
+ #
324
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#29
325
+ class RuboCop::Cop::Sorbet::EnforceSignatures < ::RuboCop::Cop::Sorbet::SignatureCop
326
+ # @return [EnforceSignatures] a new instance of EnforceSignatures
327
+ #
328
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#30
329
+ def initialize(config = T.unsafe(nil), options = T.unsafe(nil)); end
330
+
331
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#36
332
+ def accessor?(param0 = T.unsafe(nil)); end
333
+
334
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#56
335
+ def autocorrect(node); end
336
+
337
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#40
338
+ def on_def(node); end
339
+
340
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#44
341
+ def on_defs(node); end
342
+
343
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#48
344
+ def on_send(node); end
345
+
346
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#52
347
+ def on_signature(node); end
348
+
349
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#75
350
+ def scope(node); end
351
+
352
+ private
353
+
354
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#84
355
+ def check_node(node); end
356
+
357
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#95
358
+ def param_type_placeholder; end
359
+
360
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#99
361
+ def return_type_placeholder; end
362
+ end
363
+
364
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#103
365
+ class RuboCop::Cop::Sorbet::EnforceSignatures::SigSuggestion
366
+ # @return [SigSuggestion] a new instance of SigSuggestion
367
+ #
368
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#106
369
+ def initialize(indent, param_placeholder, return_placeholder); end
370
+
371
+ # Returns the value of attribute params.
372
+ #
373
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#104
374
+ def params; end
375
+
376
+ # Sets the attribute params
377
+ #
378
+ # @param value the value to set the attribute params to.
379
+ #
380
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#104
381
+ def params=(_arg0); end
382
+
383
+ # Returns the value of attribute returns.
384
+ #
385
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#104
386
+ def returns; end
387
+
388
+ # Sets the attribute returns
389
+ #
390
+ # @param value the value to set the attribute returns to.
391
+ #
392
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#104
393
+ def returns=(_arg0); end
394
+
395
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#114
396
+ def to_autocorrect; end
397
+
398
+ private
399
+
400
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#126
401
+ def generate_params; end
402
+
403
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#138
404
+ def generate_return; end
405
+ end
406
+
407
+ # Checks that there is only one Sorbet sigil in a given file
408
+ #
409
+ # For example, the following class with two sigils
410
+ #
411
+ # ```ruby
412
+ # class Foo; end
413
+ # ```
414
+ #
415
+ # Will be corrected as:
416
+ #
417
+ # ```ruby
418
+ # class Foo; end
419
+ # ```
420
+ #
421
+ # Other comments or magic comments are left in place.
422
+ #
423
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_single_sigil.rb#26
424
+ class RuboCop::Cop::Sorbet::EnforceSingleSigil < ::RuboCop::Cop::Sorbet::ValidSigil
425
+ include ::RuboCop::Cop::RangeHelp
426
+
427
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_single_sigil.rb#40
428
+ def autocorrect(_node); end
429
+
430
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_single_sigil.rb#29
431
+ def investigate(processed_source); end
432
+
433
+ protected
434
+
435
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_single_sigil.rb#56
436
+ def extract_all_sigils(processed_source); end
437
+ end
438
+
439
+ # Makes the Sorbet `false` sigil mandatory in all files.
440
+ #
441
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/false_sigil.rb#10
442
+ class RuboCop::Cop::Sorbet::FalseSigil < ::RuboCop::Cop::Sorbet::HasSigil
443
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/false_sigil.rb#11
444
+ def minimum_strictness; end
445
+ end
446
+
447
+ # Ensures RBI shims do not include a call to extend T::Sig
448
+ # or to extend T::Helpers
449
+ #
450
+ # @example
451
+ #
452
+ # # bad
453
+ # module SomeModule
454
+ # extend T::Sig
455
+ # extend T::Helpers
456
+ #
457
+ # sig { returns(String) }
458
+ # def foo; end
459
+ # end
460
+ #
461
+ # # good
462
+ # module SomeModule
463
+ # sig { returns(String) }
464
+ # def foo; end
465
+ # end
466
+ #
467
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#25
468
+ class RuboCop::Cop::Sorbet::ForbidExtendTSigHelpersInShims < ::RuboCop::Cop::Base
469
+ include ::RuboCop::Cop::RangeHelp
470
+ extend ::RuboCop::Cop::AutoCorrector
471
+
472
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#33
473
+ def extend_t_sig_or_helpers?(param0 = T.unsafe(nil)); end
474
+
475
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#37
476
+ def on_send(node); end
477
+ end
478
+
479
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#29
480
+ RuboCop::Cop::Sorbet::ForbidExtendTSigHelpersInShims::MSG = T.let(T.unsafe(nil), String)
481
+
482
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#30
483
+ RuboCop::Cop::Sorbet::ForbidExtendTSigHelpersInShims::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
484
+
485
+ # Correct `send` expressions in include statements by constant literals.
486
+ #
487
+ # Sorbet, the static checker, is not (yet) able to support constructs on the
488
+ # following form:
489
+ #
490
+ # ```ruby
491
+ # class MyClass
492
+ # include send_expr
493
+ # end
494
+ # ```
495
+ #
496
+ # Multiple occurences of this can be found in Shopify's code base like:
497
+ #
498
+ # ```ruby
499
+ # include Rails.application.routes.url_helpers
500
+ # ```
501
+ # or
502
+ # ```ruby
503
+ # include Polaris::Engine.helpers
504
+ # ```
505
+ #
506
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#29
507
+ class RuboCop::Cop::Sorbet::ForbidIncludeConstLiteral < ::RuboCop::Cop::Cop
508
+ # @return [ForbidIncludeConstLiteral] a new instance of ForbidIncludeConstLiteral
509
+ #
510
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#41
511
+ def initialize(*_arg0); end
512
+
513
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#60
514
+ def autocorrect(node); end
515
+
516
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#35
517
+ def not_lit_const_include?(param0 = T.unsafe(nil)); end
518
+
519
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#46
520
+ def on_send(node); end
521
+
522
+ # Returns the value of attribute used_names.
523
+ #
524
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#32
525
+ def used_names; end
526
+
527
+ # Sets the attribute used_names
528
+ #
529
+ # @param value the value to set the attribute used_names to.
530
+ #
531
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#32
532
+ def used_names=(_arg0); end
533
+ end
534
+
535
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#30
536
+ RuboCop::Cop::Sorbet::ForbidIncludeConstLiteral::MSG = T.let(T.unsafe(nil), String)
537
+
538
+ # Makes sure that RBI files are always located under the defined allowed paths.
539
+ #
540
+ # Options:
541
+ #
542
+ # * `AllowedPaths`: A list of the paths where RBI files are allowed (default: ["rbi/**", "sorbet/rbi/**"])
543
+ #
544
+ # @example
545
+ # # bad
546
+ # # lib/some_file.rbi
547
+ # # other_file.rbi
548
+ #
549
+ # # good
550
+ # # rbi/external_interface.rbi
551
+ # # sorbet/rbi/some_file.rbi
552
+ # # sorbet/rbi/any/path/for/file.rbi
553
+ #
554
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_rbi_outside_of_allowed_paths.rb#23
555
+ class RuboCop::Cop::Sorbet::ForbidRBIOutsideOfAllowedPaths < ::RuboCop::Cop::Cop
556
+ include ::RuboCop::Cop::RangeHelp
557
+
558
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_rbi_outside_of_allowed_paths.rb#26
559
+ def investigate(processed_source); end
560
+
561
+ private
562
+
563
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_rbi_outside_of_allowed_paths.rb#58
564
+ def allowed_paths; end
565
+ end
566
+
567
+ # Correct superclass `send` expressions by constant literals.
568
+ #
569
+ # Sorbet, the static checker, is not (yet) able to support constructs on the
570
+ # following form:
571
+ #
572
+ # ```ruby
573
+ # class Foo < send_expr; end
574
+ # ```
575
+ #
576
+ # Multiple occurences of this can be found in Shopify's code base like:
577
+ #
578
+ # ```ruby
579
+ # class ShopScope < Component::TrustedIdScope[ShopIdentity::ShopId]
580
+ # ```
581
+ # or
582
+ # ```ruby
583
+ # class ApiClientEligibility < Struct.new(:api_client, :match_results, :shop)
584
+ # ```
585
+ #
586
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb#28
587
+ class RuboCop::Cop::Sorbet::ForbidSuperclassConstLiteral < ::RuboCop::Cop::Base
588
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb#32
589
+ def dynamic_superclass?(param0 = T.unsafe(nil)); end
590
+
591
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb#36
592
+ def on_class(node); end
593
+ end
594
+
595
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb#29
596
+ RuboCop::Cop::Sorbet::ForbidSuperclassConstLiteral::MSG = T.let(T.unsafe(nil), String)
597
+
598
+ # Disallows using `T.unsafe` anywhere.
599
+ #
600
+ # @example
601
+ #
602
+ # # bad
603
+ # T.unsafe(foo)
604
+ #
605
+ # # good
606
+ # foo
607
+ #
608
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_unsafe.rb#17
609
+ class RuboCop::Cop::Sorbet::ForbidTUnsafe < ::RuboCop::Cop::Base
610
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_unsafe.rb#24
611
+ def on_send(node); end
612
+
613
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_unsafe.rb#22
614
+ def t_unsafe?(param0 = T.unsafe(nil)); end
615
+ end
616
+
617
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_unsafe.rb#18
618
+ RuboCop::Cop::Sorbet::ForbidTUnsafe::MSG = T.let(T.unsafe(nil), String)
619
+
620
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_unsafe.rb#19
621
+ RuboCop::Cop::Sorbet::ForbidTUnsafe::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
622
+
623
+ # Disallows using `T.untyped` anywhere.
624
+ #
625
+ # @example
626
+ #
627
+ # # bad
628
+ # sig { params(my_argument: T.untyped).void }
629
+ # def foo(my_argument); end
630
+ #
631
+ # # good
632
+ # sig { params(my_argument: String).void }
633
+ # def foo(my_argument); end
634
+ #
635
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_untyped.rb#20
636
+ class RuboCop::Cop::Sorbet::ForbidTUntyped < ::RuboCop::Cop::Base
637
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_untyped.rb#27
638
+ def on_send(node); end
639
+
640
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_untyped.rb#25
641
+ def t_untyped?(param0 = T.unsafe(nil)); end
642
+ end
643
+
644
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_untyped.rb#21
645
+ RuboCop::Cop::Sorbet::ForbidTUntyped::MSG = T.let(T.unsafe(nil), String)
646
+
647
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_untyped.rb#22
648
+ RuboCop::Cop::Sorbet::ForbidTUntyped::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
649
+
650
+ # Disallows use of `T.untyped` or `T.nilable(T.untyped)`
651
+ # as a prop type for `T::Struct` or `T::ImmutableStruct`.
652
+ #
653
+ # @example
654
+ #
655
+ # # bad
656
+ # class SomeClass < T::Struct
657
+ # const :foo, T.untyped
658
+ # prop :bar, T.nilable(T.untyped)
659
+ # end
660
+ #
661
+ # # good
662
+ # class SomeClass < T::Struct
663
+ # const :foo, Integer
664
+ # prop :bar, T.nilable(String)
665
+ # end
666
+ #
667
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#25
668
+ class RuboCop::Cop::Sorbet::ForbidUntypedStructProps < ::RuboCop::Cop::Base
669
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#54
670
+ def on_class(node); end
671
+
672
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#44
673
+ def subclass_of_t_struct?(param0 = T.unsafe(nil)); end
674
+
675
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#39
676
+ def t_nilable_untyped(param0 = T.unsafe(nil)); end
677
+
678
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#29
679
+ def t_struct(param0 = T.unsafe(nil)); end
680
+
681
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#34
682
+ def t_untyped(param0 = T.unsafe(nil)); end
683
+
684
+ # Search for untyped prop/const declarations and capture their types
685
+ #
686
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#50
687
+ def untyped_props(param0); end
688
+ end
689
+
690
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#26
691
+ RuboCop::Cop::Sorbet::ForbidUntypedStructProps::MSG = T.let(T.unsafe(nil), String)
692
+
693
+ # Makes the Sorbet typed sigil mandatory in all files.
694
+ #
695
+ # Options:
696
+ #
697
+ # * `SuggestedStrictness`: Sorbet strictness level suggested in offense messages (default: 'false')
698
+ # * `MinimumStrictness`: If set, make offense if the strictness level in the file is below this one
699
+ #
700
+ # If a `MinimumStrictness` level is specified, it will be used in offense messages and autocorrect.
701
+ #
702
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/has_sigil.rb#17
703
+ class RuboCop::Cop::Sorbet::HasSigil < ::RuboCop::Cop::Sorbet::ValidSigil
704
+ # @return [Boolean]
705
+ #
706
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/has_sigil.rb#20
707
+ def require_sigil_on_all_files?; end
708
+ end
709
+
710
+ # Makes the Sorbet `ignore` sigil mandatory in all files.
711
+ #
712
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/ignore_sigil.rb#10
713
+ class RuboCop::Cop::Sorbet::IgnoreSigil < ::RuboCop::Cop::Sorbet::HasSigil
714
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/ignore_sigil.rb#11
715
+ def minimum_strictness; end
716
+ end
717
+
718
+ # Disallows declaring implicit conversion methods.
719
+ # Since Sorbet is a nominal (not structural) type system,
720
+ # implicit conversion is currently unsupported.
721
+ #
722
+ # @example
723
+ #
724
+ # # bad
725
+ # def to_str; end
726
+ #
727
+ # # good
728
+ # def to_str(x); end
729
+ #
730
+ # # bad
731
+ # def self.to_str; end
732
+ #
733
+ # # good
734
+ # def self.to_str(x); end
735
+ #
736
+ # # bad
737
+ # alias to_str to_s
738
+ # @note Since the arity of aliased methods is not checked, false positives may result.
739
+ # @see https://docs.ruby-lang.org/en/master/implicit_conversion_rdoc.html
740
+ #
741
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#31
742
+ class RuboCop::Cop::Sorbet::ImplicitConversionMethod < ::RuboCop::Cop::Base
743
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#37
744
+ def on_alias(node); end
745
+
746
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#42
747
+ def on_def(node); end
748
+
749
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#42
750
+ def on_defs(node); end
751
+
752
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#50
753
+ def on_send(node); end
754
+ end
755
+
756
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#32
757
+ RuboCop::Cop::Sorbet::ImplicitConversionMethod::IMPLICIT_CONVERSION_METHODS = T.let(T.unsafe(nil), Array)
758
+
759
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#33
760
+ RuboCop::Cop::Sorbet::ImplicitConversionMethod::MSG = T.let(T.unsafe(nil), String)
761
+
762
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/implicit_conversion_method.rb#35
763
+ RuboCop::Cop::Sorbet::ImplicitConversionMethod::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
764
+
765
+ # Checks for the ordering of keyword arguments required by
766
+ # sorbet-runtime. The ordering requires that all keyword arguments
767
+ # are at the end of the parameters list, and all keyword arguments
768
+ # with a default value must be after those without default values.
769
+ #
770
+ # @example
771
+ #
772
+ # # bad
773
+ # sig { params(a: Integer, b: String).void }
774
+ # def foo(a: 1, b:); end
775
+ #
776
+ # # good
777
+ # sig { params(b: String, a: Integer).void }
778
+ # def foo(b:, a: 1); end
779
+ #
780
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/keyword_argument_ordering.rb#23
781
+ class RuboCop::Cop::Sorbet::KeywordArgumentOrdering < ::RuboCop::Cop::Sorbet::SignatureCop
782
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/keyword_argument_ordering.rb#24
783
+ def on_signature(node); end
784
+
785
+ private
786
+
787
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/keyword_argument_ordering.rb#35
788
+ def check_order_for_kwoptargs(parameters); end
789
+ end
790
+
791
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mutable_constant_sorbet_aware_behaviour.rb#8
792
+ module RuboCop::Cop::Sorbet::MutableConstantSorbetAwareBehaviour
793
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mutable_constant_sorbet_aware_behaviour.rb#18
794
+ def on_assignment(value); end
795
+
796
+ class << self
797
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mutable_constant_sorbet_aware_behaviour.rb#10
798
+ def prepended(base); end
799
+ end
800
+ end
801
+
802
+ # Checks for the obsolete pattern for initializing instance variables that was required for older Sorbet
803
+ #
804
+ # It's no longer required, as of Sorbet 0.5.10210
805
+ # See https://sorbet.org/docs/type-assertions#put-type-assertions-behind-memoization
806
+ #
807
+ # @example
808
+ #
809
+ # # bad
810
+ # sig { returns(Foo) }
811
+ # def foo
812
+ # @foo = T.let(@foo, T.nilable(Foo))
813
+ # @foo ||= Foo.new
814
+ # end
815
+ #
816
+ # # bad
817
+ # sig { returns(Foo) }
818
+ # def foo
819
+ # # This would have been a mistake, causing the memoized value to be discarded and recomputed on every call.
820
+ # @foo = T.let(nil, T.nilable(Foo))
821
+ # @foo ||= Foo.new
822
+ # end
823
+ #
824
+ # # good
825
+ # sig { returns(Foo) }
826
+ # def foo
827
+ # @foo ||= T.let(Foo.new, T.nilable(Foo))
828
+ # end
829
+ #
830
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/obsolete_strict_memoization.rb#37
831
+ class RuboCop::Cop::Sorbet::ObsoleteStrictMemoization < ::RuboCop::Cop::Base
832
+ include ::RuboCop::Cop::RangeHelp
833
+ include ::RuboCop::Cop::MatchRange
834
+ include ::RuboCop::Cop::Alignment
835
+ include ::RuboCop::Cop::LineLengthHelp
836
+ include ::RuboCop::Cop::Sorbet::TargetSorbetVersion
837
+ extend ::RuboCop::Cop::AutoCorrector
838
+ extend ::RuboCop::Cop::Sorbet::TargetSorbetVersion::ClassMethods
839
+
840
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/obsolete_strict_memoization.rb#51
841
+ def legacy_memoization_pattern?(param0 = T.unsafe(nil)); end
842
+
843
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/obsolete_strict_memoization.rb#62
844
+ def on_begin(node); end
845
+
846
+ # @return [Boolean]
847
+ #
848
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/obsolete_strict_memoization.rb#86
849
+ def relevant_file?(file); end
850
+ end
851
+
852
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/obsolete_strict_memoization.rb#47
853
+ RuboCop::Cop::Sorbet::ObsoleteStrictMemoization::MSG = T.let(T.unsafe(nil), String)
854
+
855
+ # Ensures one ancestor per requires_ancestor line
856
+ # rather than chaining them as a comma-separated list.
857
+ #
858
+ # @example
859
+ #
860
+ # # bad
861
+ # module SomeModule
862
+ # requires_ancestor Kernel, Minitest::Assertions
863
+ # end
864
+ #
865
+ # # good
866
+ # module SomeModule
867
+ # requires_ancestor Kernel
868
+ # requires_ancestor Minitest::Assertions
869
+ # end
870
+ #
871
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#24
872
+ class RuboCop::Cop::Sorbet::OneAncestorPerLine < ::RuboCop::Cop::Cop
873
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#38
874
+ def abstract?(param0); end
875
+
876
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#56
877
+ def autocorrect(node); end
878
+
879
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#33
880
+ def more_than_one_ancestor(param0 = T.unsafe(nil)); end
881
+
882
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#49
883
+ def on_class(node); end
884
+
885
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#42
886
+ def on_module(node); end
887
+
888
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#28
889
+ def requires_ancestors(param0); end
890
+
891
+ private
892
+
893
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#72
894
+ def new_ra_line(indent_count); end
895
+
896
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#66
897
+ def process_node(node); end
898
+ end
899
+
900
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#25
901
+ RuboCop::Cop::Sorbet::OneAncestorPerLine::MSG = T.let(T.unsafe(nil), String)
902
+
903
+ # Forbids the use of redundant `extend T::Sig`. Only for use in
904
+ # applications that monkey patch `Module.include(T::Sig)` globally,
905
+ # which would make it redundant.
906
+ #
907
+ # @example
908
+ # # bad
909
+ # class Example
910
+ # extend T::Sig
911
+ # sig { void }
912
+ # def no_op; end
913
+ # end
914
+ #
915
+ # # good
916
+ # class Example
917
+ # sig { void }
918
+ # def no_op; end
919
+ # end
920
+ #
921
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb#28
922
+ class RuboCop::Cop::Sorbet::RedundantExtendTSig < ::RuboCop::Cop::Base
923
+ extend ::RuboCop::Cop::AutoCorrector
924
+
925
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb#35
926
+ def extend_t_sig?(param0 = T.unsafe(nil)); end
927
+
928
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb#39
929
+ def on_send(node); end
930
+ end
931
+
932
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb#31
933
+ RuboCop::Cop::Sorbet::RedundantExtendTSig::MSG = T.let(T.unsafe(nil), String)
934
+
935
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb#32
936
+ RuboCop::Cop::Sorbet::RedundantExtendTSig::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
937
+
938
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#15
939
+ class RuboCop::Cop::Sorbet::SignatureBuildOrder < ::RuboCop::Cop::Sorbet::SignatureCop
940
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#59
941
+ def autocorrect(node); end
942
+
943
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#35
944
+ def on_signature(node); end
945
+
946
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#31
947
+ def root_call(param0); end
948
+
949
+ private
950
+
951
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#101
952
+ def call_chain(sig_child_node); end
953
+
954
+ # @return [Boolean]
955
+ #
956
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#97
957
+ def can_autocorrect?; end
958
+
959
+ # This method exists to reparse the current node with modern features enabled.
960
+ # Modern features include "index send" emitting, which is necessary to unparse
961
+ # "index sends" (i.e. `[]` calls) back to index accessors (i.e. as `foo[bar]``).
962
+ # Otherwise, we would get the unparsed node as `foo.[](bar)`.
963
+ #
964
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#88
965
+ def node_reparsed_with_modern_features(node); end
966
+ end
967
+
968
+ # Create a subclass of AST Builder that has modern features turned on
969
+ #
970
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#77
971
+ class RuboCop::Cop::Sorbet::SignatureBuildOrder::ModernBuilder < ::RuboCop::AST::Builder; end
972
+
973
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#16
974
+ RuboCop::Cop::Sorbet::SignatureBuildOrder::ORDER = T.let(T.unsafe(nil), Hash)
975
+
976
+ # Abstract cop specific to Sorbet signatures
977
+ #
978
+ # You can subclass it to use the `on_signature` trigger and the `signature?` node matcher.
979
+ #
980
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_cop.rb#11
981
+ class RuboCop::Cop::Sorbet::SignatureCop < ::RuboCop::Cop::Cop
982
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_cop.rb#33
983
+ def on_block(node); end
984
+
985
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_cop.rb#33
986
+ def on_numblock(node); end
987
+
988
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_cop.rb#39
989
+ def on_signature(_); end
990
+
991
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_cop.rb#15
992
+ def signature?(param0 = T.unsafe(nil)); end
993
+
994
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_cop.rb#24
995
+ def with_runtime?(param0 = T.unsafe(nil)); end
996
+
997
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_cop.rb#29
998
+ def without_runtime?(param0 = T.unsafe(nil)); end
999
+ end
1000
+
1001
+ # Ensures empty class/module definitions in RBI files are
1002
+ # done on a single line rather than being split across multiple lines.
1003
+ #
1004
+ # @example
1005
+ #
1006
+ # # bad
1007
+ # module SomeModule
1008
+ # end
1009
+ #
1010
+ # # good
1011
+ # module SomeModule; end
1012
+ #
1013
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#17
1014
+ class RuboCop::Cop::Sorbet::SingleLineRbiClassModuleDefinitions < ::RuboCop::Cop::Base
1015
+ extend ::RuboCop::Cop::AutoCorrector
1016
+
1017
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#22
1018
+ def on_class(node); end
1019
+
1020
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#22
1021
+ def on_module(node); end
1022
+
1023
+ private
1024
+
1025
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#34
1026
+ def convert_newlines_to_semicolons(source); end
1027
+ end
1028
+
1029
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#20
1030
+ RuboCop::Cop::Sorbet::SingleLineRbiClassModuleDefinitions::MSG = T.let(T.unsafe(nil), String)
1031
+
1032
+ # Makes the Sorbet `strict` sigil mandatory in all files.
1033
+ #
1034
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/strict_sigil.rb#10
1035
+ class RuboCop::Cop::Sorbet::StrictSigil < ::RuboCop::Cop::Sorbet::HasSigil
1036
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/strict_sigil.rb#11
1037
+ def minimum_strictness; end
1038
+ end
1039
+
1040
+ # Makes the Sorbet `strong` sigil mandatory in all files.
1041
+ #
1042
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/strong_sigil.rb#10
1043
+ class RuboCop::Cop::Sorbet::StrongSigil < ::RuboCop::Cop::Sorbet::HasSigil
1044
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/strong_sigil.rb#11
1045
+ def minimum_strictness; end
1046
+ end
1047
+
1048
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#6
1049
+ module RuboCop::Cop::Sorbet::TargetSorbetVersion
1050
+ mixes_in_class_methods ::RuboCop::Cop::Sorbet::TargetSorbetVersion::ClassMethods
1051
+
1052
+ # @return [Boolean]
1053
+ #
1054
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#24
1055
+ def enabled_for_sorbet_static_version?; end
1056
+
1057
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#40
1058
+ def read_sorbet_static_version_from_bundler_lock_file; end
1059
+
1060
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#31
1061
+ def target_sorbet_static_version_from_bundler_lock_file; end
1062
+
1063
+ class << self
1064
+ # @private
1065
+ #
1066
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#8
1067
+ def included(target); end
1068
+ end
1069
+ end
1070
+
1071
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#13
1072
+ module RuboCop::Cop::Sorbet::TargetSorbetVersion::ClassMethods
1073
+ # The version of the Sorbet static type checker required by this cop
1074
+ #
1075
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#15
1076
+ def minimum_target_sorbet_static_version(version); end
1077
+
1078
+ # @return [Boolean]
1079
+ #
1080
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mixin/target_sorbet_version.rb#19
1081
+ def support_target_sorbet_static_version?(version); end
1082
+ end
1083
+
1084
+ # Makes the Sorbet `true` sigil mandatory in all files.
1085
+ #
1086
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/true_sigil.rb#10
1087
+ class RuboCop::Cop::Sorbet::TrueSigil < ::RuboCop::Cop::Sorbet::HasSigil
1088
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/true_sigil.rb#11
1089
+ def minimum_strictness; end
1090
+ end
1091
+
1092
+ # Ensures all constants used as `T.type_alias` are using CamelCase.
1093
+ #
1094
+ # @example
1095
+ #
1096
+ # # bad
1097
+ # FOO_OR_BAR = T.type_alias { T.any(Foo, Bar) }
1098
+ #
1099
+ # # good
1100
+ # FooOrBar = T.type_alias { T.any(Foo, Bar) }
1101
+ #
1102
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/type_alias_name.rb#17
1103
+ class RuboCop::Cop::Sorbet::TypeAliasName < ::RuboCop::Cop::Base
1104
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/type_alias_name.rb#32
1105
+ def on_casgn(node); end
1106
+
1107
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/type_alias_name.rb#21
1108
+ def underscored_type_alias?(param0 = T.unsafe(nil)); end
1109
+ end
1110
+
1111
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/type_alias_name.rb#18
1112
+ RuboCop::Cop::Sorbet::TypeAliasName::MSG = T.let(T.unsafe(nil), String)
1113
+
1114
+ # Checks that every Ruby file contains a valid Sorbet sigil.
1115
+ # Adapted from: https://gist.github.com/clarkdave/85aca4e16f33fd52aceb6a0a29936e52
1116
+ #
1117
+ # Options:
1118
+ #
1119
+ # * `RequireSigilOnAllFiles`: make offense if the Sorbet typed is not found in the file (default: false)
1120
+ # * `SuggestedStrictness`: Sorbet strictness level suggested in offense messages (default: 'false')
1121
+ # * `MinimumStrictness`: If set, make offense if the strictness level in the file is below this one
1122
+ # * `ExactStrictness`: If set, make offense if the strictness level in the file is different than this one
1123
+ #
1124
+ # If an `ExactStrictness` level is specified, it will be used in offense messages and autocorrect.
1125
+ # Otherwise, if a `MinimumStrictness` level is specified, it will be used in offense messages and autocorrect.
1126
+ #
1127
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#20
1128
+ class RuboCop::Cop::Sorbet::ValidSigil < ::RuboCop::Cop::Cop
1129
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#35
1130
+ def autocorrect(_node); end
1131
+
1132
+ # So we can properly subclass this cop
1133
+ #
1134
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#23
1135
+ def investigate(processed_source); end
1136
+
1137
+ protected
1138
+
1139
+ # checks
1140
+ #
1141
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#70
1142
+ def check_sigil_present(sigil); end
1143
+
1144
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#130
1145
+ def check_strictness_level(sigil, strictness); end
1146
+
1147
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#108
1148
+ def check_strictness_not_empty(sigil, strictness); end
1149
+
1150
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#119
1151
+ def check_strictness_valid(sigil, strictness); end
1152
+
1153
+ # Default is `nil`
1154
+ #
1155
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#180
1156
+ def exact_strictness; end
1157
+
1158
+ # extraction
1159
+ #
1160
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#58
1161
+ def extract_sigil(processed_source); end
1162
+
1163
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#64
1164
+ def extract_strictness(sigil); end
1165
+
1166
+ # Default is `nil`
1167
+ #
1168
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#174
1169
+ def minimum_strictness; end
1170
+
1171
+ # Default is `false`
1172
+ #
1173
+ # @return [Boolean]
1174
+ #
1175
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#163
1176
+ def require_sigil_on_all_files?; end
1177
+
1178
+ # Default is `'false'`
1179
+ #
1180
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#168
1181
+ def suggested_strictness; end
1182
+
1183
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#86
1184
+ def suggested_strictness_level; end
1185
+ end
1186
+
1187
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#54
1188
+ RuboCop::Cop::Sorbet::ValidSigil::SIGIL_REGEX = T.let(T.unsafe(nil), Regexp)
1189
+
1190
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#53
1191
+ RuboCop::Cop::Sorbet::ValidSigil::STRICTNESS_LEVELS = T.let(T.unsafe(nil), Array)
1192
+
1193
+ module RuboCop::Cop::Style; end
1194
+
1195
+ class RuboCop::Cop::Style::MutableConstant < ::RuboCop::Cop::Base
1196
+ include ::RuboCop::Cop::Sorbet::MutableConstantSorbetAwareBehaviour
1197
+ end
1198
+
1199
+ # source://rubocop-sorbet//lib/rubocop/sorbet/version.rb#4
1200
+ module RuboCop::Sorbet; end
1201
+
1202
+ # source://rubocop-sorbet//lib/rubocop/sorbet.rb#12
1203
+ RuboCop::Sorbet::CONFIG = T.let(T.unsafe(nil), Hash)
1204
+
1205
+ # source://rubocop-sorbet//lib/rubocop/sorbet.rb#11
1206
+ RuboCop::Sorbet::CONFIG_DEFAULT = T.let(T.unsafe(nil), Pathname)
1207
+
1208
+ # source://rubocop-sorbet//lib/rubocop/sorbet.rb#8
1209
+ class RuboCop::Sorbet::Error < ::StandardError; end
1210
+
1211
+ # Because RuboCop doesn't yet support plugins, we have to monkey patch in a
1212
+ # bit of our configuration.
1213
+ #
1214
+ # source://rubocop-sorbet//lib/rubocop/sorbet/inject.rb#9
1215
+ module RuboCop::Sorbet::Inject
1216
+ class << self
1217
+ # source://rubocop-sorbet//lib/rubocop/sorbet/inject.rb#11
1218
+ def defaults!; end
1219
+ end
1220
+ end
1221
+
1222
+ # source://rubocop-sorbet//lib/rubocop/sorbet.rb#10
1223
+ RuboCop::Sorbet::PROJECT_ROOT = T.let(T.unsafe(nil), Pathname)
1224
+
1225
+ # source://rubocop-sorbet//lib/rubocop/sorbet/version.rb#5
1226
+ RuboCop::Sorbet::VERSION = T.let(T.unsafe(nil), String)