zonesync 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -0
  3. data/lib/zonesync/cli.rb +9 -0
  4. data/lib/zonesync/cloudflare.rb +64 -39
  5. data/lib/zonesync/diff.rb +10 -1
  6. data/lib/zonesync/errors.rb +35 -0
  7. data/lib/zonesync/generate.rb +14 -0
  8. data/lib/zonesync/http.rb +24 -8
  9. data/lib/zonesync/logger.rb +20 -15
  10. data/lib/zonesync/manifest.rb +21 -5
  11. data/lib/zonesync/parser.rb +337 -0
  12. data/lib/zonesync/provider.rb +80 -26
  13. data/lib/zonesync/record.rb +18 -23
  14. data/lib/zonesync/route53.rb +48 -27
  15. data/lib/zonesync/sync.rb +40 -0
  16. data/lib/zonesync/validator.rb +19 -15
  17. data/lib/zonesync/version.rb +1 -1
  18. data/lib/zonesync/zonefile.rb +22 -311
  19. data/lib/zonesync.rb +27 -60
  20. data/sorbet/config +4 -0
  21. data/sorbet/rbi/annotations/.gitattributes +1 -0
  22. data/sorbet/rbi/annotations/activesupport.rbi +457 -0
  23. data/sorbet/rbi/annotations/minitest.rbi +119 -0
  24. data/sorbet/rbi/annotations/webmock.rbi +9 -0
  25. data/sorbet/rbi/gems/.gitattributes +1 -0
  26. data/sorbet/rbi/gems/activesupport@8.0.1.rbi +18474 -0
  27. data/sorbet/rbi/gems/addressable@2.8.7.rbi +1994 -0
  28. data/sorbet/rbi/gems/base64@0.2.0.rbi +507 -0
  29. data/sorbet/rbi/gems/benchmark@0.4.0.rbi +618 -0
  30. data/sorbet/rbi/gems/bigdecimal@3.1.9.rbi +9 -0
  31. data/sorbet/rbi/gems/concurrent-ruby@1.3.4.rbi +11645 -0
  32. data/sorbet/rbi/gems/connection_pool@2.4.1.rbi +9 -0
  33. data/sorbet/rbi/gems/crack@1.0.0.rbi +145 -0
  34. data/sorbet/rbi/gems/date@3.4.1.rbi +75 -0
  35. data/sorbet/rbi/gems/diff-lcs@1.5.1.rbi +1131 -0
  36. data/sorbet/rbi/gems/drb@2.2.1.rbi +1347 -0
  37. data/sorbet/rbi/gems/erubi@1.13.1.rbi +155 -0
  38. data/sorbet/rbi/gems/hashdiff@1.1.2.rbi +353 -0
  39. data/sorbet/rbi/gems/i18n@1.14.6.rbi +2275 -0
  40. data/sorbet/rbi/gems/io-console@0.8.0.rbi +9 -0
  41. data/sorbet/rbi/gems/logger@1.6.4.rbi +940 -0
  42. data/sorbet/rbi/gems/minitest@5.25.4.rbi +1547 -0
  43. data/sorbet/rbi/gems/netrc@0.11.0.rbi +159 -0
  44. data/sorbet/rbi/gems/parallel@1.26.3.rbi +291 -0
  45. data/sorbet/rbi/gems/polyglot@0.3.5.rbi +42 -0
  46. data/sorbet/rbi/gems/prism@1.3.0.rbi +40040 -0
  47. data/sorbet/rbi/gems/psych@5.2.2.rbi +1785 -0
  48. data/sorbet/rbi/gems/public_suffix@6.0.1.rbi +936 -0
  49. data/sorbet/rbi/gems/rake@13.2.1.rbi +3028 -0
  50. data/sorbet/rbi/gems/rbi@0.2.2.rbi +4527 -0
  51. data/sorbet/rbi/gems/rdoc@6.10.0.rbi +12766 -0
  52. data/sorbet/rbi/gems/reline@0.6.0.rbi +9 -0
  53. data/sorbet/rbi/gems/rexml@3.4.0.rbi +4974 -0
  54. data/sorbet/rbi/gems/rspec-core@3.13.2.rbi +10896 -0
  55. data/sorbet/rbi/gems/rspec-expectations@3.13.3.rbi +8183 -0
  56. data/sorbet/rbi/gems/rspec-mocks@3.13.2.rbi +5341 -0
  57. data/sorbet/rbi/gems/rspec-support@3.13.2.rbi +1630 -0
  58. data/sorbet/rbi/gems/rspec@3.13.0.rbi +83 -0
  59. data/sorbet/rbi/gems/securerandom@0.4.1.rbi +75 -0
  60. data/sorbet/rbi/gems/spoom@1.5.0.rbi +4932 -0
  61. data/sorbet/rbi/gems/stringio@3.1.2.rbi +9 -0
  62. data/sorbet/rbi/gems/tapioca@0.16.6.rbi +3611 -0
  63. data/sorbet/rbi/gems/thor@1.3.2.rbi +4378 -0
  64. data/sorbet/rbi/gems/treetop@1.6.12.rbi +1895 -0
  65. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +5918 -0
  66. data/sorbet/rbi/gems/uri@1.0.2.rbi +2340 -0
  67. data/sorbet/rbi/gems/webmock@3.24.0.rbi +1780 -0
  68. data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +435 -0
  69. data/sorbet/rbi/gems/yard@0.9.37.rbi +18379 -0
  70. data/sorbet/rbi/todo.rbi +7 -0
  71. data/sorbet/tapioca/config.yml +13 -0
  72. data/sorbet/tapioca/require.rb +4 -0
  73. data/zonesync.gemspec +3 -0
  74. metadata +100 -2
