sorbet-result 1.1.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/.standard.yml +1 -1
  4. data/CHANGELOG.md +17 -0
  5. data/Gemfile +1 -1
  6. data/Gemfile.lock +85 -68
  7. data/README.md +4 -4
  8. data/lib/typed/no_payload_on_failure_error.rb +8 -3
  9. data/lib/typed/result.rb +33 -3
  10. data/sorbet/rbi/gems/{ast@2.4.2.rbi → ast@2.4.3.rbi} +4 -3
  11. data/sorbet/rbi/gems/benchmark@0.4.1.rbi +619 -0
  12. data/sorbet/rbi/gems/cgi@0.5.0.rbi +2961 -0
  13. data/sorbet/rbi/gems/date@3.4.1.rbi +75 -0
  14. data/sorbet/rbi/gems/erb@4.0.4.rbi +910 -0
  15. data/sorbet/rbi/gems/{erubi@1.12.0.rbi → erubi@1.13.1.rbi} +25 -15
  16. data/sorbet/rbi/gems/{io-console@0.7.2.rbi → io-console@0.8.0.rbi} +1 -0
  17. data/sorbet/rbi/gems/{json@2.7.1.rbi → json@2.12.2.rbi} +736 -238
  18. data/sorbet/rbi/gems/{language_server-protocol@3.17.0.3.rbi → language_server-protocol@3.17.0.5.rbi} +12 -5
  19. data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +1 -0
  20. data/sorbet/rbi/gems/logger@1.7.0.rbi +963 -0
  21. data/sorbet/rbi/gems/{minitest@5.22.2.rbi → minitest@5.25.5.rbi} +326 -308
  22. data/sorbet/rbi/gems/netrc@0.11.0.rbi +1 -0
  23. data/sorbet/rbi/gems/{parallel@1.24.0.rbi → parallel@1.27.0.rbi} +32 -21
  24. data/sorbet/rbi/gems/{parser@3.3.0.5.rbi → parser@3.3.8.0.rbi} +448 -385
  25. data/sorbet/rbi/gems/pp@0.6.2.rbi +368 -0
  26. data/sorbet/rbi/gems/prettyprint@0.2.0.rbi +477 -0
  27. data/sorbet/rbi/gems/prism@1.4.0.rbi +41732 -0
  28. data/sorbet/rbi/gems/{psych@5.1.2.rbi → psych@5.2.6.rbi} +974 -236
  29. data/sorbet/rbi/gems/{racc@1.7.3.rbi → racc@1.8.1.rbi} +38 -33
  30. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +1 -0
  31. data/sorbet/rbi/gems/{rake@13.1.0.rbi → rake@13.3.0.rbi} +62 -58
  32. data/sorbet/rbi/gems/rbi@0.3.6.rbi +6893 -0
  33. data/sorbet/rbi/gems/rbs@3.9.4.rbi +6976 -0
  34. data/sorbet/rbi/gems/{regexp_parser@2.9.0.rbi → regexp_parser@2.10.0.rbi} +196 -172
  35. data/sorbet/rbi/gems/{reline@0.4.2.rbi → reline@0.6.1.rbi} +1 -0
  36. data/sorbet/rbi/gems/{rubocop-ast@1.30.0.rbi → rubocop-ast@1.45.1.rbi} +1673 -958
  37. data/sorbet/rbi/gems/{rubocop-performance@1.20.2.rbi → rubocop-performance@1.25.0.rbi} +1 -0
  38. data/sorbet/rbi/gems/{rubocop-sorbet@0.7.7.rbi → rubocop-sorbet@0.9.0.rbi} +1 -0
  39. data/sorbet/rbi/gems/{rubocop@1.60.2.rbi → rubocop@1.75.8.rbi} +9990 -5267
  40. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1 -0
  41. data/sorbet/rbi/gems/spoom@1.6.1.rbi +7274 -0
  42. data/sorbet/rbi/gems/standard-custom@1.0.2.rbi +1 -0
  43. data/sorbet/rbi/gems/{standard-performance@1.3.1.rbi → standard-performance@1.8.0.rbi} +1 -0
  44. data/sorbet/rbi/gems/{standard-sorbet@0.0.2.rbi → standard-sorbet@0.0.3.rbi} +1 -0
  45. data/sorbet/rbi/gems/{standard@1.34.0.rbi → standard@1.50.0.rbi} +182 -97
  46. data/sorbet/rbi/gems/{stringio@3.1.0.rbi → stringio@3.1.7.rbi} +1 -0
  47. data/sorbet/rbi/gems/{tapioca@0.12.0.rbi → tapioca@0.16.11.rbi} +489 -364
  48. data/sorbet/rbi/gems/{thor@1.3.0.rbi → thor@1.3.2.rbi} +114 -81
  49. data/sorbet/rbi/gems/unicode-display_width@3.1.4.rbi +132 -0
  50. data/sorbet/rbi/gems/unicode-emoji@4.0.4.rbi +251 -0
  51. data/sorbet/rbi/gems/{yard-sorbet@0.8.1.rbi → yard-sorbet@0.9.0.rbi} +36 -29
  52. data/sorbet/rbi/gems/{yard@0.9.34.rbi → yard@0.9.37.rbi} +430 -270
  53. metadata +46 -55
  54. data/.tool-versions +0 -1
  55. data/sorbet/rbi/gems/prettier_print@1.2.1.rbi +0 -951
  56. data/sorbet/rbi/gems/prism@0.24.0.rbi +0 -31040
  57. data/sorbet/rbi/gems/rbi@0.1.9.rbi +0 -3006
  58. data/sorbet/rbi/gems/rexml@3.2.6.rbi +0 -4781
  59. data/sorbet/rbi/gems/spoom@1.2.4.rbi +0 -3777
  60. data/sorbet/rbi/gems/syntax_tree@6.2.0.rbi +0 -23133
  61. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +0 -65
@@ -1,9 +1,10 @@
1
- # typed: true
1
+ # typed: false
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
8
  class Bundler::Dependency < ::Gem::Dependency
8
9
  include ::Tapioca::BundlerExt::AutoRequireHook
9
10
  end
@@ -54,30 +55,16 @@ module RBI; end
54
55
 
55
56
  # source://tapioca//lib/tapioca/rbi_ext/model.rb#5
56
57
  class RBI::Tree < ::RBI::NodeWithComments
