activerecord-ejection_seat 0.1.0 → 0.2.0

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