openfeature-sdk-sorbet 0.2.0.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +9 -6
  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 +7 -5
  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.11.17.rbi} +778 -576
  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.11218/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.11218/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.11218/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
 
@@ -1582,7 +1725,7 @@ class Tapioca::Gem::Listeners::SorbetSignatures < ::Tapioca::Gem::Listeners::Bas
1582
1725
  sig { params(signature: T.untyped, parameters: T::Array[[::Symbol, ::String]]).returns(::RBI::Sig) }
1583
1726
  def compile_signature(signature, parameters); end
1584
1727
 
1585
- # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#78
1728
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#79
1586
1729
  sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1587
1730
  def ignore?(event); end
1588
1731
 
@@ -1609,10 +1752,14 @@ class Tapioca::Gem::Listeners::SorbetTypeVariables < ::Tapioca::Gem::Listeners::
1609
1752
  sig { params(tree: ::RBI::Tree, constant: ::Module).void }
1610
1753
  def compile_type_variable_declarations(tree, constant); end
1611
1754
 
1612
- # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#50
1755
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#63
1613
1756
  sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1614
1757
  def ignore?(event); end
1615
1758
 
1759
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#50
1760
+ sig { params(type_variable: ::Tapioca::TypeVariableModule).returns(T.nilable(::RBI::Node)) }
1761
+ def node_from_type_variable(type_variable); end
1762
+
1616
1763
  # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#15
1617
1764
  sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1618
1765
  def on_scope(event); end
@@ -1739,11 +1886,6 @@ class Tapioca::Gem::NodeAdded < ::Tapioca::Gem::Event
1739
1886
  # source://tapioca//lib/tapioca/gem/events.rb#64
1740
1887
  sig { returns(::String) }
1741
1888
  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
1889
  end
1748
1890
 
1749
1891
  # source://tapioca//lib/tapioca/gem/pipeline.rb#6
@@ -1761,7 +1903,7 @@ class Tapioca::Gem::Pipeline
1761
1903
  sig { returns(::RBI::Tree) }
1762
1904
  def compile; end
1763
1905
 
1764
- # source://tapioca//lib/tapioca/gem/pipeline.rb#110
1906
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#119
1765
1907
  sig { params(name: T.any(::String, ::Symbol)).returns(T::Boolean) }
1766
1908
  def constant_in_gem?(name); end
1767
1909
 
@@ -1769,31 +1911,33 @@ class Tapioca::Gem::Pipeline
1769
1911
  sig { returns(::Tapioca::Gemfile::GemSpec) }
1770
1912
  def gem; end
1771
1913
 
1772
- # source://tapioca//lib/tapioca/gem/pipeline.rb#122
1914
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#137
1773
1915
  sig { params(method: ::UnboundMethod).returns(T::Boolean) }
1774
1916
  def method_in_gem?(method); end
1775
1917
 
1776
- # source://tapioca//lib/tapioca/gem/pipeline.rb#130
1918
+ # Helpers
1919
+ #
1920
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#147
1777
1921
  sig { params(constant: ::Module).returns(T.nilable(::String)) }
1778
1922
  def name_of(constant); end
1779
1923
 
1780
- # source://tapioca//lib/tapioca/gem/pipeline.rb#69
1924
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#71
1781
1925
  sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Const).void }
1782
1926
  def push_const(symbol, constant, node); end
1783
1927
 
1784
- # source://tapioca//lib/tapioca/gem/pipeline.rb#59
1928
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#61
1785
1929
  sig { params(symbol: ::String, constant: ::BasicObject).void }
1786
1930
  def push_constant(symbol, constant); end
1787
1931
 
1788
- # source://tapioca//lib/tapioca/gem/pipeline.rb#64
1932
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#66
1789
1933
  sig { params(symbol: ::String, constant: ::Module).void }
1790
1934
  def push_foreign_constant(symbol, constant); end
1791
1935
 
1792
- # source://tapioca//lib/tapioca/gem/pipeline.rb#83
1936
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#85
1793
1937
  sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void }
1794
1938
  def push_foreign_scope(symbol, constant, node); end
1795
1939
 
1796
- # source://tapioca//lib/tapioca/gem/pipeline.rb#97
1940
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#99
1797
1941
  sig do
1798
1942
  params(
1799
1943
  symbol: ::String,
@@ -1806,103 +1950,148 @@ class Tapioca::Gem::Pipeline
1806
1950
  end
1807
1951
  def push_method(symbol, constant, method, node, signature, parameters); end
1808
1952
 
1809
- # source://tapioca//lib/tapioca/gem/pipeline.rb#76
1953
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#78
1810
1954
  sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void }
1811
1955
  def push_scope(symbol, constant, node); end
1812
1956
 
1813
- # source://tapioca//lib/tapioca/gem/pipeline.rb#54
1957
+ # Events handling
1958
+ #
1959
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#56
1814
1960
  sig { params(symbol: ::String).void }
1815
1961
  def push_symbol(symbol); end
1816
1962
 
1817
- # source://tapioca//lib/tapioca/gem/pipeline.rb#102
1963
+ # Constants and properties filtering
1964
+ #
1965
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#106
1818
1966
  sig { params(symbol_name: ::String).returns(T::Boolean) }
1819
1967
  def symbol_in_payload?(symbol_name); end
1820
1968
 
1821
1969
  private
1822
1970
 
1823
- # source://tapioca//lib/tapioca/gem/pipeline.rb#376
1971
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#440
1824
1972
  sig { params(name: ::String).void }
1825
1973
  def add_to_alias_namespace(name); end
1826
1974
 
1827
- # source://tapioca//lib/tapioca/gem/pipeline.rb#381
1975
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#445
1828
1976
  sig { params(name: ::String).returns(T::Boolean) }
1829
1977
  def alias_namespaced?(name); end
1830
1978
 
