ruby_json_parser 0.1.0

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