repeatable 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +19 -23
  3. data/.ruby-version +1 -0
  4. data/.yardopts +1 -0
  5. data/CHANGELOG.md +16 -2
  6. data/Gemfile +1 -0
  7. data/Gemfile.lock +86 -73
  8. data/README.md +8 -5
  9. data/lib/repeatable/expression/date.rb +1 -0
  10. data/lib/repeatable/expression/range_in_year.rb +2 -0
  11. data/lib/repeatable/version.rb +1 -1
  12. data/rbi/repeatable.rbi +1 -1
  13. data/sorbet/rbi/gems/{ast@2.4.2.rbi → ast@2.4.3.rbi} +3 -3
  14. data/sorbet/rbi/gems/benchmark@0.4.1.rbi +619 -0
  15. data/sorbet/rbi/gems/{commander@4.6.0.rbi → commander@5.0.0.rbi} +1 -0
  16. data/sorbet/rbi/gems/{diff-lcs@1.4.4.rbi → diff-lcs@1.6.2.rbi} +135 -83
  17. data/sorbet/rbi/gems/{erubi@1.12.0.rbi → erubi@1.13.1.rbi} +25 -15
  18. data/sorbet/rbi/gems/{highline@2.0.3.rbi → highline@3.0.1.rbi} +1 -0
  19. data/sorbet/rbi/gems/{json@2.7.2.rbi → json@2.13.2.rbi} +759 -233
  20. data/sorbet/rbi/gems/{language_server-protocol@3.17.0.3.rbi → language_server-protocol@3.17.0.5.rbi} +11 -5
  21. data/sorbet/rbi/gems/logger@1.7.0.rbi +963 -0
  22. data/sorbet/rbi/gems/{method_source@1.0.0.rbi → method_source@1.1.0.rbi} +41 -9
  23. data/sorbet/rbi/gems/{parallel@1.24.0.rbi → parallel@1.27.0.rbi} +32 -21
  24. data/sorbet/rbi/gems/{parlour@8.1.0.rbi → parlour@9.1.2.rbi} +86 -68
  25. data/sorbet/rbi/gems/{parser@3.3.1.0.rbi → parser@3.3.9.0.rbi} +908 -891
  26. data/sorbet/rbi/gems/{prism@0.28.0.rbi → prism@1.4.0.rbi} +14078 -10249
  27. data/sorbet/rbi/gems/{pry@0.14.0.rbi → pry@0.15.2.rbi} +437 -244
  28. data/sorbet/rbi/gems/{racc@1.7.3.rbi → racc@1.8.1.rbi} +36 -33
  29. data/sorbet/rbi/gems/{rake@13.0.3.rbi → rake@13.3.0.rbi} +83 -76
  30. data/sorbet/rbi/gems/rbi@0.3.6.rbi +6893 -0
  31. data/sorbet/rbi/gems/rbs@3.9.5.rbi +6976 -0
  32. data/sorbet/rbi/gems/{regexp_parser@2.9.0.rbi → regexp_parser@2.11.2.rbi} +1089 -1015
  33. data/sorbet/rbi/gems/{rexml@3.2.6.rbi → rexml@3.4.3.rbi} +833 -329
  34. data/sorbet/rbi/gems/{rspec-core@3.10.1.rbi → rspec-core@3.13.5.rbi} +1014 -613
  35. data/sorbet/rbi/gems/{rspec-expectations@3.10.1.rbi → rspec-expectations@3.13.5.rbi} +897 -638
  36. data/sorbet/rbi/gems/{rspec-mocks@3.10.2.rbi → rspec-mocks@3.13.5.rbi} +547 -444
  37. data/sorbet/rbi/gems/{rspec-support@3.10.2.rbi → rspec-support@3.13.5.rbi} +337 -304
  38. data/sorbet/rbi/gems/rspec@3.13.1.rbi +83 -0
  39. data/sorbet/rbi/gems/{rubocop-ast@1.31.3.rbi → rubocop-ast@1.46.0.rbi} +1678 -958
  40. data/sorbet/rbi/gems/{rubocop-performance@1.20.2.rbi → rubocop-performance@1.25.0.rbi} +1 -0
  41. data/sorbet/rbi/gems/{rubocop@1.62.1.rbi → rubocop@1.80.2.rbi} +11243 -5431
  42. data/sorbet/rbi/gems/simplecov-html@0.13.2.rbi +225 -0
  43. data/sorbet/rbi/gems/{simplecov@0.21.2.rbi → simplecov@0.22.0.rbi} +39 -25
  44. data/sorbet/rbi/gems/simplecov_json_formatter@0.1.4.rbi +233 -2
  45. data/sorbet/rbi/gems/spoom@1.6.3.rbi +6985 -0
  46. data/sorbet/rbi/gems/{standard-performance@1.3.1.rbi → standard-performance@1.8.0.rbi} +1 -0
  47. data/sorbet/rbi/gems/{standard@1.35.1.rbi → standard@1.51.0.rbi} +181 -96
  48. data/sorbet/rbi/gems/{tapioca@0.13.3.rbi → tapioca@0.16.11.rbi} +489 -388
  49. data/sorbet/rbi/gems/{thor@1.3.1.rbi → thor@1.4.0.rbi} +94 -46
  50. data/sorbet/rbi/gems/unicode-display_width@3.2.0.rbi +132 -0
  51. data/sorbet/rbi/gems/unicode-emoji@4.1.0.rbi +251 -0
  52. data/sorbet/rbi/gems/{yard-sorbet@0.8.1.rbi → yard-sorbet@0.9.0.rbi} +36 -29
  53. data/sorbet/rbi/gems/{yard@0.9.36.rbi → yard@0.9.37.rbi} +394 -236
  54. metadata +46 -40
  55. data/sorbet/rbi/gems/rbi@0.1.13.rbi +0 -3071
  56. data/sorbet/rbi/gems/rspec@3.10.0.rbi +0 -76
  57. data/sorbet/rbi/gems/simplecov-html@0.12.3.rbi +0 -216
  58. data/sorbet/rbi/gems/spoom@1.3.2.rbi +0 -4420
  59. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +0 -65
  60. /data/sorbet/rbi/gems/{docile@1.4.0.rbi → docile@1.4.1.rbi} +0 -0
@@ -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.13/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.13/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.13/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.13/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.13/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,31 +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,
111
- class_method: T::Boolean,
112
- visibility: ::RBI::Visibility,
113
- comments: T::Array[::RBI::Comment]
114
- ).void
115
- 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
117
-
118
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#113
119
- sig do
120
- params(
121
- name: ::String,
122
- sigs: T::Array[::RBI::Sig],
123
- parameters: T::Array[::RBI::Param],
97
+ return_type: T.nilable(::String),
124
98
  class_method: T::Boolean,
125
99
  visibility: ::RBI::Visibility,
126
- comments: T::Array[::RBI::Comment]
100
+ comments: T::Array[::RBI::Comment],
101
+ block: T.nilable(T.proc.params(node: ::RBI::Method).void)
127
102
  ).void
128
103
  end
129
- def create_method_with_sigs(name, sigs:, parameters: T.unsafe(nil), class_method: T.unsafe(nil), visibility: T.unsafe(nil), comments: T.unsafe(nil)); end
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
130
105
 
131
106
  # source://tapioca//lib/tapioca/rbi_ext/model.rb#60
132
107
  sig { params(name: ::String).void }
@@ -140,10 +115,6 @@ class RBI::Tree < ::RBI::NodeWithComments
140
115
  sig { params(constant: ::Module, block: T.nilable(T.proc.params(scope: ::RBI::Scope).void)).returns(::RBI::Scope) }
141
116
  def create_path(constant, &block); end
142
117
 
143
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#134
144
- sig { params(parameters: T::Hash[T.any(::String, ::Symbol), ::String], return_type: ::String).returns(::RBI::Sig) }
145
- def create_sig(parameters:, return_type: T.unsafe(nil)); end
146
-
147
118
  # source://tapioca//lib/tapioca/rbi_ext/model.rb#74
148
119
  sig do
