rbs 4.1.0.pre.2-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (574) hide show
  1. checksums.yaml +7 -0
  2. data/.clang-format +75 -0
  3. data/.clangd +2 -0
  4. data/.github/dependabot.yml +24 -0
  5. data/.github/workflows/bundle-update.yml +63 -0
  6. data/.github/workflows/c-check.yml +61 -0
  7. data/.github/workflows/comments.yml +37 -0
  8. data/.github/workflows/dependabot.yml +30 -0
  9. data/.github/workflows/jruby.yml +67 -0
  10. data/.github/workflows/milestone.yml +83 -0
  11. data/.github/workflows/ruby.yml +158 -0
  12. data/.github/workflows/rust.yml +184 -0
  13. data/.github/workflows/truffleruby.yml +54 -0
  14. data/.github/workflows/typecheck.yml +39 -0
  15. data/.github/workflows/wasm.yml +53 -0
  16. data/.github/workflows/windows.yml +49 -0
  17. data/.gitignore +38 -0
  18. data/.rubocop.yml +72 -0
  19. data/BSDL +22 -0
  20. data/CHANGELOG.md +2292 -0
  21. data/COPYING +56 -0
  22. data/README.md +240 -0
  23. data/Rakefile +869 -0
  24. data/Steepfile +53 -0
  25. data/config.yml +913 -0
  26. data/core/array.rbs +4142 -0
  27. data/core/basic_object.rbs +376 -0
  28. data/core/binding.rbs +148 -0
  29. data/core/builtin.rbs +278 -0
  30. data/core/class.rbs +223 -0
  31. data/core/comparable.rbs +192 -0
  32. data/core/complex.rbs +812 -0
  33. data/core/constants.rbs +96 -0
  34. data/core/data.rbs +415 -0
  35. data/core/dir.rbs +993 -0
  36. data/core/encoding.rbs +1368 -0
  37. data/core/enumerable.rbs +2506 -0
  38. data/core/enumerator/arithmetic_sequence.rbs +70 -0
  39. data/core/enumerator/product.rbs +92 -0
  40. data/core/enumerator.rbs +705 -0
  41. data/core/env.rbs +6 -0
  42. data/core/errno.rbs +682 -0
  43. data/core/errors.rbs +789 -0
  44. data/core/exception.rbs +485 -0
  45. data/core/false_class.rbs +82 -0
  46. data/core/fiber.rbs +570 -0
  47. data/core/fiber_error.rbs +11 -0
  48. data/core/file.rbs +2045 -0
  49. data/core/file_constants.rbs +463 -0
  50. data/core/file_stat.rbs +534 -0
  51. data/core/file_test.rbs +331 -0
  52. data/core/float.rbs +1316 -0
  53. data/core/gc.rbs +788 -0
  54. data/core/global_variables.rbs +184 -0
  55. data/core/hash.rbs +2183 -0
  56. data/core/integer.rbs +1374 -0
  57. data/core/io/buffer.rbs +995 -0
  58. data/core/io/wait.rbs +48 -0
  59. data/core/io.rbs +3472 -0
  60. data/core/kernel.rbs +3172 -0
  61. data/core/marshal.rbs +207 -0
  62. data/core/match_data.rbs +637 -0
  63. data/core/math.rbs +770 -0
  64. data/core/method.rbs +422 -0
  65. data/core/module.rbs +1856 -0
  66. data/core/nil_class.rbs +210 -0
  67. data/core/numeric.rbs +832 -0
  68. data/core/object.rbs +108 -0
  69. data/core/object_space/weak_key_map.rbs +166 -0
  70. data/core/object_space.rbs +197 -0
  71. data/core/pathname.rbs +1322 -0
  72. data/core/proc.rbs +905 -0
  73. data/core/process.rbs +2316 -0
  74. data/core/ractor.rbs +924 -0
  75. data/core/random.rbs +255 -0
  76. data/core/range.rbs +1209 -0
  77. data/core/rational.rbs +502 -0
  78. data/core/rb_config.rbs +88 -0
  79. data/core/rbs/ops.rbs +154 -0
  80. data/core/rbs/unnamed/argf.rbs +1236 -0
  81. data/core/rbs/unnamed/env_class.rbs +1214 -0
  82. data/core/rbs/unnamed/main_class.rbs +123 -0
  83. data/core/rbs/unnamed/random.rbs +186 -0
  84. data/core/refinement.rbs +59 -0
  85. data/core/regexp.rbs +1974 -0
  86. data/core/ruby.rbs +53 -0
  87. data/core/ruby_vm.rbs +809 -0
  88. data/core/rubygems/basic_specification.rbs +6 -0
  89. data/core/rubygems/config_file.rbs +38 -0
  90. data/core/rubygems/dependency_installer.rbs +6 -0
  91. data/core/rubygems/errors.rbs +109 -0
  92. data/core/rubygems/installer.rbs +15 -0
  93. data/core/rubygems/path_support.rbs +6 -0
  94. data/core/rubygems/platform.rbs +7 -0
  95. data/core/rubygems/request_set.rbs +49 -0
  96. data/core/rubygems/requirement.rbs +148 -0
  97. data/core/rubygems/rubygems.rbs +1105 -0
  98. data/core/rubygems/source_list.rbs +15 -0
  99. data/core/rubygems/specification.rbs +23 -0
  100. data/core/rubygems/stream_ui.rbs +5 -0
  101. data/core/rubygems/uninstaller.rbs +10 -0
  102. data/core/rubygems/version.rbs +293 -0
  103. data/core/set.rbs +751 -0
  104. data/core/signal.rbs +110 -0
  105. data/core/string.rbs +5532 -0
  106. data/core/struct.rbs +668 -0
  107. data/core/symbol.rbs +482 -0
  108. data/core/thread.rbs +1826 -0
  109. data/core/thread_group.rbs +79 -0
  110. data/core/time.rbs +1793 -0
  111. data/core/trace_point.rbs +483 -0
  112. data/core/true_class.rbs +98 -0
  113. data/core/unbound_method.rbs +337 -0
  114. data/core/warning.rbs +87 -0
  115. data/docs/CONTRIBUTING.md +107 -0
  116. data/docs/aliases.md +79 -0
  117. data/docs/architecture.md +110 -0
  118. data/docs/collection.md +192 -0
  119. data/docs/config.md +171 -0
  120. data/docs/data_and_struct.md +86 -0
  121. data/docs/encoding.md +56 -0
  122. data/docs/gem.md +56 -0
  123. data/docs/inline.md +634 -0
  124. data/docs/rbs_by_example.md +309 -0
  125. data/docs/repo.md +125 -0
  126. data/docs/rust.md +96 -0
  127. data/docs/sigs.md +167 -0
  128. data/docs/stdlib.md +147 -0
  129. data/docs/syntax.md +940 -0
  130. data/docs/tools.md +17 -0
  131. data/docs/type_fingerprint.md +21 -0
  132. data/docs/wasm_serialization.md +80 -0
  133. data/exe/rbs +7 -0
  134. data/ext/rbs_extension/ast_translation.c +1855 -0
  135. data/ext/rbs_extension/ast_translation.h +41 -0
  136. data/ext/rbs_extension/class_constants.c +187 -0
  137. data/ext/rbs_extension/class_constants.h +104 -0
  138. data/ext/rbs_extension/compat.h +10 -0
  139. data/ext/rbs_extension/extconf.rb +40 -0
  140. data/ext/rbs_extension/legacy_location.c +294 -0
  141. data/ext/rbs_extension/legacy_location.h +82 -0
  142. data/ext/rbs_extension/main.c +613 -0
  143. data/ext/rbs_extension/rbs_extension.h +16 -0
  144. data/ext/rbs_extension/rbs_string_bridging.c +9 -0
  145. data/ext/rbs_extension/rbs_string_bridging.h +24 -0
  146. data/goodcheck.yml +91 -0
  147. data/include/rbs/ast.h +1047 -0
  148. data/include/rbs/defines.h +99 -0
  149. data/include/rbs/lexer.h +207 -0
  150. data/include/rbs/location.h +40 -0
  151. data/include/rbs/parser.h +153 -0
  152. data/include/rbs/serialize.h +39 -0
  153. data/include/rbs/string.h +47 -0
  154. data/include/rbs/util/rbs_allocator.h +59 -0
  155. data/include/rbs/util/rbs_assert.h +20 -0
  156. data/include/rbs/util/rbs_buffer.h +83 -0
  157. data/include/rbs/util/rbs_constant_pool.h +155 -0
  158. data/include/rbs/util/rbs_encoding.h +282 -0
  159. data/include/rbs/util/rbs_unescape.h +24 -0
  160. data/include/rbs.h +14 -0
  161. data/lib/rbs/ancestor_graph.rb +92 -0
  162. data/lib/rbs/annotate/annotations.rb +199 -0
  163. data/lib/rbs/annotate/formatter.rb +82 -0
  164. data/lib/rbs/annotate/rdoc_annotator.rb +398 -0
  165. data/lib/rbs/annotate/rdoc_source.rb +131 -0
  166. data/lib/rbs/annotate.rb +8 -0
  167. data/lib/rbs/ast/annotation.rb +29 -0
  168. data/lib/rbs/ast/comment.rb +29 -0
  169. data/lib/rbs/ast/declarations.rb +472 -0
  170. data/lib/rbs/ast/directives.rb +49 -0
  171. data/lib/rbs/ast/members.rb +451 -0
  172. data/lib/rbs/ast/ruby/annotations.rb +451 -0
  173. data/lib/rbs/ast/ruby/comment_block.rb +247 -0
  174. data/lib/rbs/ast/ruby/declarations.rb +291 -0
  175. data/lib/rbs/ast/ruby/helpers/constant_helper.rb +28 -0
  176. data/lib/rbs/ast/ruby/helpers/location_helper.rb +15 -0
  177. data/lib/rbs/ast/ruby/members.rb +762 -0
  178. data/lib/rbs/ast/type_param.rb +235 -0
  179. data/lib/rbs/ast/visitor.rb +137 -0
  180. data/lib/rbs/buffer.rb +189 -0
  181. data/lib/rbs/builtin_names.rb +58 -0
  182. data/lib/rbs/cli/colored_io.rb +48 -0
  183. data/lib/rbs/cli/diff.rb +84 -0
  184. data/lib/rbs/cli/validate.rb +294 -0
  185. data/lib/rbs/cli.rb +1253 -0
  186. data/lib/rbs/collection/cleaner.rb +38 -0
  187. data/lib/rbs/collection/config/lockfile.rb +92 -0
  188. data/lib/rbs/collection/config/lockfile_generator.rb +269 -0
  189. data/lib/rbs/collection/config.rb +81 -0
  190. data/lib/rbs/collection/installer.rb +32 -0
  191. data/lib/rbs/collection/sources/base.rb +14 -0
  192. data/lib/rbs/collection/sources/git.rb +265 -0
  193. data/lib/rbs/collection/sources/local.rb +81 -0
  194. data/lib/rbs/collection/sources/rubygems.rb +48 -0
  195. data/lib/rbs/collection/sources/stdlib.rb +50 -0
  196. data/lib/rbs/collection/sources.rb +38 -0
  197. data/lib/rbs/collection.rb +16 -0
  198. data/lib/rbs/constant.rb +28 -0
  199. data/lib/rbs/definition.rb +415 -0
  200. data/lib/rbs/definition_builder/ancestor_builder.rb +678 -0
  201. data/lib/rbs/definition_builder/method_builder.rb +295 -0
  202. data/lib/rbs/definition_builder.rb +1054 -0
  203. data/lib/rbs/diff.rb +131 -0
  204. data/lib/rbs/environment/class_entry.rb +69 -0
  205. data/lib/rbs/environment/module_entry.rb +66 -0
  206. data/lib/rbs/environment/use_map.rb +77 -0
  207. data/lib/rbs/environment.rb +1028 -0
  208. data/lib/rbs/environment_loader.rb +167 -0
  209. data/lib/rbs/environment_walker.rb +155 -0
  210. data/lib/rbs/errors.rb +634 -0
  211. data/lib/rbs/factory.rb +18 -0
  212. data/lib/rbs/file_finder.rb +28 -0
  213. data/lib/rbs/inline_parser/comment_association.rb +117 -0
  214. data/lib/rbs/inline_parser.rb +568 -0
  215. data/lib/rbs/location_aux.rb +170 -0
  216. data/lib/rbs/locator.rb +247 -0
  217. data/lib/rbs/method_type.rb +145 -0
  218. data/lib/rbs/namespace.rb +154 -0
  219. data/lib/rbs/parser/lex_result.rb +15 -0
  220. data/lib/rbs/parser/token.rb +23 -0
  221. data/lib/rbs/parser_aux.rb +142 -0
  222. data/lib/rbs/prototype/helpers.rb +197 -0
  223. data/lib/rbs/prototype/node_usage.rb +99 -0
  224. data/lib/rbs/prototype/rb.rb +816 -0
  225. data/lib/rbs/prototype/rbi.rb +625 -0
  226. data/lib/rbs/prototype/runtime/helpers.rb +59 -0
  227. data/lib/rbs/prototype/runtime/reflection.rb +19 -0
  228. data/lib/rbs/prototype/runtime/value_object_generator.rb +279 -0
  229. data/lib/rbs/prototype/runtime.rb +680 -0
  230. data/lib/rbs/repository.rb +127 -0
  231. data/lib/rbs/resolver/constant_resolver.rb +219 -0
  232. data/lib/rbs/resolver/type_name_resolver.rb +167 -0
  233. data/lib/rbs/rewriter.rb +70 -0
  234. data/lib/rbs/sorter.rb +198 -0
  235. data/lib/rbs/source.rb +99 -0
  236. data/lib/rbs/substitution.rb +83 -0
  237. data/lib/rbs/subtractor.rb +204 -0
  238. data/lib/rbs/test/errors.rb +80 -0
  239. data/lib/rbs/test/guaranteed.rb +30 -0
  240. data/lib/rbs/test/hook.rb +212 -0
  241. data/lib/rbs/test/observer.rb +19 -0
  242. data/lib/rbs/test/setup.rb +84 -0
  243. data/lib/rbs/test/setup_helper.rb +50 -0
  244. data/lib/rbs/test/tester.rb +167 -0
  245. data/lib/rbs/test/type_check.rb +457 -0
  246. data/lib/rbs/test.rb +112 -0
  247. data/lib/rbs/type_alias_dependency.rb +100 -0
  248. data/lib/rbs/type_alias_regularity.rb +126 -0
  249. data/lib/rbs/type_name.rb +122 -0
  250. data/lib/rbs/types.rb +1604 -0
  251. data/lib/rbs/unit_test/convertibles.rb +177 -0
  252. data/lib/rbs/unit_test/spy.rb +138 -0
  253. data/lib/rbs/unit_test/type_assertions.rb +383 -0
  254. data/lib/rbs/unit_test/with_aliases.rb +145 -0
  255. data/lib/rbs/unit_test.rb +6 -0
  256. data/lib/rbs/validator.rb +186 -0
  257. data/lib/rbs/variance_calculator.rb +189 -0
  258. data/lib/rbs/vendorer.rb +71 -0
  259. data/lib/rbs/version.rb +5 -0
  260. data/lib/rbs/wasm/deserializer.rb +213 -0
  261. data/lib/rbs/wasm/jars/asm-analysis.jar +0 -0
  262. data/lib/rbs/wasm/jars/asm-commons.jar +0 -0
  263. data/lib/rbs/wasm/jars/asm-tree.jar +0 -0
  264. data/lib/rbs/wasm/jars/asm-util.jar +0 -0
  265. data/lib/rbs/wasm/jars/asm.jar +0 -0
  266. data/lib/rbs/wasm/jars/compiler.jar +0 -0
  267. data/lib/rbs/wasm/jars/log.jar +0 -0
  268. data/lib/rbs/wasm/jars/runtime.jar +0 -0
  269. data/lib/rbs/wasm/jars/wasi.jar +0 -0
  270. data/lib/rbs/wasm/jars/wasm.jar +0 -0
  271. data/lib/rbs/wasm/location.rb +61 -0
  272. data/lib/rbs/wasm/parser.rb +137 -0
  273. data/lib/rbs/wasm/rbs_parser.wasm +0 -0
  274. data/lib/rbs/wasm/runtime.rb +217 -0
  275. data/lib/rbs/wasm/serialization_schema.rb +110 -0
  276. data/lib/rbs/writer.rb +424 -0
  277. data/lib/rbs.rb +117 -0
  278. data/lib/rdoc/discover.rb +20 -0
  279. data/lib/rdoc_plugin/parser.rb +163 -0
  280. data/rbs.gemspec +68 -0
  281. data/schema/annotation.json +14 -0
  282. data/schema/comment.json +26 -0
  283. data/schema/decls.json +326 -0
  284. data/schema/function.json +87 -0
  285. data/schema/location.json +56 -0
  286. data/schema/members.json +266 -0
  287. data/schema/methodType.json +50 -0
  288. data/schema/typeParam.json +52 -0
  289. data/schema/types.json +317 -0
  290. data/sig/ancestor_builder.rbs +163 -0
  291. data/sig/ancestor_graph.rbs +60 -0
  292. data/sig/annotate/annotations.rbs +102 -0
  293. data/sig/annotate/formatter.rbs +24 -0
  294. data/sig/annotate/rdoc_annotater.rbs +85 -0
  295. data/sig/annotate/rdoc_source.rbs +32 -0
  296. data/sig/annotation.rbs +27 -0
  297. data/sig/ast/ruby/annotations.rbs +470 -0
  298. data/sig/ast/ruby/comment_block.rbs +127 -0
  299. data/sig/ast/ruby/declarations.rbs +158 -0
  300. data/sig/ast/ruby/helpers/constant_helper.rbs +11 -0
  301. data/sig/ast/ruby/helpers/location_helper.rbs +15 -0
  302. data/sig/ast/ruby/members.rbs +198 -0
  303. data/sig/buffer.rbs +108 -0
  304. data/sig/builtin_names.rbs +44 -0
  305. data/sig/cli/colored_io.rbs +15 -0
  306. data/sig/cli/diff.rbs +15 -0
  307. data/sig/cli/validate.rbs +47 -0
  308. data/sig/cli.rbs +89 -0
  309. data/sig/collection/cleaner.rbs +13 -0
  310. data/sig/collection/config/lockfile.rbs +74 -0
  311. data/sig/collection/config/lockfile_generator.rbs +68 -0
  312. data/sig/collection/config.rbs +46 -0
  313. data/sig/collection/installer.rbs +17 -0
  314. data/sig/collection/sources.rbs +214 -0
  315. data/sig/collection.rbs +4 -0
  316. data/sig/comment.rbs +26 -0
  317. data/sig/constant.rbs +21 -0
  318. data/sig/declarations.rbs +274 -0
  319. data/sig/definition.rbs +232 -0
  320. data/sig/definition_builder.rbs +181 -0
  321. data/sig/diff.rbs +28 -0
  322. data/sig/directives.rbs +77 -0
  323. data/sig/environment/class_entry.rbs +50 -0
  324. data/sig/environment/module_entry.rbs +50 -0
  325. data/sig/environment.rbs +286 -0
  326. data/sig/environment_loader.rbs +111 -0
  327. data/sig/environment_walker.rbs +65 -0
  328. data/sig/errors.rbs +408 -0
  329. data/sig/factory.rbs +5 -0
  330. data/sig/file_finder.rbs +28 -0
  331. data/sig/inline_parser/comment_association.rbs +71 -0
  332. data/sig/inline_parser.rbs +126 -0
  333. data/sig/location.rbs +135 -0
  334. data/sig/locator.rbs +56 -0
  335. data/sig/manifest.yaml +5 -0
  336. data/sig/members.rbs +258 -0
  337. data/sig/method_builder.rbs +89 -0
  338. data/sig/method_types.rbs +58 -0
  339. data/sig/namespace.rbs +161 -0
  340. data/sig/parser.rbs +164 -0
  341. data/sig/prototype/helpers.rbs +29 -0
  342. data/sig/prototype/node_usage.rbs +20 -0
  343. data/sig/prototype/rb.rbs +96 -0
  344. data/sig/prototype/rbi.rbs +75 -0
  345. data/sig/prototype/runtime.rbs +182 -0
  346. data/sig/rbs.rbs +21 -0
  347. data/sig/rdoc/rbs.rbs +67 -0
  348. data/sig/repository.rbs +85 -0
  349. data/sig/resolver/constant_resolver.rbs +92 -0
  350. data/sig/resolver/context.rbs +34 -0
  351. data/sig/resolver/type_name_resolver.rbs +61 -0
  352. data/sig/rewriter.rbs +45 -0
  353. data/sig/shims/bundler.rbs +38 -0
  354. data/sig/shims/enumerable.rbs +5 -0
  355. data/sig/shims/rubygems.rbs +19 -0
  356. data/sig/sorter.rbs +41 -0
  357. data/sig/source.rbs +48 -0
  358. data/sig/substitution.rbs +48 -0
  359. data/sig/subtractor.rbs +37 -0
  360. data/sig/test/errors.rbs +52 -0
  361. data/sig/test/guranteed.rbs +9 -0
  362. data/sig/test/type_check.rbs +19 -0
  363. data/sig/test.rbs +82 -0
  364. data/sig/type_alias_dependency.rbs +53 -0
  365. data/sig/type_alias_regularity.rbs +98 -0
  366. data/sig/type_param.rbs +115 -0
  367. data/sig/typename.rbs +89 -0
  368. data/sig/types.rbs +578 -0
  369. data/sig/unit_test/convertibles.rbs +154 -0
  370. data/sig/unit_test/spy.rbs +22 -0
  371. data/sig/unit_test/type_assertions.rbs +211 -0
  372. data/sig/unit_test/with_aliases.rbs +136 -0
  373. data/sig/use_map.rbs +35 -0
  374. data/sig/util.rbs +9 -0
  375. data/sig/validator.rbs +63 -0
  376. data/sig/variance_calculator.rbs +87 -0
  377. data/sig/vendorer.rbs +51 -0
  378. data/sig/version.rbs +3 -0
  379. data/sig/visitor.rbs +47 -0
  380. data/sig/wasm/deserializer.rbs +66 -0
  381. data/sig/wasm/serialization_schema.rbs +13 -0
  382. data/sig/writer.rbs +127 -0
  383. data/src/ast.c +1628 -0
  384. data/src/lexer.c +3217 -0
  385. data/src/lexer.re +155 -0
  386. data/src/lexstate.c +217 -0
  387. data/src/location.c +31 -0
  388. data/src/parser.c +4255 -0
  389. data/src/serialize.c +958 -0
  390. data/src/string.c +41 -0
  391. data/src/util/rbs_allocator.c +162 -0
  392. data/src/util/rbs_assert.c +19 -0
  393. data/src/util/rbs_buffer.c +54 -0
  394. data/src/util/rbs_constant_pool.c +268 -0
  395. data/src/util/rbs_encoding.c +21308 -0
  396. data/src/util/rbs_unescape.c +167 -0
  397. data/stdlib/abbrev/0/abbrev.rbs +66 -0
  398. data/stdlib/abbrev/0/array.rbs +26 -0
  399. data/stdlib/base64/0/base64.rbs +355 -0
  400. data/stdlib/benchmark/0/benchmark.rbs +452 -0
  401. data/stdlib/bigdecimal/0/big_decimal.rbs +1647 -0
  402. data/stdlib/bigdecimal-math/0/big_math.rbs +280 -0
  403. data/stdlib/bigdecimal-math/0/manifest.yaml +2 -0
  404. data/stdlib/cgi/0/core.rbs +911 -0
  405. data/stdlib/cgi/0/manifest.yaml +4 -0
  406. data/stdlib/cgi-escape/0/escape.rbs +171 -0
  407. data/stdlib/coverage/0/coverage.rbs +266 -0
  408. data/stdlib/csv/0/csv.rbs +3776 -0
  409. data/stdlib/csv/0/manifest.yaml +3 -0
  410. data/stdlib/date/0/date.rbs +1598 -0
  411. data/stdlib/date/0/date_time.rbs +617 -0
  412. data/stdlib/date/0/time.rbs +26 -0
  413. data/stdlib/dbm/0/dbm.rbs +421 -0
  414. data/stdlib/delegate/0/delegator.rbs +187 -0
  415. data/stdlib/delegate/0/kernel.rbs +47 -0
  416. data/stdlib/delegate/0/simple_delegator.rbs +96 -0
  417. data/stdlib/did_you_mean/0/did_you_mean.rbs +344 -0
  418. data/stdlib/digest/0/digest.rbs +687 -0
  419. data/stdlib/erb/0/erb.rbs +933 -0
  420. data/stdlib/etc/0/etc.rbs +884 -0
  421. data/stdlib/fileutils/0/fileutils.rbs +1753 -0
  422. data/stdlib/find/0/find.rbs +49 -0
  423. data/stdlib/forwardable/0/forwardable.rbs +271 -0
  424. data/stdlib/io-console/0/io-console.rbs +414 -0
  425. data/stdlib/ipaddr/0/ipaddr.rbs +436 -0
  426. data/stdlib/json/0/json.rbs +1963 -0
  427. data/stdlib/kconv/0/kconv.rbs +166 -0
  428. data/stdlib/logger/0/formatter.rbs +45 -0
  429. data/stdlib/logger/0/log_device.rbs +100 -0
  430. data/stdlib/logger/0/logger.rbs +796 -0
  431. data/stdlib/logger/0/manifest.yaml +2 -0
  432. data/stdlib/logger/0/period.rbs +17 -0
  433. data/stdlib/logger/0/severity.rbs +34 -0
  434. data/stdlib/minitest/0/kernel.rbs +42 -0
  435. data/stdlib/minitest/0/minitest/abstract_reporter.rbs +52 -0
  436. data/stdlib/minitest/0/minitest/assertion.rbs +17 -0
  437. data/stdlib/minitest/0/minitest/assertions.rbs +590 -0
  438. data/stdlib/minitest/0/minitest/backtrace_filter.rbs +23 -0
  439. data/stdlib/minitest/0/minitest/bench_spec.rbs +102 -0
  440. data/stdlib/minitest/0/minitest/benchmark.rbs +259 -0
  441. data/stdlib/minitest/0/minitest/composite_reporter.rbs +25 -0
  442. data/stdlib/minitest/0/minitest/compress.rbs +13 -0
  443. data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
  444. data/stdlib/minitest/0/minitest/expectation.rbs +2 -0
  445. data/stdlib/minitest/0/minitest/expectations.rbs +21 -0
  446. data/stdlib/minitest/0/minitest/guard.rbs +64 -0
  447. data/stdlib/minitest/0/minitest/mock.rbs +64 -0
  448. data/stdlib/minitest/0/minitest/parallel/executor.rbs +46 -0
  449. data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +5 -0
  450. data/stdlib/minitest/0/minitest/parallel/test.rbs +3 -0
  451. data/stdlib/minitest/0/minitest/parallel.rbs +2 -0
  452. data/stdlib/minitest/0/minitest/pride_io.rbs +62 -0
  453. data/stdlib/minitest/0/minitest/pride_lol.rbs +19 -0
  454. data/stdlib/minitest/0/minitest/progress_reporter.rbs +11 -0
  455. data/stdlib/minitest/0/minitest/reportable.rbs +53 -0
  456. data/stdlib/minitest/0/minitest/reporter.rbs +5 -0
  457. data/stdlib/minitest/0/minitest/result.rbs +28 -0
  458. data/stdlib/minitest/0/minitest/runnable.rbs +163 -0
  459. data/stdlib/minitest/0/minitest/skip.rbs +6 -0
  460. data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +48 -0
  461. data/stdlib/minitest/0/minitest/spec/dsl.rbs +129 -0
  462. data/stdlib/minitest/0/minitest/spec.rbs +11 -0
  463. data/stdlib/minitest/0/minitest/statistics_reporter.rbs +81 -0
  464. data/stdlib/minitest/0/minitest/summary_reporter.rbs +18 -0
  465. data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +92 -0
  466. data/stdlib/minitest/0/minitest/test.rbs +69 -0
  467. data/stdlib/minitest/0/minitest/unexpected_error.rbs +12 -0
  468. data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
  469. data/stdlib/minitest/0/minitest/unit/test_case.rbs +3 -0
  470. data/stdlib/minitest/0/minitest/unit.rbs +4 -0
  471. data/stdlib/minitest/0/minitest.rbs +115 -0
  472. data/stdlib/monitor/0/monitor.rbs +363 -0
  473. data/stdlib/mutex_m/0/mutex_m.rbs +104 -0
  474. data/stdlib/net-http/0/manifest.yaml +3 -0
  475. data/stdlib/net-http/0/net-http.rbs +5580 -0
  476. data/stdlib/net-protocol/0/manifest.yaml +2 -0
  477. data/stdlib/net-protocol/0/net-protocol.rbs +56 -0
  478. data/stdlib/net-smtp/0/manifest.yaml +2 -0
  479. data/stdlib/net-smtp/0/net-smtp.rbs +55 -0
  480. data/stdlib/nkf/0/nkf.rbs +402 -0
  481. data/stdlib/objspace/0/objspace.rbs +470 -0
  482. data/stdlib/observable/0/observable.rbs +217 -0
  483. data/stdlib/open-uri/0/manifest.yaml +4 -0
  484. data/stdlib/open-uri/0/open-uri.rbs +433 -0
  485. data/stdlib/open3/0/open3.rbs +606 -0
  486. data/stdlib/openssl/0/manifest.yaml +3 -0
  487. data/stdlib/openssl/0/openssl.rbs +12231 -0
  488. data/stdlib/optparse/0/optparse.rbs +1734 -0
  489. data/stdlib/pathname/0/pathname.rbs +36 -0
  490. data/stdlib/pp/0/manifest.yaml +2 -0
  491. data/stdlib/pp/0/pp.rbs +301 -0
  492. data/stdlib/prettyprint/0/prettyprint.rbs +383 -0
  493. data/stdlib/pstore/0/pstore.rbs +608 -0
  494. data/stdlib/psych/0/core_ext.rbs +12 -0
  495. data/stdlib/psych/0/dbm.rbs +237 -0
  496. data/stdlib/psych/0/manifest.yaml +3 -0
  497. data/stdlib/psych/0/psych.rbs +455 -0
  498. data/stdlib/psych/0/store.rbs +57 -0
  499. data/stdlib/pty/0/pty.rbs +240 -0
  500. data/stdlib/random-formatter/0/random-formatter.rbs +277 -0
  501. data/stdlib/rdoc/0/code_object.rbs +52 -0
  502. data/stdlib/rdoc/0/comment.rbs +61 -0
  503. data/stdlib/rdoc/0/context.rbs +153 -0
  504. data/stdlib/rdoc/0/markup.rbs +117 -0
  505. data/stdlib/rdoc/0/options.rbs +76 -0
  506. data/stdlib/rdoc/0/parser.rbs +56 -0
  507. data/stdlib/rdoc/0/rdoc.rbs +393 -0
  508. data/stdlib/rdoc/0/ri.rbs +17 -0
  509. data/stdlib/rdoc/0/store.rbs +48 -0
  510. data/stdlib/rdoc/0/top_level.rbs +97 -0
  511. data/stdlib/resolv/0/manifest.yaml +3 -0
  512. data/stdlib/resolv/0/resolv.rbs +1787 -0
  513. data/stdlib/ripper/0/ripper.rbs +1654 -0
  514. data/stdlib/securerandom/0/manifest.yaml +2 -0
  515. data/stdlib/securerandom/0/securerandom.rbs +49 -0
  516. data/stdlib/shellwords/0/shellwords.rbs +229 -0
  517. data/stdlib/singleton/0/singleton.rbs +134 -0
  518. data/stdlib/socket/0/addrinfo.rbs +666 -0
  519. data/stdlib/socket/0/basic_socket.rbs +590 -0
  520. data/stdlib/socket/0/constants.rbs +2295 -0
  521. data/stdlib/socket/0/ip_socket.rbs +94 -0
  522. data/stdlib/socket/0/socket.rbs +4170 -0
  523. data/stdlib/socket/0/socket_error.rbs +5 -0
  524. data/stdlib/socket/0/tcp_server.rbs +192 -0
  525. data/stdlib/socket/0/tcp_socket.rbs +87 -0
  526. data/stdlib/socket/0/udp_socket.rbs +133 -0
  527. data/stdlib/socket/0/unix_server.rbs +169 -0
  528. data/stdlib/socket/0/unix_socket.rbs +172 -0
  529. data/stdlib/stringio/0/stringio.rbs +1681 -0
  530. data/stdlib/strscan/0/string_scanner.rbs +1648 -0
  531. data/stdlib/tempfile/0/tempfile.rbs +483 -0
  532. data/stdlib/time/0/time.rbs +434 -0
  533. data/stdlib/timeout/0/timeout.rbs +137 -0
  534. data/stdlib/tmpdir/0/tmpdir.rbs +69 -0
  535. data/stdlib/tsort/0/cyclic.rbs +8 -0
  536. data/stdlib/tsort/0/interfaces.rbs +20 -0
  537. data/stdlib/tsort/0/tsort.rbs +410 -0
  538. data/stdlib/uri/0/common.rbs +621 -0
  539. data/stdlib/uri/0/file.rbs +118 -0
  540. data/stdlib/uri/0/ftp.rbs +13 -0
  541. data/stdlib/uri/0/generic.rbs +1116 -0
  542. data/stdlib/uri/0/http.rbs +104 -0
  543. data/stdlib/uri/0/https.rbs +14 -0
  544. data/stdlib/uri/0/ldap.rbs +230 -0
  545. data/stdlib/uri/0/ldaps.rbs +14 -0
  546. data/stdlib/uri/0/mailto.rbs +92 -0
  547. data/stdlib/uri/0/rfc2396_parser.rbs +189 -0
  548. data/stdlib/uri/0/rfc3986_parser.rbs +2 -0
  549. data/stdlib/uri/0/ws.rbs +13 -0
  550. data/stdlib/uri/0/wss.rbs +9 -0
  551. data/stdlib/yaml/0/manifest.yaml +2 -0
  552. data/stdlib/yaml/0/yaml.rbs +1 -0
  553. data/stdlib/zlib/0/buf_error.rbs +10 -0
  554. data/stdlib/zlib/0/data_error.rbs +10 -0
  555. data/stdlib/zlib/0/deflate.rbs +211 -0
  556. data/stdlib/zlib/0/error.rbs +20 -0
  557. data/stdlib/zlib/0/gzip_file/crc_error.rbs +12 -0
  558. data/stdlib/zlib/0/gzip_file/error.rbs +23 -0
  559. data/stdlib/zlib/0/gzip_file/length_error.rbs +12 -0
  560. data/stdlib/zlib/0/gzip_file/no_footer.rbs +11 -0
  561. data/stdlib/zlib/0/gzip_file.rbs +156 -0
  562. data/stdlib/zlib/0/gzip_reader.rbs +293 -0
  563. data/stdlib/zlib/0/gzip_writer.rbs +168 -0
  564. data/stdlib/zlib/0/inflate.rbs +180 -0
  565. data/stdlib/zlib/0/mem_error.rbs +10 -0
  566. data/stdlib/zlib/0/need_dict.rbs +13 -0
  567. data/stdlib/zlib/0/stream_end.rbs +11 -0
  568. data/stdlib/zlib/0/stream_error.rbs +11 -0
  569. data/stdlib/zlib/0/version_error.rbs +11 -0
  570. data/stdlib/zlib/0/zlib.rbs +449 -0
  571. data/stdlib/zlib/0/zstream.rbs +201 -0
  572. data/wasm/README.md +59 -0
  573. data/wasm/rbs_wasm.c +411 -0
  574. metadata +660 -0
