openfeature-sdk-sorbet 0.2.1 → 0.3.1

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 (55) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -1
  3. data/.ruby-version +1 -1
  4. data/.tool-versions +1 -1
  5. data/CHANGELOG.md +21 -2
  6. data/Gemfile +1 -1
  7. data/Gemfile.lock +55 -49
  8. data/README.md +23 -6
  9. data/lib/open_feature/client.rb +90 -32
  10. data/lib/open_feature/client_metadata.rb +1 -0
  11. data/lib/open_feature/evaluation_context.rb +6 -8
  12. data/lib/open_feature/evaluation_details.rb +2 -2
  13. data/lib/open_feature/hook.rb +41 -1
  14. data/lib/open_feature/hook_context.rb +30 -0
  15. data/lib/open_feature/hooks.rb +22 -0
  16. data/lib/open_feature/multiple_source_provider.rb +28 -12
  17. data/lib/open_feature/no_op_provider.rb +2 -3
  18. data/lib/open_feature/provider.rb +16 -2
  19. data/lib/open_feature/provider_status.rb +13 -0
  20. data/lib/open_feature.rb +9 -2
  21. data/sorbet/rbi/gems/.gitattributes +1 -0
  22. data/sorbet/rbi/gems/{json@2.6.3.rbi → json@2.7.1.rbi} +80 -60
  23. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14237 -0
  24. data/sorbet/rbi/gems/{minitest@5.18.0.rbi → minitest@5.21.2.rbi} +299 -258
  25. data/sorbet/rbi/gems/{parallel@1.23.0.rbi → parallel@1.24.0.rbi} +8 -1
  26. data/sorbet/rbi/gems/{parser@3.2.2.1.rbi → parser@3.3.0.5.rbi} +438 -2219
  27. data/sorbet/rbi/gems/prism@0.19.0.rbi +25199 -0
  28. data/sorbet/rbi/gems/psych@5.1.2.rbi +1731 -0
  29. data/sorbet/rbi/gems/racc@1.7.3.rbi +157 -0
  30. data/sorbet/rbi/gems/{rake@13.0.6.rbi → rake@13.1.0.rbi} +68 -65
  31. data/sorbet/rbi/gems/{rbi@0.0.16.rbi → rbi@0.1.6.rbi} +628 -755
  32. data/sorbet/rbi/gems/{regexp_parser@2.8.0.rbi → regexp_parser@2.9.0.rbi} +203 -180
  33. data/sorbet/rbi/gems/{rexml@3.2.5.rbi → rexml@3.2.6.rbi} +116 -52
  34. data/sorbet/rbi/gems/{rubocop-ast@1.28.1.rbi → rubocop-ast@1.30.0.rbi} +178 -84
  35. data/sorbet/rbi/gems/{rubocop-minitest@0.31.0.rbi → rubocop-minitest@0.34.5.rbi} +280 -232
  36. data/sorbet/rbi/gems/{rubocop-performance@1.17.1.rbi → rubocop-performance@1.20.2.rbi} +397 -172
  37. data/sorbet/rbi/gems/{rubocop-sorbet@0.7.0.rbi → rubocop-sorbet@0.7.6.rbi} +728 -261
  38. data/sorbet/rbi/gems/{rubocop@1.51.0.rbi → rubocop@1.60.2.rbi} +4006 -1936
  39. data/sorbet/rbi/gems/spoom@1.2.1.rbi +17 -56
  40. data/sorbet/rbi/gems/stringio@3.1.0.rbi +8 -0
  41. data/sorbet/rbi/gems/{tapioca@0.11.6.rbi → tapioca@0.12.0.rbi} +783 -578
  42. data/sorbet/rbi/gems/{thor@1.2.2.rbi → thor@1.3.0.rbi} +775 -395
  43. data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +1 -1
  44. data/sorbet/rbi/gems/yard@0.9.34.rbi +2 -2
  45. data/sorbet/rbi/gems/{zeitwerk@2.6.8.rbi → zeitwerk@2.6.12.rbi} +78 -67
  46. data/sorbet/tapioca/config.yml +2 -2
  47. data/sorbet/tapioca/require.rb +3 -1
  48. metadata +36 -31
  49. data/openfeature-sdk-sorbet.gemspec +0 -35
  50. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +0 -1083
  51. data/sorbet/rbi/gems/irb@1.6.4.rbi +0 -342
  52. data/sorbet/rbi/gems/unparser@0.6.7.rbi +0 -4524
  53. /data/sorbet/rbi/gems/{io-console@0.6.0.rbi → io-console@0.7.2.rbi} +0 -0
  54. /data/sorbet/rbi/gems/{reline@0.3.3.rbi → reline@0.4.2.rbi} +0 -0
  55. /data/sorbet/rbi/gems/{unicode-display_width@2.4.2.rbi → unicode-display_width@2.5.0.rbi} +0 -0
@@ -1,11 +1,30 @@
1
- # typed: false
1
+ # typed: true
2
2
 
3
3
  # DO NOT EDIT MANUALLY
4
4
  # This is an autogenerated file for types exported from the `tapioca` gem.
5
5
  # Please instead update this file by running `bin/tapioca gem tapioca`.
6
6
 
7
7
  class Bundler::Dependency < ::Gem::Dependency
8
- include ::Tapioca::Gemfile::AutoRequireHook
8
+ include ::Tapioca::BundlerExt::AutoRequireHook
9
+ end
10
+
11
+ # source://tapioca//lib/tapioca/helpers/git_attributes.rb#4
12
+ class GitAttributes
13
+ class << self
14
+ # source://tapioca//lib/tapioca/helpers/git_attributes.rb#9
15
+ sig { params(path: ::Pathname).void }
16
+ def create_generated_attribute_file(path); end
17
+
18
+ # source://tapioca//lib/tapioca/helpers/git_attributes.rb#16
19
+ sig { params(path: ::Pathname).void }
20
+ def create_vendored_attribute_file(path); end
21
+
22
+ private
23
+
24
+ # source://tapioca//lib/tapioca/helpers/git_attributes.rb#25
25
+ sig { params(path: ::Pathname, content: ::String).void }
26
+ def create_gitattributes_file(path, content); end
27
+ end
9
28
  end
10
29
 
11
30
  # We need to do the alias-method-chain dance since Bootsnap does the same,
@@ -35,7 +54,7 @@ module RBI; end
35
54
 
36
55
  # source://tapioca//lib/tapioca/rbi_ext/model.rb#5
37
56
  class RBI::Tree < ::RBI::NodeWithComments
38
- # source://rbi/0.0.16/lib/rbi/model.rb#115
57
+ # source://rbi/0.1.6/lib/rbi/model.rb#119
39
58
  sig do