149
120
  params(
@@ -157,75 +128,69 @@ class RBI::Tree < ::RBI::NodeWithComments
157
128
  end
158
129
  def create_type_variable(name, type:, variance: T.unsafe(nil), fixed: T.unsafe(nil), upper: T.unsafe(nil), lower: T.unsafe(nil)); end
159
130
 
160
- # source://rbi/0.1.13/lib/rbi/rewriters/deannotate.rb#41
161
- sig { params(annotation: ::String).void }
131
+ # source://rbi/0.3.6/lib/rbi/rewriters/deannotate.rb#38
162
132
  def deannotate!(annotation); end
163
133
 
164
- # source://rbi/0.1.13/lib/rbi/model.rb#132
165
- sig { returns(T::Boolean) }
134
+ # source://rbi/0.3.6/lib/rbi/model.rb#126
166
135
  def empty?; end
167
136
 
168
- # source://rbi/0.1.13/lib/rbi/rewriters/filter_versions.rb#118
169
- sig { params(version: ::Gem::Version).void }
137
+ # source://rbi/0.3.6/lib/rbi/rewriters/filter_versions.rb#113
170
138
  def filter_versions!(version); end
171
139
 
172
- # source://rbi/0.1.13/lib/rbi/rewriters/group_nodes.rb#38
173
- 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
174
147
  def group_nodes!; end
175
148
 
176
- # source://rbi/0.1.13/lib/rbi/index.rb#68
177
- sig { returns(::RBI::Index) }
149
+ # source://rbi/0.3.6/lib/rbi/index.rb#62
178
150
  def index; end
179
151
 
180
- # source://rbi/0.1.13/lib/rbi/rewriters/merge_trees.rb#324
181
- sig do
182
- params(
183
- other: ::RBI::Tree,
184
- left_name: ::String,
185
- right_name: ::String,
186
- keep: ::RBI::Rewriters::Merge::Keep
187
- ).returns(::RBI::MergeTree)
188
- end
152
+ # source://rbi/0.3.6/lib/rbi/rewriters/merge_trees.rb#323
189
153
  def merge(other, left_name: T.unsafe(nil), right_name: T.unsafe(nil), keep: T.unsafe(nil)); end
190
154
 
191
- # source://rbi/0.1.13/lib/rbi/rewriters/nest_non_public_methods.rb#46
192
- sig { void }
193
- 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
194
157
 
195
- # source://rbi/0.1.13/lib/rbi/rewriters/nest_singleton_methods.rb#36
196
- sig { void }
158
+ # source://rbi/0.3.6/lib/rbi/rewriters/nest_singleton_methods.rb#33
197
159
  def nest_singleton_methods!; end
198
160
 
199
- # source://rbi/0.1.13/lib/rbi/model.rb#110
200
- 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
201
165
  def nodes; end
202
166
 
203
- # source://rbi/0.1.13/lib/rbi/printer.rb#233
204
- sig { override.returns(T::Boolean) }
205
- def oneline?; end
167
+ # source://rbi/0.3.6/lib/rbi/rewriters/attr_to_methods.rb#50
168
+ def replace_attributes_with_methods!; end
206
169
 
207
- # source://rbi/0.1.13/lib/rbi/rewriters/sort_nodes.rb#119
208
- sig { void }
170
+ # source://rbi/0.3.6/lib/rbi/rewriters/sort_nodes.rb#118
209
171
  def sort_nodes!; end
210
172
 
173
+ # source://rbi/0.3.6/lib/rbi/rewriters/translate_rbs_sigs.rb#82
174
+ def translate_rbs_sigs!; end
175
+
211
176
  private
212
177
 
213
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#149
178
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#123
214
179
  sig { params(node: ::RBI::Node).returns(::RBI::Node) }
215
180
  def create_node(node); end
216
181
 
217
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#144
182
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#118
218
183
  sig { returns(T::Hash[::String, ::RBI::Node]) }
219
184
  def nodes_cache; end
220
185
  end
221
186
 
222
- # source://tapioca//lib/tapioca/rbi_ext/model.rb#159
187
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#133
223
188
  class RBI::TypedParam < ::T::Struct
224
189
  const :param, ::RBI::Param
225
190
  const :type, ::String
226
191
 
227
192
  class << self
228
- # source://sorbet-runtime/0.5.11368/lib/types/struct.rb#13
193
+ # source://sorbet-runtime/0.6.12501/lib/types/struct.rb#13
229
194
  def inherited(s); end
230
195
  end
231
196
  end
@@ -269,6 +234,25 @@ module T::Generic::TypeStoragePatch
269
234
  def type_template(variance = T.unsafe(nil), &bounds_proc); end
270
235
  end
271
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
+
272
256
  # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#28
273
257
  module T::Private::Methods
274
258
  class << self
@@ -337,7 +321,16 @@ module T::Private::Methods::ProcBindPatch
337
321
  def finalize_proc(decl); end
338
322
  end
339
323
 
340
- 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
341
334
 
342
335
  # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#6
343
336
  module T::Types::ProcBindPatch
@@ -394,7 +387,7 @@ end
394
387
  # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#4
395
388
  module Tapioca
396
389
  class << self
397
- # source://tapioca//lib/tapioca.rb#19
390
+ # source://tapioca//lib/tapioca.rb#20
398
391
  sig do
399
392
  type_parameters(:Result)
400
393
  .params(
@@ -405,7 +398,7 @@ module Tapioca
405
398
  end
406
399
  end
407
400
 
408
- # source://tapioca//lib/tapioca.rb#37
401
+ # source://tapioca//lib/tapioca.rb#39
409
402
  Tapioca::BINARY_FILE = T.let(T.unsafe(nil), String)
410
403
 
411
404
  # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#5
@@ -445,13 +438,13 @@ module Tapioca::BundlerExt::AutoRequireHook
445
438
  end
446
439
  end
447
440
 
448
- # source://tapioca//lib/tapioca.rb#60
441
+ # source://tapioca//lib/tapioca.rb#62
449
442
  Tapioca::CENTRAL_REPO_ANNOTATIONS_DIR = T.let(T.unsafe(nil), String)
450
443
 
451
- # source://tapioca//lib/tapioca.rb#59
444
+ # source://tapioca//lib/tapioca.rb#61
452
445
  Tapioca::CENTRAL_REPO_INDEX_PATH = T.let(T.unsafe(nil), String)
453
446
 
454
- # source://tapioca//lib/tapioca.rb#58
447
+ # source://tapioca//lib/tapioca.rb#60
455
448
  Tapioca::CENTRAL_REPO_ROOT_URI = T.let(T.unsafe(nil), String)
456
449
 
457
450
  # source://tapioca//lib/tapioca/cli.rb#5
@@ -460,24 +453,24 @@ class Tapioca::Cli < ::Thor
460
453
  include ::Tapioca::ConfigHelper
461
454
  include ::Tapioca::EnvHelper
462
455
 
463
- # source://tapioca//lib/tapioca/cli.rb#355
456
+ # source://tapioca//lib/tapioca/cli.rb#372
464
457
  def __print_version; end
465
458
 
466
- # source://tapioca//lib/tapioca/cli.rb#337
459
+ # source://tapioca//lib/tapioca/cli.rb#354
467
460
  def annotations; end
468
461
 
469
- # source://tapioca//lib/tapioca/cli.rb#309
462
+ # source://tapioca//lib/tapioca/cli.rb#326
470
463
  def check_shims; end
471
464
 
472
465
  # source://tapioca//lib/tapioca/cli.rb#46
473
466
  def configure; end
474
467
 
475
- # source://tapioca//lib/tapioca/cli.rb#138
468
+ # source://tapioca//lib/tapioca/cli.rb#146
476
469
  def dsl(*constant_or_paths); end
477
470
 
478
471
  # @raise [MalformattedArgumentError]
479
472
  #
480
- # source://tapioca//lib/tapioca/cli.rb#253
473
+ # source://tapioca//lib/tapioca/cli.rb#269
481
474
  def gem(*gems); end
482
475
 
483
476
  # source://tapioca//lib/tapioca/cli.rb#27
@@ -491,11 +484,19 @@ class Tapioca::Cli < ::Thor
491
484
 
492
485
  private
493
486
 
494
- # source://tapioca//lib/tapioca/cli.rb#369
487
+ # source://tapioca//lib/tapioca/cli.rb#399
495
488
  def print_init_next_steps; end
496
489
 
497
490
  class << self
498
- # 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) }
499
500
  def exit_on_failure?; end
500
501
  end
501
502
  end
@@ -532,7 +533,7 @@ class Tapioca::Commands::AbstractDsl < ::Tapioca::Commands::CommandWithoutTracke
532
533
 
533
534
  abstract!
534
535
 
535
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#31
536
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#34
536
537
  sig do
537
538
  params(
538
539
  requested_constants: T::Array[::String],
@@ -542,6 +543,7 @@ class Tapioca::Commands::AbstractDsl < ::Tapioca::Commands::CommandWithoutTracke
542
543
  exclude: T::Array[::String],
543
544
  file_header: T::Boolean,
544
545
  tapioca_path: ::String,
546
+ skip_constant: T::Array[::String],
545
547
  quiet: T::Boolean,
546
548
  verbose: T::Boolean,
547
549
  number_of_workers: T.nilable(::Integer),
@@ -549,22 +551,24 @@ class Tapioca::Commands::AbstractDsl < ::Tapioca::Commands::CommandWithoutTracke
549
551
  gem_dir: ::String,
550
552
  rbi_formatter: ::Tapioca::RBIFormatter,
551
553
  app_root: ::String,
552
- 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
553
557
  ).void
554
558
  end
555
- 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
556
560
 
557
561
  private
558
562
 
559
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#94
563
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#107
560
564
  sig { returns(T::Array[::String]) }
561
565
  def all_requested_constants; end
562
566
 
563
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#285
567
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#313
564
568
  sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) }
565
569
  def build_error_for_files(cause, files); end
566
570
 
567
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#209
571
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#237
568
572
  sig do
569
573
  params(
570
574
  constant_name: ::String,
@@ -575,75 +579,75 @@ class Tapioca::Commands::AbstractDsl < ::Tapioca::Commands::CommandWithoutTracke
575
579
  end
576
580
  def compile_dsl_rbi(constant_name, rbi, outpath: T.unsafe(nil), quiet: T.unsafe(nil)); end
577
581
 
578
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#146
582
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#172
579
583
  sig { params(constant_names: T::Array[::String], ignore_missing: T::Boolean).returns(T::Array[::Module]) }
580
584
  def constantize(constant_names, ignore_missing: T.unsafe(nil)); end
581
585
 
582
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#169
586
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#197
583
587
  sig { params(compiler_names: T::Array[::String]).returns(T::Array[T.class_of(Tapioca::Dsl::Compiler)]) }
584
588
  def constantize_compilers(compiler_names); end
585
589
 
586
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#345
590
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#373
587
591
  sig { returns(T::Array[::String]) }
588
592
  def constants_from_requested_paths; end
589
593
 
590
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#117
594
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#133
591
595
  sig { returns(::Tapioca::Dsl::Pipeline) }
592
596
  def create_pipeline; end
593
597
 
594
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#248
598
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#276
595
599
  sig { params(constant_name: ::String).returns(::Pathname) }
596
600
  def dsl_rbi_filename(constant_name); end
597
601
 
598
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#132
602
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#158
599
603
  sig { params(requested_constants: T::Array[::String], path: ::Pathname).returns(T::Set[::Pathname]) }
600
604
  def existing_rbi_filenames(requested_constants, path: T.unsafe(nil)); end
601
605
 
602
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#340
606
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#368
603
607
  sig { params(constant: ::String).returns(::String) }
604
608
  def generate_command_for(constant); end
605
609
 
606
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#70
610
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#79
607
611
  sig { params(outpath: ::Pathname, quiet: T::Boolean).returns(T::Set[::Pathname]) }
608
612
  def generate_dsl_rbi_files(outpath, quiet:); end
609
613
 
610
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#107
614
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#120
611
615
  sig { void }
612
616
  def load_application; end
613
617
 
614
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#227
618
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#255
615
619
  sig { params(dir: ::Pathname).void }
616
620
  def perform_dsl_verification(dir); end
617
621
 
618
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#102
622
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#115
619
623
  sig { returns(::Tapioca::Dsl::Pipeline) }
620
624
  def pipeline; end
621
625
 
622
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#236
626
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#264
623
627
  sig { params(files: T::Set[::Pathname]).void }
624
628
  def purge_stale_dsl_rbi_files(files); end
625
629
 
626
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#335
630
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#363
627
631
  sig { params(constant: ::String).returns(::String) }
628
632
  def rbi_filename_for(constant); end
629
633
 
630
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#316
634
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#344
631
635
  sig { params(path: ::Pathname).returns(T::Array[::Pathname]) }
632
636
  def rbi_files_in(path); end
633
637
 
634
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#294
638
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#322
635
639
  sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void }
636
640
  def report_diff_and_exit_if_out_of_date(diff, command); end
637
641
 
638
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#189
642
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#217
639
643
  sig { params(name: ::String).returns(T.nilable(T.class_of(Tapioca::Dsl::Compiler))) }
640
644
  def resolve(name); end
641
645
 
642
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#323
646
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#351
643
647
  sig { params(class_name: ::String).returns(::String) }
644
648
  def underscore(class_name); end
645
649
 
646
- # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#253
650
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#281
647
651
  sig { params(tmp_dir: ::Pathname).returns(T::Hash[::String, ::Symbol]) }
648
652
  def verify_dsl_rbi(tmp_dir:); end
649
653
  end
@@ -657,7 +661,7 @@ class Tapioca::Commands::AbstractGem < ::Tapioca::Commands::Command
657
661
 
658
662
  abstract!
659
663
 
660
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#32
664
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#33
661
665
  sig do
