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