40
59
  params(
41
60
  loc: T.nilable(::RBI::Loc),
@@ -45,19 +64,19 @@ class RBI::Tree < ::RBI::NodeWithComments
45
64
  end
46
65
  def initialize(loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
47
66
 
48
- # source://rbi/0.0.16/lib/rbi/model.rb#122
67
+ # source://rbi/0.1.6/lib/rbi/model.rb#126
49
68
  sig { params(node: ::RBI::Node).void }
50
69
  def <<(node); end
51
70
 
52
- # source://rbi/0.0.16/lib/rbi/printer.rb#224
71
+ # source://rbi/0.1.6/lib/rbi/printer.rb#226
53
72
  sig { override.params(v: ::RBI::Printer).void }
54
73
  def accept_printer(v); end
55
74
 
56
- # source://rbi/0.0.16/lib/rbi/rewriters/add_sig_templates.rb#66
75
+ # source://rbi/0.1.6/lib/rbi/rewriters/add_sig_templates.rb#66
57
76
  sig { params(with_todo_comment: T::Boolean).void }
58
77
  def add_sig_templates!(with_todo_comment: T.unsafe(nil)); end
59
78
 
60
- # source://rbi/0.0.16/lib/rbi/rewriters/annotate.rb#48
79
+ # source://rbi/0.1.6/lib/rbi/rewriters/annotate.rb#49
61
80
  sig { params(annotation: ::String, annotate_scopes: T::Boolean, annotate_properties: T::Boolean).void }
62
81
  def annotate!(annotation, annotate_scopes: T.unsafe(nil), annotate_properties: T.unsafe(nil)); end
63
82
 
@@ -121,23 +140,23 @@ class RBI::Tree < ::RBI::NodeWithComments
121
140
  end
122
141
  def create_type_variable(name, type:, variance: T.unsafe(nil), fixed: T.unsafe(nil), upper: T.unsafe(nil), lower: T.unsafe(nil)); end
123
142
 
124
- # source://rbi/0.0.16/lib/rbi/rewriters/deannotate.rb#40
143
+ # source://rbi/0.1.6/lib/rbi/rewriters/deannotate.rb#41
125
144
  sig { params(annotation: ::String).void }
126
145
  def deannotate!(annotation); end
127
146
 
128
- # source://rbi/0.0.16/lib/rbi/model.rb#128
147
+ # source://rbi/0.1.6/lib/rbi/model.rb#132
129
148
  sig { returns(T::Boolean) }
130
149
  def empty?; end
131
150
 
132
- # source://rbi/0.0.16/lib/rbi/rewriters/group_nodes.rb#38
151
+ # source://rbi/0.1.6/lib/rbi/rewriters/group_nodes.rb#38
133
152
  sig { void }
134
153
  def group_nodes!; end
135
154
 
136
- # source://rbi/0.0.16/lib/rbi/index.rb#64
155
+ # source://rbi/0.1.6/lib/rbi/index.rb#68
137
156
  sig { returns(::RBI::Index) }
138
157
  def index; end
139
158
 
140
- # source://rbi/0.0.16/lib/rbi/rewriters/merge_trees.rb#318
159
+ # source://rbi/0.1.6/lib/rbi/rewriters/merge_trees.rb#324
141
160
  sig do
142
161
  params(
143
162
  other: ::RBI::Tree,
@@ -148,23 +167,23 @@ class RBI::Tree < ::RBI::NodeWithComments
148
167
  end
149
168
  def merge(other, left_name: T.unsafe(nil), right_name: T.unsafe(nil), keep: T.unsafe(nil)); end
150
169
 
151
- # source://rbi/0.0.16/lib/rbi/rewriters/nest_non_public_methods.rb#45
170
+ # source://rbi/0.1.6/lib/rbi/rewriters/nest_non_public_methods.rb#46
152
171
  sig { void }
153
172
  def nest_non_public_methods!; end
154
173
 
155
- # source://rbi/0.0.16/lib/rbi/rewriters/nest_singleton_methods.rb#35
174
+ # source://rbi/0.1.6/lib/rbi/rewriters/nest_singleton_methods.rb#36
156
175
  sig { void }
157
176
  def nest_singleton_methods!; end
158
177
 
159
- # source://rbi/0.0.16/lib/rbi/model.rb#106
178
+ # source://rbi/0.1.6/lib/rbi/model.rb#110
160
179
  sig { returns(T::Array[::RBI::Node]) }
161
180
  def nodes; end
162
181
 
163
- # source://rbi/0.0.16/lib/rbi/printer.rb#231
182
+ # source://rbi/0.1.6/lib/rbi/printer.rb#233
164
183
  sig { override.returns(T::Boolean) }
165
184
  def oneline?; end
166
185
 
167
- # source://rbi/0.0.16/lib/rbi/rewriters/sort_nodes.rb#107
186
+ # source://rbi/0.1.6/lib/rbi/rewriters/sort_nodes.rb#119
168
187
  sig { void }
169
188
  def sort_nodes!; end
170
189
 
@@ -185,21 +204,26 @@ class RBI::TypedParam < ::T::Struct
185
204
  const :type, ::String
186
205
 
187
206
  class << self
188
- # source://sorbet-runtime/0.5.10826/lib/types/struct.rb#13
207
+ # source://sorbet-runtime/0.5.11219/lib/types/struct.rb#13
189
208
  def inherited(s); end
190
209
  end
191
210
  end
192
211
 
193
212
  # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#5
194
213
  module T::Generic
214
+ include ::Kernel
215
+
195
216
  # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#13
196
217
  def [](*types); end
197
218
 
219
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#47
220
+ def has_attached_class!(variance = T.unsafe(nil), &bounds_proc); end
221
+
198
222
  # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#21
199
- def type_member(variance = T.unsafe(nil), fixed: T.unsafe(nil), lower: T.unsafe(nil), upper: T.unsafe(nil), &bounds_proc); end
223
+ def type_member(variance = T.unsafe(nil), &bounds_proc); end
200
224
 
201
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#37
202
- def type_template(variance = T.unsafe(nil), fixed: T.unsafe(nil), lower: T.unsafe(nil), upper: T.unsafe(nil), &bounds_proc); end
225
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#34
226
+ def type_template(variance = T.unsafe(nil), &bounds_proc); end
203
227
  end
204
228
 
205
229
  # This module intercepts calls to generic type instantiations and type variable definitions.
@@ -214,11 +238,14 @@ module T::Generic::TypeStoragePatch
214
238
  # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#13
215
239
  def [](*types); end
216
240
 
241
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#47
242
+ def has_attached_class!(variance = T.unsafe(nil), &bounds_proc); end
243
+
217
244
  # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#21
218
- def type_member(variance = T.unsafe(nil), fixed: T.unsafe(nil), lower: T.unsafe(nil), upper: T.unsafe(nil), &bounds_proc); end
245
+ def type_member(variance = T.unsafe(nil), &bounds_proc); end
219
246
 
220
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#37
221
- def type_template(variance = T.unsafe(nil), fixed: T.unsafe(nil), lower: T.unsafe(nil), upper: T.unsafe(nil), &bounds_proc); end
247
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#34
248
+ def type_template(variance = T.unsafe(nil), &bounds_proc); end
222
249
  end
223
250
 
224
251
  # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#28
@@ -302,18 +329,18 @@ end
302
329
 
303
330
  # source://tapioca//lib/tapioca/sorbet_ext/name_patch.rb#6
304
331
  class T::Types::Simple < ::T::Types::Base
305
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#64
332
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#70
306
333
  def name; end
307
334
  end
308
335
 
309
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#59
336
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#65
310
337
  module T::Types::Simple::GenericPatch
311
338
  # This method intercepts calls to the `name` method for simple types, so that
312
339
  # it can ask the name to the type if the type is generic, since, by this point,
313
340
  # we've created a clone of that type with the `name` method returning the
314
341
  # appropriate name for that specific concrete type.
315
342
  #
316
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#64
343
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#70
317
344
  def name; end
318
345
  end
319
346
 
@@ -329,17 +356,17 @@ end
329
356
  # source://tapioca//lib/tapioca/sorbet_ext/name_patch.rb#8
330
357
  T::Types::Simple::NamePatch::NAME_METHOD = T.let(T.unsafe(nil), UnboundMethod)
331
358
 
332
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#84
359
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#87
333
360
  module T::Utils::Private
334
361
  class << self
335
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#86
362
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#89
336
363
  def coerce_and_check_module_types(val, check_val, check_module_type); end
337
364
  end
338
365
  end
339
366
 
340
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#85
367
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#88
341
368
  module T::Utils::Private::PrivateCoercePatch
342
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#86
369
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#89
343
370
  def coerce_and_check_module_types(val, check_val, check_module_type); end
344
371
  end
345
372
 
@@ -360,6 +387,43 @@ end
360
387
  # source://tapioca//lib/tapioca.rb#37
361
388
  Tapioca::BINARY_FILE = T.let(T.unsafe(nil), String)
362
389
 
390
+ # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#5
391
+ module Tapioca::BundlerExt; end
392
+
393
+ # This is a module that gets prepended to `Bundler::Dependency` and
394
+ # makes sure even gems marked as `require: false` are required during
395
+ # `Bundler.require`.
396
+ #
397
+ # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#9
398
+ module Tapioca::BundlerExt::AutoRequireHook
399
+ requires_ancestor { Bundler::Dependency }
400
+
401
+ # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#46
402
+ sig { returns(T.untyped) }
403
+ def autorequire; end
404
+
405
+ class << self
406
+ # @return [Boolean]
407
+ #
408
+ # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#26
409
+ def enabled?; end
410
+
411
+ # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#22
412
+ sig { params(name: T.untyped).returns(T::Boolean) }
413
+ def excluded?(name); end
414
+
415
+ # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#36
416
+ sig do
417
+ type_parameters(:Result)
418
+ .params(
419
+ exclude: T::Array[::String],
420
+ blk: T.proc.returns(T.type_parameter(:Result))
421
+ ).returns(T.type_parameter(:Result))
422
+ end
423
+ def override_require_false(exclude:, &blk); end
424
+ end
425
+ end
426
+
363
427
  # source://tapioca//lib/tapioca.rb#60
364
428
  Tapioca::CENTRAL_REPO_ANNOTATIONS_DIR = T.let(T.unsafe(nil), String)
365
429
 
@@ -375,40 +439,42 @@ class Tapioca::Cli < ::Thor
375
439
  include ::Tapioca::ConfigHelper
376
440
  include ::Tapioca::EnvHelper
377
441
 
378
- # source://tapioca//lib/tapioca/cli.rb#336
442
+ # source://tapioca//lib/tapioca/cli.rb#355
379
443
  def __print_version; end
380
444
 
381
- # source://tapioca//lib/tapioca/cli.rb#316
445
+ # source://tapioca//lib/tapioca/cli.rb#337
382
446
  def annotations; end
383
447
 
384
- # source://tapioca//lib/tapioca/cli.rb#286
448
+ # source://tapioca//lib/tapioca/cli.rb#309
385
449
  def check_shims; end
386
450
 
387
- # source://tapioca//lib/tapioca/cli.rb#41
451
+ # source://tapioca//lib/tapioca/cli.rb#46
388
452
  def configure; end
389
453
 
390
- # source://tapioca//lib/tapioca/cli.rb#133
454
+ # source://tapioca//lib/tapioca/cli.rb#138
391
455
  def dsl(*constant_or_paths); end
392
456
 
393
- # source://tapioca//lib/tapioca/cli.rb#238
457
+ # @raise [MalformattedArgumentError]
458
+ #
459
+ # source://tapioca//lib/tapioca/cli.rb#253
394
460
  def gem(*gems); end
395
461
 
396
462
  # source://tapioca//lib/tapioca/cli.rb#27
397
463
  def init; end
398
464
 
399
- # source://tapioca//lib/tapioca/cli.rb#52
465
+ # source://tapioca//lib/tapioca/cli.rb#57
400
466
  def require; end
401
467
 
402
- # source://tapioca//lib/tapioca/cli.rb#71
468
+ # source://tapioca//lib/tapioca/cli.rb#74
403
469
  def todo; end
404
470
 
405
471
  private
406
472
 
407
- # source://tapioca//lib/tapioca/cli.rb#350
473
+ # source://tapioca//lib/tapioca/cli.rb#369
408
474
  def print_init_next_steps; end
409
475
 
410
476
  class << self
411
- # source://tapioca//lib/tapioca/cli.rb#342
477
+ # source://tapioca//lib/tapioca/cli.rb#361
412
478
  def exit_on_failure?; end
413
479
  end
414
480
  end
@@ -436,6 +502,239 @@ end
436
502
  # source://tapioca//lib/tapioca/commands.rb#5
437
503
  module Tapioca::Commands; end
438
504
 
505
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
506
+ #
507
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#6
508
+ class Tapioca::Commands::AbstractDsl < ::Tapioca::Commands::CommandWithoutTracker
509
+ include ::Tapioca::SorbetHelper
510
+ include ::Tapioca::RBIFilesHelper
511
+
512
+ abstract!
513
+
514
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#31
515
+ sig do
516
+ params(
517
+ requested_constants: T::Array[::String],
518
+ requested_paths: T::Array[::Pathname],
519
+ outpath: ::Pathname,
520
+ only: T::Array[::String],
521
+ exclude: T::Array[::String],
522
+ file_header: T::Boolean,
523
+ tapioca_path: ::String,
524
+ quiet: T::Boolean,
525
+ verbose: T::Boolean,
526
+ number_of_workers: T.nilable(::Integer),
527
+ auto_strictness: T::Boolean,
528
+ gem_dir: ::String,
529
+ rbi_formatter: ::Tapioca::RBIFormatter,
530
+ app_root: ::String,
531
+ halt_upon_load_error: T::Boolean
532
+ ).void
533
+ end
534
+ def initialize(requested_constants:, requested_paths:, outpath:, only:, exclude:, file_header:, tapioca_path:, 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
535
+
536
+ private
537
+
538
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#94
539
+ sig { returns(T::Array[::String]) }
540
+ def all_requested_constants; end
541
+
542
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#284
543
+ sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) }
544
+ def build_error_for_files(cause, files); end
545
+
546
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#208
547
+ sig do
548
+ params(
549
+ constant_name: ::String,
550
+ rbi: ::RBI::File,
551
+ outpath: ::Pathname,
552
+ quiet: T::Boolean
553
+ ).returns(T.nilable(::Pathname))
554
+ end
555
+ def compile_dsl_rbi(constant_name, rbi, outpath: T.unsafe(nil), quiet: T.unsafe(nil)); end
556
+
557
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#146
558
+ sig { params(constant_names: T::Array[::String], ignore_missing: T::Boolean).returns(T::Array[::Module]) }
559
+ def constantize(constant_names, ignore_missing: T.unsafe(nil)); end
560
+
561
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#169
562
+ sig { params(compiler_names: T::Array[::String]).returns(T::Array[T.class_of(Tapioca::Dsl::Compiler)]) }
563
+ def constantize_compilers(compiler_names); end
564
+
565
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#344
566
+ sig { returns(T::Array[::String]) }
567
+ def constants_from_requested_paths; end
568
+
569
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#117
570
+ sig { returns(::Tapioca::Dsl::Pipeline) }
571
+ def create_pipeline; end
572
+
573
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#247
574
+ sig { params(constant_name: ::String).returns(::Pathname) }
575
+ def dsl_rbi_filename(constant_name); end
576
+
577
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#132
578
+ sig { params(requested_constants: T::Array[::String], path: ::Pathname).returns(T::Set[::Pathname]) }
579
+ def existing_rbi_filenames(requested_constants, path: T.unsafe(nil)); end
580
+
581
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#339
582
+ sig { params(constant: ::String).returns(::String) }
583
+ def generate_command_for(constant); end
584
+
585
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#70
586
+ sig { params(outpath: ::Pathname, quiet: T::Boolean).returns(T::Set[::Pathname]) }
587
+ def generate_dsl_rbi_files(outpath, quiet:); end
588
+
589
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#107
590
+ sig { void }
591
+ def load_application; end
592
+
593
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#226
594
+ sig { params(dir: ::Pathname).void }
595
+ def perform_dsl_verification(dir); end
596
+
597
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#102
598
+ sig { returns(::Tapioca::Dsl::Pipeline) }
599
+ def pipeline; end
600
+
601
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#235
602
+ sig { params(files: T::Set[::Pathname]).void }
603
+ def purge_stale_dsl_rbi_files(files); end
604
+
605
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#334
606
+ sig { params(constant: ::String).returns(::String) }
607
+ def rbi_filename_for(constant); end
608
+
609
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#315
610
+ sig { params(path: ::Pathname).returns(T::Array[::Pathname]) }
611
+ def rbi_files_in(path); end
612
+
613
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#293
614
+ sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void }
615
+ def report_diff_and_exit_if_out_of_date(diff, command); end
616
+
617
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#188
618
+ sig { params(name: ::String).returns(T.nilable(T.class_of(Tapioca::Dsl::Compiler))) }
619
+ def resolve(name); end
620
+
621
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#322
622
+ sig { params(class_name: ::String).returns(::String) }
623
+ def underscore(class_name); end
624
+
625
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#252
626
+ sig { params(tmp_dir: ::Pathname).returns(T::Hash[::String, ::Symbol]) }
627
+ def verify_dsl_rbi(tmp_dir:); end
628
+ end
629
+
630
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
631
+ #
632
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#6
633
+ class Tapioca::Commands::AbstractGem < ::Tapioca::Commands::Command
634
+ include ::Tapioca::SorbetHelper
635
+ include ::Tapioca::RBIFilesHelper
636
+
637
+ abstract!
638
+
639
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#32
640
+ sig do
641
+ params(
642
+ gem_names: T::Array[::String],
643
+ exclude: T::Array[::String],
644
+ include_dependencies: T::Boolean,
645
+ prerequire: T.nilable(::String),
646
+ postrequire: ::String,
647
+ typed_overrides: T::Hash[::String, ::String],
648
+ outpath: ::Pathname,
649
+ file_header: T::Boolean,
650
+ include_doc: T::Boolean,
651
+ include_loc: T::Boolean,
652
+ include_exported_rbis: T::Boolean,
653
+ number_of_workers: T.nilable(::Integer),
654
+ auto_strictness: T::Boolean,
655
+ dsl_dir: ::String,
656
+ rbi_formatter: ::Tapioca::RBIFormatter,
657
+ halt_upon_load_error: T::Boolean
658
+ ).void
659
+ end
660
+ def initialize(gem_names:, exclude:, include_dependencies:, prerequire:, postrequire:, typed_overrides:, outpath:, file_header:, include_doc:, include_loc:, include_exported_rbis:, number_of_workers: T.unsafe(nil), auto_strictness: T.unsafe(nil), dsl_dir: T.unsafe(nil), rbi_formatter: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end
661
+
662
+ private
663
+
664
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#221
665
+ sig { returns(T::Array[::String]) }
666
+ def added_rbis; end
667
+
668
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#282
669
+ sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) }
670
+ def build_error_for_files(cause, files); end
671
+
672
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#110
673
+ sig { params(gem: ::Tapioca::Gemfile::GemSpec).void }
674
+ def compile_gem_rbi(gem); end
675
+
676
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#216
677
+ sig { params(gem_name: ::String).returns(::Pathname) }
678
+ def existing_rbi(gem_name); end
679
+
680
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#264
681
+ sig { returns(T::Hash[::String, ::String]) }
682
+ def existing_rbis; end
683
+
684
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#228
685
+ sig { params(gem_name: ::String).returns(::Pathname) }
686
+ def expected_rbi(gem_name); end
687
+
688
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#270
689
+ sig { returns(T::Hash[::String, ::String]) }
690
+ def expected_rbis; end
691
+
692
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#98
693
+ sig do
694
+ params(
695
+ gem: ::Tapioca::Gemfile::GemSpec,
696
+ dependencies: T::Array[::Tapioca::Gemfile::GemSpec]
697
+ ).returns(T::Array[::Tapioca::Gemfile::GemSpec])
698
+ end
699
+ def gem_dependencies(gem, dependencies = T.unsafe(nil)); end
700
+
701
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#233
702
+ sig { params(gem_name: ::String).returns(T::Boolean) }
703
+ def gem_rbi_exists?(gem_name); end
704
+
705
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#277
706
+ sig { params(gem_name: ::String, version: ::String).returns(::Pathname) }
707
+ def gem_rbi_filename(gem_name, version); end
708
+
709
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#77
710
+ sig { params(gem_names: T::Array[::String]).returns(T::Array[::Tapioca::Gemfile::GemSpec]) }
711
+ def gems_to_generate(gem_names); end
712
+
713
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#287
714
+ sig { params(gem: ::Tapioca::Gemfile::GemSpec, file: ::RBI::File).void }
715
+ def merge_with_exported_rbi(gem, file); end
716
+
717
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#258
718
+ sig { params(old_filename: ::Pathname, new_filename: ::Pathname).void }
719
+ def move(old_filename, new_filename); end
720
+
721
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#168
722
+ sig { void }
723
+ def perform_additions; end
724
+
725
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#141
726
+ sig { void }
727
+ def perform_removals; end
728
+
729
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#211
730
+ sig { returns(T::Array[::String]) }
731
+ def removed_rbis; end
732
+
733
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#238
734
+ sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void }
735
+ def report_diff_and_exit_if_out_of_date(diff, command); end
736
+ end
737
+
439
738
  # source://tapioca//lib/tapioca/commands/annotations.rb#6
440
739
  class Tapioca::Commands::Annotations < ::Tapioca::Commands::CommandWithoutTracker
441
740
  # source://tapioca//lib/tapioca/commands/annotations.rb#18
@@ -450,69 +749,69 @@ class Tapioca::Commands::Annotations < ::Tapioca::Commands::CommandWithoutTracke
450
749
  end
451
750
  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
452
751
 
453
- # source://tapioca//lib/tapioca/commands/annotations.rb#36
454
- sig { override.void }
455
- def execute; end
456
-
457
752
  private
458
753
 
459
- # source://tapioca//lib/tapioca/commands/annotations.rb#191
754
+ # source://tapioca//lib/tapioca/commands/annotations.rb#193
460
755
  sig { params(name: ::String, content: ::String).returns(::String) }
461
756
  def add_header(name, content); end
462
757
 
463
- # source://tapioca//lib/tapioca/commands/annotations.rb#211
758
+ # source://tapioca//lib/tapioca/commands/annotations.rb#213
464
759
  sig { params(name: ::String, content: ::String).returns(::String) }
465
760
  def apply_typed_override(name, content); end
466
761
 
467
- # source://tapioca//lib/tapioca/commands/annotations.rb#132
762
+ # source://tapioca//lib/tapioca/commands/annotations.rb#39
763
+ sig { override.void }
764
+ def execute; end
765
+
766
+ # source://tapioca//lib/tapioca/commands/annotations.rb#136
468
767
  sig { params(repo_uris: T::Array[::String], gem_name: ::String).void }
