mangrove 0.30.1 → 0.34.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +107 -43
  3. data/lib/mangrove/result.rb +78 -0
  4. data/lib/mangrove/version.rb +1 -1
  5. data/lib/tapioca/dsl/compilers/mangrove_enum.rb +7 -1
  6. data/sorbet/config +1 -0
  7. data/sorbet/rbi/gems/benchmark@0.4.0.rbi +618 -0
  8. data/sorbet/rbi/gems/date@3.4.1.rbi +75 -0
  9. data/sorbet/rbi/gems/{docile@1.4.0.rbi → docile@1.4.1.rbi} +2 -1
  10. data/sorbet/rbi/gems/{erubi@1.12.0.rbi → erubi@1.13.1.rbi} +26 -17
  11. data/sorbet/rbi/gems/{json@2.7.2.rbi → json@2.9.1.rbi} +516 -134
  12. data/sorbet/rbi/gems/logger@1.6.5.rbi +940 -0
  13. data/sorbet/rbi/gems/{parallel@1.24.0.rbi → parallel@1.26.3.rbi} +31 -21
  14. data/sorbet/rbi/gems/{parser@3.3.2.0.rbi → parser@3.3.7.0.rbi} +23 -1736
  15. data/sorbet/rbi/gems/{prism@0.29.0.rbi → prism@1.3.0.rbi} +13817 -10401
  16. data/sorbet/rbi/gems/{psych@5.1.2.rbi → psych@5.2.3.rbi} +289 -236
  17. data/sorbet/rbi/gems/{racc@1.8.0.rbi → racc@1.8.1.rbi} +0 -4
  18. data/sorbet/rbi/gems/rbi@0.2.3.rbi +4542 -0
  19. data/sorbet/rbi/gems/rbs@3.8.1.rbi +6882 -0
  20. data/sorbet/rbi/gems/{rdoc@6.7.0.rbi → rdoc@6.11.0.rbi} +1115 -1058
  21. data/sorbet/rbi/gems/{regexp_parser@2.9.2.rbi → regexp_parser@2.10.0.rbi} +193 -170
  22. data/sorbet/rbi/gems/{rspec-core@3.13.0.rbi → rspec-core@3.13.2.rbi} +146 -280
  23. data/sorbet/rbi/gems/{rspec-expectations@3.13.0.rbi → rspec-expectations@3.13.3.rbi} +323 -294
  24. data/sorbet/rbi/gems/{rspec-mocks@3.13.1.rbi → rspec-mocks@3.13.2.rbi} +46 -46
  25. data/sorbet/rbi/gems/{rspec-support@3.13.1.rbi → rspec-support@3.13.2.rbi} +22 -22
  26. data/sorbet/rbi/gems/ruboclean@0.7.1.rbi +473 -0
  27. data/sorbet/rbi/gems/{rubocop-ast@1.31.3.rbi → rubocop-ast@1.37.0.rbi} +1293 -745
  28. data/sorbet/rbi/gems/{rubocop-rspec@2.30.0.rbi → rubocop-rspec@3.4.0.rbi} +341 -1073
  29. data/sorbet/rbi/gems/{rubocop@1.64.1.rbi → rubocop@1.70.0.rbi} +5693 -3796
  30. data/sorbet/rbi/gems/{simplecov-html@0.12.3.rbi → simplecov-html@0.13.1.rbi} +77 -68
  31. data/sorbet/rbi/gems/{spoom@1.3.2.rbi → spoom@1.5.1.rbi} +2306 -1701
  32. data/sorbet/rbi/gems/{stringio@3.1.0.rbi → stringio@3.1.2.rbi} +1 -0
  33. data/sorbet/rbi/gems/{tapioca@0.14.3.rbi → tapioca@0.16.8.rbi} +411 -332
  34. data/sorbet/rbi/gems/{thor@1.3.1.rbi → thor@1.3.2.rbi} +57 -31
  35. data/sorbet/rbi/gems/unicode-display_width@3.1.4.rbi +132 -0
  36. data/sorbet/rbi/gems/unicode-emoji@4.0.4.rbi +251 -0
  37. data/sorbet/rbi/gems/{webrick@1.8.1.rbi → webrick@1.9.1.rbi} +92 -72
  38. data/sorbet/rbi/gems/{yard-sorbet@0.8.1.rbi → yard-sorbet@0.9.0.rbi} +36 -29
  39. data/sorbet/rbi/gems/{yard@0.9.36.rbi → yard@0.9.37.rbi} +393 -235
  40. metadata +39 -42
  41. data/sorbet/rbi/gems/rbi@0.1.13.rbi +0 -3078
  42. data/sorbet/rbi/gems/rexml@3.2.8.rbi +0 -4794
  43. data/sorbet/rbi/gems/ruboclean@0.6.0.rbi +0 -315
  44. data/sorbet/rbi/gems/rubocop-capybara@2.20.0.rbi +0 -1208
  45. data/sorbet/rbi/gems/rubocop-factory_bot@2.25.1.rbi +0 -928
  46. data/sorbet/rbi/gems/rubocop-rspec_rails@2.28.3.rbi +0 -911
  47. data/sorbet/rbi/gems/strscan@3.1.0.rbi +0 -9
  48. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +0 -65
  49. /data/sorbet/rbi/gems/{io-console@0.7.2.rbi → io-console@0.8.0.rbi} +0 -0
  50. /data/sorbet/rbi/gems/{reline@0.5.8.rbi → reline@0.6.0.rbi} +0 -0
  51. /data/sorbet/rbi/gems/{ruby-lsp@0.17.2.rbi → ruby-lsp@0.23.6.rbi} +0 -0
@@ -55,7 +55,7 @@ module RBI; end
55
55
 
56
56
  # source://tapioca//lib/tapioca/rbi_ext/model.rb#5
57
57
  class RBI::Tree < ::RBI::NodeWithComments
58
- # source://rbi/0.1.13/lib/rbi/model.rb#119
58
+ # source://rbi/0.2.3/lib/rbi/model.rb#121
59
59
  sig do