662
666
  params(
663
667
  gem_names: T::Array[::String],
@@ -675,83 +679,71 @@ class Tapioca::Commands::AbstractGem < ::Tapioca::Commands::Command
675
679
  auto_strictness: T::Boolean,
676
680
  dsl_dir: ::String,
677
681
  rbi_formatter: ::Tapioca::RBIFormatter,
678
- halt_upon_load_error: T::Boolean
682
+ halt_upon_load_error: T::Boolean,
683
+ lsp_addon: T.nilable(T::Boolean)
679
684
  ).void
680
685
  end
681
- 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
682
687
 
683
688
  private
684
689
 
685
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#223
690
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#200
686
691
  sig { returns(T::Array[::String]) }
687
692
  def added_rbis; end
688
693
 
689
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#284
694
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#261
690
695
  sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) }
691
696
  def build_error_for_files(cause, files); end
692
697
 
693
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#110
698
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#80
694
699
  sig { params(gem: ::Tapioca::Gemfile::GemSpec).void }
695
700
  def compile_gem_rbi(gem); end
696
701
 
697
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#218
702
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#195
698
703
  sig { params(gem_name: ::String).returns(::Pathname) }
699
704
  def existing_rbi(gem_name); end
700
705
 
701
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#266
706
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#243
702
707
  sig { returns(T::Hash[::String, ::String]) }
703
708
  def existing_rbis; end
704
709
 
705
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#230
710
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#207
706
711
  sig { params(gem_name: ::String).returns(::Pathname) }
707
712
  def expected_rbi(gem_name); end
708
713
 
709
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#272
714
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#249
710
715
  sig { returns(T::Hash[::String, ::String]) }
711
716
  def expected_rbis; end
712
717
 
713
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#98
714
- sig do
715
- params(
716
- gem: ::Tapioca::Gemfile::GemSpec,
717
- dependencies: T::Array[::Tapioca::Gemfile::GemSpec]
718
- ).returns(T::Array[::Tapioca::Gemfile::GemSpec])
719
- end
720
- def gem_dependencies(gem, dependencies = T.unsafe(nil)); end
721
-
722
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#235
718
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#212
723
719
  sig { params(gem_name: ::String).returns(T::Boolean) }
724
720
  def gem_rbi_exists?(gem_name); end
725
721
 
726
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#279
722
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#256
727
723
  sig { params(gem_name: ::String, version: ::String).returns(::Pathname) }
728
724
  def gem_rbi_filename(gem_name, version); end
729
725
 
730
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#77
731
- sig { params(gem_names: T::Array[::String]).returns(T::Array[::Tapioca::Gemfile::GemSpec]) }
732
- def gems_to_generate(gem_names); end
733
-
734
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#289
726
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#266
735
727
  sig { params(gem: ::Tapioca::Gemfile::GemSpec, file: ::RBI::File).void }
736
728
  def merge_with_exported_rbi(gem, file); end
737
729
 
738
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#260
730
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#237
739
731
  sig { params(old_filename: ::Pathname, new_filename: ::Pathname).void }
740
732
  def move(old_filename, new_filename); end
741
733
 
742
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#170
734
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#147
743
735
  sig { void }
744
736
  def perform_additions; end
745
737
 
746
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#143
738
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#120
747
739
  sig { void }
748
740
  def perform_removals; end
749
741
 
750
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#213
742
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#190
751
743
  sig { returns(T::Array[::String]) }
752
744
  def removed_rbis; end
753
745
 
754
- # source://tapioca//lib/tapioca/commands/abstract_gem.rb#240
746
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#217
755
747
  sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void }
756
748
  def report_diff_and_exit_if_out_of_date(diff, command); end
757
749
  end
@@ -772,11 +764,11 @@ class Tapioca::Commands::Annotations < ::Tapioca::Commands::CommandWithoutTracke
772
764
 
773
765
  private
774
766
 
775
- # source://tapioca//lib/tapioca/commands/annotations.rb#193
767
+ # source://tapioca//lib/tapioca/commands/annotations.rb#197
776
768
  sig { params(name: ::String, content: ::String).returns(::String) }
777
769
  def add_header(name, content); end
778
770
 
779
- # source://tapioca//lib/tapioca/commands/annotations.rb#213
771
+ # source://tapioca//lib/tapioca/commands/annotations.rb#217
780
772
  sig { params(name: ::String, content: ::String).returns(::String) }
781
773
  def apply_typed_override(name, content); end
782
774
 
@@ -785,18 +777,18 @@ class Tapioca::Commands::Annotations < ::Tapioca::Commands::CommandWithoutTracke
785
777
  def execute; end
786
778
 
787
779
  # source://tapioca//lib/tapioca/commands/annotations.rb#136
788
- sig { params(repo_uris: T::Array[::String], gem_name: ::String).void }
789
- 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
790
782
 
791
783
  # source://tapioca//lib/tapioca/commands/annotations.rb#113
792
- sig { params(gem_names: T::Array[::String]).returns(T::Array[::String]) }
793
- 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
794
786
 
795
- # source://tapioca//lib/tapioca/commands/annotations.rb#152
787
+ # source://tapioca//lib/tapioca/commands/annotations.rb#156
796
788
  sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) }
797
789
  def fetch_file(repo_uri, path); end
798
790
 
799
- # source://tapioca//lib/tapioca/commands/annotations.rb#169
791
+ # source://tapioca//lib/tapioca/commands/annotations.rb#173
800
792
  sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) }
801
793
  def fetch_http_file(repo_uri, path); end
802
794
 
@@ -808,31 +800,35 @@ class Tapioca::Commands::Annotations < ::Tapioca::Commands::CommandWithoutTracke
808
800
  sig { returns(T::Hash[::String, Tapioca::RepoIndex]) }
809
801
  def fetch_indexes; end
810
802
 
811
- # source://tapioca//lib/tapioca/commands/annotations.rb#161
803
+ # source://tapioca//lib/tapioca/commands/annotations.rb#165
812
804
  sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) }
813
805
  def fetch_local_file(repo_uri, path); end
814
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
+
815
811
  # source://tapioca//lib/tapioca/commands/annotations.rb#50
816
- sig { returns(T::Array[::String]) }
812
+ sig { returns(T::Array[::Tapioca::GemInfo]) }
817
813
  def list_gemfile_gems; end
818
814
 
819
- # source://tapioca//lib/tapioca/commands/annotations.rb#225
815
+ # source://tapioca//lib/tapioca/commands/annotations.rb#237
820
816
  sig { params(gem_name: ::String, contents: T::Array[::String]).returns(T.nilable(::String)) }
821
817
  def merge_files(gem_name, contents); end
822
818
 
823
819
  # source://tapioca//lib/tapioca/commands/annotations.rb#60
824
- sig { params(project_gems: T::Array[::String]).void }
820
+ sig { params(project_gems: T::Array[::Tapioca::GemInfo]).void }
825
821
  def remove_expired_annotations(project_gems); end
826
822
 
827
- # source://tapioca//lib/tapioca/commands/annotations.rb#252
823
+ # source://tapioca//lib/tapioca/commands/annotations.rb#264
828
824
  sig { returns(T::Hash[::String, T.nilable(::String)]) }
829
825
  def repo_tokens; end
830
826
 
831
- # source://tapioca//lib/tapioca/commands/annotations.rb#280
827
+ # source://tapioca//lib/tapioca/commands/annotations.rb#292
832
828
  sig { params(path: ::String, repo_uri: ::String, message: ::String).void }
833
829
  def say_http_error(path, repo_uri, message:); end
834
830
 
835
- # source://tapioca//lib/tapioca/commands/annotations.rb#264
831
+ # source://tapioca//lib/tapioca/commands/annotations.rb#276
836
832
  sig { params(repo_uri: ::String).returns(T.nilable(::String)) }
837
833
  def token_for(repo_uri); end
838
834
  end
@@ -880,7 +876,7 @@ class Tapioca::Commands::Command
880
876
  sig { void }
881
877
  def initialize; end
882
878
 
883
- # source://thor/1.3.1/lib/thor/base.rb#155
879
+ # source://thor/1.4.0/lib/thor/base.rb#155
884
880
  sig { returns(::Thor::Actions) }
885
881
  def file_writer; end
886
882
 
@@ -1005,6 +1001,19 @@ class Tapioca::Commands::GemGenerate < ::Tapioca::Commands::AbstractGem
1005
1001
  # source://tapioca//lib/tapioca/commands/gem_generate.rb#10
1006
1002
  sig { override.void }
1007
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
1008
1017
  end
1009
1018
 
1010
1019
  # source://tapioca//lib/tapioca/commands/gem_sync.rb#6
@@ -1094,11 +1103,11 @@ module Tapioca::ConfigHelper
1094
1103
 
1095
1104
  private
1096
1105
 
1097
- # source://tapioca//lib/tapioca/helpers/config_helper.rb#151
1106
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#153
1098
1107
  sig { params(msg: ::String).returns(::Tapioca::ConfigHelper::ConfigError) }
1099
1108
  def build_error(msg); end
1100
1109
 
1101
- # source://tapioca//lib/tapioca/helpers/config_helper.rb#176
1110
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#178
1102
1111
  sig { params(config_file: ::String, errors: T::Array[::Tapioca::ConfigHelper::ConfigError]).returns(::String) }
1103
1112
  def build_error_message(config_file, errors); end
1104
1113
 
@@ -1114,7 +1123,7 @@ module Tapioca::ConfigHelper
1114
1123
  sig { params(options: T::Hash[::Symbol, ::Thor::Option]).void }
1115
1124
  def filter_defaults(options); end
1116
1125
 
1117
- # source://tapioca//lib/tapioca/helpers/config_helper.rb#194
1126
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#196
1118
1127
  sig do
