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