esquema 0.1.1 → 0.1.2

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