1119
1128
  params(
1120
1129
  options: T.nilable(::Thor::CoreExt::HashWithIndifferentAccess)
@@ -1137,58 +1146,58 @@ module Tapioca::ConfigHelper
1137
1146
  def validate_config_options(command_options, config_key, config_options); end
1138
1147
  end
1139
1148
 
1140
- # source://tapioca//lib/tapioca/helpers/config_helper.rb#146
1149
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#148
1141
1150
  class Tapioca::ConfigHelper::ConfigError < ::T::Struct
1142
1151
  const :message_parts, T::Array[::Tapioca::ConfigHelper::ConfigErrorMessagePart]
1143
1152
 
1144
1153
  class << self
1145
- # source://sorbet-runtime/0.5.11368/lib/types/struct.rb#13
1154
+ # source://sorbet-runtime/0.6.12501/lib/types/struct.rb#13
1146
1155
  def inherited(s); end
1147
1156
  end
1148
1157
  end
1149
1158
 
1150
- # source://tapioca//lib/tapioca/helpers/config_helper.rb#141
1159
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#143
1151
1160
  class Tapioca::ConfigHelper::ConfigErrorMessagePart < ::T::Struct
1152
1161
  const :message, ::String
1153
1162
  const :colors, T::Array[::Symbol]
1154
1163
 
1155
1164
  class << self
1156
- # source://sorbet-runtime/0.5.11368/lib/types/struct.rb#13
1165
+ # source://sorbet-runtime/0.6.12501/lib/types/struct.rb#13
1157
1166
  def inherited(s); end
1158
1167
  end
1159
1168
  end
1160
1169
 
1161
- # source://tapioca//lib/tapioca.rb#44
1170
+ # source://tapioca//lib/tapioca.rb#46
1162
1171
  Tapioca::DEFAULT_ANNOTATIONS_DIR = T.let(T.unsafe(nil), String)
1163
1172
 
1164
- # source://tapioca//lib/tapioca.rb#40
1173
+ # source://tapioca//lib/tapioca.rb#42
1165
1174
  Tapioca::DEFAULT_DSL_DIR = T.let(T.unsafe(nil), String)
1166
1175
 
1167
- # source://tapioca//lib/tapioca.rb#56
1176
+ # source://tapioca//lib/tapioca.rb#58
1168
1177
  Tapioca::DEFAULT_ENVIRONMENT = T.let(T.unsafe(nil), String)
1169
1178
 
1170
- # source://tapioca//lib/tapioca.rb#41
1179
+ # source://tapioca//lib/tapioca.rb#43
1171
1180
  Tapioca::DEFAULT_GEM_DIR = T.let(T.unsafe(nil), String)
1172
1181
 
1173
- # source://tapioca//lib/tapioca.rb#46
1182
+ # source://tapioca//lib/tapioca.rb#48
1174
1183
  Tapioca::DEFAULT_OVERRIDES = T.let(T.unsafe(nil), Hash)
1175
1184
 
1176
- # source://tapioca//lib/tapioca.rb#38
1185
+ # source://tapioca//lib/tapioca.rb#40
1177
1186
  Tapioca::DEFAULT_POSTREQUIRE_FILE = T.let(T.unsafe(nil), String)
1178
1187
 
1179
- # source://tapioca//lib/tapioca.rb#39
1188
+ # source://tapioca//lib/tapioca.rb#41
1180
1189
  Tapioca::DEFAULT_RBI_DIR = T.let(T.unsafe(nil), String)
1181
1190
 
1182
- # source://tapioca//lib/tapioca/rbi_formatter.rb#29
1191
+ # source://tapioca//lib/tapioca/rbi_formatter.rb#31
1183
1192
  Tapioca::DEFAULT_RBI_FORMATTER = T.let(T.unsafe(nil), Tapioca::RBIFormatter)
1184
1193
 
1185
- # source://tapioca//lib/tapioca.rb#55
1194
+ # source://tapioca//lib/tapioca.rb#57
1186
1195
  Tapioca::DEFAULT_RBI_MAX_LINE_LENGTH = T.let(T.unsafe(nil), Integer)
1187
1196
 
1188
- # source://tapioca//lib/tapioca.rb#42
1197
+ # source://tapioca//lib/tapioca.rb#44
1189
1198
  Tapioca::DEFAULT_SHIM_DIR = T.let(T.unsafe(nil), String)
1190
1199
 
1191
- # source://tapioca//lib/tapioca.rb#43
1200
+ # source://tapioca//lib/tapioca.rb#45
1192
1201
  Tapioca::DEFAULT_TODO_FILE = T.let(T.unsafe(nil), String)
1193
1202
 
1194
1203
  # source://tapioca//lib/tapioca/dsl/compilers.rb#5
@@ -1210,17 +1219,24 @@ class Tapioca::Dsl::Compiler
1210
1219
 
1211
1220
  ConstantType = type_member { { upper: Module } }
1212
1221
 
1213
- # source://tapioca//lib/tapioca/dsl/compiler.rb#64
1214
- sig { params(pipeline: ::Tapioca::Dsl::Pipeline, root: ::RBI::Tree, constant: ConstantType).void }
1215
- 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
1216
1232
 
1217
1233
  # NOTE: This should eventually accept an `Error` object or `Exception` rather than simply a `String`.
1218
1234
  #
1219
- # source://tapioca//lib/tapioca/dsl/compiler.rb#81
1235
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#128
1220
1236
  sig { params(error: ::String).void }
1221
1237
  def add_error(error); end
1222
1238
 
1223
- # source://tapioca//lib/tapioca/dsl/compiler.rb#72
1239
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#119
1224
1240
  sig { params(compiler_name: ::String).returns(T::Boolean) }
1225
1241
  def compiler_enabled?(compiler_name); end
1226
1242
 
@@ -1230,58 +1246,79 @@ class Tapioca::Dsl::Compiler
1230
1246
 
1231
1247
  # @abstract
1232
1248
  #
1233
- # source://tapioca//lib/tapioca/dsl/compiler.rb#77
1249
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#124
1234
1250
  sig { abstract.void }
1235
1251
  def decorate; end
1236
1252
 
1253
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#26
1254
+ sig { returns(T::Hash[::String, T.untyped]) }
1255
+ def options; end
1256
+
1237
1257
  # source://tapioca//lib/tapioca/dsl/compiler.rb#23
1238
1258
  sig { returns(::RBI::Tree) }
1239
1259
  def root; end
1240
1260
 
1241
1261
  private
1242
1262
 
1243
- # source://tapioca//lib/tapioca/dsl/compiler.rb#130
1263
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#177
1244
1264
  sig { params(method_def: T.any(::Method, ::UnboundMethod)).returns(T::Array[::RBI::TypedParam]) }
1245
1265
  def compile_method_parameters_to_rbi(method_def); end
1246
1266
 
1247
- # source://tapioca//lib/tapioca/dsl/compiler.rb#166
1267
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#213
1248
1268
  sig { params(method_def: T.any(::Method, ::UnboundMethod)).returns(::String) }
1249
1269
  def compile_method_return_type_to_rbi(method_def); end
1250
1270
 
1251
- # source://tapioca//lib/tapioca/dsl/compiler.rb#120
1271
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#167
1252
1272
  sig { params(scope: ::RBI::Scope, method_def: T.any(::Method, ::UnboundMethod), class_method: T::Boolean).void }
1253
1273
  def create_method_from_def(scope, method_def, class_method: T.unsafe(nil)); end
1254
1274
 
1255
1275
  # Get the types of each parameter from a method signature
1256
1276
  #
1257
- # source://tapioca//lib/tapioca/dsl/compiler.rb#94
1277
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#141
1258
1278
  sig { params(method_def: T.any(::Method, ::UnboundMethod), signature: T.untyped).returns(T::Array[::String]) }
1259
1279
  def parameters_types_from_signature(method_def, signature); end
1260
1280
 
1261
1281
  class << self
1262
1282
  # @abstract
1263
1283
  #
1264
- # source://tapioca//lib/tapioca/dsl/compiler.rb#34
1284
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#39
1265
1285
  sig { abstract.returns(T::Enumerable[::Module]) }
1266
1286
  def gather_constants; end
1267
1287
 
1268
- # source://tapioca//lib/tapioca/dsl/compiler.rb#29
1288
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#34
1269
1289
  sig { params(constant: ::Module).returns(T::Boolean) }
1270
1290
  def handles?(constant); end
1271
1291
 
1272
- # source://tapioca//lib/tapioca/dsl/compiler.rb#37
1292
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#42
1273
1293
  sig { returns(T::Set[::Module]) }
1274
1294
  def processable_constants; end
1275
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
+
1276
1304
  private
1277
1305
 
1278
- # source://tapioca//lib/tapioca/dsl/compiler.rb#47
1306
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#82
1279
1307
  sig { returns(T::Enumerable[T::Class[T.anything]]) }
1280
1308
  def all_classes; end
1281
1309
 
1282
- # source://tapioca//lib/tapioca/dsl/compiler.rb#55
1310
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#90
1283
1311
  sig { returns(T::Enumerable[::Module]) }
1284
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
1285
1322
  end
1286
1323
  end
1287
1324
 
@@ -1300,7 +1337,7 @@ Tapioca::Dsl::Compilers::NAMESPACES = T.let(T.unsafe(nil), Array)
1300
1337
 
1301
1338
  # source://tapioca//lib/tapioca/dsl/pipeline.rb#6
1302
1339
  class Tapioca::Dsl::Pipeline
1303
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#34
1340
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#40
1304
1341
  sig do
1305
1342
  params(
1306
1343
  requested_constants: T::Array[::Module],
@@ -1308,32 +1345,35 @@ class Tapioca::Dsl::Pipeline
1308
1345
  requested_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)],
1309
1346
  excluded_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)],
1310
1347
  error_handler: T.proc.params(error: ::String).void,
1311
- 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
1312
1352
  ).void
1313
1353
  end
1314
- 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
1315
1355
 
1316
1356
  # source://tapioca//lib/tapioca/dsl/pipeline.rb#10
1317
1357
  sig { returns(T::Enumerable[T.class_of(Tapioca::Dsl::Compiler)]) }
1318
1358
  def active_compilers; end
1319
1359
 
1320
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#93
1360
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#110
1321
1361
  sig { params(error: ::String).void }
1322
1362
  def add_error(error); end
1323
1363
 
1324
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#98
1364
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#115
1325
1365
  sig { params(compiler_name: ::String).returns(T::Boolean) }
1326
1366
  def compiler_enabled?(compiler_name); end
1327
1367
 
1328
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#107
1368
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#124
1329
1369
  sig { returns(T::Array[T.class_of(Tapioca::Dsl::Compiler)]) }
1330
1370
  def compilers; end
1331
1371
 
1332
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#19
1372
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#22
1333
1373
  sig { returns(T.proc.params(error: ::String).void) }
1334
1374
  def error_handler; end
1335
1375
 
1336
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#22
1376
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#25
1337
1377
  sig { returns(T::Array[::String]) }
1338
1378
  def errors; end
1339
1379
 
@@ -1345,7 +1385,7 @@ class Tapioca::Dsl::Pipeline
1345
1385
  sig { returns(T::Array[::Pathname]) }
1346
1386
  def requested_paths; end
1347
1387
 
1348
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#58
1388
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#70
1349
1389
  sig do
1350
1390
  type_parameters(:T)
1351
1391
  .params(
@@ -1354,17 +1394,21 @@ class Tapioca::Dsl::Pipeline
1354
1394
  end
1355
1395
  def run(&blk); end
1356
1396
 
1397
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#19
1398
+ sig { returns(T::Array[::Module]) }
1399
+ def skipped_constants; end
1400
+
1357
1401
  private
1358
1402
 
1359
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#199
1403
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#231
1360
1404
  sig { void }
1361
1405
  def abort_if_pending_migrations!; end
1362
1406
 
1363
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#144
1407
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#177
1364
1408
  sig { params(constants: T::Set[::Module]).returns(T::Set[::Module]) }
1365
1409
  def filter_anonymous_and_reloaded_constants(constants); end
1366
1410
 
1367
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#124
1411
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#141
1368
1412
  sig do
1369
1413
  params(
1370
1414
  requested_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)],
@@ -1373,21 +1417,22 @@ class Tapioca::Dsl::Pipeline
1373
1417
  end
1374
1418
  def gather_active_compilers(requested_compilers, excluded_compilers); end
1375
1419
 
1376
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#132
1420
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#155
1377
1421
  sig do
