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