checkoff 0.200.0 → 0.203.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +130 -28
  3. data/.git-hooks/pre_commit/solargraph_typecheck.rb +12 -11
  4. data/.overcommit.yml +27 -2
  5. data/.rubocop.yml +20 -2
  6. data/.rubocop_todo.yml +90 -0
  7. data/.solargraph.yml +10 -1
  8. data/DEVELOPMENT.md +1 -1
  9. data/Gemfile +11 -8
  10. data/Gemfile.lock +66 -42
  11. data/LICENSE +1 -1
  12. data/Makefile +14 -12
  13. data/bin/brakeman +27 -0
  14. data/bin/overcommit_branch +117 -0
  15. data/bin/spoom +27 -0
  16. data/bin/srb +27 -0
  17. data/bin/srb-rbi +27 -0
  18. data/bin/tapioca +27 -0
  19. data/config/annotations_misc.rb +35 -0
  20. data/docs/cookiecutter_input.json +1 -0
  21. data/fix.sh +14 -6
  22. data/lib/checkoff/custom_fields.rb +3 -2
  23. data/lib/checkoff/internal/search_url/simple_param_converter.rb +11 -0
  24. data/lib/checkoff/version.rb +1 -1
  25. data/requirements_dev.txt +1 -1
  26. data/sorbet/config +4 -0
  27. data/sorbet/rbi/annotations/.gitattributes +1 -0
  28. data/sorbet/rbi/annotations/activesupport.rbi +453 -0
  29. data/sorbet/rbi/annotations/faraday.rbi +17 -0
  30. data/sorbet/rbi/annotations/minitest.rbi +119 -0
  31. data/sorbet/rbi/annotations/mocha.rbi +34 -0
  32. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  33. data/sorbet/rbi/annotations/webmock.rbi +9 -0
  34. data/sorbet/rbi/dsl/.gitattributes +1 -0
  35. data/sorbet/rbi/dsl/active_support/callbacks.rbi +23 -0
  36. data/sorbet/rbi/gems/.gitattributes +1 -0
  37. data/sorbet/rbi/gems/activesupport@7.1.3.rbi +18749 -0
  38. data/sorbet/rbi/gems/addressable@2.8.6.rbi +1994 -0
  39. data/sorbet/rbi/gems/ansi@1.5.0.rbi +688 -0
  40. data/sorbet/rbi/gems/asana@0.10.6-ab9393136d9ca59b75e42a661fdddc1c65c8f7c3.rbi +6142 -0
  41. data/sorbet/rbi/gems/ast@2.4.2.rbi +585 -0
  42. data/sorbet/rbi/gems/backport@1.2.0.rbi +523 -0
  43. data/sorbet/rbi/gems/base64@0.2.0.rbi +509 -0
  44. data/sorbet/rbi/gems/benchmark@0.4.0.rbi +618 -0
  45. data/sorbet/rbi/gems/bigdecimal@3.1.5.rbi +78 -0
  46. data/sorbet/rbi/gems/builder@3.2.4.rbi +505 -0
  47. data/sorbet/rbi/gems/bump@0.10.0.rbi +169 -0
  48. data/sorbet/rbi/gems/cache@0.4.1.rbi +211 -0
  49. data/sorbet/rbi/gems/cache_method@0.2.7.rbi +293 -0
  50. data/sorbet/rbi/gems/chef-utils@18.3.0.rbi +9 -0
  51. data/sorbet/rbi/gems/childprocess@5.1.0.rbi +383 -0
  52. data/sorbet/rbi/gems/coderay@1.1.3.rbi +3427 -0
  53. data/sorbet/rbi/gems/concurrent-ruby@1.2.3.rbi +11591 -0
  54. data/sorbet/rbi/gems/connection_pool@2.4.1.rbi +9 -0
  55. data/sorbet/rbi/gems/crack@0.4.5.rbi +145 -0
  56. data/sorbet/rbi/gems/diff-lcs@1.5.1.rbi +969 -0
  57. data/sorbet/rbi/gems/docile@1.4.0.rbi +377 -0
  58. data/sorbet/rbi/gems/drb@2.2.0.rbi +1347 -0
  59. data/sorbet/rbi/gems/e2mmap@0.1.0.rbi +9 -0
  60. data/sorbet/rbi/gems/erubi@1.13.0.rbi +152 -0
  61. data/sorbet/rbi/gems/faraday-em_http@1.0.0.rbi +222 -0
  62. data/sorbet/rbi/gems/faraday-em_synchrony@1.0.0.rbi +126 -0
  63. data/sorbet/rbi/gems/faraday-excon@1.1.0.rbi +136 -0
  64. data/sorbet/rbi/gems/faraday-httpclient@1.0.1.rbi +145 -0
  65. data/sorbet/rbi/gems/faraday-multipart@1.0.4.rbi +259 -0
  66. data/sorbet/rbi/gems/faraday-net_http@1.0.1.rbi +142 -0
  67. data/sorbet/rbi/gems/faraday-net_http_persistent@1.2.0.rbi +118 -0
  68. data/sorbet/rbi/gems/faraday-patron@1.0.0.rbi +125 -0
  69. data/sorbet/rbi/gems/faraday-rack@1.0.0.rbi +133 -0
  70. data/sorbet/rbi/gems/faraday-retry@1.0.3.rbi +198 -0
  71. data/sorbet/rbi/gems/faraday@1.10.3.rbi +2729 -0
  72. data/sorbet/rbi/gems/faraday_middleware-multi_json@0.0.6.rbi +29 -0
  73. data/sorbet/rbi/gems/faraday_middleware@1.2.0.rbi +1004 -0
  74. data/sorbet/rbi/gems/gli@2.21.1.rbi +9 -0
  75. data/sorbet/rbi/gems/hashdiff@1.0.1.rbi +351 -0
  76. data/sorbet/rbi/gems/i18n@1.14.1.rbi +2326 -0
  77. data/sorbet/rbi/gems/imagen@0.1.8.rbi +340 -0
  78. data/sorbet/rbi/gems/iniparse@1.5.0.rbi +899 -0
  79. data/sorbet/rbi/gems/jaro_winkler@1.6.0.rbi +22 -0
  80. data/sorbet/rbi/gems/json@2.7.1.rbi +1562 -0
  81. data/sorbet/rbi/gems/jwt@2.7.1.rbi +1405 -0
  82. data/sorbet/rbi/gems/kramdown-parser-gfm@1.1.0.rbi +128 -0
  83. data/sorbet/rbi/gems/kramdown@2.4.0.rbi +3272 -0
  84. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14238 -0
  85. data/sorbet/rbi/gems/logger@1.6.1.rbi +920 -0
  86. data/sorbet/rbi/gems/mdl@0.13.0.rbi +445 -0
  87. data/sorbet/rbi/gems/method_source@1.0.0.rbi +273 -0
  88. data/sorbet/rbi/gems/mime-types-data@3.2023.1205.rbi +127 -0
  89. data/sorbet/rbi/gems/mime-types@3.5.1.rbi +1252 -0
  90. data/sorbet/rbi/gems/minitest-profile@0.0.2.rbi +136 -0
  91. data/sorbet/rbi/gems/minitest-reporters@1.6.1.rbi +1014 -0
  92. data/sorbet/rbi/gems/minitest@5.21.1.rbi +1539 -0
  93. data/sorbet/rbi/gems/mixlib-cli@2.1.8.rbi +314 -0
  94. data/sorbet/rbi/gems/mixlib-config@3.0.27.rbi +581 -0
  95. data/sorbet/rbi/gems/mixlib-shellout@3.2.7.rbi +629 -0
  96. data/sorbet/rbi/gems/mocha@2.1.0.rbi +12 -0
  97. data/sorbet/rbi/gems/multi_json@1.15.0.rbi +268 -0
  98. data/sorbet/rbi/gems/multi_xml@0.6.0.rbi +102 -0
  99. data/sorbet/rbi/gems/multipart-post@2.3.0.rbi +234 -0
  100. data/sorbet/rbi/gems/mutex_m@0.2.0.rbi +94 -0
  101. data/sorbet/rbi/gems/netrc@0.11.0.rbi +159 -0
  102. data/sorbet/rbi/gems/nokogiri@1.16.7.rbi +7311 -0
  103. data/sorbet/rbi/gems/oauth2@1.4.11.rbi +833 -0
  104. data/sorbet/rbi/gems/ostruct@0.6.1.rbi +354 -0
  105. data/sorbet/rbi/gems/overcommit@0.64.0.rbi +2400 -0
  106. data/sorbet/rbi/gems/parallel@1.23.0.rbi +274 -0
  107. data/sorbet/rbi/gems/parser@3.2.2.4.rbi +7253 -0
  108. data/sorbet/rbi/gems/prism@1.2.0.rbi +39085 -0
  109. data/sorbet/rbi/gems/pry@0.14.2.rbi +10070 -0
  110. data/sorbet/rbi/gems/public_suffix@5.0.4.rbi +936 -0
  111. data/sorbet/rbi/gems/punchlist@1.3.2.rbi +173 -0
  112. data/sorbet/rbi/gems/racc@1.7.3.rbi +162 -0
  113. data/sorbet/rbi/gems/rack@3.0.8.rbi +5184 -0
  114. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +403 -0
  115. data/sorbet/rbi/gems/rake@13.1.0.rbi +3022 -0
  116. data/sorbet/rbi/gems/rbi@0.2.1.rbi +4535 -0
  117. data/sorbet/rbi/gems/rbs@2.8.4.rbi +5613 -0
  118. data/sorbet/rbi/gems/regexp_parser@2.8.3.rbi +3750 -0
  119. data/sorbet/rbi/gems/reverse_markdown@2.1.1.rbi +390 -0
  120. data/sorbet/rbi/gems/rexml@3.2.6.rbi +4888 -0
  121. data/sorbet/rbi/gems/rubocop-ast@1.30.0.rbi +7061 -0
  122. data/sorbet/rbi/gems/rubocop-minitest@0.34.5.rbi +2577 -0
  123. data/sorbet/rbi/gems/rubocop-performance@1.20.2.rbi +3262 -0
  124. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +329 -0
  125. data/sorbet/rbi/gems/rubocop@1.59.0.rbi +57238 -0
  126. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1318 -0
  127. data/sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi +9 -0
  128. data/sorbet/rbi/gems/rugged@1.6.3.rbi +1577 -0
  129. data/sorbet/rbi/gems/simplecov-html@0.12.3.rbi +217 -0
  130. data/sorbet/rbi/gems/simplecov-lcov@0.8.0.rbi +256 -0
  131. data/sorbet/rbi/gems/simplecov@0.22.0.rbi +2149 -0
  132. data/sorbet/rbi/gems/simplecov_json_formatter@0.1.4.rbi +9 -0
  133. data/sorbet/rbi/gems/solargraph@0.50.1-904b9304770a59fac393c5cc3cad481e5bdf0fd8.rbi +9396 -0
  134. data/sorbet/rbi/gems/source_finder@3.2.1.rbi +317 -0
  135. data/sorbet/rbi/gems/spoom@1.5.0.rbi +4932 -0
  136. data/sorbet/rbi/gems/tapioca@0.16.4.rbi +3604 -0
  137. data/sorbet/rbi/gems/thor@1.3.2.rbi +4378 -0
  138. data/sorbet/rbi/gems/tilt@2.4.0.rbi +933 -0
  139. data/sorbet/rbi/gems/tomlrb@2.0.3.rbi +9 -0
  140. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +5918 -0
  141. data/sorbet/rbi/gems/undercover@0.5.0.rbi +433 -0
  142. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +66 -0
  143. data/sorbet/rbi/gems/webmock@3.19.1.rbi +1769 -0
  144. data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +435 -0
  145. data/sorbet/rbi/gems/yard@0.9.34.rbi +18247 -0
  146. data/sorbet/rbi/todo.rbi +11 -0
  147. data/sorbet/tapioca/config.yml +13 -0
  148. data/sorbet/tapioca/require.rb +4 -0
  149. metadata +134 -3