1378
1422
  params(
1379
1423
  requested_constants: T::Array[::Module],
1380
- requested_paths: T::Array[::Pathname]
1424
+ requested_paths: T::Array[::Pathname],
1425
+ skipped_constants: T::Array[::Module]
1381
1426
  ).returns(T::Set[::Module])
1382
1427
  end
1383
- def gather_constants(requested_constants, requested_paths); end
1428
+ def gather_constants(requested_constants, requested_paths, skipped_constants); end
1384
1429
 
1385
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#173
1430
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#206
1386
1431
  sig { params(constant: ::Module).returns(T.nilable(::RBI::File)) }
1387
1432
  def rbi_for_constant(constant); end
1388
1433
 
1389
- # source://tapioca//lib/tapioca/dsl/pipeline.rb#192
1390
- sig { params(error: ::String).returns(T.noreturn) }
1434
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#225
1435
+ sig { params(error: ::String).void }
1391
1436
  def report_error(error); end
1392
1437
  end
1393
1438
 
@@ -1590,6 +1635,10 @@ class Tapioca::Gem::Listeners::Methods < ::Tapioca::Gem::Listeners::Base
1590
1635
  sig { params(constant: ::Module).returns(T.nilable(::UnboundMethod)) }
1591
1636
  def initialize_method_for(constant); end
1592
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
+
1593
1642
  # source://tapioca//lib/tapioca/gem/listeners/methods.rb#172
1594
1643
  sig { params(mod: ::Module).returns(T::Hash[::Symbol, T::Array[::Symbol]]) }
1595
1644
  def method_names_by_visibility(mod); end
@@ -1682,7 +1731,7 @@ end
1682
1731
  class Tapioca::Gem::Listeners::SorbetEnums < ::Tapioca::Gem::Listeners::Base
1683
1732
  private
1684
1733
 
1685
- # source://tapioca//lib/tapioca/gem/listeners/sorbet_enums.rb#25
1734
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_enums.rb#28
1686
1735
  sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1687
1736
  def ignore?(event); end
1688
1737
 
@@ -1817,7 +1866,7 @@ class Tapioca::Gem::Listeners::Subconstants < ::Tapioca::Gem::Listeners::Base
1817
1866
 
1818
1867
  private
1819
1868
 
1820
- # source://tapioca//lib/tapioca/gem/listeners/subconstants.rb#36
1869
+ # source://tapioca//lib/tapioca/gem/listeners/subconstants.rb#35
1821
1870
  sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1822
1871
  def ignore?(event); end
1823
1872
 
@@ -1919,49 +1968,60 @@ class Tapioca::Gem::Pipeline
1919
1968
  include ::Tapioca::SorbetHelper
1920
1969
  include ::Tapioca::RBIHelper
1921
1970
 
1922
- # source://tapioca//lib/tapioca/gem/pipeline.rb#17
1923
- sig { params(gem: ::Tapioca::Gemfile::GemSpec, include_doc: T::Boolean, include_loc: T::Boolean).void }
1924
- 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
1925
1981
 
1926
- # source://tapioca//lib/tapioca/gem/pipeline.rb#48
1982
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#64
1927
1983
  sig { returns(::RBI::Tree) }
1928
1984
  def compile; end
1929
1985
 
1930
- # source://tapioca//lib/tapioca/gem/pipeline.rb#119
1986
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#135
1931
1987
  sig { params(name: T.any(::String, ::Symbol)).returns(T::Boolean) }
1932
1988
  def constant_in_gem?(name); end
1933
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
+
1934
1994
  # source://tapioca//lib/tapioca/gem/pipeline.rb#14
1935
1995
  sig { returns(::Tapioca::Gemfile::GemSpec) }
1936
1996
  def gem; end
1937
1997
 
1938
- # source://tapioca//lib/tapioca/gem/pipeline.rb#137
1998
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#153
1939
1999
  sig { params(method: ::UnboundMethod).returns(T::Boolean) }
1940
2000
  def method_in_gem?(method); end
1941
2001
 
1942
2002
  # Helpers
1943
2003
  #
1944
- # source://tapioca//lib/tapioca/gem/pipeline.rb#147
2004
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#163
1945
2005
  sig { params(constant: ::Module).returns(T.nilable(::String)) }
1946
2006
  def name_of(constant); end
1947
2007
 
1948
- # source://tapioca//lib/tapioca/gem/pipeline.rb#71
2008
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#87
1949
2009
  sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Const).void }
1950
2010
  def push_const(symbol, constant, node); end
1951
2011
 
1952
- # source://tapioca//lib/tapioca/gem/pipeline.rb#61
2012
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#77
1953
2013
  sig { params(symbol: ::String, constant: ::BasicObject).void }
1954
2014
  def push_constant(symbol, constant); end
1955
2015
 
1956
- # source://tapioca//lib/tapioca/gem/pipeline.rb#66
2016
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#82
1957
2017
  sig { params(symbol: ::String, constant: ::Module).void }
1958
2018
  def push_foreign_constant(symbol, constant); end
1959
2019
 
1960
- # source://tapioca//lib/tapioca/gem/pipeline.rb#85
2020
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#101
1961
2021
  sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void }
1962
2022
  def push_foreign_scope(symbol, constant, node); end
1963
2023
 
1964
- # source://tapioca//lib/tapioca/gem/pipeline.rb#99
2024
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#115
1965
2025
  sig do
1966
2026
  params(
1967
2027
  symbol: ::String,
@@ -1974,137 +2034,137 @@ class Tapioca::Gem::Pipeline
1974
2034
  end
1975
2035
  def push_method(symbol, constant, method, node, signature, parameters); end
1976
2036
 
1977
- # source://tapioca//lib/tapioca/gem/pipeline.rb#78
2037
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#94
1978
2038
  sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void }
1979
2039
  def push_scope(symbol, constant, node); end
1980
2040
 
1981
2041
  # Events handling
1982
2042
  #
1983
- # source://tapioca//lib/tapioca/gem/pipeline.rb#56
2043
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#72
1984
2044
  sig { params(symbol: ::String).void }
1985
2045
  def push_symbol(symbol); end
1986
2046
 
1987
2047
  # Constants and properties filtering
1988
2048
  #
1989
- # source://tapioca//lib/tapioca/gem/pipeline.rb#106
2049
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#122
1990
2050
  sig { params(symbol_name: ::String).returns(T::Boolean) }
1991
2051
  def symbol_in_payload?(symbol_name); end
1992
2052
 
1993
2053
  private
1994
2054
 
1995
- # source://tapioca//lib/tapioca/gem/pipeline.rb#440
2055
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#456
1996
2056
  sig { params(name: ::String).void }
1997
2057
  def add_to_alias_namespace(name); end
1998
2058
 
1999
- # source://tapioca//lib/tapioca/gem/pipeline.rb#445
2059
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#461
2000
2060
  sig { params(name: ::String).returns(T::Boolean) }
2001
2061
  def alias_namespaced?(name); end
2002
2062
 
2003
- # source://tapioca//lib/tapioca/gem/pipeline.rb#244
2063
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#260
2004
2064
  sig { params(name: ::String, constant: ::Module).void }
2005
2065
  def compile_alias(name, constant); end
2006
2066
 
2007
- # source://tapioca//lib/tapioca/gem/pipeline.rb#230
2067
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#246
2008
2068
  sig { params(symbol: ::String, constant: ::BasicObject).void }
2009
2069
  def compile_constant(symbol, constant); end
2010
2070
 
2011
2071
  # Compiling
2012
2072
  #
2013
- # source://tapioca//lib/tapioca/gem/pipeline.rb#219
2073
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#235
2014
2074
  sig { params(symbol: ::String, constant: ::Module).void }
2015
2075
  def compile_foreign_constant(symbol, constant); end
2016
2076
 
2017
- # source://tapioca//lib/tapioca/gem/pipeline.rb#298
2077
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#314
2018
2078
  sig { params(name: ::String, constant: ::Module).void }
2019
2079
  def compile_module(name, constant); end
2020
2080
 
2021
- # source://tapioca//lib/tapioca/gem/pipeline.rb#265
2081
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#281
2022
2082
  sig { params(name: ::String, value: ::BasicObject).void }
2023
2083
  def compile_object(name, value); end
2024
2084
 
2025
- # source://tapioca//lib/tapioca/gem/pipeline.rb#309
2085
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#325
2026
2086
  sig { params(name: ::String, constant: ::Module).returns(::RBI::Scope) }
2027
2087
  def compile_scope(name, constant); end
2028
2088
 
2029
- # source://tapioca//lib/tapioca/gem/pipeline.rb#323
2089
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#339
2030
2090
  sig { params(constant: T::Class[T.anything]).returns(T.nilable(::String)) }
2031
2091
  def compile_superclass(constant); end
2032
2092
 
2033
- # source://tapioca//lib/tapioca/gem/pipeline.rb#421
2093
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#437
2034
2094
  sig { params(constant: ::Module, strict: T::Boolean).returns(T::Boolean) }
2035
2095
  def defined_in_gem?(constant, strict: T.unsafe(nil)); end
2036
2096
 
2037
- # source://tapioca//lib/tapioca/gem/pipeline.rb#177
2097
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#193
2038
2098
  sig { params(event: ::Tapioca::Gem::Event).void }
2039
2099
  def dispatch(event); end
2040
2100
 
2041
2101
  # Helpers
2042
2102
  #
2043
- # source://tapioca//lib/tapioca/gem/pipeline.rb#464
2103
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#480
2044
2104
  sig { params(constant: T.all(::Module, ::T::Generic)).returns(::String) }
2045
2105
  def generic_name_of(constant); end
2046
2106
 
2047
- # source://tapioca//lib/tapioca/gem/pipeline.rb#433
2107
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#449
2048
2108
  sig { params(constant: ::Module).returns(T::Set[::String]) }
2049
2109
  def get_file_candidates(constant); end
2050
2110
 
2051
- # source://tapioca//lib/tapioca/gem/pipeline.rb#162
2111
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#178
2052
2112
  sig { params(gem: ::Tapioca::Gemfile::GemSpec).returns(T::Set[::String]) }
2053
2113
  def load_bootstrap_symbols(gem); end
2054
2114
 
2055
- # source://tapioca//lib/tapioca/gem/pipeline.rb#480
2115
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#496
2056
2116
  sig { params(constant: ::Module, class_name: T.nilable(::String)).returns(T.nilable(::String)) }
2057
2117
  def name_of_proxy_target(constant, class_name); end
2058
2118
 
2059
2119
  # Events handling
2060
2120
  #
2061
- # source://tapioca//lib/tapioca/gem/pipeline.rb#172
2121
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#188
2062
2122
  sig { returns(::Tapioca::Gem::Event) }
2063
2123
  def next_event; end
2064
2124
 
2065
- # source://tapioca//lib/tapioca/gem/pipeline.rb#200
2125
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#216
2066
2126
  sig { params(event: ::Tapioca::Gem::ConstantFound).void }
2067
2127
  def on_constant(event); end
2068
2128
 
2069
- # source://tapioca//lib/tapioca/gem/pipeline.rb#212
2129
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#228
2070
2130
  sig { params(event: ::Tapioca::Gem::NodeAdded).void }
