openfeature-sdk-sorbet 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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 +12 -3
  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 +2 -2
  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