@@ -0,0 +1,3604 @@
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.1/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.1/lib/rbi/model.rb#128
69
+ sig { params(node: ::RBI::Node).void }
70
+ def <<(node); end
71
+
72
+ # source://rbi/0.2.1/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.1/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.1/lib/rbi/rewriters/deannotate.rb#41
142
+ sig { params(annotation: ::String).void }
143
+ def deannotate!(annotation); end
144
+
145
+ # source://rbi/0.2.1/lib/rbi/model.rb#134
146
+ sig { returns(T::Boolean) }
147
+ def empty?; end
148
+
149
+ # source://rbi/0.2.1/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.1/lib/rbi/rewriters/flatten_singleton_methods.rb#60
154
+ sig { void }
155
+ def flatten_singleton_methods!; end
156
+
157
+ # source://rbi/0.2.1/lib/rbi/rewriters/flatten_visibilities.rb#60
158
+ sig { void }
159
+ def flatten_visibilities!; end
160
+
161
+ # source://rbi/0.2.1/lib/rbi/rewriters/group_nodes.rb#81
162
+ sig { void }
163
+ def group_nodes!; end
164
+
165
+ # source://rbi/0.2.1/lib/rbi/index.rb#68
166
+ sig { returns(::RBI::Index) }
167
+ def index; end
168
+
169
+ # source://rbi/0.2.1/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.1/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.1/lib/rbi/rewriters/nest_singleton_methods.rb#36
185
+ sig { void }
186
+ def nest_singleton_methods!; end
187
+
188
+ # source://rbi/0.2.1/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.1/lib/rbi/model.rb#112
193
+ sig { returns(T::Array[::RBI::Node]) }
194
+ def nodes; end
195
+
196
+ # source://rbi/0.2.1/lib/rbi/rewriters/attr_to_methods.rb#53
197
+ sig { void }
198
+ def replace_attributes_with_methods!; end
199
+
200
+ # source://rbi/0.2.1/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.11647/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.11647/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.11647/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#107
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#125
1226
+ sig { params(error: ::String).void }
1227
+ def add_error(error); end
1228
+
1229
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#116
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#121
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#174
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#210
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#164
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#138
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#39
1275
+ sig { abstract.returns(T::Enumerable[::Module]) }
1276
+ def gather_constants; end
1277
+
1278
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#34
1279
+ sig { params(constant: ::Module).returns(T::Boolean) }
1280
+ def handles?(constant); end
1281
+
1282
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#42
1283
+ sig { returns(T::Set[::Module]) }
1284
+ def processable_constants; end
1285
+
1286
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#50
1287
+ sig { params(constants: T::Array[::Module]).void }
1288
+ def requested_constants=(constants); end
1289
+
1290
+ private
1291
+
1292
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#75
1293
+ sig { returns(T::Enumerable[T::Class[T.anything]]) }
1294
+ def all_classes; end
1295
+
1296
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#87
1297
+ sig { returns(T::Enumerable[::Module]) }
1298
+ def all_modules; end
1299
+
1300
+ # source://tapioca//lib/tapioca/dsl/compiler.rb#61
1301
+ sig do
1302
+ type_parameters(:U)
1303
+ .params(
1304
+ klass: T.all(T.type_parameter(:U), T::Class[T.anything])
1305
+ ).returns(T::Array[T.type_parameter(:U)])
1306
+ end
1307
+ def descendants_of(klass); end
1308
+ end
1309
+ end
1310
+
1311
+ # source://tapioca//lib/tapioca/dsl/compilers.rb#6
1312
+ module Tapioca::Dsl::Compilers; end
1313
+
1314
+ # DSL compilers are either built-in to Tapioca and live under the
1315
+ # `Tapioca::Dsl::Compilers` namespace (i.e. this namespace), and
1316
+ # can be referred to by just using the class name, or they live in
1317
+ # a different namespace and can only be referred to using their fully
1318
+ # qualified name. This constant encapsulates that dual lookup when
1319
+ # a compiler needs to be resolved by name.
1320
+ #
1321
+ # source://tapioca//lib/tapioca/dsl/compilers.rb#13
1322
+ Tapioca::Dsl::Compilers::NAMESPACES = T.let(T.unsafe(nil), Array)
1323
+
1324
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#6
1325
+ class Tapioca::Dsl::Pipeline
1326
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#39
1327
+ sig do
1328
+ params(
1329
+ requested_constants: T::Array[::Module],
1330
+ requested_paths: T::Array[::Pathname],
1331
+ requested_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)],
1332
+ excluded_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)],
1333
+ error_handler: T.proc.params(error: ::String).void,
1334
+ skipped_constants: T::Array[::Module],
1335
+ number_of_workers: T.nilable(::Integer),
1336
+ compiler_options: T::Hash[::String, T.untyped]
1337
+ ).void
1338
+ end
1339
+ 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
1340
+
1341
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#10
1342
+ sig { returns(T::Enumerable[T.class_of(Tapioca::Dsl::Compiler)]) }
1343
+ def active_compilers; end
1344
+
1345
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#102
1346
+ sig { params(error: ::String).void }
1347
+ def add_error(error); end
1348
+
1349
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#107
1350
+ sig { params(compiler_name: ::String).returns(T::Boolean) }
1351
+ def compiler_enabled?(compiler_name); end
1352
+
1353
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#116
1354
+ sig { returns(T::Array[T.class_of(Tapioca::Dsl::Compiler)]) }
1355
+ def compilers; end
1356
+
1357
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#22
1358
+ sig { returns(T.proc.params(error: ::String).void) }
1359
+ def error_handler; end
1360
+
1361
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#25
1362
+ sig { returns(T::Array[::String]) }
1363
+ def errors; end
1364
+
1365
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#13
1366
+ sig { returns(T::Array[::Module]) }
1367
+ def requested_constants; end
1368
+
1369
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#16
1370
+ sig { returns(T::Array[::Pathname]) }
1371
+ def requested_paths; end
1372
+
1373
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#67
1374
+ sig do
1375
+ type_parameters(:T)
1376
+ .params(
1377
+ blk: T.proc.params(constant: ::Module, rbi: ::RBI::File).returns(T.type_parameter(:T))
1378
+ ).returns(T::Array[T.type_parameter(:T)])
1379
+ end
1380
+ def run(&blk); end
1381
+
1382
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#19
1383
+ sig { returns(T::Array[::Module]) }
1384
+ def skipped_constants; end
1385
+
1386
+ private
1387
+
1388
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#224
1389
+ sig { void }
1390
+ def abort_if_pending_migrations!; end
1391
+
1392
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#169
1393
+ sig { params(constants: T::Set[::Module]).returns(T::Set[::Module]) }
1394
+ def filter_anonymous_and_reloaded_constants(constants); end
1395
+
1396
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#133
1397
+ sig do
1398
+ params(
1399
+ requested_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)],
1400
+ excluded_compilers: T::Array[T.class_of(Tapioca::Dsl::Compiler)]
1401
+ ).returns(T::Enumerable[T.class_of(Tapioca::Dsl::Compiler)])
1402
+ end
1403
+ def gather_active_compilers(requested_compilers, excluded_compilers); end
1404
+
1405
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#147
1406
+ sig do
1407
+ params(
1408
+ requested_constants: T::Array[::Module],
1409
+ requested_paths: T::Array[::Pathname],
1410
+ skipped_constants: T::Array[::Module]
1411
+ ).returns(T::Set[::Module])
1412
+ end
1413
+ def gather_constants(requested_constants, requested_paths, skipped_constants); end
1414
+
1415
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#198
1416
+ sig { params(constant: ::Module).returns(T.nilable(::RBI::File)) }
1417
+ def rbi_for_constant(constant); end
1418
+
1419
+ # source://tapioca//lib/tapioca/dsl/pipeline.rb#217
1420
+ sig { params(error: ::String).returns(T.noreturn) }
1421
+ def report_error(error); end
1422
+ end
1423
+
1424
+ # source://tapioca//lib/tapioca/helpers/env_helper.rb#5
1425
+ module Tapioca::EnvHelper
1426
+ requires_ancestor { Thor }
1427
+
1428
+ # source://tapioca//lib/tapioca/helpers/env_helper.rb#12
1429
+ sig { params(options: T::Hash[::Symbol, T.untyped]).void }
1430
+ def set_environment(options); end
1431
+ end
1432
+
1433
+ class Tapioca::Error < ::StandardError; end
1434
+
1435
+ # source://tapioca//lib/tapioca/executor.rb#5
1436
+ class Tapioca::Executor
1437
+ # source://tapioca//lib/tapioca/executor.rb#11
1438
+ sig { params(queue: T::Array[T.untyped], number_of_workers: T.nilable(::Integer)).void }
1439
+ def initialize(queue, number_of_workers: T.unsafe(nil)); end
1440
+
1441
+ # source://tapioca//lib/tapioca/executor.rb#28
1442
+ sig do
1443
+ type_parameters(:T)
1444
+ .params(
1445
+ block: T.proc.params(item: T.untyped).returns(T.type_parameter(:T))
1446
+ ).returns(T::Array[T.type_parameter(:T)])
1447
+ end
1448
+ def run_in_parallel(&block); end
1449
+
1450
+ private
1451
+
1452
+ # source://tapioca//lib/tapioca/executor.rb#37
1453
+ sig { returns(::Integer) }
1454
+ def max_processors; end
1455
+ end
1456
+
1457
+ # source://tapioca//lib/tapioca/executor.rb#8
1458
+ Tapioca::Executor::MINIMUM_ITEMS_PER_WORKER = T.let(T.unsafe(nil), Integer)
1459
+
1460
+ # source://tapioca//lib/tapioca/gem/events.rb#5
1461
+ module Tapioca::Gem; end
1462
+
1463
+ # source://tapioca//lib/tapioca/gem/events.rb#77
1464
+ class Tapioca::Gem::ConstNodeAdded < ::Tapioca::Gem::NodeAdded
1465
+ # source://tapioca//lib/tapioca/gem/events.rb#84
1466
+ sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Const).void }
1467
+ def initialize(symbol, constant, node); end
1468
+
1469
+ # source://tapioca//lib/tapioca/gem/events.rb#81
1470
+ sig { returns(::RBI::Const) }
1471
+ def node; end
1472
+ end
1473
+
1474
+ # source://tapioca//lib/tapioca/gem/events.rb#26
1475
+ class Tapioca::Gem::ConstantFound < ::Tapioca::Gem::Event
1476
+ # source://tapioca//lib/tapioca/gem/events.rb#36
1477
+ sig { params(symbol: ::String, constant: ::BasicObject).void }
1478
+ def initialize(symbol, constant); end
1479
+
1480
+ # source://tapioca//lib/tapioca/gem/events.rb#33
1481
+ sig { returns(::BasicObject) }
1482
+ def constant; end
1483
+
1484
+ # source://tapioca//lib/tapioca/gem/events.rb#30
1485
+ sig { returns(::String) }
1486
+ def symbol; end
1487
+ end
1488
+
1489
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1490
+ #
1491
+ # source://tapioca//lib/tapioca/gem/events.rb#6
1492
+ class Tapioca::Gem::Event
1493
+ abstract!
1494
+ end
1495
+
1496
+ # source://tapioca//lib/tapioca/gem/events.rb#43
1497
+ class Tapioca::Gem::ForeignConstantFound < ::Tapioca::Gem::ConstantFound
1498
+ # source://tapioca//lib/tapioca/gem/events.rb#52
1499
+ sig { params(symbol: ::String, constant: ::Module).void }
1500
+ def initialize(symbol, constant); end
1501
+
1502
+ # source://tapioca//lib/tapioca/gem/events.rb#47
1503
+ sig { override.returns(::Module) }
1504
+ def constant; end
1505
+ end
1506
+
1507
+ # source://tapioca//lib/tapioca/gem/events.rb#103
1508
+ class Tapioca::Gem::ForeignScopeNodeAdded < ::Tapioca::Gem::ScopeNodeAdded; end
1509
+
1510
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#6
1511
+ module Tapioca::Gem::Listeners; end
1512
+
1513
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1514
+ #
1515
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#7
1516
+ class Tapioca::Gem::Listeners::Base
1517
+ abstract!
1518
+
1519
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#14
1520
+ sig { params(pipeline: ::Tapioca::Gem::Pipeline).void }
1521
+ def initialize(pipeline); end
1522
+
1523
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#19
1524
+ sig { params(event: ::Tapioca::Gem::NodeAdded).void }
1525
+ def dispatch(event); end
1526
+
1527
+ private
1528
+
1529
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#49
1530
+ sig { params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1531
+ def ignore?(event); end
1532
+
1533
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#37
1534
+ sig { params(event: ::Tapioca::Gem::ConstNodeAdded).void }
1535
+ def on_const(event); end
1536
+
1537
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#45
1538
+ sig { params(event: ::Tapioca::Gem::MethodNodeAdded).void }
1539
+ def on_method(event); end
1540
+
1541
+ # source://tapioca//lib/tapioca/gem/listeners/base.rb#41
1542
+ sig { params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1543
+ def on_scope(event); end
1544
+ end
1545
+
1546
+ # source://tapioca//lib/tapioca/gem/listeners/dynamic_mixins.rb#7
1547
+ class Tapioca::Gem::Listeners::DynamicMixins < ::Tapioca::Gem::Listeners::Base
1548
+ include ::Tapioca::Runtime::AttachedClassOf
1549
+ include ::Tapioca::Runtime::Reflection
1550
+
1551
+ private
1552
+
1553
+ # source://tapioca//lib/tapioca/gem/listeners/dynamic_mixins.rb#31
1554
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1555
+ def ignore?(event); end
1556
+
1557
+ # source://tapioca//lib/tapioca/gem/listeners/dynamic_mixins.rb#15
1558
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1559
+ def on_scope(event); end
1560
+ end
1561
+
1562
+ # source://tapioca//lib/tapioca/gem/listeners/foreign_constants.rb#7
1563
+ class Tapioca::Gem::Listeners::ForeignConstants < ::Tapioca::Gem::Listeners::Base
1564
+ include ::Tapioca::Runtime::AttachedClassOf
1565
+ include ::Tapioca::Runtime::Reflection
1566
+
1567
+ private
1568
+
1569
+ # source://tapioca//lib/tapioca/gem/listeners/foreign_constants.rb#60
1570
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1571
+ def ignore?(event); end
1572
+
1573
+ # source://tapioca//lib/tapioca/gem/listeners/foreign_constants.rb#55
1574
+ sig { params(location: ::String).returns(T::Boolean) }
1575
+ def mixed_in_by_gem?(location); end
1576
+
1577
+ # source://tapioca//lib/tapioca/gem/listeners/foreign_constants.rb#15
1578
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1579
+ def on_scope(event); end
1580
+ end
1581
+
1582
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#7
1583
+ class Tapioca::Gem::Listeners::Methods < ::Tapioca::Gem::Listeners::Base
1584
+ include ::Tapioca::SorbetHelper
1585
+ include ::Tapioca::RBIHelper
1586
+ include ::Tapioca::Runtime::AttachedClassOf
1587
+ include ::Tapioca::Runtime::Reflection
1588
+
1589
+ private
1590
+
1591
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#35
1592
+ sig do
1593
+ params(
1594
+ tree: ::RBI::Tree,
1595
+ module_name: ::String,
1596
+ mod: ::Module,
1597
+ for_visibility: T::Array[::Symbol],
1598
+ attached_class: T.nilable(::Module)
1599
+ ).void
1600
+ end
1601
+ def compile_directly_owned_methods(tree, module_name, mod, for_visibility = T.unsafe(nil), attached_class: T.unsafe(nil)); end
1602
+
1603
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#71
1604
+ sig do
1605
+ params(
1606
+ tree: ::RBI::Tree,
1607
+ symbol_name: ::String,
1608
+ constant: ::Module,
1609
+ method: T.nilable(::UnboundMethod),
1610
+ visibility: ::RBI::Visibility
1611
+ ).void
1612
+ end
1613
+ def compile_method(tree, symbol_name, constant, method, visibility = T.unsafe(nil)); end
1614
+
1615
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#211
1616
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1617
+ def ignore?(event); end
1618
+
1619
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#204
1620
+ sig { params(constant: ::Module).returns(T.nilable(::UnboundMethod)) }
1621
+ def initialize_method_for(constant); end
1622
+
1623
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#216
1624
+ sig { params(method: ::UnboundMethod).returns(T.untyped) }
1625
+ def lookup_signature_of(method); end
1626
+
1627
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#172
1628
+ sig { params(mod: ::Module).returns(T::Hash[::Symbol, T::Array[::Symbol]]) }
1629
+ def method_names_by_visibility(mod); end
1630
+
1631
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#196
1632
+ sig { params(attached_class: T.nilable(::Module), method_name: ::Symbol).returns(T.nilable(T::Boolean)) }
1633
+ def method_new_in_abstract_class?(attached_class, method_name); end
1634
+
1635
+ # Check whether the method is defined by the constant.
1636
+ #
1637
+ # In most cases, it works to check that the constant is the method owner. However,
1638
+ # in the case that a method is also defined in a module prepended to the constant, it
1639
+ # will be owned by the prepended module, not the constant.
1640
+ #
1641
+ # This method implements a better way of checking whether a constant defines a method.
1642
+ # It walks up the ancestor tree via the `super_method` method; if any of the super
1643
+ # methods are owned by the constant, it means that the constant declares the method.
1644
+ #
1645
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#158
1646
+ sig { params(method: ::UnboundMethod, constant: ::Module).returns(T::Boolean) }
1647
+ def method_owned_by_constant?(method, constant); end
1648
+
1649
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#16
1650
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1651
+ def on_scope(event); end
1652
+
1653
+ # source://tapioca//lib/tapioca/gem/listeners/methods.rb#181
1654
+ sig { params(constant: ::Module, method_name: ::String).returns(T::Boolean) }
1655
+ def struct_method?(constant, method_name); end
1656
+ end
1657
+
1658
+ # source://tapioca//lib/tapioca/gem/listeners/mixins.rb#7
1659
+ class Tapioca::Gem::Listeners::Mixins < ::Tapioca::Gem::Listeners::Base
1660
+ include ::Tapioca::Runtime::AttachedClassOf
1661
+ include ::Tapioca::Runtime::Reflection
1662
+
1663
+ private
1664
+
1665
+ # source://tapioca//lib/tapioca/gem/listeners/mixins.rb#42
1666
+ sig do
1667
+ params(
1668
+ tree: ::RBI::Tree,
1669
+ constant: ::Module,
1670
+ mods: T::Array[::Module],
1671
+ mixin_type: ::Tapioca::Runtime::Trackers::Mixin::Type
1672
+ ).void
1673
+ end
1674
+ def add_mixins(tree, constant, mods, mixin_type); end
1675
+
1676
+ # source://tapioca//lib/tapioca/gem/listeners/mixins.rb#84
1677
+ sig { params(mixin_name: ::String).returns(T::Boolean) }
1678
+ def filtered_mixin?(mixin_name); end
1679
+
1680
+ # source://tapioca//lib/tapioca/gem/listeners/mixins.rb#91
1681
+ sig { params(constant: ::Module).returns(T::Array[::Module]) }
1682
+ def interesting_ancestors_of(constant); end
1683
+
1684
+ # source://tapioca//lib/tapioca/gem/listeners/mixins.rb#75
1685
+ sig do
1686
+ params(
1687
+ constant: ::Module,
1688
+ mixin: ::Module,
1689
+ mixin_type: ::Tapioca::Runtime::Trackers::Mixin::Type
1690
+ ).returns(T::Boolean)
1691
+ end
1692
+ def mixed_in_by_gem?(constant, mixin, mixin_type); end
1693
+
1694
+ # source://tapioca//lib/tapioca/gem/listeners/mixins.rb#15
1695
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1696
+ def on_scope(event); end
1697
+ end
1698
+
1699
+ # source://tapioca//lib/tapioca/gem/listeners/remove_empty_payload_scopes.rb#7
1700
+ class Tapioca::Gem::Listeners::RemoveEmptyPayloadScopes < ::Tapioca::Gem::Listeners::Base
1701
+ include ::Tapioca::Runtime::AttachedClassOf
1702
+ include ::Tapioca::Runtime::Reflection
1703
+
1704
+ private
1705
+
1706
+ # source://tapioca//lib/tapioca/gem/listeners/remove_empty_payload_scopes.rb#20
1707
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1708
+ def ignore?(event); end
1709
+
1710
+ # source://tapioca//lib/tapioca/gem/listeners/remove_empty_payload_scopes.rb#15
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_enums.rb#7
1716
+ class Tapioca::Gem::Listeners::SorbetEnums < ::Tapioca::Gem::Listeners::Base
1717
+ private
1718
+
1719
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_enums.rb#28
1720
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1721
+ def ignore?(event); end
1722
+
1723
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_enums.rb#13
1724
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1725
+ def on_scope(event); end
1726
+ end
1727
+
1728
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_helpers.rb#7
1729
+ class Tapioca::Gem::Listeners::SorbetHelpers < ::Tapioca::Gem::Listeners::Base
1730
+ include ::Tapioca::Runtime::AttachedClassOf
1731
+ include ::Tapioca::Runtime::Reflection
1732
+
1733
+ private
1734
+
1735
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_helpers.rb#27
1736
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1737
+ def ignore?(event); end
1738
+
1739
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_helpers.rb#15
1740
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1741
+ def on_scope(event); end
1742
+ end
1743
+
1744
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_props.rb#7
1745
+ class Tapioca::Gem::Listeners::SorbetProps < ::Tapioca::Gem::Listeners::Base
1746
+ include ::Tapioca::SorbetHelper
1747
+ include ::Tapioca::RBIHelper
1748
+
1749
+ private
1750
+
1751
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_props.rb#33
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_props.rb#14
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_required_ancestors.rb#7
1761
+ class Tapioca::Gem::Listeners::SorbetRequiredAncestors < ::Tapioca::Gem::Listeners::Base
1762
+ private
1763
+
1764
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_required_ancestors.rb#23
1765
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1766
+ def ignore?(event); end
1767
+
1768
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_required_ancestors.rb#13
1769
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1770
+ def on_scope(event); end
1771
+ end
1772
+
1773
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#7
1774
+ class Tapioca::Gem::Listeners::SorbetSignatures < ::Tapioca::Gem::Listeners::Base
1775
+ include ::Tapioca::Runtime::AttachedClassOf
1776
+ include ::Tapioca::Runtime::Reflection
1777
+ include ::Tapioca::SorbetHelper
1778
+ include ::Tapioca::RBIHelper
1779
+
1780
+ private
1781
+
1782
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#26
1783
+ sig { params(signature: T.untyped, parameters: T::Array[[::Symbol, ::String]]).returns(::RBI::Sig) }
1784
+ def compile_signature(signature, parameters); end
1785
+
1786
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#79
1787
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1788
+ def ignore?(event); end
1789
+
1790
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#18
1791
+ sig { override.params(event: ::Tapioca::Gem::MethodNodeAdded).void }
1792
+ def on_method(event); end
1793
+
1794
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#68
1795
+ sig { params(signature: T.untyped).returns(T::Boolean) }
1796
+ def signature_final?(signature); end
1797
+ end
1798
+
1799
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_signatures.rb#13
1800
+ Tapioca::Gem::Listeners::SorbetSignatures::TYPE_PARAMETER_MATCHER = T.let(T.unsafe(nil), Regexp)
1801
+
1802
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#7
1803
+ class Tapioca::Gem::Listeners::SorbetTypeVariables < ::Tapioca::Gem::Listeners::Base
1804
+ include ::Tapioca::Runtime::AttachedClassOf
1805
+ include ::Tapioca::Runtime::Reflection
1806
+
1807
+ private
1808
+
1809
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#27
1810
+ sig { params(tree: ::RBI::Tree, constant: ::Module).void }
1811
+ def compile_type_variable_declarations(tree, constant); end
1812
+
1813
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#63
1814
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1815
+ def ignore?(event); end
1816
+
1817
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#50
1818
+ sig { params(type_variable: ::Tapioca::TypeVariableModule).returns(T.nilable(::RBI::Node)) }
1819
+ def node_from_type_variable(type_variable); end
1820
+
1821
+ # source://tapioca//lib/tapioca/gem/listeners/sorbet_type_variables.rb#15
1822
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1823
+ def on_scope(event); end
1824
+ end
1825
+
1826
+ # source://tapioca//lib/tapioca/gem/listeners/source_location.rb#7
1827
+ class Tapioca::Gem::Listeners::SourceLocation < ::Tapioca::Gem::Listeners::Base
1828
+ private
1829
+
1830
+ # source://tapioca//lib/tapioca/gem/listeners/source_location.rb#41
1831
+ sig { params(node: ::RBI::NodeWithComments, file: T.nilable(::String), line: T.nilable(::Integer)).void }
1832
+ def add_source_location_comment(node, file, line); end
1833
+
1834
+ # source://tapioca//lib/tapioca/gem/listeners/source_location.rb#13
1835
+ sig { override.params(event: ::Tapioca::Gem::ConstNodeAdded).void }
1836
+ def on_const(event); end
1837
+
1838
+ # source://tapioca//lib/tapioca/gem/listeners/source_location.rb#35
1839
+ sig { override.params(event: ::Tapioca::Gem::MethodNodeAdded).void }
1840
+ def on_method(event); end
1841
+
1842
+ # source://tapioca//lib/tapioca/gem/listeners/source_location.rb#19
1843
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1844
+ def on_scope(event); end
1845
+ end
1846
+
1847
+ # source://tapioca//lib/tapioca/gem/listeners/subconstants.rb#7
1848
+ class Tapioca::Gem::Listeners::Subconstants < ::Tapioca::Gem::Listeners::Base
1849
+ include ::Tapioca::Runtime::AttachedClassOf
1850
+ include ::Tapioca::Runtime::Reflection
1851
+
1852
+ private
1853
+
1854
+ # source://tapioca//lib/tapioca/gem/listeners/subconstants.rb#36
1855
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1856
+ def ignore?(event); end
1857
+
1858
+ # source://tapioca//lib/tapioca/gem/listeners/subconstants.rb#15
1859
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1860
+ def on_scope(event); end
1861
+ end
1862
+
1863
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#7
1864
+ class Tapioca::Gem::Listeners::YardDoc < ::Tapioca::Gem::Listeners::Base
1865
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#27
1866
+ sig { params(pipeline: ::Tapioca::Gem::Pipeline).void }
1867
+ def initialize(pipeline); end
1868
+
1869
+ private
1870
+
1871
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#55
1872
+ sig { params(name: ::String, sigs: T::Array[::RBI::Sig]).returns(T::Array[::RBI::Comment]) }
1873
+ def documentation_comments(name, sigs: T.unsafe(nil)); end
1874
+
1875
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#99
1876
+ sig { override.params(event: ::Tapioca::Gem::NodeAdded).returns(T::Boolean) }
1877
+ def ignore?(event); end
1878
+
1879
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#36
1880
+ sig { override.params(event: ::Tapioca::Gem::ConstNodeAdded).void }
1881
+ def on_const(event); end
1882
+
1883
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#46
1884
+ sig { override.params(event: ::Tapioca::Gem::MethodNodeAdded).void }
1885
+ def on_method(event); end
1886
+
1887
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#41
1888
+ sig { override.params(event: ::Tapioca::Gem::ScopeNodeAdded).void }
1889
+ def on_scope(event); end
1890
+ end
1891
+
1892
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#10
1893
+ Tapioca::Gem::Listeners::YardDoc::IGNORED_COMMENTS = T.let(T.unsafe(nil), Array)
1894
+
1895
+ # source://tapioca//lib/tapioca/gem/listeners/yard_doc.rb#24
1896
+ Tapioca::Gem::Listeners::YardDoc::IGNORED_SIG_TAGS = T.let(T.unsafe(nil), Array)
1897
+
1898
+ # source://tapioca//lib/tapioca/gem/events.rb#105
1899
+ class Tapioca::Gem::MethodNodeAdded < ::Tapioca::Gem::NodeAdded
1900
+ # source://tapioca//lib/tapioca/gem/events.rb#130
1901
+ sig do
1902
+ params(
1903
+ symbol: ::String,
1904
+ constant: ::Module,
1905
+ method: ::UnboundMethod,
1906
+ node: ::RBI::Method,
1907
+ signature: T.untyped,
1908
+ parameters: T::Array[[::Symbol, ::String]]
1909
+ ).void
1910
+ end
1911
+ def initialize(symbol, constant, method, node, signature, parameters); end
1912
+
1913
+ # source://tapioca//lib/tapioca/gem/events.rb#109
1914
+ sig { returns(::UnboundMethod) }
1915
+ def method; end
1916
+
1917
+ # source://tapioca//lib/tapioca/gem/events.rb#112
1918
+ sig { returns(::RBI::Method) }
1919
+ def node; end
1920
+
1921
+ # source://tapioca//lib/tapioca/gem/events.rb#118
1922
+ sig { returns(T::Array[[::Symbol, ::String]]) }
1923
+ def parameters; end
1924
+
1925
+ # source://tapioca//lib/tapioca/gem/events.rb#115
1926
+ sig { returns(T.untyped) }
1927
+ def signature; end
1928
+ end
1929
+
1930
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
1931
+ #
1932
+ # source://tapioca//lib/tapioca/gem/events.rb#57
1933
+ class Tapioca::Gem::NodeAdded < ::Tapioca::Gem::Event
1934
+ abstract!
1935
+
1936
+ # source://tapioca//lib/tapioca/gem/events.rb#70
1937
+ sig { params(symbol: ::String, constant: ::Module).void }
1938
+ def initialize(symbol, constant); end
1939
+
1940
+ # source://tapioca//lib/tapioca/gem/events.rb#67
1941
+ sig { returns(::Module) }
1942
+ def constant; end
1943
+
1944
+ # source://tapioca//lib/tapioca/gem/events.rb#64
1945
+ sig { returns(::String) }
1946
+ def symbol; end
1947
+ end
1948
+
1949
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#6
1950
+ class Tapioca::Gem::Pipeline
1951
+ include ::Tapioca::Runtime::AttachedClassOf
1952
+ include ::Tapioca::Runtime::Reflection
1953
+ include ::Tapioca::SorbetHelper
1954
+ include ::Tapioca::RBIHelper
1955
+
1956
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#27
1957
+ sig do
1958
+ params(
1959
+ gem: ::Tapioca::Gemfile::GemSpec,
1960
+ error_handler: T.proc.params(error: ::String).void,
1961
+ include_doc: T::Boolean,
1962
+ include_loc: T::Boolean
1963
+ ).void
1964
+ end
1965
+ def initialize(gem, error_handler:, include_doc: T.unsafe(nil), include_loc: T.unsafe(nil)); end
1966
+
1967
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#64
1968
+ sig { returns(::RBI::Tree) }
1969
+ def compile; end
1970
+
1971
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#135
1972
+ sig { params(name: T.any(::String, ::Symbol)).returns(T::Boolean) }
1973
+ def constant_in_gem?(name); end
1974
+
1975
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#17
1976
+ sig { returns(T.proc.params(error: ::String).void) }
1977
+ def error_handler; end
1978
+
1979
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#14
1980
+ sig { returns(::Tapioca::Gemfile::GemSpec) }
1981
+ def gem; end
1982
+
1983
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#153
1984
+ sig { params(method: ::UnboundMethod).returns(T::Boolean) }
1985
+ def method_in_gem?(method); end
1986
+
1987
+ # Helpers
1988
+ #
1989
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#163
1990
+ sig { params(constant: ::Module).returns(T.nilable(::String)) }
1991
+ def name_of(constant); end
1992
+
1993
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#87
1994
+ sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Const).void }
1995
+ def push_const(symbol, constant, node); end
1996
+
1997
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#77
1998
+ sig { params(symbol: ::String, constant: ::BasicObject).void }
1999
+ def push_constant(symbol, constant); end
2000
+
2001
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#82
2002
+ sig { params(symbol: ::String, constant: ::Module).void }
2003
+ def push_foreign_constant(symbol, constant); end
2004
+
2005
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#101
2006
+ sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void }
2007
+ def push_foreign_scope(symbol, constant, node); end
2008
+
2009
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#115
2010
+ sig do
2011
+ params(
2012
+ symbol: ::String,
2013
+ constant: ::Module,
2014
+ method: ::UnboundMethod,
2015
+ node: ::RBI::Method,
2016
+ signature: T.untyped,
2017
+ parameters: T::Array[[::Symbol, ::String]]
2018
+ ).void
2019
+ end
2020
+ def push_method(symbol, constant, method, node, signature, parameters); end
2021
+
2022
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#94
2023
+ sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void }
2024
+ def push_scope(symbol, constant, node); end
2025
+
2026
+ # Events handling
2027
+ #
2028
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#72
2029
+ sig { params(symbol: ::String).void }
2030
+ def push_symbol(symbol); end
2031
+
2032
+ # Constants and properties filtering
2033
+ #
2034
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#122
2035
+ sig { params(symbol_name: ::String).returns(T::Boolean) }
2036
+ def symbol_in_payload?(symbol_name); end
2037
+
2038
+ private
2039
+
2040
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#456
2041
+ sig { params(name: ::String).void }
2042
+ def add_to_alias_namespace(name); end
2043
+
2044
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#461
2045
+ sig { params(name: ::String).returns(T::Boolean) }
2046
+ def alias_namespaced?(name); end
2047
+
2048
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#260
2049
+ sig { params(name: ::String, constant: ::Module).void }
2050
+ def compile_alias(name, constant); end
2051
+
2052
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#246
2053
+ sig { params(symbol: ::String, constant: ::BasicObject).void }
2054
+ def compile_constant(symbol, constant); end
2055
+
2056
+ # Compiling
2057
+ #
2058
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#235
2059
+ sig { params(symbol: ::String, constant: ::Module).void }
2060
+ def compile_foreign_constant(symbol, constant); end
2061
+
2062
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#314
2063
+ sig { params(name: ::String, constant: ::Module).void }
2064
+ def compile_module(name, constant); end
2065
+
2066
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#281
2067
+ sig { params(name: ::String, value: ::BasicObject).void }
2068
+ def compile_object(name, value); end
2069
+
2070
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#325
2071
+ sig { params(name: ::String, constant: ::Module).returns(::RBI::Scope) }
2072
+ def compile_scope(name, constant); end
2073
+
2074
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#339
2075
+ sig { params(constant: T::Class[T.anything]).returns(T.nilable(::String)) }
2076
+ def compile_superclass(constant); end
2077
+
2078
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#437
2079
+ sig { params(constant: ::Module, strict: T::Boolean).returns(T::Boolean) }
2080
+ def defined_in_gem?(constant, strict: T.unsafe(nil)); end
2081
+
2082
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#193
2083
+ sig { params(event: ::Tapioca::Gem::Event).void }
2084
+ def dispatch(event); end
2085
+
2086
+ # Helpers
2087
+ #
2088
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#480
2089
+ sig { params(constant: T.all(::Module, ::T::Generic)).returns(::String) }
2090
+ def generic_name_of(constant); end
2091
+
2092
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#449
2093
+ sig { params(constant: ::Module).returns(T::Set[::String]) }
2094
+ def get_file_candidates(constant); end
2095
+
2096
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#178
2097
+ sig { params(gem: ::Tapioca::Gemfile::GemSpec).returns(T::Set[::String]) }
2098
+ def load_bootstrap_symbols(gem); end
2099
+
2100
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#496
2101
+ sig { params(constant: ::Module, class_name: T.nilable(::String)).returns(T.nilable(::String)) }
2102
+ def name_of_proxy_target(constant, class_name); end
2103
+
2104
+ # Events handling
2105
+ #
2106
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#188
2107
+ sig { returns(::Tapioca::Gem::Event) }
2108
+ def next_event; end
2109
+
2110
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#216
2111
+ sig { params(event: ::Tapioca::Gem::ConstantFound).void }
2112
+ def on_constant(event); end
2113
+
2114
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#228
2115
+ sig { params(event: ::Tapioca::Gem::NodeAdded).void }
2116
+ def on_node(event); end
2117
+
2118
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#207
2119
+ sig { params(event: ::Tapioca::Gem::SymbolFound).void }
2120
+ def on_symbol(event); end
2121
+
2122
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#468
2123
+ sig { params(name: ::String).void }
2124
+ def seen!(name); end
2125
+
2126
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#473
2127
+ sig { params(name: ::String).returns(T::Boolean) }
2128
+ def seen?(name); end
2129
+
2130
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#407
2131
+ sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2132
+ def skip_alias?(name, constant); end
2133
+
2134
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#395
2135
+ sig { params(name: ::String, constant: T.anything).returns(T::Boolean) }
2136
+ def skip_constant?(name, constant); end
2137
+
2138
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#424
2139
+ sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2140
+ def skip_foreign_constant?(name, constant); end
2141
+
2142
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#429
2143
+ sig { params(name: ::String, constant: ::Module).returns(T::Boolean) }
2144
+ def skip_module?(name, constant); end
2145
+
2146
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#416
2147
+ sig { params(name: ::String, constant: ::BasicObject).returns(T::Boolean) }
2148
+ def skip_object?(name, constant); end
2149
+
2150
+ # Constants and properties filtering
2151
+ #
2152
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#390
2153
+ sig { params(name: ::String).returns(T::Boolean) }
2154
+ def skip_symbol?(name); end
2155
+ end
2156
+
2157
+ # this looks something like:
2158
+ # "(eval at /path/to/file.rb:123)"
2159
+ # and we are just interested in the "/path/to/file.rb" part
2160
+ #
2161
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#132
2162
+ Tapioca::Gem::Pipeline::EVAL_SOURCE_FILE_PATTERN = T.let(T.unsafe(nil), Regexp)
2163
+
2164
+ # source://tapioca//lib/tapioca/gem/pipeline.rb#11
2165
+ Tapioca::Gem::Pipeline::IGNORED_SYMBOLS = T.let(T.unsafe(nil), Array)
2166
+
2167
+ # source://tapioca//lib/tapioca/gem/events.rb#90
2168
+ class Tapioca::Gem::ScopeNodeAdded < ::Tapioca::Gem::NodeAdded
2169
+ # source://tapioca//lib/tapioca/gem/events.rb#97
2170
+ sig { params(symbol: ::String, constant: ::Module, node: ::RBI::Scope).void }
2171
+ def initialize(symbol, constant, node); end
2172
+
2173
+ # source://tapioca//lib/tapioca/gem/events.rb#94
2174
+ sig { returns(::RBI::Scope) }
2175
+ def node; end
2176
+ end
2177
+
2178
+ # source://tapioca//lib/tapioca/gem/events.rb#13
2179
+ class Tapioca::Gem::SymbolFound < ::Tapioca::Gem::Event
2180
+ # source://tapioca//lib/tapioca/gem/events.rb#20
2181
+ sig { params(symbol: ::String).void }
2182
+ def initialize(symbol); end
2183
+
2184
+ # source://tapioca//lib/tapioca/gem/events.rb#17
2185
+ sig { returns(::String) }
2186
+ def symbol; end
2187
+ end
2188
+
2189
+ # source://tapioca//lib/tapioca/helpers/gem_helper.rb#5
2190
+ module Tapioca::GemHelper
2191
+ # source://tapioca//lib/tapioca/helpers/gem_helper.rb#9
2192
+ sig { params(app_dir: T.any(::Pathname, ::String), full_gem_path: ::String).returns(T::Boolean) }
2193
+ def gem_in_app_dir?(app_dir, full_gem_path); end
2194
+
2195
+ # source://tapioca//lib/tapioca/helpers/gem_helper.rb#17
2196
+ sig { params(full_gem_path: ::String).returns(T::Boolean) }
2197
+ def gem_in_bundle_path?(full_gem_path); end
2198
+
2199
+ # source://tapioca//lib/tapioca/helpers/gem_helper.rb#22
2200
+ sig { params(full_gem_path: ::String).returns(T::Boolean) }
2201
+ def gem_in_ruby_path?(full_gem_path); end
2202
+
2203
+ # source://tapioca//lib/tapioca/helpers/gem_helper.rb#27
2204
+ sig { params(path: T.any(::Pathname, ::String)).returns(::String) }
2205
+ def to_realpath(path); end
2206
+
2207
+ private
2208
+
2209
+ # source://tapioca//lib/tapioca/helpers/gem_helper.rb#36
2210
+ sig { params(path: T.any(::Pathname, ::String), dir: T.any(::Pathname, ::String)).returns(T::Boolean) }
2211
+ def path_in_dir?(path, dir); end
2212
+ end
2213
+
2214
+ # source://tapioca//lib/tapioca/gem_info.rb#5
2215
+ class Tapioca::GemInfo < ::T::Struct
2216
+ const :name, ::String
2217
+ const :version, ::Gem::Version
2218
+
2219
+ class << self
2220
+ # source://tapioca//lib/tapioca/gem_info.rb#13
2221
+ sig { params(spec: ::Bundler::LazySpecification).returns(::Tapioca::GemInfo) }
2222
+ def from_spec(spec); end
2223
+
2224
+ # source://sorbet-runtime/0.5.11647/lib/types/struct.rb#13
2225
+ def inherited(s); end
2226
+ end
2227
+ end
2228
+
2229
+ # source://tapioca//lib/tapioca/gemfile.rb#7
2230
+ class Tapioca::Gemfile
2231
+ # source://tapioca//lib/tapioca/gemfile.rb#27
2232
+ sig { params(excluded_gems: T::Array[::String]).void }
2233
+ def initialize(excluded_gems); end
2234
+
2235
+ # source://tapioca//lib/tapioca/gemfile.rb#18
2236
+ sig { returns(::Bundler::Definition) }
2237
+ def definition; end
2238
+
2239
+ # source://tapioca//lib/tapioca/gemfile.rb#21
2240
+ sig { returns(T::Array[::Tapioca::Gemfile::GemSpec]) }
2241
+ def dependencies; end
2242
+
2243
+ # source://tapioca//lib/tapioca/gemfile.rb#40
2244
+ sig { params(gem_name: ::String).returns(T.nilable(::Tapioca::Gemfile::GemSpec)) }
2245
+ def gem(gem_name); end
2246
+
2247
+ # source://tapioca//lib/tapioca/gemfile.rb#24
2248
+ sig { returns(T::Array[::String]) }
2249
+ def missing_specs; end
2250
+
2251
+ # source://tapioca//lib/tapioca/gemfile.rb#45
2252
+ sig { void }
2253
+ def require_bundle; end
2254
+
2255
+ private
2256
+
2257
+ # source://tapioca//lib/tapioca/gemfile.rb#92
2258
+ sig { returns(::String) }
2259
+ def dir; end
2260
+
2261
+ # source://tapioca//lib/tapioca/gemfile.rb#54
2262
+ sig { returns(::File) }
2263
+ def gemfile; end
2264
+
2265
+ # source://tapioca//lib/tapioca/gemfile.rb#87
2266
+ sig { returns(T::Array[::Symbol]) }
2267
+ def groups; end
2268
+
2269
+ # source://tapioca//lib/tapioca/gemfile.rb#57
2270
+ sig { returns([T::Array[::Tapioca::Gemfile::GemSpec], T::Array[::String]]) }
2271
+ def load_dependencies; end
2272
+
2273
+ # @return [File]
2274
+ #
2275
+ # source://tapioca//lib/tapioca/gemfile.rb#54
2276
+ def lockfile; end
2277
+
2278
+ # source://tapioca//lib/tapioca/gemfile.rb#68
2279
+ sig { returns([T::Enumerable[T.any(::Bundler::StubSpecification, ::Gem::Specification)], T::Array[::String]]) }
2280
+ def materialize_deps; end
2281
+
2282
+ # source://tapioca//lib/tapioca/gemfile.rb#82
2283
+ sig { returns(::Bundler::Runtime) }
2284
+ def runtime; end
2285
+ end
2286
+
2287
+ # source://tapioca//lib/tapioca/gemfile.rb#96
2288
+ class Tapioca::Gemfile::GemSpec
2289
+ include ::Tapioca::GemHelper
2290
+
2291
+ # source://tapioca//lib/tapioca/gemfile.rb#136
2292
+ sig { params(spec: T.any(::Bundler::StubSpecification, ::Gem::Specification)).void }
2293
+ def initialize(spec); end
2294
+
2295
+ # source://tapioca//lib/tapioca/gemfile.rb#146
2296
+ sig { params(other: ::BasicObject).returns(T::Boolean) }
2297
+ def ==(other); end
2298
+
2299
+ # source://tapioca//lib/tapioca/gemfile.rb#171
2300
+ sig { params(path: ::String).returns(T::Boolean) }
2301
+ def contains_path?(path); end
2302
+
2303
+ # source://tapioca//lib/tapioca/gemfile.rb#161
2304
+ sig { returns(T::Array[::Gem::Dependency]) }
2305
+ def dependencies; end
2306
+
2307
+ # source://tapioca//lib/tapioca/gemfile.rb#201
2308
+ sig { returns(T::Boolean) }
2309
+ def export_rbi_files?; end
2310
+
2311
+ # source://tapioca//lib/tapioca/gemfile.rb#196
2312
+ sig { returns(T::Array[::String]) }
2313
+ def exported_rbi_files; end
2314
+
2315
+ # source://tapioca//lib/tapioca/gemfile.rb#206
2316
+ sig { returns(::RBI::MergeTree) }
2317
+ def exported_rbi_tree; end
2318
+
2319
+ # source://tapioca//lib/tapioca/gemfile.rb#133
2320
+ sig { returns(T::Array[::Pathname]) }
2321
+ def files; end
2322
+
2323
+ # source://tapioca//lib/tapioca/gemfile.rb#130
2324
+ sig { returns(::String) }
2325
+ def full_gem_path; end
2326
+
2327
+ # source://tapioca//lib/tapioca/gemfile.rb#151
2328
+ sig { params(gemfile_dir: ::String).returns(T::Boolean) }
2329
+ def ignore?(gemfile_dir); end
2330
+
2331
+ # source://tapioca//lib/tapioca/gemfile.rb#156
2332
+ sig { returns(::String) }
2333
+ def name; end
2334
+
2335
+ # source://tapioca//lib/tapioca/gemfile.rb#180
2336
+ sig { void }
2337
+ def parse_yard_docs; end
2338
+
2339
+ # source://tapioca//lib/tapioca/gemfile.rb#166
2340
+ sig { returns(::String) }
2341
+ def rbi_file_name; end
2342
+
2343
+ # source://tapioca//lib/tapioca/gemfile.rb#218
2344
+ sig { params(file: ::Pathname).returns(::Pathname) }
2345
+ def relative_path_for(file); end
2346
+
2347
+ # @return [String]
2348
+ #
2349
+ # source://tapioca//lib/tapioca/gemfile.rb#130
2350
+ def version; end
2351
+
2352
+ private
2353
+
2354
+ # source://tapioca//lib/tapioca/gemfile.rb#229
2355
+ sig { returns(T::Array[::Pathname]) }
2356
+ def collect_files; end
2357
+
2358
+ # source://tapioca//lib/tapioca/gemfile.rb#244
2359
+ sig { returns(T.nilable(T::Boolean)) }
2360
+ def default_gem?; end
2361
+
2362
+ # source://tapioca//lib/tapioca/gemfile.rb#303
2363
+ sig { returns(T::Boolean) }
2364
+ def gem_ignored?; end
2365
+
2366
+ # source://tapioca//lib/tapioca/gemfile.rb#282
2367
+ sig { params(path: ::String).returns(T::Boolean) }
2368
+ def has_parent_gemspec?(path); end
2369
+
2370
+ # source://tapioca//lib/tapioca/gemfile.rb#249
2371
+ sig { returns(::Regexp) }
2372
+ def require_paths_prefix_matcher; end
2373
+
2374
+ # source://tapioca//lib/tapioca/gemfile.rb#261
2375
+ sig { params(file: ::String).returns(::Pathname) }
2376
+ def resolve_to_ruby_lib_dir(file); end
2377
+
2378
+ # source://tapioca//lib/tapioca/gemfile.rb#275
2379
+ sig { returns(::String) }
2380
+ def version_string; end
2381
+
2382
+ class << self
2383
+ # source://tapioca//lib/tapioca/gemfile.rb#104
2384
+ sig { returns(T::Hash[::String, ::Tapioca::Gemfile::GemSpec]) }
2385
+ def spec_lookup_by_file_path; end
2386
+ end
2387
+ end
2388
+
2389
+ # source://tapioca//lib/tapioca/gemfile.rb#116
2390
+ Tapioca::Gemfile::GemSpec::IGNORED_GEMS = T.let(T.unsafe(nil), Array)
2391
+
2392
+ # source://tapioca//lib/tapioca/gemfile.rb#10
2393
+ Tapioca::Gemfile::Spec = T.type_alias { T.any(::Bundler::StubSpecification, ::Gem::Specification) }
2394
+
2395
+ # source://tapioca//lib/tapioca.rb#33
2396
+ Tapioca::LIB_ROOT_DIR = T.let(T.unsafe(nil), String)
2397
+
2398
+ # source://tapioca//lib/tapioca/loaders/loader.rb#5
2399
+ module Tapioca::Loaders; end
2400
+
2401
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#6
2402
+ class Tapioca::Loaders::Dsl < ::Tapioca::Loaders::Loader
2403
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#38
2404
+ sig do
2405
+ params(
2406
+ tapioca_path: ::String,
2407
+ eager_load: T::Boolean,
2408
+ app_root: ::String,
2409
+ halt_upon_load_error: T::Boolean
2410
+ ).void
2411
+ end
2412
+ def initialize(tapioca_path:, eager_load: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end
2413
+
2414
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#27
2415
+ sig { override.void }
2416
+ def load; end
2417
+
2418
+ protected
2419
+
2420
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#88
2421
+ sig { void }
2422
+ def load_application; end
2423
+
2424
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#63
2425
+ sig { void }
2426
+ def load_dsl_compilers; end
2427
+
2428
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#48
2429
+ sig { void }
2430
+ def load_dsl_extensions; end
2431
+
2432
+ class << self
2433
+ # source://tapioca//lib/tapioca/loaders/dsl.rb#15
2434
+ sig do
2435
+ params(
2436
+ tapioca_path: ::String,
2437
+ eager_load: T::Boolean,
2438
+ app_root: ::String,
2439
+ halt_upon_load_error: T::Boolean
2440
+ ).void
2441
+ end
2442
+ def load_application(tapioca_path:, eager_load: T.unsafe(nil), app_root: T.unsafe(nil), halt_upon_load_error: T.unsafe(nil)); end
2443
+ end
2444
+ end
2445
+
2446
+ # source://tapioca//lib/tapioca/loaders/gem.rb#6
2447
+ class Tapioca::Loaders::Gem < ::Tapioca::Loaders::Loader
2448
+ # source://tapioca//lib/tapioca/loaders/gem.rb#49
2449
+ sig do
2450
+ params(
2451
+ bundle: ::Tapioca::Gemfile,
2452
+ prerequire: T.nilable(::String),
2453
+ postrequire: ::String,
2454
+ default_command: ::String,
2455
+ halt_upon_load_error: T::Boolean
2456
+ ).void
2457
+ end
2458
+ def initialize(bundle:, prerequire:, postrequire:, default_command:, halt_upon_load_error:); end
2459
+
2460
+ # source://tapioca//lib/tapioca/loaders/gem.rb#34
2461
+ sig { override.void }
2462
+ def load; end
2463
+
2464
+ protected
2465
+
2466
+ # source://tapioca//lib/tapioca/loaders/gem.rb#80
2467
+ sig { params(file: ::String, error: ::LoadError).void }
2468
+ def explain_failed_require(file, error); end
2469
+
2470
+ # source://tapioca//lib/tapioca/loaders/gem.rb#60
2471
+ sig { void }
2472
+ def require_gem_file; end
2473
+
2474
+ class << self
2475
+ # source://tapioca//lib/tapioca/loaders/gem.rb#21
2476
+ sig do
2477
+ params(
2478
+ bundle: ::Tapioca::Gemfile,
2479
+ prerequire: T.nilable(::String),
2480
+ postrequire: ::String,
2481
+ default_command: ::String,
2482
+ halt_upon_load_error: T::Boolean
2483
+ ).void
2484
+ end
2485
+ def load_application(bundle:, prerequire:, postrequire:, default_command:, halt_upon_load_error:); end
2486
+ end
2487
+ end
2488
+
2489
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
2490
+ #
2491
+ # source://tapioca//lib/tapioca/loaders/loader.rb#6
2492
+ class Tapioca::Loaders::Loader
2493
+ include ::Thor::Base
2494
+ include ::Thor::Invocation
2495
+ include ::Thor::Shell
2496
+ include ::Tapioca::CliHelper
2497
+ include ::Tapioca::GemHelper
2498
+ extend ::Thor::Base::ClassMethods
2499
+ extend ::Thor::Invocation::ClassMethods
2500
+
2501
+ abstract!
2502
+
2503
+ # @abstract
2504
+ #
2505
+ # source://tapioca//lib/tapioca/loaders/loader.rb#17
2506
+ sig { abstract.void }
2507
+ def load; end
2508
+
2509
+ private
2510
+
2511
+ # Rails 7.2 renamed `eager_load_paths` to `all_eager_load_paths`, which maintains the same original functionality.
2512
+ # The `eager_load_paths` method still exists, but doesn't return all paths anymore and causes Tapioca to miss some
2513
+ # engine paths. The following commit is the change:
2514
+ # https://github.com/rails/rails/commit/ebfca905db14020589c22e6937382e6f8f687664
2515
+ #
2516
+ # @param engine [T.class_of(Rails::Engine)]
2517
+ # @return [Array<String>]
2518
+ #
2519
+ # source://tapioca//lib/tapioca/loaders/loader.rb#234
2520
+ def eager_load_paths(engine); end
2521
+
2522
+ # source://tapioca//lib/tapioca/loaders/loader.rb#199
2523
+ sig { void }
2524
+ def eager_load_rails_app; end
2525
+
2526
+ # @return [Array<T.class_of(Rails::Engine)>]
2527
+ #
2528
+ # source://tapioca//lib/tapioca/loaders/loader.rb#178
2529
+ def engines; end
2530
+
2531
+ # source://tapioca//lib/tapioca/loaders/loader.rb#29
2532
+ sig do
2533
+ params(
2534
+ gemfile: ::Tapioca::Gemfile,
2535
+ initialize_file: T.nilable(::String),
2536
+ require_file: T.nilable(::String),
2537
+ halt_upon_load_error: T::Boolean
2538
+ ).void
2539
+ end
2540
+ def load_bundle(gemfile, initialize_file, require_file, halt_upon_load_error); end
2541
+
2542
+ # source://tapioca//lib/tapioca/loaders/loader.rb#136
2543
+ sig { void }
2544
+ def load_engines_in_classic_mode; end
2545
+
2546
+ # source://tapioca//lib/tapioca/loaders/loader.rb#114
2547
+ sig { void }
2548
+ def load_engines_in_zeitwerk_mode; end
2549
+
2550
+ # source://tapioca//lib/tapioca/loaders/loader.rb#49
2551
+ sig do
2552
+ params(
2553
+ environment_load: T::Boolean,
2554
+ eager_load: T::Boolean,
2555
+ app_root: ::String,
2556
+ halt_upon_load_error: T::Boolean
2557
+ ).void
2558
+ end
2559
+ 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
2560
+
2561
+ # source://tapioca//lib/tapioca/loaders/loader.rb#89
2562
+ sig { void }
2563
+ def load_rails_engines; end
2564
+
2565
+ # source://tapioca//lib/tapioca/loaders/loader.rb#220
2566
+ sig { params(file: T.nilable(::String)).void }
2567
+ def require_helper(file); end
2568
+
2569
+ # source://tapioca//lib/tapioca/loaders/loader.rb#103
2570
+ def run_initializers; end
2571
+
2572
+ # source://tapioca//lib/tapioca/loaders/loader.rb#192
2573
+ sig { params(path: ::String).void }
2574
+ def safe_require(path); end
2575
+
2576
+ # source://tapioca//lib/tapioca/loaders/loader.rb#161
2577
+ sig { params(blk: T.proc.void).void }
2578
+ def with_rails_application(&blk); end
2579
+
2580
+ # source://tapioca//lib/tapioca/loaders/loader.rb#154
2581
+ sig { returns(T::Boolean) }
2582
+ def zeitwerk_mode?; end
2583
+ end
2584
+
2585
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#5
2586
+ module Tapioca::RBIFilesHelper
2587
+ requires_ancestor { Tapioca::SorbetHelper }
2588
+ requires_ancestor { Thor::Shell }
2589
+
2590
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#48
2591
+ sig do
2592
+ params(
2593
+ index: ::RBI::Index,
2594
+ shim_rbi_dir: ::String,
2595
+ todo_rbi_file: ::String
2596
+ ).returns(T::Hash[::String, T::Array[::RBI::Node]])
2597
+ end
2598
+ def duplicated_nodes_from_index(index, shim_rbi_dir:, todo_rbi_file:); end
2599
+
2600
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#13
2601
+ sig { params(index: ::RBI::Index, kind: ::String, file: ::String).void }
2602
+ def index_rbi(index, kind, file); end
2603
+
2604
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#25
2605
+ sig { params(index: ::RBI::Index, kind: ::String, dir: ::String, number_of_workers: T.nilable(::Integer)).void }
2606
+ def index_rbis(index, kind, dir, number_of_workers:); end
2607
+
2608
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#65
2609
+ sig { params(loc: ::RBI::Loc, path_prefix: T.nilable(::String)).returns(::String) }
2610
+ def location_to_payload_url(loc, path_prefix:); end
2611
+
2612
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#86
2613
+ sig do
2614
+ params(
2615
+ command: ::String,
2616
+ gem_dir: ::String,
2617
+ dsl_dir: ::String,
2618
+ auto_strictness: T::Boolean,
2619
+ gems: T::Array[::Tapioca::Gemfile::GemSpec],
2620
+ compilers: T::Enumerable[T.class_of(Tapioca::Dsl::Compiler)]
2621
+ ).void
2622
+ end
2623
+ def validate_rbi_files(command:, gem_dir:, dsl_dir:, auto_strictness:, gems: T.unsafe(nil), compilers: T.unsafe(nil)); end
2624
+
2625
+ private
2626
+
2627
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#223
2628
+ sig { params(nodes: T::Array[::RBI::Node]).returns(T::Array[::RBI::Scope]) }
2629
+ def extract_empty_scopes(nodes); end
2630
+
2631
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#228
2632
+ sig { params(nodes: T::Array[::RBI::Node]).returns(T::Array[T.any(::RBI::Attr, ::RBI::Method)]) }
2633
+ def extract_methods_and_attrs(nodes); end
2634
+
2635
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#238
2636
+ sig { params(nodes: T::Array[::RBI::Node]).returns(T::Array[T.any(::RBI::Mixin, ::RBI::RequiresAncestor)]) }
2637
+ def extract_mixins(nodes); end
2638
+
2639
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#248
2640
+ sig do
2641
+ params(
2642
+ nodes: T::Array[T.any(::RBI::Attr, ::RBI::Method)]
2643
+ ).returns(T::Array[T.any(::RBI::Attr, ::RBI::Method)])
2644
+ end
2645
+ def extract_nodes_with_sigs(nodes); end
2646
+
2647
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#216
2648
+ sig do
2649
+ params(
2650
+ nodes: T::Array[::RBI::Node],
2651
+ shim_rbi_dir: ::String,
2652
+ todo_rbi_file: ::String
2653
+ ).returns(T::Array[::RBI::Node])
2654
+ end
2655
+ def extract_shims_and_todos(nodes, shim_rbi_dir:, todo_rbi_file:); end
2656
+
2657
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#280
2658
+ sig { params(path: ::String).returns(::String) }
2659
+ def gem_name_from_rbi_path(path); end
2660
+
2661
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#155
2662
+ sig { params(index: ::RBI::Index, files: T::Array[::String], number_of_workers: T.nilable(::Integer)).void }
2663
+ def parse_and_index_files(index, files, number_of_workers:); end
2664
+
2665
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#171
2666
+ sig { params(nodes: T::Array[::RBI::Node], shim_rbi_dir: ::String, todo_rbi_file: ::String).returns(T::Boolean) }
2667
+ def shims_or_todos_have_duplicates?(nodes, shim_rbi_dir:, todo_rbi_file:); end
2668
+
2669
+ # source://tapioca//lib/tapioca/helpers/rbi_files_helper.rb#253
2670
+ sig { params(errors: T::Array[::Spoom::Sorbet::Errors::Error], gem_dir: ::String).void }
2671
+ def update_gem_rbis_strictnesses(errors, gem_dir); end
2672
+ end
2673
+
2674
+ # source://tapioca//lib/tapioca/rbi_formatter.rb#5
2675
+ class Tapioca::RBIFormatter < ::RBI::Formatter
2676
+ # source://tapioca//lib/tapioca/rbi_formatter.rb#24
2677
+ sig { params(file: ::RBI::File).void }
2678
+ def write_empty_body_comment!(file); end
2679
+
2680
+ # source://tapioca//lib/tapioca/rbi_formatter.rb#15
2681
+ sig { params(file: ::RBI::File, command: ::String, reason: T.nilable(::String)).void }
2682
+ def write_header!(file, command, reason: T.unsafe(nil)); end
2683
+ end
2684
+
2685
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#5
2686
+ module Tapioca::RBIHelper
2687
+ include ::Tapioca::SorbetHelper
2688
+ extend ::Tapioca::SorbetHelper
2689
+ extend ::Tapioca::RBIHelper
2690
+
2691
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#91
2692
+ sig { params(type: ::String).returns(::String) }
2693
+ def as_nilable_type(type); end
2694
+
2695
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#100
2696
+ sig { params(type: ::String).returns(::String) }
2697
+ def as_non_nilable_type(type); end
2698
+
2699
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#72
2700
+ sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
2701
+ def create_block_param(name, type:); end
2702
+
2703
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#62
2704
+ sig { params(name: ::String, type: ::String, default: ::String).returns(::RBI::TypedParam) }
2705
+ def create_kw_opt_param(name, type:, default:); end
2706
+
2707
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#57
2708
+ sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
2709
+ def create_kw_param(name, type:); end
2710
+
2711
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#67
2712
+ sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
2713
+ def create_kw_rest_param(name, type:); end
2714
+
2715
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#47
2716
+ sig { params(name: ::String, type: ::String, default: ::String).returns(::RBI::TypedParam) }
2717
+ def create_opt_param(name, type:, default:); end
2718
+
2719
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#42
2720
+ sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
2721
+ def create_param(name, type:); end
2722
+
2723
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#52
2724
+ sig { params(name: ::String, type: ::String).returns(::RBI::TypedParam) }
2725
+ def create_rest_param(name, type:); end
2726
+
2727
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#77
2728
+ sig { params(param: ::RBI::Param, type: ::String).returns(::RBI::TypedParam) }
2729
+ def create_typed_param(param, type); end
2730
+
2731
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#82
2732
+ sig { params(sig_string: ::String).returns(::String) }
2733
+ def sanitize_signature_types(sig_string); end
2734
+
2735
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#109
2736
+ sig { params(name: ::String).returns(T::Boolean) }
2737
+ def valid_method_name?(name); end
2738
+
2739
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#114
2740
+ sig { params(name: ::String).returns(T::Boolean) }
2741
+ def valid_parameter_name?(name); end
2742
+
2743
+ class << self
2744
+ # source://tapioca//lib/tapioca/helpers/rbi_helper.rb#23
2745
+ sig do
2746
+ params(
2747
+ type: ::String,
2748
+ variance: ::Symbol,
2749
+ fixed: T.nilable(::String),
2750
+ upper: T.nilable(::String),
2751
+ lower: T.nilable(::String)
2752
+ ).returns(::String)
2753
+ end
2754
+ def serialize_type_variable(type, variance, fixed, upper, lower); end
2755
+ end
2756
+ end
2757
+
2758
+ # source://tapioca//lib/tapioca/repo_index.rb#5
2759
+ class Tapioca::RepoIndex
2760
+ # source://tapioca//lib/tapioca/repo_index.rb#26
2761
+ sig { void }
2762
+ def initialize; end
2763
+
2764
+ # source://tapioca//lib/tapioca/repo_index.rb#31
2765
+ sig { params(gem_name: ::String).void }
2766
+ def <<(gem_name); end
2767
+
2768
+ # source://tapioca//lib/tapioca/repo_index.rb#36
2769
+ sig { returns(T::Enumerable[::String]) }
2770
+ def gems; end
2771
+
2772
+ # source://tapioca//lib/tapioca/repo_index.rb#41
2773
+ sig { params(gem_name: ::String).returns(T::Boolean) }
2774
+ def has_gem?(gem_name); end
2775
+
2776
+ class << self
2777
+ # source://tapioca//lib/tapioca/repo_index.rb#18
2778
+ sig { params(hash: T::Hash[::String, T::Hash[T.untyped, T.untyped]]).returns(Tapioca::RepoIndex) }
2779
+ def from_hash(hash); end
2780
+
2781
+ # source://tapioca//lib/tapioca/repo_index.rb#13
2782
+ sig { params(json: ::String).returns(Tapioca::RepoIndex) }
2783
+ def from_json(json); end
2784
+ end
2785
+ end
2786
+
2787
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#5
2788
+ module Tapioca::Runtime; end
2789
+
2790
+ # This module should only be included when running versions of Ruby
2791
+ # older than 3.2. Because the Class#attached_object method is not
2792
+ # available, it implements finding the attached class of a singleton
2793
+ # class by iterating through ObjectSpace.
2794
+ module Tapioca::Runtime::AttachedClassOf
2795
+ # source://tapioca//lib/tapioca/runtime/attached_class_of_legacy.rb#17
2796
+ sig { params(singleton_class: ::Class).returns(T.nilable(::Module)) }
2797
+ def attached_class_of(singleton_class); end
2798
+ end
2799
+
2800
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#6
2801
+ class Tapioca::Runtime::DynamicMixinCompiler
2802
+ include ::Tapioca::Runtime::AttachedClassOf
2803
+ include ::Tapioca::Runtime::Reflection
2804
+
2805
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#20
2806
+ sig { params(constant: ::Module).void }
2807
+ def initialize(constant); end
2808
+
2809
+ # @return [Array<Symbol>]
2810
+ #
2811
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#14
2812
+ def class_attribute_predicates; end
2813
+
2814
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#14
2815
+ sig { returns(T::Array[::Symbol]) }
2816
+ def class_attribute_readers; end
2817
+
2818
+ # @return [Array<Symbol>]
2819
+ #
2820
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#14
2821
+ def class_attribute_writers; end
2822
+
2823
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#137
2824
+ sig { params(tree: ::RBI::Tree).void }
2825
+ def compile_class_attributes(tree); end
2826
+
2827
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#180
2828
+ sig { params(tree: ::RBI::Tree).returns([T::Array[::Module], T::Array[::Module]]) }
2829
+ def compile_mixes_in_class_methods(tree); end
2830
+
2831
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#11
2832
+ sig { returns(T::Array[::Module]) }
2833
+ def dynamic_extends; end
2834
+
2835
+ # @return [Array<Module>]
2836
+ #
2837
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#11
2838
+ def dynamic_includes; end
2839
+
2840
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#132
2841
+ sig { returns(T::Boolean) }
2842
+ def empty_attributes?; end
2843
+
2844
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#222
2845
+ sig { params(qualified_mixin_name: ::String).returns(T::Boolean) }
2846
+ def filtered_mixin?(qualified_mixin_name); end
2847
+
2848
+ # @return [Array<Symbol>]
2849
+ #
2850
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#17
2851
+ def instance_attribute_predicates; end
2852
+
2853
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#17
2854
+ sig { returns(T::Array[::Symbol]) }
2855
+ def instance_attribute_readers; end
2856
+
2857
+ # @return [Array<Symbol>]
2858
+ #
2859
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#17
2860
+ def instance_attribute_writers; end
2861
+
2862
+ # source://tapioca//lib/tapioca/runtime/dynamic_mixin_compiler.rb#215
2863
+ sig { params(mod: ::Module, dynamic_extends: T::Array[::Module]).returns(T::Boolean) }
2864
+ def module_included_by_another_dynamic_extend?(mod, dynamic_extends); end
2865
+ end
2866
+
2867
+ # This class is responsible for storing and looking up information related to generic types.
2868
+ #
2869
+ # The class stores 2 different kinds of data, in two separate lookup tables:
2870
+ # 1. a lookup of generic type instances by name: `@generic_instances`
2871
+ # 2. a lookup of type variable serializer by constant and type variable
2872
+ # instance: `@type_variables`
2873
+ #
2874
+ # By storing the above data, we can cheaply query each constant against this registry
2875
+ # to see if it declares any generic type variables. This becomes a simple lookup in the
2876
+ # `@type_variables` hash table with the given constant.
2877
+ #
2878
+ # If there is no entry, then we can cheaply know that we can skip generic type
2879
+ # information generation for this type.
2880
+ #
2881
+ # On the other hand, if we get a result, then the result will be a hash of type
2882
+ # variable to type variable serializers. This allows us to associate type variables
2883
+ # to the constant names that represent them, easily.
2884
+ #
2885
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#23
2886
+ module Tapioca::Runtime::GenericTypeRegistry
2887
+ class << self
2888
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#80
2889
+ sig { params(instance: ::Object).returns(T::Boolean) }
2890
+ def generic_type_instance?(instance); end
2891
+
2892
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#85
2893
+ sig { params(constant: ::Module).returns(T.nilable(T::Array[::Tapioca::TypeVariableModule])) }
2894
+ def lookup_type_variables(constant); end
2895
+
2896
+ # This method is responsible for building the name of the instantiated concrete type
2897
+ # and cloning the given constant so that we can return a type that is the same
2898
+ # as the current type but is a different instance and has a different name method.
2899
+ #
2900
+ # We cache those cloned instances by their name in `@generic_instances`, so that
2901
+ # we don't keep instantiating a new type every single time it is referenced.
2902
+ # For example, `[Foo[Integer], Foo[Integer], Foo[Integer], Foo[String]]` will only
2903
+ # result in 2 clones (1 for `Foo[Integer]` and another for `Foo[String]`) and
2904
+ # 2 hash lookups (for the other two `Foo[Integer]`s).
2905
+ #
2906
+ # This method returns the created or cached clone of the constant.
2907
+ #
2908
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#65
2909
+ sig { params(constant: T.untyped, types: T.untyped).returns(::Module) }
2910
+ def register_type(constant, types); end
2911
+
2912
+ # This method is called from intercepted calls to `type_member` and `type_template`.
2913
+ # We get passed all the arguments to those methods, as well as the `T::Types::TypeVariable`
2914
+ # instance generated by the Sorbet defined `type_member`/`type_template` call on `T::Generic`.
2915
+ #
2916
+ # This method creates a `String` with that data and stores it in the
2917
+ # `@type_variables` lookup table, keyed by the `constant` and `type_variable`.
2918
+ #
2919
+ # Finally, the original `type_variable` is returned from this method, so that the caller
2920
+ # can return it from the original methods as well.
2921
+ #
2922
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#104
2923
+ sig { params(constant: T.untyped, type_variable: ::Tapioca::TypeVariableModule).void }
2924
+ def register_type_variable(constant, type_variable); end
2925
+
2926
+ private
2927
+
2928
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#113
2929
+ sig { params(constant: ::Module, name: ::String).returns(::Module) }
2930
+ def create_generic_type(constant, name); end
2931
+
2932
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#155
2933
+ sig { params(constant: T::Class[T.anything]).returns(T::Class[T.anything]) }
2934
+ def create_safe_subclass(constant); end
2935
+
2936
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#182
2937
+ sig { params(constant: ::Module).returns(T::Array[::Tapioca::TypeVariableModule]) }
2938
+ def lookup_or_initialize_type_variables(constant); end
2939
+ end
2940
+ end
2941
+
2942
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#34
2943
+ class Tapioca::Runtime::GenericTypeRegistry::GenericType < ::T::Types::Simple
2944
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#38
2945
+ sig { params(raw_type: ::Module, underlying_type: ::Module).void }
2946
+ def initialize(raw_type, underlying_type); end
2947
+
2948
+ # source://tapioca//lib/tapioca/runtime/generic_type_registry.rb#45
2949
+ sig { override.params(obj: T.untyped).returns(T::Boolean) }
2950
+ def valid?(obj); end
2951
+ end
2952
+
2953
+ module Tapioca::Runtime::Reflection
2954
+ include ::Tapioca::Runtime::AttachedClassOf
2955
+ extend ::Tapioca::Runtime::AttachedClassOf
2956
+ extend ::Tapioca::Runtime::Reflection
2957
+
2958
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#207
2959
+ sig { params(constant: ::Module).returns(T.untyped) }
2960
+ def abstract_type_of(constant); end
2961
+
2962
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#77
2963
+ sig { params(constant: ::Module).returns(T::Array[::Module]) }
2964
+ def ancestors_of(constant); end
2965
+
2966
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#92
2967
+ sig { params(object: ::BasicObject, other: ::BasicObject).returns(T::Boolean) }
2968
+ def are_equal?(object, other); end
2969
+
2970
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#56
2971
+ sig { params(object: ::BasicObject).returns(T::Class[T.anything]) }
2972
+ def class_of(object); end
2973
+
2974
+ # @param constant [BasicObject]
2975
+ # @return [Boolean]
2976
+ #
2977
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#38
2978
+ def constant_defined?(constant); end
2979
+
2980
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#49
2981
+ sig { params(symbol: ::String, inherit: T::Boolean, namespace: ::Module).returns(::BasicObject) }
2982
+ def constantize(symbol, inherit: T.unsafe(nil), namespace: T.unsafe(nil)); end
2983
+
2984
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#61
2985
+ sig { params(constant: ::Module).returns(T::Array[::Symbol]) }
2986
+ def constants_of(constant); end
2987
+
2988
+ # Returns an array with all classes that are < than the supplied class.
2989
+ #
2990
+ # class C; end
2991
+ # descendants_of(C) # => []
2992
+ #
2993
+ # class B < C; end
2994
+ # descendants_of(C) # => [B]
2995
+ #
2996
+ # class A < B; end
2997
+ # descendants_of(C) # => [B, A]
2998
+ #
2999
+ # class D < C; end
3000
+ # descendants_of(C) # => [B, A, D]
3001
+ #
3002
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#172
3003
+ sig do
3004
+ type_parameters(:U)
3005
+ .params(
3006
+ klass: T.all(T.type_parameter(:U), T::Class[T.anything])
3007
+ ).returns(T::Array[T.type_parameter(:U)])
3008
+ end
3009
+ def descendants_of(klass); end
3010
+
3011
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#200
3012
+ sig { params(constant: ::Module).returns(T::Set[::String]) }
3013
+ def file_candidates_for(constant); end
3014
+
3015
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#213
3016
+ sig { params(constant: ::Module).returns(T::Boolean) }
3017
+ def final_module?(constant); end
3018
+
3019
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#112
3020
+ sig { params(constant: ::Module).returns(T::Array[::Module]) }
3021
+ def inherited_ancestors_of(constant); end
3022
+
3023
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#150
3024
+ sig { params(constant: ::Module, method: ::Symbol).returns(::Method) }
3025
+ def method_of(constant, method); end
3026
+
3027
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#66
3028
+ sig { params(constant: ::Module).returns(T.nilable(::String)) }
3029
+ def name_of(constant); end
3030
+
3031
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#145
3032
+ sig { params(type: ::T::Types::Base).returns(::String) }
3033
+ def name_of_type(type); end
3034
+
3035
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#87
3036
+ sig { params(object: ::BasicObject).returns(::Integer) }
3037
+ def object_id_of(object); end
3038
+
3039
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#107
3040
+ sig { params(constant: ::Module).returns(T::Array[::Symbol]) }
3041
+ def private_instance_methods_of(constant); end
3042
+
3043
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#102
3044
+ sig { params(constant: ::Module).returns(T::Array[::Symbol]) }
3045
+ def protected_instance_methods_of(constant); end
3046
+
3047
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#97
3048
+ sig { params(constant: ::Module).returns(T::Array[::Symbol]) }
3049
+ def public_instance_methods_of(constant); end
3050
+
3051
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#121
3052
+ sig { params(constant: ::Module).returns(T.nilable(::String)) }
3053
+ def qualified_name_of(constant); end
3054
+
3055
+ # Examines the call stack to identify the closest location where a "require" is performed
3056
+ # by searching for the label "<top (required)>" or "block in <class:...>" in the
3057
+ # case of an ActiveSupport.on_load hook. If none is found, it returns the location
3058
+ # labeled "<main>", which is the original call site.
3059
+ #
3060
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#185
3061
+ sig { params(locations: T.nilable(T::Array[::Thread::Backtrace::Location])).returns(::String) }
3062
+ def resolve_loc(locations); end
3063
+
3064
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#218
3065
+ sig { params(constant: ::Module).returns(T::Boolean) }
3066
+ def sealed_module?(constant); end
3067
+
3068
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#138
3069
+ sig { params(method: T.any(::Method, ::UnboundMethod)).returns(T.untyped) }
3070
+ def signature_of(method); end
3071
+
3072
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#133
3073
+ sig { params(method: T.any(::Method, ::UnboundMethod)).returns(T.untyped) }
3074
+ def signature_of!(method); end
3075
+
3076
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#72
3077
+ sig { params(constant: ::Module).returns(T::Class[T.anything]) }
3078
+ def singleton_class_of(constant); end
3079
+
3080
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#82
3081
+ sig { params(constant: T::Class[T.anything]).returns(T.nilable(T::Class[T.anything])) }
3082
+ def superclass_of(constant); end
3083
+
3084
+ private
3085
+
3086
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#255
3087
+ sig { params(parent: ::Module, name: ::String).returns(T.nilable(::Module)) }
3088
+ def child_module_for_parent_with_name(parent, name); end
3089
+
3090
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#271
3091
+ sig { params(name: ::String).returns(T::Boolean) }
3092
+ def has_aliased_namespace?(name); end
3093
+
3094
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#266
3095
+ sig { params(method: ::UnboundMethod).returns(T::Boolean) }
3096
+ def method_defined_by_forwardable_module?(method); end
3097
+
3098
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#241
3099
+ sig { params(constant: ::Module).returns(T::Array[::UnboundMethod]) }
3100
+ def methods_for(constant); end
3101
+
3102
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#225
3103
+ sig { params(constant: ::Module).returns(T::Array[::UnboundMethod]) }
3104
+ def relevant_methods_for(constant); end
3105
+ end
3106
+
3107
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#25
3108
+ Tapioca::Runtime::Reflection::ANCESTORS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3109
+
3110
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#21
3111
+ Tapioca::Runtime::Reflection::CLASS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3112
+
3113
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#22
3114
+ Tapioca::Runtime::Reflection::CONSTANTS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3115
+
3116
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#28
3117
+ Tapioca::Runtime::Reflection::EQUAL_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3118
+
3119
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#32
3120
+ Tapioca::Runtime::Reflection::METHOD_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3121
+
3122
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#23
3123
+ Tapioca::Runtime::Reflection::NAME_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3124
+
3125
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#27
3126
+ Tapioca::Runtime::Reflection::OBJECT_ID_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3127
+
3128
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#31
3129
+ Tapioca::Runtime::Reflection::PRIVATE_INSTANCE_METHODS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3130
+
3131
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#30
3132
+ Tapioca::Runtime::Reflection::PROTECTED_INSTANCE_METHODS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3133
+
3134
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#29
3135
+ Tapioca::Runtime::Reflection::PUBLIC_INSTANCE_METHODS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3136
+
3137
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#35
3138
+ Tapioca::Runtime::Reflection::REQUIRED_FROM_LABELS = T.let(T.unsafe(nil), Array)
3139
+
3140
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#24
3141
+ Tapioca::Runtime::Reflection::SINGLETON_CLASS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3142
+
3143
+ # source://tapioca//lib/tapioca/runtime/reflection.rb#26
3144
+ Tapioca::Runtime::Reflection::SUPERCLASS_METHOD = T.let(T.unsafe(nil), UnboundMethod)
3145
+
3146
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#6
3147
+ module Tapioca::Runtime::Trackers
3148
+ class << self
3149
+ # source://tapioca//lib/tapioca/runtime/trackers.rb#34
3150
+ sig { void }
3151
+ def disable_all!; end
3152
+
3153
+ # source://tapioca//lib/tapioca/runtime/trackers.rb#39
3154
+ sig { params(tracker: ::Tapioca::Runtime::Trackers::Tracker).void }
3155
+ def register_tracker(tracker); end
3156
+
3157
+ # source://tapioca//lib/tapioca/runtime/trackers.rb#21
3158
+ sig do
3159
+ type_parameters(:Return)
3160
+ .params(
3161
+ blk: T.proc.returns(T.type_parameter(:Return))
3162
+ ).returns(T.type_parameter(:Return))
3163
+ end
3164
+ def with_trackers_enabled(&blk); end
3165
+ end
3166
+ end
3167
+
3168
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#7
3169
+ module Tapioca::Runtime::Trackers::Autoload
3170
+ extend ::Tapioca::Runtime::Trackers::Tracker
3171
+
3172
+ class << self
3173
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#19
3174
+ sig { void }
3175
+ def eager_load_all!; end
3176
+
3177
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#31
3178
+ sig { params(constant_name: ::String).void }
3179
+ def register(constant_name); end
3180
+
3181
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#42
3182
+ sig do
3183
+ type_parameters(:Result)
3184
+ .params(
3185
+ block: T.proc.returns(T.type_parameter(:Result))
3186
+ ).returns(T.type_parameter(:Result))
3187
+ end
3188
+ def with_disabled_exits(&block); end
3189
+ end
3190
+ end
3191
+
3192
+ # source://tapioca//lib/tapioca/runtime/trackers/autoload.rb#11
3193
+ Tapioca::Runtime::Trackers::Autoload::NOOP_METHOD = T.let(T.unsafe(nil), Proc)
3194
+
3195
+ # Registers a TracePoint immediately upon load to track points at which
3196
+ # classes and modules are opened for definition. This is used to track
3197
+ # correspondence between classes/modules and files, as this information isn't
3198
+ # available in the ruby runtime without extra accounting.
3199
+ module Tapioca::Runtime::Trackers::ConstantDefinition
3200
+ extend ::Tapioca::Runtime::Trackers::Tracker
3201
+ extend ::Tapioca::Runtime::AttachedClassOf
3202
+ extend ::Tapioca::Runtime::Reflection
3203
+
3204
+ class << self
3205
+ # source://tapioca//lib/tapioca/runtime/trackers/constant_definition.rb#61
3206
+ def build_constant_location(tp, locations); end
3207
+
3208
+ # source://tapioca//lib/tapioca/runtime/trackers/constant_definition.rb#55
3209
+ def disable!; end
3210
+
3211
+ # Returns the files in which this class or module was opened. Doesn't know
3212
+ # about situations where the class was opened prior to +require+ing,
3213
+ # or where metaprogramming was used via +eval+, etc.
3214
+ #
3215
+ # source://tapioca//lib/tapioca/runtime/trackers/constant_definition.rb#71
3216
+ def files_for(klass); end
3217
+
3218
+ # source://tapioca//lib/tapioca/runtime/trackers/constant_definition.rb#75
3219
+ def locations_for(klass); end
3220
+ end
3221
+ end
3222
+
3223
+ module Tapioca::Runtime::Trackers::Mixin
3224
+ extend ::Tapioca::Runtime::Trackers::Tracker
3225
+
3226
+ class << self
3227
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#56
3228
+ sig do
3229
+ params(
3230
+ mixin: ::Module
3231
+ ).returns(T::Hash[::Tapioca::Runtime::Trackers::Mixin::Type, T::Hash[::Module, ::String]])
3232
+ end
3233
+ def constants_with_mixin(mixin); end
3234
+
3235
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#61
3236
+ sig do
3237
+ params(
3238
+ mixin: ::Module,
3239
+ mixin_type: ::Tapioca::Runtime::Trackers::Mixin::Type,
3240
+ constant: ::Module
3241
+ ).returns(T.nilable(::String))
3242
+ end
3243
+ def mixin_location(mixin, mixin_type, constant); end
3244
+
3245
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#35
3246
+ sig { params(constant: ::Module, mixin: ::Module, mixin_type: ::Tapioca::Runtime::Trackers::Mixin::Type).void }
3247
+ def register(constant, mixin, mixin_type); end
3248
+
3249
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#43
3250
+ def resolve_to_attached_class(constant, mixin, mixin_type); end
3251
+
3252
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#30
3253
+ sig do
3254
+ type_parameters(:Result)
3255
+ .params(
3256
+ block: T.proc.returns(T.type_parameter(:Result))
3257
+ ).returns(T.type_parameter(:Result))
3258
+ end
3259
+ def with_disabled_registration(&block); end
3260
+
3261
+ private
3262
+
3263
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#76
3264
+ sig do
3265
+ params(
3266
+ mixin: ::Module
3267
+ ).returns(T::Hash[::Tapioca::Runtime::Trackers::Mixin::Type, T::Hash[::Module, ::String]])
3268
+ end
3269
+ def find_or_initialize_mixin_lookup(mixin); end
3270
+
3271
+ # source://tapioca//lib/tapioca/runtime/trackers/mixin.rb#68
3272
+ sig do
3273
+ params(
3274
+ constant: ::Module,
3275
+ mixin: ::Module,
3276
+ mixin_type: ::Tapioca::Runtime::Trackers::Mixin::Type,
3277
+ location: ::String
3278
+ ).void
3279
+ end
3280
+ def register_with_location(constant, mixin, mixin_type, location); end
3281
+ end
3282
+ end
3283
+
3284
+ class Tapioca::Runtime::Trackers::Mixin::Type < ::T::Enum
3285
+ enums do
3286
+ Extend = new
3287
+ Include = new
3288
+ Prepend = new
3289
+ end
3290
+ end
3291
+
3292
+ # source://tapioca//lib/tapioca/runtime/trackers/required_ancestor.rb#7
3293
+ module Tapioca::Runtime::Trackers::RequiredAncestor
3294
+ extend ::Tapioca::Runtime::Trackers::Tracker
3295
+
3296
+ class << self
3297
+ # source://tapioca//lib/tapioca/runtime/trackers/required_ancestor.rb#15
3298
+ sig { params(requiring: ::T::Helpers, block: T.proc.void).void }
3299
+ def register(requiring, block); end
3300
+
3301
+ # source://tapioca//lib/tapioca/runtime/trackers/required_ancestor.rb#23
3302
+ sig { params(mod: ::Module).returns(T::Array[T.proc.void]) }
3303
+ def required_ancestors_blocks_by(mod); end
3304
+
3305
+ # source://tapioca//lib/tapioca/runtime/trackers/required_ancestor.rb#28
3306
+ sig { params(mod: ::Module).returns(T::Array[T.untyped]) }
3307
+ def required_ancestors_by(mod); end
3308
+ end
3309
+ end
3310
+
3311
+ # @abstract Subclasses must implement the `abstract` methods below.
3312
+ module Tapioca::Runtime::Trackers::Tracker
3313
+ abstract!
3314
+
3315
+ # source://tapioca//lib/tapioca/runtime/trackers/tracker.rb#26
3316
+ sig { void }
3317
+ def disable!; end
3318
+
3319
+ # @return [Boolean]
3320
+ #
3321
+ # source://tapioca//lib/tapioca/runtime/trackers/tracker.rb#30
3322
+ def enabled?; end
3323
+
3324
+ # source://tapioca//lib/tapioca/runtime/trackers/tracker.rb#34
3325
+ def with_disabled_tracker(&block); end
3326
+
3327
+ class << self
3328
+ # source://tapioca//lib/tapioca/runtime/trackers/tracker.rb#17
3329
+ sig { params(base: T.all(::Module, ::Tapioca::Runtime::Trackers::Tracker)).void }
3330
+ def extended(base); end
3331
+ end
3332
+ end
3333
+
3334
+ # source://tapioca//lib/tapioca.rb#35
3335
+ Tapioca::SORBET_CONFIG_FILE = T.let(T.unsafe(nil), String)
3336
+
3337
+ # source://tapioca//lib/tapioca.rb#34
3338
+ Tapioca::SORBET_DIR = T.let(T.unsafe(nil), String)
3339
+
3340
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#5
3341
+ module Tapioca::SorbetHelper
3342
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#32
3343
+ sig { params(sorbet_args: ::String).returns(::Spoom::ExecResult) }
3344
+ def sorbet(*sorbet_args); end
3345
+
3346
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#37
3347
+ sig { returns(::String) }
3348
+ def sorbet_path; end
3349
+
3350
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#44
3351
+ sig { params(feature: ::Symbol, version: T.nilable(::Gem::Version)).returns(T::Boolean) }
3352
+ def sorbet_supports?(feature, version: T.unsafe(nil)); end
3353
+ end
3354
+
3355
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#24
3356
+ Tapioca::SorbetHelper::FEATURE_REQUIREMENTS = T.let(T.unsafe(nil), Hash)
3357
+
3358
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#13
3359
+ Tapioca::SorbetHelper::SORBET_BIN = T.let(T.unsafe(nil), Pathname)
3360
+
3361
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#18
3362
+ Tapioca::SorbetHelper::SORBET_EXE_PATH_ENV_VAR = T.let(T.unsafe(nil), String)
3363
+
3364
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#8
3365
+ Tapioca::SorbetHelper::SORBET_GEM_SPEC = T.let(T.unsafe(nil), Gem::Specification)
3366
+
3367
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#20
3368
+ Tapioca::SorbetHelper::SORBET_PAYLOAD_URL = T.let(T.unsafe(nil), String)
3369
+
3370
+ # source://tapioca//lib/tapioca/helpers/sorbet_helper.rb#22
3371
+ Tapioca::SorbetHelper::SPOOM_CONTEXT = T.let(T.unsafe(nil), Spoom::Context)
3372
+
3373
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#5
3374
+ module Tapioca::Static; end
3375
+
3376
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#6
3377
+ class Tapioca::Static::RequiresCompiler
3378
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#10
3379
+ sig { params(sorbet_path: ::String).void }
3380
+ def initialize(sorbet_path); end
3381
+
3382
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#15
3383
+ sig { returns(::String) }
3384
+ def compile; end
3385
+
3386
+ private
3387
+
3388
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#29
3389
+ sig { params(config: ::Spoom::Sorbet::Config).returns(T::Array[::String]) }
3390
+ def collect_files(config); end
3391
+
3392
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#44
3393
+ sig { params(file_path: ::String).returns(T::Enumerable[::String]) }
3394
+ def collect_requires(file_path); end
3395
+
3396
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#51
3397
+ sig { params(config: ::Spoom::Sorbet::Config, file_path: ::Pathname).returns(T::Boolean) }
3398
+ def file_ignored_by_sorbet?(config, file_path); end
3399
+
3400
+ # source://tapioca//lib/tapioca/static/requires_compiler.rb#80
3401
+ sig { params(path: ::Pathname).returns(T::Array[::String]) }
3402
+ def path_parts(path); end
3403
+ end
3404
+
3405
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#6
3406
+ module Tapioca::Static::SymbolLoader
3407
+ extend ::Tapioca::SorbetHelper
3408
+ extend ::Tapioca::Runtime::AttachedClassOf
3409
+ extend ::Tapioca::Runtime::Reflection
3410
+
3411
+ class << self
3412
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#23
3413
+ sig { params(gem: ::Tapioca::Gemfile::GemSpec).returns(T::Set[::String]) }
3414
+ def engine_symbols(gem); end
3415
+
3416
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#48
3417
+ sig { params(gem: ::Tapioca::Gemfile::GemSpec).returns(T::Set[::String]) }
3418
+ def gem_symbols(gem); end
3419
+
3420
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#13
3421
+ sig { returns(T::Set[::String]) }
3422
+ def payload_symbols; end
3423
+
3424
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#53
3425
+ sig { params(paths: T::Array[::Pathname]).returns(T::Set[::String]) }
3426
+ def symbols_from_paths(paths); end
3427
+
3428
+ private
3429
+
3430
+ # @return [Array<T.class_of(Rails::Engine)>]
3431
+ #
3432
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#69
3433
+ def engines; end
3434
+
3435
+ # source://tapioca//lib/tapioca/static/symbol_loader.rb#82
3436
+ sig { params(input: ::String, table_type: ::String).returns(::String) }
3437
+ def symbol_table_json_from(input, table_type: T.unsafe(nil)); end
3438
+ end
3439
+ end
3440
+
3441
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#6
3442
+ class Tapioca::Static::SymbolTableParser
3443
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#30
3444
+ sig { void }
3445
+ def initialize; end
3446
+
3447
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#65
3448
+ sig { params(name: ::String).returns(::String) }
3449
+ def fully_qualified_name(name); end
3450
+
3451
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#36
3452
+ sig { params(object: T::Hash[::String, T.untyped]).void }
3453
+ def parse_object(object); end
3454
+
3455
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#27
3456
+ sig { returns(T::Set[::String]) }
3457
+ def symbols; end
3458
+
3459
+ class << self
3460
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#15
3461
+ sig { params(json_string: ::String).returns(T::Set[::String]) }
3462
+ def parse_json(json_string); end
3463
+ end
3464
+ end
3465
+
3466
+ # source://tapioca//lib/tapioca/static/symbol_table_parser.rb#9
3467
+ Tapioca::Static::SymbolTableParser::SKIP_PARSE_KINDS = T.let(T.unsafe(nil), Array)
3468
+
3469
+ # source://tapioca//lib/tapioca.rb#37
3470
+ Tapioca::TAPIOCA_CONFIG_FILE = T.let(T.unsafe(nil), String)
3471
+
3472
+ # source://tapioca//lib/tapioca.rb#36
3473
+ Tapioca::TAPIOCA_DIR = T.let(T.unsafe(nil), String)
3474
+
3475
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#108
3476
+ class Tapioca::TypeVariable < ::T::Types::TypeVariable
3477
+ # @return [TypeVariable] a new instance of TypeVariable
3478
+ #
3479
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#109
3480
+ def initialize(name, variance); end
3481
+
3482
+ # Returns the value of attribute name.
3483
+ #
3484
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#114
3485
+ def name; end
3486
+ end
3487
+
3488
+ # This is subclassing from `Module` so that instances of this type will be modules.
3489
+ # The reason why we want that is because that means those instances will automatically
3490
+ # get bound to the constant names they are assigned to by Ruby. As a result, we don't
3491
+ # need to do any matching of constants to type variables to bind their names, Ruby will
3492
+ # do that automatically for us and we get the `name` method for free from `Module`.
3493
+ #
3494
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#122
3495
+ class Tapioca::TypeVariableModule < ::Module
3496
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#146
3497
+ sig do
3498
+ params(
3499
+ context: ::Module,
3500
+ type: ::Tapioca::TypeVariableModule::Type,
3501
+ variance: ::Symbol,
3502
+ bounds_proc: T.nilable(T.proc.returns(T::Hash[::Symbol, T.untyped]))
3503
+ ).void
3504
+ end
3505
+ def initialize(context, type, variance, bounds_proc); end
3506
+
3507
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#181
3508
+ sig { returns(::Tapioca::TypeVariable) }
3509
+ def coerce_to_type_variable; end
3510
+
3511
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#161
3512
+ sig { returns(T::Boolean) }
3513
+ def fixed?; end
3514
+
3515
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#155
3516
+ sig { returns(T.nilable(::String)) }
3517
+ def name; end
3518
+
3519
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#166
3520
+ sig { returns(::String) }
3521
+ def serialize; end
3522
+
3523
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#136
3524
+ sig { returns(::Tapioca::TypeVariableModule::Type) }
3525
+ def type; end
3526
+
3527
+ private
3528
+
3529
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#188
3530
+ sig { returns(T::Hash[::Symbol, T.untyped]) }
3531
+ def bounds; end
3532
+ end
3533
+
3534
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#133
3535
+ Tapioca::TypeVariableModule::DEFAULT_BOUNDS_PROC = T.let(T.unsafe(nil), Proc)
3536
+
3537
+ # source://tapioca//lib/tapioca/sorbet_ext/generic_name_patch.rb#125
3538
+ class Tapioca::TypeVariableModule::Type < ::T::Enum
3539
+ enums do
3540
+ HasAttachedClass = new
3541
+ Member = new
3542
+ Template = new
3543
+ end
3544
+ end
3545
+
3546
+ # source://tapioca//lib/tapioca/version.rb#5
3547
+ Tapioca::VERSION = T.let(T.unsafe(nil), String)
3548
+
3549
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#6
3550
+ module URI
3551
+ include ::URI::RFC2396_REGEXP
3552
+ end
3553
+
3554
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#7
3555
+ class URI::Source < ::URI::File
3556
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#65
3557
+ sig { params(v: T.nilable(::String)).returns(T::Boolean) }
3558
+ def check_host(v); end
3559
+
3560
+ # source://uri/0.12.2/uri/generic.rb#243
3561
+ def gem_name; end
3562
+
3563
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#32
3564
+ sig { returns(T.nilable(::String)) }
3565
+ def gem_version; end
3566
+
3567
+ # source://uri/0.12.2/uri/generic.rb#283
3568
+ def line_number; end
3569
+
3570
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#58
3571
+ sig { params(v: T.nilable(::String)).void }
3572
+ def set_path(v); end
3573
+
3574
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#77
3575
+ sig { returns(::String) }
3576
+ def to_s; end
3577
+
3578
+ class << self
3579
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#45
3580
+ sig do
3581
+ params(
3582
+ gem_name: ::String,
3583
+ gem_version: T.nilable(::String),
3584
+ path: ::String,
3585
+ line_number: T.nilable(::String)
3586
+ ).returns(::URI::Source)
3587
+ end
3588
+ def build(gem_name:, gem_version:, path:, line_number:); end
3589
+ end
3590
+ end
3591
+
3592
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#10
3593
+ URI::Source::COMPONENT = T.let(T.unsafe(nil), Array)
3594
+
3595
+ # `uri` for Ruby 3.4 switched the default parser from RFC2396 to RFC3986. The new parser emits a deprecation
3596
+ # warning on a few methods and delegates them to RFC2396, namely `extract`/`make_regexp`/`escape`/`unescape`.
3597
+ # On earlier versions of the uri gem, the RFC2396_PARSER constant doesn't exist, so it needs some special
3598
+ # handling to select a parser that doesn't emit deprecations. While it was backported to Ruby 3.1, users may
3599
+ # have the uri gem in their own bundle and thus not use a compatible version.
3600
+ #
3601
+ # source://tapioca//lib/tapioca/helpers/source_uri.rb#26
3602
+ URI::Source::PARSER = T.let(T.unsafe(nil), URI::RFC2396_Parser)
3603
+
3604
+ class URI::WSS < ::URI::WS; end