2071
2131
  def on_node(event); end
2072
2132
 
2073
- # source://tapioca//lib/tapioca/gem/pipeline.rb#191
2133
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#207
2074
2134
  sig { params(event: ::Tapioca::Gem::SymbolFound).void }
2075
2135
  def on_symbol(event); end
2076
2136
 
2077
- # source://tapioca//lib/tapioca/gem/pipeline.rb#452
2137
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#468
2078
2138
  sig { params(name: ::String).void }
2079
2139
  def seen!(name); end
2080
2140
 
2081
- # source://tapioca//lib/tapioca/gem/pipeline.rb#457
2141
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#473
2082
2142
  sig { params(name: ::String).returns(T::Boolean) }
2083
2143
  def seen?(name); end
2084
2144
 
2085
- # source://tapioca//lib/tapioca/gem/pipeline.rb#391
2145
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#407
2086
2146
  sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2087
2147
  def skip_alias?(name, constant); end
2088
2148
 
2089
- # source://tapioca//lib/tapioca/gem/pipeline.rb#379
2149
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#395
2090
2150
  sig { params(name: ::String, constant: T.anything).returns(T::Boolean) }
2091
2151
  def skip_constant?(name, constant); end
2092
2152
 
2093
- # source://tapioca//lib/tapioca/gem/pipeline.rb#408
2153
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#424
2094
2154
  sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2095
2155
  def skip_foreign_constant?(name, constant); end
2096
2156
 
2097
- # source://tapioca//lib/tapioca/gem/pipeline.rb#413
2157
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#429
2098
2158
  sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2099
2159
  def skip_module?(name, constant); end
2100
2160
 
2101
- # source://tapioca//lib/tapioca/gem/pipeline.rb#400
2161
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#416
2102
2162
  sig { params(name: ::String, constant: ::BasicObject).returns(T::Boolean) }
2103
2163
  def skip_object?(name, constant); end
2104
2164
 
2105
2165
  # Constants and properties filtering
2106
2166
  #
2107
- # source://tapioca//lib/tapioca/gem/pipeline.rb#374
2167
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#390
2108
2168
  sig { params(name: ::String).returns(T::Boolean) }
2109
2169
  def skip_symbol?(name); end
2110
2170
  end
@@ -2113,7 +2173,7 @@ end
2113
2173
  # "(eval at /path/to/file.rb:123)"
2114
2174
  # and we are just interested in the "/path/to/file.rb" part
2115
2175
  #
2116
- # source://tapioca//lib/tapioca/gem/pipeline.rb#116
2176
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#132
2117
2177
  Tapioca::Gem::Pipeline::EVAL_SOURCE_FILE_PATTERN = T.let(T.unsafe(nil), Regexp)
2118
2178
 
2119
2179
  # source://tapioca//lib/tapioca/gem/pipeline.rb#11
@@ -2166,6 +2226,21 @@ module Tapioca::GemHelper
2166
2226
  def path_in_dir?(path, dir); end
2167
2227
  end
2168
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.6.12501/lib/types/struct.rb#13
2240
+ def inherited(s); end
2241
+ end
2242
+ end
2243
+
2169
2244
  # source://tapioca//lib/tapioca/gemfile.rb#7
2170
2245
  class Tapioca::Gemfile
2171
2246
  # source://tapioca//lib/tapioca/gemfile.rb#27
@@ -2194,7 +2269,7 @@ class Tapioca::Gemfile
2194
2269
 
2195
2270
  private
2196
2271
 
2197
- # source://tapioca//lib/tapioca/gemfile.rb#92
2272
+ # source://tapioca//lib/tapioca/gemfile.rb#101
2198
2273
  sig { returns(::String) }
2199
2274
  def dir; end
2200
2275
 
@@ -2202,7 +2277,7 @@ class Tapioca::Gemfile
2202
2277
  sig { returns(::File) }
2203
2278
  def gemfile; end
2204
2279
 
2205
- # source://tapioca//lib/tapioca/gemfile.rb#87
2280
+ # source://tapioca//lib/tapioca/gemfile.rb#96
2206
2281
  sig { returns(T::Array[::Symbol]) }
2207
2282
  def groups; end
2208
2283
 
@@ -2219,125 +2294,128 @@ class Tapioca::Gemfile
2219
2294
  sig { returns([T::Enumerable[T.any(::Bundler::StubSpecification, ::Gem::Specification)], T::Array[::String]]) }
2220
2295
  def materialize_deps; end
2221
2296
 
2222
- # source://tapioca//lib/tapioca/gemfile.rb#82
2297
+ # source://tapioca//lib/tapioca/gemfile.rb#91
2223
2298
  sig { returns(::Bundler::Runtime) }
2224
2299
  def runtime; end
2225
2300
  end
2226
2301
 
2227
- # source://tapioca//lib/tapioca/gemfile.rb#96
2302
+ # source://tapioca//lib/tapioca/gemfile.rb#105
2228
2303
  class Tapioca::Gemfile::GemSpec
2229
2304
  include ::Tapioca::GemHelper
2230
2305
 
2231
- # source://tapioca//lib/tapioca/gemfile.rb#136
2306
+ # source://tapioca//lib/tapioca/gemfile.rb#145
2232
2307
  sig { params(spec: T.any(::Bundler::StubSpecification, ::Gem::Specification)).void }
2233
2308
  def initialize(spec); end
2234
2309
 
2235
- # source://tapioca//lib/tapioca/gemfile.rb#146
2310
+ # source://tapioca//lib/tapioca/gemfile.rb#155
2236
2311
  sig { params(other: ::BasicObject).returns(T::Boolean) }
2237
2312
  def ==(other); end
2238
2313
 
2239
- # source://tapioca//lib/tapioca/gemfile.rb#171
2314
+ # source://tapioca//lib/tapioca/gemfile.rb#180
2240
2315
  sig { params(path: ::String).returns(T::Boolean) }
2241
2316
  def contains_path?(path); end
2242
2317
 
2243
- # source://tapioca//lib/tapioca/gemfile.rb#161
2318
+ # source://tapioca//lib/tapioca/gemfile.rb#170
2244
2319
  sig { returns(T::Array[::Gem::Dependency]) }
2245
2320
  def dependencies; end
2246
2321
 
2247
- # source://tapioca//lib/tapioca/gemfile.rb#201
2322
+ # source://tapioca//lib/tapioca/gemfile.rb#210
2248
2323
  sig { returns(T::Boolean) }
2249
2324
  def export_rbi_files?; end
2250
2325
 
2251
- # source://tapioca//lib/tapioca/gemfile.rb#196
2326
+ # source://tapioca//lib/tapioca/gemfile.rb#205
2252
2327
  sig { returns(T::Array[::String]) }
2253
2328
  def exported_rbi_files; end
2254
2329
 
2255
- # source://tapioca//lib/tapioca/gemfile.rb#206
2330
+ # source://tapioca//lib/tapioca/gemfile.rb#215
2256
2331
  sig { returns(::RBI::MergeTree) }
2257
2332
  def exported_rbi_tree; end
2258
2333
 
2259
- # source://tapioca//lib/tapioca/gemfile.rb#133
2334
+ # source://tapioca//lib/tapioca/gemfile.rb#142
2260
2335
  sig { returns(T::Array[::Pathname]) }
2261
2336
  def files; end
2262
2337
 
2263
- # source://tapioca//lib/tapioca/gemfile.rb#130
2338
+ # source://tapioca//lib/tapioca/gemfile.rb#139
2264
2339
  sig { returns(::String) }
2265
2340
  def full_gem_path; end
2266
2341
 
2267
- # source://tapioca//lib/tapioca/gemfile.rb#151
2342
+ # source://tapioca//lib/tapioca/gemfile.rb#160
2268
2343
  sig { params(gemfile_dir: ::String).returns(T::Boolean) }
2269
2344
  def ignore?(gemfile_dir); end
2270
2345
 
2271
- # source://tapioca//lib/tapioca/gemfile.rb#156
2346
+ # source://tapioca//lib/tapioca/gemfile.rb#165
2272
2347
  sig { returns(::String) }
2273
2348
  def name; end
2274
2349
 
2275
- # source://tapioca//lib/tapioca/gemfile.rb#180
2350
+ # source://tapioca//lib/tapioca/gemfile.rb#189
2276
2351
  sig { void }
2277
2352
  def parse_yard_docs; end
2278
2353
 
2279
- # source://tapioca//lib/tapioca/gemfile.rb#166
2354
+ # source://tapioca//lib/tapioca/gemfile.rb#175
2280
2355
  sig { returns(::String) }
2281
2356
  def rbi_file_name; end
2282
2357
 
2283
- # source://tapioca//lib/tapioca/gemfile.rb#218
2358
+ # source://tapioca//lib/tapioca/gemfile.rb#227
2284
2359
  sig { params(file: ::Pathname).returns(::Pathname) }
2285
2360
  def relative_path_for(file); end
2286
2361
 
2287
2362
  # @return [String]
2288
2363
  #
2289
- # source://tapioca//lib/tapioca/gemfile.rb#130
2364
+ # source://tapioca//lib/tapioca/gemfile.rb#139
2290
2365
  def version; end
2291
2366
 
2292
2367
  private
2293
2368
 
2294
- # source://tapioca//lib/tapioca/gemfile.rb#229
2369
+ # source://tapioca//lib/tapioca/gemfile.rb#238
2295
2370
  sig { returns(T::Array[::Pathname]) }
2296
2371
  def collect_files; end
2297
2372
 
2298
- # source://tapioca//lib/tapioca/gemfile.rb#244
2373
+ # source://tapioca//lib/tapioca/gemfile.rb#253
2299
2374
  sig { returns(T.nilable(T::Boolean)) }
2300
2375
  def default_gem?; end
2301
2376
 
2302
- # source://tapioca//lib/tapioca/gemfile.rb#303
2377
+ # source://tapioca//lib/tapioca/gemfile.rb#312
2303
2378
  sig { returns(T::Boolean) }
2304
2379
  def gem_ignored?; end
2305
2380
 
2306
- # source://tapioca//lib/tapioca/gemfile.rb#282
2381
+ # source://tapioca//lib/tapioca/gemfile.rb#291
2307
2382
  sig { params(path: ::String).returns(T::Boolean) }
2308
2383
  def has_parent_gemspec?(path); end
2309
2384
 
2310
- # source://tapioca//lib/tapioca/gemfile.rb#249
2385
+ # source://tapioca//lib/tapioca/gemfile.rb#258
2311
2386
  sig { returns(::Regexp) }
2312
2387
  def require_paths_prefix_matcher; end
2313
2388
 
2314
- # source://tapioca//lib/tapioca/gemfile.rb#261
2389
+ # source://tapioca//lib/tapioca/gemfile.rb#270
2315
2390
  sig { params(file: ::String).returns(::Pathname) }
2316
2391
  def resolve_to_ruby_lib_dir(file); end
2317
2392
 
2318
- # source://tapioca//lib/tapioca/gemfile.rb#275
2393
+ # source://tapioca//lib/tapioca/gemfile.rb#284
2319
2394
  sig { returns(::String) }