57
- # source://rbi/0.1.9/lib/rbi/model.rb#119
58
- sig do
59
- params(
60
- loc: T.nilable(::RBI::Loc),
61
- comments: T::Array[::RBI::Comment],
62
- block: T.nilable(T.proc.params(node: ::RBI::Tree).void)
63
- ).void
64
- end
58
+ # source://rbi/0.3.6/lib/rbi/model.rb#113
65
59
  def initialize(loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
66
60
 
67
- # source://rbi/0.1.9/lib/rbi/model.rb#126
68
- sig { params(node: ::RBI::Node).void }
61
+ # source://rbi/0.3.6/lib/rbi/model.rb#120
69
62
  def <<(node); end
70
63
 
71
- # source://rbi/0.1.9/lib/rbi/printer.rb#226
72
- sig { override.params(v: ::RBI::Printer).void }
73
- def accept_printer(v); end
74
-
75
- # source://rbi/0.1.9/lib/rbi/rewriters/add_sig_templates.rb#66
76
- sig { params(with_todo_comment: T::Boolean).void }
64
+ # source://rbi/0.3.6/lib/rbi/rewriters/add_sig_templates.rb#63
77
65
  def add_sig_templates!(with_todo_comment: T.unsafe(nil)); end
78
66
 
79
- # source://rbi/0.1.9/lib/rbi/rewriters/annotate.rb#49
80
- sig { params(annotation: ::String, annotate_scopes: T::Boolean, annotate_properties: T::Boolean).void }
67
+ # source://rbi/0.3.6/lib/rbi/rewriters/annotate.rb#46
81
68
  def annotate!(annotation, annotate_scopes: T.unsafe(nil), annotate_properties: T.unsafe(nil)); end
82
69
 
83
70
  # source://tapioca//lib/tapioca/rbi_ext/model.rb#38
@@ -102,18 +89,19 @@ class RBI::Tree < ::RBI::NodeWithComments
102
89
  sig { params(name: ::String).void }
103
90
  def create_include(name); end
104
91
 
105
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#89
92
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#90
106
93
  sig do
107
94
  params(
108
95
  name: ::String,
109
96
  parameters: T::Array[::RBI::TypedParam],
110
- return_type: ::String,
97
+ return_type: T.nilable(::String),
111
98
  class_method: T::Boolean,
112
99
  visibility: ::RBI::Visibility,
113
- comments: T::Array[::RBI::Comment]
100
+ comments: T::Array[::RBI::Comment],
101
+ block: T.nilable(T.proc.params(node: ::RBI::Method).void)
114
102
  ).void
115
103
  end
116
- 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
104
+ 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
117
105
 
118
106
  # source://tapioca//lib/tapioca/rbi_ext/model.rb#60
119
107
  sig { params(name: ::String).void }
@@ -140,75 +128,69 @@ class RBI::Tree < ::RBI::NodeWithComments
140
128
  end
141
129
  def create_type_variable(name, type:, variance: T.unsafe(nil), fixed: T.unsafe(nil), upper: T.unsafe(nil), lower: T.unsafe(nil)); end
142
130
 
143
- # source://rbi/0.1.9/lib/rbi/rewriters/deannotate.rb#41
144
- sig { params(annotation: ::String).void }
131
+ # source://rbi/0.3.6/lib/rbi/rewriters/deannotate.rb#38
145
132
  def deannotate!(annotation); end
146
133
 
147
- # source://rbi/0.1.9/lib/rbi/model.rb#132
148
- sig { returns(T::Boolean) }
134
+ # source://rbi/0.3.6/lib/rbi/model.rb#126
149
135
  def empty?; end
150
136
 
151
- # source://rbi/0.1.9/lib/rbi/rewriters/filter_versions.rb#118
152
- sig { params(version: ::Gem::Version).void }
137
+ # source://rbi/0.3.6/lib/rbi/rewriters/filter_versions.rb#113
153
138
  def filter_versions!(version); end
154
139
 
155
- # source://rbi/0.1.9/lib/rbi/rewriters/group_nodes.rb#38
156
- sig { void }
140
+ # source://rbi/0.3.6/lib/rbi/rewriters/flatten_singleton_methods.rb#58
141
+ def flatten_singleton_methods!; end
142
+
143
+ # source://rbi/0.3.6/lib/rbi/rewriters/flatten_visibilities.rb#57
144
+ def flatten_visibilities!; end
145
+
146
+ # source://rbi/0.3.6/lib/rbi/rewriters/group_nodes.rb#78
157
147
  def group_nodes!; end
158
148
 
159
- # source://rbi/0.1.9/lib/rbi/index.rb#68
160
- sig { returns(::RBI::Index) }
149
+ # source://rbi/0.3.6/lib/rbi/index.rb#62
161
150
  def index; end
162
151
 
163
- # source://rbi/0.1.9/lib/rbi/rewriters/merge_trees.rb#324
164
- sig do
165
- params(
166
- other: ::RBI::Tree,
167
- left_name: ::String,
168
- right_name: ::String,
169
- keep: ::RBI::Rewriters::Merge::Keep
170
- ).returns(::RBI::MergeTree)
171
- end
152
+ # source://rbi/0.3.6/lib/rbi/rewriters/merge_trees.rb#323
172
153
  def merge(other, left_name: T.unsafe(nil), right_name: T.unsafe(nil), keep: T.unsafe(nil)); end
173
154
 
174
- # source://rbi/0.1.9/lib/rbi/rewriters/nest_non_public_methods.rb#46
175
- sig { void }
176
- def nest_non_public_methods!; end
155
+ # source://rbi/0.3.6/lib/rbi/rewriters/nest_non_public_members.rb#43
156
+ def nest_non_public_members!; end
177
157
 
178
- # source://rbi/0.1.9/lib/rbi/rewriters/nest_singleton_methods.rb#36
179
- sig { void }
158
+ # source://rbi/0.3.6/lib/rbi/rewriters/nest_singleton_methods.rb#33
180
159
  def nest_singleton_methods!; end
181
160
 
182
- # source://rbi/0.1.9/lib/rbi/model.rb#110
183
- sig { returns(T::Array[::RBI::Node]) }
161
+ # source://rbi/0.3.6/lib/rbi/rewriters/nest_top_level_members.rb#60
162
+ def nest_top_level_members!; end
163
+
164
+ # source://rbi/0.3.6/lib/rbi/model.rb#110
184
165
  def nodes; end
185
166
 
186
- # source://rbi/0.1.9/lib/rbi/printer.rb#233
187
- sig { override.returns(T::Boolean) }
188
- def oneline?; end
167
+ # source://rbi/0.3.6/lib/rbi/rewriters/attr_to_methods.rb#50
168
+ def replace_attributes_with_methods!; end
189
169
 
190
- # source://rbi/0.1.9/lib/rbi/rewriters/sort_nodes.rb#119
191
- sig { void }
170
+ # source://rbi/0.3.6/lib/rbi/rewriters/sort_nodes.rb#118
192
171
  def sort_nodes!; end
193
172
 
173
+ # source://rbi/0.3.6/lib/rbi/rewriters/translate_rbs_sigs.rb#82
174
+ def translate_rbs_sigs!; end
175
+
194
176
  private
195
177
 
196
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#116
178
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#123
197
179
  sig { params(node: ::RBI::Node).returns(::RBI::Node) }
198
180
  def create_node(node); end
199
181
 
200
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#111
182
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#118
201
183
  sig { returns(T::Hash[::String, ::RBI::Node]) }
202
184
  def nodes_cache; end
203
185
  end
204
186
 
205
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#126
187
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#133
206
188
  class RBI::TypedParam < ::T::Struct
207
189
  const :param, ::RBI::Param
208
190
  const :type, ::String
209
191
 
210
192
  class << self
211
- # source://sorbet-runtime/0.5.11262/lib/types/struct.rb#13
193
+ # source://sorbet-runtime/0.5.12210/lib/types/struct.rb#13
212
194
  def inherited(s); end
213
195
  end
214
196
  end
@@ -252,6 +234,25 @@ module T::Generic::TypeStoragePatch
252
234
  def type_template(variance = T.unsafe(nil), &bounds_proc); end
253
235
  end
254
236
 
237
+ # source://tapioca//lib/tapioca/runtime/trackers/required_ancestor.rb#54
238
+ module T::Helpers
239
+ # source://tapioca//lib/tapioca/runtime/trackers/required_ancestor.rb#56
240
+ def requires_ancestor(&block); end
241
+ end
242
+
243
+ class T::InexactStruct
244
+ include ::T::Props
245
+ include ::T::Props::Plugin
246
+ include ::T::Props::Optional
247
+ include ::T::Props::PrettyPrintable
248
+ include ::T::Props::Serializable
249
+ include ::T::Props::WeakConstructor
250
+ include ::T::Props::Constructor
251
+ extend ::T::Props::ClassMethods
252
+ extend ::T::Props::Plugin::ClassMethods
253
+ extend ::T::Props::Serializable::ClassMethods
254
+ end
255
+
255
256
  # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#28
256
257
  module T::Private::Methods
257
258
  class << self
@@ -320,7 +321,16 @@ module T::Private::Methods::ProcBindPatch
320
321
  def finalize_proc(decl); end
321
322
  end
322
323
 
323
- class T::Types::Proc < ::T::Types::Base; end
324
+ module T::Private::Retry; end
325
+ module T::Private::Retry::RETRY; end
326
+
327
+ class T::Types::Proc < ::T::Types::Base
328
+ # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#7
329
+ def initialize(arg_types, returns, bind = T.unsafe(nil)); end
330
+
331
+ # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#15
332
+ def name; end
333
+ end
324
334
 
325
335
  # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#6
326
336
  module T::Types::ProcBindPatch
@@ -377,7 +387,7 @@ end
377
387
  # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#4
378
388
  module Tapioca
379
389
  class << self
380
- # source://tapioca//lib/tapioca.rb#19
390
+ # source://tapioca//lib/tapioca.rb#20
381
391
  sig do
382
392
  type_parameters(:Result)
383
393
  .params(
@@ -388,7 +398,7 @@ module Tapioca
388
398
  end
389
399
  end
390
400
 
391
- # source://tapioca//lib/tapioca.rb#37
401
+ # source://tapioca//lib/tapioca.rb#39
392
402
  Tapioca::BINARY_FILE = T.let(T.unsafe(nil), String)
393
403
 
394
404
  # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#5
@@ -428,13 +438,13 @@ module Tapioca::BundlerExt::AutoRequireHook
428
438
  end
429
439
  end
430
440
 
431
- # source://tapioca//lib/tapioca.rb#60
441
+ # source://tapioca//lib/tapioca.rb#62
432
442
  Tapioca::CENTRAL_REPO_ANNOTATIONS_DIR = T.let(T.unsafe(nil), String)
433
443
 
434
- # source://tapioca//lib/tapioca.rb#59
444
+ # source://tapioca//lib/tapioca.rb#61
435
445
  Tapioca::CENTRAL_REPO_INDEX_PATH = T.let(T.unsafe(nil), String)
436
446
 
437
- # source://tapioca//lib/tapioca.rb#58
447
+ # source://tapioca//lib/tapioca.rb#60
438
448
  Tapioca::CENTRAL_REPO_ROOT_URI = T.let(T.unsafe(nil), String)
439
449
 
440
450
  # source://tapioca//lib/tapioca/cli.rb#5
@@ -443,24 +453,24 @@ class Tapioca::Cli < ::Thor
443
453
  include ::Tapioca::ConfigHelper
444
454
  include ::Tapioca::EnvHelper
445
455
 
446
- # source://tapioca//lib/tapioca/cli.rb#355
456
+ # source://tapioca//lib/tapioca/cli.rb#372
447
457
  def __print_version; end
448
458
 
449
- # source://tapioca//lib/tapioca/cli.rb#337
459
+ # source://tapioca//lib/tapioca/cli.rb#354
450
460
  def annotations; end
451
461
 
452
- # source://tapioca//lib/tapioca/cli.rb#309
462
+ # source://tapioca//lib/tapioca/cli.rb#326
453
463
  def check_shims; end
454
464
 
455
465
  # source://tapioca//lib/tapioca/cli.rb#46
456
466
  def configure; end
457
467
 
458
- # source://tapioca//lib/tapioca/cli.rb#138
468
+ # source://tapioca//lib/tapioca/cli.rb#146
459
469
  def dsl(*constant_or_paths); end
460
470
 
461
471
  # @raise [MalformattedArgumentError]
462
472
  #
463
- # source://tapioca//lib/tapioca/cli.rb#253
473
+ # source://tapioca//lib/tapioca/cli.rb#269
464
474
  def gem(*gems); end
465
475
 
466
476
  # source://tapioca//lib/tapioca/cli.rb#27
@@ -474,11 +484,19 @@ class Tapioca::Cli < ::Thor
474
484
 
475
485
  private
476
486
 
477
- # source://tapioca//lib/tapioca/cli.rb#369
487
+ # source://tapioca//lib/tapioca/cli.rb#399
478
488
  def print_init_next_steps; end
479
489
 
480
490
  class << self
481
- # source://tapioca//lib/tapioca/cli.rb#361
491
+ # source://tapioca//lib/tapioca/cli.rb#383
492
+ def addon_mode; end
493
+
494
+ # source://tapioca//lib/tapioca/cli.rb#386
495
+ sig { void }
496
+ def addon_mode!; end
497
+
498
+ # source://tapioca//lib/tapioca/cli.rb#391
499
+ sig { returns(T::Boolean) }
482
500
  def exit_on_failure?; end
483
501
  end
484
502
  end
@@ -515,7 +533,7 @@ class Tapioca::Commands::AbstractDsl < ::Tapioca::Commands::CommandWithoutTracke
515
533
 
516
534
  abstract!
517
535
 
518
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#31
536
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#34
519
537
  sig do
520
538
  params(
521
539
  requested_constants: T::Array[::String],
@@ -525,6 +543,7 @@ class Tapioca::Commands::AbstractDsl < ::Tapioca::Commands::CommandWithoutTracke
525
543
  exclude: T::Array[::String],
526
544
  file_header: T::Boolean,
527
545
  tapioca_path: ::String,
546
+ skip_constant: T::Array[::String],
528
547
  quiet: T::Boolean,
529
548
  verbose: T::Boolean,
530
549
  number_of_workers: T.nilable(::Integer),
@@ -532,22 +551,24 @@ class Tapioca::Commands::AbstractDsl < ::Tapioca::Commands::CommandWithoutTracke
532
551
  gem_dir: ::String,
533
552
  rbi_formatter: ::Tapioca::RBIFormatter,
534
553
  app_root: ::String,
535
- halt_upon_load_error: T::Boolean
554
+ halt_upon_load_error: T::Boolean,
555
+ compiler_options: T::Hash[::String, T.untyped],
556
+ lsp_addon: T::Boolean
536
557
  ).void
537
558
  end
538
- 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
559
+ 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
539
560
 
540
561
  private
541
562
 
542
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#94
563
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#107
543
564
  sig { returns(T::Array[::String]) }
544
565
  def all_requested_constants; end
545
566
 
546
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#284
567
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#313
547
568
  sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) }
548
569
  def build_error_for_files(cause, files); end
549
570
 
550
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#208
571
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#237
551
572
  sig do
552
573
  params(
553
574
  constant_name: ::String,
@@ -558,75 +579,75 @@ class Tapioca::Commands::AbstractDsl < ::Tapioca::Commands::CommandWithoutTracke
558
579
  end
559
580
  def compile_dsl_rbi(constant_name, rbi, outpath: T.unsafe(nil), quiet: T.unsafe(nil)); end
560
581
 
561
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#146
582
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#172
562
583
  sig { params(constant_names: T::Array[::String], ignore_missing: T::Boolean).returns(T::Array[::Module]) }
563
584
  def constantize(constant_names, ignore_missing: T.unsafe(nil)); end
564
585
 
565
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#169
586
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#197
566
587
  sig { params(compiler_names: T::Array[::String]).returns(T::Array[T.class_of(Tapioca::Dsl::Compiler)]) }
567
588
  def constantize_compilers(compiler_names); end
568
589
 
569
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#344
590
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#373
570
591
  sig { returns(T::Array[::String]) }
571
592
  def constants_from_requested_paths; end
572
593
 
573
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#117
594
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#133
574
595
  sig { returns(::Tapioca::Dsl::Pipeline) }
575
596
  def create_pipeline; end
576
597
 
577
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#247
598
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#276
578
599
  sig { params(constant_name: ::String).returns(::Pathname) }
579
600
  def dsl_rbi_filename(constant_name); end
580
601
 
581
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#132
602
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#158
582
603
  sig { params(requested_constants: T::Array[::String], path: ::Pathname).returns(T::Set[::Pathname]) }
583
604
  def existing_rbi_filenames(requested_constants, path: T.unsafe(nil)); end
584
605
 
585
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#339
606
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#368
586
607
  sig { params(constant: ::String).returns(::String) }
587
608
  def generate_command_for(constant); end
588
609
 
589
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#70
610
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#79
590
611
  sig { params(outpath: ::Pathname, quiet: T::Boolean).returns(T::Set[::Pathname]) }
591
612
  def generate_dsl_rbi_files(outpath, quiet:); end
592
613
 
593
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#107
614
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#120
594
615
  sig { void }
595
616
  def load_application; end
596
617
 
597
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#226
618
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#255
598
619
  sig { params(dir: ::Pathname).void }
599
620
  def perform_dsl_verification(dir); end
600
621
 
601
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#102
622
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#115
602
623
  sig { returns(::Tapioca::Dsl::Pipeline) }
603
624
  def pipeline; end
604
625
 
605
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#235
626
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#264
606
627
  sig { params(files: T::Set[::Pathname]).void }
607
628
  def purge_stale_dsl_rbi_files(files); end
608
629
 
609
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#334
630
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#363
610
631
  sig { params(constant: ::String).returns(::String) }
611
632
  def rbi_filename_for(constant); end
612
633
 
613
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#315
634
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#344
614
635
  sig { params(path: ::Pathname).returns(T::Array[::Pathname]) }
615
636
  def rbi_files_in(path); end
616
637
 
617
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#293
638
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#322
618
639
  sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void }
619
640
  def report_diff_and_exit_if_out_of_date(diff, command); end
620
641
 