469
768
  def fetch_annotation(repo_uris, gem_name); end
470
769
 
471
- # source://tapioca//lib/tapioca/commands/annotations.rb#109
770
+ # source://tapioca//lib/tapioca/commands/annotations.rb#113
472
771
  sig { params(gem_names: T::Array[::String]).returns(T::Array[::String]) }
473
772
  def fetch_annotations(gem_names); end
474
773
 
475
- # source://tapioca//lib/tapioca/commands/annotations.rb#150
774
+ # source://tapioca//lib/tapioca/commands/annotations.rb#152
476
775
  sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) }
477
776
  def fetch_file(repo_uri, path); end
478
777
 
479
- # source://tapioca//lib/tapioca/commands/annotations.rb#167
778
+ # source://tapioca//lib/tapioca/commands/annotations.rb#169
480
779
  sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) }
481
780
  def fetch_http_file(repo_uri, path); end
482
781
 
483
- # source://tapioca//lib/tapioca/commands/annotations.rb#98
782
+ # source://tapioca//lib/tapioca/commands/annotations.rb#102
484
783
  sig { params(repo_uri: ::String, repo_number: T.nilable(::Integer)).returns(T.nilable(Tapioca::RepoIndex)) }
485
784
  def fetch_index(repo_uri, repo_number:); end
486
785
 
487
- # source://tapioca//lib/tapioca/commands/annotations.rb#77
786
+ # source://tapioca//lib/tapioca/commands/annotations.rb#81
488
787
  sig { returns(T::Hash[::String, Tapioca::RepoIndex]) }
489
788
  def fetch_indexes; end
490
789
 
491
- # source://tapioca//lib/tapioca/commands/annotations.rb#159
790
+ # source://tapioca//lib/tapioca/commands/annotations.rb#161
492
791
  sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) }
493
792
  def fetch_local_file(repo_uri, path); end
494
793
 
495
- # source://tapioca//lib/tapioca/commands/annotations.rb#46
794
+ # source://tapioca//lib/tapioca/commands/annotations.rb#50
496
795
  sig { returns(T::Array[::String]) }
497
796
  def list_gemfile_gems; end
498
797
 
499
- # source://tapioca//lib/tapioca/commands/annotations.rb#223
798
+ # source://tapioca//lib/tapioca/commands/annotations.rb#225
500
799
  sig { params(gem_name: ::String, contents: T::Array[::String]).returns(T.nilable(::String)) }
501
800
  def merge_files(gem_name, contents); end
502
801
 
503
- # source://tapioca//lib/tapioca/commands/annotations.rb#56
802
+ # source://tapioca//lib/tapioca/commands/annotations.rb#60
504
803
  sig { params(project_gems: T::Array[::String]).void }
505
804
  def remove_expired_annotations(project_gems); end
506
805
 
507
- # source://tapioca//lib/tapioca/commands/annotations.rb#250
806
+ # source://tapioca//lib/tapioca/commands/annotations.rb#252
508
807
  sig { returns(T::Hash[::String, T.nilable(::String)]) }
509
808
  def repo_tokens; end
510
809
 
511
- # source://tapioca//lib/tapioca/commands/annotations.rb#278
810
+ # source://tapioca//lib/tapioca/commands/annotations.rb#280
512
811
  sig { params(path: ::String, repo_uri: ::String, message: ::String).void }
513
812
  def say_http_error(path, repo_uri, message:); end
514
813
 
515
- # source://tapioca//lib/tapioca/commands/annotations.rb#262
814
+ # source://tapioca//lib/tapioca/commands/annotations.rb#264
516
815
  sig { params(repo_uri: ::String).returns(T.nilable(::String)) }
517
816
  def token_for(repo_uri); end
518
817
  end
@@ -536,7 +835,9 @@ class Tapioca::Commands::CheckShims < ::Tapioca::Commands::CommandWithoutTracker
536
835
  end
537
836
  def initialize(gem_rbi_dir:, dsl_rbi_dir:, annotations_rbi_dir:, shim_rbi_dir:, todo_rbi_file:, payload:, number_of_workers:); end
538
837
 
539
- # source://tapioca//lib/tapioca/commands/check_shims.rb#42
838
+ private
839
+
840
+ # source://tapioca//lib/tapioca/commands/check_shims.rb#44
540
841
  sig { override.void }
541
842
  def execute; end
542
843
  end
@@ -558,19 +859,17 @@ class Tapioca::Commands::Command
558
859
  sig { void }
559
860
  def initialize; end
560
861
 
561
- # @abstract
562
- #
563
- # source://tapioca//lib/tapioca/commands/command.rb#25
564
- sig { abstract.void }
565
- def execute; end
566
-
567
- # source://thor/1.2.2/lib/thor/base.rb#139
862
+ # source://thor/1.3.0/lib/thor/base.rb#155
568
863
  sig { returns(::Thor::Actions) }
569
864
  def file_writer; end
570
865
 
866
+ # source://tapioca//lib/tapioca/commands/command.rb#25
867
+ sig(:final) { void }
868
+ def run; end
869
+
571
870
  private
572
871
 
573
- # source://tapioca//lib/tapioca/commands/command.rb#46
872
+ # source://tapioca//lib/tapioca/commands/command.rb#53
574
873
  sig do
575
874
  params(
576
875
  path: T.any(::Pathname, ::String),
@@ -582,295 +881,131 @@ class Tapioca::Commands::Command
582
881
  end
583
882
  def create_file(path, content, force: T.unsafe(nil), skip: T.unsafe(nil), verbose: T.unsafe(nil)); end
584
883
 
585
- # source://tapioca//lib/tapioca/commands/command.rb#30
884
+ # source://tapioca//lib/tapioca/commands/command.rb#37
586
885
  sig { params(command: ::Symbol, args: ::String).returns(::String) }
587
886
  def default_command(command, *args); end
588
887
 
589
- # source://tapioca//lib/tapioca/commands/command.rb#56
590
- sig { params(path: T.any(::Pathname, ::String), verbose: T::Boolean).void }
591
- def remove_file(path, verbose: T.unsafe(nil)); end
592
-
593
- class << self
594
- # source://sorbet-runtime/0.5.10826/lib/types/private/abstract/declare.rb#37
595
- def new(*args, **_arg1, &blk); end
596
- end
597
- end
598
-
599
- # source://tapioca//lib/tapioca/commands/command.rb#10
600
- class Tapioca::Commands::Command::FileWriter < ::Thor
601
- include ::Thor::Actions
602
- extend ::Thor::Actions::ClassMethods
603
- end
604
-
605
- # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
606
- #
607
- # source://tapioca//lib/tapioca/commands/command_without_tracker.rb#6
608
- class Tapioca::Commands::CommandWithoutTracker < ::Tapioca::Commands::Command
609
- abstract!
610
-
611
- # source://tapioca//lib/tapioca/commands/command_without_tracker.rb#12
612
- sig { void }
613
- def initialize; end
614
-
615
- class << self
616
- # source://sorbet-runtime/0.5.10826/lib/types/private/abstract/declare.rb#37
617
- def new(*args, **_arg1, &blk); end
618
- end
619
- end
620
-
621
- # source://tapioca//lib/tapioca/commands/configure.rb#6
622
- class Tapioca::Commands::Configure < ::Tapioca::Commands::CommandWithoutTracker
623
- # source://tapioca//lib/tapioca/commands/configure.rb#14
624
- sig { params(sorbet_config: ::String, tapioca_config: ::String, default_postrequire: ::String).void }
625
- def initialize(sorbet_config:, tapioca_config:, default_postrequire:); end
626
-
627
- # source://tapioca//lib/tapioca/commands/configure.rb#30
628
- sig { override.void }
629
- def execute; end
630
-
631
- private
632
-
633
- # source://tapioca//lib/tapioca/commands/configure.rb#79
634
- sig { void }
635
- def create_binstub; end
636
-
637
- # source://tapioca//lib/tapioca/commands/configure.rb#69
638
- sig { void }
639
- def create_post_require; end
640
-
641
- # source://tapioca//lib/tapioca/commands/configure.rb#40
642
- sig { void }
643
- def create_sorbet_config; end
644
-
645
- # source://tapioca//lib/tapioca/commands/configure.rb#50
646
- sig { void }
647
- def create_tapioca_config; end
648
-
649
- # source://tapioca//lib/tapioca/commands/configure.rb#92
650
- sig { returns(::Bundler::Installer) }
651
- def installer; end
652
-
653
- # source://tapioca//lib/tapioca/commands/configure.rb#97
654
- sig { returns(T.any(::Bundler::StubSpecification, ::Gem::Specification)) }
655
- def spec; end
656
- end
657
-
658
- # source://tapioca//lib/tapioca/commands/dsl.rb#6
659
- class Tapioca::Commands::Dsl < ::Tapioca::Commands::CommandWithoutTracker
660
- include ::Tapioca::SorbetHelper
661
- include ::Tapioca::RBIFilesHelper
662
-
663
- # source://tapioca//lib/tapioca/commands/dsl.rb#29
664
- sig do
665
- params(
666
- requested_constants: T::Array[::String],
667
- requested_paths: T::Array[::Pathname],
668
- outpath: ::Pathname,
669
- only: T::Array[::String],
670
- exclude: T::Array[::String],
671
- file_header: T::Boolean,
672
- tapioca_path: ::String,
673
- should_verify: T::Boolean,
674
- quiet: T::Boolean,
675
- verbose: T::Boolean,
676
- number_of_workers: T.nilable(::Integer),
677
- auto_strictness: T::Boolean,
678
- gem_dir: ::String,
679
- rbi_formatter: ::Tapioca::RBIFormatter,
680
- app_root: ::String
681
- ).void
682
- end
683
- 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)); end
684
-
685
- # source://tapioca//lib/tapioca/commands/dsl.rb#93
686
- sig { override.void }
888
+ # @abstract
889
+ #
890
+ # source://tapioca//lib/tapioca/commands/command.rb#34
891
+ sig { abstract.void }
687
892
  def execute; end
688
893
 
689
- # source://tapioca//lib/tapioca/commands/dsl.rb#66
690
- sig { void }
691
- def list_compilers; end
692
-
693
- private
694
-
695
- # source://tapioca//lib/tapioca/commands/dsl.rb#325
696
- sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) }
697
- def build_error_for_files(cause, files); end
698
-
699
- # source://tapioca//lib/tapioca/commands/dsl.rb#249
700
- sig do
701
- params(
702
- constant_name: ::String,
703
- rbi: ::RBI::File,
704
- outpath: ::Pathname,
705
- quiet: T::Boolean
706
- ).returns(T.nilable(::Pathname))
707
- end
708
- def compile_dsl_rbi(constant_name, rbi, outpath: T.unsafe(nil), quiet: T.unsafe(nil)); end
709
-
710
- # source://tapioca//lib/tapioca/commands/dsl.rb#187
711
- sig { params(constant_names: T::Array[::String], ignore_missing: T::Boolean).returns(T::Array[::Module]) }
712
- def constantize(constant_names, ignore_missing: T.unsafe(nil)); end
713
-
714
- # source://tapioca//lib/tapioca/commands/dsl.rb#210
715
- sig { params(compiler_names: T::Array[::String]).returns(T::Array[T.class_of(Tapioca::Dsl::Compiler)]) }
716
- def constantize_compilers(compiler_names); end
717
-
718
- # source://tapioca//lib/tapioca/commands/dsl.rb#385
719
- sig { returns(T::Array[::String]) }
720
- def constants_from_requested_paths; end
721
-
722
- # source://tapioca//lib/tapioca/commands/dsl.rb#158
723
- sig { returns(::Tapioca::Dsl::Pipeline) }
724
- def create_pipeline; end
725
-
726
- # source://tapioca//lib/tapioca/commands/dsl.rb#288
727
- sig { params(constant_name: ::String).returns(::Pathname) }
728
- def dsl_rbi_filename(constant_name); end
729
-
730
- # source://tapioca//lib/tapioca/commands/dsl.rb#173
731
- sig { params(requested_constants: T::Array[::String], path: ::Pathname).returns(T::Set[::Pathname]) }
732
- def existing_rbi_filenames(requested_constants, path: T.unsafe(nil)); end
733
-
734
- # source://tapioca//lib/tapioca/commands/dsl.rb#380
735
- sig { params(constant: ::String).returns(::String) }
736
- def generate_command_for(constant); end
737
-
738
- # source://tapioca//lib/tapioca/commands/dsl.rb#267
739
- sig { params(dir: ::Pathname).void }
740
- def perform_dsl_verification(dir); end
894
+ # source://tapioca//lib/tapioca/commands/command.rb#63
895
+ sig { params(path: T.any(::Pathname, ::String), verbose: T::Boolean).void }
896
+ def remove_file(path, verbose: T.unsafe(nil)); end
897
+ end
741
898
 
742
- # source://tapioca//lib/tapioca/commands/dsl.rb#276
743
- sig { params(files: T::Set[::Pathname]).void }
744
- def purge_stale_dsl_rbi_files(files); end
899
+ # source://tapioca//lib/tapioca/commands/command.rb#10
900
+ class Tapioca::Commands::Command::FileWriter < ::Thor
901
+ include ::Thor::Actions
902
+ extend ::Thor::Actions::ClassMethods
903
+ end
745
904
 
746
- # source://tapioca//lib/tapioca/commands/dsl.rb#375
747
- sig { params(constant: ::String).returns(::String) }
748
- def rbi_filename_for(constant); end
905
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
906
+ #
907
+ # source://tapioca//lib/tapioca/commands/command_without_tracker.rb#6
908
+ class Tapioca::Commands::CommandWithoutTracker < ::Tapioca::Commands::Command
909
+ abstract!
749
910
 
750
- # source://tapioca//lib/tapioca/commands/dsl.rb#356
751
- sig { params(path: ::Pathname).returns(T::Array[::Pathname]) }
752
- def rbi_files_in(path); end
911
+ # source://tapioca//lib/tapioca/commands/command_without_tracker.rb#12
912
+ sig { void }
913
+ def initialize; end
914
+ end
753
915
 
754
- # source://tapioca//lib/tapioca/commands/dsl.rb#334
755
- sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void }
756
- def report_diff_and_exit_if_out_of_date(diff, command); end
916
+ # source://tapioca//lib/tapioca/commands/configure.rb#6
917
+ class Tapioca::Commands::Configure < ::Tapioca::Commands::CommandWithoutTracker
918
+ # source://tapioca//lib/tapioca/commands/configure.rb#14
919
+ sig { params(sorbet_config: ::String, tapioca_config: ::String, default_postrequire: ::String).void }
920
+ def initialize(sorbet_config:, tapioca_config:, default_postrequire:); end
757
921
 
