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.
- checksums.yaml +7 -0
- data/.gitignore +56 -0
- data/.rubocop.yml +32 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +1 -0
- data/Gemfile +20 -0
- data/Gemfile.lock +121 -0
- data/LICENSE +21 -0
- data/README.md +84 -0
- data/Rakefile +12 -0
- data/bench/bench.rb +35 -0
- data/bench/execute.rb +66 -0
- data/bench/schemas/bluejay.rb +149 -0
- data/bench/schemas/models.rb +216 -0
- data/bench/schemas/oriole.rb +144 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/bin/style +2 -0
- data/bin/tapioca +27 -0
- data/bin/typecheck +2 -0
- data/lib/oriole/builtin_scalar_definition.rb +53 -0
- data/lib/oriole/definition/abstract/definition.rb +21 -0
- data/lib/oriole/definition/abstract/field_definition.rb +22 -0
- data/lib/oriole/definition/abstract/object_type_definition.rb +21 -0
- data/lib/oriole/definition/abstract/schema_definition.rb +18 -0
- data/lib/oriole/definition/abstract/visibility.rb +18 -0
- data/lib/oriole/definition/base_output_type.rb +13 -0
- data/lib/oriole/definition/field_definition.rb +27 -0
- data/lib/oriole/definition/object_type.rb +40 -0
- data/lib/oriole/definition/output_type.rb +79 -0
- data/lib/oriole/definition/schema.rb +45 -0
- data/lib/oriole/definition/visibility_scoped/object_type_definition.rb +62 -0
- data/lib/oriole/definition/visibility_scoped/schema_definition.rb +26 -0
- data/lib/oriole/execution/coerce_result.rb +16 -0
- data/lib/oriole/execution/engine.rb +207 -0
- data/lib/oriole/version.rb +6 -0
- data/lib/oriole.rb +14 -0
- data/oriole.gemspec +38 -0
- data/rakelib/bench.rake +69 -0
- data/sorbet/config +5 -0
- data/sorbet/rbi/annotations/rainbow.rbi +269 -0
- data/sorbet/rbi/gems/ast@2.4.2.rbi +584 -0
- data/sorbet/rbi/gems/base64@0.1.1.rbi +172 -0
- data/sorbet/rbi/gems/bluejay@0.1.0.alpha.2-a45c1b3b47aa4524f94bbe03db5ff1ae792afd09.rbi +1206 -0
- data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +1083 -0
- data/sorbet/rbi/gems/erubi@1.12.0.rbi +145 -0
- data/sorbet/rbi/gems/json@2.6.3.rbi +1533 -0
- data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14237 -0
- data/sorbet/rbi/gems/minitest@5.19.0.rbi +1491 -0
- data/sorbet/rbi/gems/netrc@0.11.0.rbi +158 -0
- data/sorbet/rbi/gems/parallel@1.23.0.rbi +273 -0
- data/sorbet/rbi/gems/parser@3.2.2.3.rbi +7253 -0
- data/sorbet/rbi/gems/prettier_print@1.2.1.rbi +951 -0
- data/sorbet/rbi/gems/racc@1.7.1.rbi +161 -0
- data/sorbet/rbi/gems/rainbow@3.1.1.rbi +402 -0
- data/sorbet/rbi/gems/rake@13.0.6.rbi +3024 -0
- data/sorbet/rbi/gems/rbi@0.0.17.rbi +2972 -0
- data/sorbet/rbi/gems/regexp_parser@2.8.1.rbi +3749 -0
- data/sorbet/rbi/gems/rexml@3.2.6.rbi +4781 -0
- data/sorbet/rbi/gems/rubocop-ast@1.29.0.rbi +7006 -0
- data/sorbet/rbi/gems/rubocop-minitest@0.27.0.rbi +2371 -0
- data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +328 -0
- data/sorbet/rbi/gems/rubocop-shopify@2.14.0.rbi +8 -0
- data/sorbet/rbi/gems/rubocop-sorbet@0.6.11.rbi +975 -0
- data/sorbet/rbi/gems/rubocop@1.56.1.rbi +56525 -0
- data/sorbet/rbi/gems/ruby-lsp@0.4.5.rbi +11 -0
- data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1317 -0
- data/sorbet/rbi/gems/spoom@1.2.3.rbi +3203 -0
- data/sorbet/rbi/gems/syntax_tree@6.1.1.rbi +22855 -0
- data/sorbet/rbi/gems/tapioca@0.11.8.rbi +3349 -0
- data/sorbet/rbi/gems/thor@1.2.2.rbi +3965 -0
- data/sorbet/rbi/gems/tinygql@0.1.4.rbi +2363 -0
- data/sorbet/rbi/gems/unicode-display_width@2.4.2.rbi +65 -0
- data/sorbet/rbi/gems/unparser@0.6.8.rbi +4525 -0
- data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +428 -0
- data/sorbet/rbi/gems/yard@0.9.34.rbi +18219 -0
- data/sorbet/rbi/gems/zeitwerk@2.6.11.rbi +999 -0
- data/sorbet/tapioca/config.yml +13 -0
- data/sorbet/tapioca/require.rb +5 -0
- 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)
|