60
60
  params(
61
61
  loc: T.nilable(::RBI::Loc),
@@ -65,19 +65,15 @@ class RBI::Tree < ::RBI::NodeWithComments
65
65
  end
66
66
  def initialize(loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
67
67
 
68
- # source://rbi/0.1.13/lib/rbi/model.rb#126
68
+ # source://rbi/0.2.3/lib/rbi/model.rb#128
69
69
  sig { params(node: ::RBI::Node).void }
70
70
  def <<(node); end
71
71
 
72
- # source://rbi/0.1.13/lib/rbi/printer.rb#226
73
- sig { override.params(v: ::RBI::Printer).void }
74
- def accept_printer(v); end
75
-
76
- # source://rbi/0.1.13/lib/rbi/rewriters/add_sig_templates.rb#66
72
+ # source://rbi/0.2.3/lib/rbi/rewriters/add_sig_templates.rb#66
77
73
  sig { params(with_todo_comment: T::Boolean).void }
78
74
  def add_sig_templates!(with_todo_comment: T.unsafe(nil)); end
79
75
 
80
- # source://rbi/0.1.13/lib/rbi/rewriters/annotate.rb#49
76
+ # source://rbi/0.2.3/lib/rbi/rewriters/annotate.rb#49
81
77
  sig { params(annotation: ::String, annotate_scopes: T::Boolean, annotate_properties: T::Boolean).void }
82
78
  def annotate!(annotation, annotate_scopes: T.unsafe(nil), annotate_properties: T.unsafe(nil)); end
83
79
 
@@ -103,31 +99,19 @@ class RBI::Tree < ::RBI::NodeWithComments
103
99
  sig { params(name: ::String).void }
104
100
  def create_include(name); end
105
101
 
106
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#89
102
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#90
107
103
  sig do
108
104
  params(
109
105
  name: ::String,
110
106
  parameters: T::Array[::RBI::TypedParam],
111
- return_type: ::String,
107
+ return_type: T.nilable(::String),
112
108
  class_method: T::Boolean,
113
109
  visibility: ::RBI::Visibility,
114
- comments: T::Array[::RBI::Comment]
115
- ).void
116
- end
117
- def create_method(name, parameters: T.unsafe(nil), return_type: T.unsafe(nil), class_method: T.unsafe(nil), visibility: T.unsafe(nil), comments: T.unsafe(nil)); end
118
-
119
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#113
120
- sig do
121
- params(
122
- name: ::String,
123
- sigs: T::Array[::RBI::Sig],
124
- parameters: T::Array[::RBI::Param],
125
- class_method: T::Boolean,
126
- visibility: ::RBI::Visibility,
127
- comments: T::Array[::RBI::Comment]
110
+ comments: T::Array[::RBI::Comment],
111
+ block: T.nilable(T.proc.params(node: ::RBI::Method).void)
128
112
  ).void
129
113
  end
130
- def create_method_with_sigs(name, sigs:, parameters: T.unsafe(nil), class_method: T.unsafe(nil), visibility: T.unsafe(nil), comments: T.unsafe(nil)); end
114
+ def create_method(name, parameters: T.unsafe(nil), return_type: T.unsafe(nil), class_method: T.unsafe(nil), visibility: T.unsafe(nil), comments: T.unsafe(nil), &block); end
131
115
 
132
116
  # source://tapioca//lib/tapioca/rbi_ext/model.rb#60
133
117
  sig { params(name: ::String).void }
@@ -141,16 +125,6 @@ class RBI::Tree < ::RBI::NodeWithComments
141
125
  sig { params(constant: ::Module, block: T.nilable(T.proc.params(scope: ::RBI::Scope).void)).returns(::RBI::Scope) }
142
126
  def create_path(constant, &block); end
143
127
 
144
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#135
145
- sig do
146
- params(
147
- parameters: T::Hash[T.any(::String, ::Symbol), ::String],
148
- type_parameters: T::Array[::String],
149
- return_type: ::String
150
- ).returns(::RBI::Sig)
151
- end
152
- def create_sig(parameters:, type_parameters: T.unsafe(nil), return_type: T.unsafe(nil)); end
153
-
154
128
  # source://tapioca//lib/tapioca/rbi_ext/model.rb#74
155
129
  sig do
156
130
  params(
@@ -164,27 +138,35 @@ class RBI::Tree < ::RBI::NodeWithComments
164
138
  end
165
139
  def create_type_variable(name, type:, variance: T.unsafe(nil), fixed: T.unsafe(nil), upper: T.unsafe(nil), lower: T.unsafe(nil)); end
166
140
 
167
- # source://rbi/0.1.13/lib/rbi/rewriters/deannotate.rb#41
141
+ # source://rbi/0.2.3/lib/rbi/rewriters/deannotate.rb#41
168
142
  sig { params(annotation: ::String).void }
169
143
  def deannotate!(annotation); end
170
144
 
171
- # source://rbi/0.1.13/lib/rbi/model.rb#132
145
+ # source://rbi/0.2.3/lib/rbi/model.rb#134
172
146
  sig { returns(T::Boolean) }
173
147
  def empty?; end
174
148
 
175
- # source://rbi/0.1.13/lib/rbi/rewriters/filter_versions.rb#118
149
+ # source://rbi/0.2.3/lib/rbi/rewriters/filter_versions.rb#118
176
150
  sig { params(version: ::Gem::Version).void }
177
151
  def filter_versions!(version); end
178
152
 
179
- # source://rbi/0.1.13/lib/rbi/rewriters/group_nodes.rb#38
153
+ # source://rbi/0.2.3/lib/rbi/rewriters/flatten_singleton_methods.rb#60
154
+ sig { void }
155
+ def flatten_singleton_methods!; end
156
+
157
+ # source://rbi/0.2.3/lib/rbi/rewriters/flatten_visibilities.rb#60
158
+ sig { void }
159
+ def flatten_visibilities!; end
160
+
161
+ # source://rbi/0.2.3/lib/rbi/rewriters/group_nodes.rb#81
180
162
  sig { void }
181
163
  def group_nodes!; end
182
164
 
183
- # source://rbi/0.1.13/lib/rbi/index.rb#68
165
+ # source://rbi/0.2.3/lib/rbi/index.rb#68
184
166
  sig { returns(::RBI::Index) }
185
167
  def index; end
186
168
 
187
- # source://rbi/0.1.13/lib/rbi/rewriters/merge_trees.rb#324
169
+ # source://rbi/0.2.3/lib/rbi/rewriters/merge_trees.rb#324
188
170
  sig do
189
171
  params(
190
172
  other: ::RBI::Tree,
@@ -195,44 +177,48 @@ class RBI::Tree < ::RBI::NodeWithComments
195
177
  end
196
178
  def merge(other, left_name: T.unsafe(nil), right_name: T.unsafe(nil), keep: T.unsafe(nil)); end
197
179
 
198
- # source://rbi/0.1.13/lib/rbi/rewriters/nest_non_public_methods.rb#46
180
+ # source://rbi/0.2.3/lib/rbi/rewriters/nest_non_public_members.rb#46
199
181
  sig { void }
200
- def nest_non_public_methods!; end
182
+ def nest_non_public_members!; end
201
183
 
202
- # source://rbi/0.1.13/lib/rbi/rewriters/nest_singleton_methods.rb#36
184
+ # source://rbi/0.2.3/lib/rbi/rewriters/nest_singleton_methods.rb#36
203
185
  sig { void }
204
186
  def nest_singleton_methods!; end
205
187
 
206
- # source://rbi/0.1.13/lib/rbi/model.rb#110
188
+ # source://rbi/0.2.3/lib/rbi/rewriters/nest_top_level_members.rb#63
189
+ sig { void }
190
+ def nest_top_level_members!; end
191
+
192
+ # source://rbi/0.2.3/lib/rbi/model.rb#112
207
193
  sig { returns(T::Array[::RBI::Node]) }
208
194
  def nodes; end
209
195
 
210
- # source://rbi/0.1.13/lib/rbi/printer.rb#233
211
- sig { override.returns(T::Boolean) }
212
- def oneline?; end
196
+ # source://rbi/0.2.3/lib/rbi/rewriters/attr_to_methods.rb#53
197
+ sig { void }
198
+ def replace_attributes_with_methods!; end
213
199
 
214
- # source://rbi/0.1.13/lib/rbi/rewriters/sort_nodes.rb#119
200
+ # source://rbi/0.2.3/lib/rbi/rewriters/sort_nodes.rb#119
215
201
  sig { void }
216
202
  def sort_nodes!; end
217
203
 
218
204
  private
219
205
 
220
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#150
206
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#123
221
207
  sig { params(node: ::RBI::Node).returns(::RBI::Node) }
222
208
  def create_node(node); end
223
209
 
224
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#145
210
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#118
225
211
  sig { returns(T::Hash[::String, ::RBI::Node]) }
226
212
  def nodes_cache; end
227
213
  end
228
214
 
229
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#160
215
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#133
230
216
  class RBI::TypedParam < ::T::Struct
231
217
  const :param, ::RBI::Param
232
218
  const :type, ::String
233
219
 
234
220
  class << self
235
- # source://sorbet-runtime/0.5.11414/lib/types/struct.rb#13
221
+ # source://sorbet-runtime/0.5.11766/lib/types/struct.rb#13
236
222
  def inherited(s); end
237
223
  end
238
224
  end
@@ -401,7 +387,7 @@ end
401
387
  # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#4
402
388
  module Tapioca
403
389
  class << self
404
- # source://tapioca//lib/tapioca.rb#19
390
+ # source://tapioca//lib/tapioca.rb#20
405
391
  sig do
406
392
  type_parameters(:Result)
407
393
  .params(
@@ -412,7 +398,7 @@ module Tapioca
412
398
  end
413
399
  end
414
400
 
415
- # source://tapioca//lib/tapioca.rb#37
401
+ # source://tapioca//lib/tapioca.rb#39
416
402
  Tapioca::BINARY_FILE = T.let(T.unsafe(nil), String)
417
403
 
418
404
  # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#5
@@ -452,13 +438,13 @@ module Tapioca::BundlerExt::AutoRequireHook
452
438
  end
453
439
  end
454
440
 
455
- # source://tapioca//lib/tapioca.rb#60
441
+ # source://tapioca//lib/tapioca.rb#62
456
442
  Tapioca::CENTRAL_REPO_ANNOTATIONS_DIR = T.let(T.unsafe(nil), String)
457
443
 
458
- # source://tapioca//lib/tapioca.rb#59
444
+ # source://tapioca//lib/tapioca.rb#61
459
445
  Tapioca::CENTRAL_REPO_INDEX_PATH = T.let(T.unsafe(nil), String)
460
446
 
461
- # source://tapioca//lib/tapioca.rb#58
447
+ # source://tapioca//lib/tapioca.rb#60
462
448
  Tapioca::CENTRAL_REPO_ROOT_URI = T.let(T.unsafe(nil), String)
463
449
 
464
450
  # source://tapioca//lib/tapioca/cli.rb#5
@@ -467,24 +453,24 @@ class Tapioca::Cli < ::Thor
467
453
  include ::Tapioca::ConfigHelper
468
454
  include ::Tapioca::EnvHelper
469
455
 
470
- # source://tapioca//lib/tapioca/cli.rb#361
456
+ # source://tapioca//lib/tapioca/cli.rb#377
471
457
  def __print_version; end
472
458
 
473
- # source://tapioca//lib/tapioca/cli.rb#343
459
+ # source://tapioca//lib/tapioca/cli.rb#359
474
460
  def annotations; end
475
461
 
476
- # source://tapioca//lib/tapioca/cli.rb#315
462
+ # source://tapioca//lib/tapioca/cli.rb#331
477
463
  def check_shims; end
478
464
 
479
465
  # source://tapioca//lib/tapioca/cli.rb#46
480
466
  def configure; end
481
467
 
482
- # source://tapioca//lib/tapioca/cli.rb#143
468
+ # source://tapioca//lib/tapioca/cli.rb#151
483
469
  def dsl(*constant_or_paths); end
484
470
 
485
471
  # @raise [MalformattedArgumentError]
486
472
  #
487
- # source://tapioca//lib/tapioca/cli.rb#259
473
+ # source://tapioca//lib/tapioca/cli.rb#274
488
474
  def gem(*gems); end
489
475
 
490
476
  # source://tapioca//lib/tapioca/cli.rb#27
@@ -498,11 +484,11 @@ class Tapioca::Cli < ::Thor
498
484
 
499
485
  private
500
486
 
501
- # source://tapioca//lib/tapioca/cli.rb#375
487
+ # source://tapioca//lib/tapioca/cli.rb#391
502
488
  def print_init_next_steps; end
503
489
 
504
490
  class << self
505
- # source://tapioca//lib/tapioca/cli.rb#367
491
+ # source://tapioca//lib/tapioca/cli.rb#383
506
492
  def exit_on_failure?; end
507
493
  end
508
494
  end
@@ -539,7 +525,7 @@ class Tapioca::Commands::AbstractDsl < ::Tapioca::Commands::CommandWithoutTracke
539
525
 
540
526
  abstract!
541
527
 
542
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#32
528
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#34
543
529
  sig do
544
530
  params(
545
531
  requested_constants: T::Array[::String],
@@ -557,22 +543,24 @@ class Tapioca::Commands::AbstractDsl < ::Tapioca::Commands::CommandWithoutTracke
557
543
  gem_dir: ::String,
558
544
  rbi_formatter: ::Tapioca::RBIFormatter,
559
545
  app_root: ::String,
560
- halt_upon_load_error: T::Boolean
546
+ halt_upon_load_error: T::Boolean,
547
+ compiler_options: T::Hash[::String, T.untyped],
548
+ lsp_addon: T::Boolean
561
549
  ).void
562
550
  end
563
- def initialize(requested_constants:, requested_paths:, outpath:, only:, exclude:, file_header:, tapioca_path:, skip_constant: T.unsafe(nil), quiet: T.unsafe(nil), verbose: T.unsafe(nil), number_of_workers: T.unsafe(nil), auto_strictness: T.unsafe(nil), gem_dir: T.unsafe(nil), rbi_formatter: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end
551
+ def initialize(requested_constants:, requested_paths:, outpath:, only:, exclude:, file_header:, tapioca_path:, skip_constant: T.unsafe(nil), quiet: T.unsafe(nil), verbose: T.unsafe(nil), number_of_workers: T.unsafe(nil), auto_strictness: T.unsafe(nil), gem_dir: T.unsafe(nil), rbi_formatter: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil), compiler_options: T.unsafe(nil), lsp_addon: T.unsafe(nil)); end
564
552
 
565
553
  private
566
554
 
567
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#97
555
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#107
568
556
  sig { returns(T::Array[::String]) }
569
557
  def all_requested_constants; end
570
558
 
571
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#289
559
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#306
572
560
  sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) }
573
561
  def build_error_for_files(cause, files); end
574
562
 
575
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#213
563
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#230
576
564
  sig do
577
565
  params(
578
566
  constant_name: ::String,
@@ -583,75 +571,75 @@ class Tapioca::Commands::AbstractDsl < ::Tapioca::Commands::CommandWithoutTracke
583
571
  end
584
572
  def compile_dsl_rbi(constant_name, rbi, outpath: T.unsafe(nil), quiet: T.unsafe(nil)); end
585
573
 
586
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#150
574
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#165
587
575
  sig { params(constant_names: T::Array[::String], ignore_missing: T::Boolean).returns(T::Array[::Module]) }
588
576
  def constantize(constant_names, ignore_missing: T.unsafe(nil)); end
589
577
 
590
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#173
578
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#190
591
579
  sig { params(compiler_names: T::Array[::String]).returns(T::Array[T.class_of(Tapioca::Dsl::Compiler)]) }
592
580
  def constantize_compilers(compiler_names); end
593
581
 
594
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#349
582
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#366
595
583
  sig { returns(T::Array[::String]) }
596
584
  def constants_from_requested_paths; end
597
585
 
598
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#120
586
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#133
599
587
  sig { returns(::Tapioca::Dsl::Pipeline) }
600
588
  def create_pipeline; end
601
589
 
602
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#252
590
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#269
603
591
  sig { params(constant_name: ::String).returns(::Pathname) }
604
592
  def dsl_rbi_filename(constant_name); end
605
593
 
606
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#136
594
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#151
607
595
  sig { params(requested_constants: T::Array[::String], path: ::Pathname).returns(T::Set[::Pathname]) }
608
596
  def existing_rbi_filenames(requested_constants, path: T.unsafe(nil)); end
609
597
 
610
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#344
598
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#361
611
599
  sig { params(constant: ::String).returns(::String) }
612
600
  def generate_command_for(constant); end
613
601
 
614
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#73
602
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#79
615
603
  sig { params(outpath: ::Pathname, quiet: T::Boolean).returns(T::Set[::Pathname]) }
616
604
  def generate_dsl_rbi_files(outpath, quiet:); end
617
605
 
618
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#110
606
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#120
619
607
  sig { void }
620
608
  def load_application; end
621
609
 
622
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#231
610
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#248
623
611
  sig { params(dir: ::Pathname).void }
624
612
  def perform_dsl_verification(dir); end
625
613
 
626
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#105
614
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#115
627
615
  sig { returns(::Tapioca::Dsl::Pipeline) }
628
616
  def pipeline; end
629
617
 
630
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#240
618
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#257
631
619
  sig { params(files: T::Set[::Pathname]).void }
632
620
  def purge_stale_dsl_rbi_files(files); end
633
621
 
634
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#339
622
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#356
635
623
  sig { params(constant: ::String).returns(::String) }
636
624
  def rbi_filename_for(constant); end
637
625
 
638
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#320
626
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#337
639
627
  sig { params(path: ::Pathname).returns(T::Array[::Pathname]) }
640
628
  def rbi_files_in(path); end
641
629
 
642
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#298
630
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#315
643
631
  sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void }
644
632
  def report_diff_and_exit_if_out_of_date(diff, command); end
645
633
 
646
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#193
634
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#210
647
635
  sig { params(name: ::String).returns(T.nilable(T.class_of(Tapioca::Dsl::Compiler))) }
648
636
  def resolve(name); end
649
637
 
650
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#327
638
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#344
651
639
  sig { params(class_name: ::String).returns(::String) }
652
640
  def underscore(class_name); end
653
641
 
654
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#257
642
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#274
655
643
  sig { params(tmp_dir: ::Pathname).returns(T::Hash[::String, ::Symbol]) }
656
644
  def verify_dsl_rbi(tmp_dir:); end
657
645
  end
@@ -665,7 +653,7 @@ class Tapioca::Commands::AbstractGem < ::Tapioca::Commands::Command
665
653
 
666
654
  abstract!
667
655
 
668
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#32
656
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#33
669
657
  sig do
670
658
  params(
671
659
  gem_names: T::Array[::String],
@@ -683,83 +671,71 @@ class Tapioca::Commands::AbstractGem < ::Tapioca::Commands::Command
683
671
  auto_strictness: T::Boolean,
684
672
  dsl_dir: ::String,
685
673
  rbi_formatter: ::Tapioca::RBIFormatter,
686
- halt_upon_load_error: T::Boolean
674
+ halt_upon_load_error: T::Boolean,
675
+ lsp_addon: T.nilable(T::Boolean)
687
676
  ).void
688
677
  end
689
- 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
678
+ 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), lsp_addon: T.unsafe(nil)); end
690
679
 
691
680
  private
692
681
 
693
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#223
682
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#200
694
683
  sig { returns(T::Array[::String]) }
695
684
  def added_rbis; end
696
685
 
697
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#284
686
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#261
698
687
  sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) }