758
- # source://tapioca//lib/tapioca/commands/dsl.rb#229
759
- sig { params(name: ::String).returns(T.nilable(T.class_of(Tapioca::Dsl::Compiler))) }
760
- def resolve(name); end
922
+ private
761
923
 
762
- # source://tapioca//lib/tapioca/commands/dsl.rb#363
763
- sig { params(class_name: ::String).returns(::String) }
764
- def underscore(class_name); end
924
+ # source://tapioca//lib/tapioca/commands/configure.rb#79
925
+ sig { void }
926
+ def create_binstub; end
765
927
 
766
- # source://tapioca//lib/tapioca/commands/dsl.rb#293
767
- sig { params(tmp_dir: ::Pathname).returns(T::Hash[::String, ::Symbol]) }
768
- def verify_dsl_rbi(tmp_dir:); end
769
- end
928
+ # source://tapioca//lib/tapioca/commands/configure.rb#69
929
+ sig { void }
930
+ def create_post_require; end
770
931
 
771
- # source://tapioca//lib/tapioca/commands/gem.rb#6
772
- class Tapioca::Commands::Gem < ::Tapioca::Commands::Command
773
- include ::Tapioca::SorbetHelper
774
- include ::Tapioca::RBIFilesHelper
932
+ # source://tapioca//lib/tapioca/commands/configure.rb#40
933
+ sig { void }
934
+ def create_sorbet_config; end
775
935
 
776
- # source://tapioca//lib/tapioca/commands/gem.rb#28
777
- sig do
778
- params(
779
- gem_names: T::Array[::String],
780
- exclude: T::Array[::String],
781
- prerequire: T.nilable(::String),
782
- postrequire: ::String,
783
- typed_overrides: T::Hash[::String, ::String],
784
- outpath: ::Pathname,
785
- file_header: T::Boolean,
786
- include_doc: T::Boolean,
787
- include_loc: T::Boolean,
788
- include_exported_rbis: T::Boolean,
789
- number_of_workers: T.nilable(::Integer),
790
- auto_strictness: T::Boolean,
791
- dsl_dir: ::String,
792
- rbi_formatter: ::Tapioca::RBIFormatter
793
- ).void
794
- end
795
- 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)); end
936
+ # source://tapioca//lib/tapioca/commands/configure.rb#50
937
+ sig { void }
938
+ def create_tapioca_config; end
796
939
 
797
- # source://tapioca//lib/tapioca/commands/gem.rb#67
940
+ # source://tapioca//lib/tapioca/commands/configure.rb#32
798
941
  sig { override.void }
799
942
  def execute; end
800
943
 
801
- # source://tapioca//lib/tapioca/commands/gem.rb#105
802
- sig { params(should_verify: T::Boolean, exclude: T::Array[::String]).void }
803
- def sync(should_verify: T.unsafe(nil), exclude: T.unsafe(nil)); end
804
-
805
- private
944
+ # source://tapioca//lib/tapioca/commands/configure.rb#92
945
+ sig { returns(::Bundler::Installer) }
946
+ def installer; end
806
947
 
807
- # source://tapioca//lib/tapioca/commands/gem.rb#283
808
- sig { returns(T::Array[::String]) }
809
- def added_rbis; end
948
+ # source://tapioca//lib/tapioca/commands/configure.rb#97
949
+ sig { returns(T.any(::Bundler::StubSpecification, ::Gem::Specification)) }
950
+ def spec; end
951
+ end
810
952
 
811
- # source://tapioca//lib/tapioca/commands/gem.rb#344
812
- sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) }
813
- def build_error_for_files(cause, files); end
953
+ # source://tapioca//lib/tapioca/commands/dsl_compiler_list.rb#6
954
+ class Tapioca::Commands::DslCompilerList < ::Tapioca::Commands::AbstractDsl
955
+ private
814
956
 
815
- # source://tapioca//lib/tapioca/commands/gem.rb#154
816
- sig { params(gem: ::Tapioca::Gemfile::GemSpec).void }
817
- def compile_gem_rbi(gem); end
957
+ # source://tapioca//lib/tapioca/commands/dsl_compiler_list.rb#10
958
+ sig { override.void }
959
+ def execute; end
960
+ end
818
961
 
819
- # source://tapioca//lib/tapioca/commands/gem.rb#278
820
- sig { params(gem_name: ::String).returns(::Pathname) }
821
- def existing_rbi(gem_name); end
962
+ # source://tapioca//lib/tapioca/commands/dsl_generate.rb#6
963
+ class Tapioca::Commands::DslGenerate < ::Tapioca::Commands::AbstractDsl
964
+ private
822
965
 
823
- # source://tapioca//lib/tapioca/commands/gem.rb#326
824
- sig { returns(T::Hash[::String, ::String]) }
825
- def existing_rbis; end
966
+ # source://tapioca//lib/tapioca/commands/dsl_generate.rb#10
967
+ sig { override.void }
968
+ def execute; end
969
+ end
826
970
 
827
- # source://tapioca//lib/tapioca/commands/gem.rb#290
828
- sig { params(gem_name: ::String).returns(::Pathname) }
829
- def expected_rbi(gem_name); end
971
+ # source://tapioca//lib/tapioca/commands/dsl_verify.rb#6
972
+ class Tapioca::Commands::DslVerify < ::Tapioca::Commands::AbstractDsl
973
+ private
830
974
 
831
- # source://tapioca//lib/tapioca/commands/gem.rb#332
832
- sig { returns(T::Hash[::String, ::String]) }
833
- def expected_rbis; end
975
+ # source://tapioca//lib/tapioca/commands/dsl_verify.rb#10
976
+ sig { override.void }
977
+ def execute; end
978
+ end
834
979
 
835
- # source://tapioca//lib/tapioca/commands/gem.rb#295
836
- sig { params(gem_name: ::String).returns(T::Boolean) }
837
- def gem_rbi_exists?(gem_name); end
980
+ # source://tapioca//lib/tapioca/commands/gem_generate.rb#6
981
+ class Tapioca::Commands::GemGenerate < ::Tapioca::Commands::AbstractGem
982
+ private
838
983
 
839
- # source://tapioca//lib/tapioca/commands/gem.rb#339
840
- sig { params(gem_name: ::String, version: ::String).returns(::Pathname) }
841
- def gem_rbi_filename(gem_name, version); end
984
+ # source://tapioca//lib/tapioca/commands/gem_generate.rb#10
985
+ sig { override.void }
986
+ def execute; end
987
+ end
842
988
 
843
- # source://tapioca//lib/tapioca/commands/gem.rb#139
844
- sig { params(gem_names: T::Array[::String]).returns(T::Array[::Tapioca::Gemfile::GemSpec]) }
845
- def gems_to_generate(gem_names); end
989
+ # source://tapioca//lib/tapioca/commands/gem_sync.rb#6
990
+ class Tapioca::Commands::GemSync < ::Tapioca::Commands::AbstractGem
991
+ private
846
992
 
847
- # source://tapioca//lib/tapioca/commands/gem.rb#349
848
- sig { params(gem: ::Tapioca::Gemfile::GemSpec, file: ::RBI::File).void }
849
- def merge_with_exported_rbi(gem, file); end
993
+ # source://tapioca//lib/tapioca/commands/gem_sync.rb#10
994
+ sig { override.void }
995
+ def execute; end
996
+ end
850
997
 
851
- # source://tapioca//lib/tapioca/commands/gem.rb#320
852
- sig { params(old_filename: ::Pathname, new_filename: ::Pathname).void }
853
- def move(old_filename, new_filename); end
998
+ # source://tapioca//lib/tapioca/commands/gem_verify.rb#6
999
+ class Tapioca::Commands::GemVerify < ::Tapioca::Commands::AbstractGem
1000
+ private
854
1001
 
855
- # source://tapioca//lib/tapioca/commands/gem.rb#231
856
- sig { void }
857
- def perform_additions; end
1002
+ # source://tapioca//lib/tapioca/commands/gem_verify.rb#10
1003
+ sig { override.void }
1004
+ def execute; end
858
1005
 
859
- # source://tapioca//lib/tapioca/commands/gem.rb#204
1006
+ # source://tapioca//lib/tapioca/commands/gem_verify.rb#17
860
1007
  sig { void }
861
- def perform_removals; end
862
-
863
- # source://tapioca//lib/tapioca/commands/gem.rb#185
864
- sig { params(exclude: T::Array[::String]).void }
865
- def perform_sync_verification(exclude: T.unsafe(nil)); end
866
-
867
- # source://tapioca//lib/tapioca/commands/gem.rb#273
868
- sig { returns(T::Array[::String]) }
869
- def removed_rbis; end
870
-
871
- # source://tapioca//lib/tapioca/commands/gem.rb#300
872
- sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void }
873
- def report_diff_and_exit_if_out_of_date(diff, command); end
1008
+ def perform_sync_verification; end
874
1009
  end
875
1010
 
876
1011
  # source://tapioca//lib/tapioca/commands/require.rb#6
@@ -879,7 +1014,9 @@ class Tapioca::Commands::Require < ::Tapioca::Commands::CommandWithoutTracker
879
1014
  sig { params(requires_path: ::String, sorbet_config_path: ::String).void }
880
1015
  def initialize(requires_path:, sorbet_config_path:); end
881
1016
 
882
- # source://tapioca//lib/tapioca/commands/require.rb#21
1017
+ private
1018
+
1019
+ # source://tapioca//lib/tapioca/commands/require.rb#23
883
1020
  sig { override.void }
884
1021
  def execute; end
885
1022
  end
@@ -888,25 +1025,32 @@ end
888
1025
  class Tapioca::Commands::Todo < ::Tapioca::Commands::CommandWithoutTracker
889
1026
  include ::Tapioca::SorbetHelper
890
1027
 
891
- # source://tapioca//lib/tapioca/commands/todo.rb#15
1028
+ # source://tapioca//lib/tapioca/commands/todo.rb#26
892
1029
  sig { params(todo_file: ::String, file_header: T::Boolean).void }
893
1030
  def initialize(todo_file:, file_header:); end
894
1031
 
895
- # source://tapioca//lib/tapioca/commands/todo.rb#23
896
- sig { override.void }
897
- def execute; end
1032
+ # source://tapioca//lib/tapioca/commands/todo.rb#34
1033
+ sig { void }
1034
+ def run_with_deprecation; end
898
1035
 
899
1036
  private
900
1037
 
901
- # source://tapioca//lib/tapioca/commands/todo.rb#49
1038
+ # source://tapioca//lib/tapioca/commands/todo.rb#44
1039
+ sig { override.void }
1040
+ def execute; end
1041
+
1042
+ # source://tapioca//lib/tapioca/commands/todo.rb#68
902
1043
  sig { params(constants: T::Array[::String], command: ::String).returns(::RBI::File) }
903
1044
  def rbi(constants, command:); end
904
1045
 
905
- # source://tapioca//lib/tapioca/commands/todo.rb#69
1046
+ # source://tapioca//lib/tapioca/commands/todo.rb#88
906
1047
  sig { returns(T::Array[::String]) }
907
1048
  def unresolved_constants; end
908
1049
  end
909
1050
 
1051
+ # source://tapioca//lib/tapioca/commands/todo.rb#9
1052
+ Tapioca::Commands::Todo::DEPRECATION_MESSAGE = T.let(T.unsafe(nil), String)
1053
+
910
1054
  # source://tapioca//lib/tapioca/helpers/config_helper.rb#5
911
1055
  module Tapioca::ConfigHelper
912
1056
  requires_ancestor { Thor }
@@ -977,7 +1121,7 @@ class Tapioca::ConfigHelper::ConfigError < ::T::Struct
977
1121
  const :message_parts, T::Array[::Tapioca::ConfigHelper::ConfigErrorMessagePart]
978
1122
 
979
1123
  class << self
980
- # source://sorbet-runtime/0.5.10826/lib/types/struct.rb#13
1124
+ # source://sorbet-runtime/0.5.11219/lib/types/struct.rb#13
981
1125
  def inherited(s); end
982
1126
  end
983
1127
  end
@@ -988,7 +1132,7 @@ class Tapioca::ConfigHelper::ConfigErrorMessagePart < ::T::Struct
988
1132
  const :colors, T::Array[::Symbol]
989
1133
 
990
1134
  class << self
991
- # source://sorbet-runtime/0.5.10826/lib/types/struct.rb#13
1135
+ # source://sorbet-runtime/0.5.11219/lib/types/struct.rb#13
992
1136
  def inherited(s); end
993
1137
  end
994
1138
  end
@@ -1045,17 +1189,17 @@ class Tapioca::Dsl::Compiler
1045
1189
 
1046
1190
  ConstantType = type_member { { upper: Module } }
1047
1191
 
1048
- # source://tapioca//lib/tapioca/dsl/compiler.rb#60
1192
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#64
1049
1193
  sig { params(pipeline: ::Tapioca::Dsl::Pipeline, root: ::RBI::Tree, constant: ConstantType).void }
1050
1194
  def initialize(pipeline, root, constant); end
1051
1195
 
1052
1196
  # NOTE: This should eventually accept an `Error` object or `Exception` rather than simply a `String`.
1053
1197
  #
1054
- # source://tapioca//lib/tapioca/dsl/compiler.rb#77
1198
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#81
1055
1199
  sig { params(error: ::String).void }
1056
1200
  def add_error(error); end
1057
1201
 
1058
- # source://tapioca//lib/tapioca/dsl/compiler.rb#68
1202
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#72
1059
1203
  sig { params(compiler_name: ::String).returns(T::Boolean) }
1060
1204
  def compiler_enabled?(compiler_name); end
1061
1205
 
@@ -1065,7 +1209,7 @@ class Tapioca::Dsl::Compiler
1065
1209
 
1066
1210
  # @abstract
1067
1211
  #
1068
- # source://tapioca//lib/tapioca/dsl/compiler.rb#73
1212
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#77
1069
1213
  sig { abstract.void }
1070
1214
  def decorate; end
1071
1215
 
@@ -1075,21 +1219,21 @@ class Tapioca::Dsl::Compiler
1075
1219
 
1076
1220
  private
1077
1221
 
1078
- # source://tapioca//lib/tapioca/dsl/compiler.rb#126
1222
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#130
1079
1223
  sig { params(method_def: T.any(::Method, ::UnboundMethod)).returns(T::Array[::RBI::TypedParam]) }
1080
1224
  def compile_method_parameters_to_rbi(method_def); end
1081
1225
 
1082
- # source://tapioca//lib/tapioca/dsl/compiler.rb#162
1226
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#166
1083
1227
  sig { params(method_def: T.any(::Method, ::UnboundMethod)).returns(::String) }
1084
1228
  def compile_method_return_type_to_rbi(method_def); end
1085
1229
 