1831
- # source://tapioca//lib/tapioca/gem/pipeline.rb#225
1979
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#244
1832
1980
  sig { params(name: ::String, constant: ::Module).void }
1833
1981
  def compile_alias(name, constant); end
1834
1982
 
1835
- # source://tapioca//lib/tapioca/gem/pipeline.rb#211
1983
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#230
1836
1984
  sig { params(symbol: ::String, constant: ::BasicObject).void }
1837
1985
  def compile_constant(symbol, constant); end
1838
1986
 
1839
- # Compile
1987
+ # Compiling
1840
1988
  #
1841
- # source://tapioca//lib/tapioca/gem/pipeline.rb#206
1989
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#219
1842
1990
  sig { params(symbol: ::String, constant: ::Module).void }
1843
1991
  def compile_foreign_constant(symbol, constant); end
1844
1992
 
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
1993
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#298
1994
+ sig { params(name: ::String, constant: ::Module).void }
1995
+ def compile_module(name, constant); end
1848
1996
 
1849
- # source://tapioca//lib/tapioca/gem/pipeline.rb#247
1997
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#265
1850
1998
  sig { params(name: ::String, value: ::BasicObject).void }
1851
1999
  def compile_object(name, value); end
1852
2000
 
1853
- # source://tapioca//lib/tapioca/gem/pipeline.rb#308
1854
- sig { params(constant: ::Class).returns(T.nilable(::String)) }
2001
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#309
2002
+ sig { params(name: ::String, constant: ::Module).returns(::RBI::Scope) }
2003
+ def compile_scope(name, constant); end
2004
+
2005
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#323
2006
+ sig { params(constant: T::Class[T.anything]).returns(T.nilable(::String)) }
1855
2007
  def compile_superclass(constant); end
1856
2008
 
1857
- # source://tapioca//lib/tapioca/gem/pipeline.rb#357
2009
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#421
1858
2010
  sig { params(constant: ::Module, strict: T::Boolean).returns(T::Boolean) }
1859
2011
  def defined_in_gem?(constant, strict: T.unsafe(nil)); end
1860
2012
 
1861
- # source://tapioca//lib/tapioca/gem/pipeline.rb#158
2013
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#177
1862
2014
  sig { params(event: ::Tapioca::Gem::Event).void }
1863
2015
  def dispatch(event); end
1864
2016
 
1865
- # source://tapioca//lib/tapioca/gem/pipeline.rb#398
2017
+ # Helpers
2018
+ #
2019
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#464
1866
2020
  sig { params(constant: T.all(::Module, ::T::Generic)).returns(::String) }
1867
2021
  def generic_name_of(constant); end
1868
2022
 
1869
- # source://tapioca//lib/tapioca/gem/pipeline.rb#369
2023
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#433
1870
2024
  sig { params(constant: ::Module).returns(T::Set[::String]) }
1871
2025
  def get_file_candidates(constant); end
1872
2026
 
1873
- # source://tapioca//lib/tapioca/gem/pipeline.rb#145
2027
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#162
1874
2028
  sig { params(gem: ::Tapioca::Gemfile::GemSpec).returns(T::Set[::String]) }
1875
2029
  def load_bootstrap_symbols(gem); end
1876
2030
 
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
2031
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#480
1882
2032
  sig { params(constant: ::Module, class_name: T.nilable(::String)).returns(T.nilable(::String)) }
1883
2033
  def name_of_proxy_target(constant, class_name); end
1884
2034
 
1885
- # source://tapioca//lib/tapioca/gem/pipeline.rb#153
2035
+ # Events handling
2036
+ #
2037
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#172
1886
2038
  sig { returns(::Tapioca::Gem::Event) }
1887
2039
  def next_event; end
1888
2040
 
1889
- # source://tapioca//lib/tapioca/gem/pipeline.rb#181
2041
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#200
1890
2042
  sig { params(event: ::Tapioca::Gem::ConstantFound).void }
1891
2043
  def on_constant(event); end
1892
2044
 
1893
- # source://tapioca//lib/tapioca/gem/pipeline.rb#199
2045
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#212
1894
2046
  sig { params(event: ::Tapioca::Gem::NodeAdded).void }
1895
2047
  def on_node(event); end
1896
2048
 
1897
- # source://tapioca//lib/tapioca/gem/pipeline.rb#172
2049
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#191
1898
2050
  sig { params(event: ::Tapioca::Gem::SymbolFound).void }
1899
2051
  def on_symbol(event); end
1900
2052
 
1901
- # source://tapioca//lib/tapioca/gem/pipeline.rb#393
2053
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#452
2054
+ sig { params(name: ::String).void }
2055
+ def seen!(name); end
2056
+
2057
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#457
1902
2058
  sig { params(name: ::String).returns(T::Boolean) }
1903
2059
  def seen?(name); end
2060
+
2061
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#391
2062
+ sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2063
+ def skip_alias?(name, constant); end
2064
+
2065
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#379
2066
+ sig { params(name: ::String, constant: T.anything).returns(T::Boolean) }
2067
+ def skip_constant?(name, constant); end
2068
+
2069
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#408
2070
+ sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2071
+ def skip_foreign_constant?(name, constant); end
2072
+
2073
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#413
2074
+ sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2075
+ def skip_module?(name, constant); end
2076
+
2077
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#400
2078
+ sig { params(name: ::String, constant: ::BasicObject).returns(T::Boolean) }
2079
+ def skip_object?(name, constant); end
2080
+
2081
+ # Constants and properties filtering
2082
+ #
2083
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#374
2084
+ sig { params(name: ::String).returns(T::Boolean) }
2085
+ def skip_symbol?(name); end
1904
2086
  end
1905
2087
 