699
688
  def build_error_for_files(cause, files); end
700
689
 
701
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#110
690
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#80
702
691
  sig { params(gem: ::Tapioca::Gemfile::GemSpec).void }
703
692
  def compile_gem_rbi(gem); end
704
693
 
705
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#218
694
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#195
706
695
  sig { params(gem_name: ::String).returns(::Pathname) }
707
696
  def existing_rbi(gem_name); end
708
697
 
709
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#266
698
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#243
710
699
  sig { returns(T::Hash[::String, ::String]) }
711
700
  def existing_rbis; end
712
701
 
713
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#230
702
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#207
714
703
  sig { params(gem_name: ::String).returns(::Pathname) }
715
704
  def expected_rbi(gem_name); end
716
705
 
717
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#272
706
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#249
718
707
  sig { returns(T::Hash[::String, ::String]) }
719
708
  def expected_rbis; end
720
709
 
721
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#98
722
- sig do
723
- params(
724
- gem: ::Tapioca::Gemfile::GemSpec,
725
- dependencies: T::Array[::Tapioca::Gemfile::GemSpec]
726
- ).returns(T::Array[::Tapioca::Gemfile::GemSpec])
727
- end
728
- def gem_dependencies(gem, dependencies = T.unsafe(nil)); end
729
-
730
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#235
710
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#212
731
711
  sig { params(gem_name: ::String).returns(T::Boolean) }
732
712
  def gem_rbi_exists?(gem_name); end
733
713
 
734
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#279
714
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#256
735
715
  sig { params(gem_name: ::String, version: ::String).returns(::Pathname) }
736
716
  def gem_rbi_filename(gem_name, version); end
737
717
 
738
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#77
739
- sig { params(gem_names: T::Array[::String]).returns(T::Array[::Tapioca::Gemfile::GemSpec]) }
740
- def gems_to_generate(gem_names); end
741
-
742
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#289
718
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#266
743
719
  sig { params(gem: ::Tapioca::Gemfile::GemSpec, file: ::RBI::File).void }
744
720
  def merge_with_exported_rbi(gem, file); end
745
721
 
746
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#260
722
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#237
747
723
  sig { params(old_filename: ::Pathname, new_filename: ::Pathname).void }
748
724
  def move(old_filename, new_filename); end
749
725
 
750
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#170
726
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#147
751
727
  sig { void }
752
728
  def perform_additions; end
753
729
 
754
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#143
730
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#120
755
731
  sig { void }
756
732
  def perform_removals; end
757
733
 
758
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#213
734
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#190
759
735
  sig { returns(T::Array[::String]) }
760
736
  def removed_rbis; end
761
737
 
762
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#240
738
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#217
763
739
  sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void }
764
740
  def report_diff_and_exit_if_out_of_date(diff, command); end
765
741
  end
@@ -780,11 +756,11 @@ class Tapioca::Commands::Annotations < ::Tapioca::Commands::CommandWithoutTracke
780
756
 
781
757
  private
782
758
 
783
- # source://tapioca//lib/tapioca/commands/annotations.rb#193
759
+ # source://tapioca//lib/tapioca/commands/annotations.rb#197
784
760
  sig { params(name: ::String, content: ::String).returns(::String) }
785
761
  def add_header(name, content); end
786
762
 
787
- # source://tapioca//lib/tapioca/commands/annotations.rb#213
763
+ # source://tapioca//lib/tapioca/commands/annotations.rb#217
788
764
  sig { params(name: ::String, content: ::String).returns(::String) }
789
765
  def apply_typed_override(name, content); end
790
766
 
@@ -793,18 +769,18 @@ class Tapioca::Commands::Annotations < ::Tapioca::Commands::CommandWithoutTracke
793
769
  def execute; end
794
770
 
795
771
  # source://tapioca//lib/tapioca/commands/annotations.rb#136
796
- sig { params(repo_uris: T::Array[::String], gem_name: ::String).void }
797
- def fetch_annotation(repo_uris, gem_name); end
772
+ sig { params(repo_uris: T::Array[::String], gem_info: ::Tapioca::GemInfo).void }
773
+ def fetch_annotation(repo_uris, gem_info); end
798
774
 
799
775
  # source://tapioca//lib/tapioca/commands/annotations.rb#113
800
- sig { params(gem_names: T::Array[::String]).returns(T::Array[::String]) }
801
- def fetch_annotations(gem_names); end
776
+ sig { params(project_gems: T::Array[::Tapioca::GemInfo]).returns(T::Array[::String]) }
777
+ def fetch_annotations(project_gems); end
802
778
 
803
- # source://tapioca//lib/tapioca/commands/annotations.rb#152
779
+ # source://tapioca//lib/tapioca/commands/annotations.rb#156
804
780
  sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) }
805
781
  def fetch_file(repo_uri, path); end
806
782
 
807
- # source://tapioca//lib/tapioca/commands/annotations.rb#169
783
+ # source://tapioca//lib/tapioca/commands/annotations.rb#173
808
784
  sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) }
809
785
  def fetch_http_file(repo_uri, path); end
810
786
 
@@ -816,31 +792,35 @@ class Tapioca::Commands::Annotations < ::Tapioca::Commands::CommandWithoutTracke
816
792
  sig { returns(T::Hash[::String, Tapioca::RepoIndex]) }
817
793
  def fetch_indexes; end
818
794
 
819
- # source://tapioca//lib/tapioca/commands/annotations.rb#161
795
+ # source://tapioca//lib/tapioca/commands/annotations.rb#165
820
796
  sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) }
821
797
  def fetch_local_file(repo_uri, path); end
822
798
 
799
+ # source://tapioca//lib/tapioca/commands/annotations.rb#229
800
+ sig { params(gem_version: ::Gem::Version, content: ::String).returns(::String) }
801
+ def filter_versions(gem_version, content); end
802
+
823
803
  # source://tapioca//lib/tapioca/commands/annotations.rb#50
824
- sig { returns(T::Array[::String]) }
804
+ sig { returns(T::Array[::Tapioca::GemInfo]) }
825
805
  def list_gemfile_gems; end
826
806
 
827
- # source://tapioca//lib/tapioca/commands/annotations.rb#225
807
+ # source://tapioca//lib/tapioca/commands/annotations.rb#237
828
808
  sig { params(gem_name: ::String, contents: T::Array[::String]).returns(T.nilable(::String)) }
829
809
  def merge_files(gem_name, contents); end
830
810
 
831
811
  # source://tapioca//lib/tapioca/commands/annotations.rb#60
832
- sig { params(project_gems: T::Array[::String]).void }
812
+ sig { params(project_gems: T::Array[::Tapioca::GemInfo]).void }
833
813
  def remove_expired_annotations(project_gems); end
834
814
 
835
- # source://tapioca//lib/tapioca/commands/annotations.rb#252
815
+ # source://tapioca//lib/tapioca/commands/annotations.rb#264
836
816
  sig { returns(T::Hash[::String, T.nilable(::String)]) }
837
817
  def repo_tokens; end
838
818
 
839
- # source://tapioca//lib/tapioca/commands/annotations.rb#280
819
+ # source://tapioca//lib/tapioca/commands/annotations.rb#292
840
820
  sig { params(path: ::String, repo_uri: ::String, message: ::String).void }
841
821
  def say_http_error(path, repo_uri, message:); end
842
822
 
843
- # source://tapioca//lib/tapioca/commands/annotations.rb#264
823
+ # source://tapioca//lib/tapioca/commands/annotations.rb#276
844
824
  sig { params(repo_uri: ::String).returns(T.nilable(::String)) }
845
825
  def token_for(repo_uri); end
846
826
  end
@@ -888,7 +868,7 @@ class Tapioca::Commands::Command
888
868
  sig { void }
889
869
  def initialize; end
890
870
 
891
- # source://thor/1.3.1/lib/thor/base.rb#155
871
+ # source://thor/1.3.2/lib/thor/base.rb#155
892
872
  sig { returns(::Thor::Actions) }
893
873
  def file_writer; end
894
874
 
@@ -1013,6 +993,19 @@ class Tapioca::Commands::GemGenerate < ::Tapioca::Commands::AbstractGem
1013
993
  # source://tapioca//lib/tapioca/commands/gem_generate.rb#10
1014
994
  sig { override.void }
1015
995
  def execute; end
996
+
997
+ # source://tapioca//lib/tapioca/commands/gem_generate.rb#74
998
+ sig do
999
+ params(
1000
+ gem: ::Tapioca::Gemfile::GemSpec,
1001
+ dependencies: T::Array[::Tapioca::Gemfile::GemSpec]
1002
+ ).returns(T::Array[::Tapioca::Gemfile::GemSpec])
1003
+ end
1004
+ def gem_dependencies(gem, dependencies = T.unsafe(nil)); end
1005
+
1006
+ # source://tapioca//lib/tapioca/commands/gem_generate.rb#51
1007
+ sig { params(gem_names: T::Array[::String]).returns(T::Array[::Tapioca::Gemfile::GemSpec]) }
1008
+ def gems_to_generate(gem_names); end
1016
1009
  end
1017
1010
 
1018
1011
  # source://tapioca//lib/tapioca/commands/gem_sync.rb#6
@@ -1102,11 +1095,11 @@ module Tapioca::ConfigHelper
1102
1095
 
1103
1096
  private
1104
1097
 
1105
- # source://tapioca//lib/tapioca/helpers/config_helper.rb#151
1098
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#153
1106
1099
  sig { params(msg: ::String).returns(::Tapioca::ConfigHelper::ConfigError) }
1107
1100
  def build_error(msg); end
1108
1101
 
1109
- # source://tapioca//lib/tapioca/helpers/config_helper.rb#176
1102
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#178
1110
1103
  sig { params(config_file: ::String, errors: T::Array[::Tapioca::ConfigHelper::ConfigError]).returns(::String) }
1111
1104
  def build_error_message(config_file, errors); end
1112
1105
 
@@ -1122,7 +1115,7 @@ module Tapioca::ConfigHelper
1122
1115
  sig { params(options: T::Hash[::Symbol, ::Thor::Option]).void }
1123
1116
  def filter_defaults(options); end
1124
1117
 
1125
- # source://tapioca//lib/tapioca/helpers/config_helper.rb#194
1118
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#196
1126
1119
  sig do