1086
- # source://tapioca//lib/tapioca/dsl/compiler.rb#116
1230
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#120
1087
1231
  sig { params(scope: ::RBI::Scope, method_def: T.any(::Method, ::UnboundMethod), class_method: T::Boolean).void }
1088
1232
  def create_method_from_def(scope, method_def, class_method: T.unsafe(nil)); end
1089
1233
 
1090
1234
  # Get the types of each parameter from a method signature
1091
1235
  #
1092
- # source://tapioca//lib/tapioca/dsl/compiler.rb#90
1236
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#94
1093
1237
  sig { params(method_def: T.any(::Method, ::UnboundMethod), signature: T.untyped).returns(T::Array[::String]) }
1094
1238
  def parameters_types_from_signature(method_def, signature); end
1095
1239
 
@@ -1104,9 +1248,6 @@ class Tapioca::Dsl::Compiler
1104
1248
  sig { params(constant: ::Module).returns(T::Boolean) }
1105
1249
  def handles?(constant); end
1106
1250
 
1107
- # source://sorbet-runtime/0.5.10826/lib/types/private/abstract/declare.rb#37
1108
- def new(*args, **_arg1, &blk); end
1109
-
1110
1251
  # source://tapioca//lib/tapioca/dsl/compiler.rb#37
1111
1252
  sig { returns(T::Set[::Module]) }
1112
1253
  def processable_constants; end
@@ -1114,10 +1255,10 @@ class Tapioca::Dsl::Compiler
1114
1255
  private
1115
1256
 
1116
1257
  # source://tapioca//lib/tapioca/dsl/compiler.rb#47
1117
- sig { returns(T::Enumerable[::Class]) }
1258
+ sig { returns(T::Enumerable[T::Class[T.anything]]) }
1118
1259
  def all_classes; end
1119
1260
 
1120
- # source://tapioca//lib/tapioca/dsl/compiler.rb#53
1261
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#55
1121
1262
  sig { returns(T::Enumerable[::Module]) }
1122
1263
  def all_modules; end
1123
1264
  end
@@ -1194,15 +1335,15 @@ class Tapioca::Dsl::Pipeline
1194
1335
 
1195
1336
  private
1196
1337
 
1197
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#193
1338
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#199
1198
1339
  sig { void }
1199
1340
  def abort_if_pending_migrations!; end
1200
1341
 
1201
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#139
1342
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#144
1202
1343
  sig { params(constants: T::Set[::Module]).returns(T::Set[::Module]) }
1203
1344
  def filter_anonymous_and_reloaded_constants(constants); end
1204
1345
 
1205
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#122
1346
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#124
1206
1347
  sig do
1207
1348
  params(
1208
1349
  requested_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)],
@@ -1211,7 +1352,7 @@ class Tapioca::Dsl::Pipeline
1211
1352
  end
1212
1353
  def gather_active_compilers(requested_compilers, excluded_compilers); end
1213
1354
 
1214
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#130
1355
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#132
1215
1356
  sig do
1216
1357
  params(
1217
1358
  requested_constants: T::Array[::Module],
@@ -1220,11 +1361,11 @@ class Tapioca::Dsl::Pipeline
1220
1361
  end
1221
1362
  def gather_constants(requested_constants, requested_paths); end
1222
1363
 
1223
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#167
1364
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#173
1224
1365
  sig { params(constant: ::Module).returns(T.nilable(::RBI::File)) }
1225
1366
  def rbi_for_constant(constant); end
1226
1367
 
1227
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#186
1368
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#192
1228
1369
  sig { params(error: ::String).returns(T.noreturn) }
1229
1370
  def report_error(error); end
1230
1371
  end
@@ -1299,11 +1440,6 @@ end
1299
1440
  # source://tapioca//lib/tapioca/gem/events.rb#6
1300
1441
  class Tapioca::Gem::Event
1301
1442
  abstract!
1302
-
1303
- class << self
1304
- # source://sorbet-runtime/0.5.10826/lib/types/private/abstract/declare.rb#37
1305
- def new(*args, **_arg1, &blk); end
1306
- end
1307
1443
  end
1308
1444
 
1309
1445
  # source://tapioca//lib/tapioca/gem/events.rb#43
@@ -1354,11 +1490,6 @@ class Tapioca::Gem::Listeners::Base
1354
1490
  # source://tapioca//lib/tapioca/gem/listeners/base.rb#41
1355
1491
  sig { params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1356
1492
  def on_scope(event); end
1357
-
1358
- class << self
1359
- # source://sorbet-runtime/0.5.10826/lib/types/private/abstract/declare.rb#37
1360
- def new(*args, **_arg1, &blk); end
1361
- end
1362
1493
  end
1363
1494
 
1364
1495
  # source://tapioca//lib/tapioca/gem/listeners/dynamic_mixins.rb#7
@@ -1406,11 +1537,19 @@ class Tapioca::Gem::Listeners::Methods < ::Tapioca::Gem::Listeners::Base
1406
1537
 
1407
1538
  private
1408
1539
 
1409
- # source://tapioca//lib/tapioca/gem/listeners/methods.rb#34
1410
- sig { params(tree: ::RBI::Tree, module_name: ::String, mod: ::Module, for_visibility: T::Array[::Symbol]).void }
1411
- def compile_directly_owned_methods(tree, module_name, mod, for_visibility = T.unsafe(nil)); end
1540
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#35
1541
+ sig do
1542
+ params(
1543
+ tree: ::RBI::Tree,
1544
+ module_name: ::String,
1545
+ mod: ::Module,
1546
+ for_visibility: T::Array[::Symbol],
1547
+ attached_class: T.nilable(::Module)
1548
+ ).void
1549
+ end
1550
+ def compile_directly_owned_methods(tree, module_name, mod, for_visibility = T.unsafe(nil), attached_class: T.unsafe(nil)); end
1412
1551
 
1413
- # source://tapioca//lib/tapioca/gem/listeners/methods.rb#63
1552
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#71
1414
1553
  sig do
1415
1554
  params(
1416
1555
  tree: ::RBI::Tree,
@@ -1422,18 +1561,22 @@ class Tapioca::Gem::Listeners::Methods < ::Tapioca::Gem::Listeners::Base
1422
1561
  end
1423
1562
  def compile_method(tree, symbol_name, constant, method, visibility = T.unsafe(nil)); end
1424
1563
 
1425
- # source://tapioca//lib/tapioca/gem/listeners/methods.rb#191
1564
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#211
1426
1565
  sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1427
1566
  def ignore?(event); end
1428
1567
 
1429
- # source://tapioca//lib/tapioca/gem/listeners/methods.rb#184
1568
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#204
1430
1569
  sig { params(constant: ::Module).returns(T.nilable(::UnboundMethod)) }
1431
1570
  def initialize_method_for(constant); end
1432
1571
 
1433
- # source://tapioca//lib/tapioca/gem/listeners/methods.rb#165
1572
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#172
1434
1573
  sig { params(mod: ::Module).returns(T::Hash[::Symbol, T::Array[::Symbol]]) }
1435
1574
  def method_names_by_visibility(mod); end
1436
1575
 
1576
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#196
1577
+ sig { params(attached_class: T.nilable(::Module), method_name: ::Symbol).returns(T.nilable(T::Boolean)) }
1578
+ def method_new_in_abstract_class?(attached_class, method_name); end
1579
+
1437
1580
  # Check whether the method is defined by the constant.
1438
1581
  #
1439
1582
  # In most cases, it works to check that the constant is the method owner. However,
@@ -1444,7 +1587,7 @@ class Tapioca::Gem::Listeners::Methods < ::Tapioca::Gem::Listeners::Base
1444
1587
  # It walks up the ancestor tree via the `super_method` method; if any of the super
1445
1588
  # methods are owned by the constant, it means that the constant declares the method.
1446
1589
  #
1447
- # source://tapioca//lib/tapioca/gem/listeners/methods.rb#151
1590
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#158
1448
1591
  sig { params(method: ::UnboundMethod, constant: ::Module).returns(T::Boolean) }
1449
1592
  def method_owned_by_constant?(method, constant); end
1450
1593
 
@@ -1452,7 +1595,7 @@ class Tapioca::Gem::Listeners::Methods < ::Tapioca::Gem::Listeners::Base
1452
1595
  sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1453
1596
  def on_scope(event); end
1454
1597
 
1455
- # source://tapioca//lib/tapioca/gem/listeners/methods.rb#174
1598
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#181
1456
1599
  sig { params(constant: ::Module, method_name: ::String).returns(T::Boolean) }
1457
1600
  def struct_method?(constant, method_name); end
1458
1601
  end
@@ -1534,7 +1677,7 @@ class Tapioca::Gem::Listeners::SorbetHelpers < ::Tapioca::Gem::Listeners::Base
1534
1677
 
1535
1678
  private
1536
1679
 
1537
- # source://tapioca//lib/tapioca/gem/listeners/sorbet_helpers.rb#28
1680
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_helpers.rb#27
1538
1681
  sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1539
1682
  def ignore?(event); end
1540
1683
 
@@ -1545,13 +1688,16 @@ end
1545
1688
 
1546
1689
  # source://tapioca//lib/tapioca/gem/listeners/sorbet_props.rb#7
1547
1690
  class Tapioca::Gem::Listeners::SorbetProps < ::Tapioca::Gem::Listeners::Base
1691
+ include ::Tapioca::SorbetHelper
1692
+ include ::Tapioca::RBIHelper
1693
+
1548
1694
  private
1549
1695
 
1550
- # source://tapioca//lib/tapioca/gem/listeners/sorbet_props.rb#32
1696
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_props.rb#33
1551
1697
  sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1552
1698
  def ignore?(event); end
1553
1699
 
1554
- # source://tapioca//lib/tapioca/gem/listeners/sorbet_props.rb#13
1700
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_props.rb#14
1555
1701
  sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1556
1702
  def on_scope(event); end
1557
1703
  end
@@ -1582,7 +1728,7 @@ class Tapioca::Gem::Listeners::SorbetSignatures < ::Tapioca::Gem::Listeners::Bas
1582
1728
  sig { params(signature: T.untyped, parameters: T::Array[[::Symbol, ::String]]).returns(::RBI::Sig) }
1583
1729
  def compile_signature(signature, parameters); end
1584
1730
 
1585
- # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#78
1731
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#79
1586
1732
  sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1587
1733
  def ignore?(event); end
1588
1734
 
@@ -1609,10 +1755,14 @@ class Tapioca::Gem::Listeners::SorbetTypeVariables < ::Tapioca::Gem::Listeners::
1609
1755
  sig { params(tree: ::RBI::Tree, constant: ::Module).void }
1610
1756
  def compile_type_variable_declarations(tree, constant); end
1611
1757
 
1612
- # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#50
1758
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#63
1613
1759
  sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1614
1760
  def ignore?(event); end
1615
1761
 
1762
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#50
1763
+ sig { params(type_variable: ::Tapioca::TypeVariableModule).returns(T.nilable(::RBI::Node)) }
1764
+ def node_from_type_variable(type_variable); end
1765
+
1616
1766
  # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#15
1617
1767
  sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1618
1768
  def on_scope(event); end
@@ -1739,11 +1889,6 @@ class Tapioca::Gem::NodeAdded < ::Tapioca::Gem::Event
1739
1889
  # source://tapioca//lib/tapioca/gem/events.rb#64
1740
1890
  sig { returns(::String) }
1741
1891
  def symbol; end
1742
-
1743
- class << self
1744
- # source://sorbet-runtime/0.5.10826/lib/types/private/abstract/declare.rb#37
1745
- def new(*args, **_arg1, &blk); end
1746
- end
1747
1892
  end
1748
1893
 
1749
1894
  # source://tapioca//lib/tapioca/gem/pipeline.rb#6
@@ -1761,7 +1906,7 @@ class Tapioca::Gem::Pipeline
1761
1906
  sig { returns(::RBI::Tree) }
1762
1907
  def compile; end
1763
1908
 
1764
- # source://tapioca//lib/tapioca/gem/pipeline.rb#110
1909
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#119
1765
1910
  sig { params(name: T.any(::String, ::Symbol)).returns(T::Boolean) }
1766
1911
  def constant_in_gem?(name); end
1767
1912
 
@@ -1769,31 +1914,33 @@ class Tapioca::Gem::Pipeline
1769
1914
  sig { returns(::Tapioca::Gemfile::GemSpec) }
1770
1915
  def gem; end
1771
1916
 
1772
- # source://tapioca//lib/tapioca/gem/pipeline.rb#122
1917
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#137
1773
1918
  sig { params(method: ::UnboundMethod).returns(T::Boolean) }
1774
1919
  def method_in_gem?(method); end
1775
1920
 
1776
- # source://tapioca//lib/tapioca/gem/pipeline.rb#130
1921
+ # Helpers
1922
+ #
1923
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#147
1777
1924
  sig { params(constant: ::Module).returns(T.nilable(::String)) }
1778
1925
  def name_of(constant); end
1779
1926
 
1780
- # source://tapioca//lib/tapioca/gem/pipeline.rb#69
1927
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#71
1781
1928
  sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Const).void }
1782
1929
  def push_const(symbol, constant, node); end
1783
1930
 
1784
- # source://tapioca//lib/tapioca/gem/pipeline.rb#59
1931
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#61
1785
1932
  sig { params(symbol: ::String, constant: ::BasicObject).void }
1786
1933
  def push_constant(symbol, constant); end
1787
1934
 
1788
- # source://tapioca//lib/tapioca/gem/pipeline.rb#64
1935
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#66
1789
1936
  sig { params(symbol: ::String, constant: ::Module).void }
1790
1937
  def push_foreign_constant(symbol, constant); end
1791
1938
 
1792
- # source://tapioca//lib/tapioca/gem/pipeline.rb#83
1939
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#85
1793
1940
  sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void }
1794
1941
  def push_foreign_scope(symbol, constant, node); end
1795
1942
 
1796
- # source://tapioca//lib/tapioca/gem/pipeline.rb#97
1943
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#99
1797
1944
  sig do
1798
1945
  params(
1799
1946
  symbol: ::String,
@@ -1806,103 +1953,148 @@ class Tapioca::Gem::Pipeline
1806
1953
  end
1807
1954
  def push_method(symbol, constant, method, node, signature, parameters); end
1808
1955
 
1809
- # source://tapioca//lib/tapioca/gem/pipeline.rb#76
1956
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#78
1810
1957
  sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void }
1811
1958
  def push_scope(symbol, constant, node); end
1812
1959
 
1813
- # source://tapioca//lib/tapioca/gem/pipeline.rb#54
1960
+ # Events handling
1961
+ #
1962
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#56
1814
1963
  sig { params(symbol: ::String).void }
1815
1964
  def push_symbol(symbol); end
1816
1965
 