621
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#188
642
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#217
622
643
  sig { params(name: ::String).returns(T.nilable(T.class_of(Tapioca::Dsl::Compiler))) }
623
644
  def resolve(name); end
624
645
 
625
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#322
646
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#351
626
647
  sig { params(class_name: ::String).returns(::String) }
627
648
  def underscore(class_name); end
628
649
 
629
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#252
650
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#281
630
651
  sig { params(tmp_dir: ::Pathname).returns(T::Hash[::String, ::Symbol]) }
631
652
  def verify_dsl_rbi(tmp_dir:); end
632
653
  end
@@ -640,7 +661,7 @@ class Tapioca::Commands::AbstractGem < ::Tapioca::Commands::Command
640
661
 
641
662
  abstract!
642
663
 
643
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#32
664
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#33
644
665
  sig do
645
666
  params(
646
667
  gem_names: T::Array[::String],
@@ -658,83 +679,71 @@ class Tapioca::Commands::AbstractGem < ::Tapioca::Commands::Command
658
679
  auto_strictness: T::Boolean,
659
680
  dsl_dir: ::String,
660
681
  rbi_formatter: ::Tapioca::RBIFormatter,
661
- halt_upon_load_error: T::Boolean
682
+ halt_upon_load_error: T::Boolean,
683
+ lsp_addon: T.nilable(T::Boolean)
662
684
  ).void
663
685
  end
664
- 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
686
+ 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
665
687
 
666
688
  private
667
689
 
668
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#221
690
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#200
669
691
  sig { returns(T::Array[::String]) }
670
692
  def added_rbis; end
671
693
 
672
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#282
694
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#261
673
695
  sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) }
674
696
  def build_error_for_files(cause, files); end
675
697
 
676
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#110
698
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#80
677
699
  sig { params(gem: ::Tapioca::Gemfile::GemSpec).void }
678
700
  def compile_gem_rbi(gem); end
679
701
 
680
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#216
702
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#195
681
703
  sig { params(gem_name: ::String).returns(::Pathname) }
682
704
  def existing_rbi(gem_name); end
683
705
 
684
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#264
706
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#243
685
707
  sig { returns(T::Hash[::String, ::String]) }
686
708
  def existing_rbis; end
687
709
 
688
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#228
710
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#207
689
711
  sig { params(gem_name: ::String).returns(::Pathname) }
690
712
  def expected_rbi(gem_name); end
691
713
 
692
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#270
714
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#249
693
715
  sig { returns(T::Hash[::String, ::String]) }
694
716
  def expected_rbis; end
695
717
 
696
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#98
697
- sig do
698
- params(
699
- gem: ::Tapioca::Gemfile::GemSpec,
700
- dependencies: T::Array[::Tapioca::Gemfile::GemSpec]
701
- ).returns(T::Array[::Tapioca::Gemfile::GemSpec])
702
- end
703
- def gem_dependencies(gem, dependencies = T.unsafe(nil)); end
704
-
705
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#233
718
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#212
706
719
  sig { params(gem_name: ::String).returns(T::Boolean) }
707
720
  def gem_rbi_exists?(gem_name); end
708
721
 
709
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#277
722
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#256
710
723
  sig { params(gem_name: ::String, version: ::String).returns(::Pathname) }
711
724
  def gem_rbi_filename(gem_name, version); end
712
725
 
713
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#77
714
- sig { params(gem_names: T::Array[::String]).returns(T::Array[::Tapioca::Gemfile::GemSpec]) }
715
- def gems_to_generate(gem_names); end
716
-
717
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#287
726
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#266
718
727
  sig { params(gem: ::Tapioca::Gemfile::GemSpec, file: ::RBI::File).void }
719
728
  def merge_with_exported_rbi(gem, file); end
720
729
 
721
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#258
730
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#237
722
731
  sig { params(old_filename: ::Pathname, new_filename: ::Pathname).void }
723
732
  def move(old_filename, new_filename); end
724
733
 
725
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#168
734
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#147
726
735
  sig { void }
727
736
  def perform_additions; end
728
737
 
729
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#141
738
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#120
730
739
  sig { void }
731
740
  def perform_removals; end
732
741
 
733
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#211
742
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#190
734
743
  sig { returns(T::Array[::String]) }
735
744
  def removed_rbis; end
736
745
 
737
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#238
746
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#217
738
747
  sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void }
739
748
  def report_diff_and_exit_if_out_of_date(diff, command); end
740
749
  end
@@ -755,11 +764,11 @@ class Tapioca::Commands::Annotations < ::Tapioca::Commands::CommandWithoutTracke
755
764
 
756
765
  private
757
766
 
758
- # source://tapioca//lib/tapioca/commands/annotations.rb#193
767
+ # source://tapioca//lib/tapioca/commands/annotations.rb#197
759
768
  sig { params(name: ::String, content: ::String).returns(::String) }
760
769
  def add_header(name, content); end
761
770
 
762
- # source://tapioca//lib/tapioca/commands/annotations.rb#213
771
+ # source://tapioca//lib/tapioca/commands/annotations.rb#217
763
772
  sig { params(name: ::String, content: ::String).returns(::String) }
764
773
  def apply_typed_override(name, content); end
765
774
 
@@ -768,18 +777,18 @@ class Tapioca::Commands::Annotations < ::Tapioca::Commands::CommandWithoutTracke
768
777
  def execute; end
769
778
 
770
779
  # source://tapioca//lib/tapioca/commands/annotations.rb#136
771
- sig { params(repo_uris: T::Array[::String], gem_name: ::String).void }
772
- def fetch_annotation(repo_uris, gem_name); end
780
+ sig { params(repo_uris: T::Array[::String], gem_info: ::Tapioca::GemInfo).void }
781
+ def fetch_annotation(repo_uris, gem_info); end
773
782
 
774
783
  # source://tapioca//lib/tapioca/commands/annotations.rb#113
775
- sig { params(gem_names: T::Array[::String]).returns(T::Array[::String]) }
776
- def fetch_annotations(gem_names); end
784
+ sig { params(project_gems: T::Array[::Tapioca::GemInfo]).returns(T::Array[::String]) }
785
+ def fetch_annotations(project_gems); end
777
786
 
778
- # source://tapioca//lib/tapioca/commands/annotations.rb#152
787
+ # source://tapioca//lib/tapioca/commands/annotations.rb#156
779
788
  sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) }
780
789
  def fetch_file(repo_uri, path); end
781
790
 
782
- # source://tapioca//lib/tapioca/commands/annotations.rb#169
791
+ # source://tapioca//lib/tapioca/commands/annotations.rb#173
783
792
  sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) }
784
793
  def fetch_http_file(repo_uri, path); end
785
794
 
@@ -791,31 +800,35 @@ class Tapioca::Commands::Annotations < ::Tapioca::Commands::CommandWithoutTracke
791
800
  sig { returns(T::Hash[::String, Tapioca::RepoIndex]) }
792
801
  def fetch_indexes; end
793
802
 
794
- # source://tapioca//lib/tapioca/commands/annotations.rb#161
803
+ # source://tapioca//lib/tapioca/commands/annotations.rb#165
795
804
  sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) }
796
805
  def fetch_local_file(repo_uri, path); end
797
806
 
807
+ # source://tapioca//lib/tapioca/commands/annotations.rb#229
808
+ sig { params(gem_version: ::Gem::Version, content: ::String).returns(::String) }
809
+ def filter_versions(gem_version, content); end
810
+
798
811
  # source://tapioca//lib/tapioca/commands/annotations.rb#50
799
- sig { returns(T::Array[::String]) }
812
+ sig { returns(T::Array[::Tapioca::GemInfo]) }
800
813
  def list_gemfile_gems; end
801
814
 
802
- # source://tapioca//lib/tapioca/commands/annotations.rb#225
815
+ # source://tapioca//lib/tapioca/commands/annotations.rb#237
803
816
  sig { params(gem_name: ::String, contents: T::Array[::String]).returns(T.nilable(::String)) }
804
817
  def merge_files(gem_name, contents); end
805
818
 
806
819
  # source://tapioca//lib/tapioca/commands/annotations.rb#60
807
- sig { params(project_gems: T::Array[::String]).void }
820
+ sig { params(project_gems: T::Array[::Tapioca::GemInfo]).void }
808
821
  def remove_expired_annotations(project_gems); end
809
822
 
810
- # source://tapioca//lib/tapioca/commands/annotations.rb#252
823
+ # source://tapioca//lib/tapioca/commands/annotations.rb#264
811
824
  sig { returns(T::Hash[::String, T.nilable(::String)]) }
812
825
  def repo_tokens; end
813
826
 
814
- # source://tapioca//lib/tapioca/commands/annotations.rb#280
827
+ # source://tapioca//lib/tapioca/commands/annotations.rb#292
815
828
  sig { params(path: ::String, repo_uri: ::String, message: ::String).void }
816
829
  def say_http_error(path, repo_uri, message:); end
817
830
 
818
- # source://tapioca//lib/tapioca/commands/annotations.rb#264
831
+ # source://tapioca//lib/tapioca/commands/annotations.rb#276
819
832
  sig { params(repo_uri: ::String).returns(T.nilable(::String)) }
820
833
  def token_for(repo_uri); end
821
834
  end
@@ -863,7 +876,7 @@ class Tapioca::Commands::Command
863
876
  sig { void }
864
877
  def initialize; end
865
878
 
866
- # source://thor/1.3.0/lib/thor/base.rb#155
879
+ # source://thor/1.3.2/lib/thor/base.rb#155
867
880
  sig { returns(::Thor::Actions) }
868
881
  def file_writer; end
869
882
 
@@ -988,6 +1001,19 @@ class Tapioca::Commands::GemGenerate < ::Tapioca::Commands::AbstractGem
988
1001
  # source://tapioca//lib/tapioca/commands/gem_generate.rb#10
989
1002
  sig { override.void }
990
1003
  def execute; end
1004
+
1005
+ # source://tapioca//lib/tapioca/commands/gem_generate.rb#74
1006
+ sig do
1007
+ params(
1008
+ gem: ::Tapioca::Gemfile::GemSpec,
1009
+ dependencies: T::Array[::Tapioca::Gemfile::GemSpec]
1010
+ ).returns(T::Array[::Tapioca::Gemfile::GemSpec])
1011
+ end
1012
+ def gem_dependencies(gem, dependencies = T.unsafe(nil)); end
1013
+
1014
+ # source://tapioca//lib/tapioca/commands/gem_generate.rb#51
1015
+ sig { params(gem_names: T::Array[::String]).returns(T::Array[::Tapioca::Gemfile::GemSpec]) }
1016
+ def gems_to_generate(gem_names); end
991
1017
  end
992
1018
 
993
1019
  # source://tapioca//lib/tapioca/commands/gem_sync.rb#6
@@ -1077,11 +1103,11 @@ module Tapioca::ConfigHelper
1077
1103
 
1078
1104
  private
1079
1105
 
1080
- # source://tapioca//lib/tapioca/helpers/config_helper.rb#151
1106
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#153
1081
1107
  sig { params(msg: ::String).returns(::Tapioca::ConfigHelper::ConfigError) }
1082
1108
  def build_error(msg); end
1083
1109
 
1084
- # source://tapioca//lib/tapioca/helpers/config_helper.rb#176
1110
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#178
1085
1111
  sig { params(config_file: ::String, errors: T::Array[::Tapioca::ConfigHelper::ConfigError]).returns(::String) }
1086
1112
  def build_error_message(config_file, errors); end
1087
1113
 
@@ -1097,7 +1123,7 @@ module Tapioca::ConfigHelper
1097
1123
  sig { params(options: T::Hash[::Symbol, ::Thor::Option]).void }
1098
1124
  def filter_defaults(options); end
1099
1125
 
1100
- # source://tapioca//lib/tapioca/helpers/config_helper.rb#194
1126
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#196
1101
1127
  sig do