1127
1120
  params(
1128
1121
  options: T.nilable(::Thor::CoreExt::HashWithIndifferentAccess)
@@ -1145,58 +1138,58 @@ module Tapioca::ConfigHelper
1145
1138
  def validate_config_options(command_options, config_key, config_options); end
1146
1139
  end
1147
1140
 
1148
- # source://tapioca//lib/tapioca/helpers/config_helper.rb#146
1141
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#148
1149
1142
  class Tapioca::ConfigHelper::ConfigError < ::T::Struct
1150
1143
  const :message_parts, T::Array[::Tapioca::ConfigHelper::ConfigErrorMessagePart]
1151
1144
 
1152
1145
  class << self
1153
- # source://sorbet-runtime/0.5.11414/lib/types/struct.rb#13
1146
+ # source://sorbet-runtime/0.5.11766/lib/types/struct.rb#13
1154
1147
  def inherited(s); end
1155
1148
  end
1156
1149
  end
1157
1150
 
1158
- # source://tapioca//lib/tapioca/helpers/config_helper.rb#141
1151
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#143
1159
1152
  class Tapioca::ConfigHelper::ConfigErrorMessagePart < ::T::Struct
1160
1153
  const :message, ::String
1161
1154
  const :colors, T::Array[::Symbol]
1162
1155
 
1163
1156
  class << self
1164
- # source://sorbet-runtime/0.5.11414/lib/types/struct.rb#13
1157
+ # source://sorbet-runtime/0.5.11766/lib/types/struct.rb#13
1165
1158
  def inherited(s); end
1166
1159
  end
1167
1160
  end
1168
1161
 
1169
- # source://tapioca//lib/tapioca.rb#44
1162
+ # source://tapioca//lib/tapioca.rb#46
1170
1163
  Tapioca::DEFAULT_ANNOTATIONS_DIR = T.let(T.unsafe(nil), String)
1171
1164
 
1172
- # source://tapioca//lib/tapioca.rb#40
1165
+ # source://tapioca//lib/tapioca.rb#42
1173
1166
  Tapioca::DEFAULT_DSL_DIR = T.let(T.unsafe(nil), String)
1174
1167
 
1175
- # source://tapioca//lib/tapioca.rb#56
1168
+ # source://tapioca//lib/tapioca.rb#58
1176
1169
  Tapioca::DEFAULT_ENVIRONMENT = T.let(T.unsafe(nil), String)
1177
1170
 
1178
- # source://tapioca//lib/tapioca.rb#41
1171
+ # source://tapioca//lib/tapioca.rb#43
1179
1172
  Tapioca::DEFAULT_GEM_DIR = T.let(T.unsafe(nil), String)
1180
1173
 
1181
- # source://tapioca//lib/tapioca.rb#46
1174
+ # source://tapioca//lib/tapioca.rb#48
1182
1175
  Tapioca::DEFAULT_OVERRIDES = T.let(T.unsafe(nil), Hash)
1183
1176
 
1184
- # source://tapioca//lib/tapioca.rb#38
1177
+ # source://tapioca//lib/tapioca.rb#40
1185
1178
  Tapioca::DEFAULT_POSTREQUIRE_FILE = T.let(T.unsafe(nil), String)
1186
1179
 
1187
- # source://tapioca//lib/tapioca.rb#39
1180
+ # source://tapioca//lib/tapioca.rb#41
1188
1181
  Tapioca::DEFAULT_RBI_DIR = T.let(T.unsafe(nil), String)
1189
1182
 
1190
1183
  # source://tapioca//lib/tapioca/rbi_formatter.rb#31
1191
1184
  Tapioca::DEFAULT_RBI_FORMATTER = T.let(T.unsafe(nil), Tapioca::RBIFormatter)
1192
1185
 
1193
- # source://tapioca//lib/tapioca.rb#55
1186
+ # source://tapioca//lib/tapioca.rb#57
1194
1187
  Tapioca::DEFAULT_RBI_MAX_LINE_LENGTH = T.let(T.unsafe(nil), Integer)
1195
1188
 
1196
- # source://tapioca//lib/tapioca.rb#42
1189
+ # source://tapioca//lib/tapioca.rb#44
1197
1190
  Tapioca::DEFAULT_SHIM_DIR = T.let(T.unsafe(nil), String)
1198
1191
 
1199
- # source://tapioca//lib/tapioca.rb#43
1192
+ # source://tapioca//lib/tapioca.rb#45
1200
1193
  Tapioca::DEFAULT_TODO_FILE = T.let(T.unsafe(nil), String)
1201
1194
 
1202
1195
  # source://tapioca//lib/tapioca/dsl/compilers.rb#5
@@ -1218,17 +1211,24 @@ class Tapioca::Dsl::Compiler
1218
1211
 
1219
1212
  ConstantType = type_member { { upper: Module } }
1220
1213
 
1221
- # source://tapioca//lib/tapioca/dsl/compiler.rb#64
1222
- sig { params(pipeline: ::Tapioca::Dsl::Pipeline, root: ::RBI::Tree, constant: ConstantType).void }
1223
- def initialize(pipeline, root, constant); end
1214
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#110
1215
+ sig do
1216
+ params(
1217
+ pipeline: ::Tapioca::Dsl::Pipeline,
1218
+ root: ::RBI::Tree,
1219
+ constant: ConstantType,
1220
+ options: T::Hash[::String, T.untyped]
1221
+ ).void
1222
+ end
1223
+ def initialize(pipeline, root, constant, options = T.unsafe(nil)); end
1224
1224
 
1225
1225
  # NOTE: This should eventually accept an `Error` object or `Exception` rather than simply a `String`.
1226
1226
  #
1227
- # source://tapioca//lib/tapioca/dsl/compiler.rb#81
1227
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#128
1228
1228
  sig { params(error: ::String).void }
1229
1229
  def add_error(error); end
1230
1230
 
1231
- # source://tapioca//lib/tapioca/dsl/compiler.rb#72
1231
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#119
1232
1232
  sig { params(compiler_name: ::String).returns(T::Boolean) }
1233
1233
  def compiler_enabled?(compiler_name); end
1234
1234
 
@@ -1238,58 +1238,79 @@ class Tapioca::Dsl::Compiler
1238
1238
 
1239
1239
  # @abstract
1240
1240
  #
1241
- # source://tapioca//lib/tapioca/dsl/compiler.rb#77
1241
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#124
1242
1242
  sig { abstract.void }
1243
1243
  def decorate; end
1244
1244
 
1245
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#26
1246
+ sig { returns(T::Hash[::String, T.untyped]) }
1247
+ def options; end
1248
+
1245
1249
  # source://tapioca//lib/tapioca/dsl/compiler.rb#23
1246
1250
  sig { returns(::RBI::Tree) }
1247
1251
  def root; end
1248
1252
 
1249
1253
  private
1250
1254
 
1251
- # source://tapioca//lib/tapioca/dsl/compiler.rb#130
1255
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#177
1252
1256
  sig { params(method_def: T.any(::Method, ::UnboundMethod)).returns(T::Array[::RBI::TypedParam]) }
1253
1257
  def compile_method_parameters_to_rbi(method_def); end
1254
1258
 
1255
- # source://tapioca//lib/tapioca/dsl/compiler.rb#166
1259
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#213
1256
1260
  sig { params(method_def: T.any(::Method, ::UnboundMethod)).returns(::String) }
1257
1261
  def compile_method_return_type_to_rbi(method_def); end
1258
1262
 
1259
- # source://tapioca//lib/tapioca/dsl/compiler.rb#120
1263
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#167
1260
1264
  sig { params(scope: ::RBI::Scope, method_def: T.any(::Method, ::UnboundMethod), class_method: T::Boolean).void }
1261
1265
  def create_method_from_def(scope, method_def, class_method: T.unsafe(nil)); end
1262
1266
 
1263
1267
  # Get the types of each parameter from a method signature
1264
1268
  #
1265
- # source://tapioca//lib/tapioca/dsl/compiler.rb#94
1269
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#141
1266
1270
  sig { params(method_def: T.any(::Method, ::UnboundMethod), signature: T.untyped).returns(T::Array[::String]) }
1267
1271
  def parameters_types_from_signature(method_def, signature); end
1268
1272
 
1269
1273
  class << self
1270
1274
  # @abstract
1271
1275
  #
1272
- # source://tapioca//lib/tapioca/dsl/compiler.rb#34
1276
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#39
1273
1277
  sig { abstract.returns(T::Enumerable[::Module]) }
1274
1278
  def gather_constants; end
1275
1279
 
1276
- # source://tapioca//lib/tapioca/dsl/compiler.rb#29
1280
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#34
1277
1281
  sig { params(constant: ::Module).returns(T::Boolean) }
1278
1282
  def handles?(constant); end
1279
1283
 
1280
- # source://tapioca//lib/tapioca/dsl/compiler.rb#37
1284
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#42
1281
1285
  sig { returns(T::Set[::Module]) }
1282
1286
  def processable_constants; end
1283
1287
 
1288
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#50
1289
+ sig { params(constants: T::Array[::Module]).void }
1290
+ def requested_constants=(constants); end
1291
+
1292
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#55
1293
+ sig { void }
1294
+ def reset_state; end
1295
+
1284
1296
  private
1285
1297
 
1286
- # source://tapioca//lib/tapioca/dsl/compiler.rb#47
1298
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#82
1287
1299
  sig { returns(T::Enumerable[T::Class[T.anything]]) }
1288
1300
  def all_classes; end
1289
1301
 
1290
- # source://tapioca//lib/tapioca/dsl/compiler.rb#55
1302
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#90
1291
1303
  sig { returns(T::Enumerable[::Module]) }
1292
1304
  def all_modules; end
1305
+
1306
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#68
1307
+ sig do
1308
+ type_parameters(:U)
1309
+ .params(
1310
+ klass: T.all(T.type_parameter(:U), T::Class[T.anything])
1311
+ ).returns(T::Array[T.type_parameter(:U)])
1312
+ end
1313
+ def descendants_of(klass); end
1293
1314
  end
1294
1315
  end
1295
1316
 
@@ -1308,7 +1329,7 @@ Tapioca::Dsl::Compilers::NAMESPACES = T.let(T.unsafe(nil), Array)
1308
1329
 
1309
1330
  # source://tapioca//lib/tapioca/dsl/pipeline.rb#6
1310
1331
  class Tapioca::Dsl::Pipeline
1311
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#38
1332
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#40
1312
1333
  sig do
1313
1334
  params(
1314
1335
  requested_constants: T::Array[::Module],
@@ -1317,24 +1338,26 @@ class Tapioca::Dsl::Pipeline
1317
1338
  excluded_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)],
1318
1339
  error_handler: T.proc.params(error: ::String).void,
1319
1340
  skipped_constants: T::Array[::Module],
1320
- number_of_workers: T.nilable(::Integer)
1341
+ number_of_workers: T.nilable(::Integer),
1342
+ compiler_options: T::Hash[::String, T.untyped],
1343
+ lsp_addon: T::Boolean
1321
1344
  ).void
1322
1345
  end
1323
- def initialize(requested_constants:, requested_paths: T.unsafe(nil), requested_compilers: T.unsafe(nil), excluded_compilers: T.unsafe(nil), error_handler: T.unsafe(nil), skipped_constants: T.unsafe(nil), number_of_workers: T.unsafe(nil)); end
1346
+ def initialize(requested_constants:, requested_paths: T.unsafe(nil), requested_compilers: T.unsafe(nil), excluded_compilers: T.unsafe(nil), error_handler: T.unsafe(nil), skipped_constants: T.unsafe(nil), number_of_workers: T.unsafe(nil), compiler_options: T.unsafe(nil), lsp_addon: T.unsafe(nil)); end
1324
1347
 
1325
1348
  # source://tapioca//lib/tapioca/dsl/pipeline.rb#10
1326
1349
  sig { returns(T::Enumerable[T.class_of(Tapioca::Dsl::Compiler)]) }
1327
1350
  def active_compilers; end
1328
1351
 
1329
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#99
1352
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#105
1330
1353
  sig { params(error: ::String).void }
1331
1354
  def add_error(error); end
1332
1355
 
1333
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#104
1356
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#110
1334
1357
  sig { params(compiler_name: ::String).returns(T::Boolean) }
1335
1358
  def compiler_enabled?(compiler_name); end
1336
1359
 
1337
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#113
1360
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#119
1338
1361
  sig { returns(T::Array[T.class_of(Tapioca::Dsl::Compiler)]) }