1817
- # source://tapioca//lib/tapioca/gem/pipeline.rb#102
1966
+ # Constants and properties filtering
1967
+ #
1968
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#106
1818
1969
  sig { params(symbol_name: ::String).returns(T::Boolean) }
1819
1970
  def symbol_in_payload?(symbol_name); end
1820
1971
 
1821
1972
  private
1822
1973
 
1823
- # source://tapioca//lib/tapioca/gem/pipeline.rb#376
1974
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#440
1824
1975
  sig { params(name: ::String).void }
1825
1976
  def add_to_alias_namespace(name); end
1826
1977
 
1827
- # source://tapioca//lib/tapioca/gem/pipeline.rb#381
1978
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#445
1828
1979
  sig { params(name: ::String).returns(T::Boolean) }
1829
1980
  def alias_namespaced?(name); end
1830
1981
 
1831
- # source://tapioca//lib/tapioca/gem/pipeline.rb#225
1982
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#244
1832
1983
  sig { params(name: ::String, constant: ::Module).void }
1833
1984
  def compile_alias(name, constant); end
1834
1985
 
1835
- # source://tapioca//lib/tapioca/gem/pipeline.rb#211
1986
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#230
1836
1987
  sig { params(symbol: ::String, constant: ::BasicObject).void }
1837
1988
  def compile_constant(symbol, constant); end
1838
1989
 
1839
- # Compile
1990
+ # Compiling
1840
1991
  #
1841
- # source://tapioca//lib/tapioca/gem/pipeline.rb#206
1992
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#219
1842
1993
  sig { params(symbol: ::String, constant: ::Module).void }
1843
1994
  def compile_foreign_constant(symbol, constant); end
1844
1995
 
1845
- # source://tapioca//lib/tapioca/gem/pipeline.rb#283
1846
- sig { params(name: ::String, constant: ::Module, foreign_constant: T::Boolean).void }
1847
- def compile_module(name, constant, foreign_constant: T.unsafe(nil)); end
1996
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#298
1997
+ sig { params(name: ::String, constant: ::Module).void }
1998
+ def compile_module(name, constant); end
1848
1999
 
1849
- # source://tapioca//lib/tapioca/gem/pipeline.rb#247
2000
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#265
1850
2001
  sig { params(name: ::String, value: ::BasicObject).void }
1851
2002
  def compile_object(name, value); end
1852
2003
 
1853
- # source://tapioca//lib/tapioca/gem/pipeline.rb#308
1854
- sig { params(constant: ::Class).returns(T.nilable(::String)) }
2004
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#309
2005
+ sig { params(name: ::String, constant: ::Module).returns(::RBI::Scope) }
2006
+ def compile_scope(name, constant); end
2007
+
2008
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#323
2009
+ sig { params(constant: T::Class[T.anything]).returns(T.nilable(::String)) }
1855
2010
  def compile_superclass(constant); end
1856
2011
 
1857
- # source://tapioca//lib/tapioca/gem/pipeline.rb#357
2012
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#421
1858
2013
  sig { params(constant: ::Module, strict: T::Boolean).returns(T::Boolean) }
1859
2014
  def defined_in_gem?(constant, strict: T.unsafe(nil)); end
1860
2015
 
1861
- # source://tapioca//lib/tapioca/gem/pipeline.rb#158
2016
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#177
1862
2017
  sig { params(event: ::Tapioca::Gem::Event).void }
1863
2018
  def dispatch(event); end
1864
2019
 
1865
- # source://tapioca//lib/tapioca/gem/pipeline.rb#398
2020
+ # Helpers
2021
+ #
2022
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#464
1866
2023
  sig { params(constant: T.all(::Module, ::T::Generic)).returns(::String) }
1867
2024
  def generic_name_of(constant); end
1868
2025
 
1869
- # source://tapioca//lib/tapioca/gem/pipeline.rb#369
2026
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#433
1870
2027
  sig { params(constant: ::Module).returns(T::Set[::String]) }
1871
2028
  def get_file_candidates(constant); end
1872
2029
 
1873
- # source://tapioca//lib/tapioca/gem/pipeline.rb#145
2030
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#162
1874
2031
  sig { params(gem: ::Tapioca::Gemfile::GemSpec).returns(T::Set[::String]) }
1875
2032
  def load_bootstrap_symbols(gem); end
1876
2033
 
1877
- # source://tapioca//lib/tapioca/gem/pipeline.rb#388
1878
- sig { params(name: ::String).void }
1879
- def mark_seen(name); end
1880
-
1881
- # source://tapioca//lib/tapioca/gem/pipeline.rb#414
2034
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#480
1882
2035
  sig { params(constant: ::Module, class_name: T.nilable(::String)).returns(T.nilable(::String)) }
1883
2036
  def name_of_proxy_target(constant, class_name); end
1884
2037
 
1885
- # source://tapioca//lib/tapioca/gem/pipeline.rb#153
2038
+ # Events handling
2039
+ #
2040
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#172
1886
2041
  sig { returns(::Tapioca::Gem::Event) }
1887
2042
  def next_event; end
1888
2043
 
1889
- # source://tapioca//lib/tapioca/gem/pipeline.rb#181
2044
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#200
1890
2045
  sig { params(event: ::Tapioca::Gem::ConstantFound).void }
1891
2046
  def on_constant(event); end
1892
2047
 
1893
- # source://tapioca//lib/tapioca/gem/pipeline.rb#199
2048
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#212
1894
2049
  sig { params(event: ::Tapioca::Gem::NodeAdded).void }
1895
2050
  def on_node(event); end
1896
2051
 
1897
- # source://tapioca//lib/tapioca/gem/pipeline.rb#172
2052
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#191
1898
2053
  sig { params(event: ::Tapioca::Gem::SymbolFound).void }
1899
2054
  def on_symbol(event); end
1900
2055
 
1901
- # source://tapioca//lib/tapioca/gem/pipeline.rb#393
2056
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#452
2057
+ sig { params(name: ::String).void }
2058
+ def seen!(name); end
2059
+
2060
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#457
1902
2061
  sig { params(name: ::String).returns(T::Boolean) }
1903
2062
  def seen?(name); end
2063
+
2064
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#391
2065
+ sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2066
+ def skip_alias?(name, constant); end
2067
+
2068
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#379
2069
+ sig { params(name: ::String, constant: T.anything).returns(T::Boolean) }
2070
+ def skip_constant?(name, constant); end
2071
+
2072
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#408
2073
+ sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2074
+ def skip_foreign_constant?(name, constant); end
2075
+
2076
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#413
2077
+ sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2078
+ def skip_module?(name, constant); end
2079
+
2080
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#400
2081
+ sig { params(name: ::String, constant: ::BasicObject).returns(T::Boolean) }
2082
+ def skip_object?(name, constant); end
2083
+
2084
+ # Constants and properties filtering
2085
+ #
2086
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#374
2087
+ sig { params(name: ::String).returns(T::Boolean) }
2088
+ def skip_symbol?(name); end
1904
2089
  end
1905
2090
 
2091
+ # this looks something like:
2092
+ # "(eval at /path/to/file.rb:123)"
2093
+ # and we are just interested in the "/path/to/file.rb" part
2094
+ #
2095
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#116
2096
+ Tapioca::Gem::Pipeline::EVAL_SOURCE_FILE_PATTERN = T.let(T.unsafe(nil), Regexp)
2097
+
1906
2098
  # source://tapioca//lib/tapioca/gem/pipeline.rb#11
1907
2099
  Tapioca::Gem::Pipeline::IGNORED_SYMBOLS = T.let(T.unsafe(nil), Array)
1908
2100
 
@@ -1953,189 +2145,170 @@ module Tapioca::GemHelper
1953
2145
  def path_in_dir?(path, dir); end
1954
2146
  end
1955
2147
 
1956
- # source://tapioca//lib/tapioca/gemfile.rb#5
2148
+ # source://tapioca//lib/tapioca/gemfile.rb#7
1957
2149
  class Tapioca::Gemfile
1958
- # source://tapioca//lib/tapioca/gemfile.rb#69
1959
- sig { params(exclude: T::Array[::String]).void }
1960
- def initialize(exclude); end
2150
+ # source://tapioca//lib/tapioca/gemfile.rb#27
2151
+ sig { params(excluded_gems: T::Array[::String]).void }
2152
+ def initialize(excluded_gems); end
1961
2153
 
1962
- # source://tapioca//lib/tapioca/gemfile.rb#60
2154
+ # source://tapioca//lib/tapioca/gemfile.rb#18
1963
2155
  sig { returns(::Bundler::Definition) }
1964
2156
  def definition; end
1965
2157
 
1966
- # source://tapioca//lib/tapioca/gemfile.rb#63
2158
+ # source://tapioca//lib/tapioca/gemfile.rb#21
1967
2159
  sig { returns(T::Array[::Tapioca::Gemfile::GemSpec]) }
1968
2160
  def dependencies; end
1969
2161
 
1970
- # source://tapioca//lib/tapioca/gemfile.rb#80
2162
+ # source://tapioca//lib/tapioca/gemfile.rb#40
1971
2163
  sig { params(gem_name: ::String).returns(T.nilable(::Tapioca::Gemfile::GemSpec)) }
1972
2164
  def gem(gem_name); end
1973
2165
 
1974
- # source://tapioca//lib/tapioca/gemfile.rb#66
2166
+ # source://tapioca//lib/tapioca/gemfile.rb#24
1975
2167
  sig { returns(T::Array[::String]) }
1976
2168
  def missing_specs; end
1977
2169
 
1978
- # source://tapioca//lib/tapioca/gemfile.rb#85
2170
+ # source://tapioca//lib/tapioca/gemfile.rb#45
1979
2171
  sig { void }
1980
2172
  def require_bundle; end
1981
2173
 
1982
2174
  private
1983
2175
 
1984
- # source://tapioca//lib/tapioca/gemfile.rb#130
2176
+ # source://tapioca//lib/tapioca/gemfile.rb#92
1985
2177
  sig { returns(::String) }
1986
2178
  def dir; end
1987
2179
 
1988
- # source://tapioca//lib/tapioca/gemfile.rb#92
2180
+ # source://tapioca//lib/tapioca/gemfile.rb#54
1989
2181
  sig { returns(::File) }
1990
2182
  def gemfile; end
1991
2183
 
1992
- # source://tapioca//lib/tapioca/gemfile.rb#125
2184
+ # source://tapioca//lib/tapioca/gemfile.rb#87
1993
2185
  sig { returns(T::Array[::Symbol]) }
1994
2186
  def groups; end
1995
2187
 
1996
- # source://tapioca//lib/tapioca/gemfile.rb#95
2188
+ # source://tapioca//lib/tapioca/gemfile.rb#57
1997
2189
  sig { returns([T::Array[::Tapioca::Gemfile::GemSpec], T::Array[::String]]) }
1998
2190
  def load_dependencies; end
1999
2191
 
2000
2192
  # @return [File]
2001
2193
  #
2002
- # source://tapioca//lib/tapioca/gemfile.rb#92
2194
+ # source://tapioca//lib/tapioca/gemfile.rb#54
2003
2195
  def lockfile; end
2004
2196
 
2005
- # source://tapioca//lib/tapioca/gemfile.rb#106
2197
+ # source://tapioca//lib/tapioca/gemfile.rb#68
2006
2198
  sig { returns([T::Enumerable[T.any(::Bundler::StubSpecification, ::Gem::Specification)], T::Array[::String]]) }
2007
2199
  def materialize_deps; end
2008
2200
 
2009
- # source://tapioca//lib/tapioca/gemfile.rb#120
2201
+ # source://tapioca//lib/tapioca/gemfile.rb#82
2010
2202
  sig { returns(::Bundler::Runtime) }
2011
2203
  def runtime; end
2012
2204
  end
2013
2205
 
2014
- # This is a module that gets prepended to `Bundler::Dependency` and
2015
- # makes sure even gems marked as `require: false` are required during
2016
- # `Bundler.require`.
2017
- #
2018
- # source://tapioca//lib/tapioca/gemfile.rb#18
2019
- module Tapioca::Gemfile::AutoRequireHook
2020
- requires_ancestor { Bundler::Dependency }
2021
-
2022
- # source://tapioca//lib/tapioca/gemfile.rb#39
2023
- sig { returns(T.untyped) }
2024
- def autorequire; end
2025
-
2026
- class << self
2027
- # source://tapioca//lib/tapioca/gemfile.rb#30
2028
- sig { params(exclude: T::Array[::String]).returns(T::Array[::String]) }
2029
- def exclude=(exclude); end
2030
-
2031
- # source://tapioca//lib/tapioca/gemfile.rb#33
2032
- sig { params(name: T.untyped).returns(T::Boolean) }
2033
- def excluded?(name); end
2034
- end
2035
- end
2036
-
2037
- # source://tapioca//lib/tapioca/gemfile.rb#134
2206
+ # source://tapioca//lib/tapioca/gemfile.rb#96
2038
2207
  class Tapioca::Gemfile::GemSpec
2039
2208
  include ::Tapioca::GemHelper
2040
2209
 
2041
- # source://tapioca//lib/tapioca/gemfile.rb#173
2210
+ # source://tapioca//lib/tapioca/gemfile.rb#136
2042
2211
  sig { params(spec: T.any(::Bundler::StubSpecification, ::Gem::Specification)).void }
2043
2212
  def initialize(spec); end
2044
2213
 
2045
- # source://tapioca//lib/tapioca/gemfile.rb#183
2214
+ # source://tapioca//lib/tapioca/gemfile.rb#146
2046
2215
  sig { params(other: ::BasicObject).returns(T::Boolean) }
2047
2216
  def ==(other); end
2048
2217
 
2049
- # source://tapioca//lib/tapioca/gemfile.rb#203
2218
+ # source://tapioca//lib/tapioca/gemfile.rb#171
2050
2219
  sig { params(path: ::String).returns(T::Boolean) }
2051
2220
  def contains_path?(path); end
2052
2221
 
2053
- # source://tapioca//lib/tapioca/gemfile.rb#222
2222
+ # source://tapioca//lib/tapioca/gemfile.rb#161
2223
+ sig { returns(T::Array[::Gem::Dependency]) }
2224
+ def dependencies; end
2225
+
2226
+ # source://tapioca//lib/tapioca/gemfile.rb#190
2054
2227
  sig { returns(T::Boolean) }
2055
2228
  def export_rbi_files?; end
2056
2229
 
2057
- # source://tapioca//lib/tapioca/gemfile.rb#217
2230
+ # source://tapioca//lib/tapioca/gemfile.rb#185
2058
2231
  sig { returns(T::Array[::String]) }
2059
2232
  def exported_rbi_files; end
2060
2233
 
2061
- # source://tapioca//lib/tapioca/gemfile.rb#227
2234
+ # source://tapioca//lib/tapioca/gemfile.rb#195
2062
2235
  sig { returns(::RBI::MergeTree) }