2088
+ # this looks something like:
2089
+ # "(eval at /path/to/file.rb:123)"
2090
+ # and we are just interested in the "/path/to/file.rb" part
2091
+ #
2092
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#116
2093
+ Tapioca::Gem::Pipeline::EVAL_SOURCE_FILE_PATTERN = T.let(T.unsafe(nil), Regexp)
2094
+
1906
2095
  # source://tapioca//lib/tapioca/gem/pipeline.rb#11
1907
2096
  Tapioca::Gem::Pipeline::IGNORED_SYMBOLS = T.let(T.unsafe(nil), Array)
1908
2097
 
@@ -1953,189 +2142,170 @@ module Tapioca::GemHelper
1953
2142
  def path_in_dir?(path, dir); end
1954
2143
  end
1955
2144
 
1956
- # source://tapioca//lib/tapioca/gemfile.rb#5
2145
+ # source://tapioca//lib/tapioca/gemfile.rb#7
1957
2146
  class Tapioca::Gemfile
1958
- # source://tapioca//lib/tapioca/gemfile.rb#69
1959
- sig { params(exclude: T::Array[::String]).void }
1960
- def initialize(exclude); end
2147
+ # source://tapioca//lib/tapioca/gemfile.rb#27
2148
+ sig { params(excluded_gems: T::Array[::String]).void }
2149
+ def initialize(excluded_gems); end
1961
2150
 
1962
- # source://tapioca//lib/tapioca/gemfile.rb#60
2151
+ # source://tapioca//lib/tapioca/gemfile.rb#18
1963
2152
  sig { returns(::Bundler::Definition) }
1964
2153
  def definition; end
1965
2154
 
1966
- # source://tapioca//lib/tapioca/gemfile.rb#63
2155
+ # source://tapioca//lib/tapioca/gemfile.rb#21
1967
2156
  sig { returns(T::Array[::Tapioca::Gemfile::GemSpec]) }
1968
2157
  def dependencies; end
1969
2158
 
1970
- # source://tapioca//lib/tapioca/gemfile.rb#80
2159
+ # source://tapioca//lib/tapioca/gemfile.rb#40
1971
2160
  sig { params(gem_name: ::String).returns(T.nilable(::Tapioca::Gemfile::GemSpec)) }
1972
2161
  def gem(gem_name); end
1973
2162
 
1974
- # source://tapioca//lib/tapioca/gemfile.rb#66
2163
+ # source://tapioca//lib/tapioca/gemfile.rb#24
1975
2164
  sig { returns(T::Array[::String]) }
1976
2165
  def missing_specs; end
1977
2166
 
1978
- # source://tapioca//lib/tapioca/gemfile.rb#85
2167
+ # source://tapioca//lib/tapioca/gemfile.rb#45
1979
2168
  sig { void }
1980
2169
  def require_bundle; end
1981
2170
 
1982
2171
  private
1983
2172
 
1984
- # source://tapioca//lib/tapioca/gemfile.rb#130
2173
+ # source://tapioca//lib/tapioca/gemfile.rb#92
1985
2174
  sig { returns(::String) }
1986
2175
  def dir; end
1987
2176
 
1988
- # source://tapioca//lib/tapioca/gemfile.rb#92
2177
+ # source://tapioca//lib/tapioca/gemfile.rb#54
1989
2178
  sig { returns(::File) }
1990
2179
  def gemfile; end
1991
2180
 
1992
- # source://tapioca//lib/tapioca/gemfile.rb#125
2181
+ # source://tapioca//lib/tapioca/gemfile.rb#87
1993
2182
  sig { returns(T::Array[::Symbol]) }
1994
2183
  def groups; end
1995
2184
 
1996
- # source://tapioca//lib/tapioca/gemfile.rb#95
2185
+ # source://tapioca//lib/tapioca/gemfile.rb#57
1997
2186
  sig { returns([T::Array[::Tapioca::Gemfile::GemSpec], T::Array[::String]]) }
1998
2187
  def load_dependencies; end
1999
2188
 
2000
2189
  # @return [File]
2001
2190
  #
2002
- # source://tapioca//lib/tapioca/gemfile.rb#92
2191
+ # source://tapioca//lib/tapioca/gemfile.rb#54
2003
2192
  def lockfile; end
2004
2193
 
2005
- # source://tapioca//lib/tapioca/gemfile.rb#106
2194
+ # source://tapioca//lib/tapioca/gemfile.rb#68
2006
2195
  sig { returns([T::Enumerable[T.any(::Bundler::StubSpecification, ::Gem::Specification)], T::Array[::String]]) }
2007
2196
  def materialize_deps; end
2008
2197
 
2009
- # source://tapioca//lib/tapioca/gemfile.rb#120
2198
+ # source://tapioca//lib/tapioca/gemfile.rb#82
2010
2199
  sig { returns(::Bundler::Runtime) }
2011
2200
  def runtime; end
2012
2201
  end
2013
2202
 
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
2203
+ # source://tapioca//lib/tapioca/gemfile.rb#96
2038
2204
  class Tapioca::Gemfile::GemSpec
2039
2205
  include ::Tapioca::GemHelper
2040
2206
 
2041
- # source://tapioca//lib/tapioca/gemfile.rb#173
2207
+ # source://tapioca//lib/tapioca/gemfile.rb#136
2042
2208
  sig { params(spec: T.any(::Bundler::StubSpecification, ::Gem::Specification)).void }
2043
2209
  def initialize(spec); end
2044
2210
 
2045
- # source://tapioca//lib/tapioca/gemfile.rb#183
2211
+ # source://tapioca//lib/tapioca/gemfile.rb#146
2046
2212
  sig { params(other: ::BasicObject).returns(T::Boolean) }
2047
2213
  def ==(other); end
2048
2214
 
2049
- # source://tapioca//lib/tapioca/gemfile.rb#203
2215
+ # source://tapioca//lib/tapioca/gemfile.rb#171
2050
2216
  sig { params(path: ::String).returns(T::Boolean) }