1339
1362
  def compilers; end
1340
1363
 
@@ -1354,7 +1377,7 @@ class Tapioca::Dsl::Pipeline
1354
1377
  sig { returns(T::Array[::Pathname]) }
1355
1378
  def requested_paths; end
1356
1379
 
1357
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#64
1380
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#70
1358
1381
  sig do
1359
1382
  type_parameters(:T)
1360
1383
  .params(
@@ -1369,15 +1392,15 @@ class Tapioca::Dsl::Pipeline
1369
1392
 
1370
1393
  private
1371
1394
 
1372
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#220
1395
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#227
1373
1396
  sig { void }
1374
1397
  def abort_if_pending_migrations!; end
1375
1398
 
1376
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#165
1399
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#172
1377
1400
  sig { params(constants: T::Set[::Module]).returns(T::Set[::Module]) }
1378
1401
  def filter_anonymous_and_reloaded_constants(constants); end
1379
1402
 
1380
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#130
1403
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#136
1381
1404
  sig do
1382
1405
  params(
1383
1406
  requested_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)],
@@ -1386,7 +1409,7 @@ class Tapioca::Dsl::Pipeline
1386
1409
  end
1387
1410
  def gather_active_compilers(requested_compilers, excluded_compilers); end
1388
1411
 
1389
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#144
1412
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#150
1390
1413
  sig do
1391
1414
  params(
1392
1415
  requested_constants: T::Array[::Module],
@@ -1396,11 +1419,11 @@ class Tapioca::Dsl::Pipeline
1396
1419
  end
1397
1420
  def gather_constants(requested_constants, requested_paths, skipped_constants); end
1398
1421
 
1399
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#194
1422
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#201
1400
1423
  sig { params(constant: ::Module).returns(T.nilable(::RBI::File)) }
1401
1424
  def rbi_for_constant(constant); end
1402
1425
 
1403
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#213
1426
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#220
1404
1427
  sig { params(error: ::String).returns(T.noreturn) }
1405
1428
  def report_error(error); end
1406
1429
  end
@@ -1604,6 +1627,10 @@ class Tapioca::Gem::Listeners::Methods < ::Tapioca::Gem::Listeners::Base
1604
1627
  sig { params(constant: ::Module).returns(T.nilable(::UnboundMethod)) }
1605
1628
  def initialize_method_for(constant); end
1606
1629
 
1630
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#216
1631
+ sig { params(method: ::UnboundMethod).returns(T.untyped) }
1632
+ def lookup_signature_of(method); end
1633
+
1607
1634
  # source://tapioca//lib/tapioca/gem/listeners/methods.rb#172
1608
1635
  sig { params(mod: ::Module).returns(T::Hash[::Symbol, T::Array[::Symbol]]) }
1609
1636
  def method_names_by_visibility(mod); end
@@ -1696,7 +1723,7 @@ end
1696
1723
  class Tapioca::Gem::Listeners::SorbetEnums < ::Tapioca::Gem::Listeners::Base
1697
1724
  private
1698
1725
 
1699
- # source://tapioca//lib/tapioca/gem/listeners/sorbet_enums.rb#25
1726
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_enums.rb#28
1700
1727
  sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1701
1728
  def ignore?(event); end
1702
1729
 
@@ -1933,49 +1960,60 @@ class Tapioca::Gem::Pipeline
1933
1960
  include ::Tapioca::SorbetHelper
1934
1961
  include ::Tapioca::RBIHelper
1935
1962
 
1936
- # source://tapioca//lib/tapioca/gem/pipeline.rb#17
1937
- sig { params(gem: ::Tapioca::Gemfile::GemSpec, include_doc: T::Boolean, include_loc: T::Boolean).void }
1938
- def initialize(gem, include_doc: T.unsafe(nil), include_loc: T.unsafe(nil)); end
1963
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#27
1964
+ sig do
1965
+ params(
1966
+ gem: ::Tapioca::Gemfile::GemSpec,
1967
+ error_handler: T.proc.params(error: ::String).void,
1968
+ include_doc: T::Boolean,
1969
+ include_loc: T::Boolean
1970
+ ).void
1971
+ end
1972
+ def initialize(gem, error_handler:, include_doc: T.unsafe(nil), include_loc: T.unsafe(nil)); end
1939
1973
 
1940
- # source://tapioca//lib/tapioca/gem/pipeline.rb#48
1974
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#64
1941
1975
  sig { returns(::RBI::Tree) }
1942
1976
  def compile; end
1943
1977
 
1944
- # source://tapioca//lib/tapioca/gem/pipeline.rb#119
1978
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#135
1945
1979
  sig { params(name: T.any(::String, ::Symbol)).returns(T::Boolean) }
1946
1980
  def constant_in_gem?(name); end
1947
1981
 
1982
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#17
1983
+ sig { returns(T.proc.params(error: ::String).void) }
1984
+ def error_handler; end
1985
+
1948
1986
  # source://tapioca//lib/tapioca/gem/pipeline.rb#14
1949
1987
  sig { returns(::Tapioca::Gemfile::GemSpec) }
1950
1988
  def gem; end
1951
1989
 
1952
- # source://tapioca//lib/tapioca/gem/pipeline.rb#137
1990
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#153
1953
1991
  sig { params(method: ::UnboundMethod).returns(T::Boolean) }
1954
1992
  def method_in_gem?(method); end
1955
1993
 
1956
1994
  # Helpers
1957
1995
  #
1958
- # source://tapioca//lib/tapioca/gem/pipeline.rb#147
1996
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#163
1959
1997
  sig { params(constant: ::Module).returns(T.nilable(::String)) }
1960
1998
  def name_of(constant); end
1961
1999
 
1962
- # source://tapioca//lib/tapioca/gem/pipeline.rb#71
2000
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#87
1963
2001
  sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Const).void }
1964
2002
  def push_const(symbol, constant, node); end
1965
2003
 
1966
- # source://tapioca//lib/tapioca/gem/pipeline.rb#61
2004
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#77
1967
2005
  sig { params(symbol: ::String, constant: ::BasicObject).void }
1968
2006
  def push_constant(symbol, constant); end
1969
2007
 
1970
- # source://tapioca//lib/tapioca/gem/pipeline.rb#66
2008
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#82
1971
2009
  sig { params(symbol: ::String, constant: ::Module).void }
1972
2010
  def push_foreign_constant(symbol, constant); end
1973
2011
 
1974
- # source://tapioca//lib/tapioca/gem/pipeline.rb#85
2012
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#101
1975
2013
  sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void }
1976
2014
  def push_foreign_scope(symbol, constant, node); end
1977
2015
 
1978
- # source://tapioca//lib/tapioca/gem/pipeline.rb#99
2016
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#115
1979
2017
  sig do
1980
2018
  params(
1981
2019
  symbol: ::String,
@@ -1988,137 +2026,137 @@ class Tapioca::Gem::Pipeline
1988
2026
  end
1989
2027
  def push_method(symbol, constant, method, node, signature, parameters); end
1990
2028
 
1991
- # source://tapioca//lib/tapioca/gem/pipeline.rb#78
2029
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#94
1992
2030
  sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void }
1993
2031
  def push_scope(symbol, constant, node); end
1994
2032
 
1995
2033
  # Events handling
1996
2034
  #
1997
- # source://tapioca//lib/tapioca/gem/pipeline.rb#56
2035
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#72
1998
2036
  sig { params(symbol: ::String).void }
1999
2037
  def push_symbol(symbol); end
2000
2038
 
2001
2039
  # Constants and properties filtering
2002
2040
  #
2003
- # source://tapioca//lib/tapioca/gem/pipeline.rb#106
2041
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#122
2004
2042
  sig { params(symbol_name: ::String).returns(T::Boolean) }
2005
2043
  def symbol_in_payload?(symbol_name); end
2006
2044
 
2007
2045
  private
2008
2046
 
2009
- # source://tapioca//lib/tapioca/gem/pipeline.rb#440
2047
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#456
2010
2048
  sig { params(name: ::String).void }
2011
2049
  def add_to_alias_namespace(name); end
2012
2050
 
2013
- # source://tapioca//lib/tapioca/gem/pipeline.rb#445
2051
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#461
2014
2052
  sig { params(name: ::String).returns(T::Boolean) }
2015
2053
  def alias_namespaced?(name); end
2016
2054
 
2017
- # source://tapioca//lib/tapioca/gem/pipeline.rb#244
2055
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#260
2018
2056
  sig { params(name: ::String, constant: ::Module).void }
2019
2057
  def compile_alias(name, constant); end
2020
2058
 
2021
- # source://tapioca//lib/tapioca/gem/pipeline.rb#230
2059
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#246
2022
2060
  sig { params(symbol: ::String, constant: ::BasicObject).void }
2023
2061
  def compile_constant(symbol, constant); end
2024
2062
 
2025
2063
  # Compiling
2026
2064
  #
2027
- # source://tapioca//lib/tapioca/gem/pipeline.rb#219
2065
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#235
2028
2066
  sig { params(symbol: ::String, constant: ::Module).void }
2029
2067
  def compile_foreign_constant(symbol, constant); end
2030
2068
 
2031
- # source://tapioca//lib/tapioca/gem/pipeline.rb#298
2069
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#314
2032
2070
  sig { params(name: ::String, constant: ::Module).void }
2033
2071
  def compile_module(name, constant); end
2034
2072
 
2035
- # source://tapioca//lib/tapioca/gem/pipeline.rb#265
2073
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#281
2036
2074
  sig { params(name: ::String, value: ::BasicObject).void }
2037
2075
  def compile_object(name, value); end
2038
2076
 
2039
- # source://tapioca//lib/tapioca/gem/pipeline.rb#309
2077
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#325
2040
2078
  sig { params(name: ::String, constant: ::Module).returns(::RBI::Scope) }
2041
2079
  def compile_scope(name, constant); end
2042
2080
 
2043
- # source://tapioca//lib/tapioca/gem/pipeline.rb#323
2081
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#339
2044
2082
  sig { params(constant: T::Class[T.anything]).returns(T.nilable(::String)) }
2045
2083
  def compile_superclass(constant); end
2046
2084
 
2047
- # source://tapioca//lib/tapioca/gem/pipeline.rb#421
2085
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#437
2048
2086
  sig { params(constant: ::Module, strict: T::Boolean).returns(T::Boolean) }
2049
2087
  def defined_in_gem?(constant, strict: T.unsafe(nil)); end
2050
2088
 
2051
- # source://tapioca//lib/tapioca/gem/pipeline.rb#177
2089
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#193
2052
2090
  sig { params(event: ::Tapioca::Gem::Event).void }
2053
2091
  def dispatch(event); end
2054
2092
 
2055
2093
  # Helpers
2056
2094
  #
2057
- # source://tapioca//lib/tapioca/gem/pipeline.rb#464
2095
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#480
2058
2096
  sig { params(constant: T.all(::Module, ::T::Generic)).returns(::String) }
2059
2097
  def generic_name_of(constant); end
2060
2098
 
2061
- # source://tapioca//lib/tapioca/gem/pipeline.rb#433
2099
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#449
2062
2100
  sig { params(constant: ::Module).returns(T::Set[::String]) }
2063
2101
  def get_file_candidates(constant); end
2064
2102
 
2065
- # source://tapioca//lib/tapioca/gem/pipeline.rb#162
2103
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#178
2066
2104
  sig { params(gem: ::Tapioca::Gemfile::GemSpec).returns(T::Set[::String]) }
2067
2105
  def load_bootstrap_symbols(gem); end
2068
2106
 
2069
- # source://tapioca//lib/tapioca/gem/pipeline.rb#480
2107
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#496
2070
2108
  sig { params(constant: ::Module, class_name: T.nilable(::String)).returns(T.nilable(::String)) }
2071
2109
  def name_of_proxy_target(constant, class_name); end
2072
2110
 
2073
2111
  # Events handling
2074
2112
  #
2075
- # source://tapioca//lib/tapioca/gem/pipeline.rb#172
2113
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#188
2076
2114
  sig { returns(::Tapioca::Gem::Event) }
