vigiles 0.1.0.pre.beta2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. checksums.yaml +7 -0
  2. data/.rubocop.yml +26 -0
  3. data/CHANGELOG.md +5 -0
  4. data/LICENSE.txt +21 -0
  5. data/README.md +14 -0
  6. data/Rakefile +12 -0
  7. data/lib/core_ext/object.rb +7 -0
  8. data/lib/core_ext.rb +4 -0
  9. data/lib/generators/templates/archive_conversation_migration.rb.erb +41 -0
  10. data/lib/generators/templates/initializer.rb +6 -0
  11. data/lib/generators/vigiles/initializer_generator.rb +22 -0
  12. data/lib/generators/vigiles/install_generator.rb +25 -0
  13. data/lib/generators/vigiles/migration_generator.rb +32 -0
  14. data/lib/vigiles/archive/conversation.rb +12 -0
  15. data/lib/vigiles/archive/extras.rb +14 -0
  16. data/lib/vigiles/archive/metadata.rb +14 -0
  17. data/lib/vigiles/archive/request.rb +43 -0
  18. data/lib/vigiles/archive/response.rb +23 -0
  19. data/lib/vigiles/archive.rb +72 -0
  20. data/lib/vigiles/middleware/record_conversation.rb +47 -0
  21. data/lib/vigiles/spec.rb +9 -0
  22. data/lib/vigiles/types.rb +32 -0
  23. data/lib/vigiles/version.rb +6 -0
  24. data/lib/vigiles.rb +41 -0
  25. data/sorbet/config +4 -0
  26. data/sorbet/rbi/annotations/.gitattributes +1 -0
  27. data/sorbet/rbi/annotations/activemodel.rbi +89 -0
  28. data/sorbet/rbi/annotations/activerecord.rbi +92 -0
  29. data/sorbet/rbi/annotations/activesupport.rbi +421 -0
  30. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  31. data/sorbet/rbi/dsl/.gitattributes +1 -0
  32. data/sorbet/rbi/dsl/active_support/callbacks.rbi +22 -0
  33. data/sorbet/rbi/gems/.gitattributes +1 -0
  34. data/sorbet/rbi/gems/activemodel@7.0.5.rbi +8 -0
  35. data/sorbet/rbi/gems/activerecord@7.0.5.rbi +8 -0
  36. data/sorbet/rbi/gems/activesupport@7.0.5.rbi +14 -0
  37. data/sorbet/rbi/gems/ast@2.4.2.rbi +584 -0
  38. data/sorbet/rbi/gems/concurrent-ruby@1.2.3.rbi +8 -0
  39. data/sorbet/rbi/gems/erubi@1.12.0.rbi +145 -0
  40. data/sorbet/rbi/gems/i18n@1.14.1.rbi +8 -0
  41. data/sorbet/rbi/gems/json@2.7.1.rbi +1561 -0
  42. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14237 -0
  43. data/sorbet/rbi/gems/minitest@5.22.2.rbi +1535 -0
  44. data/sorbet/rbi/gems/netrc@0.11.0.rbi +158 -0
  45. data/sorbet/rbi/gems/parallel@1.24.0.rbi +280 -0
  46. data/sorbet/rbi/gems/parser@3.3.0.5.rbi +5472 -0
  47. data/sorbet/rbi/gems/prettier_print@1.2.1.rbi +951 -0
  48. data/sorbet/rbi/gems/prism@0.24.0.rbi +31040 -0
  49. data/sorbet/rbi/gems/racc@1.7.3.rbi +161 -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/rubocop-ast@1.30.0.rbi +7036 -0
  56. data/sorbet/rbi/gems/rubocop-minitest@0.34.5.rbi +2576 -0
  57. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +328 -0
  58. data/sorbet/rbi/gems/rubocop-sorbet@0.7.4.rbi +1442 -0
  59. data/sorbet/rbi/gems/rubocop@1.60.2.rbi +57386 -0
  60. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1317 -0
  61. data/sorbet/rbi/gems/spoom@1.2.4.rbi +3777 -0
  62. data/sorbet/rbi/gems/syntax_tree@6.2.0.rbi +23136 -0
  63. data/sorbet/rbi/gems/tapioca@0.12.0.rbi +3508 -0
  64. data/sorbet/rbi/gems/thor@1.3.0.rbi +4345 -0
  65. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +8 -0
  66. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +65 -0
  67. data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +428 -0
  68. data/sorbet/rbi/gems/yard@0.9.34.rbi +18219 -0
  69. data/sorbet/rbi/todo.rbi +16 -0
  70. data/sorbet/tapioca/config.yml +13 -0
  71. data/sorbet/tapioca/require.rb +12 -0
  72. data/vigiles.gemspec +48 -0
  73. metadata +300 -0
@@ -0,0 +1,3508 @@
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.11266/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.11266/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.11266/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.11266/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.11266/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
+ def gem_name; end
3476
+
3477
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#25
3478
+ sig { returns(T.nilable(::String)) }
3479
+ def gem_version; end
3480
+
3481
+ def line_number; end
3482
+
3483
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#51
3484
+ sig { params(v: T.nilable(::String)).void }
3485
+ def set_path(v); end
3486
+
3487
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#70
3488
+ sig { returns(::String) }
3489
+ def to_s; end
3490
+
3491
+ class << self
3492
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#38
3493
+ sig do
3494
+ params(
3495
+ gem_name: ::String,
3496
+ gem_version: T.nilable(::String),
3497
+ path: ::String,
3498
+ line_number: T.nilable(::String)
3499
+ ).returns(::URI::Source)
3500
+ end
3501
+ def build(gem_name:, gem_version:, path:, line_number:); end
3502
+ end
3503
+ end
3504
+
3505
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#10
3506
+ URI::Source::COMPONENT = T.let(T.unsafe(nil), Array)
3507
+
3508
+ class URI::WSS < ::URI::WS; end