inkcpp_rb 0.1.0

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