2320
2395
  def version_string; end
2321
2396
 
2322
2397
  class << self
2323
- # source://tapioca//lib/tapioca/gemfile.rb#104
2398
+ # source://tapioca//lib/tapioca/gemfile.rb#113
2324
2399
  sig { returns(T::Hash[::String, ::Tapioca::Gemfile::GemSpec]) }
2325
2400
  def spec_lookup_by_file_path; end
2326
2401
  end
2327
2402
  end
2328
2403
 
2329
- # source://tapioca//lib/tapioca/gemfile.rb#116
2404
+ # source://tapioca//lib/tapioca/gemfile.rb#125
2330
2405
  Tapioca::Gemfile::GemSpec::IGNORED_GEMS = T.let(T.unsafe(nil), Array)
2331
2406
 
2332
2407
  # source://tapioca//lib/tapioca/gemfile.rb#10
2333
2408
  Tapioca::Gemfile::Spec = T.type_alias { T.any(::Bundler::StubSpecification, ::Gem::Specification) }
2334
2409
 
2410
+ # source://tapioca//lib/tapioca.rb#33
2411
+ Tapioca::LIB_ROOT_DIR = T.let(T.unsafe(nil), String)
2412
+
2335
2413
  # source://tapioca//lib/tapioca/loaders/loader.rb#5
2336
2414
  module Tapioca::Loaders; end
2337
2415
 
2338
2416
  # source://tapioca//lib/tapioca/loaders/dsl.rb#6
2339
2417
  class Tapioca::Loaders::Dsl < ::Tapioca::Loaders::Loader
2340
- # source://tapioca//lib/tapioca/loaders/dsl.rb#38
2418
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#74
2341
2419
  sig do
