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
data/sig/namespace.rbs ADDED
@@ -0,0 +1,161 @@
1
+ module RBS
2
+ # Namespace instance represents a _prefix of module names_.
3
+ #
4
+ # ```
5
+ # vvvvvvvvvvvvvv TypeName
6
+ # RBS::Namespace
7
+ # ^^^^^ Namespace
8
+ #
9
+ # vvvvvvvvvv TypeName
10
+ # RBS::Types
11
+ # ^^^^^ Namespace
12
+ #
13
+ # vvvvvvvvvvvvvvvvv TypeName
14
+ # RBS::Types::Union
15
+ # ^^^^^^^^^^^^ Namespace
16
+ # ```
17
+ #
18
+ # Note that `Namespace` is an RBS specific concept and there is no corresponding concept in Ruby.
19
+ #
20
+ # There are _absolute_ and _relative_ namespaces.
21
+ #
22
+ # ```
23
+ # Namespace(::RBS::) # Absolute namespace
24
+ # Namespace( RBS::) # Relative namespace
25
+ # ```
26
+ #
27
+ # It also defines two special namespaces.
28
+ #
29
+ # ```
30
+ # :: # _Root_ namespace
31
+ # # _Empty_ namespace
32
+ # ```
33
+ #
34
+ class Namespace
35
+ attr_reader path: Array[Symbol]
36
+
37
+ def initialize: (path: Array[Symbol], absolute: boolish) -> void
38
+
39
+ @absolute: bool
40
+
41
+ @parent: Namespace?
42
+
43
+ @hash: Integer?
44
+
45
+ self.@root: Namespace?
46
+
47
+ self.@empty: Namespace?
48
+
49
+ self.@intern_mutex: Mutex
50
+
51
+ # Per-`absolute` flag tries of nested Hashes keyed on path Symbols,
52
+ # with the cached Namespace stored under the `INTERN_LEAF` sentinel
53
+ # at each path's terminal node.
54
+ self.@intern_trie_absolute: Hash[Symbol | Module, untyped]
55
+
56
+ self.@intern_trie_relative: Hash[Symbol | Module, untyped]
57
+
58
+ INTERN_LEAF: Module
59
+
60
+ # Returns an interned `Namespace` instance.
61
+ #
62
+ # Subsequent calls with structurally equal `path` and `absolute` arguments
63
+ # return the same object. The internal `path` array is duplicated and
64
+ # frozen before being cached.
65
+ def self.[]: (Array[Symbol] path, boolish absolute) -> Namespace
66
+
67
+ # Returns new _empty_ namespace.
68
+ def self.empty: () -> Namespace
69
+
70
+ # Returns new _root_ namespace.
71
+ def self.root: () -> Namespace
72
+
73
+ # Concat two namespaces.
74
+ #
75
+ # ```rb
76
+ # Namespace("Foo::") + Namespace("Bar::") # => Foo::Bar::
77
+ # Namespace("::Foo::") + Namespace("Bar::") # => ::Foo::Bar::
78
+ # ```
79
+ #
80
+ # If `other` is an absolute namespace, it returns `other`.
81
+ #
82
+ # ```rb
83
+ # Namespace("Foo::") + Namespace("::Bar::") # => ::Bar::
84
+ # ```
85
+ def +: (Namespace other) -> Namespace
86
+
87
+ # Add one path component to self.
88
+ #
89
+ # ```rb
90
+ # Namespace("Foo::").append(:Bar) # => Namespace("Foo::Bar::")
91
+ # ```
92
+ def append: (Symbol component) -> Namespace
93
+
94
+ # Returns parent namespace.
95
+ # Raises error there is no parent namespace.
96
+ #
97
+ # ```rb
98
+ # Namespace("::A").parent # => Namespace("::")
99
+ # Namespace("::").parent # raises error
100
+ # Namespace("A::B").parent # => Namespace("A")
101
+ # ```
102
+ def parent: () -> Namespace
103
+
104
+ # Returns true if self is absolute namespace.
105
+ def absolute?: () -> bool
106
+
107
+ # Returns true if self is relative namespace.
108
+ def relative?: () -> bool
109
+
110
+ # Returns absolute namespace.
111
+ #
112
+ # ```rb
113
+ # Namespace("A").absolute! # => Namespace("::A")
114
+ # Namespace("::A").absolute! # => Namespace("::A")
115
+ # ```
116
+ def absolute!: () -> Namespace
117
+
118
+ # Returns _relative_ namespace.
119
+ #
120
+ def relative!: () -> Namespace
121
+
122
+ def empty?: () -> bool
123
+
124
+ # Equality is defined by its structure.
125
+ #
126
+ def ==: (untyped other) -> bool
127
+
128
+ alias eql? ==
129
+
130
+ # Hash is defined based on its structure.
131
+ #
132
+ def hash: () -> Integer
133
+
134
+ # Returns a pair of parent namespace and a symbol of last component.
135
+ #
136
+ # ```rb
137
+ # Namespace("::A::B::C").split # => [Namespace("::A::B::"), :C]
138
+ # ```
139
+ def split: () -> [Namespace, Symbol]?
140
+
141
+ def to_s: () -> String
142
+
143
+ # Construct a type name which points to the same name type.
144
+ #
145
+ def to_type_name: () -> TypeName
146
+
147
+ def self.parse: (String string) -> Namespace
148
+
149
+ # Iterate over Namespace for each element in ascending order.
150
+ #
151
+ # ```rb
152
+ # Namespace.parse("::A::B::C").ascend {|ns| p ns }
153
+ # # => ::A::B::C
154
+ # # => ::A::B
155
+ # # => ::A
156
+ # # => ::(root)
157
+ # ```
158
+ def ascend: () { (Namespace) -> void } -> void
159
+ | () -> Enumerator[Namespace, void]
160
+ end
161
+ end
data/sig/parser.rbs ADDED
@@ -0,0 +1,164 @@
1
+ module RBS
2
+ class Parser
3
+ # Result of `Parser.lex`
4
+ class LexResult
5
+ attr_reader buffer: Buffer
6
+ attr_reader value: Array[Token]
7
+
8
+ def initialize: (buffer: Buffer, value: Array[Token]) -> void
9
+ end
10
+
11
+ # Represents a token per result of `Parser.lex`.
12
+ class Token
13
+ attr_reader type: Symbol
14
+ attr_reader location: Location[untyped, untyped]
15
+
16
+ def initialize: (type: Symbol, location: Location[untyped, untyped]) -> void
17
+ def value: () -> String
18
+ def comment?: () -> bool
19
+ end
20
+
21
+ # Parse a method type and return it
22
+ #
23
+ # When `byte_range` keyword is specified, it starts parsing from the `begin` to the `end` of the range.
24
+ #
25
+ # ```ruby
26
+ # RBS::Parser.parse_method_type("() -> void") # => `() -> void`
27
+ # RBS::Parser.parse_method_type("() -> void", byte_range: 0...) # => `() -> void`
28
+ # RBS::Parser.parse_method_type("() -> void () -> String", byte_range: 11...) # => `() -> String`
29
+ # RBS::Parser.parse_method_type("() -> void () -> String", byte_range: 23...) # => nil
30
+ # ```
31
+ #
32
+ # When `require_eof` is `true`, an error is raised if more tokens are left in the input.
33
+ # (Defaults to `false`.)
34
+ #
35
+ # ```ruby
36
+ # RBS::Parser.parse_method_type("() -> void () -> String", require_eof: false) # => `() -> void`
37
+ # RBS::Parser.parse_method_type("() -> void () -> String", require_eof: true) # => Raises an error
38
+ #
39
+ # RBS::Parser.parse_method_type("", require_eof: true) # => nil
40
+ # ```
41
+ #
42
+ def self.parse_method_type: (Buffer | String, ?byte_range: Range[Integer?], ?variables: Array[Symbol], ?require_eof: bool) -> MethodType?
43
+ | %a{deprecated: Use `byte_range:` keyword instead of `range:`} (Buffer | String, range: Range[Integer?], ?variables: Array[Symbol], ?require_eof: bool) -> MethodType?
44
+
45
+ # Parse a type and return it
46
+ #
47
+ # When `byte_range` keyword is specified, it starts parsing from the `begin` to the `end` of the range.
48
+ #
49
+ # ```ruby
50
+ # RBS::Parser.parse_type("String") # => `String`
51
+ # RBS::Parser.parse_type("String", byte_range: 0...) # => `String`
52
+ # RBS::Parser.parse_type("String Integer", byte_range: 7...) # => `Integer`
53
+ # RBS::Parser.parse_type("String Integer", byte_range: 14...) # => nil
54
+ # ```
55
+ #
56
+ # When `require_eof` is `true`, an error is raised if more tokens are left in the input.
57
+ # (Defaults to `false`.)
58
+ #
59
+ # ```ruby
60
+ # RBS::Parser.parse_type("String untyped", require_eof: false) # => `String`
61
+ # RBS::Parser.parse_type("String untyped", require_eof: true) # => Raises an error
62
+ #
63
+ # RBS::Parser.parse_type("", require_eof: true) # => nil
64
+ # ```
65
+ #
66
+ # The `void_allowed` keyword controls whether `void` is allowed as a type.
67
+ #
68
+ # ```ruby
69
+ # RBS::Parser.parse_type("void", void_allowed: true) # => `void`
70
+ # RBS::Parser.parse_type("void", void_allowed: false) # => Raises an syntax error
71
+ # ```
72
+ #
73
+ # The `self_allowed` keyword controls whether `self` is allowed as a type.
74
+ #
75
+ # ```ruby
76
+ # RBS::Parser.parse_type("self", self_allowed: true) # => `self`
77
+ # RBS::Parser.parse_type("self", self_allowed: false) # => Raises an syntax error
78
+ # ```
79
+ #
80
+ def self.parse_type: (Buffer | String, ?byte_range: Range[Integer?], ?variables: Array[Symbol], ?require_eof: bool, ?void_allowed: bool, ?self_allowed: bool, ?classish_allowed: bool) -> Types::t?
81
+ | %a{deprecated: Use `byte_range:` keyword instead of `range:`} (Buffer | String, range: Range[Integer?], ?variables: Array[Symbol], ?require_eof: bool, ?void_allowed: bool, ?self_allowed: bool, ?classish_allowed: bool) -> Types::t?
82
+
83
+ # Parse whole RBS file and return an array of declarations
84
+ #
85
+ def self.parse_signature: (Buffer | String) -> [Buffer, Array[AST::Directives::t], Array[AST::Declarations::t]]
86
+
87
+ # Parse a list of type parameters and return it
88
+ #
89
+ # ```ruby
90
+ # RBS::Parser.parse_type_params("") # => nil
91
+ # RBS::Parser.parse_type_params("[U, V]") # => `[:U, :V]`
92
+ # RBS::Parser.parse_type_params("[in U, V < Integer]") # => `[:U, :V]`
93
+ # ```
94
+ #
95
+ # When `module_type_params` is `false`, an error is raised if `unchecked`, `in` or `out` are used.
96
+ #
97
+ # ```ruby
98
+ # RBS::Parser.parse_type_params("[unchecked U]", module_type_params: false) # => Raises an error
99
+ # RBS::Parser.parse_type_params("[out U]", module_type_params: false) # => Raises an error
100
+ # RBS::Parser.parse_type_params("[in U]", module_type_params: false) # => Raises an error
101
+ # ```
102
+ #
103
+ def self.parse_type_params: (Buffer | String, ?module_type_params: bool) -> Array[AST::TypeParam]
104
+
105
+ # Returns the magic comment from the buffer
106
+ #
107
+ def self.magic_comment: (Buffer) -> AST::Directives::ResolveTypeNames?
108
+
109
+ # Parse whole RBS file and return result.
110
+ #
111
+ # ```ruby
112
+ # RBS::Parser.lex("# Comment\nmodule A\nend\n").value.map(&:type)
113
+ # # => [:tLINECOMMENT, :kMODULE, :tUIDENT, :kEND, :pEOF]
114
+ # ```
115
+ def self.lex: (Buffer | String) -> LexResult
116
+
117
+ KEYWORDS: Hash[String, bot]
118
+
119
+ # Parse a leading annotation and return it
120
+ #
121
+ # Raises an exception if the source text contains a syntax error.
122
+ #
123
+ def self.parse_inline_leading_annotation: (Buffer | String, Range[Integer?], ?variables: Array[Symbol]) -> AST::Ruby::Annotations::leading_annotation
124
+
125
+ # Parse a leading annotation and return it
126
+ #
127
+ # Raises an exception if the source text contains a syntax error.
128
+ #
129
+ def self.parse_inline_trailing_annotation: (Buffer | String, Range[Integer?], ?variables: Array[Symbol]) -> AST::Ruby::Annotations::trailing_annotation
130
+
131
+ private
132
+
133
+ def self.buffer: (String | Buffer source) -> Buffer
134
+
135
+ def self.byte_range: (Range[Integer?] char_range, String content) -> Range[Integer?]
136
+
137
+ def self._parse_type: (Buffer, Integer start_pos, Integer end_pos, Array[Symbol] variables, bool require_eof, bool void_allowed, bool self_allowed, bool classish_allowed) -> Types::t?
138
+
139
+ def self._parse_method_type: (Buffer, Integer start_pos, Integer end_pos, Array[Symbol] variables, bool require_eof) -> MethodType?
140
+
141
+ def self._parse_signature: (Buffer, Integer start_pos, Integer end_pos) -> [Array[AST::Directives::t], Array[AST::Declarations::t]]
142
+
143
+ # Parse and serialize the result to the binary format consumed by
144
+ # RBS::WASM::Deserializer (see ext/rbs_extension/main.c and
145
+ # docs/wasm_serialization.md). The `_to_bytes` variants exist so the
146
+ # round-trip can be exercised on CRuby.
147
+ def self._parse_type_to_bytes: (Buffer, Integer start_pos, Integer end_pos, Array[Symbol] variables, bool require_eof, bool void_allowed, bool self_allowed, bool classish_allowed) -> String?
148
+
149
+ def self._parse_method_type_to_bytes: (Buffer, Integer start_pos, Integer end_pos, Array[Symbol] variables, bool require_eof) -> String?
150
+
151
+ def self._parse_signature_to_bytes: (Buffer, Integer start_pos, Integer end_pos) -> String
152
+
153
+ def self._parse_type_params: (Buffer, Integer start_pos, Integer end_pos, bool module_type_params) -> Array[AST::TypeParam]
154
+
155
+ def self._lex: (Buffer, Integer end_pos) -> Array[[Symbol, Location[untyped, untyped]]]
156
+
157
+ def self._parse_inline_leading_annotation: (Buffer, Integer start_pos, Integer end_pos, Array[Symbol] variables) -> AST::Ruby::Annotations::leading_annotation
158
+
159
+ def self._parse_inline_trailing_annotation: (Buffer, Integer start_pos, Integer end_pos, Array[Symbol] variables) -> AST::Ruby::Annotations::trailing_annotation
160
+
161
+ class LocatedValue
162
+ end
163
+ end
164
+ end
@@ -0,0 +1,29 @@
1
+ module RBS
2
+ module Prototype
3
+ module Helpers
4
+ type node = RubyVM::AbstractSyntaxTree::Node
5
+
6
+ def parse_comments: (String, include_trailing: bool) -> Hash[Integer, AST::Comment]
7
+
8
+ def block_from_body: (node) -> Types::Block?
9
+
10
+ def each_node: (Array[untyped] nodes) { (node) -> void } -> void
11
+
12
+ def each_child: (node) { (node child) -> void } -> void
13
+
14
+ def any_node?: (node, ?nodes: Array[node]) { (node) -> bool } -> Array[node]?
15
+
16
+ def keyword_hash?: (node) -> bool
17
+
18
+ # Returns a symbol if the node is a symbol literal node
19
+ #
20
+ def symbol_literal_node?: (node) -> Symbol?
21
+
22
+ def args_from_node: (node?) -> Array[untyped]
23
+
24
+ def untyped: () -> Types::Bases::Any
25
+
26
+ @untyped: Types::Bases::Any
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,20 @@
1
+ module RBS
2
+ module Prototype
3
+ class NodeUsage
4
+ include Helpers
5
+
6
+ type node = RubyVM::AbstractSyntaxTree::Node
7
+
8
+ attr_reader node: node
9
+
10
+ attr_reader conditional_nodes: Set[node]
11
+
12
+ def initialize: (node) -> void
13
+
14
+ def calculate: (node, conditional: bool) -> void
15
+
16
+ def each_conditional_node: () { (node) -> void } -> void
17
+ | () -> Enumerator[node, void]
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,96 @@
1
+ module RBS
2
+ module Prototype
3
+ class RB
4
+ include Helpers
5
+
6
+ class Context
7
+ type method_kind = :singleton | :singleton_instance | :instance
8
+
9
+ attr_accessor module_function: bool
10
+
11
+ attr_accessor singleton: bool
12
+
13
+ attr_accessor namespace: Namespace
14
+
15
+ attr_accessor in_def: bool
16
+
17
+ def initialize: (module_function: bool, singleton: bool, namespace: Namespace, in_def: bool) -> void
18
+
19
+ def method_kind: () -> method_kind
20
+
21
+ def attribute_kind: () -> (:singleton | :instance)
22
+
23
+ def enter_namespace: (Namespace) -> Context
24
+
25
+ def update: (?module_function: bool, ?singleton: bool, ?in_def: bool) -> Context
26
+
27
+ def self.initial: (?namespace: Namespace) -> Context
28
+ end
29
+
30
+ type decl = AST::Declarations::t | AST::Members::t
31
+
32
+ attr_reader source_decls: Array[decl]
33
+
34
+ def initialize: () -> void
35
+
36
+ def decls: () -> Array[AST::Declarations::t]
37
+
38
+ def parse: (String) -> void
39
+
40
+ def process: (untyped node, decls: Array[AST::Declarations::t | AST::Members::t], comments: Hash[Integer, AST::Comment], context: Context) -> void
41
+
42
+ def process_children: (RubyVM::AbstractSyntaxTree::Node node, decls: Array[decl], comments: Hash[Integer, AST::Comment], context: Context) -> void
43
+
44
+ # Returns a type name that represents the name of the constant.
45
+ # `node` must be _constant_ node, `CONST`, `COLON2`, or `COLON3` node.
46
+ #
47
+ def const_to_name!: (RubyVM::AbstractSyntaxTree::Node node, ?context: Context?) -> TypeName
48
+
49
+ # Returns a type name that represents the name of the constant.
50
+ # `node` can be `SELF` for `extend self` pattern.
51
+ #
52
+ def const_to_name: (RubyVM::AbstractSyntaxTree::Node? node, context: Context) -> TypeName?
53
+
54
+ def literal_to_symbol: (RubyVM::AbstractSyntaxTree::Node node) -> Symbol?
55
+
56
+ def function_type_from_body: (RubyVM::AbstractSyntaxTree::Node node, Symbol def_name) -> Types::Function
57
+
58
+ def function_return_type_from_body: (RubyVM::AbstractSyntaxTree::Node node) -> Types::t
59
+
60
+ def body_type: (RubyVM::AbstractSyntaxTree::Node node) -> Types::t
61
+
62
+ def if_unless_type: (RubyVM::AbstractSyntaxTree::Node node) -> Types::t
63
+
64
+ def block_type: (RubyVM::AbstractSyntaxTree::Node node) -> Types::t
65
+
66
+ def literal_to_type: (RubyVM::AbstractSyntaxTree::Node node) -> Types::t
67
+
68
+ def types_to_union_type: (Array[Types::t] types) -> Types::t
69
+
70
+ def range_element_type: (Array[Types::t] types) -> Types::t
71
+
72
+ def param_type: (RubyVM::AbstractSyntaxTree::Node node, ?default: Types::Bases::Any) -> Types::t
73
+
74
+ # backward compatible
75
+ alias node_type param_type
76
+
77
+ def private: () -> AST::Members::Private
78
+
79
+ @private: AST::Members::Private?
80
+
81
+ def public: () -> AST::Members::Public
82
+
83
+ @public: AST::Members::Public?
84
+
85
+ def current_accessibility: (Array[decl] decls, ?Integer index) -> (AST::Members::Private | AST::Members::Public)
86
+
87
+ def remove_unnecessary_accessibility_methods!: (Array[decl]) -> void
88
+
89
+ def is_accessibility?: (decl) -> bool
90
+
91
+ def find_def_index_by_name: (Array[decl] decls, Symbol name) -> [Integer, AST::Members::MethodDefinition | AST::Members::AttrReader | AST::Members::AttrWriter]?
92
+
93
+ def sort_members!: (Array[decl] decls) -> void
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,75 @@
1
+ module RBS
2
+ module Prototype
3
+ class RBI
4
+ include Helpers
5
+
6
+ attr_reader decls: Array[AST::Declarations::t]
7
+
8
+ type module_decl = AST::Declarations::Class | AST::Declarations::Module
9
+
10
+ # A stack representing the module nesting structure in the Ruby code
11
+ attr_reader modules: Array[module_decl]
12
+
13
+ # Last subsequent `sig` calls
14
+ attr_reader last_sig: Array[RubyVM::AbstractSyntaxTree::Node]?
15
+
16
+ def initialize: () -> void
17
+
18
+ def parse: (String) -> void
19
+
20
+ def nested_name: (RubyVM::AbstractSyntaxTree::Node name) -> TypeName
21
+
22
+ def current_namespace: () -> Namespace
23
+
24
+ def push_class: (
25
+ RubyVM::AbstractSyntaxTree::Node name,
26
+ RubyVM::AbstractSyntaxTree::Node super_class,
27
+ comment: AST::Comment?
28
+ ) { () -> void } -> void
29
+
30
+ def push_module: (RubyVM::AbstractSyntaxTree::Node name, comment: AST::Comment?) { () -> void } -> void
31
+
32
+ # The inner most module/class definition, returns `nil` on toplevel
33
+ def current_module: () -> module_decl?
34
+
35
+ # The inner most module/class definition, raises on toplevel
36
+ def current_module!: () -> module_decl
37
+
38
+ # Put a `sig` call to current list.
39
+ def push_sig: (RubyVM::AbstractSyntaxTree::Node node) -> void
40
+
41
+ # Clear the `sig` call list
42
+ def pop_sig: () -> Array[RubyVM::AbstractSyntaxTree::Node]?
43
+
44
+ def join_comments: (Array[RubyVM::AbstractSyntaxTree::Node] nodes, Hash[Integer, AST::Comment] comments) -> AST::Comment
45
+
46
+ def process: (RubyVM::AbstractSyntaxTree::Node node, comments: Hash[Integer, AST::Comment], ?outer: Array[RubyVM::AbstractSyntaxTree::Node]) -> void
47
+
48
+ def method_type: (RubyVM::AbstractSyntaxTree::Node? args_node, RubyVM::AbstractSyntaxTree::Node? type_node, variables: Array[AST::TypeParam], overloads: Integer) -> MethodType?
49
+
50
+ def parse_params: (RubyVM::AbstractSyntaxTree::Node args_node, RubyVM::AbstractSyntaxTree::Node args, MethodType method_type, variables: Array[AST::TypeParam], overloads: Integer) -> MethodType
51
+
52
+ def type_of: (RubyVM::AbstractSyntaxTree::Node type_node, variables: Array[AST::TypeParam]) -> Types::t
53
+
54
+ def type_of0: (RubyVM::AbstractSyntaxTree::Node type_node, variables: Array[AST::TypeParam]) -> Types::t
55
+
56
+ def proc_type?: (RubyVM::AbstractSyntaxTree::Node type_node) -> bool
57
+
58
+ def call_node?: (RubyVM::AbstractSyntaxTree::Node node, name: Symbol, ?receiver: ^(RubyVM::AbstractSyntaxTree::Node) -> bool, ?args: ^(RubyVM::AbstractSyntaxTree::Node) -> bool) -> bool
59
+
60
+ # Receives a constant node and returns `TypeName` instance
61
+ def const_to_name: (RubyVM::AbstractSyntaxTree::Node node) -> TypeName
62
+
63
+ # Receives `:ARRAY` or `:LIST` node and yields the child nodes.
64
+ def each_arg: (RubyVM::AbstractSyntaxTree::Node array) { (RubyVM::AbstractSyntaxTree::Node) -> void } -> void
65
+ | (RubyVM::AbstractSyntaxTree::Node array) -> Enumerator[RubyVM::AbstractSyntaxTree::Node, void]
66
+
67
+ # Receives node and yields the child nodes.
68
+ def each_child: (RubyVM::AbstractSyntaxTree::Node node) { (RubyVM::AbstractSyntaxTree::Node) -> void } -> void
69
+ | (RubyVM::AbstractSyntaxTree::Node node) -> Enumerator[RubyVM::AbstractSyntaxTree::Node, void]
70
+
71
+ # Receives a keyword `:HASH` node and returns hash instance.
72
+ def node_to_hash: (RubyVM::AbstractSyntaxTree::Node node) -> Hash[Symbol, RubyVM::AbstractSyntaxTree::Node]?
73
+ end
74
+ end
75
+ end