mangrove 0.1.0

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