2342
2420
  params(
2343
2421
  tapioca_path: ::String,
@@ -2348,26 +2426,40 @@ class Tapioca::Loaders::Dsl < ::Tapioca::Loaders::Loader
2348
2426
  end
2349
2427
  def initialize(tapioca_path:, eager_load: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end
2350
2428
 
2351
- # source://tapioca//lib/tapioca/loaders/dsl.rb#27
2429
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#36
2352
2430
  sig { override.void }
2353
2431
  def load; end
2354
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
+
2355
2441
  protected
2356
2442
 
2357
- # source://tapioca//lib/tapioca/loaders/dsl.rb#81
2443
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#120
2358
2444
  sig { void }
2359
2445
  def load_application; end
2360
2446
 
2361
- # source://tapioca//lib/tapioca/loaders/dsl.rb#63
2447
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#100
2362
2448
  sig { void }
2363
2449
  def load_dsl_compilers; end
2364
2450
 
2365
- # source://tapioca//lib/tapioca/loaders/dsl.rb#48
2451
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#85
2366
2452
  sig { void }
2367
2453
  def load_dsl_extensions; end
2368
2454
 
2455
+ private
2456
+
2457
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#136
2458
+ sig { void }
2459
+ def load_custom_dsl_compilers; end
2460
+
2369
2461
  class << self
2370
- # source://tapioca//lib/tapioca/loaders/dsl.rb#15
2462
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#20
2371
2463
  sig do
2372
2464
  params(
2373
2465
  tapioca_path: ::String,
@@ -2453,16 +2545,16 @@ class Tapioca::Loaders::Loader
2453
2545
  # @param engine [T.class_of(Rails::Engine)]
2454
2546
  # @return [Array<String>]
2455
2547
  #
2456
- # source://sorbet-runtime/0.5.11368/lib/types/private/methods/_methods.rb#257
2457
- def eager_load_paths(*args, **_arg1, &blk); end
2548
+ # source://tapioca//lib/tapioca/loaders/loader.rb#234
2549
+ def eager_load_paths(engine); end
2458
2550
 
2459
- # source://tapioca//lib/tapioca/loaders/loader.rb#198
2551
+ # source://tapioca//lib/tapioca/loaders/loader.rb#199
2460
2552
  sig { void }
2461
2553
  def eager_load_rails_app; end
2462
2554
 
2463
2555
  # @return [Array<T.class_of(Rails::Engine)>]
2464
2556
  #
2465
- # source://tapioca//lib/tapioca/loaders/loader.rb#169
2557
+ # source://tapioca//lib/tapioca/loaders/loader.rb#178
2466
2558
  def engines; end
2467
2559
 
2468
2560
  # source://tapioca//lib/tapioca/loaders/loader.rb#29
@@ -2476,11 +2568,11 @@ class Tapioca::Loaders::Loader
2476
2568
  end
2477
2569
  def load_bundle(gemfile, initialize_file, require_file, halt_upon_load_error); end
2478
2570
 
2479
- # source://tapioca//lib/tapioca/loaders/loader.rb#127
2571
+ # source://tapioca//lib/tapioca/loaders/loader.rb#136
2480
2572
  sig { void }
2481
2573
  def load_engines_in_classic_mode; end
2482
2574
 
2483
- # source://tapioca//lib/tapioca/loaders/loader.rb#105
2575
+ # source://tapioca//lib/tapioca/loaders/loader.rb#114
2484
2576
  sig { void }
2485
2577
  def load_engines_in_zeitwerk_mode; end
2486
2578
 
@@ -2495,30 +2587,26 @@ class Tapioca::Loaders::Loader
2495
2587
  end
2496
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
2497
2589
 
2498
- # source://tapioca//lib/tapioca/loaders/loader.rb#80
2590
+ # source://tapioca//lib/tapioca/loaders/loader.rb#89
2499
2591
  sig { void }
2500
2592
  def load_rails_engines; end
2501
2593
 
2502
- # source://tapioca//lib/tapioca/loaders/loader.rb#219
2594
+ # source://tapioca//lib/tapioca/loaders/loader.rb#220
2503
2595
  sig { params(file: T.nilable(::String)).void }
2504
2596
  def require_helper(file); end
2505
2597
 
2506
- # source://tapioca//lib/tapioca/loaders/loader.rb#94
2598
+ # source://tapioca//lib/tapioca/loaders/loader.rb#103
2507
2599
  def run_initializers; end
2508
2600
 
2509
- # source://tapioca//lib/tapioca/loaders/loader.rb#183
2601
+ # source://tapioca//lib/tapioca/loaders/loader.rb#192
2510
2602
  sig { params(path: ::String).void }
2511
2603
  def safe_require(path); end
2512
2604
 
2513
- # source://tapioca//lib/tapioca/loaders/loader.rb#190
2514
- sig { void }
2515
- def silence_deprecations; end
2516
-
2517
- # source://tapioca//lib/tapioca/loaders/loader.rb#152
2605
+ # source://tapioca//lib/tapioca/loaders/loader.rb#161
2518
2606
  sig { params(blk: T.proc.void).void }
2519
2607
  def with_rails_application(&blk); end
2520
2608
 
2521
- # source://tapioca//lib/tapioca/loaders/loader.rb#145
2609
+ # source://tapioca//lib/tapioca/loaders/loader.rb#154
2522
2610
  sig { returns(T::Boolean) }
2523
2611
  def zeitwerk_mode?; end
2524
2612
  end
@@ -2565,19 +2653,19 @@ module Tapioca::RBIFilesHelper
2565
2653
 
2566
2654
  private
2567
2655
 
2568
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#209
2656
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#223
2569
2657
  sig { params(nodes: T::Array[::RBI::Node]).returns(T::Array[::RBI::Scope]) }
2570
2658
  def extract_empty_scopes(nodes); end
2571
2659
 
2572
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#214
2660
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#228
2573
2661
  sig { params(nodes: T::Array[::RBI::Node]).returns(T::Array[T.any(::RBI::Attr, ::RBI::Method)]) }
2574
2662
  def extract_methods_and_attrs(nodes); end
2575
2663
 
2576
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#224
2664
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#238
2577
2665
  sig { params(nodes: T::Array[::RBI::Node]).returns(T::Array[T.any(::RBI::Mixin, ::RBI::RequiresAncestor)]) }
2578
2666
  def extract_mixins(nodes); end
2579
2667
 
2580
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#234
2668
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#248
2581
2669
  sig do
2582
2670
  params(
2583
2671
  nodes: T::Array[T.any(::RBI::Attr, ::RBI::Method)]
@@ -2585,7 +2673,7 @@ module Tapioca::RBIFilesHelper
2585
2673
  end
2586
2674
  def extract_nodes_with_sigs(nodes); end
2587
2675
 
2588
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#202
2676
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#216
2589
2677
  sig do
2590
2678
  params(
2591
2679
  nodes: T::Array[::RBI::Node],
@@ -2595,7 +2683,7 @@ module Tapioca::RBIFilesHelper
2595
2683
  end
2596
2684
  def extract_shims_and_todos(nodes, shim_rbi_dir:, todo_rbi_file:); end
2597
2685
 
2598
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#266
2686
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#280
2599
2687
  sig { params(path: ::String).returns(::String) }
2600
2688
  def gem_name_from_rbi_path(path); end
2601
2689
 
@@ -2607,14 +2695,14 @@ module Tapioca::RBIFilesHelper
2607
2695
  sig { params(nodes: T::Array[::RBI::Node], shim_rbi_dir: ::String, todo_rbi_file: ::String).returns(T::Boolean) }
2608
2696
  def shims_or_todos_have_duplicates?(nodes, shim_rbi_dir:, todo_rbi_file:); end
2609
2697
 
2610
- # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#239
2698
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#253
2611
2699
  sig { params(errors: T::Array[::Spoom::Sorbet::Errors::Error], gem_dir: ::String).void }
2612
2700
  def update_gem_rbis_strictnesses(errors, gem_dir); end
2613
2701
  end
2614
2702
 
2615
2703
  # source://tapioca//lib/tapioca/rbi_formatter.rb#5
2616
2704
  class Tapioca::RBIFormatter < ::RBI::Formatter
2617
- # source://tapioca//lib/tapioca/rbi_formatter.rb#22
2705
+ # source://tapioca//lib/tapioca/rbi_formatter.rb#24
2618
2706
  sig { params(file: ::RBI::File).void }
2619
2707
  def write_empty_body_comment!(file); end
2620
2708
 
@@ -2633,6 +2721,10 @@ module Tapioca::RBIHelper
2633
2721
  sig { params(type: ::String).returns(::String) }
2634
2722
  def as_nilable_type(type); end
2635
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
+
2636
2728
  # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#72
2637
2729
  sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
2638
2730
  def create_block_param(name, type:); end
@@ -2669,7 +2761,7 @@ module Tapioca::RBIHelper
2669
2761
  sig { params(sig_string: ::String).returns(::String) }
2670
2762
  def sanitize_signature_types(sig_string); end
2671
2763
 
2672
- # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#100
2764
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#109
2673
2765
  sig { params(name: ::String).returns(T::Boolean) }
2674
2766
  def valid_method_name?(name); end
2675
2767
 
@@ -2883,7 +2975,7 @@ class Tapioca::Runtime::GenericTypeRegistry::GenericType < ::T::Types::Simple
2883
2975
  def initialize(raw_type, underlying_type); end
2884
2976
 
2885
2977
  # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#45
2886
- sig { params(obj: T.untyped).returns(T::Boolean) }
2978
+ sig { override.params(obj: T.untyped).returns(T::Boolean) }
2887
2979
  def valid?(obj); end
2888
2980
  end
2889
2981
 
@@ -2892,7 +2984,7 @@ module Tapioca::Runtime::Reflection
2892
2984
  extend ::Tapioca::Runtime::AttachedClassOf
2893
2985
  extend ::Tapioca::Runtime::Reflection
2894
2986
 
2895
- # source://tapioca//lib/tapioca/runtime/reflection.rb#196
2987
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#207
2896
2988
  sig { params(constant: ::Module).returns(T.untyped) }
2897
2989
  def abstract_type_of(constant); end
2898
2990
 
@@ -2936,7 +3028,7 @@ module Tapioca::Runtime::Reflection
2936
3028
  # class D < C; end
2937
3029
  # descendants_of(C) # => [B, A, D]
2938
3030
  #
2939
- # source://tapioca//lib/tapioca/runtime/reflection.rb#167
3031
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#172
2940
3032
  sig do
2941
3033
  type_parameters(:U)
2942
3034
  .params(
@@ -2945,11 +3037,11 @@ module Tapioca::Runtime::Reflection
2945
3037
  end
2946
3038
  def descendants_of(klass); end
2947
3039
 
2948
- # source://tapioca//lib/tapioca/runtime/reflection.rb#189
3040
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#200
2949
3041
  sig { params(constant: ::Module).returns(T::Set[::String]) }
2950
3042
  def file_candidates_for(constant); end
2951
3043
 
2952
- # source://tapioca//lib/tapioca/runtime/reflection.rb#202
3044
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#213
2953
3045
  sig { params(constant: ::Module).returns(T::Boolean) }
2954
3046
  def final_module?(constant); end
2955
3047
 
@@ -2957,7 +3049,7 @@ module Tapioca::Runtime::Reflection
2957
3049
  sig { params(constant: ::Module).returns(T::Array[::Module]) }
2958
3050
  def inherited_ancestors_of(constant); end
2959
3051
 
2960
- # source://tapioca//lib/tapioca/runtime/reflection.rb#145
3052
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#150
2961
3053
  sig { params(constant: ::Module, method: ::Symbol).returns(::Method) }
2962
3054
  def method_of(constant, method); end
2963
3055
 
@@ -2965,7 +3057,7 @@ module Tapioca::Runtime::Reflection
2965
3057
  sig { params(constant: ::Module).returns(T.nilable(::String)) }
2966
3058
  def name_of(constant); end
2967
3059
 
2968
- # source://tapioca//lib/tapioca/runtime/reflection.rb#140
3060
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#145
2969
3061
  sig { params(type: ::T::Types::Base).returns(::String) }
2970
3062
  def name_of_type(type); end
2971
3063
 
@@ -2990,21 +3082,26 @@ module Tapioca::Runtime::Reflection
2990
3082
  def qualified_name_of(constant); end
2991
3083
 
2992
3084
  # Examines the call stack to identify the closest location where a "require" is performed
2993
- # 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
2994
3087
  # labeled "<main>", which is the original call site.
2995
3088
  #
2996
- # source://tapioca//lib/tapioca/runtime/reflection.rb#179
3089
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#185
2997
3090
  sig { params(locations: T.nilable(T::Array[::Thread::Backtrace::Location])).returns(::String) }
2998
3091
  def resolve_loc(locations); end
2999
3092
 
3000
- # source://tapioca//lib/tapioca/runtime/reflection.rb#207
3093
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#218
3001
3094
  sig { params(constant: ::Module).returns(T::Boolean) }
3002
3095
  def sealed_module?(constant); end
3003
3096
 
3004
- # source://tapioca//lib/tapioca/runtime/reflection.rb#133
3097
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#138
3005
3098
  sig { params(method: T.any(::Method, ::UnboundMethod)).returns(T.untyped) }
3006
3099
  def signature_of(method); end
3007
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
+
3008
3105
  # source://tapioca//lib/tapioca/runtime/reflection.rb#72
3009
3106
  sig { params(constant: ::Module).returns(T::Class[T.anything]) }
3010
3107
  def singleton_class_of(constant); end
@@ -3015,23 +3112,23 @@ module Tapioca::Runtime::Reflection
3015
3112
 
3016
3113
  private
3017
3114
 
3018
- # source://tapioca//lib/tapioca/runtime/reflection.rb#244
3115
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#255
3019
3116
  sig { params(parent: ::Module, name: ::String).returns(T.nilable(::Module)) }
3020
3117
  def child_module_for_parent_with_name(parent, name); end
3021
3118
 
3022
- # source://tapioca//lib/tapioca/runtime/reflection.rb#260
3119
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#271
3023
3120
  sig { params(name: ::String).returns(T::Boolean) }
3024
3121
  def has_aliased_namespace?(name); end
3025
3122
 
3026
- # source://tapioca//lib/tapioca/runtime/reflection.rb#255
3123
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#266
3027
3124
  sig { params(method: ::UnboundMethod).returns(T::Boolean) }
3028
3125
  def method_defined_by_forwardable_module?(method); end
3029
3126
 
3030
- # source://tapioca//lib/tapioca/runtime/reflection.rb#230
3127
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#241
3031
3128
  sig { params(constant: ::Module).returns(T::Array[::UnboundMethod]) }
3032
3129
  def methods_for(constant); end
3033
3130
 
3034
- # source://tapioca//lib/tapioca/runtime/reflection.rb#214
3131
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#225
3035
3132
  sig { params(constant: ::Module).returns(T::Array[::UnboundMethod]) }
3036
3133
  def relevant_methods_for(constant); end
3037
3134
  end
@@ -3215,9 +3312,9 @@ end
3215
3312
 
3216
3313
  class Tapioca::Runtime::Trackers::Mixin::Type < ::T::Enum
3217
3314
  enums do
3218
- Prepend = new
3219
- Include = new
3220
3315
  Extend = new
3316
+ Include = new
3317
+ Prepend = new
3221
3318
  end
3222
3319
  end
3223
3320
 
@@ -3263,10 +3360,10 @@ module Tapioca::Runtime::Trackers::Tracker
3263
3360
  end
3264
3361
  end
3265
3362
 
3266
- # source://tapioca//lib/tapioca.rb#33
3363
+ # source://tapioca//lib/tapioca.rb#35
3267
3364
  Tapioca::SORBET_CONFIG_FILE = T.let(T.unsafe(nil), String)
3268
3365
 
3269
- # source://tapioca//lib/tapioca.rb#32
3366
+ # source://tapioca//lib/tapioca.rb#34
3270
3367
  Tapioca::SORBET_DIR = T.let(T.unsafe(nil), String)
3271
3368
 
3272
3369
  # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#5
@@ -3302,6 +3399,58 @@ Tapioca::SorbetHelper::SORBET_PAYLOAD_URL = T.let(T.unsafe(nil), String)
3302
3399
  # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#22
3303
3400
  Tapioca::SorbetHelper::SPOOM_CONTEXT = T.let(T.unsafe(nil), Spoom::Context)
3304
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
+
3305
3454
  # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#5
3306
3455
  module Tapioca::Static; end
3307
3456
 
@@ -3361,10 +3510,10 @@ module Tapioca::Static::SymbolLoader
3361
3510
 
3362
3511
  # @return [Array<T.class_of(Rails::Engine)>]
3363
3512
  #
3364
- # source://sorbet-runtime/0.5.11368/lib/types/private/methods/_methods.rb#257
3365
- def engines(*args, **_arg1, &blk); end
3513
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#71
3514
+ def engines; end
3366
3515
 
3367
- # source://tapioca//lib/tapioca/static/symbol_loader.rb#82
3516
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#84
3368
3517
  sig { params(input: ::String, table_type: ::String).returns(::String) }
3369
3518
  def symbol_table_json_from(input, table_type: T.unsafe(nil)); end
3370
3519
  end
@@ -3398,10 +3547,10 @@ end
3398
3547
  # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#9
3399
3548
  Tapioca::Static::SymbolTableParser::SKIP_PARSE_KINDS = T.let(T.unsafe(nil), Array)
3400
3549
 
3401
- # source://tapioca//lib/tapioca.rb#35
3550
+ # source://tapioca//lib/tapioca.rb#37
3402
3551
  Tapioca::TAPIOCA_CONFIG_FILE = T.let(T.unsafe(nil), String)
3403
3552
 
3404
- # source://tapioca//lib/tapioca.rb#34
3553
+ # source://tapioca//lib/tapioca.rb#36
3405
3554
  Tapioca::TAPIOCA_DIR = T.let(T.unsafe(nil), String)
3406
3555
 
3407
3556
  # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#108
@@ -3469,59 +3618,11 @@ Tapioca::TypeVariableModule::DEFAULT_BOUNDS_PROC = T.let(T.unsafe(nil), Proc)
3469
3618
  # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#125
3470
3619
  class Tapioca::TypeVariableModule::Type < ::T::Enum
3471
3620
  enums do
3621
+ HasAttachedClass = new
3472
3622
  Member = new
3473
3623
  Template = new
3474
- HasAttachedClass = new
3475
3624
  end
3476
3625
  end
3477
3626
 
3478
3627
  # source://tapioca//lib/tapioca/version.rb#5
3479
3628
  Tapioca::VERSION = T.let(T.unsafe(nil), String)
3480
-
3481
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#6
3482
- module URI
3483
- include ::URI::RFC2396_REGEXP
3484
- end
3485
-
3486
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#7
3487
- class URI::Source < ::URI::File
3488
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#58
3489
- sig { params(v: T.nilable(::String)).returns(T::Boolean) }
3490
- def check_host(v); end
3491
-
3492
- # source://uri/0.12.1/uri/generic.rb#243
3493
- def gem_name; end
3494
-
3495
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#25
3496
- sig { returns(T.nilable(::String)) }
3497
- def gem_version; end
3498
-
3499
- # source://uri/0.12.1/uri/generic.rb#283
3500
- def line_number; end
3501
-
3502
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#51
3503
- sig { params(v: T.nilable(::String)).void }
3504
- def set_path(v); end
3505
-
3506
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#70
3507
- sig { returns(::String) }
3508
- def to_s; end
3509
-
3510
- class << self
3511
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#38
3512
- sig do
3513
- params(
3514
- gem_name: ::String,
3515
- gem_version: T.nilable(::String),
3516
- path: ::String,
3517
- line_number: T.nilable(::String)
3518
- ).returns(::URI::Source)
3519
- end
3520
- def build(gem_name:, gem_version:, path:, line_number:); end
3521
- end
3522
- end
3523
-
3524
- # source://tapioca//lib/tapioca/helpers/source_uri.rb#10
3525
- URI::Source::COMPONENT = T.let(T.unsafe(nil), Array)
3526
-
3527
- class URI::WSS < ::URI::WS; end