2077
2115
  def next_event; end
2078
2116
 
2079
- # source://tapioca//lib/tapioca/gem/pipeline.rb#200
2117
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#216
2080
2118
  sig { params(event: ::Tapioca::Gem::ConstantFound).void }
2081
2119
  def on_constant(event); end
2082
2120
 
2083
- # source://tapioca//lib/tapioca/gem/pipeline.rb#212
2121
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#228
2084
2122
  sig { params(event: ::Tapioca::Gem::NodeAdded).void }
2085
2123
  def on_node(event); end
2086
2124
 
2087
- # source://tapioca//lib/tapioca/gem/pipeline.rb#191
2125
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#207
2088
2126
  sig { params(event: ::Tapioca::Gem::SymbolFound).void }
2089
2127
  def on_symbol(event); end
2090
2128
 
2091
- # source://tapioca//lib/tapioca/gem/pipeline.rb#452
2129
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#468
2092
2130
  sig { params(name: ::String).void }
2093
2131
  def seen!(name); end
2094
2132
 
2095
- # source://tapioca//lib/tapioca/gem/pipeline.rb#457
2133
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#473
2096
2134
  sig { params(name: ::String).returns(T::Boolean) }
2097
2135
  def seen?(name); end
2098
2136
 
2099
- # source://tapioca//lib/tapioca/gem/pipeline.rb#391
2137
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#407
2100
2138
  sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2101
2139
  def skip_alias?(name, constant); end
2102
2140
 
2103
- # source://tapioca//lib/tapioca/gem/pipeline.rb#379
2141
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#395
2104
2142
  sig { params(name: ::String, constant: T.anything).returns(T::Boolean) }
2105
2143
  def skip_constant?(name, constant); end
2106
2144
 
2107
- # source://tapioca//lib/tapioca/gem/pipeline.rb#408
2145
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#424
2108
2146
  sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2109
2147
  def skip_foreign_constant?(name, constant); end
2110
2148
 
2111
- # source://tapioca//lib/tapioca/gem/pipeline.rb#413
2149
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#429
2112
2150
  sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2113
2151
  def skip_module?(name, constant); end
2114
2152
 
2115
- # source://tapioca//lib/tapioca/gem/pipeline.rb#400
2153
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#416
2116
2154
  sig { params(name: ::String, constant: ::BasicObject).returns(T::Boolean) }
2117
2155
  def skip_object?(name, constant); end
2118
2156
 
2119
2157
  # Constants and properties filtering
2120
2158
  #
2121
- # source://tapioca//lib/tapioca/gem/pipeline.rb#374
2159
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#390
2122
2160
  sig { params(name: ::String).returns(T::Boolean) }
2123
2161
  def skip_symbol?(name); end
2124
2162
  end
@@ -2127,7 +2165,7 @@ end
2127
2165
  # "(eval at /path/to/file.rb:123)"
2128
2166
  # and we are just interested in the "/path/to/file.rb" part
2129
2167
  #
2130
- # source://tapioca//lib/tapioca/gem/pipeline.rb#116
2168
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#132
2131
2169
  Tapioca::Gem::Pipeline::EVAL_SOURCE_FILE_PATTERN = T.let(T.unsafe(nil), Regexp)
2132
2170
 
2133
2171
  # source://tapioca//lib/tapioca/gem/pipeline.rb#11
@@ -2180,6 +2218,21 @@ module Tapioca::GemHelper
2180
2218
  def path_in_dir?(path, dir); end
2181
2219
  end
2182
2220
 
2221
+ # source://tapioca//lib/tapioca/gem_info.rb#5
2222
+ class Tapioca::GemInfo < ::T::Struct
2223
+ const :name, ::String
2224
+ const :version, ::Gem::Version
2225
+
2226
+ class << self
2227
+ # source://tapioca//lib/tapioca/gem_info.rb#13
2228
+ sig { params(spec: ::Bundler::LazySpecification).returns(::Tapioca::GemInfo) }
2229
+ def from_spec(spec); end
2230
+
2231
+ # source://sorbet-runtime/0.5.11766/lib/types/struct.rb#13
2232
+ def inherited(s); end
2233
+ end
2234
+ end
2235
+
2183
2236
  # source://tapioca//lib/tapioca/gemfile.rb#7
2184
2237
  class Tapioca::Gemfile
2185
2238
  # source://tapioca//lib/tapioca/gemfile.rb#27
@@ -2208,7 +2261,7 @@ class Tapioca::Gemfile
2208
2261
 
2209
2262
  private
2210
2263
 
2211
- # source://tapioca//lib/tapioca/gemfile.rb#92
2264
+ # source://tapioca//lib/tapioca/gemfile.rb#101
2212
2265
  sig { returns(::String) }
2213
2266
  def dir; end
2214
2267
 
@@ -2216,7 +2269,7 @@ class Tapioca::Gemfile
2216
2269
  sig { returns(::File) }
2217
2270
  def gemfile; end
2218
2271
 
2219
- # source://tapioca//lib/tapioca/gemfile.rb#87
2272
+ # source://tapioca//lib/tapioca/gemfile.rb#96
2220
2273
  sig { returns(T::Array[::Symbol]) }
2221
2274
  def groups; end
2222
2275
 
@@ -2233,114 +2286,114 @@ class Tapioca::Gemfile
2233
2286
  sig { returns([T::Enumerable[T.any(::Bundler::StubSpecification, ::Gem::Specification)], T::Array[::String]]) }
2234
2287
  def materialize_deps; end
2235
2288
 
2236
- # source://tapioca//lib/tapioca/gemfile.rb#82
2289
+ # source://tapioca//lib/tapioca/gemfile.rb#91
2237
2290
  sig { returns(::Bundler::Runtime) }
2238
2291
  def runtime; end
2239
2292
  end
2240
2293
 
2241
- # source://tapioca//lib/tapioca/gemfile.rb#96
2294
+ # source://tapioca//lib/tapioca/gemfile.rb#105
2242
2295
  class Tapioca::Gemfile::GemSpec
2243
2296
  include ::Tapioca::GemHelper
2244
2297
 
2245
- # source://tapioca//lib/tapioca/gemfile.rb#136
2298
+ # source://tapioca//lib/tapioca/gemfile.rb#145
2246
2299
  sig { params(spec: T.any(::Bundler::StubSpecification, ::Gem::Specification)).void }
2247
2300
  def initialize(spec); end
2248
2301
 
2249
- # source://tapioca//lib/tapioca/gemfile.rb#146
2302
+ # source://tapioca//lib/tapioca/gemfile.rb#155
2250
2303
  sig { params(other: ::BasicObject).returns(T::Boolean) }
2251
2304
  def ==(other); end
2252
2305
 
2253
- # source://tapioca//lib/tapioca/gemfile.rb#171
2306
+ # source://tapioca//lib/tapioca/gemfile.rb#180
2254
2307
  sig { params(path: ::String).returns(T::Boolean) }
2255
2308
  def contains_path?(path); end
2256
2309
 
2257
- # source://tapioca//lib/tapioca/gemfile.rb#161
2310
+ # source://tapioca//lib/tapioca/gemfile.rb#170
2258
2311
  sig { returns(T::Array[::Gem::Dependency]) }
2259
2312
  def dependencies; end
2260
2313
 
2261
- # source://tapioca//lib/tapioca/gemfile.rb#201
2314
+ # source://tapioca//lib/tapioca/gemfile.rb#210
2262
2315
  sig { returns(T::Boolean) }
2263
2316
  def export_rbi_files?; end
2264
2317
 
2265
- # source://tapioca//lib/tapioca/gemfile.rb#196
2318
+ # source://tapioca//lib/tapioca/gemfile.rb#205
2266
2319
  sig { returns(T::Array[::String]) }
2267
2320
  def exported_rbi_files; end
2268
2321
 
2269
- # source://tapioca//lib/tapioca/gemfile.rb#206
2322
+ # source://tapioca//lib/tapioca/gemfile.rb#215
2270
2323
  sig { returns(::RBI::MergeTree) }
2271
2324
  def exported_rbi_tree; end
2272
2325
 
2273
- # source://tapioca//lib/tapioca/gemfile.rb#133
2326
+ # source://tapioca//lib/tapioca/gemfile.rb#142
2274
2327
  sig { returns(T::Array[::Pathname]) }
2275
2328
  def files; end
2276
2329
 
2277
- # source://tapioca//lib/tapioca/gemfile.rb#130
2330
+ # source://tapioca//lib/tapioca/gemfile.rb#139
2278
2331
  sig { returns(::String) }
2279
2332
  def full_gem_path; end
2280
2333
 
2281
- # source://tapioca//lib/tapioca/gemfile.rb#151
2334
+ # source://tapioca//lib/tapioca/gemfile.rb#160
2282
2335
  sig { params(gemfile_dir: ::String).returns(T::Boolean) }
2283
2336
  def ignore?(gemfile_dir); end
2284
2337
 
2285
- # source://tapioca//lib/tapioca/gemfile.rb#156
2338
+ # source://tapioca//lib/tapioca/gemfile.rb#165
2286
2339
  sig { returns(::String) }
2287
2340
  def name; end
2288
2341
 
2289
- # source://tapioca//lib/tapioca/gemfile.rb#180
2342
+ # source://tapioca//lib/tapioca/gemfile.rb#189
2290
2343
  sig { void }
2291
2344
  def parse_yard_docs; end
2292
2345
 
2293
- # source://tapioca//lib/tapioca/gemfile.rb#166
2346
+ # source://tapioca//lib/tapioca/gemfile.rb#175
2294
2347
  sig { returns(::String) }
2295
2348
  def rbi_file_name; end
2296
2349
 
2297
- # source://tapioca//lib/tapioca/gemfile.rb#218
2350
+ # source://tapioca//lib/tapioca/gemfile.rb#227
2298
2351
  sig { params(file: ::Pathname).returns(::Pathname) }
2299
2352
  def relative_path_for(file); end
2300
2353
 
2301
2354
  # @return [String]
2302
2355
  #
2303
- # source://tapioca//lib/tapioca/gemfile.rb#130
2356
+ # source://tapioca//lib/tapioca/gemfile.rb#139
2304
2357
  def version; end
2305
2358
 
2306
2359
  private
2307
2360
 
2308
- # source://tapioca//lib/tapioca/gemfile.rb#229
2361
+ # source://tapioca//lib/tapioca/gemfile.rb#238
2309
2362
  sig { returns(T::Array[::Pathname]) }
2310
2363
  def collect_files; end
2311
2364
 
2312
- # source://tapioca//lib/tapioca/gemfile.rb#244
2365
+ # source://tapioca//lib/tapioca/gemfile.rb#253
2313
2366
  sig { returns(T.nilable(T::Boolean)) }
2314
2367
  def default_gem?; end
2315
2368
 
2316
- # source://tapioca//lib/tapioca/gemfile.rb#303
2369
+ # source://tapioca//lib/tapioca/gemfile.rb#312
2317
2370
  sig { returns(T::Boolean) }
2318
2371
  def gem_ignored?; end
2319
2372
 
2320
- # source://tapioca//lib/tapioca/gemfile.rb#282
2373
+ # source://tapioca//lib/tapioca/gemfile.rb#291
2321
2374
  sig { params(path: ::String).returns(T::Boolean) }
2322
2375
  def has_parent_gemspec?(path); end
2323
2376
 
2324
- # source://tapioca//lib/tapioca/gemfile.rb#249
2377
+ # source://tapioca//lib/tapioca/gemfile.rb#258
2325
2378
  sig { returns(::Regexp) }
2326
2379
  def require_paths_prefix_matcher; end
2327
2380
 
2328
- # source://tapioca//lib/tapioca/gemfile.rb#261
2381
+ # source://tapioca//lib/tapioca/gemfile.rb#270
2329
2382
  sig { params(file: ::String).returns(::Pathname) }
2330
2383
  def resolve_to_ruby_lib_dir(file); end
2331
2384
 
2332
- # source://tapioca//lib/tapioca/gemfile.rb#275
2385
+ # source://tapioca//lib/tapioca/gemfile.rb#284
2333
2386
  sig { returns(::String) }