2051
2217
  def contains_path?(path); end
2052
2218
 
2053
- # source://tapioca//lib/tapioca/gemfile.rb#222
2219
+ # source://tapioca//lib/tapioca/gemfile.rb#161
2220
+ sig { returns(T::Array[::Gem::Dependency]) }
2221
+ def dependencies; end
2222
+
2223
+ # source://tapioca//lib/tapioca/gemfile.rb#190
2054
2224
  sig { returns(T::Boolean) }
2055
2225
  def export_rbi_files?; end
2056
2226
 
2057
- # source://tapioca//lib/tapioca/gemfile.rb#217
2227
+ # source://tapioca//lib/tapioca/gemfile.rb#185
2058
2228
  sig { returns(T::Array[::String]) }
2059
2229
  def exported_rbi_files; end
2060
2230
 
2061
- # source://tapioca//lib/tapioca/gemfile.rb#227
2231
+ # source://tapioca//lib/tapioca/gemfile.rb#195
2062
2232
  sig { returns(::RBI::MergeTree) }
2063
2233
  def exported_rbi_tree; end
2064
2234
 
2065
- # source://tapioca//lib/tapioca/gemfile.rb#170
2235
+ # source://tapioca//lib/tapioca/gemfile.rb#133
2066
2236
  sig { returns(T::Array[::Pathname]) }
2067
2237
  def files; end
2068
2238
 
2069
- # source://tapioca//lib/tapioca/gemfile.rb#167
2239
+ # source://tapioca//lib/tapioca/gemfile.rb#130
2070
2240
  sig { returns(::String) }
2071
2241
  def full_gem_path; end
2072
2242
 
2073
- # source://tapioca//lib/tapioca/gemfile.rb#188
2243
+ # source://tapioca//lib/tapioca/gemfile.rb#151
2074
2244
  sig { params(gemfile_dir: ::String).returns(T::Boolean) }
2075
2245
  def ignore?(gemfile_dir); end
2076
2246
 
2077
- # source://tapioca//lib/tapioca/gemfile.rb#193
2247
+ # source://tapioca//lib/tapioca/gemfile.rb#156
2078
2248
  sig { returns(::String) }
2079
2249
  def name; end
2080
2250
 
2081
- # source://tapioca//lib/tapioca/gemfile.rb#212
2251
+ # source://tapioca//lib/tapioca/gemfile.rb#180
2082
2252
  sig { void }
2083
2253
  def parse_yard_docs; end
2084
2254
 
2085
- # source://tapioca//lib/tapioca/gemfile.rb#198
2255
+ # source://tapioca//lib/tapioca/gemfile.rb#166
2086
2256
  sig { returns(::String) }
2087
2257
  def rbi_file_name; end
2088
2258
 
2089
- # source://tapioca//lib/tapioca/gemfile.rb#239
2259
+ # source://tapioca//lib/tapioca/gemfile.rb#207
2090
2260
  sig { params(file: ::Pathname).returns(::Pathname) }
2091
2261
  def relative_path_for(file); end
2092
2262
 
2093
2263
  # @return [String]
2094
2264
  #
2095
- # source://tapioca//lib/tapioca/gemfile.rb#167
2265
+ # source://tapioca//lib/tapioca/gemfile.rb#130
2096
2266
  def version; end
2097
2267
 
2098
2268
  private
2099
2269
 
2100
- # source://tapioca//lib/tapioca/gemfile.rb#250
2270
+ # source://tapioca//lib/tapioca/gemfile.rb#218
2101
2271
  sig { returns(T::Array[::Pathname]) }
2102
2272
  def collect_files; end
2103
2273
 
2104
- # source://tapioca//lib/tapioca/gemfile.rb#265
2274
+ # source://tapioca//lib/tapioca/gemfile.rb#233
2105
2275
  sig { returns(T.nilable(T::Boolean)) }
2106
2276
  def default_gem?; end
2107
2277
 
2108
- # source://tapioca//lib/tapioca/gemfile.rb#323
2278
+ # source://tapioca//lib/tapioca/gemfile.rb#292
2109
2279
  sig { returns(T::Boolean) }
2110
2280
  def gem_ignored?; end
2111
2281
 
2112
- # source://tapioca//lib/tapioca/gemfile.rb#302
2282
+ # source://tapioca//lib/tapioca/gemfile.rb#271
2113
2283
  sig { params(path: ::String).returns(T::Boolean) }
2114
2284
  def has_parent_gemspec?(path); end
2115
2285
 
2116
- # source://tapioca//lib/tapioca/gemfile.rb#270
2286
+ # source://tapioca//lib/tapioca/gemfile.rb#238
2117
2287
  sig { returns(::Regexp) }
2118
2288
  def require_paths_prefix_matcher; end
2119
2289
 
2120
- # source://tapioca//lib/tapioca/gemfile.rb#281
2290
+ # source://tapioca//lib/tapioca/gemfile.rb#250
2121
2291
  sig { params(file: ::String).returns(::Pathname) }
2122
2292
  def resolve_to_ruby_lib_dir(file); end
2123
2293
 
2124
- # source://tapioca//lib/tapioca/gemfile.rb#295
2294
+ # source://tapioca//lib/tapioca/gemfile.rb#264
2125
2295
  sig { returns(::String) }
2126
2296
  def version_string; end
2127
2297
 
2128
2298
  class << self
2129
- # source://tapioca//lib/tapioca/gemfile.rb#142
2299
+ # source://tapioca//lib/tapioca/gemfile.rb#104
2130
2300
  sig { returns(T::Hash[::String, ::Tapioca::Gemfile::GemSpec]) }
2131
2301
  def spec_lookup_by_file_path; end
2132
2302
  end
2133
2303
  end
2134
2304
 