1102
1128
  params(
1103
1129
  options: T.nilable(::Thor::CoreExt::HashWithIndifferentAccess)
@@ -1120,58 +1146,58 @@ module Tapioca::ConfigHelper
1120
1146
  def validate_config_options(command_options, config_key, config_options); end
1121
1147
  end
1122
1148
 
1123
- # source://tapioca//lib/tapioca/helpers/config_helper.rb#146
1149
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#148
1124
1150
  class Tapioca::ConfigHelper::ConfigError < ::T::Struct
1125
1151
  const :message_parts, T::Array[::Tapioca::ConfigHelper::ConfigErrorMessagePart]
1126
1152
 
1127
1153
  class << self
1128
- # source://sorbet-runtime/0.5.11262/lib/types/struct.rb#13
1154
+ # source://sorbet-runtime/0.5.12210/lib/types/struct.rb#13
1129
1155
  def inherited(s); end
1130
1156
  end
1131
1157
  end
1132
1158
 
1133
- # source://tapioca//lib/tapioca/helpers/config_helper.rb#141
1159
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#143
1134
1160
  class Tapioca::ConfigHelper::ConfigErrorMessagePart < ::T::Struct
1135
1161
  const :message, ::String
1136
1162
  const :colors, T::Array[::Symbol]
1137
1163
 
1138
1164
  class << self
1139
- # source://sorbet-runtime/0.5.11262/lib/types/struct.rb#13
1165
+ # source://sorbet-runtime/0.5.12210/lib/types/struct.rb#13
1140
1166
  def inherited(s); end
1141
1167
  end
1142
1168
  end
1143
1169
 
1144
- # source://tapioca//lib/tapioca.rb#44
1170
+ # source://tapioca//lib/tapioca.rb#46
1145
1171
  Tapioca::DEFAULT_ANNOTATIONS_DIR = T.let(T.unsafe(nil), String)
1146
1172
 
1147
- # source://tapioca//lib/tapioca.rb#40
1173
+ # source://tapioca//lib/tapioca.rb#42
1148
1174
  Tapioca::DEFAULT_DSL_DIR = T.let(T.unsafe(nil), String)
1149
1175
 
1150
- # source://tapioca//lib/tapioca.rb#56
1176
+ # source://tapioca//lib/tapioca.rb#58
1151
1177
  Tapioca::DEFAULT_ENVIRONMENT = T.let(T.unsafe(nil), String)
1152
1178
 
1153
- # source://tapioca//lib/tapioca.rb#41
1179
+ # source://tapioca//lib/tapioca.rb#43
1154
1180
  Tapioca::DEFAULT_GEM_DIR = T.let(T.unsafe(nil), String)
1155
1181
 
1156
- # source://tapioca//lib/tapioca.rb#46
1182
+ # source://tapioca//lib/tapioca.rb#48
1157
1183
  Tapioca::DEFAULT_OVERRIDES = T.let(T.unsafe(nil), Hash)
1158
1184
 
1159
- # source://tapioca//lib/tapioca.rb#38
1185
+ # source://tapioca//lib/tapioca.rb#40
1160
1186
  Tapioca::DEFAULT_POSTREQUIRE_FILE = T.let(T.unsafe(nil), String)
1161
1187
 
1162
- # source://tapioca//lib/tapioca.rb#39
1188
+ # source://tapioca//lib/tapioca.rb#41
1163
1189
  Tapioca::DEFAULT_RBI_DIR = T.let(T.unsafe(nil), String)
1164
1190
 
1165
- # source://tapioca//lib/tapioca/rbi_formatter.rb#29
1191
+ # source://tapioca//lib/tapioca/rbi_formatter.rb#31
1166
1192
  Tapioca::DEFAULT_RBI_FORMATTER = T.let(T.unsafe(nil), Tapioca::RBIFormatter)
1167
1193
 
1168
- # source://tapioca//lib/tapioca.rb#55
1194
+ # source://tapioca//lib/tapioca.rb#57
1169
1195
  Tapioca::DEFAULT_RBI_MAX_LINE_LENGTH = T.let(T.unsafe(nil), Integer)
1170
1196
 
1171
- # source://tapioca//lib/tapioca.rb#42
1197
+ # source://tapioca//lib/tapioca.rb#44
1172
1198
  Tapioca::DEFAULT_SHIM_DIR = T.let(T.unsafe(nil), String)
1173
1199
 
1174
- # source://tapioca//lib/tapioca.rb#43
1200
+ # source://tapioca//lib/tapioca.rb#45
1175
1201
  Tapioca::DEFAULT_TODO_FILE = T.let(T.unsafe(nil), String)
1176
1202
 
1177
1203
  # source://tapioca//lib/tapioca/dsl/compilers.rb#5
@@ -1193,17 +1219,24 @@ class Tapioca::Dsl::Compiler
1193
1219
 
1194
1220
  ConstantType = type_member { { upper: Module } }
1195
1221
 
1196
- # source://tapioca//lib/tapioca/dsl/compiler.rb#64
1197
- sig { params(pipeline: ::Tapioca::Dsl::Pipeline, root: ::RBI::Tree, constant: ConstantType).void }
1198
- def initialize(pipeline, root, constant); end
1222
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#110
1223
+ sig do
1224
+ params(
1225
+ pipeline: ::Tapioca::Dsl::Pipeline,
1226
+ root: ::RBI::Tree,
1227
+ constant: ConstantType,
1228
+ options: T::Hash[::String, T.untyped]
1229
+ ).void
1230
+ end
1231
+ def initialize(pipeline, root, constant, options = T.unsafe(nil)); end
1199
1232
 
1200
1233
  # NOTE: This should eventually accept an `Error` object or `Exception` rather than simply a `String`.
1201
1234
  #
1202
- # source://tapioca//lib/tapioca/dsl/compiler.rb#81
1235
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#128
1203
1236
  sig { params(error: ::String).void }
1204
1237
  def add_error(error); end
1205
1238
 
1206
- # source://tapioca//lib/tapioca/dsl/compiler.rb#72
1239
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#119
1207
1240
  sig { params(compiler_name: ::String).returns(T::Boolean) }
1208
1241
  def compiler_enabled?(compiler_name); end
1209
1242
 
@@ -1213,58 +1246,79 @@ class Tapioca::Dsl::Compiler
1213
1246
 
1214
1247
  # @abstract
1215
1248
  #
1216
- # source://tapioca//lib/tapioca/dsl/compiler.rb#77
1249
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#124
1217
1250
  sig { abstract.void }
1218
1251
  def decorate; end
1219
1252
 
1253
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#26
1254
+ sig { returns(T::Hash[::String, T.untyped]) }
1255
+ def options; end
1256
+
1220
1257
  # source://tapioca//lib/tapioca/dsl/compiler.rb#23
1221
1258
  sig { returns(::RBI::Tree) }
1222
1259
  def root; end
1223
1260
 
1224
1261
  private
1225
1262
 
1226
- # source://tapioca//lib/tapioca/dsl/compiler.rb#130
1263
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#177
1227
1264
  sig { params(method_def: T.any(::Method, ::UnboundMethod)).returns(T::Array[::RBI::TypedParam]) }
1228
1265
  def compile_method_parameters_to_rbi(method_def); end
1229
1266
 
1230
- # source://tapioca//lib/tapioca/dsl/compiler.rb#166
1267
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#213
1231
1268
  sig { params(method_def: T.any(::Method, ::UnboundMethod)).returns(::String) }
1232
1269
  def compile_method_return_type_to_rbi(method_def); end
1233
1270
 
1234
- # source://tapioca//lib/tapioca/dsl/compiler.rb#120
1271
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#167
1235
1272
  sig { params(scope: ::RBI::Scope, method_def: T.any(::Method, ::UnboundMethod), class_method: T::Boolean).void }
1236
1273
  def create_method_from_def(scope, method_def, class_method: T.unsafe(nil)); end
1237
1274
 
1238
1275
  # Get the types of each parameter from a method signature
1239
1276
  #
1240
- # source://tapioca//lib/tapioca/dsl/compiler.rb#94
1277
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#141
1241
1278
  sig { params(method_def: T.any(::Method, ::UnboundMethod), signature: T.untyped).returns(T::Array[::String]) }
1242
1279
  def parameters_types_from_signature(method_def, signature); end
1243
1280
 
1244
1281
  class << self
1245
1282
  # @abstract
1246
1283
  #
1247
- # source://tapioca//lib/tapioca/dsl/compiler.rb#34
1284
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#39
1248
1285
  sig { abstract.returns(T::Enumerable[::Module]) }
1249
1286
  def gather_constants; end
1250
1287
 
1251
- # source://tapioca//lib/tapioca/dsl/compiler.rb#29
1288
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#34
1252
1289
  sig { params(constant: ::Module).returns(T::Boolean) }
1253
1290
  def handles?(constant); end
1254
1291
 
1255
- # source://tapioca//lib/tapioca/dsl/compiler.rb#37
1292
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#42
1256
1293
  sig { returns(T::Set[::Module]) }
1257
1294
  def processable_constants; end
1258
1295
 
1296
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#50
1297
+ sig { params(constants: T::Array[::Module]).void }
1298
+ def requested_constants=(constants); end
1299
+
1300
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#55
1301
+ sig { void }
1302
+ def reset_state; end
1303
+
1259
1304
  private
1260
1305
 
1261
- # source://tapioca//lib/tapioca/dsl/compiler.rb#47
1306
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#82
1262
1307
  sig { returns(T::Enumerable[T::Class[T.anything]]) }
1263
1308
  def all_classes; end
1264
1309
 
1265
- # source://tapioca//lib/tapioca/dsl/compiler.rb#55
1310
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#90
1266
1311
  sig { returns(T::Enumerable[::Module]) }
1267
1312
  def all_modules; end
1313
+
1314
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#68
1315
+ sig do
1316
+ type_parameters(:U)
1317
+ .params(
1318
+ klass: T.all(T.type_parameter(:U), T::Class[T.anything])
1319
+ ).returns(T::Array[T.type_parameter(:U)])
1320
+ end
1321
+ def descendants_of(klass); end
1268
1322
  end
1269
1323
  end
1270
1324
 
@@ -1283,7 +1337,7 @@ Tapioca::Dsl::Compilers::NAMESPACES = T.let(T.unsafe(nil), Array)
1283
1337
 
1284
1338
  # source://tapioca//lib/tapioca/dsl/pipeline.rb#6
1285
1339
  class Tapioca::Dsl::Pipeline
1286
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#34
1340
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#40
1287
1341
  sig do
1288
1342
  params(
1289
1343
  requested_constants: T::Array[::Module],
@@ -1291,32 +1345,35 @@ class Tapioca::Dsl::Pipeline
1291
1345
  requested_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)],
1292
1346
  excluded_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)],
1293
1347
  error_handler: T.proc.params(error: ::String).void,
1294
- number_of_workers: T.nilable(::Integer)
1348
+ skipped_constants: T::Array[::Module],
1349
+ number_of_workers: T.nilable(::Integer),
1350
+ compiler_options: T::Hash[::String, T.untyped],
1351
+ lsp_addon: T::Boolean
1295
1352
  ).void
1296
1353
  end
1297
- def initialize(requested_constants:, requested_paths: T.unsafe(nil), requested_compilers: T.unsafe(nil), excluded_compilers: T.unsafe(nil), error_handler: T.unsafe(nil), number_of_workers: T.unsafe(nil)); end
1354
+ 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
1298
1355
 
1299
1356
  # source://tapioca//lib/tapioca/dsl/pipeline.rb#10
1300
1357
  sig { returns(T::Enumerable[T.class_of(Tapioca::Dsl::Compiler)]) }
1301
1358
  def active_compilers; end
1302
1359
 
1303
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#93
1360
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#110
1304
1361
  sig { params(error: ::String).void }
1305
1362
  def add_error(error); end
1306
1363
 
1307
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#98
1364
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#115
1308
1365
  sig { params(compiler_name: ::String).returns(T::Boolean) }
1309
1366
  def compiler_enabled?(compiler_name); end
1310
1367
 
1311
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#107
1368
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#124
1312
1369
  sig { returns(T::Array[T.class_of(Tapioca::Dsl::Compiler)]) }
1313
1370
  def compilers; end
1314
1371
 
1315
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#19
1372
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#22
1316
1373
  sig { returns(T.proc.params(error: ::String).void) }
1317
1374
  def error_handler; end
1318
1375
 
1319
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#22
1376
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#25
1320
1377
  sig { returns(T::Array[::String]) }
1321
1378
  def errors; end
1322
1379
 
@@ -1328,7 +1385,7 @@ class Tapioca::Dsl::Pipeline
1328
1385
  sig { returns(T::Array[::Pathname]) }
1329
1386
  def requested_paths; end
1330
1387
 
1331
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#58
1388
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#70
1332
1389
  sig do