2334
2387
  def version_string; end
2335
2388
 
2336
2389
  class << self
2337
- # source://tapioca//lib/tapioca/gemfile.rb#104
2390
+ # source://tapioca//lib/tapioca/gemfile.rb#113
2338
2391
  sig { returns(T::Hash[::String, ::Tapioca::Gemfile::GemSpec]) }
2339
2392
  def spec_lookup_by_file_path; end
2340
2393
  end
2341
2394
  end
2342
2395
 
2343
- # source://tapioca//lib/tapioca/gemfile.rb#116
2396
+ # source://tapioca//lib/tapioca/gemfile.rb#125
2344
2397
  Tapioca::Gemfile::GemSpec::IGNORED_GEMS = T.let(T.unsafe(nil), Array)
2345
2398
 
2346
2399
  # source://tapioca//lib/tapioca/gemfile.rb#10
@@ -2379,7 +2432,7 @@ module Tapioca::Helpers::Test::Content
2379
2432
  def tmp_path(*args); end
2380
2433
  end
2381
2434
 
2382
- # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#12
2435
+ # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#13
2383
2436
  module Tapioca::Helpers::Test::DslCompiler
2384
2437
  include ::Tapioca::Helpers::Test::Isolation::Forking
2385
2438
  include ::Tapioca::Helpers::Test::Isolation
@@ -2388,70 +2441,80 @@ module Tapioca::Helpers::Test::DslCompiler
2388
2441
 
2389
2442
  requires_ancestor { Kernel }
2390
2443
 
2391
- # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#28
2444
+ # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#29
2392
2445
  sig { params(compiler_classes: T.class_of(Tapioca::Dsl::Compiler)).void }
2393
2446
  def activate_other_dsl_compilers(*compiler_classes); end
2394
2447
 
2395
- # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#48
2448
+ # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#54
2396
2449
  sig { returns(::Tapioca::Helpers::Test::DslCompiler::CompilerContext) }
2397
2450
  def context; end
2398
2451
 
2399
- # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#38
2452
+ # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#44
2400
2453
  sig { returns(T::Array[::String]) }
2401
2454
  def gathered_constants; end
2402
2455
 
2403
- # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#43
2456
+ # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#49
2404
2457
  sig { returns(T::Array[::String]) }
2405
2458
  def generated_errors; end
2406
2459
 
2407
- # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#33
2408
- sig { params(constant_name: T.any(::String, ::Symbol)).returns(::String) }
2409
- def rbi_for(constant_name); end
2460
+ # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#39
2461
+ sig do
2462
+ params(
2463
+ constant_name: T.any(::String, ::Symbol),
2464
+ compiler_options: T::Hash[::Symbol, T.untyped]
2465
+ ).returns(::String)
2466
+ end
2467
+ def rbi_for(constant_name, compiler_options: T.unsafe(nil)); end
2410
2468
 
2411
- # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#23
2469
+ # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#24
2412
2470
  sig { params(compiler_class: T.class_of(Tapioca::Dsl::Compiler)).void }
2413
2471
  def use_dsl_compiler(compiler_class); end
2414
2472
  end
2415
2473
 
2416
- # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#54
2474
+ # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#60
2417
2475
  class Tapioca::Helpers::Test::DslCompiler::CompilerContext
2418
2476
  include ::Tapioca::SorbetHelper
2419
2477
 
2420
- # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#66
2478
+ # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#72
2421
2479
  sig { params(compiler_class: T.class_of(Tapioca::Dsl::Compiler)).void }
2422
2480
  def initialize(compiler_class); end
2423
2481
 
2424
- # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#74
2482
+ # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#80
2425
2483
  sig { params(compiler_classes: T::Array[T.class_of(Tapioca::Dsl::Compiler)]).void }
2426
2484
  def activate_other_dsl_compilers(compiler_classes); end
2427
2485
 
2428
- # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#79
2486
+ # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#85
2429
2487
  sig { returns(T::Array[T.class_of(Tapioca::Dsl::Compiler)]) }
2430
2488
  def activated_compiler_classes; end
2431
2489
 
2432
- # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#60
2490
+ # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#66
2433
2491
  sig { returns(T.class_of(Tapioca::Dsl::Compiler)) }
2434
2492
  def compiler_class; end
2435
2493
 
2436
- # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#124
2494
+ # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#135
2437
2495
  sig { returns(T::Array[::String]) }
2438
2496
  def errors; end
2439
2497
 
2440
- # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#84
2498
+ # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#90
2441
2499
  sig { returns(T::Array[::String]) }
2442
2500
  def gathered_constants; end
2443
2501
 
2444
- # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#63
2502
+ # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#69
2445
2503
  sig { returns(T::Array[T.class_of(Tapioca::Dsl::Compiler)]) }
2446
2504
  def other_compiler_classes; end
2447
2505
 
2448
- # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#89
2449
- sig { params(constant_name: T.any(::String, ::Symbol)).returns(::String) }
2450
- def rbi_for(constant_name); end
2506
+ # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#100
2507
+ sig do
2508
+ params(
2509
+ constant_name: T.any(::String, ::Symbol),
2510
+ compiler_options: T::Hash[::Symbol, T.untyped]
2511
+ ).returns(::String)
2512
+ end
2513
+ def rbi_for(constant_name, compiler_options: T.unsafe(nil)); end
2451
2514
 
2452
2515
  private
2453
2516
 
2454
- # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#131
2517
+ # source://tapioca//lib/tapioca/helpers/test/dsl_compiler.rb#142
2455
2518
  sig { returns(::Tapioca::Dsl::Pipeline) }
2456
2519
  def pipeline; end
2457
2520
  end
@@ -2521,12 +2584,15 @@ end
2521
2584
  # source://tapioca//lib/tapioca/helpers/test/template.rb#13
2522
2585
  Tapioca::Helpers::Test::Template::ERB_SUPPORTS_KVARGS = T.let(T.unsafe(nil), Array)
2523
2586
 
2587
+ # source://tapioca//lib/tapioca.rb#33
2588
+ Tapioca::LIB_ROOT_DIR = T.let(T.unsafe(nil), String)
2589
+
2524
2590
  # source://tapioca//lib/tapioca/loaders/loader.rb#5
2525
2591
  module Tapioca::Loaders; end
2526
2592
 
2527
2593
  # source://tapioca//lib/tapioca/loaders/dsl.rb#6
2528
2594
  class Tapioca::Loaders::Dsl < ::Tapioca::Loaders::Loader
2529
- # source://tapioca//lib/tapioca/loaders/dsl.rb#38
2595
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#53
2530
2596
  sig do
