oriole 0.1.0.alpha.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 (80) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +56 -0
  3. data/.rubocop.yml +32 -0
  4. data/.ruby-version +1 -0
  5. data/CHANGELOG.md +1 -0
  6. data/Gemfile +20 -0
  7. data/Gemfile.lock +121 -0
  8. data/LICENSE +21 -0
  9. data/README.md +84 -0
  10. data/Rakefile +12 -0
  11. data/bench/bench.rb +35 -0
  12. data/bench/execute.rb +66 -0
  13. data/bench/schemas/bluejay.rb +149 -0
  14. data/bench/schemas/models.rb +216 -0
  15. data/bench/schemas/oriole.rb +144 -0
  16. data/bin/console +15 -0
  17. data/bin/setup +8 -0
  18. data/bin/style +2 -0
  19. data/bin/tapioca +27 -0
  20. data/bin/typecheck +2 -0
  21. data/lib/oriole/builtin_scalar_definition.rb +53 -0
  22. data/lib/oriole/definition/abstract/definition.rb +21 -0
  23. data/lib/oriole/definition/abstract/field_definition.rb +22 -0
  24. data/lib/oriole/definition/abstract/object_type_definition.rb +21 -0
  25. data/lib/oriole/definition/abstract/schema_definition.rb +18 -0
  26. data/lib/oriole/definition/abstract/visibility.rb +18 -0
  27. data/lib/oriole/definition/base_output_type.rb +13 -0
  28. data/lib/oriole/definition/field_definition.rb +27 -0
  29. data/lib/oriole/definition/object_type.rb +40 -0
  30. data/lib/oriole/definition/output_type.rb +79 -0
  31. data/lib/oriole/definition/schema.rb +45 -0
  32. data/lib/oriole/definition/visibility_scoped/object_type_definition.rb +62 -0
  33. data/lib/oriole/definition/visibility_scoped/schema_definition.rb +26 -0
  34. data/lib/oriole/execution/coerce_result.rb +16 -0
  35. data/lib/oriole/execution/engine.rb +207 -0
  36. data/lib/oriole/version.rb +6 -0
  37. data/lib/oriole.rb +14 -0
  38. data/oriole.gemspec +38 -0
  39. data/rakelib/bench.rake +69 -0
  40. data/sorbet/config +5 -0
  41. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  42. data/sorbet/rbi/gems/ast@2.4.2.rbi +584 -0
  43. data/sorbet/rbi/gems/base64@0.1.1.rbi +172 -0
  44. data/sorbet/rbi/gems/bluejay@0.1.0.alpha.2-a45c1b3b47aa4524f94bbe03db5ff1ae792afd09.rbi +1206 -0
  45. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +1083 -0
  46. data/sorbet/rbi/gems/erubi@1.12.0.rbi +145 -0
  47. data/sorbet/rbi/gems/json@2.6.3.rbi +1533 -0
  48. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14237 -0
  49. data/sorbet/rbi/gems/minitest@5.19.0.rbi +1491 -0
  50. data/sorbet/rbi/gems/netrc@0.11.0.rbi +158 -0
  51. data/sorbet/rbi/gems/parallel@1.23.0.rbi +273 -0
  52. data/sorbet/rbi/gems/parser@3.2.2.3.rbi +7253 -0
  53. data/sorbet/rbi/gems/prettier_print@1.2.1.rbi +951 -0
  54. data/sorbet/rbi/gems/racc@1.7.1.rbi +161 -0
  55. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +402 -0
  56. data/sorbet/rbi/gems/rake@13.0.6.rbi +3024 -0
  57. data/sorbet/rbi/gems/rbi@0.0.17.rbi +2972 -0
  58. data/sorbet/rbi/gems/regexp_parser@2.8.1.rbi +3749 -0
  59. data/sorbet/rbi/gems/rexml@3.2.6.rbi +4781 -0
  60. data/sorbet/rbi/gems/rubocop-ast@1.29.0.rbi +7006 -0
  61. data/sorbet/rbi/gems/rubocop-minitest@0.27.0.rbi +2371 -0
  62. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +328 -0
  63. data/sorbet/rbi/gems/rubocop-shopify@2.14.0.rbi +8 -0
  64. data/sorbet/rbi/gems/rubocop-sorbet@0.6.11.rbi +975 -0
  65. data/sorbet/rbi/gems/rubocop@1.56.1.rbi +56525 -0
  66. data/sorbet/rbi/gems/ruby-lsp@0.4.5.rbi +11 -0
  67. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1317 -0
  68. data/sorbet/rbi/gems/spoom@1.2.3.rbi +3203 -0
  69. data/sorbet/rbi/gems/syntax_tree@6.1.1.rbi +22855 -0
  70. data/sorbet/rbi/gems/tapioca@0.11.8.rbi +3349 -0
  71. data/sorbet/rbi/gems/thor@1.2.2.rbi +3965 -0
  72. data/sorbet/rbi/gems/tinygql@0.1.4.rbi +2363 -0
  73. data/sorbet/rbi/gems/unicode-display_width@2.4.2.rbi +65 -0
  74. data/sorbet/rbi/gems/unparser@0.6.8.rbi +4525 -0
  75. data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +428 -0
  76. data/sorbet/rbi/gems/yard@0.9.34.rbi +18219 -0
  77. data/sorbet/rbi/gems/zeitwerk@2.6.11.rbi +999 -0
  78. data/sorbet/tapioca/config.yml +13 -0
  79. data/sorbet/tapioca/require.rb +5 -0
  80. metadata +208 -0