2063
2236
  def exported_rbi_tree; end
2064
2237
 
2065
- # source://tapioca//lib/tapioca/gemfile.rb#170
2238
+ # source://tapioca//lib/tapioca/gemfile.rb#133
2066
2239
  sig { returns(T::Array[::Pathname]) }
2067
2240
  def files; end
2068
2241
 
2069
- # source://tapioca//lib/tapioca/gemfile.rb#167
2242
+ # source://tapioca//lib/tapioca/gemfile.rb#130
2070
2243
  sig { returns(::String) }
2071
2244
  def full_gem_path; end
2072
2245
 
2073
- # source://tapioca//lib/tapioca/gemfile.rb#188
2246
+ # source://tapioca//lib/tapioca/gemfile.rb#151
2074
2247
  sig { params(gemfile_dir: ::String).returns(T::Boolean) }
2075
2248
  def ignore?(gemfile_dir); end
2076
2249
 
2077
- # source://tapioca//lib/tapioca/gemfile.rb#193
2250
+ # source://tapioca//lib/tapioca/gemfile.rb#156
2078
2251
  sig { returns(::String) }
2079
2252
  def name; end
2080
2253
 
2081
- # source://tapioca//lib/tapioca/gemfile.rb#212
2254
+ # source://tapioca//lib/tapioca/gemfile.rb#180
2082
2255
  sig { void }
2083
2256
  def parse_yard_docs; end
2084
2257
 
2085
- # source://tapioca//lib/tapioca/gemfile.rb#198
2258
+ # source://tapioca//lib/tapioca/gemfile.rb#166
2086
2259
  sig { returns(::String) }
2087
2260
  def rbi_file_name; end
2088
2261
 
2089
- # source://tapioca//lib/tapioca/gemfile.rb#239
2262
+ # source://tapioca//lib/tapioca/gemfile.rb#207
2090
2263
  sig { params(file: ::Pathname).returns(::Pathname) }
2091
2264
  def relative_path_for(file); end
2092
2265
 
2093
2266
  # @return [String]
2094
2267
  #
2095
- # source://tapioca//lib/tapioca/gemfile.rb#167
2268
+ # source://tapioca//lib/tapioca/gemfile.rb#130
2096
2269
  def version; end
2097
2270
 
2098
2271
  private
2099
2272
 
2100
- # source://tapioca//lib/tapioca/gemfile.rb#250
2273
+ # source://tapioca//lib/tapioca/gemfile.rb#218
2101
2274
  sig { returns(T::Array[::Pathname]) }
2102
2275
  def collect_files; end
2103
2276
 
2104
- # source://tapioca//lib/tapioca/gemfile.rb#265
2277
+ # source://tapioca//lib/tapioca/gemfile.rb#233
2105
2278
  sig { returns(T.nilable(T::Boolean)) }
2106
2279
  def default_gem?; end
2107
2280
 
2108
- # source://tapioca//lib/tapioca/gemfile.rb#323
2281
+ # source://tapioca//lib/tapioca/gemfile.rb#292
2109
2282
  sig { returns(T::Boolean) }
2110
2283
  def gem_ignored?; end
2111
2284
 
2112
- # source://tapioca//lib/tapioca/gemfile.rb#302
2285
+ # source://tapioca//lib/tapioca/gemfile.rb#271
2113
2286
  sig { params(path: ::String).returns(T::Boolean) }
2114
2287
  def has_parent_gemspec?(path); end
2115
2288
 
2116
- # source://tapioca//lib/tapioca/gemfile.rb#270
2289
+ # source://tapioca//lib/tapioca/gemfile.rb#238
2117
2290
  sig { returns(::Regexp) }
2118
2291
  def require_paths_prefix_matcher; end
2119
2292
 
2120
- # source://tapioca//lib/tapioca/gemfile.rb#281
2293
+ # source://tapioca//lib/tapioca/gemfile.rb#250
2121
2294
  sig { params(file: ::String).returns(::Pathname) }
2122
2295
  def resolve_to_ruby_lib_dir(file); end
2123
2296
 
2124
- # source://tapioca//lib/tapioca/gemfile.rb#295
2297
+ # source://tapioca//lib/tapioca/gemfile.rb#264
2125
2298
  sig { returns(::String) }
2126
2299
  def version_string; end
2127
2300
 
2128
2301
  class << self
2129
- # source://tapioca//lib/tapioca/gemfile.rb#142
2302
+ # source://tapioca//lib/tapioca/gemfile.rb#104
2130
2303
  sig { returns(T::Hash[::String, ::Tapioca::Gemfile::GemSpec]) }
2131
2304
  def spec_lookup_by_file_path; end
2132
2305
  end
2133
2306
  end
2134
2307
 
2135
- # source://tapioca//lib/tapioca/gemfile.rb#154
2308
+ # source://tapioca//lib/tapioca/gemfile.rb#116
2136
2309
  Tapioca::Gemfile::GemSpec::IGNORED_GEMS = T.let(T.unsafe(nil), Array)
2137
2310
 
2138
- # source://tapioca//lib/tapioca/gemfile.rb#8
2311
+ # source://tapioca//lib/tapioca/gemfile.rb#10
2139
2312
  Tapioca::Gemfile::Spec = T.type_alias { T.any(::Bundler::StubSpecification, ::Gem::Specification) }
2140
2313
 
2141
2314
  # source://tapioca//lib/tapioca/loaders/loader.rb#5
@@ -2143,73 +2316,89 @@ module Tapioca::Loaders; end
2143
2316
 
2144
2317
  # source://tapioca//lib/tapioca/loaders/dsl.rb#6
2145
2318
  class Tapioca::Loaders::Dsl < ::Tapioca::Loaders::Loader
