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