1333
1390
  type_parameters(:T)
1334
1391
  .params(
@@ -1337,17 +1394,21 @@ class Tapioca::Dsl::Pipeline
1337
1394
  end
1338
1395
  def run(&blk); end
1339
1396
 
1397
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#19
1398
+ sig { returns(T::Array[::Module]) }
1399
+ def skipped_constants; end
1400
+
1340
1401
  private
1341
1402
 
1342
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#199
1403
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#231
1343
1404
  sig { void }
1344
1405
  def abort_if_pending_migrations!; end
1345
1406
 
1346
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#144
1407
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#177
1347
1408
  sig { params(constants: T::Set[::Module]).returns(T::Set[::Module]) }
1348
1409
  def filter_anonymous_and_reloaded_constants(constants); end
1349
1410
 
1350
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#124
1411
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#141
1351
1412
  sig do
1352
1413
  params(
1353
1414
  requested_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)],
@@ -1356,21 +1417,22 @@ class Tapioca::Dsl::Pipeline
1356
1417
  end
1357
1418
  def gather_active_compilers(requested_compilers, excluded_compilers); end
1358
1419
 
1359
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#132
1420
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#155
1360
1421
  sig do
1361
1422
  params(
1362
1423
  requested_constants: T::Array[::Module],
1363
- requested_paths: T::Array[::Pathname]
1424
+ requested_paths: T::Array[::Pathname],
1425
+ skipped_constants: T::Array[::Module]
1364
1426
  ).returns(T::Set[::Module])
1365
1427
  end
1366
- def gather_constants(requested_constants, requested_paths); end
1428
+ def gather_constants(requested_constants, requested_paths, skipped_constants); end
1367
1429
 
1368
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#173
1430
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#206
1369
1431
  sig { params(constant: ::Module).returns(T.nilable(::RBI::File)) }
1370
1432
  def rbi_for_constant(constant); end
1371
1433
 
1372
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#192
1373
- sig { params(error: ::String).returns(T.noreturn) }
1434
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#225
1435
+ sig { params(error: ::String).void }
1374
1436
  def report_error(error); end
1375
1437
  end
1376
1438
 
@@ -1573,6 +1635,10 @@ class Tapioca::Gem::Listeners::Methods < ::Tapioca::Gem::Listeners::Base
1573
1635
  sig { params(constant: ::Module).returns(T.nilable(::UnboundMethod)) }
1574
1636
  def initialize_method_for(constant); end
1575
1637
 
1638
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#216
1639
+ sig { params(method: ::UnboundMethod).returns(T.untyped) }
1640
+ def lookup_signature_of(method); end
1641
+
1576
1642
  # source://tapioca//lib/tapioca/gem/listeners/methods.rb#172
1577
1643
  sig { params(mod: ::Module).returns(T::Hash[::Symbol, T::Array[::Symbol]]) }
1578
1644
  def method_names_by_visibility(mod); end
@@ -1665,7 +1731,7 @@ end
1665
1731
  class Tapioca::Gem::Listeners::SorbetEnums < ::Tapioca::Gem::Listeners::Base
1666
1732
  private
1667
1733
 
1668
- # source://tapioca//lib/tapioca/gem/listeners/sorbet_enums.rb#25
1734
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_enums.rb#28
1669
1735
  sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1670
1736
  def ignore?(event); end
1671
1737
 
@@ -1800,7 +1866,7 @@ class Tapioca::Gem::Listeners::Subconstants < ::Tapioca::Gem::Listeners::Base
1800
1866
 
1801
1867
  private
1802
1868
 
1803
- # source://tapioca//lib/tapioca/gem/listeners/subconstants.rb#36
1869
+ # source://tapioca//lib/tapioca/gem/listeners/subconstants.rb#35
1804
1870
  sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1805
1871
  def ignore?(event); end
1806
1872
 
@@ -1902,49 +1968,60 @@ class Tapioca::Gem::Pipeline
1902
1968
  include ::Tapioca::SorbetHelper
1903
1969
  include ::Tapioca::RBIHelper
1904
1970
 
1905
- # source://tapioca//lib/tapioca/gem/pipeline.rb#17
1906
- sig { params(gem: ::Tapioca::Gemfile::GemSpec, include_doc: T::Boolean, include_loc: T::Boolean).void }
1907
- def initialize(gem, include_doc: T.unsafe(nil), include_loc: T.unsafe(nil)); end
1971
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#27
1972
+ sig do
1973
+ params(
1974
+ gem: ::Tapioca::Gemfile::GemSpec,
1975
+ error_handler: T.proc.params(error: ::String).void,
1976
+ include_doc: T::Boolean,
1977
+ include_loc: T::Boolean
1978
+ ).void
1979
+ end
1980
+ def initialize(gem, error_handler:, include_doc: T.unsafe(nil), include_loc: T.unsafe(nil)); end
1908
1981
 
1909
- # source://tapioca//lib/tapioca/gem/pipeline.rb#48
1982
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#64
1910
1983
  sig { returns(::RBI::Tree) }
1911
1984
  def compile; end
1912
1985
 
1913
- # source://tapioca//lib/tapioca/gem/pipeline.rb#119
1986
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#135
1914
1987
  sig { params(name: T.any(::String, ::Symbol)).returns(T::Boolean) }
1915
1988
  def constant_in_gem?(name); end
1916
1989
 
1990
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#17
1991
+ sig { returns(T.proc.params(error: ::String).void) }
1992
+ def error_handler; end
1993
+
1917
1994
  # source://tapioca//lib/tapioca/gem/pipeline.rb#14
1918
1995
  sig { returns(::Tapioca::Gemfile::GemSpec) }
1919
1996
  def gem; end
1920
1997
 
1921
- # source://tapioca//lib/tapioca/gem/pipeline.rb#137
1998
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#153
1922
1999
  sig { params(method: ::UnboundMethod).returns(T::Boolean) }
1923
2000
  def method_in_gem?(method); end
1924
2001
 
1925
2002
  # Helpers
1926
2003
  #
1927
- # source://tapioca//lib/tapioca/gem/pipeline.rb#147
2004
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#163
1928
2005
  sig { params(constant: ::Module).returns(T.nilable(::String)) }
1929
2006
  def name_of(constant); end
1930
2007
 
1931
- # source://tapioca//lib/tapioca/gem/pipeline.rb#71
2008
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#87
1932
2009
  sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Const).void }
1933
2010
  def push_const(symbol, constant, node); end
1934
2011
 
1935
- # source://tapioca//lib/tapioca/gem/pipeline.rb#61
2012
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#77
1936
2013
  sig { params(symbol: ::String, constant: ::BasicObject).void }
1937
2014
  def push_constant(symbol, constant); end
1938
2015
 
1939
- # source://tapioca//lib/tapioca/gem/pipeline.rb#66
2016
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#82
1940
2017
  sig { params(symbol: ::String, constant: ::Module).void }
1941
2018
  def push_foreign_constant(symbol, constant); end
1942
2019
 
1943
- # source://tapioca//lib/tapioca/gem/pipeline.rb#85
2020
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#101
1944
2021
  sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void }
1945
2022
  def push_foreign_scope(symbol, constant, node); end
1946
2023
 
1947
- # source://tapioca//lib/tapioca/gem/pipeline.rb#99
2024
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#115
1948
2025
  sig do
1949
2026
  params(
1950
2027
  symbol: ::String,
@@ -1957,137 +2034,137 @@ class Tapioca::Gem::Pipeline
1957
2034
  end
1958
2035
  def push_method(symbol, constant, method, node, signature, parameters); end
1959
2036
 
1960
- # source://tapioca//lib/tapioca/gem/pipeline.rb#78
2037
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#94
1961
2038
  sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void }
1962
2039
  def push_scope(symbol, constant, node); end
1963
2040
 
1964
2041
  # Events handling
1965
2042
  #
1966
- # source://tapioca//lib/tapioca/gem/pipeline.rb#56
2043
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#72
1967
2044
  sig { params(symbol: ::String).void }
1968
2045
  def push_symbol(symbol); end
1969
2046
 
1970
2047
  # Constants and properties filtering
1971
2048
  #
1972
- # source://tapioca//lib/tapioca/gem/pipeline.rb#106
2049
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#122
1973
2050
  sig { params(symbol_name: ::String).returns(T::Boolean) }
1974
2051
  def symbol_in_payload?(symbol_name); end
1975
2052
 
1976
2053
  private
1977
2054
 
1978
- # source://tapioca//lib/tapioca/gem/pipeline.rb#440
2055
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#456
1979
2056
  sig { params(name: ::String).void }
1980
2057
  def add_to_alias_namespace(name); end
1981
2058
 
1982
- # source://tapioca//lib/tapioca/gem/pipeline.rb#445
2059
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#461
1983
2060
  sig { params(name: ::String).returns(T::Boolean) }
1984
2061
  def alias_namespaced?(name); end
1985
2062
 
1986
- # source://tapioca//lib/tapioca/gem/pipeline.rb#244
2063
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#260
1987
2064
  sig { params(name: ::String, constant: ::Module).void }
1988
2065
  def compile_alias(name, constant); end
1989
2066
 
1990
- # source://tapioca//lib/tapioca/gem/pipeline.rb#230
2067
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#246
1991
2068
  sig { params(symbol: ::String, constant: ::BasicObject).void }
1992
2069
  def compile_constant(symbol, constant); end
1993
2070
 
1994
2071
  # Compiling
1995
2072
  #
1996
- # source://tapioca//lib/tapioca/gem/pipeline.rb#219
2073
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#235
1997
2074
  sig { params(symbol: ::String, constant: ::Module).void }
1998
2075
  def compile_foreign_constant(symbol, constant); end
1999
2076
 
2000
- # source://tapioca//lib/tapioca/gem/pipeline.rb#298
2077
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#314
2001
2078
  sig { params(name: ::String, constant: ::Module).void }
2002
2079
  def compile_module(name, constant); end
2003
2080
 
2004
- # source://tapioca//lib/tapioca/gem/pipeline.rb#265
2081
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#281
2005
2082
  sig { params(name: ::String, value: ::BasicObject).void }
2006
2083
  def compile_object(name, value); end
2007
2084
 
2008
- # source://tapioca//lib/tapioca/gem/pipeline.rb#309
2085
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#325
2009
2086
  sig { params(name: ::String, constant: ::Module).returns(::RBI::Scope) }
2010
2087
  def compile_scope(name, constant); end
2011
2088
 
2012
- # source://tapioca//lib/tapioca/gem/pipeline.rb#323
2089
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#339
2013
2090
  sig { params(constant: T::Class[T.anything]).returns(T.nilable(::String)) }
2014
2091
  def compile_superclass(constant); end
2015
2092
 
2016
- # source://tapioca//lib/tapioca/gem/pipeline.rb#421
2093
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#437
2017
2094
  sig { params(constant: ::Module, strict: T::Boolean).returns(T::Boolean) }
2018
2095
  def defined_in_gem?(constant, strict: T.unsafe(nil)); end
2019
2096
 
2020
- # source://tapioca//lib/tapioca/gem/pipeline.rb#177
2097
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#193
2021
2098
  sig { params(event: ::Tapioca::Gem::Event).void }
2022
2099
  def dispatch(event); end
2023
2100
 
2024
2101
  # Helpers
2025
2102
  #
2026
- # source://tapioca//lib/tapioca/gem/pipeline.rb#464
2103
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#480
2027
2104
  sig { params(constant: T.all(::Module, ::T::Generic)).returns(::String) }
2028
2105
  def generic_name_of(constant); end
2029
2106
 
2030
- # source://tapioca//lib/tapioca/gem/pipeline.rb#433
2107
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#449
2031
2108
  sig { params(constant: ::Module).returns(T::Set[::String]) }
2032
2109
  def get_file_candidates(constant); end
2033
2110
 
2034
- # source://tapioca//lib/tapioca/gem/pipeline.rb#162
2111
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#178
2035
2112
  sig { params(gem: ::Tapioca::Gemfile::GemSpec).returns(T::Set[::String]) }
2036
2113
  def load_bootstrap_symbols(gem); end
2037
2114
 
2038
- # source://tapioca//lib/tapioca/gem/pipeline.rb#480
2115
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#496
2039
2116
  sig { params(constant: ::Module, class_name: T.nilable(::String)).returns(T.nilable(::String)) }
