konstruo 1.0.0

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