ruby-lsp-rake 0.1.1 → 0.1.2

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