2531
2597
  params(
2532
2598
  tapioca_path: ::String,
@@ -2537,26 +2603,30 @@ class Tapioca::Loaders::Dsl < ::Tapioca::Loaders::Loader
2537
2603
  end
2538
2604
  def initialize(tapioca_path:, eager_load: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end
2539
2605
 
2540
- # source://tapioca//lib/tapioca/loaders/dsl.rb#27
2606
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#36
2541
2607
  sig { override.void }
2542
2608
  def load; end
2543
2609
 
2610
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#43
2611
+ sig { void }
2612
+ def load_dsl_extensions_and_compilers; end
2613
+
2544
2614
  protected
2545
2615
 
2546
- # source://tapioca//lib/tapioca/loaders/dsl.rb#81
2616
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#103
2547
2617
  sig { void }
2548
2618
  def load_application; end
2549
2619
 
2550
- # source://tapioca//lib/tapioca/loaders/dsl.rb#63
2620
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#78
2551
2621
  sig { void }
2552
2622
  def load_dsl_compilers; end
2553
2623
 
2554
- # source://tapioca//lib/tapioca/loaders/dsl.rb#48
2624
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#63
2555
2625
  sig { void }
2556
2626
  def load_dsl_extensions; end
2557
2627
 
2558
2628
  class << self
2559
- # source://tapioca//lib/tapioca/loaders/dsl.rb#15
2629
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#20
2560
2630
  sig do
2561
2631
  params(
2562
2632
  tapioca_path: ::String,
@@ -2642,16 +2712,16 @@ class Tapioca::Loaders::Loader
2642
2712
  # @param engine [T.class_of(Rails::Engine)]
2643
2713
  # @return [Array<String>]
2644
2714
  #
2645
- # source://sorbet-runtime/0.5.11414/lib/types/private/methods/_methods.rb#257
2646
- def eager_load_paths(*args, **_arg1, &blk); end
2715
+ # source://tapioca//lib/tapioca/loaders/loader.rb#234
2716
+ def eager_load_paths(engine); end
2647
2717
 
2648
- # source://tapioca//lib/tapioca/loaders/loader.rb#188
2718
+ # source://tapioca//lib/tapioca/loaders/loader.rb#199
2649
2719
  sig { void }
2650
2720
  def eager_load_rails_app; end
2651
2721
 
2652
2722
  # @return [Array<T.class_of(Rails::Engine)>]
2653
2723
  #
2654
- # source://tapioca//lib/tapioca/loaders/loader.rb#167
2724
+ # source://tapioca//lib/tapioca/loaders/loader.rb#178
2655
2725
  def engines; end
2656
2726
 
2657
2727
  # source://tapioca//lib/tapioca/loaders/loader.rb#29
@@ -2665,11 +2735,11 @@ class Tapioca::Loaders::Loader
2665
2735
  end
2666
2736
  def load_bundle(gemfile, initialize_file, require_file, halt_upon_load_error); end
2667
2737
 
2668
- # source://tapioca//lib/tapioca/loaders/loader.rb#125
2738
+ # source://tapioca//lib/tapioca/loaders/loader.rb#136
2669
2739
  sig { void }
2670
2740
  def load_engines_in_classic_mode; end
2671
2741
 
2672
- # source://tapioca//lib/tapioca/loaders/loader.rb#103
2742
+ # source://tapioca//lib/tapioca/loaders/loader.rb#114
2673
2743
  sig { void }
2674
2744
  def load_engines_in_zeitwerk_mode; end
2675
2745
 
@@ -2684,26 +2754,26 @@ class Tapioca::Loaders::Loader
2684
2754
  end
2685
2755
  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
2686
2756
 
2687
- # source://tapioca//lib/tapioca/loaders/loader.rb#78
2757
+ # source://tapioca//lib/tapioca/loaders/loader.rb#89
2688
2758
  sig { void }
2689
2759
  def load_rails_engines; end
2690
2760
 
2691
- # source://tapioca//lib/tapioca/loaders/loader.rb#209
2761
+ # source://tapioca//lib/tapioca/loaders/loader.rb#220
2692
2762
  sig { params(file: T.nilable(::String)).void }
2693
2763
  def require_helper(file); end
2694
2764
 
2695
- # source://tapioca//lib/tapioca/loaders/loader.rb#92
2765
+ # source://tapioca//lib/tapioca/loaders/loader.rb#103
2696
2766
  def run_initializers; end
2697
2767
 
2698
- # source://tapioca//lib/tapioca/loaders/loader.rb#181
2768
+ # source://tapioca//lib/tapioca/loaders/loader.rb#192
2699
2769
  sig { params(path: ::String).void }
2700
2770
  def safe_require(path); end
2701
2771
 
2702
- # source://tapioca//lib/tapioca/loaders/loader.rb#150
2772
+ # source://tapioca//lib/tapioca/loaders/loader.rb#161
2703
2773
  sig { params(blk: T.proc.void).void }
2704
2774
  def with_rails_application(&blk); end
2705
2775
 
2706
- # source://tapioca//lib/tapioca/loaders/loader.rb#143
2776
+ # source://tapioca//lib/tapioca/loaders/loader.rb#154
2707
2777
  sig { returns(T::Boolean) }
2708
2778
  def zeitwerk_mode?; end
2709
2779
  end
@@ -2862,7 +2932,7 @@ module Tapioca::RBIHelper
2862
2932
  sig { params(name: ::String).returns(T::Boolean) }
2863
2933
  def valid_method_name?(name); end
2864
2934
 
2865
- # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#123
2935
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#114
2866
2936
  sig { params(name: ::String).returns(T::Boolean) }
2867
2937
  def valid_parameter_name?(name); end
2868
2938
 
@@ -3072,7 +3142,7 @@ class Tapioca::Runtime::GenericTypeRegistry::GenericType < ::T::Types::Simple
3072
3142
  def initialize(raw_type, underlying_type); end
3073
3143
 
3074
3144
  # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#45
3075
- sig { params(obj: T.untyped).returns(T::Boolean) }
3145
+ sig { override.params(obj: T.untyped).returns(T::Boolean) }
3076
3146
  def valid?(obj); end
3077
3147
  end
3078
3148
 
@@ -3081,7 +3151,7 @@ module Tapioca::Runtime::Reflection
3081
3151
  extend ::Tapioca::Runtime::AttachedClassOf
3082
3152
  extend ::Tapioca::Runtime::Reflection
3083
3153
 
3084
- # source://tapioca//lib/tapioca/runtime/reflection.rb#196
3154
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#207
3085
3155
  sig { params(constant: ::Module).returns(T.untyped) }
3086
3156
  def abstract_type_of(constant); end
3087
3157
 
@@ -3125,7 +3195,7 @@ module Tapioca::Runtime::Reflection
3125
3195
  # class D < C; end
3126
3196
  # descendants_of(C) # => [B, A, D]
3127
3197
  #
3128
- # source://tapioca//lib/tapioca/runtime/reflection.rb#167
3198
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#172
3129
3199
  sig do
3130
3200
  type_parameters(:U)
3131
3201
  .params(
@@ -3134,11 +3204,11 @@ module Tapioca::Runtime::Reflection
3134
3204
  end
3135
3205
  def descendants_of(klass); end
3136
3206
 
3137
- # source://tapioca//lib/tapioca/runtime/reflection.rb#189
3207
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#200
3138
3208
  sig { params(constant: ::Module).returns(T::Set[::String]) }
3139
3209
  def file_candidates_for(constant); end
3140
3210
 
3141
- # source://tapioca//lib/tapioca/runtime/reflection.rb#202
3211
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#213
3142
3212
  sig { params(constant: ::Module).returns(T::Boolean) }
3143
3213
  def final_module?(constant); end
3144
3214
 
@@ -3146,7 +3216,7 @@ module Tapioca::Runtime::Reflection
3146
3216
  sig { params(constant: ::Module).returns(T::Array[::Module]) }
3147
3217
  def inherited_ancestors_of(constant); end
3148
3218
 
3149
- # source://tapioca//lib/tapioca/runtime/reflection.rb#145
3219
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#150
3150
3220
  sig { params(constant: ::Module, method: ::Symbol).returns(::Method) }
3151
3221
  def method_of(constant, method); end
3152
3222
 
@@ -3154,7 +3224,7 @@ module Tapioca::Runtime::Reflection
3154
3224
  sig { params(constant: ::Module).returns(T.nilable(::String)) }
3155
3225
  def name_of(constant); end
3156
3226
 
3157
- # source://tapioca//lib/tapioca/runtime/reflection.rb#140
3227
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#145
3158
3228
  sig { params(type: ::T::Types::Base).returns(::String) }
3159
3229
  def name_of_type(type); end
3160
3230
 
@@ -3179,21 +3249,26 @@ module Tapioca::Runtime::Reflection
3179
3249
  def qualified_name_of(constant); end
3180
3250
 
3181
3251
  # Examines the call stack to identify the closest location where a "require" is performed
3182
- # by searching for the label "<top (required)>". If none is found, it returns the location
3252
+ # by searching for the label "<top (required)>" or "block in <class:...>" in the
3253
+ # case of an ActiveSupport.on_load hook. If none is found, it returns the location
3183
3254
  # labeled "<main>", which is the original call site.
3184
3255
  #
3185
- # source://tapioca//lib/tapioca/runtime/reflection.rb#179
3256
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#185
3186
3257
  sig { params(locations: T.nilable(T::Array[::Thread::Backtrace::Location])).returns(::String) }
3187
3258
  def resolve_loc(locations); end
3188
3259
 
3189
- # source://tapioca//lib/tapioca/runtime/reflection.rb#207
3260
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#218
3190
3261
  sig { params(constant: ::Module).returns(T::Boolean) }
3191
3262
  def sealed_module?(constant); end
3192
3263
 
3193
- # source://tapioca//lib/tapioca/runtime/reflection.rb#133
3264
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#138
3194
3265
  sig { params(method: T.any(::Method, ::UnboundMethod)).returns(T.untyped) }
3195
3266
  def signature_of(method); end
3196
3267
 
3268
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#133
3269
+ sig { params(method: T.any(::Method, ::UnboundMethod)).returns(T.untyped) }
3270
+ def signature_of!(method); end
3271
+
3197
3272
  # source://tapioca//lib/tapioca/runtime/reflection.rb#72
3198
3273
  sig { params(constant: ::Module).returns(T::Class[T.anything]) }
3199
3274
  def singleton_class_of(constant); end
@@ -3204,23 +3279,23 @@ module Tapioca::Runtime::Reflection
3204
3279
 
3205
3280
  private
3206
3281
 
3207
- # source://tapioca//lib/tapioca/runtime/reflection.rb#244
3282
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#255
3208
3283
  sig { params(parent: ::Module, name: ::String).returns(T.nilable(::Module)) }
3209
3284
  def child_module_for_parent_with_name(parent, name); end
3210
3285
 
3211
- # source://tapioca//lib/tapioca/runtime/reflection.rb#260
3286
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#271
3212
3287
  sig { params(name: ::String).returns(T::Boolean) }
3213
3288
  def has_aliased_namespace?(name); end
3214
3289
 
3215
- # source://tapioca//lib/tapioca/runtime/reflection.rb#255
3290
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#266
3216
3291
  sig { params(method: ::UnboundMethod).returns(T::Boolean) }
3217
3292
  def method_defined_by_forwardable_module?(method); end
3218
3293
 
3219
- # source://tapioca//lib/tapioca/runtime/reflection.rb#230
3294
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#241
3220
3295
  sig { params(constant: ::Module).returns(T::Array[::UnboundMethod]) }
3221
3296
  def methods_for(constant); end
3222
3297
 
3223
- # source://tapioca//lib/tapioca/runtime/reflection.rb#214
3298
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#225
3224
3299
  sig { params(constant: ::Module).returns(T::Array[::UnboundMethod]) }
3225
3300
  def relevant_methods_for(constant); end
3226
3301
  end
@@ -3404,9 +3479,9 @@ end
3404
3479
 
3405
3480
  class Tapioca::Runtime::Trackers::Mixin::Type < ::T::Enum
3406
3481
  enums do
3407
- Prepend = new
3408
- Include = new
3409
3482
  Extend = new
3483
+ Include = new
3484
+ Prepend = new
3410
3485
  end
3411
3486
  end
3412
3487
 
@@ -3452,10 +3527,10 @@ module Tapioca::Runtime::Trackers::Tracker
3452
3527
  end
3453
3528
  end
3454
3529
 
3455
- # source://tapioca//lib/tapioca.rb#33
3530
+ # source://tapioca//lib/tapioca.rb#35
3456
3531
  Tapioca::SORBET_CONFIG_FILE = T.let(T.unsafe(nil), String)
3457
3532
 
3458
- # source://tapioca//lib/tapioca.rb#32
3533
+ # source://tapioca//lib/tapioca.rb#34
3459
3534
  Tapioca::SORBET_DIR = T.let(T.unsafe(nil), String)
3460
3535
 
3461
3536
  # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#5
@@ -3550,10 +3625,10 @@ module Tapioca::Static::SymbolLoader
3550
3625
 
3551
3626
  # @return [Array<T.class_of(Rails::Engine)>]
3552
3627
  #
3553
- # source://sorbet-runtime/0.5.11414/lib/types/private/methods/_methods.rb#257
3554
- def engines(*args, **_arg1, &blk); end
3628
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#71
3629
+ def engines; end
3555
3630
 
3556
- # source://tapioca//lib/tapioca/static/symbol_loader.rb#82
3631
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#84
3557
3632
  sig { params(input: ::String, table_type: ::String).returns(::String) }
3558
3633
  def symbol_table_json_from(input, table_type: T.unsafe(nil)); end
3559
3634
  end
@@ -3587,10 +3662,10 @@ end
3587
3662
  # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#9
3588
3663
  Tapioca::Static::SymbolTableParser::SKIP_PARSE_KINDS = T.let(T.unsafe(nil), Array)
3589
3664
 
3590
- # source://tapioca//lib/tapioca.rb#35
3665
+ # source://tapioca//lib/tapioca.rb#37
3591
3666
  Tapioca::TAPIOCA_CONFIG_FILE = T.let(T.unsafe(nil), String)
3592
3667
 
3593
- # source://tapioca//lib/tapioca.rb#34
3668
+ # source://tapioca//lib/tapioca.rb#36
3594
3669
  Tapioca::TAPIOCA_DIR = T.let(T.unsafe(nil), String)
3595
3670
 
3596
3671
  # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#108
@@ -3658,46 +3733,43 @@ Tapioca::TypeVariableModule::DEFAULT_BOUNDS_PROC = T.let(T.unsafe(nil), Proc)
3658
3733
  # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#125
3659
3734
  class Tapioca::TypeVariableModule::Type < ::T::Enum
3660
3735
  enums do
3736
+ HasAttachedClass = new
3661
3737
  Member = new
3662
3738
  Template = new
3663
- HasAttachedClass = new
3664
3739
  end
3665
3740
  end
3666
3741
 
3667
3742
  # source://tapioca//lib/tapioca/version.rb#5
3668
3743
  Tapioca::VERSION = T.let(T.unsafe(nil), String)
3669
3744
 
3670
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#6
3671
- module URI
3672
- include ::URI::RFC2396_REGEXP
3673
- end
3674
-
3675
3745
  # source://tapioca//lib/tapioca/helpers/source_uri.rb#7
3676
3746
  class URI::Source < ::URI::File
3677
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#58
3747
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#72
3678
3748
  sig { params(v: T.nilable(::String)).returns(T::Boolean) }
3679
3749
  def check_host(v); end
3680
3750
 
3681
- # source://uri/0.13.0/uri/generic.rb#243
3751
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#55
3752
+ sig { returns(T.nilable(::String)) }
3682
3753
  def gem_name; end
3683
3754
 
3684
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#25
3755
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#29
3685
3756
  sig { returns(T.nilable(::String)) }
3686
3757
  def gem_version; end
3687
3758
 
3688
- # source://uri/0.13.0/uri/generic.rb#283
3759
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#60
3760
+ sig { returns(T.nilable(::String)) }
3689
3761
  def line_number; end
3690
3762
 
3691
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#51
3763
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#65
3692
3764
  sig { params(v: T.nilable(::String)).void }
3693
3765
  def set_path(v); end
3694
3766
 
3695
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#70
3767
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#84
3696
3768
  sig { returns(::String) }
3697
3769
  def to_s; end
3698
3770
 
3699
3771
  class << self
3700
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#38
3772
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#42
3701
3773
  sig do
3702
3774
  params(
3703
3775
  gem_name: ::String,
@@ -3713,4 +3785,11 @@ end
3713
3785
  # source://tapioca//lib/tapioca/helpers/source_uri.rb#10
3714
3786
  URI::Source::COMPONENT = T.let(T.unsafe(nil), Array)
3715
3787
 
3716
- class URI::WSS < ::URI::WS; end
3788
+ # `uri` for Ruby 3.4 switched the default parser from RFC2396 to RFC3986. The new parser emits a deprecation
3789
+ # warning on a few methods and delegates them to RFC2396, namely `extract`/`make_regexp`/`escape`/`unescape`.
3790
+ # On earlier versions of the uri gem, the RFC2396_PARSER constant doesn't exist, so it needs some special
3791
+ # handling to select a parser that doesn't emit deprecations. While it was backported to Ruby 3.1, users may
3792
+ # have the uri gem in their own bundle and thus not use a compatible version.
3793
+ #
3794
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#26
3795
+ URI::Source::PARSER = T.let(T.unsafe(nil), URI::RFC2396_Parser)