@@ -0,0 +1,47 @@
1
+ module RBS
2
+ class CLI
3
+ class Validate
4
+ class Errors
5
+ @limit: Integer?
6
+ @errors: Array[BaseError]
7
+
8
+ # The tag that will be thrown in #finish method
9
+ @tag: top
10
+
11
+ def initialize: (limit: Integer?) -> void
12
+
13
+ def add: (BaseError) -> void
14
+
15
+ # Throws the `@tag` with 0 or 1
16
+ #
17
+ # Must be called from the block passed to `#try` method.
18
+ #
19
+ def finish: () -> Integer
20
+
21
+ def try: () { () -> void } -> Integer
22
+
23
+ private
24
+
25
+ def build_message: (BaseError) -> String
26
+ end
27
+
28
+ @env: Environment
29
+ @builder: RBS::DefinitionBuilder
30
+ @validator: RBS::Validator
31
+ @errors: Errors
32
+
33
+ def initialize: (args: Array[String], options: LibraryOptions) -> void
34
+
35
+ def run: () -> Integer
36
+
37
+ private
38
+
39
+ def validate_class_module_definition: () -> void
40
+ def validate_class_module_alias_definition: () -> void
41
+ def validate_interface: () -> void
42
+ def validate_constant: () -> void
43
+ def validate_global: () -> void
44
+ def validate_type_alias: () -> void
45
+ end
46
+ end
47
+ end
data/sig/cli.rbs ADDED
@@ -0,0 +1,89 @@
1
+ module RBS
2
+ class CLI
3
+ class LibraryOptions
4
+ attr_accessor core_root: Pathname?
5
+ attr_accessor config_path: Pathname?
6
+
7
+ attr_reader libs: Array[String]
8
+ attr_reader dirs: Array[String]
9
+ attr_reader repos: Array[String]
10
+
11
+ def initialize: () -> void
12
+
13
+ def loader: () -> EnvironmentLoader
14
+
15
+ def setup_library_options: (OptionParser) -> OptionParser
16
+ end
17
+
18
+ interface _IO
19
+ def puts: (*untyped) -> void
20
+
21
+ def tty?: () -> bool
22
+
23
+ def print: (*untyped) -> void
24
+
25
+ def flush: () -> void
26
+ end
27
+
28
+ attr_reader stdout: _IO
29
+ attr_reader stderr: _IO
30
+
31
+ # The copy of `args` passed to `run`.
32
+ #
33
+ # `OptionParser#order!` mutates given `arg`, the `run_***` actions should read `original_args` to get the original commandline arguments.
34
+ #
35
+ # Returns `nil` if called before `#run` call.
36
+ #
37
+ attr_reader original_args: Array[String]
38
+
39
+ def initialize: (stdout: IO, stderr: IO) -> void
40
+
41
+ COMMANDS: Array[Symbol]
42
+
43
+ def library_parse: (OptionParser, options: LibraryOptions) -> void
44
+
45
+ def parse_logging_options: (OptionParser) -> void
46
+
47
+ def has_parser?: () -> bool
48
+
49
+ def run: (Array[String] args) -> Integer
50
+
51
+ def run_ast: (Array[String], LibraryOptions) -> Integer
52
+
53
+ def run_list: (Array[String], LibraryOptions) -> Integer
54
+
55
+ def run_ancestors: (Array[String], LibraryOptions) -> Integer
56
+
57
+ def run_methods: (Array[String], LibraryOptions) -> Integer
58
+
59
+ def run_method: (Array[String], LibraryOptions) -> Integer
60
+
61
+ def run_validate: (Array[String], LibraryOptions) -> Integer
62
+
63
+ def run_constant: (Array[String], LibraryOptions) -> Integer
64
+
65
+ def run_paths: (Array[String], LibraryOptions) -> Integer
66
+
67
+ def run_prototype: (Array[String], LibraryOptions) -> Integer
68
+
69
+ def run_prototype_file: (String format, Array[String]) -> Integer
70
+
71
+ def run_vendor: (Array[String], LibraryOptions) -> Integer
72
+
73
+ def run_parse: (Array[String], LibraryOptions) -> Integer
74
+
75
+ def run_test: (Array[String], LibraryOptions) -> Integer
76
+
77
+ def run_collection: (Array[String], LibraryOptions) -> Integer
78
+
79
+ def run_annotate: (Array[String], top) -> Integer
80
+
81
+ def run_subtract: (Array[String], top) -> Integer
82
+
83
+ def run_diff: (Array[String], LibraryOptions) -> Integer
84
+
85
+ def test_opt: (LibraryOptions) -> String?
86
+
87
+ def collection_options: (Array[String]) -> OptionParser
88
+ end
89
+ end
@@ -0,0 +1,13 @@
1
+ module RBS
2
+ module Collection
3
+ class Cleaner
4
+ attr_reader lock: Config
5
+
6
+ def initialize: (lockfile_path: Pathname) -> void
7
+
8
+ def clean: () -> void
9
+
10
+ def needed?: (String gem_name, String version) -> bool
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,74 @@
1
+ module RBS
2
+ module Collection
3
+ class Config
4
+ # Lockfile represents the `rbs_collection.lock.yaml`, that contains configurations and *resolved* gems with their sources
5
+ #
6
+ class Lockfile
7
+ # Data structure stored in `rbs_collection.lock.yaml`
8
+ #
9
+ type lockfile_data = {
10
+ "path" => String,
11
+ "gems" => Array[library_data]?, # null if empty
12
+ "gemfile_lock_path" => String? # gemfile_lock_path is optional because older versions doesn't have it
13
+ }
14
+
15
+ type library_data = {
16
+ 'name' => String,
17
+ 'version' => String,
18
+ 'source' => Sources::source_entry
19
+ }
20
+
21
+ # In-memory data structure that represents a library
22
+ #
23
+ type library = {
24
+ name: String,
25
+ version: String,
26
+ source: Sources::t
27
+ }
28
+
29
+ attr_reader lockfile_path: Pathname
30
+
31
+ # Path of the directory where lockfile is saved in
32
+ #
33
+ # `lockfile_path.parent`
34
+ #
35
+ attr_reader lockfile_dir: Pathname
36
+
37
+ # Relative to lockfile_dir
38
+ #
39
+ attr_reader path: Pathname
40
+
41
+ # Relative to lockfile_dir
42
+ #
43
+ attr_reader gemfile_lock_path: Pathname?
44
+
45
+ attr_reader gems: Hash[String, library]
46
+
47
+ def initialize: (lockfile_path: Pathname, path: Pathname, gemfile_lock_path: Pathname?) -> void
48
+
49
+ # `lockfile_dir` + `path`
50
+ #
51
+ def fullpath: () -> Pathname
52
+
53
+ # `lockfile_dir` + `gemfile_lock_path`
54
+ #
55
+ %a{pure} def gemfile_lock_fullpath: () -> Pathname?
56
+
57
+ def to_lockfile: () -> lockfile_data
58
+
59
+ def self.from_lockfile: (lockfile_path: Pathname, data: lockfile_data) -> Lockfile
60
+
61
+ # Validates if directories are set up correctly
62
+ #
63
+ # * Ensures if `path` is a directory
64
+ # * Ensures if `git` sources are set up correctly
65
+ #
66
+ def check_rbs_availability!: () -> void
67
+
68
+ private
69
+
70
+ def library_data: (library) -> library_data
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,68 @@
1
+ module RBS
2
+ module Collection
3
+ class Config
4
+ class LockfileGenerator
5
+ # Name of stdlibs that was rbs-bundled stdlib but is now a gem.
6
+ #
7
+ ALUMNI_STDLIBS: Hash[String, String?]
8
+
9
+ NONGEM_STDLIBS: Set[String]
10
+
11
+ class GemfileLockMismatchError < StandardError
12
+ @expected: Pathname
13
+
14
+ @actual: Pathname
15
+
16
+ def initialize: (expected: Pathname, actual: Pathname) -> void
17
+
18
+ def message: () -> String
19
+ end
20
+
21
+ attr_reader config: Config
22
+
23
+ attr_reader lockfile: Lockfile
24
+ attr_reader existing_lockfile: Lockfile?
25
+
26
+ attr_reader definition: Bundler::Definition
27
+
28
+ # A hash table to look up a spec from name of the gem
29
+ attr_reader gem_hash: Hash[String, Bundler::LazySpecification]
30
+
31
+ # A hash table to look up a gem entry in collection config from the name of the gem
32
+ attr_reader gem_entries: Hash[String, gem_entry?]
33
+
34
+ def self.generate: (config: Config, definition: Bundler::Definition, ?with_lockfile: boolish) -> Lockfile
35
+
36
+ def initialize: (config: Config, definition: Bundler::Definition, with_lockfile: boolish) -> void
37
+
38
+ def generate: () -> void
39
+
40
+ private
41
+
42
+ # Ensure if current `gemfile_lock_path` is the same with the path saved in `lock`
43
+ #
44
+ def validate_gemfile_lock_path!: (lock: Lockfile?, gemfile_lock_path: Pathname) -> void
45
+
46
+ # Inserts a entry to lockfile of a gem and its dependencies, if not included in `ignored_gems:`
47
+ #
48
+ # * If `skip:` is true, it skips adding the gem, but adds it's dependencies.
49
+ #
50
+ def assign_gem: (name: String, version: String?, ?skip: bool) -> void
51
+
52
+ # Assign a gem from stdlib to lockfile
53
+ #
54
+ # `from_gem` is a String when the stdlib is assigned through the `dependencies:` in `manifest.yaml` of a gem.
55
+ #
56
+ def assign_stdlib: (name: String, ?from_gem: String) -> void
57
+
58
+ # Find a source of a gem from ones registered in `config.sources`
59
+ #
60
+ # Returns `nil` if no source contains the definition of the gem.
61
+ #
62
+ def find_source: (name: String) -> Sources::t?
63
+
64
+ def find_best_version: (version: String?, versions: Array[String]) -> Gem::Version
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,46 @@
1
+ module RBS
2
+ module Collection
3
+ # This class represent the configuration file.
4
+ class Config
5
+ class CollectionNotAvailable < StandardError
6
+ def initialize: () -> void
7
+ end
8
+
9
+ PATH: Pathname
10
+
11
+ type gem_entry = {
12
+ 'name' => String,
13
+ 'version' => String?,
14
+ 'ignore' => boolish,
15
+ 'source' => Sources::source_entry?
16
+ }
17
+
18
+ attr_reader config_path: Pathname
19
+
20
+ attr_reader data: untyped
21
+
22
+ @sources: Array[Sources::_Source]
23
+
24
+ def self.find_config_path: () -> Pathname?
25
+
26
+ def self.generate_lockfile: (config_path: Pathname, definition: Bundler::Definition, ?with_lockfile: boolish) -> [Config, Lockfile]
27
+
28
+ def self.from_path: (Pathname path) -> Config
29
+
30
+ def self.to_lockfile_path: (Pathname config_path) -> Pathname
31
+
32
+ # config_path is necessary to resolve relative repo_path
33
+ def initialize: (untyped data, config_path: Pathname) -> void
34
+
35
+ def gem: (String gem_name) -> gem_entry?
36
+
37
+ def repo_path: () -> Pathname
38
+
39
+ def repo_path_data: () -> Pathname
40
+
41
+ def sources: () -> Array[Sources::t]
42
+
43
+ def gems: () -> Array[gem_entry]
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,17 @@
1
+ module RBS
2
+ module Collection
3
+ class Installer
4
+ attr_reader lockfile: Config::Lockfile
5
+ attr_reader stdout: CLI::_IO
6
+
7
+ def initialize: (lockfile_path: Pathname, ?stdout: CLI::_IO) -> void
8
+ def install_from_lockfile: () -> void
9
+
10
+ private
11
+
12
+ @source_for: Hash[Sources::source_entry, Sources::_Source]
13
+
14
+ def source_for: (Config::gem_entry) -> Sources::_Source
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,214 @@
1
+ module RBS
2
+ module Collection
3
+ module Sources
4
+ def self.from_config_entry: (Git::source_entry, base_directory: Pathname) -> Git
5
+ | (source_entry, base_directory: Pathname) -> t
6
+
7
+ interface _Source
8
+ def has?: (String name, String? version) -> boolish
9
+ def versions: (String name) -> Array[String]
10
+ def install: (dest: Pathname, name: String, version: String, stdout: CLI::_IO) -> void
11
+ def to_lockfile: () -> source_entry
12
+ def manifest_of: (String name, String version) -> manifest_entry?
13
+ def dependencies_of: (String name, String version) -> Array[manifest_dependency]?
14
+ end
15
+
16
+ type t = Git | Stdlib | Rubygems | Local
17
+
18
+ type source_entry = Git::source_entry
19
+ | Stdlib::source_entry
20
+ | Rubygems::source_entry
21
+ | Local::source_entry
22
+
23
+ type manifest_entry = {
24
+ "dependencies" => Array[manifest_dependency]?,
25
+ }
26
+
27
+ type manifest_dependency = { "name" => String }
28
+
29
+ module Base : _Source
30
+ def dependencies_of: (String name, String version) -> Array[manifest_dependency]?
31
+ end
32
+
33
+ class Git
34
+ include Base
35
+
36
+ METADATA_FILENAME: String
37
+
38
+ type source_entry = {
39
+ 'type' => 'git',
40
+ 'name' => String,
41
+ 'remote' => String,
42
+ 'revision' => String,
43
+ 'repo_dir' => String?,
44
+ }
45
+
46
+ class CommandError < StandardError
47
+ end
48
+
49
+ attr_reader name: String
50
+ attr_reader remote: String
51
+ attr_reader repo_dir: String
52
+ attr_reader revision: String
53
+
54
+ def initialize: (name: String, revision: String, remote: String, repo_dir: String?) -> untyped
55
+
56
+ def has?: (String name, String? version) -> boolish
57
+
58
+ def versions: (String name) -> Array[String]
59
+
60
+ def install: (dest: Pathname, name: String, version: String, stdout: CLI::_IO) -> void
61
+
62
+ def to_lockfile: () -> source_entry
63
+
64
+ def manifest_of: (String name, String version) -> manifest_entry?
65
+
66
+ def resolved_revision: () -> String
67
+
68
+ private
69
+
70
+ @need_setup: bool
71
+
72
+ @git_dir: Pathname?
73
+
74
+ @resolved_revision: String?
75
+
76
+ @gems_versions: Hash[String, Set[String]]?
77
+
78
+ def _install: (dest: Pathname , name: String, version: String) -> void
79
+
80
+ def cp_r: (Pathname, Pathname) -> void
81
+
82
+ # Ensure the git repository exists, and
83
+ #
84
+ # * When `revision` is a commit hash, the commit exists in the local repository, or
85
+ # * When `revision` is a branch name, the latest version is fetched from `origin`
86
+ #
87
+ # It may require a network connection to fetch or clone the repository from remote.
88
+ #
89
+ # * If `revision` is a commit hash and the commit doesn't exists in the local repository, it runs `git fetch`
90
+ # * If `revision` is a branch name, it runs `git fetch` once per instance
91
+ #
92
+ def setup!: [T] () { () -> T } -> T
93
+ | () -> void
94
+
95
+ def need_to_fetch?: (String revision) -> bool
96
+
97
+ # The full path of local git repository
98
+ def git_dir: () -> Pathname
99
+
100
+ # The full path of `repo_dir` in the local git repository
101
+ def gem_repo_dir: () -> Pathname
102
+
103
+ # Returns `true` if `revision` looks like a commit hash
104
+ def commit_hash?: () -> bool
105
+
106
+ # Executes a git command, raises an error if failed
107
+ def git: (*String cmd, **untyped opt) -> String
108
+
109
+ # Executes a git command, returns `nil` if failed
110
+ def git?: (*String cmd, **untyped opt) -> String?
111
+
112
+ def sh!: (*String cmd, **untyped opt) -> String
113
+
114
+ def format_config_entry: (String name, String version) -> String
115
+
116
+ type metadata = { 'name' => String, 'version' => String, 'source' => source_entry }
117
+
118
+ def metadata_content: (name: String, version: String) -> metadata
119
+
120
+ # Write `.rbs_meta.yaml`
121
+ def write_metadata: (dir: Pathname, name: String, version: String) -> void
122
+
123
+ # Load `.rbs_meta.yaml` from the `dir`, where is the destination of the RBS file installation, and return the cleaned up content
124
+ #
125
+ def load_metadata: (dir: Pathname) -> metadata
126
+
127
+ def gems_versions: () -> Hash[String, Set[String]]
128
+ end
129
+
130
+ class Local
131
+ include Base
132
+
133
+ type source_entry = {
134
+ 'type' => 'local',
135
+ 'path' => String,
136
+ }
137
+
138
+ attr_reader path: Pathname
139
+ attr_reader full_path: Pathname
140
+
141
+ def initialize: (path: String, base_directory: Pathname) -> void
142
+
143
+ def has?: (String name, String? version) -> boolish
144
+
145
+ def versions: (String name) -> Array[String]
146
+
147
+ def install: (dest: Pathname, name: String, version: String, stdout: CLI::_IO) -> void
148
+
149
+ def to_lockfile: () -> source_entry
150
+
151
+ def manifest_of: (String name, String version) -> manifest_entry?
152
+
153
+ private
154
+
155
+ def _install: (Pathname src, Pathname dest) -> void
156
+ end
157
+
158
+ # signatures that are bundled in rbs gem under the stdlib/ directory
159
+ class Stdlib
160
+
161
+ REPO: Repository
162
+
163
+ include Base
164
+
165
+ type source_entry = {
166
+ 'type' => 'stdlib',
167
+ }
168
+
169
+ # polyfill of singleton module
170
+ def self.instance: () -> instance
171
+
172
+ def has?: (String name, String? version) -> boolish
173
+
174
+ def versions: (String name) -> Array[String]
175
+
176
+ def install: (dest: Pathname, name: String, version: String, stdout: CLI::_IO) -> void
177
+
178
+ def to_lockfile: () -> source_entry
179
+
180
+ def manifest_of: (String name, String version) -> manifest_entry?
181
+
182
+ private
183
+
184
+ def lookup: (String name, String? version) -> Pathname?
185
+ end
186
+
187
+ # sig/ directory
188
+ class Rubygems
189
+ include Base
190
+
191
+ type source_entry = {
192
+ 'type' => 'rubygems',
193
+ }
194
+
195
+ # polyfill of singleton module
196
+ def self.instance: () -> instance
197
+
198
+ def has?: (String name, String? version) -> boolish
199
+
200
+ def versions: (String name) -> Array[String]
201
+
202
+ def install: (dest: Pathname, name: String, version: String, stdout: CLI::_IO) -> void
203
+
204
+ def to_lockfile: () -> source_entry
205
+
206
+ def manifest_of: (String name, String version) -> manifest_entry?
207
+
208
+ private
209
+
210
+ def gem_sig_path: (String name, String? version) -> [Gem::Specification, Pathname]?
211
+ end
212
+ end
213
+ end
214
+ end
@@ -0,0 +1,4 @@
1
+ module RBS
2
+ module Collection
3
+ end
4
+ end
data/sig/comment.rbs ADDED
@@ -0,0 +1,26 @@
1
+ module RBS
2
+ module AST
3
+ # RBS allows writing documentation of declarations and members.
4
+ #
5
+ # ```
6
+ # # This is a doc for class.
7
+ # class Hello
8
+ # end
9
+ # ```
10
+ #
11
+ class Comment
12
+ attr_reader string: String
13
+ attr_reader location: Location[bot, bot]?
14
+
15
+ def initialize: (string: String, location: Location[bot, bot]?) -> void
16
+
17
+ def ==: (untyped other) -> bool
18
+
19
+ alias eql? ==
20
+
21
+ def hash: () -> Integer
22
+
23
+ include _ToJson
24
+ end
25
+ end
26
+ end
data/sig/constant.rbs ADDED
@@ -0,0 +1,21 @@
1
+ module RBS
2
+ class Constant
3
+ type constant_entry = Environment::ClassEntry
4
+ | Environment::ModuleEntry
5
+ | Environment::ConstantEntry
6
+
7
+ attr_reader name: TypeName
8
+
9
+ attr_reader type: Types::t
10
+
11
+ attr_reader entry: constant_entry
12
+
13
+ def initialize: (name: TypeName, type: Types::t, entry: constant_entry) -> void
14
+
15
+ def ==: (untyped other) -> bool
16
+
17
+ alias eql? ==
18
+
19
+ def hash: () -> Integer
20
+ end
21
+ end