2135
- # source://tapioca//lib/tapioca/gemfile.rb#154
2305
+ # source://tapioca//lib/tapioca/gemfile.rb#116
2136
2306
  Tapioca::Gemfile::GemSpec::IGNORED_GEMS = T.let(T.unsafe(nil), Array)
2137
2307
 
2138
- # source://tapioca//lib/tapioca/gemfile.rb#8
2308
+ # source://tapioca//lib/tapioca/gemfile.rb#10
2139
2309
  Tapioca::Gemfile::Spec = T.type_alias { T.any(::Bundler::StubSpecification, ::Gem::Specification) }
2140
2310
 
2141
2311
  # source://tapioca//lib/tapioca/loaders/loader.rb#5
@@ -2143,73 +2313,89 @@ module Tapioca::Loaders; end
2143
2313
 
2144
2314
  # source://tapioca//lib/tapioca/loaders/dsl.rb#6
2145
2315
  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
2316
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#38
2317
+ sig do
2318
+ params(
2319
+ tapioca_path: ::String,
2320
+ eager_load: T::Boolean,
2321
+ app_root: ::String,
2322
+ halt_upon_load_error: T::Boolean
2323
+ ).void
2324
+ end
2325
+ def initialize(tapioca_path:, eager_load: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end
2149
2326
 
2150
- # source://tapioca//lib/tapioca/loaders/dsl.rb#20
2327
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#27
2151
2328
  sig { override.void }
2152
2329
  def load; end
2153
2330
 
2154
2331
  protected
2155
2332
 
2156
- # source://tapioca//lib/tapioca/loaders/dsl.rb#61
2333
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#81
2157
2334
  sig { void }
2158
2335
  def load_application; end
2159
2336
 
2160
- # source://tapioca//lib/tapioca/loaders/dsl.rb#43
2337
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#63
2161
2338
  sig { void }
2162
2339
  def load_dsl_compilers; end
2163
2340
 
2164
- # source://tapioca//lib/tapioca/loaders/dsl.rb#38
2341
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#48
2165
2342
  sig { void }
2166
2343
  def load_dsl_extensions; end
2167
2344
 
2168
2345
  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
2346
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#15
2347
+ sig do
2348
+ params(
2349
+ tapioca_path: ::String,
2350
+ eager_load: T::Boolean,
2351
+ app_root: ::String,
2352
+ halt_upon_load_error: T::Boolean
2353
+ ).void
2354
+ end
2355
+ def load_application(tapioca_path:, eager_load: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end
2172
2356
  end
2173
2357
  end
2174
2358
 
2175
2359
  # source://tapioca//lib/tapioca/loaders/gem.rb#6
2176
2360
  class Tapioca::Loaders::Gem < ::Tapioca::Loaders::Loader
2177
- # source://tapioca//lib/tapioca/loaders/gem.rb#46
2361
+ # source://tapioca//lib/tapioca/loaders/gem.rb#49
2178
2362
  sig do
2179
2363
  params(
2180
2364
  bundle: ::Tapioca::Gemfile,
2181
2365
  prerequire: T.nilable(::String),
2182
2366
  postrequire: ::String,
2183
- default_command: ::String
2367
+ default_command: ::String,
2368
+ halt_upon_load_error: T::Boolean
2184
2369
  ).void
2185
2370
  end
2186
- def initialize(bundle:, prerequire:, postrequire:, default_command:); end
2371
+ def initialize(bundle:, prerequire:, postrequire:, default_command:, halt_upon_load_error:); end
2187
2372
 
2188
- # source://tapioca//lib/tapioca/loaders/gem.rb#32
2373
+ # source://tapioca//lib/tapioca/loaders/gem.rb#34
2189
2374
  sig { override.void }
2190
2375
  def load; end
2191
2376
 
2192
2377
  protected
2193
2378
 
2194
- # source://tapioca//lib/tapioca/loaders/gem.rb#76
2379
+ # source://tapioca//lib/tapioca/loaders/gem.rb#80
2195
2380
  sig { params(file: ::String, error: ::LoadError).void }
2196
2381
  def explain_failed_require(file, error); end
2197
2382
 
2198
- # source://tapioca//lib/tapioca/loaders/gem.rb#56
2383
+ # source://tapioca//lib/tapioca/loaders/gem.rb#60
2199
2384
  sig { void }
2200
2385
  def require_gem_file; end
2201
2386
 
2202
2387
  class << self
2203
- # source://tapioca//lib/tapioca/loaders/gem.rb#20
2388
+ # source://tapioca//lib/tapioca/loaders/gem.rb#21
2204
2389
  sig do
2205
2390
  params(
2206
2391
  bundle: ::Tapioca::Gemfile,
2207
2392
  prerequire: T.nilable(::String),
2208
2393
  postrequire: ::String,
2209
- default_command: ::String
2394
+ default_command: ::String,
2395
+ halt_upon_load_error: T::Boolean
2210
2396
  ).void
2211
2397
  end
2212
- def load_application(bundle:, prerequire:, postrequire:, default_command:); end
2398
+ def load_application(bundle:, prerequire:, postrequire:, default_command:, halt_upon_load_error:); end
2213
2399
  end
2214
2400
  end
2215
2401
 
@@ -2235,68 +2421,82 @@ class Tapioca::Loaders::Loader
2235
2421
 
2236
2422
  private
2237
2423
 
2238
- # source://tapioca//lib/tapioca/loaders/loader.rb#182
2424
+ # Rails 7.2 renamed `eager_load_paths` to `all_eager_load_paths`, which maintains the same original functionality.
2425
+ # The `eager_load_paths` method still exists, but doesn't return all paths anymore and causes Tapioca to miss some
2426
+ # engine paths. The following commit is the change:
2427
+ # https://github.com/rails/rails/commit/ebfca905db14020589c22e6937382e6f8f687664
2428
+ #
2429
+ # @param engine [T.class_of(Rails::Engine)]
2430
+ # @return [Array<String>]
2431
+ #
2432
+ # source://sorbet-runtime/0.5.11218/lib/types/private/methods/_methods.rb#252
2433
+ def eager_load_paths(*args, **_arg1, &blk); end
2434
+
2435
+ # source://tapioca//lib/tapioca/loaders/loader.rb#198
2239
2436
  sig { void }
2240
2437
  def eager_load_rails_app; end
2241
2438
 
2242
2439
  # @return [Array<T.class_of(Rails::Engine)>]
2243
2440
  #
2244
- # source://tapioca//lib/tapioca/loaders/loader.rb#153
2441
+ # source://tapioca//lib/tapioca/loaders/loader.rb#169
2245
2442
  def engines; end
2246
2443
 
2247
- # source://tapioca//lib/tapioca/loaders/loader.rb#24
2444
+ # source://tapioca//lib/tapioca/loaders/loader.rb#29
2248
2445
  sig do
2249
2446
  params(
2250
2447
  gemfile: ::Tapioca::Gemfile,
2251
2448
  initialize_file: T.nilable(::String),
2252
- require_file: T.nilable(::String)
2449
+ require_file: T.nilable(::String),
2450
+ halt_upon_load_error: T::Boolean
2253
2451
  ).void
2254
2452
  end
2255
- def load_bundle(gemfile, initialize_file, require_file); end
2453
+ def load_bundle(gemfile, initialize_file, require_file, halt_upon_load_error); end
2256
2454
 
2257
- # source://tapioca//lib/tapioca/loaders/loader.rb#111
2455
+ # source://tapioca//lib/tapioca/loaders/loader.rb#127
2258
2456
  sig { void }
2259
2457
  def load_engines_in_classic_mode; end
2260
2458
 
2261
- # source://tapioca//lib/tapioca/loaders/loader.rb#89
2459
+ # source://tapioca//lib/tapioca/loaders/loader.rb#105
2262
2460
  sig { void }
2263
2461
  def load_engines_in_zeitwerk_mode; end
2264
2462
 
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
2463
+ # source://tapioca//lib/tapioca/loaders/loader.rb#49
2464
+ sig do
2465
+ params(
2466
+ environment_load: T::Boolean,
2467
+ eager_load: T::Boolean,
2468
+ app_root: ::String,
2469
+ halt_upon_load_error: T::Boolean
2470
+ ).void
2471
+ end
2472
+ 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
2473
 
2269
- # source://tapioca//lib/tapioca/loaders/loader.rb#64
2474
+ # source://tapioca//lib/tapioca/loaders/loader.rb#80
2270
2475
  sig { void }
2271
2476
  def load_rails_engines; end
2272
2477
 
2273
- # source://tapioca//lib/tapioca/loaders/loader.rb#203
2478
+ # source://tapioca//lib/tapioca/loaders/loader.rb#219
2274
2479
  sig { params(file: T.nilable(::String)).void }
2275
2480
  def require_helper(file); end
2276
2481
 
2277
- # source://tapioca//lib/tapioca/loaders/loader.rb#78
2482
+ # source://tapioca//lib/tapioca/loaders/loader.rb#94
2278
2483
  def run_initializers; end
2279
2484
 
2280
- # source://tapioca//lib/tapioca/loaders/loader.rb#167
2485
+ # source://tapioca//lib/tapioca/loaders/loader.rb#183
2281
2486
  sig { params(path: ::String).void }
2282
2487
  def safe_require(path); end
2283
2488
 
2284
- # source://tapioca//lib/tapioca/loaders/loader.rb#174
2489
+ # source://tapioca//lib/tapioca/loaders/loader.rb#190
2285
2490
  sig { void }
2286
2491
  def silence_deprecations; end
2287
2492
 
2288
- # source://tapioca//lib/tapioca/loaders/loader.rb#136
2493
+ # source://tapioca//lib/tapioca/loaders/loader.rb#152
2289
2494
  sig { params(blk: T.proc.void).void }
2290
2495
  def with_rails_application(&blk); end
2291
2496
 
2292
- # source://tapioca//lib/tapioca/loaders/loader.rb#129
2497
+ # source://tapioca//lib/tapioca/loaders/loader.rb#145
2293
2498
  sig { returns(T::Boolean) }
2294
2499
  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
2500
  end
2301
2501
 
2302
2502
  # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#5
@@ -2334,7 +2534,7 @@ module Tapioca::RBIFilesHelper
2334
2534
  dsl_dir: ::String,
2335
2535
  auto_strictness: T::Boolean,
2336
2536
  gems: T::Array[::Tapioca::Gemfile::GemSpec],
2337
- compilers: T::Enumerable[::Class]
2537
+ compilers: T::Enumerable[T.class_of(Tapioca::Dsl::Compiler)]
2338
2538
  ).void
2339
2539
  end
2340
2540
  def validate_rbi_files(command:, gem_dir:, dsl_dir:, auto_strictness:, gems: T.unsafe(nil), compilers: T.unsafe(nil)); end
@@ -2643,7 +2843,7 @@ module Tapioca::Runtime::GenericTypeRegistry
2643
2843
  def create_generic_type(constant, name); end
2644
2844
 
2645
2845
  # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#155
2646
- sig { params(constant: ::Class).returns(::Class) }
2846
+ sig { params(constant: T::Class[T.anything]).returns(T::Class[T.anything]) }
2647
2847
  def create_safe_subclass(constant); end
2648
2848
 
2649
2849
  # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#182
@@ -2668,6 +2868,10 @@ module Tapioca::Runtime::Reflection
2668
2868
  extend ::Tapioca::Runtime::AttachedClassOf
2669
2869
  extend ::Tapioca::Runtime::Reflection
2670
2870
 
2871
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#196
2872
+ sig { params(constant: ::Module).returns(T.untyped) }
2873
+ def abstract_type_of(constant); end
2874
+
2671
2875
  # source://tapioca//lib/tapioca/runtime/reflection.rb#77
2672
2876
  sig { params(constant: ::Module).returns(T::Array[::Module]) }
2673
2877
  def ancestors_of(constant); end
@@ -2677,7 +2881,7 @@ module Tapioca::Runtime::Reflection
2677
2881
  def are_equal?(object, other); end
2678
2882
 
2679
2883
  # source://tapioca//lib/tapioca/runtime/reflection.rb#56
2680
- sig { params(object: ::BasicObject).returns(::Class) }
2884
+ sig { params(object: ::BasicObject).returns(T::Class[T.anything]) }
2681
2885
  def class_of(object); end
2682
2886
 
2683
2887
  # @param constant [BasicObject]
@@ -2712,7 +2916,7 @@ module Tapioca::Runtime::Reflection
2712
2916
  sig do
2713
2917
  type_parameters(:U)
2714
2918
  .params(
2715
- klass: T.all(::Class, T.type_parameter(:U))
2919
+ klass: T.all(T.type_parameter(:U), T::Class[T.anything])
2716
2920
  ).returns(T::Array[T.type_parameter(:U)])
2717
2921
  end
2718
2922
  def descendants_of(klass); end
@@ -2721,6 +2925,10 @@ module Tapioca::Runtime::Reflection
2721
2925
  sig { params(constant: ::Module).returns(T::Set[::String]) }
2722
2926
  def file_candidates_for(constant); end
2723
2927
 
2928
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#202
2929
+ sig { params(constant: ::Module).returns(T::Boolean) }
2930
+ def final_module?(constant); end
2931
+
2724
2932
  # source://tapioca//lib/tapioca/runtime/reflection.rb#112
2725
2933
  sig { params(constant: ::Module).returns(T::Array[::Module]) }
2726
2934
  def inherited_ancestors_of(constant); end
@@ -2765,33 +2973,41 @@ module Tapioca::Runtime::Reflection
2765
2973
  sig { params(locations: T.nilable(T::Array[::Thread::Backtrace::Location])).returns(::String) }
2766
2974
  def resolve_loc(locations); end
2767
2975
 
2976
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#207
2977
+ sig { params(constant: ::Module).returns(T::Boolean) }
2978
+ def sealed_module?(constant); end
2979
+
2768
2980
  # source://tapioca//lib/tapioca/runtime/reflection.rb#133
2769
2981
  sig { params(method: T.any(::Method, ::UnboundMethod)).returns(T.untyped) }
2770
2982
  def signature_of(method); end
2771
2983
 
2772
2984
  # source://tapioca//lib/tapioca/runtime/reflection.rb#72
2773
- sig { params(constant: ::Module).returns(::Class) }
2985
+ sig { params(constant: ::Module).returns(T::Class[T.anything]) }
2774
2986
  def singleton_class_of(constant); end
2775
2987
 
2776
2988
  # source://tapioca//lib/tapioca/runtime/reflection.rb#82
2777
- sig { params(constant: ::Class).returns(T.nilable(::Class)) }
2989
+ sig { params(constant: T::Class[T.anything]).returns(T.nilable(T::Class[T.anything])) }
2778
2990
  def superclass_of(constant); end
2779
2991
 
2780
2992
  private
2781
2993
 
2782
- # source://tapioca//lib/tapioca/runtime/reflection.rb#228
2994
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#244
2783
2995
  sig { params(parent: ::Module, name: ::String).returns(T.nilable(::Module)) }
2784
2996
  def child_module_for_parent_with_name(parent, name); end
2785
2997
 
2786
- # source://tapioca//lib/tapioca/runtime/reflection.rb#239
2998
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#260
2999
+ sig { params(name: ::String).returns(T::Boolean) }
3000
+ def has_aliased_namespace?(name); end
3001
+
3002
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#255
2787
3003
  sig { params(method: ::UnboundMethod).returns(T::Boolean) }
2788
3004
  def method_defined_by_forwardable_module?(method); end
2789
3005
 
2790
- # source://tapioca//lib/tapioca/runtime/reflection.rb#214
3006
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#230
2791
3007
  sig { params(constant: ::Module).returns(T::Array[::UnboundMethod]) }
2792
3008
  def methods_for(constant); end
2793
3009
 
2794
- # source://tapioca//lib/tapioca/runtime/reflection.rb#198
3010
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#214
2795
3011
  sig { params(constant: ::Module).returns(T::Array[::UnboundMethod]) }
2796
3012
  def relevant_methods_for(constant); end
2797
3013
  end
@@ -3031,15 +3247,15 @@ Tapioca::SORBET_DIR = T.let(T.unsafe(nil), String)
3031
3247
 
3032
3248
  # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#5
3033
3249
  module Tapioca::SorbetHelper
3034
- # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#33
3250
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#32
3035
3251
  sig { params(sorbet_args: ::String).returns(::Spoom::ExecResult) }
3036
3252
  def sorbet(*sorbet_args); end
3037
3253
 
3038
- # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#38
3254
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#37
3039
3255
  sig { returns(::String) }
3040
3256
  def sorbet_path; end
3041
3257
 
3042
- # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#45
3258
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#44
3043
3259
  sig { params(feature: ::Symbol, version: T.nilable(::Gem::Version)).returns(T::Boolean) }
3044
3260
  def sorbet_supports?(feature, version: T.unsafe(nil)); end
3045
3261
  end
@@ -3105,7 +3321,7 @@ module Tapioca::Static::SymbolLoader
3105
3321
  sig { params(gem: ::Tapioca::Gemfile::GemSpec).returns(T::Set[::String]) }
3106
3322
  def engine_symbols(gem); end
3107
3323
 
3108
- # source://tapioca//lib/tapioca/static/symbol_loader.rb#40
3324
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#48
3109
3325
  sig { params(gem: ::Tapioca::Gemfile::GemSpec).returns(T::Set[::String]) }
3110
3326
  def gem_symbols(gem); end
3111
3327
 
@@ -3113,7 +3329,7 @@ module Tapioca::Static::SymbolLoader
3113
3329
  sig { returns(T::Set[::String]) }
3114
3330
  def payload_symbols; end
3115
3331
 
3116
- # source://tapioca//lib/tapioca/static/symbol_loader.rb#45
3332
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#53
3117
3333
  sig { params(paths: T::Array[::Pathname]).returns(T::Set[::String]) }
3118
3334
  def symbols_from_paths(paths); end
3119
3335
 
@@ -3121,10 +3337,10 @@ module Tapioca::Static::SymbolLoader
3121
3337
 
3122
3338
  # @return [Array<T.class_of(Rails::Engine)>]
3123
3339
  #
3124
- # source://sorbet-runtime/0.5.10826/lib/types/private/methods/_methods.rb#255
3340
+ # source://sorbet-runtime/0.5.11218/lib/types/private/methods/_methods.rb#252
3125
3341
  def engines(*args, **_arg1, &blk); end
3126
3342
 
3127
- # source://tapioca//lib/tapioca/static/symbol_loader.rb#73
3343
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#82
3128
3344
  sig { params(input: ::String, table_type: ::String).returns(::String) }
3129
3345
  def symbol_table_json_from(input, table_type: T.unsafe(nil)); end
3130
3346
  end
@@ -3164,16 +3380,16 @@ Tapioca::TAPIOCA_CONFIG_FILE = T.let(T.unsafe(nil), String)
3164
3380
  # source://tapioca//lib/tapioca.rb#34
3165
3381
  Tapioca::TAPIOCA_DIR = T.let(T.unsafe(nil), String)
3166
3382
 
3167
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#122
3383
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#108
3168
3384
  class Tapioca::TypeVariable < ::T::Types::TypeVariable
3169
3385
  # @return [TypeVariable] a new instance of TypeVariable
3170
3386
  #
3171
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#123
3387
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#109
3172
3388
  def initialize(name, variance); end
3173
3389
 
3174
3390
  # Returns the value of attribute name.
3175
3391
  #
3176
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#128
3392
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#114
3177
3393
  def name; end
3178
3394
  end
3179
3395
 
@@ -3183,69 +3399,55 @@ end
3183
3399
  # need to do any matching of constants to type variables to bind their names, Ruby will
3184
3400
  # do that automatically for us and we get the `name` method for free from `Module`.
3185
3401
  #
3186
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#136
3402
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#122
3187
3403
  class Tapioca::TypeVariableModule < ::Module
3188
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#158
3404
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#146
3189
3405
  sig do
3190
3406
  params(
3191
3407
  context: ::Module,
3192
3408
  type: ::Tapioca::TypeVariableModule::Type,
3193
3409
  variance: ::Symbol,
3194
- fixed: T.untyped,
3195
- lower: T.untyped,
3196
- upper: T.untyped,
3197
3410
  bounds_proc: T.nilable(T.proc.returns(T::Hash[::Symbol, T.untyped]))
3198
3411
  ).void
3199
3412
  end
3200
- def initialize(context, type, variance, fixed, lower, upper, bounds_proc); end
3413
+ def initialize(context, type, variance, bounds_proc); end
3201
3414
 
3202
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#212
3415
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#181
3203
3416
  sig { returns(::Tapioca::TypeVariable) }
3204
3417
  def coerce_to_type_variable; end
3205
3418
 
3206
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#192
3419
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#161
3207
3420
  sig { returns(T::Boolean) }
3208
3421
  def fixed?; end
3209
3422
 
3210
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#173
3423
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#155
3211
3424
  sig { returns(T.nilable(::String)) }
3212
3425
  def name; end
3213
3426
 
3214
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#197
3427
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#166
3215
3428
  sig { returns(::String) }
3216
3429
  def serialize; end
3217
3430
 
3431
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#136
3432
+ sig { returns(::Tapioca::TypeVariableModule::Type) }
3433
+ def type; end
3434
+
3218
3435
  private
3219
3436
 
3220
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#246
3437
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#188
3221
3438
  sig { returns(T::Hash[::Symbol, T.untyped]) }
3222
3439
  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
3440
  end
3243
3441
 
3244
- # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#139
3442
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#133
3443
+ Tapioca::TypeVariableModule::DEFAULT_BOUNDS_PROC = T.let(T.unsafe(nil), Proc)
3444
+
3445
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#125
3245
3446
  class Tapioca::TypeVariableModule::Type < ::T::Enum
3246
3447
  enums do
3247
3448
  Member = new
3248
3449
  Template = new
3450
+ HasAttachedClass = new
3249
3451
  end
3250
3452
  end
3251
3453
 
@@ -3263,14 +3465,14 @@ class URI::Source < ::URI::File
3263
3465
  sig { params(v: T.nilable(::String)).returns(T::Boolean) }
3264
3466
  def check_host(v); end
3265
3467
 
3266
- # source://uri/0.12.1/uri/generic.rb#243
3468
+ # source://uri/0.13.0/uri/generic.rb#243
3267
3469
  def gem_name; end
3268
3470
 
3269
3471
  # source://tapioca//lib/tapioca/helpers/source_uri.rb#25
3270
3472
  sig { returns(T.nilable(::String)) }
3271
3473
  def gem_version; end
3272
3474
 
3273
- # source://uri/0.12.1/uri/generic.rb#283
3475
+ # source://uri/0.13.0/uri/generic.rb#283
3274
3476
  def line_number; end
3275
3477
 
3276
3478
  # source://tapioca//lib/tapioca/helpers/source_uri.rb#51