tsumanne 0.0.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 (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,3329 @@
1
+ # typed: false
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `tapioca` gem.
5
+ # Please instead update this file by running `bin/tapioca gem tapioca`.
6
+
7
+ class Bundler::Dependency < ::Gem::Dependency
8
+ include ::Tapioca::BundlerExt::AutoRequireHook
9
+ end
10
+
11
+ # We need to do the alias-method-chain dance since Bootsnap does the same,
12
+ # and prepended modules and alias-method-chain don't play well together.
13
+ #
14
+ # So, why does Bootsnap do alias-method-chain and not prepend? Glad you asked!
15
+ # That's because RubyGems does alias-method-chain for Kernel#require and such,
16
+ # so, if Bootsnap were to do prepend, it might end up breaking RubyGems.
17
+ #
18
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#68
19
+ class Module
20
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#101
21
+ def append_features(constant); end
22
+
23
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#71
24
+ def autoload(const_name, path); end
25
+
26
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#111
27
+ def extend_object(obj); end
28
+
29
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#91
30
+ def prepend_features(constant); end
31
+ end
32
+
33
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#4
34
+ module RBI; end
35
+
36
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#5
37
+ class RBI::Tree < ::RBI::NodeWithComments
38
+ # source://rbi/0.0.17/lib/rbi/model.rb#119
39
+ sig do
40
+ params(
41
+ loc: T.nilable(::RBI::Loc),
42
+ comments: T::Array[::RBI::Comment],
43
+ block: T.nilable(T.proc.params(node: ::RBI::Tree).void)
44
+ ).void
45
+ end
46
+ def initialize(loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
47
+
48
+ # source://rbi/0.0.17/lib/rbi/model.rb#126
49
+ sig { params(node: ::RBI::Node).void }
50
+ def <<(node); end
51
+
52
+ # source://rbi/0.0.17/lib/rbi/printer.rb#226
53
+ sig { override.params(v: ::RBI::Printer).void }
54
+ def accept_printer(v); end
55
+
56
+ # source://rbi/0.0.17/lib/rbi/rewriters/add_sig_templates.rb#66
57
+ sig { params(with_todo_comment: T::Boolean).void }
58
+ def add_sig_templates!(with_todo_comment: T.unsafe(nil)); end
59
+
60
+ # source://rbi/0.0.17/lib/rbi/rewriters/annotate.rb#49
61
+ sig { params(annotation: ::String, annotate_scopes: T::Boolean, annotate_properties: T::Boolean).void }
62
+ def annotate!(annotation, annotate_scopes: T.unsafe(nil), annotate_properties: T.unsafe(nil)); end
63
+
64
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#38
65
+ sig do
66
+ params(
67
+ name: ::String,
68
+ superclass_name: T.nilable(::String),
69
+ block: T.nilable(T.proc.params(scope: ::RBI::Scope).void)
70
+ ).returns(::RBI::Scope)
71
+ end
72
+ def create_class(name, superclass_name: T.unsafe(nil), &block); end
73
+
74
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#45
75
+ sig { params(name: ::String, value: ::String).void }
76
+ def create_constant(name, value:); end
77
+
78
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#55
79
+ sig { params(name: ::String).void }
80
+ def create_extend(name); end
81
+
82
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#50
83
+ sig { params(name: ::String).void }
84
+ def create_include(name); end
85
+
86
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#89
87
+ sig do
88
+ params(
89
+ name: ::String,
90
+ parameters: T::Array[::RBI::TypedParam],
91
+ return_type: ::String,
92
+ class_method: T::Boolean,
93
+ visibility: ::RBI::Visibility,
94
+ comments: T::Array[::RBI::Comment]
95
+ ).void
96
+ end
97
+ def create_method(name, parameters: T.unsafe(nil), return_type: T.unsafe(nil), class_method: T.unsafe(nil), visibility: T.unsafe(nil), comments: T.unsafe(nil)); end
98
+
99
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#60
100
+ sig { params(name: ::String).void }
101
+ def create_mixes_in_class_methods(name); end
102
+
103
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#25
104
+ sig { params(name: ::String, block: T.nilable(T.proc.params(scope: ::RBI::Scope).void)).returns(::RBI::Scope) }
105
+ def create_module(name, &block); end
106
+
107
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#9
108
+ sig { params(constant: ::Module, block: T.nilable(T.proc.params(scope: ::RBI::Scope).void)).returns(::RBI::Scope) }
109
+ def create_path(constant, &block); end
110
+
111
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#74
112
+ sig do
113
+ params(
114
+ name: ::String,
115
+ type: ::String,
116
+ variance: ::Symbol,
117
+ fixed: T.nilable(::String),
118
+ upper: T.nilable(::String),
119
+ lower: T.nilable(::String)
120
+ ).void
121
+ end
122
+ def create_type_variable(name, type:, variance: T.unsafe(nil), fixed: T.unsafe(nil), upper: T.unsafe(nil), lower: T.unsafe(nil)); end
123
+
124
+ # source://rbi/0.0.17/lib/rbi/rewriters/deannotate.rb#41
125
+ sig { params(annotation: ::String).void }
126
+ def deannotate!(annotation); end
127
+
128
+ # source://rbi/0.0.17/lib/rbi/model.rb#132
129
+ sig { returns(T::Boolean) }
130
+ def empty?; end
131
+
132
+ # source://rbi/0.0.17/lib/rbi/rewriters/group_nodes.rb#38
133
+ sig { void }
134
+ def group_nodes!; end
135
+
136
+ # source://rbi/0.0.17/lib/rbi/index.rb#68
137
+ sig { returns(::RBI::Index) }
138
+ def index; end
139
+
140
+ # source://rbi/0.0.17/lib/rbi/rewriters/merge_trees.rb#324
141
+ sig do
142
+ params(
143
+ other: ::RBI::Tree,
144
+ left_name: ::String,
145
+ right_name: ::String,
146
+ keep: ::RBI::Rewriters::Merge::Keep
147
+ ).returns(::RBI::MergeTree)
148
+ end
149
+ def merge(other, left_name: T.unsafe(nil), right_name: T.unsafe(nil), keep: T.unsafe(nil)); end
150
+
151
+ # source://rbi/0.0.17/lib/rbi/rewriters/nest_non_public_methods.rb#46
152
+ sig { void }
153
+ def nest_non_public_methods!; end
154
+
155
+ # source://rbi/0.0.17/lib/rbi/rewriters/nest_singleton_methods.rb#36
156
+ sig { void }
157
+ def nest_singleton_methods!; end
158
+
159
+ # source://rbi/0.0.17/lib/rbi/model.rb#110
160
+ sig { returns(T::Array[::RBI::Node]) }
161
+ def nodes; end
162
+
163
+ # source://rbi/0.0.17/lib/rbi/printer.rb#233
164
+ sig { override.returns(T::Boolean) }
165
+ def oneline?; end
166
+
167
+ # source://rbi/0.0.17/lib/rbi/rewriters/sort_nodes.rb#119
168
+ sig { void }
169
+ def sort_nodes!; end
170
+
171
+ private
172
+
173
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#116
174
+ sig { params(node: ::RBI::Node).returns(::RBI::Node) }
175
+ def create_node(node); end
176
+
177
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#111
178
+ sig { returns(T::Hash[::String, ::RBI::Node]) }
179
+ def nodes_cache; end
180
+ end
181
+
182
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#126
183
+ class RBI::TypedParam < ::T::Struct
184
+ const :param, ::RBI::Param
185
+ const :type, ::String
186
+
187
+ class << self
188
+ # source://sorbet-runtime/0.5.10990/lib/types/struct.rb#13
189
+ def inherited(s); end
190
+ end
191
+ end
192
+
193
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#5
194
+ module T::Generic
195
+ include ::Kernel
196
+
197
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#13
198
+ def [](*types); end
199
+
200
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#53
201
+ def has_attached_class!(variance = T.unsafe(nil), &bounds_proc); end
202
+
203
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#21
204
+ def type_member(variance = T.unsafe(nil), fixed: T.unsafe(nil), lower: T.unsafe(nil), upper: T.unsafe(nil), &bounds_proc); end
205
+
206
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#37
207
+ def type_template(variance = T.unsafe(nil), fixed: T.unsafe(nil), lower: T.unsafe(nil), upper: T.unsafe(nil), &bounds_proc); end
208
+ end
209
+
210
+ # This module intercepts calls to generic type instantiations and type variable definitions.
211
+ # Tapioca stores the data from those calls in a `GenericTypeRegistry` which can then be used
212
+ # to look up the original call details when we are trying to do code generation.
213
+ #
214
+ # We are interested in the data of the `[]`, `type_member` and `type_template` calls which
215
+ # are all needed to generate good generic information at runtime.
216
+ #
217
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#12
218
+ module T::Generic::TypeStoragePatch
219
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#13
220
+ def [](*types); end
221
+
222
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#53
223
+ def has_attached_class!(variance = T.unsafe(nil), &bounds_proc); end
224
+
225
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#21
226
+ def type_member(variance = T.unsafe(nil), fixed: T.unsafe(nil), lower: T.unsafe(nil), upper: T.unsafe(nil), &bounds_proc); end
227
+
228
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#37
229
+ def type_template(variance = T.unsafe(nil), fixed: T.unsafe(nil), lower: T.unsafe(nil), upper: T.unsafe(nil), &bounds_proc); end
230
+ end
231
+
232
+ # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#28
233
+ module T::Private::Methods
234
+ class << self
235
+ # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#30
236
+ def finalize_proc(decl); end
237
+ end
238
+ end
239
+
240
+ class T::Private::Methods::Declaration < ::Struct
241
+ def bind; end
242
+ def bind=(_); end
243
+ def checked; end
244
+ def checked=(_); end
245
+ def finalized; end
246
+ def finalized=(_); end
247
+ def mod; end
248
+ def mod=(_); end
249
+ def mode; end
250
+ def mode=(_); end
251
+ def on_failure; end
252
+ def on_failure=(_); end
253
+ def override_allow_incompatible; end
254
+ def override_allow_incompatible=(_); end
255
+ def params; end
256
+ def params=(_); end
257
+ def raw; end
258
+ def raw=(_); end
259
+ def returns; end
260
+ def returns=(_); end
261
+ def type_parameters; end
262
+ def type_parameters=(_); end
263
+
264
+ class << self
265
+ def [](*_arg0); end
266
+ def inspect; end
267
+ def keyword_init?; end
268
+ def members; end
269
+ def new(*_arg0); end
270
+ end
271
+ end
272
+
273
+ class T::Private::Methods::DeclarationBlock < ::Struct
274
+ def blk; end
275
+ def blk=(_); end
276
+ def final; end
277
+ def final=(_); end
278
+ def loc; end
279
+ def loc=(_); end
280
+ def mod; end
281
+ def mod=(_); end
282
+ def raw; end
283
+ def raw=(_); end
284
+
285
+ class << self
286
+ def [](*_arg0); end
287
+ def inspect; end
288
+ def keyword_init?; end
289
+ def members; end
290
+ def new(*_arg0); end
291
+ end
292
+ end
293
+
294
+ # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#29
295
+ module T::Private::Methods::ProcBindPatch
296
+ # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#30
297
+ def finalize_proc(decl); end
298
+ end
299
+
300
+ class T::Types::Proc < ::T::Types::Base; end
301
+
302
+ # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#6
303
+ module T::Types::ProcBindPatch
304
+ # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#7
305
+ def initialize(arg_types, returns, bind = T.unsafe(nil)); end
306
+
307
+ # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#15
308
+ def name; end
309
+ end
310
+
311
+ # source://tapioca//lib/tapioca/sorbet_ext/name_patch.rb#6
312
+ class T::Types::Simple < ::T::Types::Base
313
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#79
314
+ def name; end
315
+ end
316
+
317
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#74
318
+ module T::Types::Simple::GenericPatch
319
+ # This method intercepts calls to the `name` method for simple types, so that
320
+ # it can ask the name to the type if the type is generic, since, by this point,
321
+ # we've created a clone of that type with the `name` method returning the
322
+ # appropriate name for that specific concrete type.
323
+ #
324
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#79
325
+ def name; end
326
+ end
327
+
328
+ # source://tapioca//lib/tapioca/sorbet_ext/name_patch.rb#7
329
+ module T::Types::Simple::NamePatch
330
+ # source://tapioca//lib/tapioca/sorbet_ext/name_patch.rb#10
331
+ def name; end
332
+
333
+ # source://tapioca//lib/tapioca/sorbet_ext/name_patch.rb#16
334
+ def qualified_name_of(constant); end
335
+ end
336
+
337
+ # source://tapioca//lib/tapioca/sorbet_ext/name_patch.rb#8
338
+ T::Types::Simple::NamePatch::NAME_METHOD = T.let(T.unsafe(nil), UnboundMethod)
339
+
340
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#99
341
+ module T::Utils::Private
342
+ class << self
343
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#101
344
+ def coerce_and_check_module_types(val, check_val, check_module_type); end
345
+ end
346
+ end
347
+
348
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#100
349
+ module T::Utils::Private::PrivateCoercePatch
350
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#101
351
+ def coerce_and_check_module_types(val, check_val, check_module_type); end
352
+ end
353
+
354
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#4
355
+ module Tapioca
356
+ class << self
357
+ # source://tapioca//lib/tapioca.rb#19
358
+ sig do
359
+ type_parameters(:Result)
360
+ .params(
361
+ blk: T.proc.returns(T.type_parameter(:Result))
362
+ ).returns(T.type_parameter(:Result))
363
+ end
364
+ def silence_warnings(&blk); end
365
+ end
366
+ end
367
+
368
+ # source://tapioca//lib/tapioca.rb#37
369
+ Tapioca::BINARY_FILE = T.let(T.unsafe(nil), String)
370
+
371
+ # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#5
372
+ module Tapioca::BundlerExt; end
373
+
374
+ # This is a module that gets prepended to `Bundler::Dependency` and
375
+ # makes sure even gems marked as `require: false` are required during
376
+ # `Bundler.require`.
377
+ #
378
+ # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#9
379
+ module Tapioca::BundlerExt::AutoRequireHook
380
+ requires_ancestor { Bundler::Dependency }
381
+
382
+ # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#46
383
+ sig { returns(T.untyped) }
384
+ def autorequire; end
385
+
386
+ class << self
387
+ # @return [Boolean]
388
+ #
389
+ # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#26
390
+ def enabled?; end
391
+
392
+ # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#22
393
+ sig { params(name: T.untyped).returns(T::Boolean) }
394
+ def excluded?(name); end
395
+
396
+ # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#36
397
+ sig do
398
+ type_parameters(:Result)
399
+ .params(
400
+ exclude: T::Array[::String],
401
+ blk: T.proc.returns(T.type_parameter(:Result))
402
+ ).returns(T.type_parameter(:Result))
403
+ end
404
+ def override_require_false(exclude:, &blk); end
405
+ end
406
+ end
407
+
408
+ # source://tapioca//lib/tapioca.rb#60
409
+ Tapioca::CENTRAL_REPO_ANNOTATIONS_DIR = T.let(T.unsafe(nil), String)
410
+
411
+ # source://tapioca//lib/tapioca.rb#59
412
+ Tapioca::CENTRAL_REPO_INDEX_PATH = T.let(T.unsafe(nil), String)
413
+
414
+ # source://tapioca//lib/tapioca.rb#58
415
+ Tapioca::CENTRAL_REPO_ROOT_URI = T.let(T.unsafe(nil), String)
416
+
417
+ # source://tapioca//lib/tapioca/cli.rb#5
418
+ class Tapioca::Cli < ::Thor
419
+ include ::Tapioca::CliHelper
420
+ include ::Tapioca::ConfigHelper
421
+ include ::Tapioca::EnvHelper
422
+
423
+ # source://tapioca//lib/tapioca/cli.rb#346
424
+ def __print_version; end
425
+
426
+ # source://tapioca//lib/tapioca/cli.rb#326
427
+ def annotations; end
428
+
429
+ # source://tapioca//lib/tapioca/cli.rb#296
430
+ def check_shims; end
431
+
432
+ # source://tapioca//lib/tapioca/cli.rb#41
433
+ def configure; end
434
+
435
+ # source://tapioca//lib/tapioca/cli.rb#137
436
+ def dsl(*constant_or_paths); end
437
+
438
+ # source://tapioca//lib/tapioca/cli.rb#247
439
+ def gem(*gems); end
440
+
441
+ # source://tapioca//lib/tapioca/cli.rb#27
442
+ def init; end
443
+
444
+ # source://tapioca//lib/tapioca/cli.rb#52
445
+ def require; end
446
+
447
+ # source://tapioca//lib/tapioca/cli.rb#71
448
+ def todo; end
449
+
450
+ private
451
+
452
+ # source://tapioca//lib/tapioca/cli.rb#360
453
+ def print_init_next_steps; end
454
+
455
+ class << self
456
+ # source://tapioca//lib/tapioca/cli.rb#352
457
+ def exit_on_failure?; end
458
+ end
459
+ end
460
+
461
+ # source://tapioca//lib/tapioca/cli.rb#10
462
+ Tapioca::Cli::FILE_HEADER_OPTION_DESC = T.let(T.unsafe(nil), String)
463
+
464
+ # source://tapioca//lib/tapioca/helpers/cli_helper.rb#5
465
+ module Tapioca::CliHelper
466
+ requires_ancestor { Thor::Shell }
467
+
468
+ # source://tapioca//lib/tapioca/helpers/cli_helper.rb#33
469
+ sig { params(options: T::Hash[::Symbol, T.untyped]).returns(T.nilable(::String)) }
470
+ def netrc_file(options); end
471
+
472
+ # source://tapioca//lib/tapioca/helpers/cli_helper.rb#26
473
+ sig { params(options: T::Hash[::Symbol, T.untyped]).returns(::Tapioca::RBIFormatter) }
474
+ def rbi_formatter(options); end
475
+
476
+ # source://tapioca//lib/tapioca/helpers/cli_helper.rb#12
477
+ sig { params(message: ::String, color: T.any(::Symbol, T::Array[::Symbol])).void }
478
+ def say_error(message = T.unsafe(nil), *color); end
479
+ end
480
+
481
+ # source://tapioca//lib/tapioca/commands.rb#5
482
+ module Tapioca::Commands; end
483
+
484
+ # source://tapioca//lib/tapioca/commands/annotations.rb#6
485
+ class Tapioca::Commands::Annotations < ::Tapioca::Commands::CommandWithoutTracker
486
+ # source://tapioca//lib/tapioca/commands/annotations.rb#18
487
+ sig do
488
+ params(
489
+ central_repo_root_uris: T::Array[::String],
490
+ auth: T.nilable(::String),
491
+ netrc_file: T.nilable(::String),
492
+ central_repo_index_path: ::String,
493
+ typed_overrides: T::Hash[::String, ::String]
494
+ ).void
495
+ end
496
+ def initialize(central_repo_root_uris:, auth: T.unsafe(nil), netrc_file: T.unsafe(nil), central_repo_index_path: T.unsafe(nil), typed_overrides: T.unsafe(nil)); end
497
+
498
+ # source://tapioca//lib/tapioca/commands/annotations.rb#36
499
+ sig { override.void }
500
+ def execute; end
501
+
502
+ private
503
+
504
+ # source://tapioca//lib/tapioca/commands/annotations.rb#191
505
+ sig { params(name: ::String, content: ::String).returns(::String) }
506
+ def add_header(name, content); end
507
+
508
+ # source://tapioca//lib/tapioca/commands/annotations.rb#211
509
+ sig { params(name: ::String, content: ::String).returns(::String) }
510
+ def apply_typed_override(name, content); end
511
+
512
+ # source://tapioca//lib/tapioca/commands/annotations.rb#132
513
+ sig { params(repo_uris: T::Array[::String], gem_name: ::String).void }
514
+ def fetch_annotation(repo_uris, gem_name); end
515
+
516
+ # source://tapioca//lib/tapioca/commands/annotations.rb#109
517
+ sig { params(gem_names: T::Array[::String]).returns(T::Array[::String]) }
518
+ def fetch_annotations(gem_names); end
519
+
520
+ # source://tapioca//lib/tapioca/commands/annotations.rb#150
521
+ sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) }
522
+ def fetch_file(repo_uri, path); end
523
+
524
+ # source://tapioca//lib/tapioca/commands/annotations.rb#167
525
+ sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) }
526
+ def fetch_http_file(repo_uri, path); end
527
+
528
+ # source://tapioca//lib/tapioca/commands/annotations.rb#98
529
+ sig { params(repo_uri: ::String, repo_number: T.nilable(::Integer)).returns(T.nilable(Tapioca::RepoIndex)) }
530
+ def fetch_index(repo_uri, repo_number:); end
531
+
532
+ # source://tapioca//lib/tapioca/commands/annotations.rb#77
533
+ sig { returns(T::Hash[::String, Tapioca::RepoIndex]) }
534
+ def fetch_indexes; end
535
+
536
+ # source://tapioca//lib/tapioca/commands/annotations.rb#159
537
+ sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) }
538
+ def fetch_local_file(repo_uri, path); end
539
+
540
+ # source://tapioca//lib/tapioca/commands/annotations.rb#46
541
+ sig { returns(T::Array[::String]) }
542
+ def list_gemfile_gems; end
543
+
544
+ # source://tapioca//lib/tapioca/commands/annotations.rb#223
545
+ sig { params(gem_name: ::String, contents: T::Array[::String]).returns(T.nilable(::String)) }
546
+ def merge_files(gem_name, contents); end
547
+
548
+ # source://tapioca//lib/tapioca/commands/annotations.rb#56
549
+ sig { params(project_gems: T::Array[::String]).void }
550
+ def remove_expired_annotations(project_gems); end
551
+
552
+ # source://tapioca//lib/tapioca/commands/annotations.rb#250
553
+ sig { returns(T::Hash[::String, T.nilable(::String)]) }
554
+ def repo_tokens; end
555
+
556
+ # source://tapioca//lib/tapioca/commands/annotations.rb#278
557
+ sig { params(path: ::String, repo_uri: ::String, message: ::String).void }
558
+ def say_http_error(path, repo_uri, message:); end
559
+
560
+ # source://tapioca//lib/tapioca/commands/annotations.rb#262
561
+ sig { params(repo_uri: ::String).returns(T.nilable(::String)) }
562
+ def token_for(repo_uri); end
563
+ end
564
+
565
+ # source://tapioca//lib/tapioca/commands/check_shims.rb#6
566
+ class Tapioca::Commands::CheckShims < ::Tapioca::Commands::CommandWithoutTracker
567
+ include ::Tapioca::SorbetHelper
568
+ include ::Tapioca::RBIFilesHelper
569
+
570
+ # source://tapioca//lib/tapioca/commands/check_shims.rb#22
571
+ sig do
572
+ params(
573
+ gem_rbi_dir: ::String,
574
+ dsl_rbi_dir: ::String,
575
+ annotations_rbi_dir: ::String,
576
+ shim_rbi_dir: ::String,
577
+ todo_rbi_file: ::String,
578
+ payload: T::Boolean,
579
+ number_of_workers: T.nilable(::Integer)
580
+ ).void
581
+ end
582
+ def initialize(gem_rbi_dir:, dsl_rbi_dir:, annotations_rbi_dir:, shim_rbi_dir:, todo_rbi_file:, payload:, number_of_workers:); end
583
+
584
+ # source://tapioca//lib/tapioca/commands/check_shims.rb#42
585
+ sig { override.void }
586
+ def execute; end
587
+ end
588
+
589
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
590
+ #
591
+ # source://tapioca//lib/tapioca/commands/command.rb#6
592
+ class Tapioca::Commands::Command
593
+ include ::Thor::Base
594
+ include ::Thor::Invocation
595
+ include ::Thor::Shell
596
+ include ::Tapioca::CliHelper
597
+ extend ::Thor::Base::ClassMethods
598
+ extend ::Thor::Invocation::ClassMethods
599
+
600
+ abstract!
601
+
602
+ # source://tapioca//lib/tapioca/commands/command.rb#20
603
+ sig { void }
604
+ def initialize; end
605
+
606
+ # @abstract
607
+ #
608
+ # source://tapioca//lib/tapioca/commands/command.rb#25
609
+ sig { abstract.void }
610
+ def execute; end
611
+
612
+ # source://thor/1.2.2/lib/thor/base.rb#139
613
+ sig { returns(::Thor::Actions) }
614
+ def file_writer; end
615
+
616
+ private
617
+
618
+ # source://tapioca//lib/tapioca/commands/command.rb#46
619
+ sig do
620
+ params(
621
+ path: T.any(::Pathname, ::String),
622
+ content: ::String,
623
+ force: T::Boolean,
624
+ skip: T::Boolean,
625
+ verbose: T::Boolean
626
+ ).void
627
+ end
628
+ def create_file(path, content, force: T.unsafe(nil), skip: T.unsafe(nil), verbose: T.unsafe(nil)); end
629
+
630
+ # source://tapioca//lib/tapioca/commands/command.rb#30
631
+ sig { params(command: ::Symbol, args: ::String).returns(::String) }
632
+ def default_command(command, *args); end
633
+
634
+ # source://tapioca//lib/tapioca/commands/command.rb#56
635
+ sig { params(path: T.any(::Pathname, ::String), verbose: T::Boolean).void }
636
+ def remove_file(path, verbose: T.unsafe(nil)); end
637
+ end
638
+
639
+ # source://tapioca//lib/tapioca/commands/command.rb#10
640
+ class Tapioca::Commands::Command::FileWriter < ::Thor
641
+ include ::Thor::Actions
642
+ extend ::Thor::Actions::ClassMethods
643
+ end
644
+
645
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
646
+ #
647
+ # source://tapioca//lib/tapioca/commands/command_without_tracker.rb#6
648
+ class Tapioca::Commands::CommandWithoutTracker < ::Tapioca::Commands::Command
649
+ abstract!
650
+
651
+ # source://tapioca//lib/tapioca/commands/command_without_tracker.rb#12
652
+ sig { void }
653
+ def initialize; end
654
+ end
655
+
656
+ # source://tapioca//lib/tapioca/commands/configure.rb#6
657
+ class Tapioca::Commands::Configure < ::Tapioca::Commands::CommandWithoutTracker
658
+ # source://tapioca//lib/tapioca/commands/configure.rb#14
659
+ sig { params(sorbet_config: ::String, tapioca_config: ::String, default_postrequire: ::String).void }
660
+ def initialize(sorbet_config:, tapioca_config:, default_postrequire:); end
661
+
662
+ # source://tapioca//lib/tapioca/commands/configure.rb#30
663
+ sig { override.void }
664
+ def execute; end
665
+
666
+ private
667
+
668
+ # source://tapioca//lib/tapioca/commands/configure.rb#79
669
+ sig { void }
670
+ def create_binstub; end
671
+
672
+ # source://tapioca//lib/tapioca/commands/configure.rb#69
673
+ sig { void }
674
+ def create_post_require; end
675
+
676
+ # source://tapioca//lib/tapioca/commands/configure.rb#40
677
+ sig { void }
678
+ def create_sorbet_config; end
679
+
680
+ # source://tapioca//lib/tapioca/commands/configure.rb#50
681
+ sig { void }
682
+ def create_tapioca_config; end
683
+
684
+ # source://tapioca//lib/tapioca/commands/configure.rb#92
685
+ sig { returns(::Bundler::Installer) }
686
+ def installer; end
687
+
688
+ # source://tapioca//lib/tapioca/commands/configure.rb#97
689
+ sig { returns(T.any(::Bundler::StubSpecification, ::Gem::Specification)) }
690
+ def spec; end
691
+ end
692
+
693
+ # source://tapioca//lib/tapioca/commands/dsl.rb#6
694
+ class Tapioca::Commands::Dsl < ::Tapioca::Commands::CommandWithoutTracker
695
+ include ::Tapioca::SorbetHelper
696
+ include ::Tapioca::RBIFilesHelper
697
+
698
+ # source://tapioca//lib/tapioca/commands/dsl.rb#30
699
+ sig do
700
+ params(
701
+ requested_constants: T::Array[::String],
702
+ requested_paths: T::Array[::Pathname],
703
+ outpath: ::Pathname,
704
+ only: T::Array[::String],
705
+ exclude: T::Array[::String],
706
+ file_header: T::Boolean,
707
+ tapioca_path: ::String,
708
+ should_verify: T::Boolean,
709
+ quiet: T::Boolean,
710
+ verbose: T::Boolean,
711
+ number_of_workers: T.nilable(::Integer),
712
+ auto_strictness: T::Boolean,
713
+ gem_dir: ::String,
714
+ rbi_formatter: ::Tapioca::RBIFormatter,
715
+ app_root: ::String,
716
+ halt_upon_load_error: T::Boolean
717
+ ).void
718
+ end
719
+ def initialize(requested_constants:, requested_paths:, outpath:, only:, exclude:, file_header:, tapioca_path:, should_verify: T.unsafe(nil), quiet: T.unsafe(nil), verbose: T.unsafe(nil), number_of_workers: T.unsafe(nil), auto_strictness: T.unsafe(nil), gem_dir: T.unsafe(nil), rbi_formatter: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end
720
+
721
+ # source://tapioca//lib/tapioca/commands/dsl.rb#97
722
+ sig { override.void }
723
+ def execute; end
724
+
725
+ # source://tapioca//lib/tapioca/commands/dsl.rb#69
726
+ sig { void }
727
+ def list_compilers; end
728
+
729
+ private
730
+
731
+ # source://tapioca//lib/tapioca/commands/dsl.rb#330
732
+ sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) }
733
+ def build_error_for_files(cause, files); end
734
+
735
+ # source://tapioca//lib/tapioca/commands/dsl.rb#254
736
+ sig do
737
+ params(
738
+ constant_name: ::String,
739
+ rbi: ::RBI::File,
740
+ outpath: ::Pathname,
741
+ quiet: T::Boolean
742
+ ).returns(T.nilable(::Pathname))
743
+ end
744
+ def compile_dsl_rbi(constant_name, rbi, outpath: T.unsafe(nil), quiet: T.unsafe(nil)); end
745
+
746
+ # source://tapioca//lib/tapioca/commands/dsl.rb#192
747
+ sig { params(constant_names: T::Array[::String], ignore_missing: T::Boolean).returns(T::Array[::Module]) }
748
+ def constantize(constant_names, ignore_missing: T.unsafe(nil)); end
749
+
750
+ # source://tapioca//lib/tapioca/commands/dsl.rb#215
751
+ sig { params(compiler_names: T::Array[::String]).returns(T::Array[T.class_of(Tapioca::Dsl::Compiler)]) }
752
+ def constantize_compilers(compiler_names); end
753
+
754
+ # source://tapioca//lib/tapioca/commands/dsl.rb#390
755
+ sig { returns(T::Array[::String]) }
756
+ def constants_from_requested_paths; end
757
+
758
+ # source://tapioca//lib/tapioca/commands/dsl.rb#163
759
+ sig { returns(::Tapioca::Dsl::Pipeline) }
760
+ def create_pipeline; end
761
+
762
+ # source://tapioca//lib/tapioca/commands/dsl.rb#293
763
+ sig { params(constant_name: ::String).returns(::Pathname) }
764
+ def dsl_rbi_filename(constant_name); end
765
+
766
+ # source://tapioca//lib/tapioca/commands/dsl.rb#178
767
+ sig { params(requested_constants: T::Array[::String], path: ::Pathname).returns(T::Set[::Pathname]) }
768
+ def existing_rbi_filenames(requested_constants, path: T.unsafe(nil)); end
769
+
770
+ # source://tapioca//lib/tapioca/commands/dsl.rb#385
771
+ sig { params(constant: ::String).returns(::String) }
772
+ def generate_command_for(constant); end
773
+
774
+ # source://tapioca//lib/tapioca/commands/dsl.rb#272
775
+ sig { params(dir: ::Pathname).void }
776
+ def perform_dsl_verification(dir); end
777
+
778
+ # source://tapioca//lib/tapioca/commands/dsl.rb#281
779
+ sig { params(files: T::Set[::Pathname]).void }
780
+ def purge_stale_dsl_rbi_files(files); end
781
+
782
+ # source://tapioca//lib/tapioca/commands/dsl.rb#380
783
+ sig { params(constant: ::String).returns(::String) }
784
+ def rbi_filename_for(constant); end
785
+
786
+ # source://tapioca//lib/tapioca/commands/dsl.rb#361
787
+ sig { params(path: ::Pathname).returns(T::Array[::Pathname]) }
788
+ def rbi_files_in(path); end
789
+
790
+ # source://tapioca//lib/tapioca/commands/dsl.rb#339
791
+ sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void }
792
+ def report_diff_and_exit_if_out_of_date(diff, command); end
793
+
794
+ # source://tapioca//lib/tapioca/commands/dsl.rb#234
795
+ sig { params(name: ::String).returns(T.nilable(T.class_of(Tapioca::Dsl::Compiler))) }
796
+ def resolve(name); end
797
+
798
+ # source://tapioca//lib/tapioca/commands/dsl.rb#368
799
+ sig { params(class_name: ::String).returns(::String) }
800
+ def underscore(class_name); end
801
+
802
+ # source://tapioca//lib/tapioca/commands/dsl.rb#298
803
+ sig { params(tmp_dir: ::Pathname).returns(T::Hash[::String, ::Symbol]) }
804
+ def verify_dsl_rbi(tmp_dir:); end
805
+ end
806
+
807
+ # source://tapioca//lib/tapioca/commands/gem.rb#6
808
+ class Tapioca::Commands::Gem < ::Tapioca::Commands::Command
809
+ include ::Tapioca::SorbetHelper
810
+ include ::Tapioca::RBIFilesHelper
811
+
812
+ # source://tapioca//lib/tapioca/commands/gem.rb#29
813
+ sig do
814
+ params(
815
+ gem_names: T::Array[::String],
816
+ exclude: T::Array[::String],
817
+ prerequire: T.nilable(::String),
818
+ postrequire: ::String,
819
+ typed_overrides: T::Hash[::String, ::String],
820
+ outpath: ::Pathname,
821
+ file_header: T::Boolean,
822
+ include_doc: T::Boolean,
823
+ include_loc: T::Boolean,
824
+ include_exported_rbis: T::Boolean,
825
+ number_of_workers: T.nilable(::Integer),
826
+ auto_strictness: T::Boolean,
827
+ dsl_dir: ::String,
828
+ rbi_formatter: ::Tapioca::RBIFormatter,
829
+ halt_upon_load_error: T::Boolean
830
+ ).void
831
+ end
832
+ def initialize(gem_names:, exclude:, prerequire:, postrequire:, typed_overrides:, outpath:, file_header:, include_doc:, include_loc:, include_exported_rbis:, number_of_workers: T.unsafe(nil), auto_strictness: T.unsafe(nil), dsl_dir: T.unsafe(nil), rbi_formatter: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end
833
+
834
+ # source://tapioca//lib/tapioca/commands/gem.rb#70
835
+ sig { override.void }
836
+ def execute; end
837
+
838
+ # source://tapioca//lib/tapioca/commands/gem.rb#109
839
+ sig { params(should_verify: T::Boolean, exclude: T::Array[::String]).void }
840
+ def sync(should_verify: T.unsafe(nil), exclude: T.unsafe(nil)); end
841
+
842
+ private
843
+
844
+ # source://tapioca//lib/tapioca/commands/gem.rb#288
845
+ sig { returns(T::Array[::String]) }
846
+ def added_rbis; end
847
+
848
+ # source://tapioca//lib/tapioca/commands/gem.rb#349
849
+ sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) }
850
+ def build_error_for_files(cause, files); end
851
+
852
+ # source://tapioca//lib/tapioca/commands/gem.rb#158
853
+ sig { params(gem: ::Tapioca::Gemfile::GemSpec).void }
854
+ def compile_gem_rbi(gem); end
855
+
856
+ # source://tapioca//lib/tapioca/commands/gem.rb#283
857
+ sig { params(gem_name: ::String).returns(::Pathname) }
858
+ def existing_rbi(gem_name); end
859
+
860
+ # source://tapioca//lib/tapioca/commands/gem.rb#331
861
+ sig { returns(T::Hash[::String, ::String]) }
862
+ def existing_rbis; end
863
+
864
+ # source://tapioca//lib/tapioca/commands/gem.rb#295
865
+ sig { params(gem_name: ::String).returns(::Pathname) }
866
+ def expected_rbi(gem_name); end
867
+
868
+ # source://tapioca//lib/tapioca/commands/gem.rb#337
869
+ sig { returns(T::Hash[::String, ::String]) }
870
+ def expected_rbis; end
871
+
872
+ # source://tapioca//lib/tapioca/commands/gem.rb#300
873
+ sig { params(gem_name: ::String).returns(T::Boolean) }
874
+ def gem_rbi_exists?(gem_name); end
875
+
876
+ # source://tapioca//lib/tapioca/commands/gem.rb#344
877
+ sig { params(gem_name: ::String, version: ::String).returns(::Pathname) }
878
+ def gem_rbi_filename(gem_name, version); end
879
+
880
+ # source://tapioca//lib/tapioca/commands/gem.rb#143
881
+ sig { params(gem_names: T::Array[::String]).returns(T::Array[::Tapioca::Gemfile::GemSpec]) }
882
+ def gems_to_generate(gem_names); end
883
+
884
+ # source://tapioca//lib/tapioca/commands/gem.rb#354
885
+ sig { params(gem: ::Tapioca::Gemfile::GemSpec, file: ::RBI::File).void }
886
+ def merge_with_exported_rbi(gem, file); end
887
+
888
+ # source://tapioca//lib/tapioca/commands/gem.rb#325
889
+ sig { params(old_filename: ::Pathname, new_filename: ::Pathname).void }
890
+ def move(old_filename, new_filename); end
891
+
892
+ # source://tapioca//lib/tapioca/commands/gem.rb#235
893
+ sig { void }
894
+ def perform_additions; end
895
+
896
+ # source://tapioca//lib/tapioca/commands/gem.rb#208
897
+ sig { void }
898
+ def perform_removals; end
899
+
900
+ # source://tapioca//lib/tapioca/commands/gem.rb#189
901
+ sig { params(exclude: T::Array[::String]).void }
902
+ def perform_sync_verification(exclude: T.unsafe(nil)); end
903
+
904
+ # source://tapioca//lib/tapioca/commands/gem.rb#278
905
+ sig { returns(T::Array[::String]) }
906
+ def removed_rbis; end
907
+
908
+ # source://tapioca//lib/tapioca/commands/gem.rb#305
909
+ sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void }
910
+ def report_diff_and_exit_if_out_of_date(diff, command); end
911
+ end
912
+
913
+ # source://tapioca//lib/tapioca/commands/require.rb#6
914
+ class Tapioca::Commands::Require < ::Tapioca::Commands::CommandWithoutTracker
915
+ # source://tapioca//lib/tapioca/commands/require.rb#13
916
+ sig { params(requires_path: ::String, sorbet_config_path: ::String).void }
917
+ def initialize(requires_path:, sorbet_config_path:); end
918
+
919
+ # source://tapioca//lib/tapioca/commands/require.rb#21
920
+ sig { override.void }
921
+ def execute; end
922
+ end
923
+
924
+ # source://tapioca//lib/tapioca/commands/todo.rb#6
925
+ class Tapioca::Commands::Todo < ::Tapioca::Commands::CommandWithoutTracker
926
+ include ::Tapioca::SorbetHelper
927
+
928
+ # source://tapioca//lib/tapioca/commands/todo.rb#15
929
+ sig { params(todo_file: ::String, file_header: T::Boolean).void }
930
+ def initialize(todo_file:, file_header:); end
931
+
932
+ # source://tapioca//lib/tapioca/commands/todo.rb#23
933
+ sig { override.void }
934
+ def execute; end
935
+
936
+ private
937
+
938
+ # source://tapioca//lib/tapioca/commands/todo.rb#49
939
+ sig { params(constants: T::Array[::String], command: ::String).returns(::RBI::File) }
940
+ def rbi(constants, command:); end
941
+
942
+ # source://tapioca//lib/tapioca/commands/todo.rb#69
943
+ sig { returns(T::Array[::String]) }
944
+ def unresolved_constants; end
945
+ end
946
+
947
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#5
948
+ module Tapioca::ConfigHelper
949
+ requires_ancestor { Thor }
950
+
951
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#18
952
+ sig { params(args: T.untyped, local_options: T.untyped, config: T.untyped).void }
953
+ def initialize(args = T.unsafe(nil), local_options = T.unsafe(nil), config = T.unsafe(nil)); end
954
+
955
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#12
956
+ sig { returns(::String) }
957
+ def command_name; end
958
+
959
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#15
960
+ sig { returns(::Thor::CoreExt::HashWithIndifferentAccess) }
961
+ def defaults; end
962
+
963
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#34
964
+ sig { returns(::Thor::CoreExt::HashWithIndifferentAccess) }
965
+ def options; end
966
+
967
+ private
968
+
969
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#151
970
+ sig { params(msg: ::String).returns(::Tapioca::ConfigHelper::ConfigError) }
971
+ def build_error(msg); end
972
+
973
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#176
974
+ sig { params(config_file: ::String, errors: T::Array[::Tapioca::ConfigHelper::ConfigError]).returns(::String) }
975
+ def build_error_message(config_file, errors); end
976
+
977
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#56
978
+ sig do
979
+ params(options: ::Thor::CoreExt::HashWithIndifferentAccess).returns(::Thor::CoreExt::HashWithIndifferentAccess)
980
+ end
981
+ def config_options(options); end
982
+
983
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#46
984
+ sig { params(options: T::Hash[::Symbol, ::Thor::Option]).void }
985
+ def filter_defaults(options); end
986
+
987
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#194
988
+ sig do
989
+ params(
990
+ options: T.nilable(::Thor::CoreExt::HashWithIndifferentAccess)
991
+ ).returns(::Thor::CoreExt::HashWithIndifferentAccess)
992
+ end
993
+ def merge_options(*options); end
994
+
995
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#70
996
+ sig { params(config_file: ::String, config: T::Hash[T.untyped, T.untyped]).void }
997
+ def validate_config!(config_file, config); end
998
+
999
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#102
1000
+ sig do
1001
+ params(
1002
+ command_options: T::Hash[::Symbol, ::Thor::Option],
1003
+ config_key: ::String,
1004
+ config_options: T::Hash[T.untyped, T.untyped]
1005
+ ).returns(T::Array[::Tapioca::ConfigHelper::ConfigError])
1006
+ end
1007
+ def validate_config_options(command_options, config_key, config_options); end
1008
+ end
1009
+
1010
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#146
1011
+ class Tapioca::ConfigHelper::ConfigError < ::T::Struct
1012
+ const :message_parts, T::Array[::Tapioca::ConfigHelper::ConfigErrorMessagePart]
1013
+
1014
+ class << self
1015
+ # source://sorbet-runtime/0.5.10990/lib/types/struct.rb#13
1016
+ def inherited(s); end
1017
+ end
1018
+ end
1019
+
1020
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#141
1021
+ class Tapioca::ConfigHelper::ConfigErrorMessagePart < ::T::Struct
1022
+ const :message, ::String
1023
+ const :colors, T::Array[::Symbol]
1024
+
1025
+ class << self
1026
+ # source://sorbet-runtime/0.5.10990/lib/types/struct.rb#13
1027
+ def inherited(s); end
1028
+ end
1029
+ end
1030
+
1031
+ # source://tapioca//lib/tapioca.rb#44
1032
+ Tapioca::DEFAULT_ANNOTATIONS_DIR = T.let(T.unsafe(nil), String)
1033
+
1034
+ # source://tapioca//lib/tapioca.rb#40
1035
+ Tapioca::DEFAULT_DSL_DIR = T.let(T.unsafe(nil), String)
1036
+
1037
+ # source://tapioca//lib/tapioca.rb#56
1038
+ Tapioca::DEFAULT_ENVIRONMENT = T.let(T.unsafe(nil), String)
1039
+
1040
+ # source://tapioca//lib/tapioca.rb#41
1041
+ Tapioca::DEFAULT_GEM_DIR = T.let(T.unsafe(nil), String)
1042
+
1043
+ # source://tapioca//lib/tapioca.rb#46
1044
+ Tapioca::DEFAULT_OVERRIDES = T.let(T.unsafe(nil), Hash)
1045
+
1046
+ # source://tapioca//lib/tapioca.rb#38
1047
+ Tapioca::DEFAULT_POSTREQUIRE_FILE = T.let(T.unsafe(nil), String)
1048
+
1049
+ # source://tapioca//lib/tapioca.rb#39
1050
+ Tapioca::DEFAULT_RBI_DIR = T.let(T.unsafe(nil), String)
1051
+
1052
+ # source://tapioca//lib/tapioca/rbi_formatter.rb#29
1053
+ Tapioca::DEFAULT_RBI_FORMATTER = T.let(T.unsafe(nil), Tapioca::RBIFormatter)
1054
+
1055
+ # source://tapioca//lib/tapioca.rb#55
1056
+ Tapioca::DEFAULT_RBI_MAX_LINE_LENGTH = T.let(T.unsafe(nil), Integer)
1057
+
1058
+ # source://tapioca//lib/tapioca.rb#42
1059
+ Tapioca::DEFAULT_SHIM_DIR = T.let(T.unsafe(nil), String)
1060
+
1061
+ # source://tapioca//lib/tapioca.rb#43
1062
+ Tapioca::DEFAULT_TODO_FILE = T.let(T.unsafe(nil), String)
1063
+
1064
+ # source://tapioca//lib/tapioca/dsl/compilers.rb#5
1065
+ module Tapioca::Dsl; end
1066
+
1067
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1068
+ #
1069
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#6
1070
+ class Tapioca::Dsl::Compiler
1071
+ extend T::Generic
1072
+ include ::Tapioca::SorbetHelper
1073
+ include ::Tapioca::RBIHelper
1074
+ include ::Tapioca::Runtime::AttachedClassOf
1075
+ include ::Tapioca::Runtime::Reflection
1076
+ extend ::Tapioca::Runtime::AttachedClassOf
1077
+ extend ::Tapioca::Runtime::Reflection
1078
+
1079
+ abstract!
1080
+
1081
+ ConstantType = type_member { { upper: Module } }
1082
+
1083
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#60
1084
+ sig { params(pipeline: ::Tapioca::Dsl::Pipeline, root: ::RBI::Tree, constant: ConstantType).void }
1085
+ def initialize(pipeline, root, constant); end
1086
+
1087
+ # NOTE: This should eventually accept an `Error` object or `Exception` rather than simply a `String`.
1088
+ #
1089
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#77
1090
+ sig { params(error: ::String).void }
1091
+ def add_error(error); end
1092
+
1093
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#68
1094
+ sig { params(compiler_name: ::String).returns(T::Boolean) }
1095
+ def compiler_enabled?(compiler_name); end
1096
+
1097
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#20
1098
+ sig { returns(ConstantType) }
1099
+ def constant; end
1100
+
1101
+ # @abstract
1102
+ #
1103
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#73
1104
+ sig { abstract.void }
1105
+ def decorate; end
1106
+
1107
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#23
1108
+ sig { returns(::RBI::Tree) }
1109
+ def root; end
1110
+
1111
+ private
1112
+
1113
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#126
1114
+ sig { params(method_def: T.any(::Method, ::UnboundMethod)).returns(T::Array[::RBI::TypedParam]) }
1115
+ def compile_method_parameters_to_rbi(method_def); end
1116
+
1117
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#162
1118
+ sig { params(method_def: T.any(::Method, ::UnboundMethod)).returns(::String) }
1119
+ def compile_method_return_type_to_rbi(method_def); end
1120
+
1121
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#116
1122
+ sig { params(scope: ::RBI::Scope, method_def: T.any(::Method, ::UnboundMethod), class_method: T::Boolean).void }
1123
+ def create_method_from_def(scope, method_def, class_method: T.unsafe(nil)); end
1124
+
1125
+ # Get the types of each parameter from a method signature
1126
+ #
1127
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#90
1128
+ sig { params(method_def: T.any(::Method, ::UnboundMethod), signature: T.untyped).returns(T::Array[::String]) }
1129
+ def parameters_types_from_signature(method_def, signature); end
1130
+
1131
+ class << self
1132
+ # @abstract
1133
+ #
1134
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#34
1135
+ sig { abstract.returns(T::Enumerable[::Module]) }
1136
+ def gather_constants; end
1137
+
1138
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#29
1139
+ sig { params(constant: ::Module).returns(T::Boolean) }
1140
+ def handles?(constant); end
1141
+
1142
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#37
1143
+ sig { returns(T::Set[::Module]) }
1144
+ def processable_constants; end
1145
+
1146
+ private
1147
+
1148
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#47
1149
+ sig { returns(T::Enumerable[T::Class[T.anything]]) }
1150
+ def all_classes; end
1151
+
1152
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#53
1153
+ sig { returns(T::Enumerable[::Module]) }
1154
+ def all_modules; end
1155
+ end
1156
+ end
1157
+
1158
+ # source://tapioca//lib/tapioca/dsl/compilers.rb#6
1159
+ module Tapioca::Dsl::Compilers; end
1160
+
1161
+ # DSL compilers are either built-in to Tapioca and live under the
1162
+ # `Tapioca::Dsl::Compilers` namespace (i.e. this namespace), and
1163
+ # can be referred to by just using the class name, or they live in
1164
+ # a different namespace and can only be referred to using their fully
1165
+ # qualified name. This constant encapsulates that dual lookup when
1166
+ # a compiler needs to be resolved by name.
1167
+ #
1168
+ # source://tapioca//lib/tapioca/dsl/compilers.rb#13
1169
+ Tapioca::Dsl::Compilers::NAMESPACES = T.let(T.unsafe(nil), Array)
1170
+
1171
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#6
1172
+ class Tapioca::Dsl::Pipeline
1173
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#34
1174
+ sig do
1175
+ params(
1176
+ requested_constants: T::Array[::Module],
1177
+ requested_paths: T::Array[::Pathname],
1178
+ requested_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)],
1179
+ excluded_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)],
1180
+ error_handler: T.proc.params(error: ::String).void,
1181
+ number_of_workers: T.nilable(::Integer)
1182
+ ).void
1183
+ end
1184
+ def initialize(requested_constants:, requested_paths: T.unsafe(nil), requested_compilers: T.unsafe(nil), excluded_compilers: T.unsafe(nil), error_handler: T.unsafe(nil), number_of_workers: T.unsafe(nil)); end
1185
+
1186
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#10
1187
+ sig { returns(T::Enumerable[T.class_of(Tapioca::Dsl::Compiler)]) }
1188
+ def active_compilers; end
1189
+
1190
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#93
1191
+ sig { params(error: ::String).void }
1192
+ def add_error(error); end
1193
+
1194
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#98
1195
+ sig { params(compiler_name: ::String).returns(T::Boolean) }
1196
+ def compiler_enabled?(compiler_name); end
1197
+
1198
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#107
1199
+ sig { returns(T::Array[T.class_of(Tapioca::Dsl::Compiler)]) }
1200
+ def compilers; end
1201
+
1202
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#19
1203
+ sig { returns(T.proc.params(error: ::String).void) }
1204
+ def error_handler; end
1205
+
1206
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#22
1207
+ sig { returns(T::Array[::String]) }
1208
+ def errors; end
1209
+
1210
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#13
1211
+ sig { returns(T::Array[::Module]) }
1212
+ def requested_constants; end
1213
+
1214
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#16
1215
+ sig { returns(T::Array[::Pathname]) }
1216
+ def requested_paths; end
1217
+
1218
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#58
1219
+ sig do
1220
+ type_parameters(:T)
1221
+ .params(
1222
+ blk: T.proc.params(constant: ::Module, rbi: ::RBI::File).returns(T.type_parameter(:T))
1223
+ ).returns(T::Array[T.type_parameter(:T)])
1224
+ end
1225
+ def run(&blk); end
1226
+
1227
+ private
1228
+
1229
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#193
1230
+ sig { void }
1231
+ def abort_if_pending_migrations!; end
1232
+
1233
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#139
1234
+ sig { params(constants: T::Set[::Module]).returns(T::Set[::Module]) }
1235
+ def filter_anonymous_and_reloaded_constants(constants); end
1236
+
1237
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#122
1238
+ sig do
1239
+ params(
1240
+ requested_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)],
1241
+ excluded_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)]
1242
+ ).returns(T::Enumerable[T.class_of(Tapioca::Dsl::Compiler)])
1243
+ end
1244
+ def gather_active_compilers(requested_compilers, excluded_compilers); end
1245
+
1246
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#130
1247
+ sig do
1248
+ params(requested_constants: T::Array[::Module], requested_paths: T::Array[::Pathname]).returns(T::Set[::Module])
1249
+ end
1250
+ def gather_constants(requested_constants, requested_paths); end
1251
+
1252
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#167
1253
+ sig { params(constant: ::Module).returns(T.nilable(::RBI::File)) }
1254
+ def rbi_for_constant(constant); end
1255
+
1256
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#186
1257
+ sig { params(error: ::String).returns(T.noreturn) }
1258
+ def report_error(error); end
1259
+ end
1260
+
1261
+ # source://tapioca//lib/tapioca/helpers/env_helper.rb#5
1262
+ module Tapioca::EnvHelper
1263
+ requires_ancestor { Thor }
1264
+
1265
+ # source://tapioca//lib/tapioca/helpers/env_helper.rb#12
1266
+ sig { params(options: T::Hash[::Symbol, T.untyped]).void }
1267
+ def set_environment(options); end
1268
+ end
1269
+
1270
+ class Tapioca::Error < ::StandardError; end
1271
+
1272
+ # source://tapioca//lib/tapioca/executor.rb#5
1273
+ class Tapioca::Executor
1274
+ # source://tapioca//lib/tapioca/executor.rb#11
1275
+ sig { params(queue: T::Array[T.untyped], number_of_workers: T.nilable(::Integer)).void }
1276
+ def initialize(queue, number_of_workers: T.unsafe(nil)); end
1277
+
1278
+ # source://tapioca//lib/tapioca/executor.rb#28
1279
+ sig do
1280
+ type_parameters(:T)
1281
+ .params(
1282
+ block: T.proc.params(item: T.untyped).returns(T.type_parameter(:T))
1283
+ ).returns(T::Array[T.type_parameter(:T)])
1284
+ end
1285
+ def run_in_parallel(&block); end
1286
+
1287
+ private
1288
+
1289
+ # source://tapioca//lib/tapioca/executor.rb#37
1290
+ sig { returns(::Integer) }
1291
+ def max_processors; end
1292
+ end
1293
+
1294
+ # source://tapioca//lib/tapioca/executor.rb#8
1295
+ Tapioca::Executor::MINIMUM_ITEMS_PER_WORKER = T.let(T.unsafe(nil), Integer)
1296
+
1297
+ # source://tapioca//lib/tapioca/gem/events.rb#5
1298
+ module Tapioca::Gem; end
1299
+
1300
+ # source://tapioca//lib/tapioca/gem/events.rb#77
1301
+ class Tapioca::Gem::ConstNodeAdded < ::Tapioca::Gem::NodeAdded
1302
+ # source://tapioca//lib/tapioca/gem/events.rb#84
1303
+ sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Const).void }
1304
+ def initialize(symbol, constant, node); end
1305
+
1306
+ # source://tapioca//lib/tapioca/gem/events.rb#81
1307
+ sig { returns(::RBI::Const) }
1308
+ def node; end
1309
+ end
1310
+
1311
+ # source://tapioca//lib/tapioca/gem/events.rb#26
1312
+ class Tapioca::Gem::ConstantFound < ::Tapioca::Gem::Event
1313
+ # source://tapioca//lib/tapioca/gem/events.rb#36
1314
+ sig { params(symbol: ::String, constant: ::BasicObject).void }
1315
+ def initialize(symbol, constant); end
1316
+
1317
+ # source://tapioca//lib/tapioca/gem/events.rb#33
1318
+ sig { returns(::BasicObject) }
1319
+ def constant; end
1320
+
1321
+ # source://tapioca//lib/tapioca/gem/events.rb#30
1322
+ sig { returns(::String) }
1323
+ def symbol; end
1324
+ end
1325
+
1326
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1327
+ #
1328
+ # source://tapioca//lib/tapioca/gem/events.rb#6
1329
+ class Tapioca::Gem::Event
1330
+ abstract!
1331
+ end
1332
+
1333
+ # source://tapioca//lib/tapioca/gem/events.rb#43
1334
+ class Tapioca::Gem::ForeignConstantFound < ::Tapioca::Gem::ConstantFound
1335
+ # source://tapioca//lib/tapioca/gem/events.rb#52
1336
+ sig { params(symbol: ::String, constant: ::Module).void }
1337
+ def initialize(symbol, constant); end
1338
+
1339
+ # source://tapioca//lib/tapioca/gem/events.rb#47
1340
+ sig { override.returns(::Module) }
1341
+ def constant; end
1342
+ end
1343
+
1344
+ # source://tapioca//lib/tapioca/gem/events.rb#103
1345
+ class Tapioca::Gem::ForeignScopeNodeAdded < ::Tapioca::Gem::ScopeNodeAdded; end
1346
+
1347
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#6
1348
+ module Tapioca::Gem::Listeners; end
1349
+
1350
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1351
+ #
1352
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#7
1353
+ class Tapioca::Gem::Listeners::Base
1354
+ abstract!
1355
+
1356
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#14
1357
+ sig { params(pipeline: ::Tapioca::Gem::Pipeline).void }
1358
+ def initialize(pipeline); end
1359
+
1360
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#19
1361
+ sig { params(event: ::Tapioca::Gem::NodeAdded).void }
1362
+ def dispatch(event); end
1363
+
1364
+ private
1365
+
1366
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#49
1367
+ sig { params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1368
+ def ignore?(event); end
1369
+
1370
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#37
1371
+ sig { params(event: ::Tapioca::Gem::ConstNodeAdded).void }
1372
+ def on_const(event); end
1373
+
1374
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#45
1375
+ sig { params(event: ::Tapioca::Gem::MethodNodeAdded).void }
1376
+ def on_method(event); end
1377
+
1378
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#41
1379
+ sig { params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1380
+ def on_scope(event); end
1381
+ end
1382
+
1383
+ # source://tapioca//lib/tapioca/gem/listeners/dynamic_mixins.rb#7
1384
+ class Tapioca::Gem::Listeners::DynamicMixins < ::Tapioca::Gem::Listeners::Base
1385
+ include ::Tapioca::Runtime::AttachedClassOf
1386
+ include ::Tapioca::Runtime::Reflection
1387
+
1388
+ private
1389
+
1390
+ # source://tapioca//lib/tapioca/gem/listeners/dynamic_mixins.rb#31
1391
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1392
+ def ignore?(event); end
1393
+
1394
+ # source://tapioca//lib/tapioca/gem/listeners/dynamic_mixins.rb#15
1395
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1396
+ def on_scope(event); end
1397
+ end
1398
+
1399
+ # source://tapioca//lib/tapioca/gem/listeners/foreign_constants.rb#7
1400
+ class Tapioca::Gem::Listeners::ForeignConstants < ::Tapioca::Gem::Listeners::Base
1401
+ include ::Tapioca::Runtime::AttachedClassOf
1402
+ include ::Tapioca::Runtime::Reflection
1403
+
1404
+ private
1405
+
1406
+ # source://tapioca//lib/tapioca/gem/listeners/foreign_constants.rb#60
1407
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1408
+ def ignore?(event); end
1409
+
1410
+ # source://tapioca//lib/tapioca/gem/listeners/foreign_constants.rb#55
1411
+ sig { params(location: ::String).returns(T::Boolean) }
1412
+ def mixed_in_by_gem?(location); end
1413
+
1414
+ # source://tapioca//lib/tapioca/gem/listeners/foreign_constants.rb#15
1415
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1416
+ def on_scope(event); end
1417
+ end
1418
+
1419
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#7
1420
+ class Tapioca::Gem::Listeners::Methods < ::Tapioca::Gem::Listeners::Base
1421
+ include ::Tapioca::SorbetHelper
1422
+ include ::Tapioca::RBIHelper
1423
+ include ::Tapioca::Runtime::AttachedClassOf
1424
+ include ::Tapioca::Runtime::Reflection
1425
+
1426
+ private
1427
+
1428
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#35
1429
+ sig do
1430
+ params(
1431
+ tree: ::RBI::Tree,
1432
+ module_name: ::String,
1433
+ mod: ::Module,
1434
+ for_visibility: T::Array[::Symbol],
1435
+ attached_class: T.nilable(::Module)
1436
+ ).void
1437
+ end
1438
+ def compile_directly_owned_methods(tree, module_name, mod, for_visibility = T.unsafe(nil), attached_class: T.unsafe(nil)); end
1439
+
1440
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#71
1441
+ sig do
1442
+ params(
1443
+ tree: ::RBI::Tree,
1444
+ symbol_name: ::String,
1445
+ constant: ::Module,
1446
+ method: T.nilable(::UnboundMethod),
1447
+ visibility: ::RBI::Visibility
1448
+ ).void
1449
+ end
1450
+ def compile_method(tree, symbol_name, constant, method, visibility = T.unsafe(nil)); end
1451
+
1452
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#212
1453
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1454
+ def ignore?(event); end
1455
+
1456
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#205
1457
+ sig { params(constant: ::Module).returns(T.nilable(::UnboundMethod)) }
1458
+ def initialize_method_for(constant); end
1459
+
1460
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#173
1461
+ sig { params(mod: ::Module).returns(T::Hash[::Symbol, T::Array[::Symbol]]) }
1462
+ def method_names_by_visibility(mod); end
1463
+
1464
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#197
1465
+ sig { params(attached_class: T.nilable(::Module), method_name: ::Symbol).returns(T.nilable(T::Boolean)) }
1466
+ def method_new_in_abstract_class?(attached_class, method_name); end
1467
+
1468
+ # Check whether the method is defined by the constant.
1469
+ #
1470
+ # In most cases, it works to check that the constant is the method owner. However,
1471
+ # in the case that a method is also defined in a module prepended to the constant, it
1472
+ # will be owned by the prepended module, not the constant.
1473
+ #
1474
+ # This method implements a better way of checking whether a constant defines a method.
1475
+ # It walks up the ancestor tree via the `super_method` method; if any of the super
1476
+ # methods are owned by the constant, it means that the constant declares the method.
1477
+ #
1478
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#159
1479
+ sig { params(method: ::UnboundMethod, constant: ::Module).returns(T::Boolean) }
1480
+ def method_owned_by_constant?(method, constant); end
1481
+
1482
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#16
1483
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1484
+ def on_scope(event); end
1485
+
1486
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#182
1487
+ sig { params(constant: ::Module, method_name: ::String).returns(T::Boolean) }
1488
+ def struct_method?(constant, method_name); end
1489
+ end
1490
+
1491
+ # source://tapioca//lib/tapioca/gem/listeners/mixins.rb#7
1492
+ class Tapioca::Gem::Listeners::Mixins < ::Tapioca::Gem::Listeners::Base
1493
+ include ::Tapioca::Runtime::AttachedClassOf
1494
+ include ::Tapioca::Runtime::Reflection
1495
+
1496
+ private
1497
+
1498
+ # source://tapioca//lib/tapioca/gem/listeners/mixins.rb#42
1499
+ sig do
1500
+ params(
1501
+ tree: ::RBI::Tree,
1502
+ constant: ::Module,
1503
+ mods: T::Array[::Module],
1504
+ mixin_type: ::Tapioca::Runtime::Trackers::Mixin::Type
1505
+ ).void
1506
+ end
1507
+ def add_mixins(tree, constant, mods, mixin_type); end
1508
+
1509
+ # source://tapioca//lib/tapioca/gem/listeners/mixins.rb#84
1510
+ sig { params(mixin_name: ::String).returns(T::Boolean) }
1511
+ def filtered_mixin?(mixin_name); end
1512
+
1513
+ # source://tapioca//lib/tapioca/gem/listeners/mixins.rb#91
1514
+ sig { params(constant: ::Module).returns(T::Array[::Module]) }
1515
+ def interesting_ancestors_of(constant); end
1516
+
1517
+ # source://tapioca//lib/tapioca/gem/listeners/mixins.rb#75
1518
+ sig do
1519
+ params(
1520
+ constant: ::Module,
1521
+ mixin: ::Module,
1522
+ mixin_type: ::Tapioca::Runtime::Trackers::Mixin::Type
1523
+ ).returns(T::Boolean)
1524
+ end
1525
+ def mixed_in_by_gem?(constant, mixin, mixin_type); end
1526
+
1527
+ # source://tapioca//lib/tapioca/gem/listeners/mixins.rb#15
1528
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1529
+ def on_scope(event); end
1530
+ end
1531
+
1532
+ # source://tapioca//lib/tapioca/gem/listeners/remove_empty_payload_scopes.rb#7
1533
+ class Tapioca::Gem::Listeners::RemoveEmptyPayloadScopes < ::Tapioca::Gem::Listeners::Base
1534
+ include ::Tapioca::Runtime::AttachedClassOf
1535
+ include ::Tapioca::Runtime::Reflection
1536
+
1537
+ private
1538
+
1539
+ # source://tapioca//lib/tapioca/gem/listeners/remove_empty_payload_scopes.rb#20
1540
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1541
+ def ignore?(event); end
1542
+
1543
+ # source://tapioca//lib/tapioca/gem/listeners/remove_empty_payload_scopes.rb#15
1544
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1545
+ def on_scope(event); end
1546
+ end
1547
+
1548
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_enums.rb#7
1549
+ class Tapioca::Gem::Listeners::SorbetEnums < ::Tapioca::Gem::Listeners::Base
1550
+ private
1551
+
1552
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_enums.rb#25
1553
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1554
+ def ignore?(event); end
1555
+
1556
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_enums.rb#13
1557
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1558
+ def on_scope(event); end
1559
+ end
1560
+
1561
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_helpers.rb#7
1562
+ class Tapioca::Gem::Listeners::SorbetHelpers < ::Tapioca::Gem::Listeners::Base
1563
+ include ::Tapioca::Runtime::AttachedClassOf
1564
+ include ::Tapioca::Runtime::Reflection
1565
+
1566
+ private
1567
+
1568
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_helpers.rb#27
1569
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1570
+ def ignore?(event); end
1571
+
1572
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_helpers.rb#15
1573
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1574
+ def on_scope(event); end
1575
+ end
1576
+
1577
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_props.rb#7
1578
+ class Tapioca::Gem::Listeners::SorbetProps < ::Tapioca::Gem::Listeners::Base
1579
+ private
1580
+
1581
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_props.rb#32
1582
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1583
+ def ignore?(event); end
1584
+
1585
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_props.rb#13
1586
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1587
+ def on_scope(event); end
1588
+ end
1589
+
1590
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_required_ancestors.rb#7
1591
+ class Tapioca::Gem::Listeners::SorbetRequiredAncestors < ::Tapioca::Gem::Listeners::Base
1592
+ private
1593
+
1594
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_required_ancestors.rb#23
1595
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1596
+ def ignore?(event); end
1597
+
1598
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_required_ancestors.rb#13
1599
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1600
+ def on_scope(event); end
1601
+ end
1602
+
1603
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#7
1604
+ class Tapioca::Gem::Listeners::SorbetSignatures < ::Tapioca::Gem::Listeners::Base
1605
+ include ::Tapioca::Runtime::AttachedClassOf
1606
+ include ::Tapioca::Runtime::Reflection
1607
+ include ::Tapioca::SorbetHelper
1608
+ include ::Tapioca::RBIHelper
1609
+
1610
+ private
1611
+
1612
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#26
1613
+ sig { params(signature: T.untyped, parameters: T::Array[[::Symbol, ::String]]).returns(::RBI::Sig) }
1614
+ def compile_signature(signature, parameters); end
1615
+
1616
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#78
1617
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1618
+ def ignore?(event); end
1619
+
1620
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#18
1621
+ sig { override.params(event: ::Tapioca::Gem::MethodNodeAdded).void }
1622
+ def on_method(event); end
1623
+
1624
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#68
1625
+ sig { params(signature: T.untyped).returns(T::Boolean) }
1626
+ def signature_final?(signature); end
1627
+ end
1628
+
1629
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#13
1630
+ Tapioca::Gem::Listeners::SorbetSignatures::TYPE_PARAMETER_MATCHER = T.let(T.unsafe(nil), Regexp)
1631
+
1632
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#7
1633
+ class Tapioca::Gem::Listeners::SorbetTypeVariables < ::Tapioca::Gem::Listeners::Base
1634
+ include ::Tapioca::Runtime::AttachedClassOf
1635
+ include ::Tapioca::Runtime::Reflection
1636
+
1637
+ private
1638
+
1639
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#27
1640
+ sig { params(tree: ::RBI::Tree, constant: ::Module).void }
1641
+ def compile_type_variable_declarations(tree, constant); end
1642
+
1643
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#63
1644
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1645
+ def ignore?(event); end
1646
+
1647
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#50
1648
+ sig { params(type_variable: ::Tapioca::TypeVariableModule).returns(T.nilable(::RBI::Node)) }
1649
+ def node_from_type_variable(type_variable); end
1650
+
1651
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#15
1652
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1653
+ def on_scope(event); end
1654
+ end
1655
+
1656
+ # source://tapioca//lib/tapioca/gem/listeners/source_location.rb#7
1657
+ class Tapioca::Gem::Listeners::SourceLocation < ::Tapioca::Gem::Listeners::Base
1658
+ private
1659
+
1660
+ # source://tapioca//lib/tapioca/gem/listeners/source_location.rb#41
1661
+ sig { params(node: ::RBI::NodeWithComments, file: T.nilable(::String), line: T.nilable(::Integer)).void }
1662
+ def add_source_location_comment(node, file, line); end
1663
+
1664
+ # source://tapioca//lib/tapioca/gem/listeners/source_location.rb#13
1665
+ sig { override.params(event: ::Tapioca::Gem::ConstNodeAdded).void }
1666
+ def on_const(event); end
1667
+
1668
+ # source://tapioca//lib/tapioca/gem/listeners/source_location.rb#35
1669
+ sig { override.params(event: ::Tapioca::Gem::MethodNodeAdded).void }
1670
+ def on_method(event); end
1671
+
1672
+ # source://tapioca//lib/tapioca/gem/listeners/source_location.rb#19
1673
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1674
+ def on_scope(event); end
1675
+ end
1676
+
1677
+ # source://tapioca//lib/tapioca/gem/listeners/subconstants.rb#7
1678
+ class Tapioca::Gem::Listeners::Subconstants < ::Tapioca::Gem::Listeners::Base
1679
+ include ::Tapioca::Runtime::AttachedClassOf
1680
+ include ::Tapioca::Runtime::Reflection
1681
+
1682
+ private
1683
+
1684
+ # source://tapioca//lib/tapioca/gem/listeners/subconstants.rb#36
1685
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1686
+ def ignore?(event); end
1687
+
1688
+ # source://tapioca//lib/tapioca/gem/listeners/subconstants.rb#15
1689
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1690
+ def on_scope(event); end
1691
+ end
1692
+
1693
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#7
1694
+ class Tapioca::Gem::Listeners::YardDoc < ::Tapioca::Gem::Listeners::Base
1695
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#27
1696
+ sig { params(pipeline: ::Tapioca::Gem::Pipeline).void }
1697
+ def initialize(pipeline); end
1698
+
1699
+ private
1700
+
1701
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#55
1702
+ sig { params(name: ::String, sigs: T::Array[::RBI::Sig]).returns(T::Array[::RBI::Comment]) }
1703
+ def documentation_comments(name, sigs: T.unsafe(nil)); end
1704
+
1705
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#99
1706
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1707
+ def ignore?(event); end
1708
+
1709
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#36
1710
+ sig { override.params(event: ::Tapioca::Gem::ConstNodeAdded).void }
1711
+ def on_const(event); end
1712
+
1713
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#46
1714
+ sig { override.params(event: ::Tapioca::Gem::MethodNodeAdded).void }
1715
+ def on_method(event); end
1716
+
1717
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#41
1718
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1719
+ def on_scope(event); end
1720
+ end
1721
+
1722
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#10
1723
+ Tapioca::Gem::Listeners::YardDoc::IGNORED_COMMENTS = T.let(T.unsafe(nil), Array)
1724
+
1725
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#24
1726
+ Tapioca::Gem::Listeners::YardDoc::IGNORED_SIG_TAGS = T.let(T.unsafe(nil), Array)
1727
+
1728
+ # source://tapioca//lib/tapioca/gem/events.rb#105
1729
+ class Tapioca::Gem::MethodNodeAdded < ::Tapioca::Gem::NodeAdded
1730
+ # source://tapioca//lib/tapioca/gem/events.rb#130
1731
+ sig do
1732
+ params(
1733
+ symbol: ::String,
1734
+ constant: ::Module,
1735
+ method: ::UnboundMethod,
1736
+ node: ::RBI::Method,
1737
+ signature: T.untyped,
1738
+ parameters: T::Array[[::Symbol, ::String]]
1739
+ ).void
1740
+ end
1741
+ def initialize(symbol, constant, method, node, signature, parameters); end
1742
+
1743
+ # source://tapioca//lib/tapioca/gem/events.rb#109
1744
+ sig { returns(::UnboundMethod) }
1745
+ def method; end
1746
+
1747
+ # source://tapioca//lib/tapioca/gem/events.rb#112
1748
+ sig { returns(::RBI::Method) }
1749
+ def node; end
1750
+
1751
+ # source://tapioca//lib/tapioca/gem/events.rb#118
1752
+ sig { returns(T::Array[[::Symbol, ::String]]) }
1753
+ def parameters; end
1754
+
1755
+ # source://tapioca//lib/tapioca/gem/events.rb#115
1756
+ sig { returns(T.untyped) }
1757
+ def signature; end
1758
+ end
1759
+
1760
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1761
+ #
1762
+ # source://tapioca//lib/tapioca/gem/events.rb#57
1763
+ class Tapioca::Gem::NodeAdded < ::Tapioca::Gem::Event
1764
+ abstract!
1765
+
1766
+ # source://tapioca//lib/tapioca/gem/events.rb#70
1767
+ sig { params(symbol: ::String, constant: ::Module).void }
1768
+ def initialize(symbol, constant); end
1769
+
1770
+ # source://tapioca//lib/tapioca/gem/events.rb#67
1771
+ sig { returns(::Module) }
1772
+ def constant; end
1773
+
1774
+ # source://tapioca//lib/tapioca/gem/events.rb#64
1775
+ sig { returns(::String) }
1776
+ def symbol; end
1777
+ end
1778
+
1779
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#6
1780
+ class Tapioca::Gem::Pipeline
1781
+ include ::Tapioca::Runtime::AttachedClassOf
1782
+ include ::Tapioca::Runtime::Reflection
1783
+ include ::Tapioca::SorbetHelper
1784
+ include ::Tapioca::RBIHelper
1785
+
1786
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#17
1787
+ sig { params(gem: ::Tapioca::Gemfile::GemSpec, include_doc: T::Boolean, include_loc: T::Boolean).void }
1788
+ def initialize(gem, include_doc: T.unsafe(nil), include_loc: T.unsafe(nil)); end
1789
+
1790
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#48
1791
+ sig { returns(::RBI::Tree) }
1792
+ def compile; end
1793
+
1794
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#110
1795
+ sig { params(name: T.any(::String, ::Symbol)).returns(T::Boolean) }
1796
+ def constant_in_gem?(name); end
1797
+
1798
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#14
1799
+ sig { returns(::Tapioca::Gemfile::GemSpec) }
1800
+ def gem; end
1801
+
1802
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#122
1803
+ sig { params(method: ::UnboundMethod).returns(T::Boolean) }
1804
+ def method_in_gem?(method); end
1805
+
1806
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#130
1807
+ sig { params(constant: ::Module).returns(T.nilable(::String)) }
1808
+ def name_of(constant); end
1809
+
1810
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#69
1811
+ sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Const).void }
1812
+ def push_const(symbol, constant, node); end
1813
+
1814
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#59
1815
+ sig { params(symbol: ::String, constant: ::BasicObject).void }
1816
+ def push_constant(symbol, constant); end
1817
+
1818
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#64
1819
+ sig { params(symbol: ::String, constant: ::Module).void }
1820
+ def push_foreign_constant(symbol, constant); end
1821
+
1822
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#83
1823
+ sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void }
1824
+ def push_foreign_scope(symbol, constant, node); end
1825
+
1826
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#97
1827
+ sig do
1828
+ params(
1829
+ symbol: ::String,
1830
+ constant: ::Module,
1831
+ method: ::UnboundMethod,
1832
+ node: ::RBI::Method,
1833
+ signature: T.untyped,
1834
+ parameters: T::Array[[::Symbol, ::String]]
1835
+ ).void
1836
+ end
1837
+ def push_method(symbol, constant, method, node, signature, parameters); end
1838
+
1839
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#76
1840
+ sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void }
1841
+ def push_scope(symbol, constant, node); end
1842
+
1843
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#54
1844
+ sig { params(symbol: ::String).void }
1845
+ def push_symbol(symbol); end
1846
+
1847
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#102
1848
+ sig { params(symbol_name: ::String).returns(T::Boolean) }
1849
+ def symbol_in_payload?(symbol_name); end
1850
+
1851
+ private
1852
+
1853
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#376
1854
+ sig { params(name: ::String).void }
1855
+ def add_to_alias_namespace(name); end
1856
+
1857
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#381
1858
+ sig { params(name: ::String).returns(T::Boolean) }
1859
+ def alias_namespaced?(name); end
1860
+
1861
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#225
1862
+ sig { params(name: ::String, constant: ::Module).void }
1863
+ def compile_alias(name, constant); end
1864
+
1865
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#211
1866
+ sig { params(symbol: ::String, constant: ::BasicObject).void }
1867
+ def compile_constant(symbol, constant); end
1868
+
1869
+ # Compile
1870
+ #
1871
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#206
1872
+ sig { params(symbol: ::String, constant: ::Module).void }
1873
+ def compile_foreign_constant(symbol, constant); end
1874
+
1875
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#283
1876
+ sig { params(name: ::String, constant: ::Module, foreign_constant: T::Boolean).void }
1877
+ def compile_module(name, constant, foreign_constant: T.unsafe(nil)); end
1878
+
1879
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#247
1880
+ sig { params(name: ::String, value: ::BasicObject).void }
1881
+ def compile_object(name, value); end
1882
+
1883
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#308
1884
+ sig { params(constant: T::Class[T.anything]).returns(T.nilable(::String)) }
1885
+ def compile_superclass(constant); end
1886
+
1887
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#357
1888
+ sig { params(constant: ::Module, strict: T::Boolean).returns(T::Boolean) }
1889
+ def defined_in_gem?(constant, strict: T.unsafe(nil)); end
1890
+
1891
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#158
1892
+ sig { params(event: ::Tapioca::Gem::Event).void }
1893
+ def dispatch(event); end
1894
+
1895
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#398
1896
+ sig { params(constant: T.all(::Module, ::T::Generic)).returns(::String) }
1897
+ def generic_name_of(constant); end
1898
+
1899
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#369
1900
+ sig { params(constant: ::Module).returns(T::Set[::String]) }
1901
+ def get_file_candidates(constant); end
1902
+
1903
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#145
1904
+ sig { params(gem: ::Tapioca::Gemfile::GemSpec).returns(T::Set[::String]) }
1905
+ def load_bootstrap_symbols(gem); end
1906
+
1907
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#388
1908
+ sig { params(name: ::String).void }
1909
+ def mark_seen(name); end
1910
+
1911
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#414
1912
+ sig { params(constant: ::Module, class_name: T.nilable(::String)).returns(T.nilable(::String)) }
1913
+ def name_of_proxy_target(constant, class_name); end
1914
+
1915
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#153
1916
+ sig { returns(::Tapioca::Gem::Event) }
1917
+ def next_event; end
1918
+
1919
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#181
1920
+ sig { params(event: ::Tapioca::Gem::ConstantFound).void }
1921
+ def on_constant(event); end
1922
+
1923
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#199
1924
+ sig { params(event: ::Tapioca::Gem::NodeAdded).void }
1925
+ def on_node(event); end
1926
+
1927
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#172
1928
+ sig { params(event: ::Tapioca::Gem::SymbolFound).void }
1929
+ def on_symbol(event); end
1930
+
1931
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#393
1932
+ sig { params(name: ::String).returns(T::Boolean) }
1933
+ def seen?(name); end
1934
+ end
1935
+
1936
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#11
1937
+ Tapioca::Gem::Pipeline::IGNORED_SYMBOLS = T.let(T.unsafe(nil), Array)
1938
+
1939
+ # source://tapioca//lib/tapioca/gem/events.rb#90
1940
+ class Tapioca::Gem::ScopeNodeAdded < ::Tapioca::Gem::NodeAdded
1941
+ # source://tapioca//lib/tapioca/gem/events.rb#97
1942
+ sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void }
1943
+ def initialize(symbol, constant, node); end
1944
+
1945
+ # source://tapioca//lib/tapioca/gem/events.rb#94
1946
+ sig { returns(::RBI::Scope) }
1947
+ def node; end
1948
+ end
1949
+
1950
+ # source://tapioca//lib/tapioca/gem/events.rb#13
1951
+ class Tapioca::Gem::SymbolFound < ::Tapioca::Gem::Event
1952
+ # source://tapioca//lib/tapioca/gem/events.rb#20
1953
+ sig { params(symbol: ::String).void }
1954
+ def initialize(symbol); end
1955
+
1956
+ # source://tapioca//lib/tapioca/gem/events.rb#17
1957
+ sig { returns(::String) }
1958
+ def symbol; end
1959
+ end
1960
+
1961
+ # source://tapioca//lib/tapioca/helpers/gem_helper.rb#5
1962
+ module Tapioca::GemHelper
1963
+ # source://tapioca//lib/tapioca/helpers/gem_helper.rb#9
1964
+ sig { params(app_dir: T.any(::Pathname, ::String), full_gem_path: ::String).returns(T::Boolean) }
1965
+ def gem_in_app_dir?(app_dir, full_gem_path); end
1966
+
1967
+ # source://tapioca//lib/tapioca/helpers/gem_helper.rb#17
1968
+ sig { params(full_gem_path: ::String).returns(T::Boolean) }
1969
+ def gem_in_bundle_path?(full_gem_path); end
1970
+
1971
+ # source://tapioca//lib/tapioca/helpers/gem_helper.rb#22
1972
+ sig { params(full_gem_path: ::String).returns(T::Boolean) }
1973
+ def gem_in_ruby_path?(full_gem_path); end
1974
+
1975
+ # source://tapioca//lib/tapioca/helpers/gem_helper.rb#27
1976
+ sig { params(path: T.any(::Pathname, ::String)).returns(::String) }
1977
+ def to_realpath(path); end
1978
+
1979
+ private
1980
+
1981
+ # source://tapioca//lib/tapioca/helpers/gem_helper.rb#36
1982
+ sig { params(path: T.any(::Pathname, ::String), dir: T.any(::Pathname, ::String)).returns(T::Boolean) }
1983
+ def path_in_dir?(path, dir); end
1984
+ end
1985
+
1986
+ # source://tapioca//lib/tapioca/gemfile.rb#7
1987
+ class Tapioca::Gemfile
1988
+ # source://tapioca//lib/tapioca/gemfile.rb#27
1989
+ sig { params(excluded_gems: T::Array[::String]).void }
1990
+ def initialize(excluded_gems); end
1991
+
1992
+ # source://tapioca//lib/tapioca/gemfile.rb#18
1993
+ sig { returns(::Bundler::Definition) }
1994
+ def definition; end
1995
+
1996
+ # source://tapioca//lib/tapioca/gemfile.rb#21
1997
+ sig { returns(T::Array[::Tapioca::Gemfile::GemSpec]) }
1998
+ def dependencies; end
1999
+
2000
+ # source://tapioca//lib/tapioca/gemfile.rb#40
2001
+ sig { params(gem_name: ::String).returns(T.nilable(::Tapioca::Gemfile::GemSpec)) }
2002
+ def gem(gem_name); end
2003
+
2004
+ # source://tapioca//lib/tapioca/gemfile.rb#24
2005
+ sig { returns(T::Array[::String]) }
2006
+ def missing_specs; end
2007
+
2008
+ # source://tapioca//lib/tapioca/gemfile.rb#45
2009
+ sig { void }
2010
+ def require_bundle; end
2011
+
2012
+ private
2013
+
2014
+ # source://tapioca//lib/tapioca/gemfile.rb#92
2015
+ sig { returns(::String) }
2016
+ def dir; end
2017
+
2018
+ # source://tapioca//lib/tapioca/gemfile.rb#54
2019
+ sig { returns(::File) }
2020
+ def gemfile; end
2021
+
2022
+ # source://tapioca//lib/tapioca/gemfile.rb#87
2023
+ sig { returns(T::Array[::Symbol]) }
2024
+ def groups; end
2025
+
2026
+ # source://tapioca//lib/tapioca/gemfile.rb#57
2027
+ sig { returns([T::Array[::Tapioca::Gemfile::GemSpec], T::Array[::String]]) }
2028
+ def load_dependencies; end
2029
+
2030
+ # @return [File]
2031
+ #
2032
+ # source://tapioca//lib/tapioca/gemfile.rb#54
2033
+ def lockfile; end
2034
+
2035
+ # source://tapioca//lib/tapioca/gemfile.rb#68
2036
+ sig { returns([T::Enumerable[T.any(::Bundler::StubSpecification, ::Gem::Specification)], T::Array[::String]]) }
2037
+ def materialize_deps; end
2038
+
2039
+ # source://tapioca//lib/tapioca/gemfile.rb#82
2040
+ sig { returns(::Bundler::Runtime) }
2041
+ def runtime; end
2042
+ end
2043
+
2044
+ # source://tapioca//lib/tapioca/gemfile.rb#96
2045
+ class Tapioca::Gemfile::GemSpec
2046
+ include ::Tapioca::GemHelper
2047
+
2048
+ # source://tapioca//lib/tapioca/gemfile.rb#135
2049
+ sig { params(spec: T.any(::Bundler::StubSpecification, ::Gem::Specification)).void }
2050
+ def initialize(spec); end
2051
+
2052
+ # source://tapioca//lib/tapioca/gemfile.rb#145
2053
+ sig { params(other: ::BasicObject).returns(T::Boolean) }
2054
+ def ==(other); end
2055
+
2056
+ # source://tapioca//lib/tapioca/gemfile.rb#165
2057
+ sig { params(path: ::String).returns(T::Boolean) }
2058
+ def contains_path?(path); end
2059
+
2060
+ # source://tapioca//lib/tapioca/gemfile.rb#184
2061
+ sig { returns(T::Boolean) }
2062
+ def export_rbi_files?; end
2063
+
2064
+ # source://tapioca//lib/tapioca/gemfile.rb#179
2065
+ sig { returns(T::Array[::String]) }
2066
+ def exported_rbi_files; end
2067
+
2068
+ # source://tapioca//lib/tapioca/gemfile.rb#189
2069
+ sig { returns(::RBI::MergeTree) }
2070
+ def exported_rbi_tree; end
2071
+
2072
+ # source://tapioca//lib/tapioca/gemfile.rb#132
2073
+ sig { returns(T::Array[::Pathname]) }
2074
+ def files; end
2075
+
2076
+ # source://tapioca//lib/tapioca/gemfile.rb#129
2077
+ sig { returns(::String) }
2078
+ def full_gem_path; end
2079
+
2080
+ # source://tapioca//lib/tapioca/gemfile.rb#150
2081
+ sig { params(gemfile_dir: ::String).returns(T::Boolean) }
2082
+ def ignore?(gemfile_dir); end
2083
+
2084
+ # source://tapioca//lib/tapioca/gemfile.rb#155
2085
+ sig { returns(::String) }
2086
+ def name; end
2087
+
2088
+ # source://tapioca//lib/tapioca/gemfile.rb#174
2089
+ sig { void }
2090
+ def parse_yard_docs; end
2091
+
2092
+ # source://tapioca//lib/tapioca/gemfile.rb#160
2093
+ sig { returns(::String) }
2094
+ def rbi_file_name; end
2095
+
2096
+ # source://tapioca//lib/tapioca/gemfile.rb#201
2097
+ sig { params(file: ::Pathname).returns(::Pathname) }
2098
+ def relative_path_for(file); end
2099
+
2100
+ # @return [String]
2101
+ #
2102
+ # source://tapioca//lib/tapioca/gemfile.rb#129
2103
+ def version; end
2104
+
2105
+ private
2106
+
2107
+ # source://tapioca//lib/tapioca/gemfile.rb#212
2108
+ sig { returns(T::Array[::Pathname]) }
2109
+ def collect_files; end
2110
+
2111
+ # source://tapioca//lib/tapioca/gemfile.rb#227
2112
+ sig { returns(T.nilable(T::Boolean)) }
2113
+ def default_gem?; end
2114
+
2115
+ # source://tapioca//lib/tapioca/gemfile.rb#285
2116
+ sig { returns(T::Boolean) }
2117
+ def gem_ignored?; end
2118
+
2119
+ # source://tapioca//lib/tapioca/gemfile.rb#264
2120
+ sig { params(path: ::String).returns(T::Boolean) }
2121
+ def has_parent_gemspec?(path); end
2122
+
2123
+ # source://tapioca//lib/tapioca/gemfile.rb#232
2124
+ sig { returns(::Regexp) }
2125
+ def require_paths_prefix_matcher; end
2126
+
2127
+ # source://tapioca//lib/tapioca/gemfile.rb#243
2128
+ sig { params(file: ::String).returns(::Pathname) }
2129
+ def resolve_to_ruby_lib_dir(file); end
2130
+
2131
+ # source://tapioca//lib/tapioca/gemfile.rb#257
2132
+ sig { returns(::String) }
2133
+ def version_string; end
2134
+
2135
+ class << self
2136
+ # source://tapioca//lib/tapioca/gemfile.rb#104
2137
+ sig { returns(T::Hash[::String, ::Tapioca::Gemfile::GemSpec]) }
2138
+ def spec_lookup_by_file_path; end
2139
+ end
2140
+ end
2141
+
2142
+ # source://tapioca//lib/tapioca/gemfile.rb#116
2143
+ Tapioca::Gemfile::GemSpec::IGNORED_GEMS = T.let(T.unsafe(nil), Array)
2144
+
2145
+ # source://tapioca//lib/tapioca/gemfile.rb#10
2146
+ Tapioca::Gemfile::Spec = T.type_alias { T.any(::Bundler::StubSpecification, ::Gem::Specification) }
2147
+
2148
+ # source://tapioca//lib/tapioca/loaders/loader.rb#5
2149
+ module Tapioca::Loaders; end
2150
+
2151
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#6
2152
+ class Tapioca::Loaders::Dsl < ::Tapioca::Loaders::Loader
2153
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#38
2154
+ sig do
2155
+ params(tapioca_path: ::String, eager_load: T::Boolean, app_root: ::String, halt_upon_load_error: T::Boolean).void
2156
+ end
2157
+ def initialize(tapioca_path:, eager_load: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end
2158
+
2159
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#27
2160
+ sig { override.void }
2161
+ def load; end
2162
+
2163
+ protected
2164
+
2165
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#71
2166
+ sig { void }
2167
+ def load_application; end
2168
+
2169
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#53
2170
+ sig { void }
2171
+ def load_dsl_compilers; end
2172
+
2173
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#48
2174
+ sig { void }
2175
+ def load_dsl_extensions; end
2176
+
2177
+ class << self
2178
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#15
2179
+ sig do
2180
+ params(
2181
+ tapioca_path: ::String,
2182
+ eager_load: T::Boolean,
2183
+ app_root: ::String,
2184
+ halt_upon_load_error: T::Boolean
2185
+ ).void
2186
+ end
2187
+ def load_application(tapioca_path:, eager_load: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end
2188
+ end
2189
+ end
2190
+
2191
+ # source://tapioca//lib/tapioca/loaders/gem.rb#6
2192
+ class Tapioca::Loaders::Gem < ::Tapioca::Loaders::Loader
2193
+ # source://tapioca//lib/tapioca/loaders/gem.rb#49
2194
+ sig do
2195
+ params(
2196
+ bundle: ::Tapioca::Gemfile,
2197
+ prerequire: T.nilable(::String),
2198
+ postrequire: ::String,
2199
+ default_command: ::String,
2200
+ halt_upon_load_error: T::Boolean
2201
+ ).void
2202
+ end
2203
+ def initialize(bundle:, prerequire:, postrequire:, default_command:, halt_upon_load_error:); end
2204
+
2205
+ # source://tapioca//lib/tapioca/loaders/gem.rb#34
2206
+ sig { override.void }
2207
+ def load; end
2208
+
2209
+ protected
2210
+
2211
+ # source://tapioca//lib/tapioca/loaders/gem.rb#80
2212
+ sig { params(file: ::String, error: ::LoadError).void }
2213
+ def explain_failed_require(file, error); end
2214
+
2215
+ # source://tapioca//lib/tapioca/loaders/gem.rb#60
2216
+ sig { void }
2217
+ def require_gem_file; end
2218
+
2219
+ class << self
2220
+ # source://tapioca//lib/tapioca/loaders/gem.rb#21
2221
+ sig do
2222
+ params(
2223
+ bundle: ::Tapioca::Gemfile,
2224
+ prerequire: T.nilable(::String),
2225
+ postrequire: ::String,
2226
+ default_command: ::String,
2227
+ halt_upon_load_error: T::Boolean
2228
+ ).void
2229
+ end
2230
+ def load_application(bundle:, prerequire:, postrequire:, default_command:, halt_upon_load_error:); end
2231
+ end
2232
+ end
2233
+
2234
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
2235
+ #
2236
+ # source://tapioca//lib/tapioca/loaders/loader.rb#6
2237
+ class Tapioca::Loaders::Loader
2238
+ include ::Thor::Base
2239
+ include ::Thor::Invocation
2240
+ include ::Thor::Shell
2241
+ include ::Tapioca::CliHelper
2242
+ include ::Tapioca::GemHelper
2243
+ extend ::Thor::Base::ClassMethods
2244
+ extend ::Thor::Invocation::ClassMethods
2245
+
2246
+ abstract!
2247
+
2248
+ # @abstract
2249
+ #
2250
+ # source://tapioca//lib/tapioca/loaders/loader.rb#17
2251
+ sig { abstract.void }
2252
+ def load; end
2253
+
2254
+ private
2255
+
2256
+ # source://tapioca//lib/tapioca/loaders/loader.rb#198
2257
+ sig { void }
2258
+ def eager_load_rails_app; end
2259
+
2260
+ # @return [Array<T.class_of(Rails::Engine)>]
2261
+ #
2262
+ # source://tapioca//lib/tapioca/loaders/loader.rb#169
2263
+ def engines; end
2264
+
2265
+ # source://tapioca//lib/tapioca/loaders/loader.rb#29
2266
+ sig do
2267
+ params(
2268
+ gemfile: ::Tapioca::Gemfile,
2269
+ initialize_file: T.nilable(::String),
2270
+ require_file: T.nilable(::String),
2271
+ halt_upon_load_error: T::Boolean
2272
+ ).void
2273
+ end
2274
+ def load_bundle(gemfile, initialize_file, require_file, halt_upon_load_error); end
2275
+
2276
+ # source://tapioca//lib/tapioca/loaders/loader.rb#127
2277
+ sig { void }
2278
+ def load_engines_in_classic_mode; end
2279
+
2280
+ # source://tapioca//lib/tapioca/loaders/loader.rb#105
2281
+ sig { void }
2282
+ def load_engines_in_zeitwerk_mode; end
2283
+
2284
+ # source://tapioca//lib/tapioca/loaders/loader.rb#49
2285
+ sig do
2286
+ params(
2287
+ environment_load: T::Boolean,
2288
+ eager_load: T::Boolean,
2289
+ app_root: ::String,
2290
+ halt_upon_load_error: T::Boolean
2291
+ ).void
2292
+ end
2293
+ def load_rails_application(environment_load: T.unsafe(nil), eager_load: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end
2294
+
2295
+ # source://tapioca//lib/tapioca/loaders/loader.rb#80
2296
+ sig { void }
2297
+ def load_rails_engines; end
2298
+
2299
+ # source://tapioca//lib/tapioca/loaders/loader.rb#219
2300
+ sig { params(file: T.nilable(::String)).void }
2301
+ def require_helper(file); end
2302
+
2303
+ # source://tapioca//lib/tapioca/loaders/loader.rb#94
2304
+ def run_initializers; end
2305
+
2306
+ # source://tapioca//lib/tapioca/loaders/loader.rb#183
2307
+ sig { params(path: ::String).void }
2308
+ def safe_require(path); end
2309
+
2310
+ # source://tapioca//lib/tapioca/loaders/loader.rb#190
2311
+ sig { void }
2312
+ def silence_deprecations; end
2313
+
2314
+ # source://tapioca//lib/tapioca/loaders/loader.rb#152
2315
+ sig { params(blk: T.proc.void).void }
2316
+ def with_rails_application(&blk); end
2317
+
2318
+ # source://tapioca//lib/tapioca/loaders/loader.rb#145
2319
+ sig { returns(T::Boolean) }
2320
+ def zeitwerk_mode?; end
2321
+ end
2322
+
2323
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#5
2324
+ module Tapioca::RBIFilesHelper
2325
+ requires_ancestor { Tapioca::SorbetHelper }
2326
+ requires_ancestor { Thor::Shell }
2327
+
2328
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#48
2329
+ sig do
2330
+ params(
2331
+ index: ::RBI::Index,
2332
+ shim_rbi_dir: ::String,
2333
+ todo_rbi_file: ::String
2334
+ ).returns(T::Hash[::String, T::Array[::RBI::Node]])
2335
+ end
2336
+ def duplicated_nodes_from_index(index, shim_rbi_dir:, todo_rbi_file:); end
2337
+
2338
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#13
2339
+ sig { params(index: ::RBI::Index, kind: ::String, file: ::String).void }
2340
+ def index_rbi(index, kind, file); end
2341
+
2342
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#25
2343
+ sig { params(index: ::RBI::Index, kind: ::String, dir: ::String, number_of_workers: T.nilable(::Integer)).void }
2344
+ def index_rbis(index, kind, dir, number_of_workers:); end
2345
+
2346
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#65
2347
+ sig { params(loc: ::RBI::Loc, path_prefix: T.nilable(::String)).returns(::String) }
2348
+ def location_to_payload_url(loc, path_prefix:); end
2349
+
2350
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#86
2351
+ sig do
2352
+ params(
2353
+ command: ::String,
2354
+ gem_dir: ::String,
2355
+ dsl_dir: ::String,
2356
+ auto_strictness: T::Boolean,
2357
+ gems: T::Array[::Tapioca::Gemfile::GemSpec],
2358
+ compilers: T::Enumerable[T.class_of(Tapioca::Dsl::Compiler)]
2359
+ ).void
2360
+ end
2361
+ def validate_rbi_files(command:, gem_dir:, dsl_dir:, auto_strictness:, gems: T.unsafe(nil), compilers: T.unsafe(nil)); end
2362
+
2363
+ private
2364
+
2365
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#209
2366
+ sig { params(nodes: T::Array[::RBI::Node]).returns(T::Array[::RBI::Scope]) }
2367
+ def extract_empty_scopes(nodes); end
2368
+
2369
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#214
2370
+ sig { params(nodes: T::Array[::RBI::Node]).returns(T::Array[T.any(::RBI::Attr, ::RBI::Method)]) }
2371
+ def extract_methods_and_attrs(nodes); end
2372
+
2373
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#224
2374
+ sig { params(nodes: T::Array[::RBI::Node]).returns(T::Array[T.any(::RBI::Mixin, ::RBI::RequiresAncestor)]) }
2375
+ def extract_mixins(nodes); end
2376
+
2377
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#234
2378
+ sig do
2379
+ params(nodes: T::Array[T.any(::RBI::Attr, ::RBI::Method)]).returns(T::Array[T.any(::RBI::Attr, ::RBI::Method)])
2380
+ end
2381
+ def extract_nodes_with_sigs(nodes); end
2382
+
2383
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#202
2384
+ sig do
2385
+ params(
2386
+ nodes: T::Array[::RBI::Node],
2387
+ shim_rbi_dir: ::String,
2388
+ todo_rbi_file: ::String
2389
+ ).returns(T::Array[::RBI::Node])
2390
+ end
2391
+ def extract_shims_and_todos(nodes, shim_rbi_dir:, todo_rbi_file:); end
2392
+
2393
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#266
2394
+ sig { params(path: ::String).returns(::String) }
2395
+ def gem_name_from_rbi_path(path); end
2396
+
2397
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#155
2398
+ sig { params(index: ::RBI::Index, files: T::Array[::String], number_of_workers: T.nilable(::Integer)).void }
2399
+ def parse_and_index_files(index, files, number_of_workers:); end
2400
+
2401
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#171
2402
+ sig { params(nodes: T::Array[::RBI::Node], shim_rbi_dir: ::String, todo_rbi_file: ::String).returns(T::Boolean) }
2403
+ def shims_or_todos_have_duplicates?(nodes, shim_rbi_dir:, todo_rbi_file:); end
2404
+
2405
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#239
2406
+ sig { params(errors: T::Array[::Spoom::Sorbet::Errors::Error], gem_dir: ::String).void }
2407
+ def update_gem_rbis_strictnesses(errors, gem_dir); end
2408
+ end
2409
+
2410
+ # source://tapioca//lib/tapioca/rbi_formatter.rb#5
2411
+ class Tapioca::RBIFormatter < ::RBI::Formatter
2412
+ # source://tapioca//lib/tapioca/rbi_formatter.rb#22
2413
+ sig { params(file: ::RBI::File).void }
2414
+ def write_empty_body_comment!(file); end
2415
+
2416
+ # source://tapioca//lib/tapioca/rbi_formatter.rb#15
2417
+ sig { params(file: ::RBI::File, command: ::String, reason: T.nilable(::String)).void }
2418
+ def write_header!(file, command, reason: T.unsafe(nil)); end
2419
+ end
2420
+
2421
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#5
2422
+ module Tapioca::RBIHelper
2423
+ include ::Tapioca::SorbetHelper
2424
+ extend ::Tapioca::SorbetHelper
2425
+ extend ::Tapioca::RBIHelper
2426
+
2427
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#91
2428
+ sig { params(type: ::String).returns(::String) }
2429
+ def as_nilable_type(type); end
2430
+
2431
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#72
2432
+ sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
2433
+ def create_block_param(name, type:); end
2434
+
2435
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#62
2436
+ sig { params(name: ::String, type: ::String, default: ::String).returns(::RBI::TypedParam) }
2437
+ def create_kw_opt_param(name, type:, default:); end
2438
+
2439
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#57
2440
+ sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
2441
+ def create_kw_param(name, type:); end
2442
+
2443
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#67
2444
+ sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
2445
+ def create_kw_rest_param(name, type:); end
2446
+
2447
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#47
2448
+ sig { params(name: ::String, type: ::String, default: ::String).returns(::RBI::TypedParam) }
2449
+ def create_opt_param(name, type:, default:); end
2450
+
2451
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#42
2452
+ sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
2453
+ def create_param(name, type:); end
2454
+
2455
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#52
2456
+ sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
2457
+ def create_rest_param(name, type:); end
2458
+
2459
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#77
2460
+ sig { params(param: ::RBI::Param, type: ::String).returns(::RBI::TypedParam) }
2461
+ def create_typed_param(param, type); end
2462
+
2463
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#82
2464
+ sig { params(sig_string: ::String).returns(::String) }
2465
+ def sanitize_signature_types(sig_string); end
2466
+
2467
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#100
2468
+ sig { params(name: ::String).returns(T::Boolean) }
2469
+ def valid_method_name?(name); end
2470
+
2471
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#114
2472
+ sig { params(name: ::String).returns(T::Boolean) }
2473
+ def valid_parameter_name?(name); end
2474
+
2475
+ class << self
2476
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#23
2477
+ sig do
2478
+ params(
2479
+ type: ::String,
2480
+ variance: ::Symbol,
2481
+ fixed: T.nilable(::String),
2482
+ upper: T.nilable(::String),
2483
+ lower: T.nilable(::String)
2484
+ ).returns(::String)
2485
+ end
2486
+ def serialize_type_variable(type, variance, fixed, upper, lower); end
2487
+ end
2488
+ end
2489
+
2490
+ # source://tapioca//lib/tapioca/repo_index.rb#5
2491
+ class Tapioca::RepoIndex
2492
+ # source://tapioca//lib/tapioca/repo_index.rb#26
2493
+ sig { void }
2494
+ def initialize; end
2495
+
2496
+ # source://tapioca//lib/tapioca/repo_index.rb#31
2497
+ sig { params(gem_name: ::String).void }
2498
+ def <<(gem_name); end
2499
+
2500
+ # source://tapioca//lib/tapioca/repo_index.rb#36
2501
+ sig { returns(T::Enumerable[::String]) }
2502
+ def gems; end
2503
+
2504
+ # source://tapioca//lib/tapioca/repo_index.rb#41
2505
+ sig { params(gem_name: ::String).returns(T::Boolean) }
2506
+ def has_gem?(gem_name); end
2507
+
2508
+ class << self
2509
+ # source://tapioca//lib/tapioca/repo_index.rb#18
2510
+ sig { params(hash: T::Hash[::String, T::Hash[T.untyped, T.untyped]]).returns(Tapioca::RepoIndex) }
2511
+ def from_hash(hash); end
2512
+
2513
+ # source://tapioca//lib/tapioca/repo_index.rb#13
2514
+ sig { params(json: ::String).returns(Tapioca::RepoIndex) }
2515
+ def from_json(json); end
2516
+ end
2517
+ end
2518
+
2519
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#5
2520
+ module Tapioca::Runtime; end
2521
+
2522
+ # This module should only be included when running versions of Ruby
2523
+ # older than 3.2. Because the Class#attached_object method is not
2524
+ # available, it implements finding the attached class of a singleton
2525
+ # class by iterating through ObjectSpace.
2526
+ module Tapioca::Runtime::AttachedClassOf
2527
+ # source://tapioca//lib/tapioca/runtime/attached_class_of_32.rb#14
2528
+ sig { params(singleton_class: ::Class).returns(T.nilable(::Module)) }
2529
+ def attached_class_of(singleton_class); end
2530
+ end
2531
+
2532
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#6
2533
+ class Tapioca::Runtime::DynamicMixinCompiler
2534
+ include ::Tapioca::Runtime::AttachedClassOf
2535
+ include ::Tapioca::Runtime::Reflection
2536
+
2537
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#20
2538
+ sig { params(constant: ::Module).void }
2539
+ def initialize(constant); end
2540
+
2541
+ # @return [Array<Symbol>]
2542
+ #
2543
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#14
2544
+ def class_attribute_predicates; end
2545
+
2546
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#14
2547
+ sig { returns(T::Array[::Symbol]) }
2548
+ def class_attribute_readers; end
2549
+
2550
+ # @return [Array<Symbol>]
2551
+ #
2552
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#14
2553
+ def class_attribute_writers; end
2554
+
2555
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#137
2556
+ sig { params(tree: ::RBI::Tree).void }
2557
+ def compile_class_attributes(tree); end
2558
+
2559
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#180
2560
+ sig { params(tree: ::RBI::Tree).returns([T::Array[::Module], T::Array[::Module]]) }
2561
+ def compile_mixes_in_class_methods(tree); end
2562
+
2563
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#11
2564
+ sig { returns(T::Array[::Module]) }
2565
+ def dynamic_extends; end
2566
+
2567
+ # @return [Array<Module>]
2568
+ #
2569
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#11
2570
+ def dynamic_includes; end
2571
+
2572
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#132
2573
+ sig { returns(T::Boolean) }
2574
+ def empty_attributes?; end
2575
+
2576
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#222
2577
+ sig { params(qualified_mixin_name: ::String).returns(T::Boolean) }
2578
+ def filtered_mixin?(qualified_mixin_name); end
2579
+
2580
+ # @return [Array<Symbol>]
2581
+ #
2582
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#17
2583
+ def instance_attribute_predicates; end
2584
+
2585
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#17
2586
+ sig { returns(T::Array[::Symbol]) }
2587
+ def instance_attribute_readers; end
2588
+
2589
+ # @return [Array<Symbol>]
2590
+ #
2591
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#17
2592
+ def instance_attribute_writers; end
2593
+
2594
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#215
2595
+ sig { params(mod: ::Module, dynamic_extends: T::Array[::Module]).returns(T::Boolean) }
2596
+ def module_included_by_another_dynamic_extend?(mod, dynamic_extends); end
2597
+ end
2598
+
2599
+ # This class is responsible for storing and looking up information related to generic types.
2600
+ #
2601
+ # The class stores 2 different kinds of data, in two separate lookup tables:
2602
+ # 1. a lookup of generic type instances by name: `@generic_instances`
2603
+ # 2. a lookup of type variable serializer by constant and type variable
2604
+ # instance: `@type_variables`
2605
+ #
2606
+ # By storing the above data, we can cheaply query each constant against this registry
2607
+ # to see if it declares any generic type variables. This becomes a simple lookup in the
2608
+ # `@type_variables` hash table with the given constant.
2609
+ #
2610
+ # If there is no entry, then we can cheaply know that we can skip generic type
2611
+ # information generation for this type.
2612
+ #
2613
+ # On the other hand, if we get a result, then the result will be a hash of type
2614
+ # variable to type variable serializers. This allows us to associate type variables
2615
+ # to the constant names that represent them, easily.
2616
+ #
2617
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#23
2618
+ module Tapioca::Runtime::GenericTypeRegistry
2619
+ class << self
2620
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#80
2621
+ sig { params(instance: ::Object).returns(T::Boolean) }
2622
+ def generic_type_instance?(instance); end
2623
+
2624
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#85
2625
+ sig { params(constant: ::Module).returns(T.nilable(T::Array[::Tapioca::TypeVariableModule])) }
2626
+ def lookup_type_variables(constant); end
2627
+
2628
+ # This method is responsible for building the name of the instantiated concrete type
2629
+ # and cloning the given constant so that we can return a type that is the same
2630
+ # as the current type but is a different instance and has a different name method.
2631
+ #
2632
+ # We cache those cloned instances by their name in `@generic_instances`, so that
2633
+ # we don't keep instantiating a new type every single time it is referenced.
2634
+ # For example, `[Foo[Integer], Foo[Integer], Foo[Integer], Foo[String]]` will only
2635
+ # result in 2 clones (1 for `Foo[Integer]` and another for `Foo[String]`) and
2636
+ # 2 hash lookups (for the other two `Foo[Integer]`s).
2637
+ #
2638
+ # This method returns the created or cached clone of the constant.
2639
+ #
2640
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#65
2641
+ sig { params(constant: T.untyped, types: T.untyped).returns(::Module) }
2642
+ def register_type(constant, types); end
2643
+
2644
+ # This method is called from intercepted calls to `type_member` and `type_template`.
2645
+ # We get passed all the arguments to those methods, as well as the `T::Types::TypeVariable`
2646
+ # instance generated by the Sorbet defined `type_member`/`type_template` call on `T::Generic`.
2647
+ #
2648
+ # This method creates a `String` with that data and stores it in the
2649
+ # `@type_variables` lookup table, keyed by the `constant` and `type_variable`.
2650
+ #
2651
+ # Finally, the original `type_variable` is returned from this method, so that the caller
2652
+ # can return it from the original methods as well.
2653
+ #
2654
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#104
2655
+ sig { params(constant: T.untyped, type_variable: ::Tapioca::TypeVariableModule).void }
2656
+ def register_type_variable(constant, type_variable); end
2657
+
2658
+ private
2659
+
2660
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#113
2661
+ sig { params(constant: ::Module, name: ::String).returns(::Module) }
2662
+ def create_generic_type(constant, name); end
2663
+
2664
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#155
2665
+ sig { params(constant: T::Class[T.anything]).returns(T::Class[T.anything]) }
2666
+ def create_safe_subclass(constant); end
2667
+
2668
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#182
2669
+ sig { params(constant: ::Module).returns(T::Array[::Tapioca::TypeVariableModule]) }
2670
+ def lookup_or_initialize_type_variables(constant); end
2671
+ end
2672
+ end
2673
+
2674
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#34
2675
+ class Tapioca::Runtime::GenericTypeRegistry::GenericType < ::T::Types::Simple
2676
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#38
2677
+ sig { params(raw_type: ::Module, underlying_type: ::Module).void }
2678
+ def initialize(raw_type, underlying_type); end
2679
+
2680
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#45
2681
+ sig { params(obj: T.untyped).returns(T::Boolean) }
2682
+ def valid?(obj); end
2683
+ end
2684
+
2685
+ module Tapioca::Runtime::Reflection
2686
+ include ::Tapioca::Runtime::AttachedClassOf
2687
+ extend ::Tapioca::Runtime::AttachedClassOf
2688
+ extend ::Tapioca::Runtime::Reflection
2689
+
2690
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#196
2691
+ sig { params(constant: ::Module).returns(T.untyped) }
2692
+ def abstract_type_of(constant); end
2693
+
2694
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#77
2695
+ sig { params(constant: ::Module).returns(T::Array[::Module]) }
2696
+ def ancestors_of(constant); end
2697
+
2698
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#92
2699
+ sig { params(object: ::BasicObject, other: ::BasicObject).returns(T::Boolean) }
2700
+ def are_equal?(object, other); end
2701
+
2702
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#56
2703
+ sig { params(object: ::BasicObject).returns(T::Class[T.anything]) }
2704
+ def class_of(object); end
2705
+
2706
+ # @param constant [BasicObject]
2707
+ # @return [Boolean]
2708
+ #
2709
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#38
2710
+ def constant_defined?(constant); end
2711
+
2712
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#49
2713
+ sig { params(symbol: ::String, inherit: T::Boolean, namespace: ::Module).returns(::BasicObject) }
2714
+ def constantize(symbol, inherit: T.unsafe(nil), namespace: T.unsafe(nil)); end
2715
+
2716
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#61
2717
+ sig { params(constant: ::Module).returns(T::Array[::Symbol]) }
2718
+ def constants_of(constant); end
2719
+
2720
+ # Returns an array with all classes that are < than the supplied class.
2721
+ #
2722
+ # class C; end
2723
+ # descendants_of(C) # => []
2724
+ #
2725
+ # class B < C; end
2726
+ # descendants_of(C) # => [B]
2727
+ #
2728
+ # class A < B; end
2729
+ # descendants_of(C) # => [B, A]
2730
+ #
2731
+ # class D < C; end
2732
+ # descendants_of(C) # => [B, A, D]
2733
+ #
2734
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#167
2735
+ sig do
2736
+ type_parameters(:U)
2737
+ .params(
2738
+ klass: T.all(T.type_parameter(:U), T::Class[T.anything])
2739
+ ).returns(T::Array[T.type_parameter(:U)])
2740
+ end
2741
+ def descendants_of(klass); end
2742
+
2743
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#189
2744
+ sig { params(constant: ::Module).returns(T::Set[::String]) }
2745
+ def file_candidates_for(constant); end
2746
+
2747
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#202
2748
+ sig { params(constant: ::Module).returns(T::Boolean) }
2749
+ def final_module?(constant); end
2750
+
2751
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#112
2752
+ sig { params(constant: ::Module).returns(T::Array[::Module]) }
2753
+ def inherited_ancestors_of(constant); end
2754
+
2755
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#145
2756
+ sig { params(constant: ::Module, method: ::Symbol).returns(::Method) }
2757
+ def method_of(constant, method); end
2758
+
2759
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#66
2760
+ sig { params(constant: ::Module).returns(T.nilable(::String)) }
2761
+ def name_of(constant); end
2762
+
2763
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#140
2764
+ sig { params(type: ::T::Types::Base).returns(::String) }
2765
+ def name_of_type(type); end
2766
+
2767
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#87
2768
+ sig { params(object: ::BasicObject).returns(::Integer) }
2769
+ def object_id_of(object); end
2770
+
2771
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#107
2772
+ sig { params(constant: ::Module).returns(T::Array[::Symbol]) }
2773
+ def private_instance_methods_of(constant); end
2774
+
2775
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#102
2776
+ sig { params(constant: ::Module).returns(T::Array[::Symbol]) }
2777
+ def protected_instance_methods_of(constant); end
2778
+
2779
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#97
2780
+ sig { params(constant: ::Module).returns(T::Array[::Symbol]) }
2781
+ def public_instance_methods_of(constant); end
2782
+
2783
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#121
2784
+ sig { params(constant: ::Module).returns(T.nilable(::String)) }
2785
+ def qualified_name_of(constant); end
2786
+
2787
+ # Examines the call stack to identify the closest location where a "require" is performed
2788
+ # by searching for the label "<top (required)>". If none is found, it returns the location
2789
+ # labeled "<main>", which is the original call site.
2790
+ #
2791
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#179
2792
+ sig { params(locations: T.nilable(T::Array[::Thread::Backtrace::Location])).returns(::String) }
2793
+ def resolve_loc(locations); end
2794
+
2795
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#207
2796
+ sig { params(constant: ::Module).returns(T::Boolean) }
2797
+ def sealed_module?(constant); end
2798
+
2799
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#133
2800
+ sig { params(method: T.any(::Method, ::UnboundMethod)).returns(T.untyped) }
2801
+ def signature_of(method); end
2802
+
2803
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#72
2804
+ sig { params(constant: ::Module).returns(T::Class[T.anything]) }
2805
+ def singleton_class_of(constant); end
2806
+
2807
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#82
2808
+ sig { params(constant: T::Class[T.anything]).returns(T.nilable(T::Class[T.anything])) }
2809
+ def superclass_of(constant); end
2810
+
2811
+ private
2812
+
2813
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#244
2814
+ sig { params(parent: ::Module, name: ::String).returns(T.nilable(::Module)) }
2815
+ def child_module_for_parent_with_name(parent, name); end
2816
+
2817
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#255
2818
+ sig { params(method: ::UnboundMethod).returns(T::Boolean) }
2819
+ def method_defined_by_forwardable_module?(method); end
2820
+
2821
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#230
2822
+ sig { params(constant: ::Module).returns(T::Array[::UnboundMethod]) }
2823
+ def methods_for(constant); end
2824
+
2825
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#214
2826
+ sig { params(constant: ::Module).returns(T::Array[::UnboundMethod]) }
2827
+ def relevant_methods_for(constant); end
2828
+ end
2829
+
2830
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#25
2831
+ Tapioca::Runtime::Reflection::ANCESTORS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
2832
+
2833
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#21
2834
+ Tapioca::Runtime::Reflection::CLASS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
2835
+
2836
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#22
2837
+ Tapioca::Runtime::Reflection::CONSTANTS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
2838
+
2839
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#28
2840
+ Tapioca::Runtime::Reflection::EQUAL_METHOD = T.let(T.unsafe(nil), UnboundMethod)
2841
+
2842
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#32
2843
+ Tapioca::Runtime::Reflection::METHOD_METHOD = T.let(T.unsafe(nil), UnboundMethod)
2844
+
2845
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#23
2846
+ Tapioca::Runtime::Reflection::NAME_METHOD = T.let(T.unsafe(nil), UnboundMethod)
2847
+
2848
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#27
2849
+ Tapioca::Runtime::Reflection::OBJECT_ID_METHOD = T.let(T.unsafe(nil), UnboundMethod)
2850
+
2851
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#31
2852
+ Tapioca::Runtime::Reflection::PRIVATE_INSTANCE_METHODS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
2853
+
2854
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#30
2855
+ Tapioca::Runtime::Reflection::PROTECTED_INSTANCE_METHODS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
2856
+
2857
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#29
2858
+ Tapioca::Runtime::Reflection::PUBLIC_INSTANCE_METHODS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
2859
+
2860
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#35
2861
+ Tapioca::Runtime::Reflection::REQUIRED_FROM_LABELS = T.let(T.unsafe(nil), Array)
2862
+
2863
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#24
2864
+ Tapioca::Runtime::Reflection::SINGLETON_CLASS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
2865
+
2866
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#26
2867
+ Tapioca::Runtime::Reflection::SUPERCLASS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
2868
+
2869
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#6
2870
+ module Tapioca::Runtime::Trackers
2871
+ class << self
2872
+ # source://tapioca//lib/tapioca/runtime/trackers.rb#34
2873
+ sig { void }
2874
+ def disable_all!; end
2875
+
2876
+ # source://tapioca//lib/tapioca/runtime/trackers.rb#39
2877
+ sig { params(tracker: ::Tapioca::Runtime::Trackers::Tracker).void }
2878
+ def register_tracker(tracker); end
2879
+
2880
+ # source://tapioca//lib/tapioca/runtime/trackers.rb#21
2881
+ sig do
2882
+ type_parameters(:Return)
2883
+ .params(
2884
+ blk: T.proc.returns(T.type_parameter(:Return))
2885
+ ).returns(T.type_parameter(:Return))
2886
+ end
2887
+ def with_trackers_enabled(&blk); end
2888
+ end
2889
+ end
2890
+
2891
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#7
2892
+ module Tapioca::Runtime::Trackers::Autoload
2893
+ extend ::Tapioca::Runtime::Trackers::Tracker
2894
+
2895
+ class << self
2896
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#19
2897
+ sig { void }
2898
+ def eager_load_all!; end
2899
+
2900
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#31
2901
+ sig { params(constant_name: ::String).void }
2902
+ def register(constant_name); end
2903
+
2904
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#42
2905
+ sig do
2906
+ type_parameters(:Result)
2907
+ .params(
2908
+ block: T.proc.returns(T.type_parameter(:Result))
2909
+ ).returns(T.type_parameter(:Result))
2910
+ end
2911
+ def with_disabled_exits(&block); end
2912
+ end
2913
+ end
2914
+
2915
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#11
2916
+ Tapioca::Runtime::Trackers::Autoload::NOOP_METHOD = T.let(T.unsafe(nil), Proc)
2917
+
2918
+ # Registers a TracePoint immediately upon load to track points at which
2919
+ # classes and modules are opened for definition. This is used to track
2920
+ # correspondence between classes/modules and files, as this information isn't
2921
+ # available in the ruby runtime without extra accounting.
2922
+ module Tapioca::Runtime::Trackers::ConstantDefinition
2923
+ extend ::Tapioca::Runtime::Trackers::Tracker
2924
+ extend ::Tapioca::Runtime::AttachedClassOf
2925
+ extend ::Tapioca::Runtime::Reflection
2926
+
2927
+ class << self
2928
+ # source://tapioca//lib/tapioca/runtime/trackers/constant_definition.rb#61
2929
+ def build_constant_location(tp, locations); end
2930
+
2931
+ # source://tapioca//lib/tapioca/runtime/trackers/constant_definition.rb#55
2932
+ def disable!; end
2933
+
2934
+ # Returns the files in which this class or module was opened. Doesn't know
2935
+ # about situations where the class was opened prior to +require+ing,
2936
+ # or where metaprogramming was used via +eval+, etc.
2937
+ #
2938
+ # source://tapioca//lib/tapioca/runtime/trackers/constant_definition.rb#71
2939
+ def files_for(klass); end
2940
+
2941
+ # source://tapioca//lib/tapioca/runtime/trackers/constant_definition.rb#75
2942
+ def locations_for(klass); end
2943
+ end
2944
+ end
2945
+
2946
+ module Tapioca::Runtime::Trackers::Mixin
2947
+ extend ::Tapioca::Runtime::Trackers::Tracker
2948
+
2949
+ class << self
2950
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#56
2951
+ sig do
2952
+ params(mixin: ::Module).returns(T::Hash[::Tapioca::Runtime::Trackers::Mixin::Type, T::Hash[::Module, ::String]])
2953
+ end
2954
+ def constants_with_mixin(mixin); end
2955
+
2956
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#61
2957
+ sig do
2958
+ params(
2959
+ mixin: ::Module,
2960
+ mixin_type: ::Tapioca::Runtime::Trackers::Mixin::Type,
2961
+ constant: ::Module
2962
+ ).returns(T.nilable(::String))
2963
+ end
2964
+ def mixin_location(mixin, mixin_type, constant); end
2965
+
2966
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#35
2967
+ sig { params(constant: ::Module, mixin: ::Module, mixin_type: ::Tapioca::Runtime::Trackers::Mixin::Type).void }
2968
+ def register(constant, mixin, mixin_type); end
2969
+
2970
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#43
2971
+ def resolve_to_attached_class(constant, mixin, mixin_type); end
2972
+
2973
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#30
2974
+ sig do
2975
+ type_parameters(:Result)
2976
+ .params(
2977
+ block: T.proc.returns(T.type_parameter(:Result))
2978
+ ).returns(T.type_parameter(:Result))
2979
+ end
2980
+ def with_disabled_registration(&block); end
2981
+
2982
+ private
2983
+
2984
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#76
2985
+ sig do
2986
+ params(mixin: ::Module).returns(T::Hash[::Tapioca::Runtime::Trackers::Mixin::Type, T::Hash[::Module, ::String]])
2987
+ end
2988
+ def find_or_initialize_mixin_lookup(mixin); end
2989
+
2990
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#68
2991
+ sig do
2992
+ params(
2993
+ constant: ::Module,
2994
+ mixin: ::Module,
2995
+ mixin_type: ::Tapioca::Runtime::Trackers::Mixin::Type,
2996
+ location: ::String
2997
+ ).void
2998
+ end
2999
+ def register_with_location(constant, mixin, mixin_type, location); end
3000
+ end
3001
+ end
3002
+
3003
+ class Tapioca::Runtime::Trackers::Mixin::Type < ::T::Enum
3004
+ enums do
3005
+ Prepend = new
3006
+ Include = new
3007
+ Extend = new
3008
+ end
3009
+ end
3010
+
3011
+ # source://tapioca//lib/tapioca/runtime/trackers/required_ancestor.rb#7
3012
+ module Tapioca::Runtime::Trackers::RequiredAncestor
3013
+ extend ::Tapioca::Runtime::Trackers::Tracker
3014
+
3015
+ class << self
3016
+ # source://tapioca//lib/tapioca/runtime/trackers/required_ancestor.rb#15
3017
+ sig { params(requiring: ::T::Helpers, block: T.proc.void).void }
3018
+ def register(requiring, block); end
3019
+
3020
+ # source://tapioca//lib/tapioca/runtime/trackers/required_ancestor.rb#23
3021
+ sig { params(mod: ::Module).returns(T::Array[T.proc.void]) }
3022
+ def required_ancestors_blocks_by(mod); end
3023
+
3024
+ # source://tapioca//lib/tapioca/runtime/trackers/required_ancestor.rb#28
3025
+ sig { params(mod: ::Module).returns(T::Array[T.untyped]) }
3026
+ def required_ancestors_by(mod); end
3027
+ end
3028
+ end
3029
+
3030
+ # @abstract Subclasses must implement the `abstract` methods below.
3031
+ module Tapioca::Runtime::Trackers::Tracker
3032
+ abstract!
3033
+
3034
+ # source://tapioca//lib/tapioca/runtime/trackers/tracker.rb#26
3035
+ sig { void }
3036
+ def disable!; end
3037
+
3038
+ # @return [Boolean]
3039
+ #
3040
+ # source://tapioca//lib/tapioca/runtime/trackers/tracker.rb#30
3041
+ def enabled?; end
3042
+
3043
+ # source://tapioca//lib/tapioca/runtime/trackers/tracker.rb#34
3044
+ def with_disabled_tracker(&block); end
3045
+
3046
+ class << self
3047
+ # source://tapioca//lib/tapioca/runtime/trackers/tracker.rb#17
3048
+ sig { params(base: T.all(::Module, ::Tapioca::Runtime::Trackers::Tracker)).void }
3049
+ def extended(base); end
3050
+ end
3051
+ end
3052
+
3053
+ # source://tapioca//lib/tapioca.rb#33
3054
+ Tapioca::SORBET_CONFIG_FILE = T.let(T.unsafe(nil), String)
3055
+
3056
+ # source://tapioca//lib/tapioca.rb#32
3057
+ Tapioca::SORBET_DIR = T.let(T.unsafe(nil), String)
3058
+
3059
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#5
3060
+ module Tapioca::SorbetHelper
3061
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#34
3062
+ sig { params(sorbet_args: ::String).returns(::Spoom::ExecResult) }
3063
+ def sorbet(*sorbet_args); end
3064
+
3065
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#39
3066
+ sig { returns(::String) }
3067
+ def sorbet_path; end
3068
+
3069
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#46
3070
+ sig { params(feature: ::Symbol, version: T.nilable(::Gem::Version)).returns(T::Boolean) }
3071
+ def sorbet_supports?(feature, version: T.unsafe(nil)); end
3072
+ end
3073
+
3074
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#24
3075
+ Tapioca::SorbetHelper::FEATURE_REQUIREMENTS = T.let(T.unsafe(nil), Hash)
3076
+
3077
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#13
3078
+ Tapioca::SorbetHelper::SORBET_BIN = T.let(T.unsafe(nil), Pathname)
3079
+
3080
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#18
3081
+ Tapioca::SorbetHelper::SORBET_EXE_PATH_ENV_VAR = T.let(T.unsafe(nil), String)
3082
+
3083
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#8
3084
+ Tapioca::SorbetHelper::SORBET_GEM_SPEC = T.let(T.unsafe(nil), Gem::Specification)
3085
+
3086
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#20
3087
+ Tapioca::SorbetHelper::SORBET_PAYLOAD_URL = T.let(T.unsafe(nil), String)
3088
+
3089
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#22
3090
+ Tapioca::SorbetHelper::SPOOM_CONTEXT = T.let(T.unsafe(nil), Spoom::Context)
3091
+
3092
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#5
3093
+ module Tapioca::Static; end
3094
+
3095
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#6
3096
+ class Tapioca::Static::RequiresCompiler
3097
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#10
3098
+ sig { params(sorbet_path: ::String).void }
3099
+ def initialize(sorbet_path); end
3100
+
3101
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#15
3102
+ sig { returns(::String) }
3103
+ def compile; end
3104
+
3105
+ private
3106
+
3107
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#29
3108
+ sig { params(config: ::Spoom::Sorbet::Config).returns(T::Array[::String]) }
3109
+ def collect_files(config); end
3110
+
3111
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#44
3112
+ sig { params(file_path: ::String).returns(T::Enumerable[::String]) }
3113
+ def collect_requires(file_path); end
3114
+
3115
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#51
3116
+ sig { params(config: ::Spoom::Sorbet::Config, file_path: ::Pathname).returns(T::Boolean) }
3117
+ def file_ignored_by_sorbet?(config, file_path); end
3118
+
3119
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#80
3120
+ sig { params(path: ::Pathname).returns(T::Array[::String]) }
3121
+ def path_parts(path); end
3122
+ end
3123
+
3124
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#6
3125
+ module Tapioca::Static::SymbolLoader
3126
+ extend ::Tapioca::SorbetHelper
3127
+ extend ::Tapioca::Runtime::AttachedClassOf
3128
+ extend ::Tapioca::Runtime::Reflection
3129
+
3130
+ class << self
3131
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#23
3132
+ sig { params(gem: ::Tapioca::Gemfile::GemSpec).returns(T::Set[::String]) }
3133
+ def engine_symbols(gem); end
3134
+
3135
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#40
3136
+ sig { params(gem: ::Tapioca::Gemfile::GemSpec).returns(T::Set[::String]) }
3137
+ def gem_symbols(gem); end
3138
+
3139
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#13
3140
+ sig { returns(T::Set[::String]) }
3141
+ def payload_symbols; end
3142
+
3143
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#45
3144
+ sig { params(paths: T::Array[::Pathname]).returns(T::Set[::String]) }
3145
+ def symbols_from_paths(paths); end
3146
+
3147
+ private
3148
+
3149
+ # @return [Array<T.class_of(Rails::Engine)>]
3150
+ #
3151
+ # source://sorbet-runtime/0.5.10990/lib/types/private/methods/_methods.rb#255
3152
+ def engines(*args, **_arg1, &blk); end
3153
+
3154
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#73
3155
+ sig { params(input: ::String, table_type: ::String).returns(::String) }
3156
+ def symbol_table_json_from(input, table_type: T.unsafe(nil)); end
3157
+ end
3158
+ end
3159
+
3160
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#6
3161
+ class Tapioca::Static::SymbolTableParser
3162
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#30
3163
+ sig { void }
3164
+ def initialize; end
3165
+
3166
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#65
3167
+ sig { params(name: ::String).returns(::String) }
3168
+ def fully_qualified_name(name); end
3169
+
3170
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#36
3171
+ sig { params(object: T::Hash[::String, T.untyped]).void }
3172
+ def parse_object(object); end
3173
+
3174
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#27
3175
+ sig { returns(T::Set[::String]) }
3176
+ def symbols; end
3177
+
3178
+ class << self
3179
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#15
3180
+ sig { params(json_string: ::String).returns(T::Set[::String]) }
3181
+ def parse_json(json_string); end
3182
+ end
3183
+ end
3184
+
3185
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#9
3186
+ Tapioca::Static::SymbolTableParser::SKIP_PARSE_KINDS = T.let(T.unsafe(nil), Array)
3187
+
3188
+ # source://tapioca//lib/tapioca.rb#35
3189
+ Tapioca::TAPIOCA_CONFIG_FILE = T.let(T.unsafe(nil), String)
3190
+
3191
+ # source://tapioca//lib/tapioca.rb#34
3192
+ Tapioca::TAPIOCA_DIR = T.let(T.unsafe(nil), String)
3193
+
3194
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#137
3195
+ class Tapioca::TypeVariable < ::T::Types::TypeVariable
3196
+ # @return [TypeVariable] a new instance of TypeVariable
3197
+ #
3198
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#138
3199
+ def initialize(name, variance); end
3200
+
3201
+ # Returns the value of attribute name.
3202
+ #
3203
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#143
3204
+ def name; end
3205
+ end
3206
+
3207
+ # This is subclassing from `Module` so that instances of this type will be modules.
3208
+ # The reason why we want that is because that means those instances will automatically
3209
+ # get bound to the constant names they are assigned to by Ruby. As a result, we don't
3210
+ # need to do any matching of constants to type variables to bind their names, Ruby will
3211
+ # do that automatically for us and we get the `name` method for free from `Module`.
3212
+ #
3213
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#151
3214
+ class Tapioca::TypeVariableModule < ::Module
3215
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#177
3216
+ sig do
3217
+ params(
3218
+ context: ::Module,
3219
+ type: ::Tapioca::TypeVariableModule::Type,
3220
+ variance: ::Symbol,
3221
+ fixed: T.untyped,
3222
+ lower: T.untyped,
3223
+ upper: T.untyped,
3224
+ bounds_proc: T.nilable(T.proc.returns(T::Hash[::Symbol, T.untyped]))
3225
+ ).void
3226
+ end
3227
+ def initialize(context, type, variance, fixed, lower, upper, bounds_proc); end
3228
+
3229
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#231
3230
+ sig { returns(::Tapioca::TypeVariable) }
3231
+ def coerce_to_type_variable; end
3232
+
3233
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#211
3234
+ sig { returns(T::Boolean) }
3235
+ def fixed?; end
3236
+
3237
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#192
3238
+ sig { returns(T.nilable(::String)) }
3239
+ def name; end
3240
+
3241
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#216
3242
+ sig { returns(::String) }
3243
+ def serialize; end
3244
+
3245
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#163
3246
+ sig { returns(::Tapioca::TypeVariableModule::Type) }
3247
+ def type; end
3248
+
3249
+ private
3250
+
3251
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#265
3252
+ sig { returns(T::Hash[::Symbol, T.untyped]) }
3253
+ def bounds; end
3254
+
3255
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#241
3256
+ sig do
3257
+ params(fixed: T.untyped, lower: T.untyped, upper: T.untyped).returns(T.proc.returns(T::Hash[::Symbol, T.untyped]))
3258
+ end
3259
+ def build_bounds_proc(fixed, lower, upper); end
3260
+
3261
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#255
3262
+ sig do
3263
+ type_parameters(:Result)
3264
+ .params(
3265
+ block: T.proc.returns(T.type_parameter(:Result))
3266
+ ).returns(T.type_parameter(:Result))
3267
+ end
3268
+ def with_bound_name_pre_3_0(&block); end
3269
+ end
3270
+
3271
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#154
3272
+ class Tapioca::TypeVariableModule::Type < ::T::Enum
3273
+ enums do
3274
+ Member = new
3275
+ Template = new
3276
+ HasAttachedClass = new
3277
+ end
3278
+ end
3279
+
3280
+ # source://tapioca//lib/tapioca/version.rb#5
3281
+ Tapioca::VERSION = T.let(T.unsafe(nil), String)
3282
+
3283
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#6
3284
+ module URI
3285
+ include ::URI::RFC2396_REGEXP
3286
+ end
3287
+
3288
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#7
3289
+ class URI::Source < ::URI::File
3290
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#58
3291
+ sig { params(v: T.nilable(::String)).returns(T::Boolean) }
3292
+ def check_host(v); end
3293
+
3294
+ # source://uri/0.12.1/uri/generic.rb#243
3295
+ def gem_name; end
3296
+
3297
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#25
3298
+ sig { returns(T.nilable(::String)) }
3299
+ def gem_version; end
3300
+
3301
+ # source://uri/0.12.1/uri/generic.rb#283
3302
+ def line_number; end
3303
+
3304
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#51
3305
+ sig { params(v: T.nilable(::String)).void }
3306
+ def set_path(v); end
3307
+
3308
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#70
3309
+ sig { returns(::String) }
3310
+ def to_s; end
3311
+
3312
+ class << self
3313
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#38
3314
+ sig do
3315
+ params(
3316
+ gem_name: ::String,
3317
+ gem_version: T.nilable(::String),
3318
+ path: ::String,
3319
+ line_number: T.nilable(::String)
3320
+ ).returns(::URI::Source)
3321
+ end
3322
+ def build(gem_name:, gem_version:, path:, line_number:); end
3323
+ end
3324
+ end
3325
+
3326
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#10
3327
+ URI::Source::COMPONENT = T.let(T.unsafe(nil), Array)
3328
+
3329
+ class URI::WSS < ::URI::WS; end