2146
- # source://tapioca//lib/tapioca/loaders/dsl.rb#29
2147
- sig { params(tapioca_path: ::String, eager_load: T::Boolean, app_root: ::String).void }
2148
- def initialize(tapioca_path:, eager_load: T.unsafe(nil), app_root: T.unsafe(nil)); end
2319
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#38
2320
+ sig do
2321
+ params(
2322
+ tapioca_path: ::String,
2323
+ eager_load: T::Boolean,
2324
+ app_root: ::String,
2325
+ halt_upon_load_error: T::Boolean
2326
+ ).void
2327
+ end
2328
+ def initialize(tapioca_path:, eager_load: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end
2149
2329
 
2150
- # source://tapioca//lib/tapioca/loaders/dsl.rb#20
2330
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#27
2151
2331
  sig { override.void }
2152
2332
  def load; end
2153
2333
 
2154
2334
  protected
2155
2335
 
2156
- # source://tapioca//lib/tapioca/loaders/dsl.rb#61
2336
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#81
2157
2337
  sig { void }
2158
2338
  def load_application; end
2159
2339
 
2160
- # source://tapioca//lib/tapioca/loaders/dsl.rb#43
2340
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#63
2161
2341
  sig { void }
2162
2342
  def load_dsl_compilers; end
2163
2343
 
2164
- # source://tapioca//lib/tapioca/loaders/dsl.rb#38
2344
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#48
2165
2345
  sig { void }
2166
2346
  def load_dsl_extensions; end
2167
2347
 
2168
2348
  class << self
2169
- # source://tapioca//lib/tapioca/loaders/dsl.rb#13
2170
- sig { params(tapioca_path: ::String, eager_load: T::Boolean, app_root: ::String).void }
2171
- def load_application(tapioca_path:, eager_load: T.unsafe(nil), app_root: T.unsafe(nil)); end
2349
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#15
2350
+ sig do
2351
+ params(
2352
+ tapioca_path: ::String,
2353
+ eager_load: T::Boolean,
2354
+ app_root: ::String,
2355
+ halt_upon_load_error: T::Boolean
2356
+ ).void
2357
+ end
2358
+ def load_application(tapioca_path:, eager_load: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end
2172
2359
  end
2173
2360
  end
2174
2361
 
2175
2362
  # source://tapioca//lib/tapioca/loaders/gem.rb#6
2176
2363
  class Tapioca::Loaders::Gem < ::Tapioca::Loaders::Loader
2177
- # source://tapioca//lib/tapioca/loaders/gem.rb#46
2364
+ # source://tapioca//lib/tapioca/loaders/gem.rb#49
2178
2365
  sig do
2179
2366
  params(
2180
2367
  bundle: ::Tapioca::Gemfile,
2181
2368
  prerequire: T.nilable(::String),
2182
2369
  postrequire: ::String,
2183
- default_command: ::String
2370
+ default_command: ::String,
2371
+ halt_upon_load_error: T::Boolean
2184
2372
  ).void
2185
2373
  end
2186
- def initialize(bundle:, prerequire:, postrequire:, default_command:); end
2374
+ def initialize(bundle:, prerequire:, postrequire:, default_command:, halt_upon_load_error:); end
2187
2375
 
2188
- # source://tapioca//lib/tapioca/loaders/gem.rb#32
2376
+ # source://tapioca//lib/tapioca/loaders/gem.rb#34
2189
2377
  sig { override.void }
2190
2378
  def load; end
2191
2379
 
2192
2380
  protected
2193
2381
 
2194
- # source://tapioca//lib/tapioca/loaders/gem.rb#76
2382
+ # source://tapioca//lib/tapioca/loaders/gem.rb#80
2195
2383
  sig { params(file: ::String, error: ::LoadError).void }
2196
2384
  def explain_failed_require(file, error); end
2197
2385
 
2198
- # source://tapioca//lib/tapioca/loaders/gem.rb#56
2386
+ # source://tapioca//lib/tapioca/loaders/gem.rb#60
2199
2387
  sig { void }
2200
2388
  def require_gem_file; end
2201
2389
 
2202
2390
  class << self
2203
- # source://tapioca//lib/tapioca/loaders/gem.rb#20
2391
+ # source://tapioca//lib/tapioca/loaders/gem.rb#21
2204
2392
  sig do
2205
2393
  params(
2206
2394
  bundle: ::Tapioca::Gemfile,
2207
2395
  prerequire: T.nilable(::String),
2208
2396
  postrequire: ::String,
2209
- default_command: ::String
2397
+ default_command: ::String,
2398
+ halt_upon_load_error: T::Boolean
2210
2399
  ).void
2211
2400
  end
2212
- def load_application(bundle:, prerequire:, postrequire:, default_command:); end
2401
+ def load_application(bundle:, prerequire:, postrequire:, default_command:, halt_upon_load_error:); end
2213
2402
  end
2214
2403
  end
2215
2404
 
@@ -2235,68 +2424,82 @@ class Tapioca::Loaders::Loader
2235
2424
 
2236
2425
  private
2237
2426
 
2238
- # source://tapioca//lib/tapioca/loaders/loader.rb#182
2427
+ # Rails 7.2 renamed `eager_load_paths` to `all_eager_load_paths`, which maintains the same original functionality.
2428
+ # The `eager_load_paths` method still exists, but doesn't return all paths anymore and causes Tapioca to miss some
2429
+ # engine paths. The following commit is the change:
2430
+ # https://github.com/rails/rails/commit/ebfca905db14020589c22e6937382e6f8f687664
2431
+ #
2432
+ # @param engine [T.class_of(Rails::Engine)]
2433
+ # @return [Array<String>]
2434
+ #
2435
+ # source://sorbet-runtime/0.5.11219/lib/types/private/methods/_methods.rb#252
2436
+ def eager_load_paths(*args, **_arg1, &blk); end
2437
+
2438
+ # source://tapioca//lib/tapioca/loaders/loader.rb#198
2239
2439
  sig { void }
2240
2440
  def eager_load_rails_app; end
2241
2441
 
2242
2442
  # @return [Array<T.class_of(Rails::Engine)>]
2243
2443
  #
2244
- # source://tapioca//lib/tapioca/loaders/loader.rb#153
2444
+ # source://tapioca//lib/tapioca/loaders/loader.rb#169
2245
2445
  def engines; end
2246
2446
 
2247
- # source://tapioca//lib/tapioca/loaders/loader.rb#24
2447
+ # source://tapioca//lib/tapioca/loaders/loader.rb#29
2248
2448
  sig do
2249
2449
  params(
2250
2450
  gemfile: ::Tapioca::Gemfile,
2251
2451
  initialize_file: T.nilable(::String),
2252
- require_file: T.nilable(::String)
2452
+ require_file: T.nilable(::String),
2453
+ halt_upon_load_error: T::Boolean
2253
2454
  ).void
2254
2455
  end
2255
- def load_bundle(gemfile, initialize_file, require_file); end
2456
+ def load_bundle(gemfile, initialize_file, require_file, halt_upon_load_error); end
2256
2457
 
2257
- # source://tapioca//lib/tapioca/loaders/loader.rb#111
2458
+ # source://tapioca//lib/tapioca/loaders/loader.rb#127
2258
2459
  sig { void }
2259
2460
  def load_engines_in_classic_mode; end
2260
2461
 
2261
- # source://tapioca//lib/tapioca/loaders/loader.rb#89
2462
+ # source://tapioca//lib/tapioca/loaders/loader.rb#105
2262
2463
  sig { void }
2263
2464
  def load_engines_in_zeitwerk_mode; end
2264
2465
 
2265
- # source://tapioca//lib/tapioca/loaders/loader.rb#37
2266
- sig { params(environment_load: T::Boolean, eager_load: T::Boolean, app_root: ::String).void }
2267
- def load_rails_application(environment_load: T.unsafe(nil), eager_load: T.unsafe(nil), app_root: T.unsafe(nil)); end
2466
+ # source://tapioca//lib/tapioca/loaders/loader.rb#49
2467
+ sig do
2468
+ params(
2469
+ environment_load: T::Boolean,
2470
+ eager_load: T::Boolean,
2471
+ app_root: ::String,
2472
+ halt_upon_load_error: T::Boolean
2473
+ ).void
2474
+ end
2475
+ 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
2268
2476
 
2269
- # source://tapioca//lib/tapioca/loaders/loader.rb#64
2477
+ # source://tapioca//lib/tapioca/loaders/loader.rb#80
2270
2478
  sig { void }
2271
2479
  def load_rails_engines; end
2272
2480
 
2273
- # source://tapioca//lib/tapioca/loaders/loader.rb#203
2481
+ # source://tapioca//lib/tapioca/loaders/loader.rb#219
2274
2482
  sig { params(file: T.nilable(::String)).void }
2275
2483
  def require_helper(file); end
2276
2484
 
2277
- # source://tapioca//lib/tapioca/loaders/loader.rb#78
2485
+ # source://tapioca//lib/tapioca/loaders/loader.rb#94
2278
2486
  def run_initializers; end
2279
2487
 
2280
- # source://tapioca//lib/tapioca/loaders/loader.rb#167
2488
+ # source://tapioca//lib/tapioca/loaders/loader.rb#183
2281
2489
  sig { params(path: ::String).void }
2282
2490
  def safe_require(path); end
2283
2491
 
2284
- # source://tapioca//lib/tapioca/loaders/loader.rb#174
2492
+ # source://tapioca//lib/tapioca/loaders/loader.rb#190
2285
2493
  sig { void }
2286
2494
  def silence_deprecations; end
2287
2495
 
2288
- # source://tapioca//lib/tapioca/loaders/loader.rb#136
2496
+ # source://tapioca//lib/tapioca/loaders/loader.rb#152
2289
2497
  sig { params(blk: T.proc.void).void }
2290
2498
  def with_rails_application(&blk); end
2291
2499
 
2292
- # source://tapioca//lib/tapioca/loaders/loader.rb#129
2500
+ # source://tapioca//lib/tapioca/loaders/loader.rb#145
2293
2501
  sig { returns(T::Boolean) }
2294
2502
  def zeitwerk_mode?; end
2295
-
2296
- class << self
2297
- # source://sorbet-runtime/0.5.10826/lib/types/private/abstract/declare.rb#37
2298
- def new(*args, **_arg1, &blk); end
2299
- end
2300
2503
  end
2301
2504
 
2302
2505
  # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#5
@@ -2334,7 +2537,7 @@ module Tapioca::RBIFilesHelper
2334
2537
  dsl_dir: ::String,
2335
2538
  auto_strictness: T::Boolean,
2336
2539
  gems: T::Array[::Tapioca::Gemfile::GemSpec],
2337
- compilers: T::Enumerable[::Class]
2540
+ compilers: T::Enumerable[T.class_of(Tapioca::Dsl::Compiler)]
2338
2541
  ).void
2339
2542
  end
2340
2543
  def validate_rbi_files(command:, gem_dir:, dsl_dir:, auto_strictness:, gems: T.unsafe(nil), compilers: T.unsafe(nil)); end
@@ -2643,7 +2846,7 @@ module Tapioca::Runtime::GenericTypeRegistry
2643
2846
  def create_generic_type(constant, name); end
2644
2847
 
2645
2848
  # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#155
2646
- sig { params(constant: ::Class).returns(::Class) }
2849
+ sig { params(constant: T::Class[T.anything]).returns(T::Class[T.anything]) }
2647
2850
  def create_safe_subclass(constant); end
2648
2851
 
2649
2852
  # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#182
@@ -2668,6 +2871,10 @@ module Tapioca::Runtime::Reflection
2668
2871
  extend ::Tapioca::Runtime::AttachedClassOf
2669
2872
  extend ::Tapioca::Runtime::Reflection
2670
2873
 
2874
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#196
2875
+ sig { params(constant: ::Module).returns(T.untyped) }
2876
+ def abstract_type_of(constant); end
2877
+
2671
2878
  # source://tapioca//lib/tapioca/runtime/reflection.rb#77
2672
2879
  sig { params(constant: ::Module).returns(T::Array[::Module]) }
2673
2880
  def ancestors_of(constant); end
@@ -2677,7 +2884,7 @@ module Tapioca::Runtime::Reflection
2677
2884
  def are_equal?(object, other); end
2678
2885
 
2679
2886
  # source://tapioca//lib/tapioca/runtime/reflection.rb#56
2680
- sig { params(object: ::BasicObject).returns(::Class) }
2887
+ sig { params(object: ::BasicObject).returns(T::Class[T.anything]) }
2681
2888
  def class_of(object); end
2682
2889
 
2683
2890
  # @param constant [BasicObject]
@@ -2712,7 +2919,7 @@ module Tapioca::Runtime::Reflection
2712
2919
  sig do
2713
2920
  type_parameters(:U)
2714
2921
  .params(
2715
- klass: T.all(::Class, T.type_parameter(:U))
2922
+ klass: T.all(T.type_parameter(:U), T::Class[T.anything])
2716
2923
  ).returns(T::Array[T.type_parameter(:U)])
2717
2924
  end
2718
2925
  def descendants_of(klass); end
@@ -2721,6 +2928,10 @@ module Tapioca::Runtime::Reflection
2721
2928
  sig { params(constant: ::Module).returns(T::Set[::String]) }
2722
2929
  def file_candidates_for(constant); end
2723
2930
 
2931
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#202
2932
+ sig { params(constant: ::Module).returns(T::Boolean) }
2933
+ def final_module?(constant); end
2934
+
2724
2935
  # source://tapioca//lib/tapioca/runtime/reflection.rb#112
2725
2936
  sig { params(constant: ::Module).returns(T::Array[::Module]) }
2726
2937
  def inherited_ancestors_of(constant); end
@@ -2765,33 +2976,41 @@ module Tapioca::Runtime::Reflection
2765
2976
  sig { params(locations: T.nilable(T::Array[::Thread::Backtrace::Location])).returns(::String) }
2766
2977
  def resolve_loc(locations); end
2767
2978
 
2979
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#207
2980
+ sig { params(constant: ::Module).returns(T::Boolean) }
2981
+ def sealed_module?(constant); end
2982
+
2768
2983
  # source://tapioca//lib/tapioca/runtime/reflection.rb#133
2769
2984
  sig { params(method: T.any(::Method, ::UnboundMethod)).returns(T.untyped) }
2770
2985
  def signature_of(method); end
2771
2986
 
2772
2987
  # source://tapioca//lib/tapioca/runtime/reflection.rb#72
2773
- sig { params(constant: ::Module).returns(::Class) }
2988
+ sig { params(constant: ::Module).returns(T::Class[T.anything]) }
2774
2989
  def singleton_class_of(constant); end
2775
2990
 
2776
2991
  # source://tapioca//lib/tapioca/runtime/reflection.rb#82
2777
- sig { params(constant: ::Class).returns(T.nilable(::Class)) }
2992
+ sig { params(constant: T::Class[T.anything]).returns(T.nilable(T::Class[T.anything])) }
2778
2993
  def superclass_of(constant); end
2779
2994
 
2780
2995
  private
2781
2996
 
2782
- # source://tapioca//lib/tapioca/runtime/reflection.rb#228
2997
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#244
2783
2998
  sig { params(parent: ::Module, name: ::String).returns(T.nilable(::Module)) }
2784
2999
  def child_module_for_parent_with_name(parent, name); end
2785
3000
 
2786
- # source://tapioca//lib/tapioca/runtime/reflection.rb#239
3001
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#260
3002
+ sig { params(name: ::String).returns(T::Boolean) }
3003
+ def has_aliased_namespace?(name); end
3004
+
3005
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#255
2787
3006
  sig { params(method: ::UnboundMethod).returns(T::Boolean) }
2788
3007
  def method_defined_by_forwardable_module?(method); end
2789
3008
 
2790
- # source://tapioca//lib/tapioca/runtime/reflection.rb#214
3009
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#230
2791
3010
  sig { params(constant: ::Module).returns(T::Array[::UnboundMethod]) }
2792
3011
  def methods_for(constant); end
2793
3012
 
2794
- # source://tapioca//lib/tapioca/runtime/reflection.rb#198
3013
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#214
2795
3014
  sig { params(constant: ::Module).returns(T::Array[::UnboundMethod]) }
2796
3015
  def relevant_methods_for(constant); end
2797
3016
  end
@@ -3031,15 +3250,15 @@ Tapioca::SORBET_DIR = T.let(T.unsafe(nil), String)
3031
3250
 
3032
3251
  # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#5
3033
3252
  module Tapioca::SorbetHelper
3034
- # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#33
3253
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#32
3035
3254
  sig { params(sorbet_args: ::String).returns(::Spoom::ExecResult) }
3036
3255
  def sorbet(*sorbet_args); end
3037
3256
 
3038
- # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#38
3257
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#37
3039
3258
  sig { returns(::String) }
3040
3259
  def sorbet_path; end
3041
3260
 
3042
- # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#45
3261
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#44
3043
3262
  sig { params(feature: ::Symbol, version: T.nilable(::Gem::Version)).returns(T::Boolean) }
3044
3263
  def sorbet_supports?(feature, version: T.unsafe(nil)); end
3045
3264
  end
@@ -3105,7 +3324,7 @@ module Tapioca::Static::SymbolLoader
3105
3324
  sig { params(gem: ::Tapioca::Gemfile::GemSpec).returns(T::Set[::String]) }
3106
3325
  def engine_symbols(gem); end
3107
3326
 
3108
- # source://tapioca//lib/tapioca/static/symbol_loader.rb#40
3327
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#48
3109
3328
  sig { params(gem: ::Tapioca::Gemfile::GemSpec).returns(T::Set[::String]) }
3110
3329
  def gem_symbols(gem); end
3111
3330
 
@@ -3113,7 +3332,7 @@ module Tapioca::Static::SymbolLoader
3113
3332
  sig { returns(T::Set[::String]) }
3114
3333
  def payload_symbols; end
3115
3334
 
3116
- # source://tapioca//lib/tapioca/static/symbol_loader.rb#45
3335
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#53
3117
3336
  sig { params(paths: T::Array[::Pathname]).returns(T::Set[::String]) }
3118
3337
  def symbols_from_paths(paths); end
3119
3338
 
@@ -3121,10 +3340,10 @@ module Tapioca::Static::SymbolLoader
3121
3340
 
3122
3341
  # @return [Array<T.class_of(Rails::Engine)>]
3123
3342
  #
3124
- # source://sorbet-runtime/0.5.10826/lib/types/private/methods/_methods.rb#255
3343
+ # source://sorbet-runtime/0.5.11219/lib/types/private/methods/_methods.rb#252
3125
3344
  def engines(*args, **_arg1, &blk); end
3126
3345
 
3127
- # source://tapioca//lib/tapioca/static/symbol_loader.rb#73
3346
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#82
3128
3347
  sig { params(input: ::String, table_type: ::String).returns(::String) }
3129
3348
  def symbol_table_json_from(input, table_type: T.unsafe(nil)); end
3130
3349
  end
@@ -3164,16 +3383,16 @@ Tapioca::TAPIOCA_CONFIG_FILE = T.let(T.unsafe(nil), String)
3164
3383
  # source://tapioca//lib/tapioca.rb#34
3165
3384
  Tapioca::TAPIOCA_DIR = T.let(T.unsafe(nil), String)
3166
3385
 
3167
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#122
3386
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#108
3168
3387
  class Tapioca::TypeVariable < ::T::Types::TypeVariable
3169
3388
  # @return [TypeVariable] a new instance of TypeVariable
3170
3389
  #
3171
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#123
3390
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#109
3172
3391
  def initialize(name, variance); end
3173
3392
 
3174
3393
  # Returns the value of attribute name.
3175
3394
  #
3176
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#128
3395
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#114
3177
3396
  def name; end
3178
3397
  end
3179
3398
 
@@ -3183,69 +3402,55 @@ end
3183
3402
  # need to do any matching of constants to type variables to bind their names, Ruby will
3184
3403
  # do that automatically for us and we get the `name` method for free from `Module`.
3185
3404
  #
3186
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#136
3405
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#122
3187
3406
  class Tapioca::TypeVariableModule < ::Module
3188
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#158
3407
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#146
3189
3408
  sig do
3190
3409
  params(
3191
3410
  context: ::Module,
3192
3411
  type: ::Tapioca::TypeVariableModule::Type,
3193
3412
  variance: ::Symbol,
3194
- fixed: T.untyped,
3195
- lower: T.untyped,
3196
- upper: T.untyped,
3197
3413
  bounds_proc: T.nilable(T.proc.returns(T::Hash[::Symbol, T.untyped]))
3198
3414
  ).void
3199
3415
  end
3200
- def initialize(context, type, variance, fixed, lower, upper, bounds_proc); end
3416
+ def initialize(context, type, variance, bounds_proc); end
3201
3417
 
3202
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#212
3418
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#181
3203
3419
  sig { returns(::Tapioca::TypeVariable) }
3204
3420
  def coerce_to_type_variable; end
3205
3421
 
3206
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#192
3422
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#161
3207
3423
  sig { returns(T::Boolean) }
3208
3424
  def fixed?; end
3209
3425
 
3210
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#173
3426
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#155
3211
3427
  sig { returns(T.nilable(::String)) }
3212
3428
  def name; end
3213
3429
 
3214
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#197
3430
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#166
3215
3431
  sig { returns(::String) }
3216
3432
  def serialize; end
3217
3433
 
3434
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#136
3435
+ sig { returns(::Tapioca::TypeVariableModule::Type) }
3436
+ def type; end
3437
+
3218
3438
  private
3219
3439
 
3220
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#246
3440
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#188
3221
3441
  sig { returns(T::Hash[::Symbol, T.untyped]) }
3222
3442
  def bounds; end
3223
-
3224
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#222
3225
- sig do
3226
- params(
3227
- fixed: T.untyped,
3228
- lower: T.untyped,
3229
- upper: T.untyped
3230
- ).returns(T.proc.returns(T::Hash[::Symbol, T.untyped]))
3231
- end
3232
- def build_bounds_proc(fixed, lower, upper); end
3233
-
3234
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#236
3235
- sig do
3236
- type_parameters(:Result)
3237
- .params(
3238
- block: T.proc.returns(T.type_parameter(:Result))
3239
- ).returns(T.type_parameter(:Result))
3240
- end
3241
- def with_bound_name_pre_3_0(&block); end
3242
3443
  end
3243
3444
 
3244
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#139
3445
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#133
3446
+ Tapioca::TypeVariableModule::DEFAULT_BOUNDS_PROC = T.let(T.unsafe(nil), Proc)
3447
+
3448
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#125
3245
3449
  class Tapioca::TypeVariableModule::Type < ::T::Enum
3246
3450
  enums do
3247
3451
  Member = new
3248
3452
  Template = new
3453
+ HasAttachedClass = new
3249
3454
  end
3250
3455
  end
3251
3456
 
@@ -3263,14 +3468,14 @@ class URI::Source < ::URI::File
3263
3468
  sig { params(v: T.nilable(::String)).returns(T::Boolean) }
3264
3469
  def check_host(v); end
3265
3470
 
3266
- # source://uri/0.12.1/uri/generic.rb#243
3471
+ # source://uri/0.13.0/uri/generic.rb#243
3267
3472
  def gem_name; end
3268
3473
 
3269
3474
  # source://tapioca//lib/tapioca/helpers/source_uri.rb#25
3270
3475
  sig { returns(T.nilable(::String)) }
3271
3476
  def gem_version; end
3272
3477
 
3273
- # source://uri/0.12.1/uri/generic.rb#283
3478
+ # source://uri/0.13.0/uri/generic.rb#283
3274
3479
  def line_number; end
3275
3480
 
3276
3481
  # source://tapioca//lib/tapioca/helpers/source_uri.rb#51