2040
2117
  def name_of_proxy_target(constant, class_name); end
2041
2118
 
2042
2119
  # Events handling
2043
2120
  #
2044
- # source://tapioca//lib/tapioca/gem/pipeline.rb#172
2121
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#188
2045
2122
  sig { returns(::Tapioca::Gem::Event) }
2046
2123
  def next_event; end
2047
2124
 
2048
- # source://tapioca//lib/tapioca/gem/pipeline.rb#200
2125
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#216
2049
2126
  sig { params(event: ::Tapioca::Gem::ConstantFound).void }
2050
2127
  def on_constant(event); end
2051
2128
 
2052
- # source://tapioca//lib/tapioca/gem/pipeline.rb#212
2129
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#228
2053
2130
  sig { params(event: ::Tapioca::Gem::NodeAdded).void }
2054
2131
  def on_node(event); end
2055
2132
 
2056
- # source://tapioca//lib/tapioca/gem/pipeline.rb#191
2133
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#207
2057
2134
  sig { params(event: ::Tapioca::Gem::SymbolFound).void }
2058
2135
  def on_symbol(event); end
2059
2136
 
2060
- # source://tapioca//lib/tapioca/gem/pipeline.rb#452
2137
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#468
2061
2138
  sig { params(name: ::String).void }
2062
2139
  def seen!(name); end
2063
2140
 
2064
- # source://tapioca//lib/tapioca/gem/pipeline.rb#457
2141
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#473
2065
2142
  sig { params(name: ::String).returns(T::Boolean) }
2066
2143
  def seen?(name); end
2067
2144
 
2068
- # source://tapioca//lib/tapioca/gem/pipeline.rb#391
2145
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#407
2069
2146
  sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2070
2147
  def skip_alias?(name, constant); end
2071
2148
 
2072
- # source://tapioca//lib/tapioca/gem/pipeline.rb#379
2149
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#395
2073
2150
  sig { params(name: ::String, constant: T.anything).returns(T::Boolean) }
2074
2151
  def skip_constant?(name, constant); end
2075
2152
 
2076
- # source://tapioca//lib/tapioca/gem/pipeline.rb#408
2153
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#424
2077
2154
  sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2078
2155
  def skip_foreign_constant?(name, constant); end
2079
2156
 
2080
- # source://tapioca//lib/tapioca/gem/pipeline.rb#413
2157
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#429
2081
2158
  sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2082
2159
  def skip_module?(name, constant); end
2083
2160
 
2084
- # source://tapioca//lib/tapioca/gem/pipeline.rb#400
2161
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#416
2085
2162
  sig { params(name: ::String, constant: ::BasicObject).returns(T::Boolean) }
2086
2163
  def skip_object?(name, constant); end
2087
2164
 
2088
2165
  # Constants and properties filtering
2089
2166
  #
2090
- # source://tapioca//lib/tapioca/gem/pipeline.rb#374
2167
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#390
2091
2168
  sig { params(name: ::String).returns(T::Boolean) }
2092
2169
  def skip_symbol?(name); end
2093
2170
  end
@@ -2096,7 +2173,7 @@ end
2096
2173
  # "(eval at /path/to/file.rb:123)"
2097
2174
  # and we are just interested in the "/path/to/file.rb" part
2098
2175
  #
2099
- # source://tapioca//lib/tapioca/gem/pipeline.rb#116
2176
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#132
2100
2177
  Tapioca::Gem::Pipeline::EVAL_SOURCE_FILE_PATTERN = T.let(T.unsafe(nil), Regexp)
2101
2178
 
2102
2179
  # source://tapioca//lib/tapioca/gem/pipeline.rb#11
@@ -2149,6 +2226,21 @@ module Tapioca::GemHelper
2149
2226
  def path_in_dir?(path, dir); end
2150
2227
  end
2151
2228
 
2229
+ # source://tapioca//lib/tapioca/gem_info.rb#5
2230
+ class Tapioca::GemInfo < ::T::Struct
2231
+ const :name, ::String
2232
+ const :version, ::Gem::Version
2233
+
2234
+ class << self
2235
+ # source://tapioca//lib/tapioca/gem_info.rb#13
2236
+ sig { params(spec: ::Bundler::LazySpecification).returns(::Tapioca::GemInfo) }
2237
+ def from_spec(spec); end
2238
+
2239
+ # source://sorbet-runtime/0.5.12210/lib/types/struct.rb#13
2240
+ def inherited(s); end
2241
+ end
2242
+ end
2243
+
2152
2244
  # source://tapioca//lib/tapioca/gemfile.rb#7
2153
2245
  class Tapioca::Gemfile
2154
2246
  # source://tapioca//lib/tapioca/gemfile.rb#27
@@ -2177,7 +2269,7 @@ class Tapioca::Gemfile
2177
2269
 
2178
2270
  private
2179
2271
 
2180
- # source://tapioca//lib/tapioca/gemfile.rb#92
2272
+ # source://tapioca//lib/tapioca/gemfile.rb#101
2181
2273
  sig { returns(::String) }
2182
2274
  def dir; end
2183
2275
 
@@ -2185,7 +2277,7 @@ class Tapioca::Gemfile
2185
2277
  sig { returns(::File) }
2186
2278
  def gemfile; end
2187
2279
 
2188
- # source://tapioca//lib/tapioca/gemfile.rb#87
2280
+ # source://tapioca//lib/tapioca/gemfile.rb#96
2189
2281
  sig { returns(T::Array[::Symbol]) }
2190
2282
  def groups; end
2191
2283
 
@@ -2202,125 +2294,128 @@ class Tapioca::Gemfile
2202
2294
  sig { returns([T::Enumerable[T.any(::Bundler::StubSpecification, ::Gem::Specification)], T::Array[::String]]) }
2203
2295
  def materialize_deps; end
2204
2296
 
2205
- # source://tapioca//lib/tapioca/gemfile.rb#82
2297
+ # source://tapioca//lib/tapioca/gemfile.rb#91
2206
2298
  sig { returns(::Bundler::Runtime) }
2207
2299
  def runtime; end
2208
2300
  end
2209
2301
 
2210
- # source://tapioca//lib/tapioca/gemfile.rb#96
2302
+ # source://tapioca//lib/tapioca/gemfile.rb#105
2211
2303
  class Tapioca::Gemfile::GemSpec
2212
2304
  include ::Tapioca::GemHelper
2213
2305
 
2214
- # source://tapioca//lib/tapioca/gemfile.rb#136
2306
+ # source://tapioca//lib/tapioca/gemfile.rb#145
2215
2307
  sig { params(spec: T.any(::Bundler::StubSpecification, ::Gem::Specification)).void }
2216
2308
  def initialize(spec); end
2217
2309
 
2218
- # source://tapioca//lib/tapioca/gemfile.rb#146
2310
+ # source://tapioca//lib/tapioca/gemfile.rb#155
2219
2311
  sig { params(other: ::BasicObject).returns(T::Boolean) }
2220
2312
  def ==(other); end
2221
2313
 
2222
- # source://tapioca//lib/tapioca/gemfile.rb#171
2314
+ # source://tapioca//lib/tapioca/gemfile.rb#180
2223
2315
  sig { params(path: ::String).returns(T::Boolean) }
2224
2316
  def contains_path?(path); end
2225
2317
 
2226
- # source://tapioca//lib/tapioca/gemfile.rb#161
2318
+ # source://tapioca//lib/tapioca/gemfile.rb#170
2227
2319
  sig { returns(T::Array[::Gem::Dependency]) }
2228
2320
  def dependencies; end
2229
2321
 
2230
- # source://tapioca//lib/tapioca/gemfile.rb#190
2322
+ # source://tapioca//lib/tapioca/gemfile.rb#210
2231
2323
  sig { returns(T::Boolean) }
2232
2324
  def export_rbi_files?; end
2233
2325
 
2234
- # source://tapioca//lib/tapioca/gemfile.rb#185
2326
+ # source://tapioca//lib/tapioca/gemfile.rb#205
2235
2327
  sig { returns(T::Array[::String]) }
2236
2328
  def exported_rbi_files; end
2237
2329
 
2238
- # source://tapioca//lib/tapioca/gemfile.rb#195
2330
+ # source://tapioca//lib/tapioca/gemfile.rb#215
2239
2331
  sig { returns(::RBI::MergeTree) }
2240
2332
  def exported_rbi_tree; end
2241
2333
 
2242
- # source://tapioca//lib/tapioca/gemfile.rb#133
2334
+ # source://tapioca//lib/tapioca/gemfile.rb#142
2243
2335
  sig { returns(T::Array[::Pathname]) }
2244
2336
  def files; end
2245
2337
 
2246
- # source://tapioca//lib/tapioca/gemfile.rb#130
2338
+ # source://tapioca//lib/tapioca/gemfile.rb#139
2247
2339
  sig { returns(::String) }
2248
2340
  def full_gem_path; end
2249
2341
 
2250
- # source://tapioca//lib/tapioca/gemfile.rb#151
2342
+ # source://tapioca//lib/tapioca/gemfile.rb#160
2251
2343
  sig { params(gemfile_dir: ::String).returns(T::Boolean) }
2252
2344
  def ignore?(gemfile_dir); end
2253
2345
 
2254
- # source://tapioca//lib/tapioca/gemfile.rb#156
2346
+ # source://tapioca//lib/tapioca/gemfile.rb#165
2255
2347
  sig { returns(::String) }
2256
2348
  def name; end
2257
2349
 
2258
- # source://tapioca//lib/tapioca/gemfile.rb#180
2350
+ # source://tapioca//lib/tapioca/gemfile.rb#189
2259
2351
  sig { void }
2260
2352
  def parse_yard_docs; end
2261
2353
 
2262
- # source://tapioca//lib/tapioca/gemfile.rb#166
2354
+ # source://tapioca//lib/tapioca/gemfile.rb#175
2263
2355
  sig { returns(::String) }
2264
2356
  def rbi_file_name; end
2265
2357
 
2266
- # source://tapioca//lib/tapioca/gemfile.rb#207
2358
+ # source://tapioca//lib/tapioca/gemfile.rb#227
2267
2359
  sig { params(file: ::Pathname).returns(::Pathname) }
2268
2360
  def relative_path_for(file); end
2269
2361
 
2270
2362
  # @return [String]
2271
2363
  #
2272
- # source://tapioca//lib/tapioca/gemfile.rb#130
2364
+ # source://tapioca//lib/tapioca/gemfile.rb#139
2273
2365
  def version; end
2274
2366
 
2275
2367
  private
2276
2368
 
2277
- # source://tapioca//lib/tapioca/gemfile.rb#218
2369
+ # source://tapioca//lib/tapioca/gemfile.rb#238
2278
2370
  sig { returns(T::Array[::Pathname]) }
2279
2371
  def collect_files; end
2280
2372
 
2281
- # source://tapioca//lib/tapioca/gemfile.rb#233
2373
+ # source://tapioca//lib/tapioca/gemfile.rb#253
2282
2374
  sig { returns(T.nilable(T::Boolean)) }
2283
2375
  def default_gem?; end
2284
2376
 
2285
- # source://tapioca//lib/tapioca/gemfile.rb#292
2377
+ # source://tapioca//lib/tapioca/gemfile.rb#312
2286
2378
  sig { returns(T::Boolean) }
2287
2379
  def gem_ignored?; end
2288
2380
 
2289
- # source://tapioca//lib/tapioca/gemfile.rb#271
2381
+ # source://tapioca//lib/tapioca/gemfile.rb#291
2290
2382
  sig { params(path: ::String).returns(T::Boolean) }
2291
2383
  def has_parent_gemspec?(path); end
2292
2384
 
2293
- # source://tapioca//lib/tapioca/gemfile.rb#238
2385
+ # source://tapioca//lib/tapioca/gemfile.rb#258
2294
2386
  sig { returns(::Regexp) }
2295
2387
  def require_paths_prefix_matcher; end
2296
2388
 
2297
- # source://tapioca//lib/tapioca/gemfile.rb#250
2389
+ # source://tapioca//lib/tapioca/gemfile.rb#270
2298
2390
  sig { params(file: ::String).returns(::Pathname) }
2299
2391
  def resolve_to_ruby_lib_dir(file); end
2300
2392
 