@@ -0,0 +1,3611 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `tapioca` gem.
5
+ # Please instead update this file by running `bin/tapioca gem tapioca`.
6
+
7
+
8
+ class Bundler::Dependency < ::Gem::Dependency
9
+ include ::Tapioca::BundlerExt::AutoRequireHook
10
+ end
11
+
12
+ # source://tapioca//lib/tapioca/helpers/git_attributes.rb#4
13
+ class GitAttributes
14
+ class << self
15
+ # source://tapioca//lib/tapioca/helpers/git_attributes.rb#9
16
+ sig { params(path: ::Pathname).void }
17
+ def create_generated_attribute_file(path); end
18
+
19
+ # source://tapioca//lib/tapioca/helpers/git_attributes.rb#16
20
+ sig { params(path: ::Pathname).void }
21
+ def create_vendored_attribute_file(path); end
22
+
23
+ private
24
+
25
+ # source://tapioca//lib/tapioca/helpers/git_attributes.rb#25
26
+ sig { params(path: ::Pathname, content: ::String).void }
27
+ def create_gitattributes_file(path, content); end
28
+ end
29
+ end
30
+
31
+ # We need to do the alias-method-chain dance since Bootsnap does the same,
32
+ # and prepended modules and alias-method-chain don't play well together.
33
+ #
34
+ # So, why does Bootsnap do alias-method-chain and not prepend? Glad you asked!
35
+ # That's because RubyGems does alias-method-chain for Kernel#require and such,
36
+ # so, if Bootsnap were to do prepend, it might end up breaking RubyGems.
37
+ #
38
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#68
39
+ class Module
40
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#101
41
+ def append_features(constant); end
42
+
43
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#71
44
+ def autoload(const_name, path); end
45
+
46
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#111
47
+ def extend_object(obj); end
48
+
49
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#91
50
+ def prepend_features(constant); end
51
+ end
52
+
53
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#4
54
+ module RBI; end
55
+
56
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#5
57
+ class RBI::Tree < ::RBI::NodeWithComments
58
+ # source://rbi/0.2.2/lib/rbi/model.rb#121
59
+ sig do
60
+ params(
61
+ loc: T.nilable(::RBI::Loc),
62
+ comments: T::Array[::RBI::Comment],
63
+ block: T.nilable(T.proc.params(node: ::RBI::Tree).void)
64
+ ).void
65
+ end
66
+ def initialize(loc: T.unsafe(nil), comments: T.unsafe(nil), &block); end
67
+
68
+ # source://rbi/0.2.2/lib/rbi/model.rb#128
69
+ sig { params(node: ::RBI::Node).void }
70
+ def <<(node); end
71
+
72
+ # source://rbi/0.2.2/lib/rbi/rewriters/add_sig_templates.rb#66
73
+ sig { params(with_todo_comment: T::Boolean).void }
74
+ def add_sig_templates!(with_todo_comment: T.unsafe(nil)); end
75
+
76
+ # source://rbi/0.2.2/lib/rbi/rewriters/annotate.rb#49
77
+ sig { params(annotation: ::String, annotate_scopes: T::Boolean, annotate_properties: T::Boolean).void }
78
+ def annotate!(annotation, annotate_scopes: T.unsafe(nil), annotate_properties: T.unsafe(nil)); end
79
+
80
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#38
81
+ sig do
82
+ params(
83
+ name: ::String,
84
+ superclass_name: T.nilable(::String),
85
+ block: T.nilable(T.proc.params(scope: ::RBI::Scope).void)
86
+ ).returns(::RBI::Scope)
87
+ end
88
+ def create_class(name, superclass_name: T.unsafe(nil), &block); end
89
+
90
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#45
91
+ sig { params(name: ::String, value: ::String).void }
92
+ def create_constant(name, value:); end
93
+
94
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#55
95
+ sig { params(name: ::String).void }
96
+ def create_extend(name); end
97
+
98
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#50
99
+ sig { params(name: ::String).void }
100
+ def create_include(name); end
101
+
102
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#90
103
+ sig do
104
+ params(
105
+ name: ::String,
106
+ parameters: T::Array[::RBI::TypedParam],
107
+ return_type: T.nilable(::String),
108
+ class_method: T::Boolean,
109
+ visibility: ::RBI::Visibility,
110
+ comments: T::Array[::RBI::Comment],
111
+ block: T.nilable(T.proc.params(node: ::RBI::Method).void)
112
+ ).void
113
+ end
114
+ def create_method(name, parameters: T.unsafe(nil), return_type: T.unsafe(nil), class_method: T.unsafe(nil), visibility: T.unsafe(nil), comments: T.unsafe(nil), &block); end
115
+
116
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#60
117
+ sig { params(name: ::String).void }
118
+ def create_mixes_in_class_methods(name); end
119
+
120
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#25
121
+ sig { params(name: ::String, block: T.nilable(T.proc.params(scope: ::RBI::Scope).void)).returns(::RBI::Scope) }
122
+ def create_module(name, &block); end
123
+
124
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#9
125
+ sig { params(constant: ::Module, block: T.nilable(T.proc.params(scope: ::RBI::Scope).void)).returns(::RBI::Scope) }
126
+ def create_path(constant, &block); end
127
+
128
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#74
129
+ sig do
130
+ params(
131
+ name: ::String,
132
+ type: ::String,
133
+ variance: ::Symbol,
134
+ fixed: T.nilable(::String),
135
+ upper: T.nilable(::String),
136
+ lower: T.nilable(::String)
137
+ ).void
138
+ end
139
+ def create_type_variable(name, type:, variance: T.unsafe(nil), fixed: T.unsafe(nil), upper: T.unsafe(nil), lower: T.unsafe(nil)); end
140
+
141
+ # source://rbi/0.2.2/lib/rbi/rewriters/deannotate.rb#41
142
+ sig { params(annotation: ::String).void }
143
+ def deannotate!(annotation); end
144
+
145
+ # source://rbi/0.2.2/lib/rbi/model.rb#134
146
+ sig { returns(T::Boolean) }
147
+ def empty?; end
148
+
149
+ # source://rbi/0.2.2/lib/rbi/rewriters/filter_versions.rb#118
150
+ sig { params(version: ::Gem::Version).void }
151
+ def filter_versions!(version); end
152
+
153
+ # source://rbi/0.2.2/lib/rbi/rewriters/flatten_singleton_methods.rb#60
154
+ sig { void }
155
+ def flatten_singleton_methods!; end
156
+
157
+ # source://rbi/0.2.2/lib/rbi/rewriters/flatten_visibilities.rb#60
158
+ sig { void }
159
+ def flatten_visibilities!; end
160
+
161
+ # source://rbi/0.2.2/lib/rbi/rewriters/group_nodes.rb#81
162
+ sig { void }
163
+ def group_nodes!; end
164
+
165
+ # source://rbi/0.2.2/lib/rbi/index.rb#68
166
+ sig { returns(::RBI::Index) }
167
+ def index; end
168
+
169
+ # source://rbi/0.2.2/lib/rbi/rewriters/merge_trees.rb#324
170
+ sig do
171
+ params(
172
+ other: ::RBI::Tree,
173
+ left_name: ::String,
174
+ right_name: ::String,
175
+ keep: ::RBI::Rewriters::Merge::Keep
176
+ ).returns(::RBI::MergeTree)
177
+ end
178
+ def merge(other, left_name: T.unsafe(nil), right_name: T.unsafe(nil), keep: T.unsafe(nil)); end
179
+
180
+ # source://rbi/0.2.2/lib/rbi/rewriters/nest_non_public_members.rb#46
181
+ sig { void }
182
+ def nest_non_public_members!; end
183
+
184
+ # source://rbi/0.2.2/lib/rbi/rewriters/nest_singleton_methods.rb#36
185
+ sig { void }
186
+ def nest_singleton_methods!; end
187
+
188
+ # source://rbi/0.2.2/lib/rbi/rewriters/nest_top_level_members.rb#63
189
+ sig { void }
190
+ def nest_top_level_members!; end
191
+
192
+ # source://rbi/0.2.2/lib/rbi/model.rb#112
193
+ sig { returns(T::Array[::RBI::Node]) }
194
+ def nodes; end
195
+
196
+ # source://rbi/0.2.2/lib/rbi/rewriters/attr_to_methods.rb#53
197
+ sig { void }
198
+ def replace_attributes_with_methods!; end
199
+
200
+ # source://rbi/0.2.2/lib/rbi/rewriters/sort_nodes.rb#119
201
+ sig { void }
202
+ def sort_nodes!; end
203
+
204
+ private
205
+
206
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#123
207
+ sig { params(node: ::RBI::Node).returns(::RBI::Node) }
208
+ def create_node(node); end
209
+
210
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#118
211
+ sig { returns(T::Hash[::String, ::RBI::Node]) }
212
+ def nodes_cache; end
213
+ end
214
+
215
+ # source://tapioca//lib/tapioca/rbi_ext/model.rb#133
216
+ class RBI::TypedParam < ::T::Struct
217
+ const :param, ::RBI::Param
218
+ const :type, ::String
219
+
220
+ class << self
221
+ # source://sorbet-runtime/0.5.11725/lib/types/struct.rb#13
222
+ def inherited(s); end
223
+ end
224
+ end
225
+
226
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#5
227
+ module T::Generic
228
+ include ::Kernel
229
+
230
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#13
231
+ def [](*types); end
232
+
233
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#47
234
+ def has_attached_class!(variance = T.unsafe(nil), &bounds_proc); end
235
+
236
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#21
237
+ def type_member(variance = T.unsafe(nil), &bounds_proc); end
238
+
239
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#34
240
+ def type_template(variance = T.unsafe(nil), &bounds_proc); end
241
+ end
242
+
243
+ # This module intercepts calls to generic type instantiations and type variable definitions.
244
+ # Tapioca stores the data from those calls in a `GenericTypeRegistry` which can then be used
245
+ # to look up the original call details when we are trying to do code generation.
246
+ #
247
+ # We are interested in the data of the `[]`, `type_member` and `type_template` calls which
248
+ # are all needed to generate good generic information at runtime.
249
+ #
250
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#12
251
+ module T::Generic::TypeStoragePatch
252
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#13
253
+ def [](*types); end
254
+
255
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#47
256
+ def has_attached_class!(variance = T.unsafe(nil), &bounds_proc); end
257
+
258
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#21
259
+ def type_member(variance = T.unsafe(nil), &bounds_proc); end
260
+
261
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#34
262
+ def type_template(variance = T.unsafe(nil), &bounds_proc); end
263
+ end
264
+
265
+ # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#28
266
+ module T::Private::Methods
267
+ class << self
268
+ # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#30
269
+ def finalize_proc(decl); end
270
+ end
271
+ end
272
+
273
+ class T::Private::Methods::Declaration < ::Struct
274
+ def bind; end
275
+ def bind=(_); end
276
+ def checked; end
277
+ def checked=(_); end
278
+ def finalized; end
279
+ def finalized=(_); end
280
+ def mod; end
281
+ def mod=(_); end
282
+ def mode; end
283
+ def mode=(_); end
284
+ def on_failure; end
285
+ def on_failure=(_); end
286
+ def override_allow_incompatible; end
287
+ def override_allow_incompatible=(_); end
288
+ def params; end
289
+ def params=(_); end
290
+ def raw; end
291
+ def raw=(_); end
292
+ def returns; end
293
+ def returns=(_); end
294
+ def type_parameters; end
295
+ def type_parameters=(_); end
296
+
297
+ class << self
298
+ def [](*_arg0); end
299
+ def inspect; end
300
+ def keyword_init?; end
301
+ def members; end
302
+ def new(*_arg0); end
303
+ end
304
+ end
305
+
306
+ class T::Private::Methods::DeclarationBlock < ::Struct
307
+ def blk; end
308
+ def blk=(_); end
309
+ def final; end
310
+ def final=(_); end
311
+ def loc; end
312
+ def loc=(_); end
313
+ def mod; end
314
+ def mod=(_); end
315
+ def raw; end
316
+ def raw=(_); end
317
+
318
+ class << self
319
+ def [](*_arg0); end
320
+ def inspect; end
321
+ def keyword_init?; end
322
+ def members; end
323
+ def new(*_arg0); end
324
+ end
325
+ end
326
+
327
+ # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#29
328
+ module T::Private::Methods::ProcBindPatch
329
+ # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#30
330
+ def finalize_proc(decl); end
331
+ end
332
+
333
+ class T::Types::Proc < ::T::Types::Base; end
334
+
335
+ # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#6
336
+ module T::Types::ProcBindPatch
337
+ # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#7
338
+ def initialize(arg_types, returns, bind = T.unsafe(nil)); end
339
+
340
+ # source://tapioca//lib/tapioca/sorbet_ext/proc_bind_patch.rb#15
341
+ def name; end
342
+ end
343
+
344
+ # source://tapioca//lib/tapioca/sorbet_ext/name_patch.rb#6
345
+ class T::Types::Simple < ::T::Types::Base
346
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#70
347
+ def name; end
348
+ end
349
+
350
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#65
351
+ module T::Types::Simple::GenericPatch
352
+ # This method intercepts calls to the `name` method for simple types, so that
353
+ # it can ask the name to the type if the type is generic, since, by this point,
354
+ # we've created a clone of that type with the `name` method returning the
355
+ # appropriate name for that specific concrete type.
356
+ #
357
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#70
358
+ def name; end
359
+ end
360
+
361
+ # source://tapioca//lib/tapioca/sorbet_ext/name_patch.rb#7
362
+ module T::Types::Simple::NamePatch
363
+ # source://tapioca//lib/tapioca/sorbet_ext/name_patch.rb#10
364
+ def name; end
365
+
366
+ # source://tapioca//lib/tapioca/sorbet_ext/name_patch.rb#16
367
+ def qualified_name_of(constant); end
368
+ end
369
+
370
+ # source://tapioca//lib/tapioca/sorbet_ext/name_patch.rb#8
371
+ T::Types::Simple::NamePatch::NAME_METHOD = T.let(T.unsafe(nil), UnboundMethod)
372
+
373
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#87
374
+ module T::Utils::Private
375
+ class << self
376
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#89
377
+ def coerce_and_check_module_types(val, check_val, check_module_type); end
378
+ end
379
+ end
380
+
381
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#88
382
+ module T::Utils::Private::PrivateCoercePatch
383
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#89
384
+ def coerce_and_check_module_types(val, check_val, check_module_type); end
385
+ end
386
+
387
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#4
388
+ module Tapioca
389
+ class << self
390
+ # source://tapioca//lib/tapioca.rb#20
391
+ sig do
392
+ type_parameters(:Result)
393
+ .params(
394
+ blk: T.proc.returns(T.type_parameter(:Result))
395
+ ).returns(T.type_parameter(:Result))
396
+ end
397
+ def silence_warnings(&blk); end
398
+ end
399
+ end
400
+
401
+ # source://tapioca//lib/tapioca.rb#39
402
+ Tapioca::BINARY_FILE = T.let(T.unsafe(nil), String)
403
+
404
+ # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#5
405
+ module Tapioca::BundlerExt; end
406
+
407
+ # This is a module that gets prepended to `Bundler::Dependency` and
408
+ # makes sure even gems marked as `require: false` are required during
409
+ # `Bundler.require`.
410
+ #
411
+ # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#9
412
+ module Tapioca::BundlerExt::AutoRequireHook
413
+ requires_ancestor { Bundler::Dependency }
414
+
415
+ # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#46
416
+ sig { returns(T.untyped) }
417
+ def autorequire; end
418
+
419
+ class << self
420
+ # @return [Boolean]
421
+ #
422
+ # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#26
423
+ def enabled?; end
424
+
425
+ # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#22
426
+ sig { params(name: T.untyped).returns(T::Boolean) }
427
+ def excluded?(name); end
428
+
429
+ # source://tapioca//lib/tapioca/bundler_ext/auto_require_hook.rb#36
430
+ sig do
431
+ type_parameters(:Result)
432
+ .params(
433
+ exclude: T::Array[::String],
434
+ blk: T.proc.returns(T.type_parameter(:Result))
435
+ ).returns(T.type_parameter(:Result))
436
+ end
437
+ def override_require_false(exclude:, &blk); end
438
+ end
439
+ end
440
+
441
+ # source://tapioca//lib/tapioca.rb#62
442
+ Tapioca::CENTRAL_REPO_ANNOTATIONS_DIR = T.let(T.unsafe(nil), String)
443
+
444
+ # source://tapioca//lib/tapioca.rb#61
445
+ Tapioca::CENTRAL_REPO_INDEX_PATH = T.let(T.unsafe(nil), String)
446
+
447
+ # source://tapioca//lib/tapioca.rb#60
448
+ Tapioca::CENTRAL_REPO_ROOT_URI = T.let(T.unsafe(nil), String)
449
+
450
+ # source://tapioca//lib/tapioca/cli.rb#5
451
+ class Tapioca::Cli < ::Thor
452
+ include ::Tapioca::CliHelper
453
+ include ::Tapioca::ConfigHelper
454
+ include ::Tapioca::EnvHelper
455
+
456
+ # source://tapioca//lib/tapioca/cli.rb#377
457
+ def __print_version; end
458
+
459
+ # source://tapioca//lib/tapioca/cli.rb#359
460
+ def annotations; end
461
+
462
+ # source://tapioca//lib/tapioca/cli.rb#331
463
+ def check_shims; end
464
+
465
+ # source://tapioca//lib/tapioca/cli.rb#46
466
+ def configure; end
467
+
468
+ # source://tapioca//lib/tapioca/cli.rb#151
469
+ def dsl(*constant_or_paths); end
470
+
471
+ # @raise [MalformattedArgumentError]
472
+ #
473
+ # source://tapioca//lib/tapioca/cli.rb#274
474
+ def gem(*gems); end
475
+
476
+ # source://tapioca//lib/tapioca/cli.rb#27
477
+ def init; end
478
+
479
+ # source://tapioca//lib/tapioca/cli.rb#57
480
+ def require; end
481
+
482
+ # source://tapioca//lib/tapioca/cli.rb#74
483
+ def todo; end
484
+
485
+ private
486
+
487
+ # source://tapioca//lib/tapioca/cli.rb#391
488
+ def print_init_next_steps; end
489
+
490
+ class << self
491
+ # source://tapioca//lib/tapioca/cli.rb#383
492
+ def exit_on_failure?; end
493
+ end
494
+ end
495
+
496
+ # source://tapioca//lib/tapioca/cli.rb#10
497
+ Tapioca::Cli::FILE_HEADER_OPTION_DESC = T.let(T.unsafe(nil), String)
498
+
499
+ # source://tapioca//lib/tapioca/helpers/cli_helper.rb#5
500
+ module Tapioca::CliHelper
501
+ requires_ancestor { Thor::Shell }
502
+
503
+ # source://tapioca//lib/tapioca/helpers/cli_helper.rb#33
504
+ sig { params(options: T::Hash[::Symbol, T.untyped]).returns(T.nilable(::String)) }
505
+ def netrc_file(options); end
506
+
507
+ # source://tapioca//lib/tapioca/helpers/cli_helper.rb#26
508
+ sig { params(options: T::Hash[::Symbol, T.untyped]).returns(::Tapioca::RBIFormatter) }
509
+ def rbi_formatter(options); end
510
+
511
+ # source://tapioca//lib/tapioca/helpers/cli_helper.rb#12
512
+ sig { params(message: ::String, color: T.any(::Symbol, T::Array[::Symbol])).void }
513
+ def say_error(message = T.unsafe(nil), *color); end
514
+ end
515
+
516
+ # source://tapioca//lib/tapioca/commands.rb#5
517
+ module Tapioca::Commands; end
518
+
519
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
520
+ #
521
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#6
522
+ class Tapioca::Commands::AbstractDsl < ::Tapioca::Commands::CommandWithoutTracker
523
+ include ::Tapioca::SorbetHelper
524
+ include ::Tapioca::RBIFilesHelper
525
+
526
+ abstract!
527
+
528
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#34
529
+ sig do
530
+ params(
531
+ requested_constants: T::Array[::String],
532
+ requested_paths: T::Array[::Pathname],
533
+ outpath: ::Pathname,
534
+ only: T::Array[::String],
535
+ exclude: T::Array[::String],
536
+ file_header: T::Boolean,
537
+ tapioca_path: ::String,
538
+ skip_constant: T::Array[::String],
539
+ quiet: T::Boolean,
540
+ verbose: T::Boolean,
541
+ number_of_workers: T.nilable(::Integer),
542
+ auto_strictness: T::Boolean,
543
+ gem_dir: ::String,
544
+ rbi_formatter: ::Tapioca::RBIFormatter,
545
+ app_root: ::String,
546
+ halt_upon_load_error: T::Boolean,
547
+ compiler_options: T::Hash[::String, T.untyped],
548
+ lsp_addon: T::Boolean
549
+ ).void
550
+ end
551
+ def initialize(requested_constants:, requested_paths:, outpath:, only:, exclude:, file_header:, tapioca_path:, skip_constant: T.unsafe(nil), quiet: T.unsafe(nil), verbose: T.unsafe(nil), number_of_workers: T.unsafe(nil), auto_strictness: T.unsafe(nil), gem_dir: T.unsafe(nil), rbi_formatter: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil), compiler_options: T.unsafe(nil), lsp_addon: T.unsafe(nil)); end
552
+
553
+ private
554
+
555
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#107
556
+ sig { returns(T::Array[::String]) }
557
+ def all_requested_constants; end
558
+
559
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#304
560
+ sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) }
561
+ def build_error_for_files(cause, files); end
562
+
563
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#228
564
+ sig do
565
+ params(
566
+ constant_name: ::String,
567
+ rbi: ::RBI::File,
568
+ outpath: ::Pathname,
569
+ quiet: T::Boolean
570
+ ).returns(T.nilable(::Pathname))
571
+ end
572
+ def compile_dsl_rbi(constant_name, rbi, outpath: T.unsafe(nil), quiet: T.unsafe(nil)); end
573
+
574
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#163
575
+ sig { params(constant_names: T::Array[::String], ignore_missing: T::Boolean).returns(T::Array[::Module]) }
576
+ def constantize(constant_names, ignore_missing: T.unsafe(nil)); end
577
+
578
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#188
579
+ sig { params(compiler_names: T::Array[::String]).returns(T::Array[T.class_of(Tapioca::Dsl::Compiler)]) }
580
+ def constantize_compilers(compiler_names); end
581
+
582
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#364
583
+ sig { returns(T::Array[::String]) }
584
+ def constants_from_requested_paths; end
585
+
586
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#131
587
+ sig { returns(::Tapioca::Dsl::Pipeline) }
588
+ def create_pipeline; end
589
+
590
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#267
591
+ sig { params(constant_name: ::String).returns(::Pathname) }
592
+ def dsl_rbi_filename(constant_name); end
593
+
594
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#149
595
+ sig { params(requested_constants: T::Array[::String], path: ::Pathname).returns(T::Set[::Pathname]) }
596
+ def existing_rbi_filenames(requested_constants, path: T.unsafe(nil)); end
597
+
598
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#359
599
+ sig { params(constant: ::String).returns(::String) }
600
+ def generate_command_for(constant); end
601
+
602
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#79
603
+ sig { params(outpath: ::Pathname, quiet: T::Boolean).returns(T::Set[::Pathname]) }
604
+ def generate_dsl_rbi_files(outpath, quiet:); end
605
+
606
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#120
607
+ sig { void }
608
+ def load_application; end
609
+
610
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#246
611
+ sig { params(dir: ::Pathname).void }
612
+ def perform_dsl_verification(dir); end
613
+
614
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#115
615
+ sig { returns(::Tapioca::Dsl::Pipeline) }
616
+ def pipeline; end
617
+
618
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#255
619
+ sig { params(files: T::Set[::Pathname]).void }
620
+ def purge_stale_dsl_rbi_files(files); end
621
+
622
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#354
623
+ sig { params(constant: ::String).returns(::String) }
624
+ def rbi_filename_for(constant); end
625
+
626
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#335
627
+ sig { params(path: ::Pathname).returns(T::Array[::Pathname]) }
628
+ def rbi_files_in(path); end
629
+
630
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#313
631
+ sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void }
632
+ def report_diff_and_exit_if_out_of_date(diff, command); end
633
+
634
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#208
635
+ sig { params(name: ::String).returns(T.nilable(T.class_of(Tapioca::Dsl::Compiler))) }
636
+ def resolve(name); end
637
+
638
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#342
639
+ sig { params(class_name: ::String).returns(::String) }
640
+ def underscore(class_name); end
641
+
642
+ # source://tapioca//lib/tapioca/commands/abstract_dsl.rb#272
643
+ sig { params(tmp_dir: ::Pathname).returns(T::Hash[::String, ::Symbol]) }
644
+ def verify_dsl_rbi(tmp_dir:); end
645
+ end
646
+
647
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
648
+ #
649
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#6
650
+ class Tapioca::Commands::AbstractGem < ::Tapioca::Commands::Command
651
+ include ::Tapioca::SorbetHelper
652
+ include ::Tapioca::RBIFilesHelper
653
+
654
+ abstract!
655
+
656
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#33
657
+ sig do
658
+ params(
659
+ gem_names: T::Array[::String],
660
+ exclude: T::Array[::String],
661
+ include_dependencies: T::Boolean,
662
+ prerequire: T.nilable(::String),
663
+ postrequire: ::String,
664
+ typed_overrides: T::Hash[::String, ::String],
665
+ outpath: ::Pathname,
666
+ file_header: T::Boolean,
667
+ include_doc: T::Boolean,
668
+ include_loc: T::Boolean,
669
+ include_exported_rbis: T::Boolean,
670
+ number_of_workers: T.nilable(::Integer),
671
+ auto_strictness: T::Boolean,
672
+ dsl_dir: ::String,
673
+ rbi_formatter: ::Tapioca::RBIFormatter,
674
+ halt_upon_load_error: T::Boolean,
675
+ lsp_addon: T.nilable(T::Boolean)
676
+ ).void
677
+ end
678
+ def initialize(gem_names:, exclude:, include_dependencies:, prerequire:, postrequire:, typed_overrides:, outpath:, file_header:, include_doc:, include_loc:, include_exported_rbis:, number_of_workers: T.unsafe(nil), auto_strictness: T.unsafe(nil), dsl_dir: T.unsafe(nil), rbi_formatter: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil), lsp_addon: T.unsafe(nil)); end
679
+
680
+ private
681
+
682
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#200
683
+ sig { returns(T::Array[::String]) }
684
+ def added_rbis; end
685
+
686
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#261
687
+ sig { params(cause: ::Symbol, files: T::Array[::String]).returns(::String) }
688
+ def build_error_for_files(cause, files); end
689
+
690
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#80
691
+ sig { params(gem: ::Tapioca::Gemfile::GemSpec).void }
692
+ def compile_gem_rbi(gem); end
693
+
694
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#195
695
+ sig { params(gem_name: ::String).returns(::Pathname) }
696
+ def existing_rbi(gem_name); end
697
+
698
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#243
699
+ sig { returns(T::Hash[::String, ::String]) }
700
+ def existing_rbis; end
701
+
702
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#207
703
+ sig { params(gem_name: ::String).returns(::Pathname) }
704
+ def expected_rbi(gem_name); end
705
+
706
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#249
707
+ sig { returns(T::Hash[::String, ::String]) }
708
+ def expected_rbis; end
709
+
710
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#212
711
+ sig { params(gem_name: ::String).returns(T::Boolean) }
712
+ def gem_rbi_exists?(gem_name); end
713
+
714
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#256
715
+ sig { params(gem_name: ::String, version: ::String).returns(::Pathname) }
716
+ def gem_rbi_filename(gem_name, version); end
717
+
718
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#266
719
+ sig { params(gem: ::Tapioca::Gemfile::GemSpec, file: ::RBI::File).void }
720
+ def merge_with_exported_rbi(gem, file); end
721
+
722
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#237
723
+ sig { params(old_filename: ::Pathname, new_filename: ::Pathname).void }
724
+ def move(old_filename, new_filename); end
725
+
726
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#147
727
+ sig { void }
728
+ def perform_additions; end
729
+
730
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#120
731
+ sig { void }
732
+ def perform_removals; end
733
+
734
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#190
735
+ sig { returns(T::Array[::String]) }
736
+ def removed_rbis; end
737
+
738
+ # source://tapioca//lib/tapioca/commands/abstract_gem.rb#217
739
+ sig { params(diff: T::Hash[::String, ::Symbol], command: ::Symbol).void }
740
+ def report_diff_and_exit_if_out_of_date(diff, command); end
741
+ end
742
+
743
+ # source://tapioca//lib/tapioca/commands/annotations.rb#6
744
+ class Tapioca::Commands::Annotations < ::Tapioca::Commands::CommandWithoutTracker
745
+ # source://tapioca//lib/tapioca/commands/annotations.rb#18
746
+ sig do
747
+ params(
748
+ central_repo_root_uris: T::Array[::String],
749
+ auth: T.nilable(::String),
750
+ netrc_file: T.nilable(::String),
751
+ central_repo_index_path: ::String,
752
+ typed_overrides: T::Hash[::String, ::String]
753
+ ).void
754
+ end
755
+ def initialize(central_repo_root_uris:, auth: T.unsafe(nil), netrc_file: T.unsafe(nil), central_repo_index_path: T.unsafe(nil), typed_overrides: T.unsafe(nil)); end
756
+
757
+ private
758
+
759
+ # source://tapioca//lib/tapioca/commands/annotations.rb#197
760
+ sig { params(name: ::String, content: ::String).returns(::String) }
761
+ def add_header(name, content); end
762
+
763
+ # source://tapioca//lib/tapioca/commands/annotations.rb#217
764
+ sig { params(name: ::String, content: ::String).returns(::String) }
765
+ def apply_typed_override(name, content); end
766
+
767
+ # source://tapioca//lib/tapioca/commands/annotations.rb#39
768
+ sig { override.void }
769
+ def execute; end
770
+
771
+ # source://tapioca//lib/tapioca/commands/annotations.rb#136
772
+ sig { params(repo_uris: T::Array[::String], gem_info: ::Tapioca::GemInfo).void }
773
+ def fetch_annotation(repo_uris, gem_info); end
774
+
775
+ # source://tapioca//lib/tapioca/commands/annotations.rb#113
776
+ sig { params(project_gems: T::Array[::Tapioca::GemInfo]).returns(T::Array[::String]) }
777
+ def fetch_annotations(project_gems); end
778
+
779
+ # source://tapioca//lib/tapioca/commands/annotations.rb#156
780
+ sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) }
781
+ def fetch_file(repo_uri, path); end
782
+
783
+ # source://tapioca//lib/tapioca/commands/annotations.rb#173
784
+ sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) }
785
+ def fetch_http_file(repo_uri, path); end
786
+
787
+ # source://tapioca//lib/tapioca/commands/annotations.rb#102
788
+ sig { params(repo_uri: ::String, repo_number: T.nilable(::Integer)).returns(T.nilable(Tapioca::RepoIndex)) }
789
+ def fetch_index(repo_uri, repo_number:); end
790
+
791
+ # source://tapioca//lib/tapioca/commands/annotations.rb#81
792
+ sig { returns(T::Hash[::String, Tapioca::RepoIndex]) }
793
+ def fetch_indexes; end
794
+
795
+ # source://tapioca//lib/tapioca/commands/annotations.rb#165
796
+ sig { params(repo_uri: ::String, path: ::String).returns(T.nilable(::String)) }
797
+ def fetch_local_file(repo_uri, path); end
798
+
799
+ # source://tapioca//lib/tapioca/commands/annotations.rb#229
800
+ sig { params(gem_version: ::Gem::Version, content: ::String).returns(::String) }
801
+ def filter_versions(gem_version, content); end
802
+
803
+ # source://tapioca//lib/tapioca/commands/annotations.rb#50
804
+ sig { returns(T::Array[::Tapioca::GemInfo]) }
805
+ def list_gemfile_gems; end
806
+
807
+ # source://tapioca//lib/tapioca/commands/annotations.rb#237
808
+ sig { params(gem_name: ::String, contents: T::Array[::String]).returns(T.nilable(::String)) }
809
+ def merge_files(gem_name, contents); end
810
+
811
+ # source://tapioca//lib/tapioca/commands/annotations.rb#60
812
+ sig { params(project_gems: T::Array[::Tapioca::GemInfo]).void }
813
+ def remove_expired_annotations(project_gems); end
814
+
815
+ # source://tapioca//lib/tapioca/commands/annotations.rb#264
816
+ sig { returns(T::Hash[::String, T.nilable(::String)]) }
817
+ def repo_tokens; end
818
+
819
+ # source://tapioca//lib/tapioca/commands/annotations.rb#292
820
+ sig { params(path: ::String, repo_uri: ::String, message: ::String).void }
821
+ def say_http_error(path, repo_uri, message:); end
822
+
823
+ # source://tapioca//lib/tapioca/commands/annotations.rb#276
824
+ sig { params(repo_uri: ::String).returns(T.nilable(::String)) }
825
+ def token_for(repo_uri); end
826
+ end
827
+
828
+ # source://tapioca//lib/tapioca/commands/check_shims.rb#6
829
+ class Tapioca::Commands::CheckShims < ::Tapioca::Commands::CommandWithoutTracker
830
+ include ::Tapioca::SorbetHelper
831
+ include ::Tapioca::RBIFilesHelper
832
+
833
+ # source://tapioca//lib/tapioca/commands/check_shims.rb#22
834
+ sig do
835
+ params(
836
+ gem_rbi_dir: ::String,
837
+ dsl_rbi_dir: ::String,
838
+ annotations_rbi_dir: ::String,
839
+ shim_rbi_dir: ::String,
840
+ todo_rbi_file: ::String,
841
+ payload: T::Boolean,
842
+ number_of_workers: T.nilable(::Integer)
843
+ ).void
844
+ end
845
+ def initialize(gem_rbi_dir:, dsl_rbi_dir:, annotations_rbi_dir:, shim_rbi_dir:, todo_rbi_file:, payload:, number_of_workers:); end
846
+
847
+ private
848
+
849
+ # source://tapioca//lib/tapioca/commands/check_shims.rb#44
850
+ sig { override.void }
851
+ def execute; end
852
+ end
853
+
854
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
855
+ #
856
+ # source://tapioca//lib/tapioca/commands/command.rb#6
857
+ class Tapioca::Commands::Command
858
+ include ::Thor::Base
859
+ include ::Thor::Invocation
860
+ include ::Thor::Shell
861
+ include ::Tapioca::CliHelper
862
+ extend ::Thor::Base::ClassMethods
863
+ extend ::Thor::Invocation::ClassMethods
864
+
865
+ abstract!
866
+
867
+ # source://tapioca//lib/tapioca/commands/command.rb#20
868
+ sig { void }
869
+ def initialize; end
870
+
871
+ # source://thor/1.3.2/lib/thor/base.rb#155
872
+ sig { returns(::Thor::Actions) }
873
+ def file_writer; end
874
+
875
+ # source://tapioca//lib/tapioca/commands/command.rb#25
876
+ sig(:final) { void }
877
+ def run; end
878
+
879
+ private
880
+
881
+ # source://tapioca//lib/tapioca/commands/command.rb#53
882
+ sig do
883
+ params(
884
+ path: T.any(::Pathname, ::String),
885
+ content: ::String,
886
+ force: T::Boolean,
887
+ skip: T::Boolean,
888
+ verbose: T::Boolean
889
+ ).void
890
+ end
891
+ def create_file(path, content, force: T.unsafe(nil), skip: T.unsafe(nil), verbose: T.unsafe(nil)); end
892
+
893
+ # source://tapioca//lib/tapioca/commands/command.rb#37
894
+ sig { params(command: ::Symbol, args: ::String).returns(::String) }
895
+ def default_command(command, *args); end
896
+
897
+ # @abstract
898
+ #
899
+ # source://tapioca//lib/tapioca/commands/command.rb#34
900
+ sig { abstract.void }
901
+ def execute; end
902
+
903
+ # source://tapioca//lib/tapioca/commands/command.rb#63
904
+ sig { params(path: T.any(::Pathname, ::String), verbose: T::Boolean).void }
905
+ def remove_file(path, verbose: T.unsafe(nil)); end
906
+ end
907
+
908
+ # source://tapioca//lib/tapioca/commands/command.rb#10
909
+ class Tapioca::Commands::Command::FileWriter < ::Thor
910
+ include ::Thor::Actions
911
+ extend ::Thor::Actions::ClassMethods
912
+ end
913
+
914
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
915
+ #
916
+ # source://tapioca//lib/tapioca/commands/command_without_tracker.rb#6
917
+ class Tapioca::Commands::CommandWithoutTracker < ::Tapioca::Commands::Command
918
+ abstract!
919
+
920
+ # source://tapioca//lib/tapioca/commands/command_without_tracker.rb#12
921
+ sig { void }
922
+ def initialize; end
923
+ end
924
+
925
+ # source://tapioca//lib/tapioca/commands/configure.rb#6
926
+ class Tapioca::Commands::Configure < ::Tapioca::Commands::CommandWithoutTracker
927
+ # source://tapioca//lib/tapioca/commands/configure.rb#14
928
+ sig { params(sorbet_config: ::String, tapioca_config: ::String, default_postrequire: ::String).void }
929
+ def initialize(sorbet_config:, tapioca_config:, default_postrequire:); end
930
+
931
+ private
932
+
933
+ # source://tapioca//lib/tapioca/commands/configure.rb#79
934
+ sig { void }
935
+ def create_binstub; end
936
+
937
+ # source://tapioca//lib/tapioca/commands/configure.rb#69
938
+ sig { void }
939
+ def create_post_require; end
940
+
941
+ # source://tapioca//lib/tapioca/commands/configure.rb#40
942
+ sig { void }
943
+ def create_sorbet_config; end
944
+
945
+ # source://tapioca//lib/tapioca/commands/configure.rb#50
946
+ sig { void }
947
+ def create_tapioca_config; end
948
+
949
+ # source://tapioca//lib/tapioca/commands/configure.rb#32
950
+ sig { override.void }
951
+ def execute; end
952
+
953
+ # source://tapioca//lib/tapioca/commands/configure.rb#92
954
+ sig { returns(::Bundler::Installer) }
955
+ def installer; end
956
+
957
+ # source://tapioca//lib/tapioca/commands/configure.rb#97
958
+ sig { returns(T.any(::Bundler::StubSpecification, ::Gem::Specification)) }
959
+ def spec; end
960
+ end
961
+
962
+ # source://tapioca//lib/tapioca/commands/dsl_compiler_list.rb#6
963
+ class Tapioca::Commands::DslCompilerList < ::Tapioca::Commands::AbstractDsl
964
+ private
965
+
966
+ # source://tapioca//lib/tapioca/commands/dsl_compiler_list.rb#10
967
+ sig { override.void }
968
+ def execute; end
969
+ end
970
+
971
+ # source://tapioca//lib/tapioca/commands/dsl_generate.rb#6
972
+ class Tapioca::Commands::DslGenerate < ::Tapioca::Commands::AbstractDsl
973
+ private
974
+
975
+ # source://tapioca//lib/tapioca/commands/dsl_generate.rb#10
976
+ sig { override.void }
977
+ def execute; end
978
+ end
979
+
980
+ # source://tapioca//lib/tapioca/commands/dsl_verify.rb#6
981
+ class Tapioca::Commands::DslVerify < ::Tapioca::Commands::AbstractDsl
982
+ private
983
+
984
+ # source://tapioca//lib/tapioca/commands/dsl_verify.rb#10
985
+ sig { override.void }
986
+ def execute; end
987
+ end
988
+
989
+ # source://tapioca//lib/tapioca/commands/gem_generate.rb#6
990
+ class Tapioca::Commands::GemGenerate < ::Tapioca::Commands::AbstractGem
991
+ private
992
+
993
+ # source://tapioca//lib/tapioca/commands/gem_generate.rb#10
994
+ sig { override.void }
995
+ def execute; end
996
+
997
+ # source://tapioca//lib/tapioca/commands/gem_generate.rb#74
998
+ sig do
999
+ params(
1000
+ gem: ::Tapioca::Gemfile::GemSpec,
1001
+ dependencies: T::Array[::Tapioca::Gemfile::GemSpec]
1002
+ ).returns(T::Array[::Tapioca::Gemfile::GemSpec])
1003
+ end
1004
+ def gem_dependencies(gem, dependencies = T.unsafe(nil)); end
1005
+
1006
+ # source://tapioca//lib/tapioca/commands/gem_generate.rb#51
1007
+ sig { params(gem_names: T::Array[::String]).returns(T::Array[::Tapioca::Gemfile::GemSpec]) }
1008
+ def gems_to_generate(gem_names); end
1009
+ end
1010
+
1011
+ # source://tapioca//lib/tapioca/commands/gem_sync.rb#6
1012
+ class Tapioca::Commands::GemSync < ::Tapioca::Commands::AbstractGem
1013
+ private
1014
+
1015
+ # source://tapioca//lib/tapioca/commands/gem_sync.rb#10
1016
+ sig { override.void }
1017
+ def execute; end
1018
+ end
1019
+
1020
+ # source://tapioca//lib/tapioca/commands/gem_verify.rb#6
1021
+ class Tapioca::Commands::GemVerify < ::Tapioca::Commands::AbstractGem
1022
+ private
1023
+
1024
+ # source://tapioca//lib/tapioca/commands/gem_verify.rb#10
1025
+ sig { override.void }
1026
+ def execute; end
1027
+
1028
+ # source://tapioca//lib/tapioca/commands/gem_verify.rb#17
1029
+ sig { void }
1030
+ def perform_sync_verification; end
1031
+ end
1032
+
1033
+ # source://tapioca//lib/tapioca/commands/require.rb#6
1034
+ class Tapioca::Commands::Require < ::Tapioca::Commands::CommandWithoutTracker
1035
+ # source://tapioca//lib/tapioca/commands/require.rb#13
1036
+ sig { params(requires_path: ::String, sorbet_config_path: ::String).void }
1037
+ def initialize(requires_path:, sorbet_config_path:); end
1038
+
1039
+ private
1040
+
1041
+ # source://tapioca//lib/tapioca/commands/require.rb#23
1042
+ sig { override.void }
1043
+ def execute; end
1044
+ end
1045
+
1046
+ # source://tapioca//lib/tapioca/commands/todo.rb#6
1047
+ class Tapioca::Commands::Todo < ::Tapioca::Commands::CommandWithoutTracker
1048
+ include ::Tapioca::SorbetHelper
1049
+
1050
+ # source://tapioca//lib/tapioca/commands/todo.rb#26
1051
+ sig { params(todo_file: ::String, file_header: T::Boolean).void }
1052
+ def initialize(todo_file:, file_header:); end
1053
+
1054
+ # source://tapioca//lib/tapioca/commands/todo.rb#34
1055
+ sig { void }
1056
+ def run_with_deprecation; end
1057
+
1058
+ private
1059
+
1060
+ # source://tapioca//lib/tapioca/commands/todo.rb#44
1061
+ sig { override.void }
1062
+ def execute; end
1063
+
1064
+ # source://tapioca//lib/tapioca/commands/todo.rb#68
1065
+ sig { params(constants: T::Array[::String], command: ::String).returns(::RBI::File) }
1066
+ def rbi(constants, command:); end
1067
+
1068
+ # source://tapioca//lib/tapioca/commands/todo.rb#88
1069
+ sig { returns(T::Array[::String]) }
1070
+ def unresolved_constants; end
1071
+ end
1072
+
1073
+ # source://tapioca//lib/tapioca/commands/todo.rb#9
1074
+ Tapioca::Commands::Todo::DEPRECATION_MESSAGE = T.let(T.unsafe(nil), String)
1075
+
1076
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#5
1077
+ module Tapioca::ConfigHelper
1078
+ requires_ancestor { Thor }
1079
+
1080
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#18
1081
+ sig { params(args: T.untyped, local_options: T.untyped, config: T.untyped).void }
1082
+ def initialize(args = T.unsafe(nil), local_options = T.unsafe(nil), config = T.unsafe(nil)); end
1083
+
1084
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#12
1085
+ sig { returns(::String) }
1086
+ def command_name; end
1087
+
1088
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#15
1089
+ sig { returns(::Thor::CoreExt::HashWithIndifferentAccess) }
1090
+ def defaults; end
1091
+
1092
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#34
1093
+ sig { returns(::Thor::CoreExt::HashWithIndifferentAccess) }
1094
+ def options; end
1095
+
1096
+ private
1097
+
1098
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#153
1099
+ sig { params(msg: ::String).returns(::Tapioca::ConfigHelper::ConfigError) }
1100
+ def build_error(msg); end
1101
+
1102
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#178
1103
+ sig { params(config_file: ::String, errors: T::Array[::Tapioca::ConfigHelper::ConfigError]).returns(::String) }
1104
+ def build_error_message(config_file, errors); end
1105
+
1106
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#56
1107
+ sig do
1108
+ params(
1109
+ options: ::Thor::CoreExt::HashWithIndifferentAccess
1110
+ ).returns(::Thor::CoreExt::HashWithIndifferentAccess)
1111
+ end
1112
+ def config_options(options); end
1113
+
1114
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#46
1115
+ sig { params(options: T::Hash[::Symbol, ::Thor::Option]).void }
1116
+ def filter_defaults(options); end
1117
+
1118
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#196
1119
+ sig do
1120
+ params(
1121
+ options: T.nilable(::Thor::CoreExt::HashWithIndifferentAccess)
1122
+ ).returns(::Thor::CoreExt::HashWithIndifferentAccess)
1123
+ end
1124
+ def merge_options(*options); end
1125
+
1126
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#70
1127
+ sig { params(config_file: ::String, config: T::Hash[T.untyped, T.untyped]).void }
1128
+ def validate_config!(config_file, config); end
1129
+
1130
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#102
1131
+ sig do
1132
+ params(
1133
+ command_options: T::Hash[::Symbol, ::Thor::Option],
1134
+ config_key: ::String,
1135
+ config_options: T::Hash[T.untyped, T.untyped]
1136
+ ).returns(T::Array[::Tapioca::ConfigHelper::ConfigError])
1137
+ end
1138
+ def validate_config_options(command_options, config_key, config_options); end
1139
+ end
1140
+
1141
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#148
1142
+ class Tapioca::ConfigHelper::ConfigError < ::T::Struct
1143
+ const :message_parts, T::Array[::Tapioca::ConfigHelper::ConfigErrorMessagePart]
1144
+
1145
+ class << self
1146
+ # source://sorbet-runtime/0.5.11725/lib/types/struct.rb#13
1147
+ def inherited(s); end
1148
+ end
1149
+ end
1150
+
1151
+ # source://tapioca//lib/tapioca/helpers/config_helper.rb#143
1152
+ class Tapioca::ConfigHelper::ConfigErrorMessagePart < ::T::Struct
1153
+ const :message, ::String
1154
+ const :colors, T::Array[::Symbol]
1155
+
1156
+ class << self
1157
+ # source://sorbet-runtime/0.5.11725/lib/types/struct.rb#13
1158
+ def inherited(s); end
1159
+ end
1160
+ end
1161
+
1162
+ # source://tapioca//lib/tapioca.rb#46
1163
+ Tapioca::DEFAULT_ANNOTATIONS_DIR = T.let(T.unsafe(nil), String)
1164
+
1165
+ # source://tapioca//lib/tapioca.rb#42
1166
+ Tapioca::DEFAULT_DSL_DIR = T.let(T.unsafe(nil), String)
1167
+
1168
+ # source://tapioca//lib/tapioca.rb#58
1169
+ Tapioca::DEFAULT_ENVIRONMENT = T.let(T.unsafe(nil), String)
1170
+
1171
+ # source://tapioca//lib/tapioca.rb#43
1172
+ Tapioca::DEFAULT_GEM_DIR = T.let(T.unsafe(nil), String)
1173
+
1174
+ # source://tapioca//lib/tapioca.rb#48
1175
+ Tapioca::DEFAULT_OVERRIDES = T.let(T.unsafe(nil), Hash)
1176
+
1177
+ # source://tapioca//lib/tapioca.rb#40
1178
+ Tapioca::DEFAULT_POSTREQUIRE_FILE = T.let(T.unsafe(nil), String)
1179
+
1180
+ # source://tapioca//lib/tapioca.rb#41
1181
+ Tapioca::DEFAULT_RBI_DIR = T.let(T.unsafe(nil), String)
1182
+
1183
+ # source://tapioca//lib/tapioca/rbi_formatter.rb#31
1184
+ Tapioca::DEFAULT_RBI_FORMATTER = T.let(T.unsafe(nil), Tapioca::RBIFormatter)
1185
+
1186
+ # source://tapioca//lib/tapioca.rb#57
1187
+ Tapioca::DEFAULT_RBI_MAX_LINE_LENGTH = T.let(T.unsafe(nil), Integer)
1188
+
1189
+ # source://tapioca//lib/tapioca.rb#44
1190
+ Tapioca::DEFAULT_SHIM_DIR = T.let(T.unsafe(nil), String)
1191
+
1192
+ # source://tapioca//lib/tapioca.rb#45
1193
+ Tapioca::DEFAULT_TODO_FILE = T.let(T.unsafe(nil), String)
1194
+
1195
+ # source://tapioca//lib/tapioca/dsl/compilers.rb#5
1196
+ module Tapioca::Dsl; end
1197
+
1198
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1199
+ #
1200
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#6
1201
+ class Tapioca::Dsl::Compiler
1202
+ extend T::Generic
1203
+ include ::Tapioca::SorbetHelper
1204
+ include ::Tapioca::RBIHelper
1205
+ include ::Tapioca::Runtime::AttachedClassOf
1206
+ include ::Tapioca::Runtime::Reflection
1207
+ extend ::Tapioca::Runtime::AttachedClassOf
1208
+ extend ::Tapioca::Runtime::Reflection
1209
+
1210
+ abstract!
1211
+
1212
+ ConstantType = type_member { { upper: Module } }
1213
+
1214
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#110
1215
+ sig do
1216
+ params(
1217
+ pipeline: ::Tapioca::Dsl::Pipeline,
1218
+ root: ::RBI::Tree,
1219
+ constant: ConstantType,
1220
+ options: T::Hash[::String, T.untyped]
1221
+ ).void
1222
+ end
1223
+ def initialize(pipeline, root, constant, options = T.unsafe(nil)); end
1224
+
1225
+ # NOTE: This should eventually accept an `Error` object or `Exception` rather than simply a `String`.
1226
+ #
1227
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#128
1228
+ sig { params(error: ::String).void }
1229
+ def add_error(error); end
1230
+
1231
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#119
1232
+ sig { params(compiler_name: ::String).returns(T::Boolean) }
1233
+ def compiler_enabled?(compiler_name); end
1234
+
1235
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#20
1236
+ sig { returns(ConstantType) }
1237
+ def constant; end
1238
+
1239
+ # @abstract
1240
+ #
1241
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#124
1242
+ sig { abstract.void }
1243
+ def decorate; end
1244
+
1245
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#26
1246
+ sig { returns(T::Hash[::String, T.untyped]) }
1247
+ def options; end
1248
+
1249
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#23
1250
+ sig { returns(::RBI::Tree) }
1251
+ def root; end
1252
+
1253
+ private
1254
+
1255
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#177
1256
+ sig { params(method_def: T.any(::Method, ::UnboundMethod)).returns(T::Array[::RBI::TypedParam]) }
1257
+ def compile_method_parameters_to_rbi(method_def); end
1258
+
1259
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#213
1260
+ sig { params(method_def: T.any(::Method, ::UnboundMethod)).returns(::String) }
1261
+ def compile_method_return_type_to_rbi(method_def); end
1262
+
1263
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#167
1264
+ sig { params(scope: ::RBI::Scope, method_def: T.any(::Method, ::UnboundMethod), class_method: T::Boolean).void }
1265
+ def create_method_from_def(scope, method_def, class_method: T.unsafe(nil)); end
1266
+
1267
+ # Get the types of each parameter from a method signature
1268
+ #
1269
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#141
1270
+ sig { params(method_def: T.any(::Method, ::UnboundMethod), signature: T.untyped).returns(T::Array[::String]) }
1271
+ def parameters_types_from_signature(method_def, signature); end
1272
+
1273
+ class << self
1274
+ # @abstract
1275
+ #
1276
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#39
1277
+ sig { abstract.returns(T::Enumerable[::Module]) }
1278
+ def gather_constants; end
1279
+
1280
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#34
1281
+ sig { params(constant: ::Module).returns(T::Boolean) }
1282
+ def handles?(constant); end
1283
+
1284
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#42
1285
+ sig { returns(T::Set[::Module]) }
1286
+ def processable_constants; end
1287
+
1288
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#50
1289
+ sig { params(constants: T::Array[::Module]).void }
1290
+ def requested_constants=(constants); end
1291
+
1292
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#55
1293
+ sig { void }
1294
+ def reset_state; end
1295
+
1296
+ private
1297
+
1298
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#82
1299
+ sig { returns(T::Enumerable[T::Class[T.anything]]) }
1300
+ def all_classes; end
1301
+
1302
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#90
1303
+ sig { returns(T::Enumerable[::Module]) }
1304
+ def all_modules; end
1305
+
1306
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#68
1307
+ sig do
1308
+ type_parameters(:U)
1309
+ .params(
1310
+ klass: T.all(T.type_parameter(:U), T::Class[T.anything])
1311
+ ).returns(T::Array[T.type_parameter(:U)])
1312
+ end
1313
+ def descendants_of(klass); end
1314
+ end
1315
+ end
1316
+
1317
+ # source://tapioca//lib/tapioca/dsl/compilers.rb#6
1318
+ module Tapioca::Dsl::Compilers; end
1319
+
1320
+ # DSL compilers are either built-in to Tapioca and live under the
1321
+ # `Tapioca::Dsl::Compilers` namespace (i.e. this namespace), and
1322
+ # can be referred to by just using the class name, or they live in
1323
+ # a different namespace and can only be referred to using their fully
1324
+ # qualified name. This constant encapsulates that dual lookup when
1325
+ # a compiler needs to be resolved by name.
1326
+ #
1327
+ # source://tapioca//lib/tapioca/dsl/compilers.rb#13
1328
+ Tapioca::Dsl::Compilers::NAMESPACES = T.let(T.unsafe(nil), Array)
1329
+
1330
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#6
1331
+ class Tapioca::Dsl::Pipeline
1332
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#40
1333
+ sig do
1334
+ params(
1335
+ requested_constants: T::Array[::Module],
1336
+ requested_paths: T::Array[::Pathname],
1337
+ requested_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)],
1338
+ excluded_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)],
1339
+ error_handler: T.proc.params(error: ::String).void,
1340
+ skipped_constants: T::Array[::Module],
1341
+ number_of_workers: T.nilable(::Integer),
1342
+ compiler_options: T::Hash[::String, T.untyped],
1343
+ lsp_addon: T::Boolean
1344
+ ).void
1345
+ end
1346
+ def initialize(requested_constants:, requested_paths: T.unsafe(nil), requested_compilers: T.unsafe(nil), excluded_compilers: T.unsafe(nil), error_handler: T.unsafe(nil), skipped_constants: T.unsafe(nil), number_of_workers: T.unsafe(nil), compiler_options: T.unsafe(nil), lsp_addon: T.unsafe(nil)); end
1347
+
1348
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#10
1349
+ sig { returns(T::Enumerable[T.class_of(Tapioca::Dsl::Compiler)]) }
1350
+ def active_compilers; end
1351
+
1352
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#105
1353
+ sig { params(error: ::String).void }
1354
+ def add_error(error); end
1355
+
1356
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#110
1357
+ sig { params(compiler_name: ::String).returns(T::Boolean) }
1358
+ def compiler_enabled?(compiler_name); end
1359
+
1360
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#119
1361
+ sig { returns(T::Array[T.class_of(Tapioca::Dsl::Compiler)]) }
1362
+ def compilers; end
1363
+
1364
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#22
1365
+ sig { returns(T.proc.params(error: ::String).void) }
1366
+ def error_handler; end
1367
+
1368
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#25
1369
+ sig { returns(T::Array[::String]) }
1370
+ def errors; end
1371
+
1372
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#13
1373
+ sig { returns(T::Array[::Module]) }
1374
+ def requested_constants; end
1375
+
1376
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#16
1377
+ sig { returns(T::Array[::Pathname]) }
1378
+ def requested_paths; end
1379
+
1380
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#70
1381
+ sig do
1382
+ type_parameters(:T)
1383
+ .params(
1384
+ blk: T.proc.params(constant: ::Module, rbi: ::RBI::File).returns(T.type_parameter(:T))
1385
+ ).returns(T::Array[T.type_parameter(:T)])
1386
+ end
1387
+ def run(&blk); end
1388
+
1389
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#19
1390
+ sig { returns(T::Array[::Module]) }
1391
+ def skipped_constants; end
1392
+
1393
+ private
1394
+
1395
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#227
1396
+ sig { void }
1397
+ def abort_if_pending_migrations!; end
1398
+
1399
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#172
1400
+ sig { params(constants: T::Set[::Module]).returns(T::Set[::Module]) }
1401
+ def filter_anonymous_and_reloaded_constants(constants); end
1402
+
1403
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#136
1404
+ sig do
1405
+ params(
1406
+ requested_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)],
1407
+ excluded_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)]
1408
+ ).returns(T::Enumerable[T.class_of(Tapioca::Dsl::Compiler)])
1409
+ end
1410
+ def gather_active_compilers(requested_compilers, excluded_compilers); end
1411
+
1412
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#150
1413
+ sig do
1414
+ params(
1415
+ requested_constants: T::Array[::Module],
1416
+ requested_paths: T::Array[::Pathname],
1417
+ skipped_constants: T::Array[::Module]
1418
+ ).returns(T::Set[::Module])
1419
+ end
1420
+ def gather_constants(requested_constants, requested_paths, skipped_constants); end
1421
+
1422
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#201
1423
+ sig { params(constant: ::Module).returns(T.nilable(::RBI::File)) }
1424
+ def rbi_for_constant(constant); end
1425
+
1426
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#220
1427
+ sig { params(error: ::String).returns(T.noreturn) }
1428
+ def report_error(error); end
1429
+ end
1430
+
1431
+ # source://tapioca//lib/tapioca/helpers/env_helper.rb#5
1432
+ module Tapioca::EnvHelper
1433
+ requires_ancestor { Thor }
1434
+
1435
+ # source://tapioca//lib/tapioca/helpers/env_helper.rb#12
1436
+ sig { params(options: T::Hash[::Symbol, T.untyped]).void }
1437
+ def set_environment(options); end
1438
+ end
1439
+
1440
+ class Tapioca::Error < ::StandardError; end
1441
+
1442
+ # source://tapioca//lib/tapioca/executor.rb#5
1443
+ class Tapioca::Executor
1444
+ # source://tapioca//lib/tapioca/executor.rb#11
1445
+ sig { params(queue: T::Array[T.untyped], number_of_workers: T.nilable(::Integer)).void }
1446
+ def initialize(queue, number_of_workers: T.unsafe(nil)); end
1447
+
1448
+ # source://tapioca//lib/tapioca/executor.rb#28
1449
+ sig do
1450
+ type_parameters(:T)
1451
+ .params(
1452
+ block: T.proc.params(item: T.untyped).returns(T.type_parameter(:T))
1453
+ ).returns(T::Array[T.type_parameter(:T)])
1454
+ end
1455
+ def run_in_parallel(&block); end
1456
+
1457
+ private
1458
+
1459
+ # source://tapioca//lib/tapioca/executor.rb#37
1460
+ sig { returns(::Integer) }
1461
+ def max_processors; end
1462
+ end
1463
+
1464
+ # source://tapioca//lib/tapioca/executor.rb#8
1465
+ Tapioca::Executor::MINIMUM_ITEMS_PER_WORKER = T.let(T.unsafe(nil), Integer)
1466
+
1467
+ # source://tapioca//lib/tapioca/gem/events.rb#5
1468
+ module Tapioca::Gem; end
1469
+
1470
+ # source://tapioca//lib/tapioca/gem/events.rb#77
1471
+ class Tapioca::Gem::ConstNodeAdded < ::Tapioca::Gem::NodeAdded
1472
+ # source://tapioca//lib/tapioca/gem/events.rb#84
1473
+ sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Const).void }
1474
+ def initialize(symbol, constant, node); end
1475
+
1476
+ # source://tapioca//lib/tapioca/gem/events.rb#81
1477
+ sig { returns(::RBI::Const) }
1478
+ def node; end
1479
+ end
1480
+
1481
+ # source://tapioca//lib/tapioca/gem/events.rb#26
1482
+ class Tapioca::Gem::ConstantFound < ::Tapioca::Gem::Event
1483
+ # source://tapioca//lib/tapioca/gem/events.rb#36
1484
+ sig { params(symbol: ::String, constant: ::BasicObject).void }
1485
+ def initialize(symbol, constant); end
1486
+
1487
+ # source://tapioca//lib/tapioca/gem/events.rb#33
1488
+ sig { returns(::BasicObject) }
1489
+ def constant; end
1490
+
1491
+ # source://tapioca//lib/tapioca/gem/events.rb#30
1492
+ sig { returns(::String) }
1493
+ def symbol; end
1494
+ end
1495
+
1496
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1497
+ #
1498
+ # source://tapioca//lib/tapioca/gem/events.rb#6
1499
+ class Tapioca::Gem::Event
1500
+ abstract!
1501
+ end
1502
+
1503
+ # source://tapioca//lib/tapioca/gem/events.rb#43
1504
+ class Tapioca::Gem::ForeignConstantFound < ::Tapioca::Gem::ConstantFound
1505
+ # source://tapioca//lib/tapioca/gem/events.rb#52
1506
+ sig { params(symbol: ::String, constant: ::Module).void }
1507
+ def initialize(symbol, constant); end
1508
+
1509
+ # source://tapioca//lib/tapioca/gem/events.rb#47
1510
+ sig { override.returns(::Module) }
1511
+ def constant; end
1512
+ end
1513
+
1514
+ # source://tapioca//lib/tapioca/gem/events.rb#103
1515
+ class Tapioca::Gem::ForeignScopeNodeAdded < ::Tapioca::Gem::ScopeNodeAdded; end
1516
+
1517
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#6
1518
+ module Tapioca::Gem::Listeners; end
1519
+
1520
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1521
+ #
1522
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#7
1523
+ class Tapioca::Gem::Listeners::Base
1524
+ abstract!
1525
+
1526
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#14
1527
+ sig { params(pipeline: ::Tapioca::Gem::Pipeline).void }
1528
+ def initialize(pipeline); end
1529
+
1530
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#19
1531
+ sig { params(event: ::Tapioca::Gem::NodeAdded).void }
1532
+ def dispatch(event); end
1533
+
1534
+ private
1535
+
1536
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#49
1537
+ sig { params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1538
+ def ignore?(event); end
1539
+
1540
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#37
1541
+ sig { params(event: ::Tapioca::Gem::ConstNodeAdded).void }
1542
+ def on_const(event); end
1543
+
1544
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#45
1545
+ sig { params(event: ::Tapioca::Gem::MethodNodeAdded).void }
1546
+ def on_method(event); end
1547
+
1548
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#41
1549
+ sig { params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1550
+ def on_scope(event); end
1551
+ end
1552
+
1553
+ # source://tapioca//lib/tapioca/gem/listeners/dynamic_mixins.rb#7
1554
+ class Tapioca::Gem::Listeners::DynamicMixins < ::Tapioca::Gem::Listeners::Base
1555
+ include ::Tapioca::Runtime::AttachedClassOf
1556
+ include ::Tapioca::Runtime::Reflection
1557
+
1558
+ private
1559
+
1560
+ # source://tapioca//lib/tapioca/gem/listeners/dynamic_mixins.rb#31
1561
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1562
+ def ignore?(event); end
1563
+
1564
+ # source://tapioca//lib/tapioca/gem/listeners/dynamic_mixins.rb#15
1565
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1566
+ def on_scope(event); end
1567
+ end
1568
+
1569
+ # source://tapioca//lib/tapioca/gem/listeners/foreign_constants.rb#7
1570
+ class Tapioca::Gem::Listeners::ForeignConstants < ::Tapioca::Gem::Listeners::Base
1571
+ include ::Tapioca::Runtime::AttachedClassOf
1572
+ include ::Tapioca::Runtime::Reflection
1573
+
1574
+ private
1575
+
1576
+ # source://tapioca//lib/tapioca/gem/listeners/foreign_constants.rb#60
1577
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1578
+ def ignore?(event); end
1579
+
1580
+ # source://tapioca//lib/tapioca/gem/listeners/foreign_constants.rb#55
1581
+ sig { params(location: ::String).returns(T::Boolean) }
1582
+ def mixed_in_by_gem?(location); end
1583
+
1584
+ # source://tapioca//lib/tapioca/gem/listeners/foreign_constants.rb#15
1585
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1586
+ def on_scope(event); end
1587
+ end
1588
+
1589
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#7
1590
+ class Tapioca::Gem::Listeners::Methods < ::Tapioca::Gem::Listeners::Base
1591
+ include ::Tapioca::SorbetHelper
1592
+ include ::Tapioca::RBIHelper
1593
+ include ::Tapioca::Runtime::AttachedClassOf
1594
+ include ::Tapioca::Runtime::Reflection
1595
+
1596
+ private
1597
+
1598
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#35
1599
+ sig do
1600
+ params(
1601
+ tree: ::RBI::Tree,
1602
+ module_name: ::String,
1603
+ mod: ::Module,
1604
+ for_visibility: T::Array[::Symbol],
1605
+ attached_class: T.nilable(::Module)
1606
+ ).void
1607
+ end
1608
+ def compile_directly_owned_methods(tree, module_name, mod, for_visibility = T.unsafe(nil), attached_class: T.unsafe(nil)); end
1609
+
1610
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#71
1611
+ sig do
1612
+ params(
1613
+ tree: ::RBI::Tree,
1614
+ symbol_name: ::String,
1615
+ constant: ::Module,
1616
+ method: T.nilable(::UnboundMethod),
1617
+ visibility: ::RBI::Visibility
1618
+ ).void
1619
+ end
1620
+ def compile_method(tree, symbol_name, constant, method, visibility = T.unsafe(nil)); end
1621
+
1622
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#211
1623
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1624
+ def ignore?(event); end
1625
+
1626
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#204
1627
+ sig { params(constant: ::Module).returns(T.nilable(::UnboundMethod)) }
1628
+ def initialize_method_for(constant); end
1629
+
1630
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#216
1631
+ sig { params(method: ::UnboundMethod).returns(T.untyped) }
1632
+ def lookup_signature_of(method); end
1633
+
1634
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#172
1635
+ sig { params(mod: ::Module).returns(T::Hash[::Symbol, T::Array[::Symbol]]) }
1636
+ def method_names_by_visibility(mod); end
1637
+
1638
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#196
1639
+ sig { params(attached_class: T.nilable(::Module), method_name: ::Symbol).returns(T.nilable(T::Boolean)) }
1640
+ def method_new_in_abstract_class?(attached_class, method_name); end
1641
+
1642
+ # Check whether the method is defined by the constant.
1643
+ #
1644
+ # In most cases, it works to check that the constant is the method owner. However,
1645
+ # in the case that a method is also defined in a module prepended to the constant, it
1646
+ # will be owned by the prepended module, not the constant.
1647
+ #
1648
+ # This method implements a better way of checking whether a constant defines a method.
1649
+ # It walks up the ancestor tree via the `super_method` method; if any of the super
1650
+ # methods are owned by the constant, it means that the constant declares the method.
1651
+ #
1652
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#158
1653
+ sig { params(method: ::UnboundMethod, constant: ::Module).returns(T::Boolean) }
1654
+ def method_owned_by_constant?(method, constant); end
1655
+
1656
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#16
1657
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1658
+ def on_scope(event); end
1659
+
1660
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#181
1661
+ sig { params(constant: ::Module, method_name: ::String).returns(T::Boolean) }
1662
+ def struct_method?(constant, method_name); end
1663
+ end
1664
+
1665
+ # source://tapioca//lib/tapioca/gem/listeners/mixins.rb#7
1666
+ class Tapioca::Gem::Listeners::Mixins < ::Tapioca::Gem::Listeners::Base
1667
+ include ::Tapioca::Runtime::AttachedClassOf
1668
+ include ::Tapioca::Runtime::Reflection
1669
+
1670
+ private
1671
+
1672
+ # source://tapioca//lib/tapioca/gem/listeners/mixins.rb#42
1673
+ sig do
1674
+ params(
1675
+ tree: ::RBI::Tree,
1676
+ constant: ::Module,
1677
+ mods: T::Array[::Module],
1678
+ mixin_type: ::Tapioca::Runtime::Trackers::Mixin::Type
1679
+ ).void
1680
+ end
1681
+ def add_mixins(tree, constant, mods, mixin_type); end
1682
+
1683
+ # source://tapioca//lib/tapioca/gem/listeners/mixins.rb#84
1684
+ sig { params(mixin_name: ::String).returns(T::Boolean) }
1685
+ def filtered_mixin?(mixin_name); end
1686
+
1687
+ # source://tapioca//lib/tapioca/gem/listeners/mixins.rb#91
1688
+ sig { params(constant: ::Module).returns(T::Array[::Module]) }
1689
+ def interesting_ancestors_of(constant); end
1690
+
1691
+ # source://tapioca//lib/tapioca/gem/listeners/mixins.rb#75
1692
+ sig do
1693
+ params(
1694
+ constant: ::Module,
1695
+ mixin: ::Module,
1696
+ mixin_type: ::Tapioca::Runtime::Trackers::Mixin::Type
1697
+ ).returns(T::Boolean)
1698
+ end
1699
+ def mixed_in_by_gem?(constant, mixin, mixin_type); end
1700
+
1701
+ # source://tapioca//lib/tapioca/gem/listeners/mixins.rb#15
1702
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1703
+ def on_scope(event); end
1704
+ end
1705
+
1706
+ # source://tapioca//lib/tapioca/gem/listeners/remove_empty_payload_scopes.rb#7
1707
+ class Tapioca::Gem::Listeners::RemoveEmptyPayloadScopes < ::Tapioca::Gem::Listeners::Base
1708
+ include ::Tapioca::Runtime::AttachedClassOf
1709
+ include ::Tapioca::Runtime::Reflection
1710
+
1711
+ private
1712
+
1713
+ # source://tapioca//lib/tapioca/gem/listeners/remove_empty_payload_scopes.rb#20
1714
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1715
+ def ignore?(event); end
1716
+
1717
+ # source://tapioca//lib/tapioca/gem/listeners/remove_empty_payload_scopes.rb#15
1718
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1719
+ def on_scope(event); end
1720
+ end
1721
+
1722
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_enums.rb#7
1723
+ class Tapioca::Gem::Listeners::SorbetEnums < ::Tapioca::Gem::Listeners::Base
1724
+ private
1725
+
1726
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_enums.rb#28
1727
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1728
+ def ignore?(event); end
1729
+
1730
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_enums.rb#13
1731
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1732
+ def on_scope(event); end
1733
+ end
1734
+
1735
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_helpers.rb#7
1736
+ class Tapioca::Gem::Listeners::SorbetHelpers < ::Tapioca::Gem::Listeners::Base
1737
+ include ::Tapioca::Runtime::AttachedClassOf
1738
+ include ::Tapioca::Runtime::Reflection
1739
+
1740
+ private
1741
+
1742
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_helpers.rb#27
1743
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1744
+ def ignore?(event); end
1745
+
1746
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_helpers.rb#15
1747
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1748
+ def on_scope(event); end
1749
+ end
1750
+
1751
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_props.rb#7
1752
+ class Tapioca::Gem::Listeners::SorbetProps < ::Tapioca::Gem::Listeners::Base
1753
+ include ::Tapioca::SorbetHelper
1754
+ include ::Tapioca::RBIHelper
1755
+
1756
+ private
1757
+
1758
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_props.rb#33
1759
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1760
+ def ignore?(event); end
1761
+
1762
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_props.rb#14
1763
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1764
+ def on_scope(event); end
1765
+ end
1766
+
1767
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_required_ancestors.rb#7
1768
+ class Tapioca::Gem::Listeners::SorbetRequiredAncestors < ::Tapioca::Gem::Listeners::Base
1769
+ private
1770
+
1771
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_required_ancestors.rb#23
1772
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1773
+ def ignore?(event); end
1774
+
1775
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_required_ancestors.rb#13
1776
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1777
+ def on_scope(event); end
1778
+ end
1779
+
1780
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#7
1781
+ class Tapioca::Gem::Listeners::SorbetSignatures < ::Tapioca::Gem::Listeners::Base
1782
+ include ::Tapioca::Runtime::AttachedClassOf
1783
+ include ::Tapioca::Runtime::Reflection
1784
+ include ::Tapioca::SorbetHelper
1785
+ include ::Tapioca::RBIHelper
1786
+
1787
+ private
1788
+
1789
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#26
1790
+ sig { params(signature: T.untyped, parameters: T::Array[[::Symbol, ::String]]).returns(::RBI::Sig) }
1791
+ def compile_signature(signature, parameters); end
1792
+
1793
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#79
1794
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1795
+ def ignore?(event); end
1796
+
1797
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#18
1798
+ sig { override.params(event: ::Tapioca::Gem::MethodNodeAdded).void }
1799
+ def on_method(event); end
1800
+
1801
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#68
1802
+ sig { params(signature: T.untyped).returns(T::Boolean) }
1803
+ def signature_final?(signature); end
1804
+ end
1805
+
1806
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#13
1807
+ Tapioca::Gem::Listeners::SorbetSignatures::TYPE_PARAMETER_MATCHER = T.let(T.unsafe(nil), Regexp)
1808
+
1809
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#7
1810
+ class Tapioca::Gem::Listeners::SorbetTypeVariables < ::Tapioca::Gem::Listeners::Base
1811
+ include ::Tapioca::Runtime::AttachedClassOf
1812
+ include ::Tapioca::Runtime::Reflection
1813
+
1814
+ private
1815
+
1816
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#27
1817
+ sig { params(tree: ::RBI::Tree, constant: ::Module).void }
1818
+ def compile_type_variable_declarations(tree, constant); end
1819
+
1820
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#63
1821
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1822
+ def ignore?(event); end
1823
+
1824
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#50
1825
+ sig { params(type_variable: ::Tapioca::TypeVariableModule).returns(T.nilable(::RBI::Node)) }
1826
+ def node_from_type_variable(type_variable); end
1827
+
1828
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#15
1829
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1830
+ def on_scope(event); end
1831
+ end
1832
+
1833
+ # source://tapioca//lib/tapioca/gem/listeners/source_location.rb#7
1834
+ class Tapioca::Gem::Listeners::SourceLocation < ::Tapioca::Gem::Listeners::Base
1835
+ private
1836
+
1837
+ # source://tapioca//lib/tapioca/gem/listeners/source_location.rb#41
1838
+ sig { params(node: ::RBI::NodeWithComments, file: T.nilable(::String), line: T.nilable(::Integer)).void }
1839
+ def add_source_location_comment(node, file, line); end
1840
+
1841
+ # source://tapioca//lib/tapioca/gem/listeners/source_location.rb#13
1842
+ sig { override.params(event: ::Tapioca::Gem::ConstNodeAdded).void }
1843
+ def on_const(event); end
1844
+
1845
+ # source://tapioca//lib/tapioca/gem/listeners/source_location.rb#35
1846
+ sig { override.params(event: ::Tapioca::Gem::MethodNodeAdded).void }
1847
+ def on_method(event); end
1848
+
1849
+ # source://tapioca//lib/tapioca/gem/listeners/source_location.rb#19
1850
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1851
+ def on_scope(event); end
1852
+ end
1853
+
1854
+ # source://tapioca//lib/tapioca/gem/listeners/subconstants.rb#7
1855
+ class Tapioca::Gem::Listeners::Subconstants < ::Tapioca::Gem::Listeners::Base
1856
+ include ::Tapioca::Runtime::AttachedClassOf
1857
+ include ::Tapioca::Runtime::Reflection
1858
+
1859
+ private
1860
+
1861
+ # source://tapioca//lib/tapioca/gem/listeners/subconstants.rb#36
1862
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1863
+ def ignore?(event); end
1864
+
1865
+ # source://tapioca//lib/tapioca/gem/listeners/subconstants.rb#15
1866
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1867
+ def on_scope(event); end
1868
+ end
1869
+
1870
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#7
1871
+ class Tapioca::Gem::Listeners::YardDoc < ::Tapioca::Gem::Listeners::Base
1872
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#27
1873
+ sig { params(pipeline: ::Tapioca::Gem::Pipeline).void }
1874
+ def initialize(pipeline); end
1875
+
1876
+ private
1877
+
1878
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#55
1879
+ sig { params(name: ::String, sigs: T::Array[::RBI::Sig]).returns(T::Array[::RBI::Comment]) }
1880
+ def documentation_comments(name, sigs: T.unsafe(nil)); end
1881
+
1882
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#99
1883
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1884
+ def ignore?(event); end
1885
+
1886
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#36
1887
+ sig { override.params(event: ::Tapioca::Gem::ConstNodeAdded).void }
1888
+ def on_const(event); end
1889
+
1890
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#46
1891
+ sig { override.params(event: ::Tapioca::Gem::MethodNodeAdded).void }
1892
+ def on_method(event); end
1893
+
1894
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#41
1895
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1896
+ def on_scope(event); end
1897
+ end
1898
+
1899
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#10
1900
+ Tapioca::Gem::Listeners::YardDoc::IGNORED_COMMENTS = T.let(T.unsafe(nil), Array)
1901
+
1902
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#24
1903
+ Tapioca::Gem::Listeners::YardDoc::IGNORED_SIG_TAGS = T.let(T.unsafe(nil), Array)
1904
+
1905
+ # source://tapioca//lib/tapioca/gem/events.rb#105
1906
+ class Tapioca::Gem::MethodNodeAdded < ::Tapioca::Gem::NodeAdded
1907
+ # source://tapioca//lib/tapioca/gem/events.rb#130
1908
+ sig do
1909
+ params(
1910
+ symbol: ::String,
1911
+ constant: ::Module,
1912
+ method: ::UnboundMethod,
1913
+ node: ::RBI::Method,
1914
+ signature: T.untyped,
1915
+ parameters: T::Array[[::Symbol, ::String]]
1916
+ ).void
1917
+ end
1918
+ def initialize(symbol, constant, method, node, signature, parameters); end
1919
+
1920
+ # source://tapioca//lib/tapioca/gem/events.rb#109
1921
+ sig { returns(::UnboundMethod) }
1922
+ def method; end
1923
+
1924
+ # source://tapioca//lib/tapioca/gem/events.rb#112
1925
+ sig { returns(::RBI::Method) }
1926
+ def node; end
1927
+
1928
+ # source://tapioca//lib/tapioca/gem/events.rb#118
1929
+ sig { returns(T::Array[[::Symbol, ::String]]) }
1930
+ def parameters; end
1931
+
1932
+ # source://tapioca//lib/tapioca/gem/events.rb#115
1933
+ sig { returns(T.untyped) }
1934
+ def signature; end
1935
+ end
1936
+
1937
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1938
+ #
1939
+ # source://tapioca//lib/tapioca/gem/events.rb#57
1940
+ class Tapioca::Gem::NodeAdded < ::Tapioca::Gem::Event
1941
+ abstract!
1942
+
1943
+ # source://tapioca//lib/tapioca/gem/events.rb#70
1944
+ sig { params(symbol: ::String, constant: ::Module).void }
1945
+ def initialize(symbol, constant); end
1946
+
1947
+ # source://tapioca//lib/tapioca/gem/events.rb#67
1948
+ sig { returns(::Module) }
1949
+ def constant; end
1950
+
1951
+ # source://tapioca//lib/tapioca/gem/events.rb#64
1952
+ sig { returns(::String) }
1953
+ def symbol; end
1954
+ end
1955
+
1956
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#6
1957
+ class Tapioca::Gem::Pipeline
1958
+ include ::Tapioca::Runtime::AttachedClassOf
1959
+ include ::Tapioca::Runtime::Reflection
1960
+ include ::Tapioca::SorbetHelper
1961
+ include ::Tapioca::RBIHelper
1962
+
1963
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#27
1964
+ sig do
1965
+ params(
1966
+ gem: ::Tapioca::Gemfile::GemSpec,
1967
+ error_handler: T.proc.params(error: ::String).void,
1968
+ include_doc: T::Boolean,
1969
+ include_loc: T::Boolean
1970
+ ).void
1971
+ end
1972
+ def initialize(gem, error_handler:, include_doc: T.unsafe(nil), include_loc: T.unsafe(nil)); end
1973
+
1974
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#64
1975
+ sig { returns(::RBI::Tree) }
1976
+ def compile; end
1977
+
1978
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#135
1979
+ sig { params(name: T.any(::String, ::Symbol)).returns(T::Boolean) }
1980
+ def constant_in_gem?(name); end
1981
+
1982
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#17
1983
+ sig { returns(T.proc.params(error: ::String).void) }
1984
+ def error_handler; end
1985
+
1986
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#14
1987
+ sig { returns(::Tapioca::Gemfile::GemSpec) }
1988
+ def gem; end
1989
+
1990
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#153
1991
+ sig { params(method: ::UnboundMethod).returns(T::Boolean) }
1992
+ def method_in_gem?(method); end
1993
+
1994
+ # Helpers
1995
+ #
1996
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#163
1997
+ sig { params(constant: ::Module).returns(T.nilable(::String)) }
1998
+ def name_of(constant); end
1999
+
2000
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#87
2001
+ sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Const).void }
2002
+ def push_const(symbol, constant, node); end
2003
+
2004
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#77
2005
+ sig { params(symbol: ::String, constant: ::BasicObject).void }
2006
+ def push_constant(symbol, constant); end
2007
+
2008
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#82
2009
+ sig { params(symbol: ::String, constant: ::Module).void }
2010
+ def push_foreign_constant(symbol, constant); end
2011
+
2012
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#101
2013
+ sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void }
2014
+ def push_foreign_scope(symbol, constant, node); end
2015
+
2016
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#115
2017
+ sig do
2018
+ params(
2019
+ symbol: ::String,
2020
+ constant: ::Module,
2021
+ method: ::UnboundMethod,
2022
+ node: ::RBI::Method,
2023
+ signature: T.untyped,
2024
+ parameters: T::Array[[::Symbol, ::String]]
2025
+ ).void
2026
+ end
2027
+ def push_method(symbol, constant, method, node, signature, parameters); end
2028
+
2029
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#94
2030
+ sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void }
2031
+ def push_scope(symbol, constant, node); end
2032
+
2033
+ # Events handling
2034
+ #
2035
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#72
2036
+ sig { params(symbol: ::String).void }
2037
+ def push_symbol(symbol); end
2038
+
2039
+ # Constants and properties filtering
2040
+ #
2041
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#122
2042
+ sig { params(symbol_name: ::String).returns(T::Boolean) }
2043
+ def symbol_in_payload?(symbol_name); end
2044
+
2045
+ private
2046
+
2047
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#456
2048
+ sig { params(name: ::String).void }
2049
+ def add_to_alias_namespace(name); end
2050
+
2051
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#461
2052
+ sig { params(name: ::String).returns(T::Boolean) }
2053
+ def alias_namespaced?(name); end
2054
+
2055
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#260
2056
+ sig { params(name: ::String, constant: ::Module).void }
2057
+ def compile_alias(name, constant); end
2058
+
2059
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#246
2060
+ sig { params(symbol: ::String, constant: ::BasicObject).void }
2061
+ def compile_constant(symbol, constant); end
2062
+
2063
+ # Compiling
2064
+ #
2065
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#235
2066
+ sig { params(symbol: ::String, constant: ::Module).void }
2067
+ def compile_foreign_constant(symbol, constant); end
2068
+
2069
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#314
2070
+ sig { params(name: ::String, constant: ::Module).void }
2071
+ def compile_module(name, constant); end
2072
+
2073
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#281
2074
+ sig { params(name: ::String, value: ::BasicObject).void }
2075
+ def compile_object(name, value); end
2076
+
2077
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#325
2078
+ sig { params(name: ::String, constant: ::Module).returns(::RBI::Scope) }
2079
+ def compile_scope(name, constant); end
2080
+
2081
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#339
2082
+ sig { params(constant: T::Class[T.anything]).returns(T.nilable(::String)) }
2083
+ def compile_superclass(constant); end
2084
+
2085
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#437
2086
+ sig { params(constant: ::Module, strict: T::Boolean).returns(T::Boolean) }
2087
+ def defined_in_gem?(constant, strict: T.unsafe(nil)); end
2088
+
2089
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#193
2090
+ sig { params(event: ::Tapioca::Gem::Event).void }
2091
+ def dispatch(event); end
2092
+
2093
+ # Helpers
2094
+ #
2095
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#480
2096
+ sig { params(constant: T.all(::Module, ::T::Generic)).returns(::String) }
2097
+ def generic_name_of(constant); end
2098
+
2099
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#449
2100
+ sig { params(constant: ::Module).returns(T::Set[::String]) }
2101
+ def get_file_candidates(constant); end
2102
+
2103
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#178
2104
+ sig { params(gem: ::Tapioca::Gemfile::GemSpec).returns(T::Set[::String]) }
2105
+ def load_bootstrap_symbols(gem); end
2106
+
2107
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#496
2108
+ sig { params(constant: ::Module, class_name: T.nilable(::String)).returns(T.nilable(::String)) }
2109
+ def name_of_proxy_target(constant, class_name); end
2110
+
2111
+ # Events handling
2112
+ #
2113
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#188
2114
+ sig { returns(::Tapioca::Gem::Event) }
2115
+ def next_event; end
2116
+
2117
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#216
2118
+ sig { params(event: ::Tapioca::Gem::ConstantFound).void }
2119
+ def on_constant(event); end
2120
+
2121
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#228
2122
+ sig { params(event: ::Tapioca::Gem::NodeAdded).void }
2123
+ def on_node(event); end
2124
+
2125
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#207
2126
+ sig { params(event: ::Tapioca::Gem::SymbolFound).void }
2127
+ def on_symbol(event); end
2128
+
2129
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#468
2130
+ sig { params(name: ::String).void }
2131
+ def seen!(name); end
2132
+
2133
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#473
2134
+ sig { params(name: ::String).returns(T::Boolean) }
2135
+ def seen?(name); end
2136
+
2137
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#407
2138
+ sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2139
+ def skip_alias?(name, constant); end
2140
+
2141
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#395
2142
+ sig { params(name: ::String, constant: T.anything).returns(T::Boolean) }
2143
+ def skip_constant?(name, constant); end
2144
+
2145
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#424
2146
+ sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2147
+ def skip_foreign_constant?(name, constant); end
2148
+
2149
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#429
2150
+ sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2151
+ def skip_module?(name, constant); end
2152
+
2153
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#416
2154
+ sig { params(name: ::String, constant: ::BasicObject).returns(T::Boolean) }
2155
+ def skip_object?(name, constant); end
2156
+
2157
+ # Constants and properties filtering
2158
+ #
2159
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#390
2160
+ sig { params(name: ::String).returns(T::Boolean) }
2161
+ def skip_symbol?(name); end
2162
+ end
2163
+
2164
+ # this looks something like:
2165
+ # "(eval at /path/to/file.rb:123)"
2166
+ # and we are just interested in the "/path/to/file.rb" part
2167
+ #
2168
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#132
2169
+ Tapioca::Gem::Pipeline::EVAL_SOURCE_FILE_PATTERN = T.let(T.unsafe(nil), Regexp)
2170
+
2171
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#11
2172
+ Tapioca::Gem::Pipeline::IGNORED_SYMBOLS = T.let(T.unsafe(nil), Array)
2173
+
2174
+ # source://tapioca//lib/tapioca/gem/events.rb#90
2175
+ class Tapioca::Gem::ScopeNodeAdded < ::Tapioca::Gem::NodeAdded
2176
+ # source://tapioca//lib/tapioca/gem/events.rb#97
2177
+ sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void }
2178
+ def initialize(symbol, constant, node); end
2179
+
2180
+ # source://tapioca//lib/tapioca/gem/events.rb#94
2181
+ sig { returns(::RBI::Scope) }
2182
+ def node; end
2183
+ end
2184
+
2185
+ # source://tapioca//lib/tapioca/gem/events.rb#13
2186
+ class Tapioca::Gem::SymbolFound < ::Tapioca::Gem::Event
2187
+ # source://tapioca//lib/tapioca/gem/events.rb#20
2188
+ sig { params(symbol: ::String).void }
2189
+ def initialize(symbol); end
2190
+
2191
+ # source://tapioca//lib/tapioca/gem/events.rb#17
2192
+ sig { returns(::String) }
2193
+ def symbol; end
2194
+ end
2195
+
2196
+ # source://tapioca//lib/tapioca/helpers/gem_helper.rb#5
2197
+ module Tapioca::GemHelper
2198
+ # source://tapioca//lib/tapioca/helpers/gem_helper.rb#9
2199
+ sig { params(app_dir: T.any(::Pathname, ::String), full_gem_path: ::String).returns(T::Boolean) }
2200
+ def gem_in_app_dir?(app_dir, full_gem_path); end
2201
+
2202
+ # source://tapioca//lib/tapioca/helpers/gem_helper.rb#17
2203
+ sig { params(full_gem_path: ::String).returns(T::Boolean) }
2204
+ def gem_in_bundle_path?(full_gem_path); end
2205
+
2206
+ # source://tapioca//lib/tapioca/helpers/gem_helper.rb#22
2207
+ sig { params(full_gem_path: ::String).returns(T::Boolean) }
2208
+ def gem_in_ruby_path?(full_gem_path); end
2209
+
2210
+ # source://tapioca//lib/tapioca/helpers/gem_helper.rb#27
2211
+ sig { params(path: T.any(::Pathname, ::String)).returns(::String) }
2212
+ def to_realpath(path); end
2213
+
2214
+ private
2215
+
2216
+ # source://tapioca//lib/tapioca/helpers/gem_helper.rb#36
2217
+ sig { params(path: T.any(::Pathname, ::String), dir: T.any(::Pathname, ::String)).returns(T::Boolean) }
2218
+ def path_in_dir?(path, dir); end
2219
+ end
2220
+
2221
+ # source://tapioca//lib/tapioca/gem_info.rb#5
2222
+ class Tapioca::GemInfo < ::T::Struct
2223
+ const :name, ::String
2224
+ const :version, ::Gem::Version
2225
+
2226
+ class << self
2227
+ # source://tapioca//lib/tapioca/gem_info.rb#13
2228
+ sig { params(spec: ::Bundler::LazySpecification).returns(::Tapioca::GemInfo) }
2229
+ def from_spec(spec); end
2230
+
2231
+ # source://sorbet-runtime/0.5.11725/lib/types/struct.rb#13
2232
+ def inherited(s); end
2233
+ end
2234
+ end
2235
+
2236
+ # source://tapioca//lib/tapioca/gemfile.rb#7
2237
+ class Tapioca::Gemfile
2238
+ # source://tapioca//lib/tapioca/gemfile.rb#27
2239
+ sig { params(excluded_gems: T::Array[::String]).void }
2240
+ def initialize(excluded_gems); end
2241
+
2242
+ # source://tapioca//lib/tapioca/gemfile.rb#18
2243
+ sig { returns(::Bundler::Definition) }
2244
+ def definition; end
2245
+
2246
+ # source://tapioca//lib/tapioca/gemfile.rb#21
2247
+ sig { returns(T::Array[::Tapioca::Gemfile::GemSpec]) }
2248
+ def dependencies; end
2249
+
2250
+ # source://tapioca//lib/tapioca/gemfile.rb#40
2251
+ sig { params(gem_name: ::String).returns(T.nilable(::Tapioca::Gemfile::GemSpec)) }
2252
+ def gem(gem_name); end
2253
+
2254
+ # source://tapioca//lib/tapioca/gemfile.rb#24
2255
+ sig { returns(T::Array[::String]) }
2256
+ def missing_specs; end
2257
+
2258
+ # source://tapioca//lib/tapioca/gemfile.rb#45
2259
+ sig { void }
2260
+ def require_bundle; end
2261
+
2262
+ private
2263
+
2264
+ # source://tapioca//lib/tapioca/gemfile.rb#101
2265
+ sig { returns(::String) }
2266
+ def dir; end
2267
+
2268
+ # source://tapioca//lib/tapioca/gemfile.rb#54
2269
+ sig { returns(::File) }
2270
+ def gemfile; end
2271
+
2272
+ # source://tapioca//lib/tapioca/gemfile.rb#96
2273
+ sig { returns(T::Array[::Symbol]) }
2274
+ def groups; end
2275
+
2276
+ # source://tapioca//lib/tapioca/gemfile.rb#57
2277
+ sig { returns([T::Array[::Tapioca::Gemfile::GemSpec], T::Array[::String]]) }
2278
+ def load_dependencies; end
2279
+
2280
+ # @return [File]
2281
+ #
2282
+ # source://tapioca//lib/tapioca/gemfile.rb#54
2283
+ def lockfile; end
2284
+
2285
+ # source://tapioca//lib/tapioca/gemfile.rb#68
2286
+ sig { returns([T::Enumerable[T.any(::Bundler::StubSpecification, ::Gem::Specification)], T::Array[::String]]) }
2287
+ def materialize_deps; end
2288
+
2289
+ # source://tapioca//lib/tapioca/gemfile.rb#91
2290
+ sig { returns(::Bundler::Runtime) }
2291
+ def runtime; end
2292
+ end
2293
+
2294
+ # source://tapioca//lib/tapioca/gemfile.rb#105
2295
+ class Tapioca::Gemfile::GemSpec
2296
+ include ::Tapioca::GemHelper
2297
+
2298
+ # source://tapioca//lib/tapioca/gemfile.rb#145
2299
+ sig { params(spec: T.any(::Bundler::StubSpecification, ::Gem::Specification)).void }
2300
+ def initialize(spec); end
2301
+
2302
+ # source://tapioca//lib/tapioca/gemfile.rb#155
2303
+ sig { params(other: ::BasicObject).returns(T::Boolean) }
2304
+ def ==(other); end
2305
+
2306
+ # source://tapioca//lib/tapioca/gemfile.rb#180
2307
+ sig { params(path: ::String).returns(T::Boolean) }
2308
+ def contains_path?(path); end
2309
+
2310
+ # source://tapioca//lib/tapioca/gemfile.rb#170
2311
+ sig { returns(T::Array[::Gem::Dependency]) }
2312
+ def dependencies; end
2313
+
2314
+ # source://tapioca//lib/tapioca/gemfile.rb#210
2315
+ sig { returns(T::Boolean) }
2316
+ def export_rbi_files?; end
2317
+
2318
+ # source://tapioca//lib/tapioca/gemfile.rb#205
2319
+ sig { returns(T::Array[::String]) }
2320
+ def exported_rbi_files; end
2321
+
2322
+ # source://tapioca//lib/tapioca/gemfile.rb#215
2323
+ sig { returns(::RBI::MergeTree) }
2324
+ def exported_rbi_tree; end
2325
+
2326
+ # source://tapioca//lib/tapioca/gemfile.rb#142
2327
+ sig { returns(T::Array[::Pathname]) }
2328
+ def files; end
2329
+
2330
+ # source://tapioca//lib/tapioca/gemfile.rb#139
2331
+ sig { returns(::String) }
2332
+ def full_gem_path; end
2333
+
2334
+ # source://tapioca//lib/tapioca/gemfile.rb#160
2335
+ sig { params(gemfile_dir: ::String).returns(T::Boolean) }
2336
+ def ignore?(gemfile_dir); end
2337
+
2338
+ # source://tapioca//lib/tapioca/gemfile.rb#165
2339
+ sig { returns(::String) }
2340
+ def name; end
2341
+
2342
+ # source://tapioca//lib/tapioca/gemfile.rb#189
2343
+ sig { void }
2344
+ def parse_yard_docs; end
2345
+
2346
+ # source://tapioca//lib/tapioca/gemfile.rb#175
2347
+ sig { returns(::String) }
2348
+ def rbi_file_name; end
2349
+
2350
+ # source://tapioca//lib/tapioca/gemfile.rb#227
2351
+ sig { params(file: ::Pathname).returns(::Pathname) }
2352
+ def relative_path_for(file); end
2353
+
2354
+ # @return [String]
2355
+ #
2356
+ # source://tapioca//lib/tapioca/gemfile.rb#139
2357
+ def version; end
2358
+
2359
+ private
2360
+
2361
+ # source://tapioca//lib/tapioca/gemfile.rb#238
2362
+ sig { returns(T::Array[::Pathname]) }
2363
+ def collect_files; end
2364
+
2365
+ # source://tapioca//lib/tapioca/gemfile.rb#253
2366
+ sig { returns(T.nilable(T::Boolean)) }
2367
+ def default_gem?; end
2368
+
2369
+ # source://tapioca//lib/tapioca/gemfile.rb#312
2370
+ sig { returns(T::Boolean) }
2371
+ def gem_ignored?; end
2372
+
2373
+ # source://tapioca//lib/tapioca/gemfile.rb#291
2374
+ sig { params(path: ::String).returns(T::Boolean) }
2375
+ def has_parent_gemspec?(path); end
2376
+
2377
+ # source://tapioca//lib/tapioca/gemfile.rb#258
2378
+ sig { returns(::Regexp) }
2379
+ def require_paths_prefix_matcher; end
2380
+
2381
+ # source://tapioca//lib/tapioca/gemfile.rb#270
2382
+ sig { params(file: ::String).returns(::Pathname) }
2383
+ def resolve_to_ruby_lib_dir(file); end
2384
+
2385
+ # source://tapioca//lib/tapioca/gemfile.rb#284
2386
+ sig { returns(::String) }
2387
+ def version_string; end
2388
+
2389
+ class << self
2390
+ # source://tapioca//lib/tapioca/gemfile.rb#113
2391
+ sig { returns(T::Hash[::String, ::Tapioca::Gemfile::GemSpec]) }
2392
+ def spec_lookup_by_file_path; end
2393
+ end
2394
+ end
2395
+
2396
+ # source://tapioca//lib/tapioca/gemfile.rb#125
2397
+ Tapioca::Gemfile::GemSpec::IGNORED_GEMS = T.let(T.unsafe(nil), Array)
2398
+
2399
+ # source://tapioca//lib/tapioca/gemfile.rb#10
2400
+ Tapioca::Gemfile::Spec = T.type_alias { T.any(::Bundler::StubSpecification, ::Gem::Specification) }
2401
+
2402
+ # source://tapioca//lib/tapioca.rb#33
2403
+ Tapioca::LIB_ROOT_DIR = T.let(T.unsafe(nil), String)
2404
+
2405
+ # source://tapioca//lib/tapioca/loaders/loader.rb#5
2406
+ module Tapioca::Loaders; end
2407
+
2408
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#6
2409
+ class Tapioca::Loaders::Dsl < ::Tapioca::Loaders::Loader
2410
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#60
2411
+ sig do
2412
+ params(
2413
+ tapioca_path: ::String,
2414
+ eager_load: T::Boolean,
2415
+ app_root: ::String,
2416
+ halt_upon_load_error: T::Boolean
2417
+ ).void
2418
+ end
2419
+ def initialize(tapioca_path:, eager_load: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end
2420
+
2421
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#43
2422
+ sig { override.void }
2423
+ def load; end
2424
+
2425
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#50
2426
+ sig { void }
2427
+ def load_dsl_extensions_and_compilers; end
2428
+
2429
+ protected
2430
+
2431
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#110
2432
+ sig { void }
2433
+ def load_application; end
2434
+
2435
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#85
2436
+ sig { void }
2437
+ def load_dsl_compilers; end
2438
+
2439
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#70
2440
+ sig { void }
2441
+ def load_dsl_extensions; end
2442
+
2443
+ class << self
2444
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#21
2445
+ sig do
2446
+ params(
2447
+ tapioca_path: ::String,
2448
+ eager_load: T::Boolean,
2449
+ app_root: ::String,
2450
+ halt_upon_load_error: T::Boolean,
2451
+ lsp_addon: T::Boolean
2452
+ ).void
2453
+ end
2454
+ def load_application(tapioca_path:, eager_load: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil), lsp_addon: T.unsafe(nil)); end
2455
+ end
2456
+ end
2457
+
2458
+ # source://tapioca//lib/tapioca/loaders/gem.rb#6
2459
+ class Tapioca::Loaders::Gem < ::Tapioca::Loaders::Loader
2460
+ # source://tapioca//lib/tapioca/loaders/gem.rb#49
2461
+ sig do
2462
+ params(
2463
+ bundle: ::Tapioca::Gemfile,
2464
+ prerequire: T.nilable(::String),
2465
+ postrequire: ::String,
2466
+ default_command: ::String,
2467
+ halt_upon_load_error: T::Boolean
2468
+ ).void
2469
+ end
2470
+ def initialize(bundle:, prerequire:, postrequire:, default_command:, halt_upon_load_error:); end
2471
+
2472
+ # source://tapioca//lib/tapioca/loaders/gem.rb#34
2473
+ sig { override.void }
2474
+ def load; end
2475
+
2476
+ protected
2477
+
2478
+ # source://tapioca//lib/tapioca/loaders/gem.rb#80
2479
+ sig { params(file: ::String, error: ::LoadError).void }
2480
+ def explain_failed_require(file, error); end
2481
+
2482
+ # source://tapioca//lib/tapioca/loaders/gem.rb#60
2483
+ sig { void }
2484
+ def require_gem_file; end
2485
+
2486
+ class << self
2487
+ # source://tapioca//lib/tapioca/loaders/gem.rb#21
2488
+ sig do
2489
+ params(
2490
+ bundle: ::Tapioca::Gemfile,
2491
+ prerequire: T.nilable(::String),
2492
+ postrequire: ::String,
2493
+ default_command: ::String,
2494
+ halt_upon_load_error: T::Boolean
2495
+ ).void
2496
+ end
2497
+ def load_application(bundle:, prerequire:, postrequire:, default_command:, halt_upon_load_error:); end
2498
+ end
2499
+ end
2500
+
2501
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
2502
+ #
2503
+ # source://tapioca//lib/tapioca/loaders/loader.rb#6
2504
+ class Tapioca::Loaders::Loader
2505
+ include ::Thor::Base
2506
+ include ::Thor::Invocation
2507
+ include ::Thor::Shell
2508
+ include ::Tapioca::CliHelper
2509
+ include ::Tapioca::GemHelper
2510
+ extend ::Thor::Base::ClassMethods
2511
+ extend ::Thor::Invocation::ClassMethods
2512
+
2513
+ abstract!
2514
+
2515
+ # @abstract
2516
+ #
2517
+ # source://tapioca//lib/tapioca/loaders/loader.rb#17
2518
+ sig { abstract.void }
2519
+ def load; end
2520
+
2521
+ private
2522
+
2523
+ # Rails 7.2 renamed `eager_load_paths` to `all_eager_load_paths`, which maintains the same original functionality.
2524
+ # The `eager_load_paths` method still exists, but doesn't return all paths anymore and causes Tapioca to miss some
2525
+ # engine paths. The following commit is the change:
2526
+ # https://github.com/rails/rails/commit/ebfca905db14020589c22e6937382e6f8f687664
2527
+ #
2528
+ # @param engine [T.class_of(Rails::Engine)]
2529
+ # @return [Array<String>]
2530
+ #
2531
+ # source://tapioca//lib/tapioca/loaders/loader.rb#234
2532
+ def eager_load_paths(engine); end
2533
+
2534
+ # source://tapioca//lib/tapioca/loaders/loader.rb#199
2535
+ sig { void }
2536
+ def eager_load_rails_app; end
2537
+
2538
+ # @return [Array<T.class_of(Rails::Engine)>]
2539
+ #
2540
+ # source://tapioca//lib/tapioca/loaders/loader.rb#178
2541
+ def engines; end
2542
+
2543
+ # source://tapioca//lib/tapioca/loaders/loader.rb#29
2544
+ sig do
2545
+ params(
2546
+ gemfile: ::Tapioca::Gemfile,
2547
+ initialize_file: T.nilable(::String),
2548
+ require_file: T.nilable(::String),
2549
+ halt_upon_load_error: T::Boolean
2550
+ ).void
2551
+ end
2552
+ def load_bundle(gemfile, initialize_file, require_file, halt_upon_load_error); end
2553
+
2554
+ # source://tapioca//lib/tapioca/loaders/loader.rb#136
2555
+ sig { void }
2556
+ def load_engines_in_classic_mode; end
2557
+
2558
+ # source://tapioca//lib/tapioca/loaders/loader.rb#114
2559
+ sig { void }
2560
+ def load_engines_in_zeitwerk_mode; end
2561
+
2562
+ # source://tapioca//lib/tapioca/loaders/loader.rb#49
2563
+ sig do
2564
+ params(
2565
+ environment_load: T::Boolean,
2566
+ eager_load: T::Boolean,
2567
+ app_root: ::String,
2568
+ halt_upon_load_error: T::Boolean
2569
+ ).void
2570
+ end
2571
+ 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
2572
+
2573
+ # source://tapioca//lib/tapioca/loaders/loader.rb#89
2574
+ sig { void }
2575
+ def load_rails_engines; end
2576
+
2577
+ # source://tapioca//lib/tapioca/loaders/loader.rb#220
2578
+ sig { params(file: T.nilable(::String)).void }
2579
+ def require_helper(file); end
2580
+
2581
+ # source://tapioca//lib/tapioca/loaders/loader.rb#103
2582
+ def run_initializers; end
2583
+
2584
+ # source://tapioca//lib/tapioca/loaders/loader.rb#192
2585
+ sig { params(path: ::String).void }
2586
+ def safe_require(path); end
2587
+
2588
+ # source://tapioca//lib/tapioca/loaders/loader.rb#161
2589
+ sig { params(blk: T.proc.void).void }
2590
+ def with_rails_application(&blk); end
2591
+
2592
+ # source://tapioca//lib/tapioca/loaders/loader.rb#154
2593
+ sig { returns(T::Boolean) }
2594
+ def zeitwerk_mode?; end
2595
+ end
2596
+
2597
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#5
2598
+ module Tapioca::RBIFilesHelper
2599
+ requires_ancestor { Tapioca::SorbetHelper }
2600
+ requires_ancestor { Thor::Shell }
2601
+
2602
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#48
2603
+ sig do
2604
+ params(
2605
+ index: ::RBI::Index,
2606
+ shim_rbi_dir: ::String,
2607
+ todo_rbi_file: ::String
2608
+ ).returns(T::Hash[::String, T::Array[::RBI::Node]])
2609
+ end
2610
+ def duplicated_nodes_from_index(index, shim_rbi_dir:, todo_rbi_file:); end
2611
+
2612
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#13
2613
+ sig { params(index: ::RBI::Index, kind: ::String, file: ::String).void }
2614
+ def index_rbi(index, kind, file); end
2615
+
2616
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#25
2617
+ sig { params(index: ::RBI::Index, kind: ::String, dir: ::String, number_of_workers: T.nilable(::Integer)).void }
2618
+ def index_rbis(index, kind, dir, number_of_workers:); end
2619
+
2620
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#65
2621
+ sig { params(loc: ::RBI::Loc, path_prefix: T.nilable(::String)).returns(::String) }
2622
+ def location_to_payload_url(loc, path_prefix:); end
2623
+
2624
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#86
2625
+ sig do
2626
+ params(
2627
+ command: ::String,
2628
+ gem_dir: ::String,
2629
+ dsl_dir: ::String,
2630
+ auto_strictness: T::Boolean,
2631
+ gems: T::Array[::Tapioca::Gemfile::GemSpec],
2632
+ compilers: T::Enumerable[T.class_of(Tapioca::Dsl::Compiler)]
2633
+ ).void
2634
+ end
2635
+ def validate_rbi_files(command:, gem_dir:, dsl_dir:, auto_strictness:, gems: T.unsafe(nil), compilers: T.unsafe(nil)); end
2636
+
2637
+ private
2638
+
2639
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#223
2640
+ sig { params(nodes: T::Array[::RBI::Node]).returns(T::Array[::RBI::Scope]) }
2641
+ def extract_empty_scopes(nodes); end
2642
+
2643
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#228
2644
+ sig { params(nodes: T::Array[::RBI::Node]).returns(T::Array[T.any(::RBI::Attr, ::RBI::Method)]) }
2645
+ def extract_methods_and_attrs(nodes); end
2646
+
2647
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#238
2648
+ sig { params(nodes: T::Array[::RBI::Node]).returns(T::Array[T.any(::RBI::Mixin, ::RBI::RequiresAncestor)]) }
2649
+ def extract_mixins(nodes); end
2650
+
2651
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#248
2652
+ sig do
2653
+ params(
2654
+ nodes: T::Array[T.any(::RBI::Attr, ::RBI::Method)]
2655
+ ).returns(T::Array[T.any(::RBI::Attr, ::RBI::Method)])
2656
+ end
2657
+ def extract_nodes_with_sigs(nodes); end
2658
+
2659
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#216
2660
+ sig do
2661
+ params(
2662
+ nodes: T::Array[::RBI::Node],
2663
+ shim_rbi_dir: ::String,
2664
+ todo_rbi_file: ::String
2665
+ ).returns(T::Array[::RBI::Node])
2666
+ end
2667
+ def extract_shims_and_todos(nodes, shim_rbi_dir:, todo_rbi_file:); end
2668
+
2669
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#280
2670
+ sig { params(path: ::String).returns(::String) }
2671
+ def gem_name_from_rbi_path(path); end
2672
+
2673
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#155
2674
+ sig { params(index: ::RBI::Index, files: T::Array[::String], number_of_workers: T.nilable(::Integer)).void }
2675
+ def parse_and_index_files(index, files, number_of_workers:); end
2676
+
2677
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#171
2678
+ sig { params(nodes: T::Array[::RBI::Node], shim_rbi_dir: ::String, todo_rbi_file: ::String).returns(T::Boolean) }
2679
+ def shims_or_todos_have_duplicates?(nodes, shim_rbi_dir:, todo_rbi_file:); end
2680
+
2681
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#253
2682
+ sig { params(errors: T::Array[::Spoom::Sorbet::Errors::Error], gem_dir: ::String).void }
2683
+ def update_gem_rbis_strictnesses(errors, gem_dir); end
2684
+ end
2685
+
2686
+ # source://tapioca//lib/tapioca/rbi_formatter.rb#5
2687
+ class Tapioca::RBIFormatter < ::RBI::Formatter
2688
+ # source://tapioca//lib/tapioca/rbi_formatter.rb#24
2689
+ sig { params(file: ::RBI::File).void }
2690
+ def write_empty_body_comment!(file); end
2691
+
2692
+ # source://tapioca//lib/tapioca/rbi_formatter.rb#15
2693
+ sig { params(file: ::RBI::File, command: ::String, reason: T.nilable(::String)).void }
2694
+ def write_header!(file, command, reason: T.unsafe(nil)); end
2695
+ end
2696
+
2697
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#5
2698
+ module Tapioca::RBIHelper
2699
+ include ::Tapioca::SorbetHelper
2700
+ extend ::Tapioca::SorbetHelper
2701
+ extend ::Tapioca::RBIHelper
2702
+
2703
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#91
2704
+ sig { params(type: ::String).returns(::String) }
2705
+ def as_nilable_type(type); end
2706
+
2707
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#100
2708
+ sig { params(type: ::String).returns(::String) }
2709
+ def as_non_nilable_type(type); end
2710
+
2711
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#72
2712
+ sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
2713
+ def create_block_param(name, type:); end
2714
+
2715
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#62
2716
+ sig { params(name: ::String, type: ::String, default: ::String).returns(::RBI::TypedParam) }
2717
+ def create_kw_opt_param(name, type:, default:); end
2718
+
2719
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#57
2720
+ sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
2721
+ def create_kw_param(name, type:); end
2722
+
2723
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#67
2724
+ sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
2725
+ def create_kw_rest_param(name, type:); end
2726
+
2727
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#47
2728
+ sig { params(name: ::String, type: ::String, default: ::String).returns(::RBI::TypedParam) }
2729
+ def create_opt_param(name, type:, default:); end
2730
+
2731
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#42
2732
+ sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
2733
+ def create_param(name, type:); end
2734
+
2735
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#52
2736
+ sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
2737
+ def create_rest_param(name, type:); end
2738
+
2739
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#77
2740
+ sig { params(param: ::RBI::Param, type: ::String).returns(::RBI::TypedParam) }
2741
+ def create_typed_param(param, type); end
2742
+
2743
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#82
2744
+ sig { params(sig_string: ::String).returns(::String) }
2745
+ def sanitize_signature_types(sig_string); end
2746
+
2747
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#109
2748
+ sig { params(name: ::String).returns(T::Boolean) }
2749
+ def valid_method_name?(name); end
2750
+
2751
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#114
2752
+ sig { params(name: ::String).returns(T::Boolean) }
2753
+ def valid_parameter_name?(name); end
2754
+
2755
+ class << self
2756
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#23
2757
+ sig do
2758
+ params(
2759
+ type: ::String,
2760
+ variance: ::Symbol,
2761
+ fixed: T.nilable(::String),
2762
+ upper: T.nilable(::String),
2763
+ lower: T.nilable(::String)
2764
+ ).returns(::String)
2765
+ end
2766
+ def serialize_type_variable(type, variance, fixed, upper, lower); end
2767
+ end
2768
+ end
2769
+
2770
+ # source://tapioca//lib/tapioca/repo_index.rb#5
2771
+ class Tapioca::RepoIndex
2772
+ # source://tapioca//lib/tapioca/repo_index.rb#26
2773
+ sig { void }
2774
+ def initialize; end
2775
+
2776
+ # source://tapioca//lib/tapioca/repo_index.rb#31
2777
+ sig { params(gem_name: ::String).void }
2778
+ def <<(gem_name); end
2779
+
2780
+ # source://tapioca//lib/tapioca/repo_index.rb#36
2781
+ sig { returns(T::Enumerable[::String]) }
2782
+ def gems; end
2783
+
2784
+ # source://tapioca//lib/tapioca/repo_index.rb#41
2785
+ sig { params(gem_name: ::String).returns(T::Boolean) }
2786
+ def has_gem?(gem_name); end
2787
+
2788
+ class << self
2789
+ # source://tapioca//lib/tapioca/repo_index.rb#18
2790
+ sig { params(hash: T::Hash[::String, T::Hash[T.untyped, T.untyped]]).returns(Tapioca::RepoIndex) }
2791
+ def from_hash(hash); end
2792
+
2793
+ # source://tapioca//lib/tapioca/repo_index.rb#13
2794
+ sig { params(json: ::String).returns(Tapioca::RepoIndex) }
2795
+ def from_json(json); end
2796
+ end
2797
+ end
2798
+
2799
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#5
2800
+ module Tapioca::Runtime; end
2801
+
2802
+ # This module should only be included when running versions of Ruby
2803
+ # older than 3.2. Because the Class#attached_object method is not
2804
+ # available, it implements finding the attached class of a singleton
2805
+ # class by iterating through ObjectSpace.
2806
+ module Tapioca::Runtime::AttachedClassOf
2807
+ # source://tapioca//lib/tapioca/runtime/attached_class_of_32.rb#14
2808
+ sig { params(singleton_class: ::Class).returns(T.nilable(::Module)) }
2809
+ def attached_class_of(singleton_class); end
2810
+ end
2811
+
2812
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#6
2813
+ class Tapioca::Runtime::DynamicMixinCompiler
2814
+ include ::Tapioca::Runtime::AttachedClassOf
2815
+ include ::Tapioca::Runtime::Reflection
2816
+
2817
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#20
2818
+ sig { params(constant: ::Module).void }
2819
+ def initialize(constant); end
2820
+
2821
+ # @return [Array<Symbol>]
2822
+ #
2823
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#14
2824
+ def class_attribute_predicates; end
2825
+
2826
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#14
2827
+ sig { returns(T::Array[::Symbol]) }
2828
+ def class_attribute_readers; end
2829
+
2830
+ # @return [Array<Symbol>]
2831
+ #
2832
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#14
2833
+ def class_attribute_writers; end
2834
+
2835
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#137
2836
+ sig { params(tree: ::RBI::Tree).void }
2837
+ def compile_class_attributes(tree); end
2838
+
2839
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#180
2840
+ sig { params(tree: ::RBI::Tree).returns([T::Array[::Module], T::Array[::Module]]) }
2841
+ def compile_mixes_in_class_methods(tree); end
2842
+
2843
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#11
2844
+ sig { returns(T::Array[::Module]) }
2845
+ def dynamic_extends; end
2846
+
2847
+ # @return [Array<Module>]
2848
+ #
2849
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#11
2850
+ def dynamic_includes; end
2851
+
2852
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#132
2853
+ sig { returns(T::Boolean) }
2854
+ def empty_attributes?; end
2855
+
2856
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#222
2857
+ sig { params(qualified_mixin_name: ::String).returns(T::Boolean) }
2858
+ def filtered_mixin?(qualified_mixin_name); end
2859
+
2860
+ # @return [Array<Symbol>]
2861
+ #
2862
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#17
2863
+ def instance_attribute_predicates; end
2864
+
2865
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#17
2866
+ sig { returns(T::Array[::Symbol]) }
2867
+ def instance_attribute_readers; end
2868
+
2869
+ # @return [Array<Symbol>]
2870
+ #
2871
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#17
2872
+ def instance_attribute_writers; end
2873
+
2874
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#215
2875
+ sig { params(mod: ::Module, dynamic_extends: T::Array[::Module]).returns(T::Boolean) }
2876
+ def module_included_by_another_dynamic_extend?(mod, dynamic_extends); end
2877
+ end
2878
+
2879
+ # This class is responsible for storing and looking up information related to generic types.
2880
+ #
2881
+ # The class stores 2 different kinds of data, in two separate lookup tables:
2882
+ # 1. a lookup of generic type instances by name: `@generic_instances`
2883
+ # 2. a lookup of type variable serializer by constant and type variable
2884
+ # instance: `@type_variables`
2885
+ #
2886
+ # By storing the above data, we can cheaply query each constant against this registry
2887
+ # to see if it declares any generic type variables. This becomes a simple lookup in the
2888
+ # `@type_variables` hash table with the given constant.
2889
+ #
2890
+ # If there is no entry, then we can cheaply know that we can skip generic type
2891
+ # information generation for this type.
2892
+ #
2893
+ # On the other hand, if we get a result, then the result will be a hash of type
2894
+ # variable to type variable serializers. This allows us to associate type variables
2895
+ # to the constant names that represent them, easily.
2896
+ #
2897
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#23
2898
+ module Tapioca::Runtime::GenericTypeRegistry
2899
+ class << self
2900
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#80
2901
+ sig { params(instance: ::Object).returns(T::Boolean) }
2902
+ def generic_type_instance?(instance); end
2903
+
2904
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#85
2905
+ sig { params(constant: ::Module).returns(T.nilable(T::Array[::Tapioca::TypeVariableModule])) }
2906
+ def lookup_type_variables(constant); end
2907
+
2908
+ # This method is responsible for building the name of the instantiated concrete type
2909
+ # and cloning the given constant so that we can return a type that is the same
2910
+ # as the current type but is a different instance and has a different name method.
2911
+ #
2912
+ # We cache those cloned instances by their name in `@generic_instances`, so that
2913
+ # we don't keep instantiating a new type every single time it is referenced.
2914
+ # For example, `[Foo[Integer], Foo[Integer], Foo[Integer], Foo[String]]` will only
2915
+ # result in 2 clones (1 for `Foo[Integer]` and another for `Foo[String]`) and
2916
+ # 2 hash lookups (for the other two `Foo[Integer]`s).
2917
+ #
2918
+ # This method returns the created or cached clone of the constant.
2919
+ #
2920
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#65
2921
+ sig { params(constant: T.untyped, types: T.untyped).returns(::Module) }
2922
+ def register_type(constant, types); end
2923
+
2924
+ # This method is called from intercepted calls to `type_member` and `type_template`.
2925
+ # We get passed all the arguments to those methods, as well as the `T::Types::TypeVariable`
2926
+ # instance generated by the Sorbet defined `type_member`/`type_template` call on `T::Generic`.
2927
+ #
2928
+ # This method creates a `String` with that data and stores it in the
2929
+ # `@type_variables` lookup table, keyed by the `constant` and `type_variable`.
2930
+ #
2931
+ # Finally, the original `type_variable` is returned from this method, so that the caller
2932
+ # can return it from the original methods as well.
2933
+ #
2934
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#104
2935
+ sig { params(constant: T.untyped, type_variable: ::Tapioca::TypeVariableModule).void }
2936
+ def register_type_variable(constant, type_variable); end
2937
+
2938
+ private
2939
+
2940
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#113
2941
+ sig { params(constant: ::Module, name: ::String).returns(::Module) }
2942
+ def create_generic_type(constant, name); end
2943
+
2944
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#155
2945
+ sig { params(constant: T::Class[T.anything]).returns(T::Class[T.anything]) }
2946
+ def create_safe_subclass(constant); end
2947
+
2948
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#182
2949
+ sig { params(constant: ::Module).returns(T::Array[::Tapioca::TypeVariableModule]) }
2950
+ def lookup_or_initialize_type_variables(constant); end
2951
+ end
2952
+ end
2953
+
2954
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#34
2955
+ class Tapioca::Runtime::GenericTypeRegistry::GenericType < ::T::Types::Simple
2956
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#38
2957
+ sig { params(raw_type: ::Module, underlying_type: ::Module).void }
2958
+ def initialize(raw_type, underlying_type); end
2959
+
2960
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#45
2961
+ sig { override.params(obj: T.untyped).returns(T::Boolean) }
2962
+ def valid?(obj); end
2963
+ end
2964
+
2965
+ module Tapioca::Runtime::Reflection
2966
+ include ::Tapioca::Runtime::AttachedClassOf
2967
+ extend ::Tapioca::Runtime::AttachedClassOf
2968
+ extend ::Tapioca::Runtime::Reflection
2969
+
2970
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#207
2971
+ sig { params(constant: ::Module).returns(T.untyped) }
2972
+ def abstract_type_of(constant); end
2973
+
2974
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#77
2975
+ sig { params(constant: ::Module).returns(T::Array[::Module]) }
2976
+ def ancestors_of(constant); end
2977
+
2978
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#92
2979
+ sig { params(object: ::BasicObject, other: ::BasicObject).returns(T::Boolean) }
2980
+ def are_equal?(object, other); end
2981
+
2982
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#56
2983
+ sig { params(object: ::BasicObject).returns(T::Class[T.anything]) }
2984
+ def class_of(object); end
2985
+
2986
+ # @param constant [BasicObject]
2987
+ # @return [Boolean]
2988
+ #
2989
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#38
2990
+ def constant_defined?(constant); end
2991
+
2992
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#49
2993
+ sig { params(symbol: ::String, inherit: T::Boolean, namespace: ::Module).returns(::BasicObject) }
2994
+ def constantize(symbol, inherit: T.unsafe(nil), namespace: T.unsafe(nil)); end
2995
+
2996
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#61
2997
+ sig { params(constant: ::Module).returns(T::Array[::Symbol]) }
2998
+ def constants_of(constant); end
2999
+
3000
+ # Returns an array with all classes that are < than the supplied class.
3001
+ #
3002
+ # class C; end
3003
+ # descendants_of(C) # => []
3004
+ #
3005
+ # class B < C; end
3006
+ # descendants_of(C) # => [B]
3007
+ #
3008
+ # class A < B; end
3009
+ # descendants_of(C) # => [B, A]
3010
+ #
3011
+ # class D < C; end
3012
+ # descendants_of(C) # => [B, A, D]
3013
+ #
3014
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#172
3015
+ sig do
3016
+ type_parameters(:U)
3017
+ .params(
3018
+ klass: T.all(T.type_parameter(:U), T::Class[T.anything])
3019
+ ).returns(T::Array[T.type_parameter(:U)])
3020
+ end
3021
+ def descendants_of(klass); end
3022
+
3023
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#200
3024
+ sig { params(constant: ::Module).returns(T::Set[::String]) }
3025
+ def file_candidates_for(constant); end
3026
+
3027
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#213
3028
+ sig { params(constant: ::Module).returns(T::Boolean) }
3029
+ def final_module?(constant); end
3030
+
3031
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#112
3032
+ sig { params(constant: ::Module).returns(T::Array[::Module]) }
3033
+ def inherited_ancestors_of(constant); end
3034
+
3035
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#150
3036
+ sig { params(constant: ::Module, method: ::Symbol).returns(::Method) }
3037
+ def method_of(constant, method); end
3038
+
3039
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#66
3040
+ sig { params(constant: ::Module).returns(T.nilable(::String)) }
3041
+ def name_of(constant); end
3042
+
3043
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#145
3044
+ sig { params(type: ::T::Types::Base).returns(::String) }
3045
+ def name_of_type(type); end
3046
+
3047
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#87
3048
+ sig { params(object: ::BasicObject).returns(::Integer) }
3049
+ def object_id_of(object); end
3050
+
3051
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#107
3052
+ sig { params(constant: ::Module).returns(T::Array[::Symbol]) }
3053
+ def private_instance_methods_of(constant); end
3054
+
3055
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#102
3056
+ sig { params(constant: ::Module).returns(T::Array[::Symbol]) }
3057
+ def protected_instance_methods_of(constant); end
3058
+
3059
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#97
3060
+ sig { params(constant: ::Module).returns(T::Array[::Symbol]) }
3061
+ def public_instance_methods_of(constant); end
3062
+
3063
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#121
3064
+ sig { params(constant: ::Module).returns(T.nilable(::String)) }
3065
+ def qualified_name_of(constant); end
3066
+
3067
+ # Examines the call stack to identify the closest location where a "require" is performed
3068
+ # by searching for the label "<top (required)>" or "block in <class:...>" in the
3069
+ # case of an ActiveSupport.on_load hook. If none is found, it returns the location
3070
+ # labeled "<main>", which is the original call site.
3071
+ #
3072
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#185
3073
+ sig { params(locations: T.nilable(T::Array[::Thread::Backtrace::Location])).returns(::String) }
3074
+ def resolve_loc(locations); end
3075
+
3076
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#218
3077
+ sig { params(constant: ::Module).returns(T::Boolean) }
3078
+ def sealed_module?(constant); end
3079
+
3080
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#138
3081
+ sig { params(method: T.any(::Method, ::UnboundMethod)).returns(T.untyped) }
3082
+ def signature_of(method); end
3083
+
3084
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#133
3085
+ sig { params(method: T.any(::Method, ::UnboundMethod)).returns(T.untyped) }
3086
+ def signature_of!(method); end
3087
+
3088
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#72
3089
+ sig { params(constant: ::Module).returns(T::Class[T.anything]) }
3090
+ def singleton_class_of(constant); end
3091
+
3092
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#82
3093
+ sig { params(constant: T::Class[T.anything]).returns(T.nilable(T::Class[T.anything])) }
3094
+ def superclass_of(constant); end
3095
+
3096
+ private
3097
+
3098
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#255
3099
+ sig { params(parent: ::Module, name: ::String).returns(T.nilable(::Module)) }
3100
+ def child_module_for_parent_with_name(parent, name); end
3101
+
3102
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#271
3103
+ sig { params(name: ::String).returns(T::Boolean) }
3104
+ def has_aliased_namespace?(name); end
3105
+
3106
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#266
3107
+ sig { params(method: ::UnboundMethod).returns(T::Boolean) }
3108
+ def method_defined_by_forwardable_module?(method); end
3109
+
3110
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#241
3111
+ sig { params(constant: ::Module).returns(T::Array[::UnboundMethod]) }
3112
+ def methods_for(constant); end
3113
+
3114
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#225
3115
+ sig { params(constant: ::Module).returns(T::Array[::UnboundMethod]) }
3116
+ def relevant_methods_for(constant); end
3117
+ end
3118
+
3119
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#25
3120
+ Tapioca::Runtime::Reflection::ANCESTORS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3121
+
3122
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#21
3123
+ Tapioca::Runtime::Reflection::CLASS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3124
+
3125
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#22
3126
+ Tapioca::Runtime::Reflection::CONSTANTS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3127
+
3128
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#28
3129
+ Tapioca::Runtime::Reflection::EQUAL_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3130
+
3131
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#32
3132
+ Tapioca::Runtime::Reflection::METHOD_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3133
+
3134
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#23
3135
+ Tapioca::Runtime::Reflection::NAME_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3136
+
3137
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#27
3138
+ Tapioca::Runtime::Reflection::OBJECT_ID_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3139
+
3140
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#31
3141
+ Tapioca::Runtime::Reflection::PRIVATE_INSTANCE_METHODS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3142
+
3143
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#30
3144
+ Tapioca::Runtime::Reflection::PROTECTED_INSTANCE_METHODS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3145
+
3146
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#29
3147
+ Tapioca::Runtime::Reflection::PUBLIC_INSTANCE_METHODS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3148
+
3149
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#35
3150
+ Tapioca::Runtime::Reflection::REQUIRED_FROM_LABELS = T.let(T.unsafe(nil), Array)
3151
+
3152
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#24
3153
+ Tapioca::Runtime::Reflection::SINGLETON_CLASS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3154
+
3155
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#26
3156
+ Tapioca::Runtime::Reflection::SUPERCLASS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3157
+
3158
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#6
3159
+ module Tapioca::Runtime::Trackers
3160
+ class << self
3161
+ # source://tapioca//lib/tapioca/runtime/trackers.rb#34
3162
+ sig { void }
3163
+ def disable_all!; end
3164
+
3165
+ # source://tapioca//lib/tapioca/runtime/trackers.rb#39
3166
+ sig { params(tracker: ::Tapioca::Runtime::Trackers::Tracker).void }
3167
+ def register_tracker(tracker); end
3168
+
3169
+ # source://tapioca//lib/tapioca/runtime/trackers.rb#21
3170
+ sig do
3171
+ type_parameters(:Return)
3172
+ .params(
3173
+ blk: T.proc.returns(T.type_parameter(:Return))
3174
+ ).returns(T.type_parameter(:Return))
3175
+ end
3176
+ def with_trackers_enabled(&blk); end
3177
+ end
3178
+ end
3179
+
3180
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#7
3181
+ module Tapioca::Runtime::Trackers::Autoload
3182
+ extend ::Tapioca::Runtime::Trackers::Tracker
3183
+
3184
+ class << self
3185
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#19
3186
+ sig { void }
3187
+ def eager_load_all!; end
3188
+
3189
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#31
3190
+ sig { params(constant_name: ::String).void }
3191
+ def register(constant_name); end
3192
+
3193
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#42
3194
+ sig do
3195
+ type_parameters(:Result)
3196
+ .params(
3197
+ block: T.proc.returns(T.type_parameter(:Result))
3198
+ ).returns(T.type_parameter(:Result))
3199
+ end
3200
+ def with_disabled_exits(&block); end
3201
+ end
3202
+ end
3203
+
3204
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#11
3205
+ Tapioca::Runtime::Trackers::Autoload::NOOP_METHOD = T.let(T.unsafe(nil), Proc)
3206
+
3207
+ # Registers a TracePoint immediately upon load to track points at which
3208
+ # classes and modules are opened for definition. This is used to track
3209
+ # correspondence between classes/modules and files, as this information isn't
3210
+ # available in the ruby runtime without extra accounting.
3211
+ module Tapioca::Runtime::Trackers::ConstantDefinition
3212
+ extend ::Tapioca::Runtime::Trackers::Tracker
3213
+ extend ::Tapioca::Runtime::AttachedClassOf
3214
+ extend ::Tapioca::Runtime::Reflection
3215
+
3216
+ class << self
3217
+ # source://tapioca//lib/tapioca/runtime/trackers/constant_definition.rb#61
3218
+ def build_constant_location(tp, locations); end
3219
+
3220
+ # source://tapioca//lib/tapioca/runtime/trackers/constant_definition.rb#55
3221
+ def disable!; end
3222
+
3223
+ # Returns the files in which this class or module was opened. Doesn't know
3224
+ # about situations where the class was opened prior to +require+ing,
3225
+ # or where metaprogramming was used via +eval+, etc.
3226
+ #
3227
+ # source://tapioca//lib/tapioca/runtime/trackers/constant_definition.rb#71
3228
+ def files_for(klass); end
3229
+
3230
+ # source://tapioca//lib/tapioca/runtime/trackers/constant_definition.rb#75
3231
+ def locations_for(klass); end
3232
+ end
3233
+ end
3234
+
3235
+ module Tapioca::Runtime::Trackers::Mixin
3236
+ extend ::Tapioca::Runtime::Trackers::Tracker
3237
+
3238
+ class << self
3239
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#56
3240
+ sig do
3241
+ params(
3242
+ mixin: ::Module
3243
+ ).returns(T::Hash[::Tapioca::Runtime::Trackers::Mixin::Type, T::Hash[::Module, ::String]])
3244
+ end
3245
+ def constants_with_mixin(mixin); end
3246
+
3247
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#61
3248
+ sig do
3249
+ params(
3250
+ mixin: ::Module,
3251
+ mixin_type: ::Tapioca::Runtime::Trackers::Mixin::Type,
3252
+ constant: ::Module
3253
+ ).returns(T.nilable(::String))
3254
+ end
3255
+ def mixin_location(mixin, mixin_type, constant); end
3256
+
3257
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#35
3258
+ sig { params(constant: ::Module, mixin: ::Module, mixin_type: ::Tapioca::Runtime::Trackers::Mixin::Type).void }
3259
+ def register(constant, mixin, mixin_type); end
3260
+
3261
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#43
3262
+ def resolve_to_attached_class(constant, mixin, mixin_type); end
3263
+
3264
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#30
3265
+ sig do
3266
+ type_parameters(:Result)
3267
+ .params(
3268
+ block: T.proc.returns(T.type_parameter(:Result))
3269
+ ).returns(T.type_parameter(:Result))
3270
+ end
3271
+ def with_disabled_registration(&block); end
3272
+
3273
+ private
3274
+
3275
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#76
3276
+ sig do
3277
+ params(
3278
+ mixin: ::Module
3279
+ ).returns(T::Hash[::Tapioca::Runtime::Trackers::Mixin::Type, T::Hash[::Module, ::String]])
3280
+ end
3281
+ def find_or_initialize_mixin_lookup(mixin); end
3282
+
3283
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#68
3284
+ sig do
3285
+ params(
3286
+ constant: ::Module,
3287
+ mixin: ::Module,
3288
+ mixin_type: ::Tapioca::Runtime::Trackers::Mixin::Type,
3289
+ location: ::String
3290
+ ).void
3291
+ end
3292
+ def register_with_location(constant, mixin, mixin_type, location); end
3293
+ end
3294
+ end
3295
+
3296
+ class Tapioca::Runtime::Trackers::Mixin::Type < ::T::Enum
3297
+ enums do
3298
+ Extend = new
3299
+ Include = new
3300
+ Prepend = new
3301
+ end
3302
+ end
3303
+
3304
+ # source://tapioca//lib/tapioca/runtime/trackers/required_ancestor.rb#7
3305
+ module Tapioca::Runtime::Trackers::RequiredAncestor
3306
+ extend ::Tapioca::Runtime::Trackers::Tracker
3307
+
3308
+ class << self
3309
+ # source://tapioca//lib/tapioca/runtime/trackers/required_ancestor.rb#15
3310
+ sig { params(requiring: ::T::Helpers, block: T.proc.void).void }
3311
+ def register(requiring, block); end
3312
+
3313
+ # source://tapioca//lib/tapioca/runtime/trackers/required_ancestor.rb#23
3314
+ sig { params(mod: ::Module).returns(T::Array[T.proc.void]) }
3315
+ def required_ancestors_blocks_by(mod); end
3316
+
3317
+ # source://tapioca//lib/tapioca/runtime/trackers/required_ancestor.rb#28
3318
+ sig { params(mod: ::Module).returns(T::Array[T.untyped]) }
3319
+ def required_ancestors_by(mod); end
3320
+ end
3321
+ end
3322
+
3323
+ # @abstract Subclasses must implement the `abstract` methods below.
3324
+ module Tapioca::Runtime::Trackers::Tracker
3325
+ abstract!
3326
+
3327
+ # source://tapioca//lib/tapioca/runtime/trackers/tracker.rb#26
3328
+ sig { void }
3329
+ def disable!; end
3330
+
3331
+ # @return [Boolean]
3332
+ #
3333
+ # source://tapioca//lib/tapioca/runtime/trackers/tracker.rb#30
3334
+ def enabled?; end
3335
+
3336
+ # source://tapioca//lib/tapioca/runtime/trackers/tracker.rb#34
3337
+ def with_disabled_tracker(&block); end
3338
+
3339
+ class << self
3340
+ # source://tapioca//lib/tapioca/runtime/trackers/tracker.rb#17
3341
+ sig { params(base: T.all(::Module, ::Tapioca::Runtime::Trackers::Tracker)).void }
3342
+ def extended(base); end
3343
+ end
3344
+ end
3345
+
3346
+ # source://tapioca//lib/tapioca.rb#35
3347
+ Tapioca::SORBET_CONFIG_FILE = T.let(T.unsafe(nil), String)
3348
+
3349
+ # source://tapioca//lib/tapioca.rb#34
3350
+ Tapioca::SORBET_DIR = T.let(T.unsafe(nil), String)
3351
+
3352
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#5
3353
+ module Tapioca::SorbetHelper
3354
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#32
3355
+ sig { params(sorbet_args: ::String).returns(::Spoom::ExecResult) }
3356
+ def sorbet(*sorbet_args); end
3357
+
3358
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#37
3359
+ sig { returns(::String) }
3360
+ def sorbet_path; end
3361
+
3362
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#44
3363
+ sig { params(feature: ::Symbol, version: T.nilable(::Gem::Version)).returns(T::Boolean) }
3364
+ def sorbet_supports?(feature, version: T.unsafe(nil)); end
3365
+ end
3366
+
3367
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#24
3368
+ Tapioca::SorbetHelper::FEATURE_REQUIREMENTS = T.let(T.unsafe(nil), Hash)
3369
+
3370
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#13
3371
+ Tapioca::SorbetHelper::SORBET_BIN = T.let(T.unsafe(nil), Pathname)
3372
+
3373
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#18
3374
+ Tapioca::SorbetHelper::SORBET_EXE_PATH_ENV_VAR = T.let(T.unsafe(nil), String)
3375
+
3376
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#8
3377
+ Tapioca::SorbetHelper::SORBET_GEM_SPEC = T.let(T.unsafe(nil), Gem::Specification)
3378
+
3379
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#20
3380
+ Tapioca::SorbetHelper::SORBET_PAYLOAD_URL = T.let(T.unsafe(nil), String)
3381
+
3382
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#22
3383
+ Tapioca::SorbetHelper::SPOOM_CONTEXT = T.let(T.unsafe(nil), Spoom::Context)
3384
+
3385
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#5
3386
+ module Tapioca::Static; end
3387
+
3388
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#6
3389
+ class Tapioca::Static::RequiresCompiler
3390
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#10
3391
+ sig { params(sorbet_path: ::String).void }
3392
+ def initialize(sorbet_path); end
3393
+
3394
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#15
3395
+ sig { returns(::String) }
3396
+ def compile; end
3397
+
3398
+ private
3399
+
3400
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#29
3401
+ sig { params(config: ::Spoom::Sorbet::Config).returns(T::Array[::String]) }
3402
+ def collect_files(config); end
3403
+
3404
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#44
3405
+ sig { params(file_path: ::String).returns(T::Enumerable[::String]) }
3406
+ def collect_requires(file_path); end
3407
+
3408
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#51
3409
+ sig { params(config: ::Spoom::Sorbet::Config, file_path: ::Pathname).returns(T::Boolean) }
3410
+ def file_ignored_by_sorbet?(config, file_path); end
3411
+
3412
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#80
3413
+ sig { params(path: ::Pathname).returns(T::Array[::String]) }
3414
+ def path_parts(path); end
3415
+ end
3416
+
3417
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#6
3418
+ module Tapioca::Static::SymbolLoader
3419
+ extend ::Tapioca::SorbetHelper
3420
+ extend ::Tapioca::Runtime::AttachedClassOf
3421
+ extend ::Tapioca::Runtime::Reflection
3422
+
3423
+ class << self
3424
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#23
3425
+ sig { params(gem: ::Tapioca::Gemfile::GemSpec).returns(T::Set[::String]) }
3426
+ def engine_symbols(gem); end
3427
+
3428
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#48
3429
+ sig { params(gem: ::Tapioca::Gemfile::GemSpec).returns(T::Set[::String]) }
3430
+ def gem_symbols(gem); end
3431
+
3432
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#13
3433
+ sig { returns(T::Set[::String]) }
3434
+ def payload_symbols; end
3435
+
3436
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#53
3437
+ sig { params(paths: T::Array[::Pathname]).returns(T::Set[::String]) }
3438
+ def symbols_from_paths(paths); end
3439
+
3440
+ private
3441
+
3442
+ # @return [Array<T.class_of(Rails::Engine)>]
3443
+ #
3444
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#71
3445
+ def engines; end
3446
+
3447
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#84
3448
+ sig { params(input: ::String, table_type: ::String).returns(::String) }
3449
+ def symbol_table_json_from(input, table_type: T.unsafe(nil)); end
3450
+ end
3451
+ end
3452
+
3453
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#6
3454
+ class Tapioca::Static::SymbolTableParser
3455
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#30
3456
+ sig { void }
3457
+ def initialize; end
3458
+
3459
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#65
3460
+ sig { params(name: ::String).returns(::String) }
3461
+ def fully_qualified_name(name); end
3462
+
3463
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#36
3464
+ sig { params(object: T::Hash[::String, T.untyped]).void }
3465
+ def parse_object(object); end
3466
+
3467
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#27
3468
+ sig { returns(T::Set[::String]) }
3469
+ def symbols; end
3470
+
3471
+ class << self
3472
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#15
3473
+ sig { params(json_string: ::String).returns(T::Set[::String]) }
3474
+ def parse_json(json_string); end
3475
+ end
3476
+ end
3477
+
3478
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#9
3479
+ Tapioca::Static::SymbolTableParser::SKIP_PARSE_KINDS = T.let(T.unsafe(nil), Array)
3480
+
3481
+ # source://tapioca//lib/tapioca.rb#37
3482
+ Tapioca::TAPIOCA_CONFIG_FILE = T.let(T.unsafe(nil), String)
3483
+
3484
+ # source://tapioca//lib/tapioca.rb#36
3485
+ Tapioca::TAPIOCA_DIR = T.let(T.unsafe(nil), String)
3486
+
3487
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#108
3488
+ class Tapioca::TypeVariable < ::T::Types::TypeVariable
3489
+ # @return [TypeVariable] a new instance of TypeVariable
3490
+ #
3491
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#109
3492
+ def initialize(name, variance); end
3493
+
3494
+ # Returns the value of attribute name.
3495
+ #
3496
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#114
3497
+ def name; end
3498
+ end
3499
+
3500
+ # This is subclassing from `Module` so that instances of this type will be modules.
3501
+ # The reason why we want that is because that means those instances will automatically
3502
+ # get bound to the constant names they are assigned to by Ruby. As a result, we don't
3503
+ # need to do any matching of constants to type variables to bind their names, Ruby will
3504
+ # do that automatically for us and we get the `name` method for free from `Module`.
3505
+ #
3506
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#122
3507
+ class Tapioca::TypeVariableModule < ::Module
3508
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#146
3509
+ sig do
3510
+ params(
3511
+ context: ::Module,
3512
+ type: ::Tapioca::TypeVariableModule::Type,
3513
+ variance: ::Symbol,
3514
+ bounds_proc: T.nilable(T.proc.returns(T::Hash[::Symbol, T.untyped]))
3515
+ ).void
3516
+ end
3517
+ def initialize(context, type, variance, bounds_proc); end
3518
+
3519
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#181
3520
+ sig { returns(::Tapioca::TypeVariable) }
3521
+ def coerce_to_type_variable; end
3522
+
3523
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#161
3524
+ sig { returns(T::Boolean) }
3525
+ def fixed?; end
3526
+
3527
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#155
3528
+ sig { returns(T.nilable(::String)) }
3529
+ def name; end
3530
+
3531
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#166
3532
+ sig { returns(::String) }
3533
+ def serialize; end
3534
+
3535
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#136
3536
+ sig { returns(::Tapioca::TypeVariableModule::Type) }
3537
+ def type; end
3538
+
3539
+ private
3540
+
3541
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#188
3542
+ sig { returns(T::Hash[::Symbol, T.untyped]) }
3543
+ def bounds; end
3544
+ end
3545
+
3546
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#133
3547
+ Tapioca::TypeVariableModule::DEFAULT_BOUNDS_PROC = T.let(T.unsafe(nil), Proc)
3548
+
3549
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#125
3550
+ class Tapioca::TypeVariableModule::Type < ::T::Enum
3551
+ enums do
3552
+ HasAttachedClass = new
3553
+ Member = new
3554
+ Template = new
3555
+ end
3556
+ end
3557
+
3558
+ # source://tapioca//lib/tapioca/version.rb#5
3559
+ Tapioca::VERSION = T.let(T.unsafe(nil), String)
3560
+
3561
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#7
3562
+ class URI::Source < ::URI::File
3563
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#72
3564
+ sig { params(v: T.nilable(::String)).returns(T::Boolean) }
3565
+ def check_host(v); end
3566
+
3567
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#55
3568
+ sig { returns(T.nilable(::String)) }
3569
+ def gem_name; end
3570
+
3571
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#29
3572
+ sig { returns(T.nilable(::String)) }
3573
+ def gem_version; end
3574
+
3575
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#60
3576
+ sig { returns(T.nilable(::String)) }
3577
+ def line_number; end
3578
+
3579
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#65
3580
+ sig { params(v: T.nilable(::String)).void }
3581
+ def set_path(v); end
3582
+
3583
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#84
3584
+ sig { returns(::String) }
3585
+ def to_s; end
3586
+
3587
+ class << self
3588
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#42
3589
+ sig do
3590
+ params(
3591
+ gem_name: ::String,
3592
+ gem_version: T.nilable(::String),
3593
+ path: ::String,
3594
+ line_number: T.nilable(::String)
3595
+ ).returns(::URI::Source)
3596
+ end
3597
+ def build(gem_name:, gem_version:, path:, line_number:); end
3598
+ end
3599
+ end
3600
+
3601
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#10
3602
+ URI::Source::COMPONENT = T.let(T.unsafe(nil), Array)
3603
+
3604
+ # `uri` for Ruby 3.4 switched the default parser from RFC2396 to RFC3986. The new parser emits a deprecation
3605
+ # warning on a few methods and delegates them to RFC2396, namely `extract`/`make_regexp`/`escape`/`unescape`.
3606
+ # On earlier versions of the uri gem, the RFC2396_PARSER constant doesn't exist, so it needs some special
3607
+ # handling to select a parser that doesn't emit deprecations. While it was backported to Ruby 3.1, users may
3608
+ # have the uri gem in their own bundle and thus not use a compatible version.
3609
+ #
3610
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#26
3611
+ URI::Source::PARSER = T.let(T.unsafe(nil), URI::RFC2396_Parser)