@@ -0,0 +1,975 @@
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#2
8
+ module RuboCop; end
9
+
10
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#6
11
+ module RuboCop::Cop; end
12
+
13
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#7
14
+ module RuboCop::Cop::Sorbet; end
15
+
16
+ # This cop 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 it's 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::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
37
+
38
+ # @return [Boolean]
39
+ #
40
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#31
41
+ def not_nil?(node); end
42
+
43
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#48
44
+ def on_send(node); end
45
+
46
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb#22
47
+ def sig?(param0); end
48
+ end
49
+
50
+ # This cop disallows binding the return value of `T.any`, `T.all`, `T.enum`
51
+ # to a constant directly. To bind the value, one must use `T.type_alias`.
52
+ #
53
+ # @example
54
+ #
55
+ # # bad
56
+ # FooOrBar = T.any(Foo, Bar)
57
+ #
58
+ # # good
59
+ # FooOrBar = T.type_alias { T.any(Foo, Bar) }
60
+ #
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
65
+
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
68
+
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
71
+
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
74
+
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
77
+
78
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#72
79
+ def method_needing_aliasing_on_t?(param0); end
80
+
81
+ # @return [Boolean]
82
+ #
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]
87
+ #
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]
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]
97
+ #
98
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#81
99
+ def not_t_let?(node); end
100
+
101
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#97
102
+ def on_casgn(node); end
103
+
104
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/binding_constants_without_type_alias.rb#41
105
+ def t_let?(param0 = T.unsafe(nil)); end
106
+
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
109
+
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
112
+ end
113
+
114
+ # This cop ensures that callback conditionals are bound to the right type
115
+ # so that they are type checked properly.
116
+ #
117
+ # Auto-correction is unsafe because other libraries define similar style callbacks as Rails, but don't always need
118
+ # binding to the attached class. Auto-correcting those usages can lead to false positives and auto-correction
119
+ # introduces new typing errors.
120
+ #
121
+ # @example
122
+ #
123
+ # # bad
124
+ # class Post < ApplicationRecord
125
+ # before_create :do_it, if: -> { should_do_it? }
126
+ #
127
+ # def should_do_it?
128
+ # true
129
+ # end
130
+ # end
131
+ #
132
+ # # good
133
+ # class Post < ApplicationRecord
134
+ # before_create :do_it, if: -> {
135
+ # T.bind(self, Post)
136
+ # should_do_it?
137
+ # }
138
+ #
139
+ # def should_do_it?
140
+ # true
141
+ # end
142
+ # end
143
+ #
144
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/callback_conditionals_binding.rb#35
145
+ class RuboCop::Cop::Sorbet::CallbackConditionalsBinding < ::RuboCop::Cop::Cop
146
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/callback_conditionals_binding.rb#47
147
+ def autocorrect(node); end
148
+
149
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/callback_conditionals_binding.rb#99
150
+ def on_send(node); end
151
+ end
152
+
153
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/callback_conditionals_binding.rb#36
154
+ RuboCop::Cop::Sorbet::CallbackConditionalsBinding::CALLBACKS = T.let(T.unsafe(nil), Array)
155
+
156
+ # This cop disallows the usage of `checked(true)`. This usage could cause
157
+ # confusion; it could lead some people to believe that a method would be checked
158
+ # even if runtime checks have not been enabled on the class or globally.
159
+ # Additionally, in the event where checks are enabled, `checked(true)` would
160
+ # be redundant; only `checked(false)` or `soft` would change the behaviour.
161
+ #
162
+ # @example
163
+ #
164
+ # # bad
165
+ # sig { void.checked(true) }
166
+ #
167
+ # # good
168
+ # sig { void }
169
+ #
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
172
+ include ::RuboCop::Cop::RangeHelp
173
+
174
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb#25
175
+ def offending_node(param0); end
176
+
177
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb#36
178
+ def on_signature(node); end
179
+ end
180
+
181
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb#29
182
+ RuboCop::Cop::Sorbet::CheckedTrueInSignature::MESSAGE = T.let(T.unsafe(nil), String)
183
+
184
+ # This cop disallows the calls that are used to get constants fom Strings
185
+ # such as +constantize+, +const_get+, and +constants+.
186
+ #
187
+ # The goal of this cop is to make the code easier to statically analyze,
188
+ # more IDE-friendly, and more predictable. It leads to code that clearly
189
+ # expresses which values the constant can have.
190
+ #
191
+ # @example
192
+ #
193
+ # # bad
194
+ # class_name.constantize
195
+ #
196
+ # # bad
197
+ # constants.detect { |c| c.name == "User" }
198
+ #
199
+ # # bad
200
+ # const_get(class_name)
201
+ #
202
+ # # good
203
+ # case class_name
204
+ # when "User"
205
+ # User
206
+ # else
207
+ # raise ArgumentError
208
+ # end
209
+ #
210
+ # # good
211
+ # { "User" => User }.fetch(class_name)
212
+ #
213
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/constants_from_strings.rb#36
214
+ class RuboCop::Cop::Sorbet::ConstantsFromStrings < ::RuboCop::Cop::Cop
215
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/constants_from_strings.rb#37
216
+ def constant_from_string?(param0 = T.unsafe(nil)); end
217
+
218
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/constants_from_strings.rb#41
219
+ def on_send(node); end
220
+ end
221
+
222
+ # This cop checks that the Sorbet sigil comes as the first magic comment in the file.
223
+ #
224
+ # The expected order for magic comments is: typed, (en)?coding, warn_indent then frozen_string_literal.
225
+ #
226
+ # For example, the following bad ordering:
227
+ #
228
+ # ```ruby
229
+ # class Foo; end
230
+ # ```
231
+ #
232
+ # Will be corrected as:
233
+ #
234
+ # ```ruby
235
+ # class Foo; end
236
+ # ```
237
+ #
238
+ # Only `typed`, `(en)?coding`, `warn_indent` and `frozen_string_literal` magic comments are considered,
239
+ # other comments or magic comments are left in the same place.
240
+ #
241
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#30
242
+ class RuboCop::Cop::Sorbet::EnforceSigilOrder < ::RuboCop::Cop::Sorbet::ValidSigil
243
+ include ::RuboCop::Cop::RangeHelp
244
+
245
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#42
246
+ def autocorrect(_node); end
247
+
248
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#33
249
+ def investigate(processed_source); end
250
+
251
+ protected
252
+
253
+ # checks
254
+ #
255
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#91
256
+ def check_magic_comments_order(tokens); end
257
+
258
+ # Get all the tokens in `processed_source` that match `MAGIC_REGEX`
259
+ #
260
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#83
261
+ def extract_magic_comments(processed_source); end
262
+ end
263
+
264
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#67
265
+ RuboCop::Cop::Sorbet::EnforceSigilOrder::CODING_REGEX = T.let(T.unsafe(nil), Regexp)
266
+
267
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#69
268
+ RuboCop::Cop::Sorbet::EnforceSigilOrder::FROZEN_REGEX = T.let(T.unsafe(nil), Regexp)
269
+
270
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#68
271
+ RuboCop::Cop::Sorbet::EnforceSigilOrder::INDENT_REGEX = T.let(T.unsafe(nil), Regexp)
272
+
273
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#78
274
+ RuboCop::Cop::Sorbet::EnforceSigilOrder::MAGIC_REGEX = T.let(T.unsafe(nil), Regexp)
275
+
276
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb#71
277
+ RuboCop::Cop::Sorbet::EnforceSigilOrder::PREFERRED_ORDER = T.let(T.unsafe(nil), Hash)
278
+
279
+ # This cop checks that every method definition and attribute accessor has a Sorbet signature.
280
+ #
281
+ # It also suggest an autocorrect with placeholders so the following code:
282
+ #
283
+ # ```
284
+ # def foo(a, b, c); end
285
+ # ```
286
+ #
287
+ # Will be corrected as:
288
+ #
289
+ # ```
290
+ # sig { params(a: T.untyped, b: T.untyped, c: T.untyped).returns(T.untyped)
291
+ # def foo(a, b, c); end
292
+ # ```
293
+ #
294
+ # You can configure the placeholders used by changing the following options:
295
+ #
296
+ # * `ParameterTypePlaceholder`: placeholders used for parameter types (default: 'T.untyped')
297
+ # * `ReturnTypePlaceholder`: placeholders used for return types (default: 'T.untyped')
298
+ #
299
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#29
300
+ class RuboCop::Cop::Sorbet::EnforceSignatures < ::RuboCop::Cop::Sorbet::SignatureCop
301
+ # @return [EnforceSignatures] a new instance of EnforceSignatures
302
+ #
303
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#30
304
+ def initialize(config = T.unsafe(nil), options = T.unsafe(nil)); end
305
+
306
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#35
307
+ def accessor?(param0 = T.unsafe(nil)); end
308
+
309
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#55
310
+ def autocorrect(node); end
311
+
312
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#39
313
+ def on_def(node); end
314
+
315
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#43
316
+ def on_defs(node); end
317
+
318
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#47
319
+ def on_send(node); end
320
+
321
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#51
322
+ def on_signature(node); end
323
+
324
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#74
325
+ def scope(node); end
326
+
327
+ private
328
+
329
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#82
330
+ def check_node(node); end
331
+
332
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#93
333
+ def param_type_placeholder; end
334
+
335
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#97
336
+ def return_type_placeholder; end
337
+ end
338
+
339
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#101
340
+ class RuboCop::Cop::Sorbet::EnforceSignatures::SigSuggestion
341
+ # @return [SigSuggestion] a new instance of SigSuggestion
342
+ #
343
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#104
344
+ def initialize(indent, param_placeholder, return_placeholder); end
345
+
346
+ # Returns the value of attribute params.
347
+ #
348
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#102
349
+ def params; end
350
+
351
+ # Sets the attribute params
352
+ #
353
+ # @param value the value to set the attribute params to.
354
+ #
355
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#102
356
+ def params=(_arg0); end
357
+
358
+ # Returns the value of attribute returns.
359
+ #
360
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#102
361
+ def returns; end
362
+
363
+ # Sets the attribute returns
364
+ #
365
+ # @param value the value to set the attribute returns to.
366
+ #
367
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#102
368
+ def returns=(_arg0); end
369
+
370
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#112
371
+ def to_autocorrect; end
372
+
373
+ private
374
+
375
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#124
376
+ def generate_params; end
377
+
378
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb#135
379
+ def generate_return; end
380
+ end
381
+
382
+ # This cop checks that there is only one Sorbet sigil in a given file
383
+ #
384
+ # For example, the following class with two sigils
385
+ #
386
+ # ```ruby
387
+ # class Foo; end
388
+ # ```
389
+ #
390
+ # Will be corrected as:
391
+ #
392
+ # ```ruby
393
+ # class Foo; end
394
+ # ```
395
+ #
396
+ # Other comments or magic comments are left in place.
397
+ #
398
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_single_sigil.rb#26
399
+ class RuboCop::Cop::Sorbet::EnforceSingleSigil < ::RuboCop::Cop::Sorbet::ValidSigil
400
+ include ::RuboCop::Cop::RangeHelp
401
+
402
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_single_sigil.rb#39
403
+ def autocorrect(_node); end
404
+
405
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_single_sigil.rb#29
406
+ def investigate(processed_source); end
407
+
408
+ protected
409
+
410
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/enforce_single_sigil.rb#55
411
+ def extract_all_sigils(processed_source); end
412
+ end
413
+
414
+ # This cop makes the Sorbet `false` sigil mandatory in all files.
415
+ #
416
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/false_sigil.rb#10
417
+ class RuboCop::Cop::Sorbet::FalseSigil < ::RuboCop::Cop::Sorbet::HasSigil
418
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/false_sigil.rb#11
419
+ def minimum_strictness; end
420
+ end
421
+
422
+ # This cop ensures RBI shims do not include a call to extend T::Sig
423
+ # or to extend T::Helpers
424
+ #
425
+ # @example
426
+ #
427
+ # # bad
428
+ # module SomeModule
429
+ # extend T::Sig
430
+ # extend T::Helpers
431
+ #
432
+ # sig { returns(String) }
433
+ # def foo; end
434
+ # end
435
+ #
436
+ # # good
437
+ # module SomeModule
438
+ # sig { returns(String) }
439
+ # def foo; end
440
+ # end
441
+ #
442
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#25
443
+ class RuboCop::Cop::Sorbet::ForbidExtendTSigHelpersInShims < ::RuboCop::Cop::Cop
444
+ include ::RuboCop::Cop::RangeHelp
445
+
446
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#39
447
+ def autocorrect(node); end
448
+
449
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#35
450
+ def extend_t_helpers?(param0 = T.unsafe(nil)); end
451
+
452
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#31
453
+ def extend_t_sig?(param0 = T.unsafe(nil)); end
454
+
455
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#47
456
+ def on_send(node); end
457
+ end
458
+
459
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#28
460
+ RuboCop::Cop::Sorbet::ForbidExtendTSigHelpersInShims::MSG = T.let(T.unsafe(nil), String)
461
+
462
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb#29
463
+ RuboCop::Cop::Sorbet::ForbidExtendTSigHelpersInShims::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
464
+
465
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#29
466
+ class RuboCop::Cop::Sorbet::ForbidIncludeConstLiteral < ::RuboCop::Cop::Cop
467
+ # @return [ForbidIncludeConstLiteral] a new instance of ForbidIncludeConstLiteral
468
+ #
469
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#40
470
+ def initialize(*_arg0); end
471
+
472
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#56
473
+ def autocorrect(node); end
474
+
475
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#34
476
+ def not_lit_const_include?(param0 = T.unsafe(nil)); end
477
+
478
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#45
479
+ def on_send(node); end
480
+
481
+ # Returns the value of attribute used_names.
482
+ #
483
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#32
484
+ def used_names; end
485
+
486
+ # Sets the attribute used_names
487
+ #
488
+ # @param value the value to set the attribute used_names to.
489
+ #
490
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#32
491
+ def used_names=(_arg0); end
492
+ end
493
+
494
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_include_const_literal.rb#30
495
+ RuboCop::Cop::Sorbet::ForbidIncludeConstLiteral::MSG = T.let(T.unsafe(nil), String)
496
+
497
+ # This cop makes sure that RBI files are always located under the defined allowed paths.
498
+ #
499
+ # Options:
500
+ #
501
+ # * `AllowedPaths`: A list of the paths where RBI files are allowed (default: ["sorbet/rbi/**"])
502
+ #
503
+ # @example
504
+ # # bad
505
+ # # lib/some_file.rbi
506
+ # # other_file.rbi
507
+ #
508
+ # # good
509
+ # # sorbet/rbi/some_file.rbi
510
+ # # sorbet/rbi/any/path/for/file.rbi
511
+ #
512
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_rbi_outside_of_allowed_paths.rb#22
513
+ class RuboCop::Cop::Sorbet::ForbidRBIOutsideOfAllowedPaths < ::RuboCop::Cop::Cop
514
+ include ::RuboCop::Cop::RangeHelp
515
+
516
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_rbi_outside_of_allowed_paths.rb#25
517
+ def investigate(processed_source); end
518
+
519
+ private
520
+
521
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/forbid_rbi_outside_of_allowed_paths.rb#57
522
+ def allowed_paths; end
523
+ end
524
+
525
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb#27
526
+ class RuboCop::Cop::Sorbet::ForbidSuperclassConstLiteral < ::RuboCop::Cop::Cop
527
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb#30
528
+ def not_lit_const_superclass?(param0 = T.unsafe(nil)); end
529
+
530
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb#38
531
+ def on_class(node); end
532
+ end
533
+
534
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_superclass_const_literal.rb#28
535
+ RuboCop::Cop::Sorbet::ForbidSuperclassConstLiteral::MSG = T.let(T.unsafe(nil), String)
536
+
537
+ # This cop disallows using `T.unsafe` anywhere.
538
+ #
539
+ # @example
540
+ #
541
+ # # bad
542
+ # T.unsafe(foo)
543
+ #
544
+ # # good
545
+ # foo
546
+ #
547
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_unsafe.rb#17
548
+ class RuboCop::Cop::Sorbet::ForbidTUnsafe < ::RuboCop::Cop::Cop
549
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_unsafe.rb#20
550
+ def on_send(node); end
551
+
552
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_unsafe.rb#18
553
+ def t_unsafe?(param0 = T.unsafe(nil)); end
554
+ end
555
+
556
+ # This cop disallows using `T.untyped` anywhere.
557
+ #
558
+ # @example
559
+ #
560
+ # # bad
561
+ # sig { params(my_argument: T.untyped).void }
562
+ # def foo(my_argument); end
563
+ #
564
+ # # good
565
+ # sig { params(my_argument: String).void }
566
+ # def foo(my_argument); end
567
+ #
568
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_untyped.rb#20
569
+ class RuboCop::Cop::Sorbet::ForbidTUntyped < ::RuboCop::Cop::Cop
570
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_untyped.rb#23
571
+ def on_send(node); end
572
+
573
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_t_untyped.rb#21
574
+ def t_untyped?(param0 = T.unsafe(nil)); end
575
+ end
576
+
577
+ # This cop disallows use of `T.untyped` or `T.nilable(T.untyped)`
578
+ # as a prop type for `T::Struct`.
579
+ #
580
+ # @example
581
+ #
582
+ # # bad
583
+ # class SomeClass
584
+ # const :foo, T.untyped
585
+ # prop :bar, T.nilable(T.untyped)
586
+ # end
587
+ #
588
+ # # good
589
+ # class SomeClass
590
+ # const :foo, Integer
591
+ # prop :bar, T.nilable(String)
592
+ # end
593
+ #
594
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#25
595
+ class RuboCop::Cop::Sorbet::ForbidUntypedStructProps < ::RuboCop::Cop::Cop
596
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#48
597
+ def on_class(node); end
598
+
599
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#40
600
+ def subclass_of_t_struct?(param0 = T.unsafe(nil)); end
601
+
602
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#36
603
+ def t_nilable_untyped(param0 = T.unsafe(nil)); end
604
+
605
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#28
606
+ def t_struct(param0 = T.unsafe(nil)); end
607
+
608
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#32
609
+ def t_untyped(param0 = T.unsafe(nil)); end
610
+
611
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#44
612
+ def untyped_props(param0); end
613
+ end
614
+
615
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/forbid_untyped_struct_props.rb#26
616
+ RuboCop::Cop::Sorbet::ForbidUntypedStructProps::MSG = T.let(T.unsafe(nil), String)
617
+
618
+ # This cop makes the Sorbet typed sigil mandatory in all files.
619
+ #
620
+ # Options:
621
+ #
622
+ # * `SuggestedStrictness`: Sorbet strictness level suggested in offense messages (default: 'false')
623
+ # * `MinimumStrictness`: If set, make offense if the strictness level in the file is below this one
624
+ #
625
+ # If a `MinimumStrictness` level is specified, it will be used in offense messages and autocorrect.
626
+ #
627
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/has_sigil.rb#17
628
+ class RuboCop::Cop::Sorbet::HasSigil < ::RuboCop::Cop::Sorbet::ValidSigil
629
+ # @return [Boolean]
630
+ #
631
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/has_sigil.rb#20
632
+ def require_sigil_on_all_files?; end
633
+ end
634
+
635
+ # This cop makes the Sorbet `ignore` sigil mandatory in all files.
636
+ #
637
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/ignore_sigil.rb#10
638
+ class RuboCop::Cop::Sorbet::IgnoreSigil < ::RuboCop::Cop::Sorbet::HasSigil
639
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/ignore_sigil.rb#11
640
+ def minimum_strictness; end
641
+ end
642
+
643
+ # This cop checks for the ordering of keyword arguments required by
644
+ # sorbet-runtime. The ordering requires that all keyword arguments
645
+ # are at the end of the parameters list, and all keyword arguments
646
+ # with a default value must be after those without default values.
647
+ #
648
+ # @example
649
+ #
650
+ # # bad
651
+ # sig { params(a: Integer, b: String).void }
652
+ # def foo(a: 1, b:); end
653
+ #
654
+ # # good
655
+ # sig { params(b: String, a: Integer).void }
656
+ # def foo(b:, a: 1); end
657
+ #
658
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/keyword_argument_ordering.rb#23
659
+ class RuboCop::Cop::Sorbet::KeywordArgumentOrdering < ::RuboCop::Cop::Sorbet::SignatureCop
660
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/keyword_argument_ordering.rb#24
661
+ def on_signature(node); end
662
+
663
+ private
664
+
665
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/keyword_argument_ordering.rb#34
666
+ def check_order_for_kwoptargs(parameters); end
667
+ end
668
+
669
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mutable_constant_sorbet_aware_behaviour.rb#8
670
+ module RuboCop::Cop::Sorbet::MutableConstantSorbetAwareBehaviour
671
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mutable_constant_sorbet_aware_behaviour.rb#15
672
+ def on_assignment(value); end
673
+
674
+ class << self
675
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/mutable_constant_sorbet_aware_behaviour.rb#9
676
+ def prepended(base); end
677
+ end
678
+ end
679
+
680
+ # This cop ensures one ancestor per requires_ancestor line
681
+ # rather than chaining them as a comma-separated list.
682
+ #
683
+ # @example
684
+ #
685
+ # # bad
686
+ # module SomeModule
687
+ # requires_ancestor Kernel, Minitest::Assertions
688
+ # end
689
+ #
690
+ # # good
691
+ # module SomeModule
692
+ # requires_ancestor Kernel
693
+ # requires_ancestor Minitest::Assertions
694
+ # end
695
+ #
696
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#24
697
+ class RuboCop::Cop::Sorbet::OneAncestorPerLine < ::RuboCop::Cop::Cop
698
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#35
699
+ def abstract?(param0); end
700
+
701
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#51
702
+ def autocorrect(node); end
703
+
704
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#31
705
+ def more_than_one_ancestor(param0 = T.unsafe(nil)); end
706
+
707
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#45
708
+ def on_class(node); end
709
+
710
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#39
711
+ def on_module(node); end
712
+
713
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#27
714
+ def requires_ancestors(param0); end
715
+
716
+ private
717
+
718
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#67
719
+ def new_ra_line(indent_count); end
720
+
721
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#61
722
+ def process_node(node); end
723
+ end
724
+
725
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/one_ancestor_per_line.rb#25
726
+ RuboCop::Cop::Sorbet::OneAncestorPerLine::MSG = T.let(T.unsafe(nil), String)
727
+
728
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#15
729
+ class RuboCop::Cop::Sorbet::SignatureBuildOrder < ::RuboCop::Cop::Sorbet::SignatureCop
730
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#54
731
+ def autocorrect(node); end
732
+
733
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#34
734
+ def on_signature(node); end
735
+
736
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#30
737
+ def root_call(param0); end
738
+
739
+ private
740
+
741
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#96
742
+ def call_chain(sig_child_node); end
743
+
744
+ # @return [Boolean]
745
+ #
746
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#92
747
+ def can_autocorrect?; end
748
+
749
+ # This method exists to reparse the current node with modern features enabled.
750
+ # Modern features include "index send" emitting, which is necessary to unparse
751
+ # "index sends" (i.e. `[]` calls) back to index accessors (i.e. as `foo[bar]``).
752
+ # Otherwise, we would get the unparsed node as `foo.[](bar)`.
753
+ #
754
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#83
755
+ def node_reparsed_with_modern_features(node); end
756
+ end
757
+
758
+ # Create a subclass of AST Builder that has modern features turned on
759
+ #
760
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#72
761
+ class RuboCop::Cop::Sorbet::SignatureBuildOrder::ModernBuilder < ::RuboCop::AST::Builder; end
762
+
763
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_build_order.rb#16
764
+ RuboCop::Cop::Sorbet::SignatureBuildOrder::ORDER = T.let(T.unsafe(nil), Hash)
765
+
766
+ # Abstract cop specific to Sorbet signatures
767
+ #
768
+ # You can subclass it to use the `on_signature` trigger and the `signature?` node matcher.
769
+ #
770
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_cop.rb#11
771
+ class RuboCop::Cop::Sorbet::SignatureCop < ::RuboCop::Cop::Cop
772
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_cop.rb#26
773
+ def allowed_recv(recv); end
774
+
775
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_cop.rb#33
776
+ def on_block(node); end
777
+
778
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_cop.rb#37
779
+ def on_signature(_); end
780
+
781
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_cop.rb#14
782
+ def signature?(param0 = T.unsafe(nil)); end
783
+
784
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_cop.rb#18
785
+ def with_runtime?(param0 = T.unsafe(nil)); end
786
+
787
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/signatures/signature_cop.rb#22
788
+ def without_runtime?(param0 = T.unsafe(nil)); end
789
+ end
790
+
791
+ # This cop ensures empty class/module definitions in RBI files are
792
+ # done on a single line rather than being split across multiple lines.
793
+ #
794
+ # @example
795
+ #
796
+ # # bad
797
+ # module SomeModule
798
+ # end
799
+ #
800
+ # # good
801
+ # module SomeModule; end
802
+ #
803
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#17
804
+ class RuboCop::Cop::Sorbet::SingleLineRbiClassModuleDefinitions < ::RuboCop::Cop::Cop
805
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#28
806
+ def autocorrect(node); end
807
+
808
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#24
809
+ def on_class(node); end
810
+
811
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#20
812
+ def on_module(node); end
813
+
814
+ protected
815
+
816
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#34
817
+ def convert_newlines(source); end
818
+
819
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#38
820
+ def process_node(node); end
821
+ end
822
+
823
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb#18
824
+ RuboCop::Cop::Sorbet::SingleLineRbiClassModuleDefinitions::MSG = T.let(T.unsafe(nil), String)
825
+
826
+ # This cop makes the Sorbet `strict` sigil mandatory in all files.
827
+ #
828
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/strict_sigil.rb#10
829
+ class RuboCop::Cop::Sorbet::StrictSigil < ::RuboCop::Cop::Sorbet::HasSigil
830
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/strict_sigil.rb#11
831
+ def minimum_strictness; end
832
+ end
833
+
834
+ # This cop makes the Sorbet `strong` sigil mandatory in all files.
835
+ #
836
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/strong_sigil.rb#10
837
+ class RuboCop::Cop::Sorbet::StrongSigil < ::RuboCop::Cop::Sorbet::HasSigil
838
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/strong_sigil.rb#11
839
+ def minimum_strictness; end
840
+ end
841
+
842
+ # This cop makes the Sorbet `true` sigil mandatory in all files.
843
+ #
844
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/true_sigil.rb#10
845
+ class RuboCop::Cop::Sorbet::TrueSigil < ::RuboCop::Cop::Sorbet::HasSigil
846
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/true_sigil.rb#11
847
+ def minimum_strictness; end
848
+ end
849
+
850
+ # This cop ensures all constants used as `T.type_alias` are using CamelCase.
851
+ #
852
+ # @example
853
+ #
854
+ # # bad
855
+ # FOO_OR_BAR = T.type_alias { T.any(Foo, Bar) }
856
+ #
857
+ # # good
858
+ # FooOrBar = T.type_alias { T.any(Foo, Bar) }
859
+ #
860
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/type_alias_name.rb#17
861
+ class RuboCop::Cop::Sorbet::TypeAliasName < ::RuboCop::Cop::Cop
862
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/type_alias_name.rb#20
863
+ def casgn_type_alias?(param0 = T.unsafe(nil)); end
864
+
865
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/type_alias_name.rb#32
866
+ def on_casgn(node); end
867
+ end
868
+
869
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/type_alias_name.rb#18
870
+ RuboCop::Cop::Sorbet::TypeAliasName::MSG = T.let(T.unsafe(nil), String)
871
+
872
+ # This cop checks that every Ruby file contains a valid Sorbet sigil.
873
+ # Adapted from: https://gist.github.com/clarkdave/85aca4e16f33fd52aceb6a0a29936e52
874
+ #
875
+ # Options:
876
+ #
877
+ # * `RequireSigilOnAllFiles`: make offense if the Sorbet typed is not found in the file (default: false)
878
+ # * `SuggestedStrictness`: Sorbet strictness level suggested in offense messages (default: 'false')
879
+ # * `MinimumStrictness`: If set, make offense if the strictness level in the file is below this one
880
+ #
881
+ # If a `MinimumStrictness` level is specified, it will be used in offense messages and autocorrect.
882
+ #
883
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#18
884
+ class RuboCop::Cop::Sorbet::ValidSigil < ::RuboCop::Cop::Cop
885
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#33
886
+ def autocorrect(_node); end
887
+
888
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#21
889
+ def investigate(processed_source); end
890
+
891
+ protected
892
+
893
+ # checks
894
+ #
895
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#68
896
+ def check_sigil_present(sigil); end
897
+
898
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#125
899
+ def check_strictness_level(sigil, strictness); end
900
+
901
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#103
902
+ def check_strictness_not_empty(sigil, strictness); end
903
+
904
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#114
905
+ def check_strictness_valid(sigil, strictness); end
906
+
907
+ # extraction
908
+ #
909
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#56
910
+ def extract_sigil(processed_source); end
911
+
912
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#62
913
+ def extract_strictness(sigil); end
914
+
915
+ # Default is `nil`
916
+ #
917
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#155
918
+ def minimum_strictness; end
919
+
920
+ # Default is `false`
921
+ #
922
+ # @return [Boolean]
923
+ #
924
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#144
925
+ def require_sigil_on_all_files?; end
926
+
927
+ # Default is `'false'`
928
+ #
929
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#149
930
+ def suggested_strictness; end
931
+
932
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#84
933
+ def suggested_strictness_level(minimum_strictness, suggested_strictness); end
934
+ end
935
+
936
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#52
937
+ RuboCop::Cop::Sorbet::ValidSigil::SIGIL_REGEX = T.let(T.unsafe(nil), Regexp)
938
+
939
+ # source://rubocop-sorbet//lib/rubocop/cop/sorbet/sigils/valid_sigil.rb#51
940
+ RuboCop::Cop::Sorbet::ValidSigil::STRICTNESS_LEVELS = T.let(T.unsafe(nil), Array)
941
+
942
+ module RuboCop::Cop::Style; end
943
+
944
+ class RuboCop::Cop::Style::MutableConstant < ::RuboCop::Cop::Base
945
+ include ::RuboCop::Cop::Sorbet::MutableConstantSorbetAwareBehaviour
946
+ end
947
+
948
+ # source://rubocop-sorbet//lib/rubocop/sorbet/version.rb#3
949
+ module RuboCop::Sorbet; end
950
+
951
+ # source://rubocop-sorbet//lib/rubocop/sorbet.rb#11
952
+ RuboCop::Sorbet::CONFIG = T.let(T.unsafe(nil), Hash)
953
+
954
+ # source://rubocop-sorbet//lib/rubocop/sorbet.rb#10
955
+ RuboCop::Sorbet::CONFIG_DEFAULT = T.let(T.unsafe(nil), Pathname)
956
+
957
+ # source://rubocop-sorbet//lib/rubocop/sorbet.rb#7
958
+ class RuboCop::Sorbet::Error < ::StandardError; end
959
+
960
+ # Because RuboCop doesn't yet support plugins, we have to monkey patch in a
961
+ # bit of our configuration.
962
+ #
963
+ # source://rubocop-sorbet//lib/rubocop/sorbet/inject.rb#9
964
+ module RuboCop::Sorbet::Inject
965
+ class << self
966
+ # source://rubocop-sorbet//lib/rubocop/sorbet/inject.rb#10
967
+ def defaults!; end
968
+ end
969
+ end
970
+
971
+ # source://rubocop-sorbet//lib/rubocop/sorbet.rb#9
972
+ RuboCop::Sorbet::PROJECT_ROOT = T.let(T.unsafe(nil), Pathname)
973
+
974
+ # source://rubocop-sorbet//lib/rubocop/sorbet/version.rb#4
975
+ RuboCop::Sorbet::VERSION = T.let(T.unsafe(nil), String)