2301
- # source://tapioca//lib/tapioca/gemfile.rb#264
2393
+ # source://tapioca//lib/tapioca/gemfile.rb#284
2302
2394
  sig { returns(::String) }
2303
2395
  def version_string; end
2304
2396
 
2305
2397
  class << self
2306
- # source://tapioca//lib/tapioca/gemfile.rb#104
2398
+ # source://tapioca//lib/tapioca/gemfile.rb#113
2307
2399
  sig { returns(T::Hash[::String, ::Tapioca::Gemfile::GemSpec]) }
2308
2400
  def spec_lookup_by_file_path; end
2309
2401
  end
2310
2402
  end
2311
2403
 
2312
- # source://tapioca//lib/tapioca/gemfile.rb#116
2404
+ # source://tapioca//lib/tapioca/gemfile.rb#125
2313
2405
  Tapioca::Gemfile::GemSpec::IGNORED_GEMS = T.let(T.unsafe(nil), Array)
2314
2406
 
2315
2407
  # source://tapioca//lib/tapioca/gemfile.rb#10
2316
2408
  Tapioca::Gemfile::Spec = T.type_alias { T.any(::Bundler::StubSpecification, ::Gem::Specification) }
2317
2409
 
2410
+ # source://tapioca//lib/tapioca.rb#33
2411
+ Tapioca::LIB_ROOT_DIR = T.let(T.unsafe(nil), String)
2412
+
2318
2413
  # source://tapioca//lib/tapioca/loaders/loader.rb#5
2319
2414
  module Tapioca::Loaders; end
2320
2415
 
2321
2416
  # source://tapioca//lib/tapioca/loaders/dsl.rb#6
2322
2417
  class Tapioca::Loaders::Dsl < ::Tapioca::Loaders::Loader
2323
- # source://tapioca//lib/tapioca/loaders/dsl.rb#38
2418
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#74
2324
2419
  sig do
2325
2420
  params(
2326
2421
  tapioca_path: ::String,
@@ -2331,26 +2426,40 @@ class Tapioca::Loaders::Dsl < ::Tapioca::Loaders::Loader
2331
2426
  end
2332
2427
  def initialize(tapioca_path:, eager_load: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end
2333
2428
 
2334
- # source://tapioca//lib/tapioca/loaders/dsl.rb#27
2429
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#36
2335
2430
  sig { override.void }
2336
2431
  def load; end
2337
2432
 
2433
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#43
2434
+ sig { void }
2435
+ def load_dsl_extensions_and_compilers; end
2436
+
2437
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#49
2438
+ sig { void }
2439
+ def reload_custom_compilers; end
2440
+
2338
2441
  protected
2339
2442
 
2340
- # source://tapioca//lib/tapioca/loaders/dsl.rb#81
2443
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#120
2341
2444
  sig { void }
2342
2445
  def load_application; end
2343
2446
 
2344
- # source://tapioca//lib/tapioca/loaders/dsl.rb#63
2447
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#100
2345
2448
  sig { void }
2346
2449
  def load_dsl_compilers; end
2347
2450
 
2348
- # source://tapioca//lib/tapioca/loaders/dsl.rb#48
2451
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#85
2349
2452
  sig { void }
2350
2453
  def load_dsl_extensions; end
2351
2454
 
2455
+ private
2456
+
2457
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#136
2458
+ sig { void }
2459
+ def load_custom_dsl_compilers; end
2460
+
2352
2461
  class << self
2353
- # source://tapioca//lib/tapioca/loaders/dsl.rb#15
2462
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#20
2354
2463
  sig do
2355
2464
  params(
2356
2465
  tapioca_path: ::String,
@@ -2436,16 +2545,16 @@ class Tapioca::Loaders::Loader
2436
2545
  # @param engine [T.class_of(Rails::Engine)]
2437
2546
  # @return [Array<String>]
2438
2547
  #
2439
- # source://sorbet-runtime/0.5.11262/lib/types/private/methods/_methods.rb#257
2440
- def eager_load_paths(*args, **_arg1, &blk); end
2548
+ # source://tapioca//lib/tapioca/loaders/loader.rb#234
2549
+ def eager_load_paths(engine); end
2441
2550
 
2442
- # source://tapioca//lib/tapioca/loaders/loader.rb#198
2551
+ # source://tapioca//lib/tapioca/loaders/loader.rb#199
2443
2552
  sig { void }
2444
2553
  def eager_load_rails_app; end
2445
2554
 
2446
2555
  # @return [Array<T.class_of(Rails::Engine)>]
2447
2556
  #
2448
- # source://tapioca//lib/tapioca/loaders/loader.rb#169
2557
+ # source://tapioca//lib/tapioca/loaders/loader.rb#178
2449
2558
  def engines; end
2450
2559
 
2451
2560
  # source://tapioca//lib/tapioca/loaders/loader.rb#29
@@ -2459,11 +2568,11 @@ class Tapioca::Loaders::Loader
2459
2568
  end
2460
2569
  def load_bundle(gemfile, initialize_file, require_file, halt_upon_load_error); end
2461
2570
 
2462
- # source://tapioca//lib/tapioca/loaders/loader.rb#127
2571
+ # source://tapioca//lib/tapioca/loaders/loader.rb#136
2463
2572
  sig { void }
2464
2573
  def load_engines_in_classic_mode; end
2465
2574
 
2466
- # source://tapioca//lib/tapioca/loaders/loader.rb#105
2575
+ # source://tapioca//lib/tapioca/loaders/loader.rb#114
2467
2576
  sig { void }
2468
2577
  def load_engines_in_zeitwerk_mode; end
2469
2578
 
@@ -2478,30 +2587,26 @@ class Tapioca::Loaders::Loader
2478
2587
  end
2479
2588
  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
2480
2589
 
2481
- # source://tapioca//lib/tapioca/loaders/loader.rb#80
2590
+ # source://tapioca//lib/tapioca/loaders/loader.rb#89
2482
2591
  sig { void }
2483
2592
  def load_rails_engines; end
2484
2593
 
2485
- # source://tapioca//lib/tapioca/loaders/loader.rb#219
2594
+ # source://tapioca//lib/tapioca/loaders/loader.rb#220
2486
2595
  sig { params(file: T.nilable(::String)).void }
2487
2596
  def require_helper(file); end
2488
2597
 
2489
- # source://tapioca//lib/tapioca/loaders/loader.rb#94
2598
+ # source://tapioca//lib/tapioca/loaders/loader.rb#103
2490
2599
  def run_initializers; end
2491
2600
 
2492
- # source://tapioca//lib/tapioca/loaders/loader.rb#183
2601
+ # source://tapioca//lib/tapioca/loaders/loader.rb#192
2493
2602
  sig { params(path: ::String).void }
2494
2603
  def safe_require(path); end
2495
2604
 
2496
- # source://tapioca//lib/tapioca/loaders/loader.rb#190
2497
- sig { void }
2498
- def silence_deprecations; end
2499
-
2500
- # source://tapioca//lib/tapioca/loaders/loader.rb#152
2605
+ # source://tapioca//lib/tapioca/loaders/loader.rb#161
2501
2606
  sig { params(blk: T.proc.void).void }
2502
2607
  def with_rails_application(&blk); end
2503
2608
 
2504
- # source://tapioca//lib/tapioca/loaders/loader.rb#145
2609
+ # source://tapioca//lib/tapioca/loaders/loader.rb#154
2505
2610
  sig { returns(T::Boolean) }
2506
2611
  def zeitwerk_mode?; end
2507
2612
  end
@@ -2548,19 +2653,19 @@ module Tapioca::RBIFilesHelper
2548
2653
 
2549
2654
  private
2550
2655
 
2551
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#209
2656
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#223
2552
2657
  sig { params(nodes: T::Array[::RBI::Node]).returns(T::Array[::RBI::Scope]) }
2553
2658
  def extract_empty_scopes(nodes); end
2554
2659
 
2555
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#214
2660
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#228
2556
2661
  sig { params(nodes: T::Array[::RBI::Node]).returns(T::Array[T.any(::RBI::Attr, ::RBI::Method)]) }
2557
2662
  def extract_methods_and_attrs(nodes); end
2558
2663
 
2559
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#224
2664
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#238
2560
2665
  sig { params(nodes: T::Array[::RBI::Node]).returns(T::Array[T.any(::RBI::Mixin, ::RBI::RequiresAncestor)]) }
2561
2666
  def extract_mixins(nodes); end
2562
2667
 
2563
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#234
2668
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#248
2564
2669
  sig do
2565
2670
  params(
2566
2671
  nodes: T::Array[T.any(::RBI::Attr, ::RBI::Method)]
@@ -2568,7 +2673,7 @@ module Tapioca::RBIFilesHelper
2568
2673
  end
2569
2674
  def extract_nodes_with_sigs(nodes); end
2570
2675
 
2571
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#202
2676
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#216
2572
2677
  sig do
2573
2678
  params(
2574
2679
  nodes: T::Array[::RBI::Node],
@@ -2578,7 +2683,7 @@ module Tapioca::RBIFilesHelper
2578
2683
  end
2579
2684
  def extract_shims_and_todos(nodes, shim_rbi_dir:, todo_rbi_file:); end
2580
2685
 
2581
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#266
2686
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#280
2582
2687
  sig { params(path: ::String).returns(::String) }
2583
2688
  def gem_name_from_rbi_path(path); end
2584
2689
 
@@ -2590,14 +2695,14 @@ module Tapioca::RBIFilesHelper
2590
2695
  sig { params(nodes: T::Array[::RBI::Node], shim_rbi_dir: ::String, todo_rbi_file: ::String).returns(T::Boolean) }
2591
2696
  def shims_or_todos_have_duplicates?(nodes, shim_rbi_dir:, todo_rbi_file:); end
2592
2697
 
2593
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#239
2698
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#253
2594
2699
  sig { params(errors: T::Array[::Spoom::Sorbet::Errors::Error], gem_dir: ::String).void }
2595
2700
  def update_gem_rbis_strictnesses(errors, gem_dir); end
2596
2701
  end
2597
2702
 
2598
2703
  # source://tapioca//lib/tapioca/rbi_formatter.rb#5
2599
2704
  class Tapioca::RBIFormatter < ::RBI::Formatter
2600
- # source://tapioca//lib/tapioca/rbi_formatter.rb#22
2705
+ # source://tapioca//lib/tapioca/rbi_formatter.rb#24
2601
2706
  sig { params(file: ::RBI::File).void }
2602
2707
  def write_empty_body_comment!(file); end
2603
2708
 
@@ -2616,6 +2721,10 @@ module Tapioca::RBIHelper
2616
2721
  sig { params(type: ::String).returns(::String) }
2617
2722
  def as_nilable_type(type); end
2618
2723
 
2724
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#100
2725
+ sig { params(type: ::String).returns(::String) }
2726
+ def as_non_nilable_type(type); end
2727
+
2619
2728
  # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#72
2620
2729
  sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
2621
2730
  def create_block_param(name, type:); end
@@ -2652,7 +2761,7 @@ module Tapioca::RBIHelper
2652
2761
  sig { params(sig_string: ::String).returns(::String) }
2653
2762
  def sanitize_signature_types(sig_string); end
2654
2763
 
2655
- # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#100
2764
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#109
2656
2765
  sig { params(name: ::String).returns(T::Boolean) }
2657
2766
  def valid_method_name?(name); end
2658
2767
 
@@ -2866,7 +2975,7 @@ class Tapioca::Runtime::GenericTypeRegistry::GenericType < ::T::Types::Simple
2866
2975
  def initialize(raw_type, underlying_type); end
2867
2976
 
2868
2977
  # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#45
2869
- sig { params(obj: T.untyped).returns(T::Boolean) }
2978
+ sig { override.params(obj: T.untyped).returns(T::Boolean) }
2870
2979
  def valid?(obj); end
2871
2980
  end
2872
2981
 
@@ -2875,7 +2984,7 @@ module Tapioca::Runtime::Reflection
2875
2984
  extend ::Tapioca::Runtime::AttachedClassOf
2876
2985
  extend ::Tapioca::Runtime::Reflection
2877
2986
 
2878
- # source://tapioca//lib/tapioca/runtime/reflection.rb#196
2987
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#207
2879
2988
  sig { params(constant: ::Module).returns(T.untyped) }
2880
2989
  def abstract_type_of(constant); end
2881
2990
 
@@ -2919,7 +3028,7 @@ module Tapioca::Runtime::Reflection
2919
3028
  # class D < C; end
2920
3029
  # descendants_of(C) # => [B, A, D]
2921
3030
  #
2922
- # source://tapioca//lib/tapioca/runtime/reflection.rb#167
3031
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#172
2923
3032
  sig do
2924
3033
  type_parameters(:U)
2925
3034
  .params(
@@ -2928,11 +3037,11 @@ module Tapioca::Runtime::Reflection
2928
3037
  end
2929
3038
  def descendants_of(klass); end
2930
3039
 
2931
- # source://tapioca//lib/tapioca/runtime/reflection.rb#189
3040
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#200
2932
3041
  sig { params(constant: ::Module).returns(T::Set[::String]) }
2933
3042
  def file_candidates_for(constant); end
2934
3043
 
2935
- # source://tapioca//lib/tapioca/runtime/reflection.rb#202
3044
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#213
2936
3045
  sig { params(constant: ::Module).returns(T::Boolean) }
2937
3046
  def final_module?(constant); end
2938
3047
 
@@ -2940,7 +3049,7 @@ module Tapioca::Runtime::Reflection
2940
3049
  sig { params(constant: ::Module).returns(T::Array[::Module]) }
2941
3050
  def inherited_ancestors_of(constant); end
2942
3051
 
2943
- # source://tapioca//lib/tapioca/runtime/reflection.rb#145
3052
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#150
2944
3053
  sig { params(constant: ::Module, method: ::Symbol).returns(::Method) }
2945
3054
  def method_of(constant, method); end
2946
3055
 
@@ -2948,7 +3057,7 @@ module Tapioca::Runtime::Reflection
2948
3057
  sig { params(constant: ::Module).returns(T.nilable(::String)) }
2949
3058
  def name_of(constant); end
2950
3059
 
2951
- # source://tapioca//lib/tapioca/runtime/reflection.rb#140
3060
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#145
2952
3061
  sig { params(type: ::T::Types::Base).returns(::String) }
2953
3062
  def name_of_type(type); end
2954
3063
 
@@ -2973,21 +3082,26 @@ module Tapioca::Runtime::Reflection
2973
3082
  def qualified_name_of(constant); end
2974
3083
 
2975
3084
  # Examines the call stack to identify the closest location where a "require" is performed
2976
- # by searching for the label "<top (required)>". If none is found, it returns the location
3085
+ # by searching for the label "<top (required)>" or "block in <class:...>" in the
3086
+ # case of an ActiveSupport.on_load hook. If none is found, it returns the location
2977
3087
  # labeled "<main>", which is the original call site.
2978
3088
  #
2979
- # source://tapioca//lib/tapioca/runtime/reflection.rb#179
3089
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#185
2980
3090
  sig { params(locations: T.nilable(T::Array[::Thread::Backtrace::Location])).returns(::String) }
2981
3091
  def resolve_loc(locations); end
2982
3092
 
2983
- # source://tapioca//lib/tapioca/runtime/reflection.rb#207
3093
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#218
2984
3094
  sig { params(constant: ::Module).returns(T::Boolean) }
2985
3095
  def sealed_module?(constant); end
2986
3096
 
2987
- # source://tapioca//lib/tapioca/runtime/reflection.rb#133
3097
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#138
2988
3098
  sig { params(method: T.any(::Method, ::UnboundMethod)).returns(T.untyped) }
2989
3099
  def signature_of(method); end
2990
3100
 
3101
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#133
3102
+ sig { params(method: T.any(::Method, ::UnboundMethod)).returns(T.untyped) }
3103
+ def signature_of!(method); end
3104
+
2991
3105
  # source://tapioca//lib/tapioca/runtime/reflection.rb#72
2992
3106
  sig { params(constant: ::Module).returns(T::Class[T.anything]) }
2993
3107
  def singleton_class_of(constant); end
@@ -2998,23 +3112,23 @@ module Tapioca::Runtime::Reflection
2998
3112
 
2999
3113
  private
3000
3114
 
3001
- # source://tapioca//lib/tapioca/runtime/reflection.rb#244
3115
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#255
3002
3116
  sig { params(parent: ::Module, name: ::String).returns(T.nilable(::Module)) }
3003
3117
  def child_module_for_parent_with_name(parent, name); end
3004
3118
 
3005
- # source://tapioca//lib/tapioca/runtime/reflection.rb#260
3119
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#271
3006
3120
  sig { params(name: ::String).returns(T::Boolean) }
3007
3121
  def has_aliased_namespace?(name); end
3008
3122
 
3009
- # source://tapioca//lib/tapioca/runtime/reflection.rb#255
3123
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#266
3010
3124
  sig { params(method: ::UnboundMethod).returns(T::Boolean) }
3011
3125
  def method_defined_by_forwardable_module?(method); end
3012
3126
 
3013
- # source://tapioca//lib/tapioca/runtime/reflection.rb#230
3127
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#241
3014
3128
  sig { params(constant: ::Module).returns(T::Array[::UnboundMethod]) }
3015
3129
  def methods_for(constant); end
3016
3130
 
3017
- # source://tapioca//lib/tapioca/runtime/reflection.rb#214
3131
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#225
3018
3132
  sig { params(constant: ::Module).returns(T::Array[::UnboundMethod]) }
3019
3133
  def relevant_methods_for(constant); end
3020
3134
  end
@@ -3198,9 +3312,9 @@ end
3198
3312
 
3199
3313
  class Tapioca::Runtime::Trackers::Mixin::Type < ::T::Enum
3200
3314
  enums do
3201
- Prepend = new
3202
- Include = new
3203
3315
  Extend = new
3316
+ Include = new
3317
+ Prepend = new
3204
3318
  end
3205
3319
  end
3206
3320
 
@@ -3246,10 +3360,10 @@ module Tapioca::Runtime::Trackers::Tracker
3246
3360
  end
3247
3361
  end
3248
3362
 
3249
- # source://tapioca//lib/tapioca.rb#33
3363
+ # source://tapioca//lib/tapioca.rb#35
3250
3364
  Tapioca::SORBET_CONFIG_FILE = T.let(T.unsafe(nil), String)
3251
3365
 
3252
- # source://tapioca//lib/tapioca.rb#32
3366
+ # source://tapioca//lib/tapioca.rb#34
3253
3367
  Tapioca::SORBET_DIR = T.let(T.unsafe(nil), String)
3254
3368
 
3255
3369
  # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#5
@@ -3285,6 +3399,58 @@ Tapioca::SorbetHelper::SORBET_PAYLOAD_URL = T.let(T.unsafe(nil), String)
3285
3399
  # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#22
3286
3400
  Tapioca::SorbetHelper::SPOOM_CONTEXT = T.let(T.unsafe(nil), Spoom::Context)
3287
3401
 
3402
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#7
3403
+ class Tapioca::SourceURI < ::URI::File
3404
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#72
3405
+ sig { params(v: T.nilable(::String)).returns(T::Boolean) }
3406
+ def check_host(v); end
3407
+
3408
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#55
3409
+ sig { returns(T.nilable(::String)) }
3410
+ def gem_name; end
3411
+
3412
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#29
3413
+ sig { returns(T.nilable(::String)) }
3414
+ def gem_version; end
3415
+
3416
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#60
3417
+ sig { returns(T.nilable(::String)) }
3418
+ def line_number; end
3419
+
3420
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#65
3421
+ sig { params(v: T.nilable(::String)).void }
3422
+ def set_path(v); end
3423
+
3424
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#84
3425
+ sig { returns(::String) }
3426
+ def to_s; end
3427
+
3428
+ class << self
3429
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#42
3430
+ sig do
3431
+ params(
3432
+ gem_name: ::String,
3433
+ gem_version: T.nilable(::String),
3434
+ path: ::String,
3435
+ line_number: T.nilable(::String)
3436
+ ).returns(T.attached_class)
3437
+ end
3438
+ def build(gem_name:, gem_version:, path:, line_number:); end
3439
+ end
3440
+ end
3441
+
3442
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#10
3443
+ Tapioca::SourceURI::COMPONENT = T.let(T.unsafe(nil), Array)
3444
+
3445
+ # `uri` for Ruby 3.4 switched the default parser from RFC2396 to RFC3986. The new parser emits a deprecation
3446
+ # warning on a few methods and delegates them to RFC2396, namely `extract`/`make_regexp`/`escape`/`unescape`.
3447
+ # On earlier versions of the uri gem, the RFC2396_PARSER constant doesn't exist, so it needs some special
3448
+ # handling to select a parser that doesn't emit deprecations. While it was backported to Ruby 3.1, users may
3449
+ # have the uri gem in their own bundle and thus not use a compatible version.
3450
+ #
3451
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#26
3452
+ Tapioca::SourceURI::PARSER = T.let(T.unsafe(nil), URI::RFC2396_Parser)
3453
+
3288
3454
  # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#5
3289
3455
  module Tapioca::Static; end
3290
3456
 
@@ -3344,10 +3510,10 @@ module Tapioca::Static::SymbolLoader
3344
3510
 
3345
3511
  # @return [Array<T.class_of(Rails::Engine)>]
3346
3512
  #
3347
- # source://sorbet-runtime/0.5.11262/lib/types/private/methods/_methods.rb#257
3348
- def engines(*args, **_arg1, &blk); end
3513
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#71
3514
+ def engines; end
3349
3515
 
3350
- # source://tapioca//lib/tapioca/static/symbol_loader.rb#82
3516
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#84
3351
3517
  sig { params(input: ::String, table_type: ::String).returns(::String) }
3352
3518
  def symbol_table_json_from(input, table_type: T.unsafe(nil)); end
3353
3519
  end
@@ -3381,10 +3547,10 @@ end
3381
3547
  # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#9
3382
3548
  Tapioca::Static::SymbolTableParser::SKIP_PARSE_KINDS = T.let(T.unsafe(nil), Array)
3383
3549
 
3384
- # source://tapioca//lib/tapioca.rb#35
3550
+ # source://tapioca//lib/tapioca.rb#37
3385
3551
  Tapioca::TAPIOCA_CONFIG_FILE = T.let(T.unsafe(nil), String)
3386
3552
 
3387
- # source://tapioca//lib/tapioca.rb#34
3553
+ # source://tapioca//lib/tapioca.rb#36
3388
3554
  Tapioca::TAPIOCA_DIR = T.let(T.unsafe(nil), String)
3389
3555
 
3390
3556
  # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#108
@@ -3452,52 +3618,11 @@ Tapioca::TypeVariableModule::DEFAULT_BOUNDS_PROC = T.let(T.unsafe(nil), Proc)
3452
3618
  # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#125
3453
3619
  class Tapioca::TypeVariableModule::Type < ::T::Enum
3454
3620
  enums do
3621
+ HasAttachedClass = new
3455
3622
  Member = new
3456
3623
  Template = new
3457
- HasAttachedClass = new
3458
3624
  end
3459
3625
  end
3460
3626
 
3461
3627
  # source://tapioca//lib/tapioca/version.rb#5
3462
3628
  Tapioca::VERSION = T.let(T.unsafe(nil), String)
3463
-
3464
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#7
3465
- class URI::Source < ::URI::File
3466
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#58
3467
- sig { params(v: T.nilable(::String)).returns(T::Boolean) }
3468
- def check_host(v); end
3469
-
3470
- # source://uri/0.13.0/uri/generic.rb#243
3471
- def gem_name; end
3472
-
3473
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#25
3474
- sig { returns(T.nilable(::String)) }
3475
- def gem_version; end
3476
-
3477
- # source://uri/0.13.0/uri/generic.rb#283
3478
- def line_number; end
3479
-
3480
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#51
3481
- sig { params(v: T.nilable(::String)).void }
3482
- def set_path(v); end
3483
-
3484
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#70
3485
- sig { returns(::String) }
3486
- def to_s; end
3487
-
3488
- class << self
3489
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#38
3490
- sig do
3491
- params(
3492
- gem_name: ::String,
3493
- gem_version: T.nilable(::String),
3494
- path: ::String,
3495
- line_number: T.nilable(::String)
3496
- ).returns(::URI::Source)
3497
- end
3498
- def build(gem_name:, gem_version:, path:, line_number:); end
3499
- end
3500
- end
3501
-
3502
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#10
3503
- URI::Source::COMPONENT = T.let(T.unsafe(nil), Array)