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/config.yml ADDED
@@ -0,0 +1,913 @@
1
+ # See `docs/config.md` for quick documentation of this file format.
2
+
3
+ nodes:
4
+ - name: RBS::AST::Annotation
5
+ rust_name: AnnotationNode
6
+ fields:
7
+ - name: string
8
+ c_type: rbs_string
9
+ - name: RBS::AST::Bool
10
+ rust_name: BoolNode
11
+ expose_to_ruby: false
12
+ expose_location: false
13
+ fields:
14
+ - name: value
15
+ c_type: bool
16
+ - name: RBS::AST::Comment
17
+ rust_name: CommentNode
18
+ fields:
19
+ - name: string
20
+ c_type: rbs_string
21
+ - name: RBS::AST::Declarations::Class
22
+ rust_name: ClassNode
23
+ fields:
24
+ - name: name
25
+ c_type: rbs_type_name
26
+ - name: type_params
27
+ c_type: rbs_node_list
28
+ - name: super_class
29
+ c_type: rbs_ast_declarations_class_super
30
+ optional: true # NULL when no superclass (e.g., `class Foo end` vs `class Foo < Bar end`)
31
+ - name: members
32
+ c_type: rbs_node_list
33
+ - name: annotations
34
+ c_type: rbs_node_list
35
+ - name: comment
36
+ c_type: rbs_ast_comment
37
+ optional: true # NULL when no comment precedes the declaration
38
+ locations:
39
+ - required: keyword
40
+ - required: name
41
+ - required: end
42
+ - optional: type_params
43
+ - optional: lt
44
+ - name: RBS::AST::Declarations::Class::Super
45
+ rust_name: ClassSuperNode
46
+ fields:
47
+ - name: name
48
+ c_type: rbs_type_name
49
+ - name: args
50
+ c_type: rbs_node_list
51
+ locations:
52
+ - required: name
53
+ - optional: args
54
+ - name: RBS::AST::Declarations::ClassAlias
55
+ rust_name: ClassAliasNode
56
+ fields:
57
+ - name: new_name
58
+ c_type: rbs_type_name
59
+ - name: old_name
60
+ c_type: rbs_type_name
61
+ - name: comment
62
+ c_type: rbs_ast_comment
63
+ optional: true # NULL when no comment precedes the declaration
64
+ - name: annotations
65
+ c_type: rbs_node_list
66
+ locations:
67
+ - required: keyword
68
+ - required: new_name
69
+ - required: eq
70
+ - required: old_name
71
+ - name: RBS::AST::Declarations::Constant
72
+ rust_name: ConstantNode
73
+ fields:
74
+ - name: name
75
+ c_type: rbs_type_name
76
+ - name: type
77
+ c_type: rbs_node
78
+ - name: comment
79
+ c_type: rbs_ast_comment
80
+ optional: true # NULL when no comment precedes the declaration
81
+ - name: annotations
82
+ c_type: rbs_node_list
83
+ locations:
84
+ - required: name
85
+ - required: colon
86
+ - name: RBS::AST::Declarations::Global
87
+ rust_name: GlobalNode
88
+ fields:
89
+ - name: name
90
+ c_type: rbs_ast_symbol
91
+ - name: type
92
+ c_type: rbs_node
93
+ - name: comment
94
+ c_type: rbs_ast_comment
95
+ optional: true # NULL when no comment precedes the declaration
96
+ - name: annotations
97
+ c_type: rbs_node_list
98
+ locations:
99
+ - required: name
100
+ - required: colon
101
+ - name: RBS::AST::Declarations::Interface
102
+ rust_name: InterfaceNode
103
+ fields:
104
+ - name: name
105
+ c_type: rbs_type_name
106
+ - name: type_params
107
+ c_type: rbs_node_list
108
+ - name: members
109
+ c_type: rbs_node_list
110
+ - name: annotations
111
+ c_type: rbs_node_list
112
+ - name: comment
113
+ c_type: rbs_ast_comment
114
+ optional: true # NULL when no comment precedes the declaration
115
+ locations:
116
+ - required: keyword
117
+ - required: name
118
+ - required: end
119
+ - optional: type_params
120
+ - name: RBS::AST::Declarations::Module
121
+ rust_name: ModuleNode
122
+ fields:
123
+ - name: name
124
+ c_type: rbs_type_name
125
+ - name: type_params
126
+ c_type: rbs_node_list
127
+ - name: self_types
128
+ c_type: rbs_node_list
129
+ - name: members
130
+ c_type: rbs_node_list
131
+ - name: annotations
132
+ c_type: rbs_node_list
133
+ - name: comment
134
+ c_type: rbs_ast_comment
135
+ optional: true # NULL when no comment precedes the declaration
136
+ locations:
137
+ - required: keyword
138
+ - required: name
139
+ - required: end
140
+ - optional: type_params
141
+ - optional: colon
142
+ - optional: self_types
143
+ - name: RBS::AST::Declarations::Module::Self
144
+ rust_name: ModuleSelfNode
145
+ fields:
146
+ - name: name
147
+ c_type: rbs_type_name
148
+ - name: args
149
+ c_type: rbs_node_list
150
+ locations:
151
+ - required: name
152
+ - optional: args
153
+ - name: RBS::AST::Declarations::ModuleAlias
154
+ rust_name: ModuleAliasNode
155
+ fields:
156
+ - name: new_name
157
+ c_type: rbs_type_name
158
+ - name: old_name
159
+ c_type: rbs_type_name
160
+ - name: comment
161
+ c_type: rbs_ast_comment
162
+ optional: true # NULL when no comment precedes the declaration
163
+ - name: annotations
164
+ c_type: rbs_node_list
165
+ locations:
166
+ - required: keyword
167
+ - required: new_name
168
+ - required: eq
169
+ - required: old_name
170
+ - name: RBS::AST::Declarations::TypeAlias
171
+ rust_name: TypeAliasNode
172
+ fields:
173
+ - name: name
174
+ c_type: rbs_type_name
175
+ - name: type_params
176
+ c_type: rbs_node_list
177
+ - name: type
178
+ c_type: rbs_node
179
+ - name: annotations
180
+ c_type: rbs_node_list
181
+ - name: comment
182
+ c_type: rbs_ast_comment
183
+ optional: true # NULL when no comment precedes the declaration
184
+ locations:
185
+ - required: keyword
186
+ - required: name
187
+ - required: eq
188
+ - optional: type_params
189
+ - name: RBS::AST::Directives::Use
190
+ rust_name: UseNode
191
+ fields:
192
+ - name: clauses
193
+ c_type: rbs_node_list
194
+ locations:
195
+ - required: keyword
196
+ - name: RBS::AST::Directives::Use::SingleClause
197
+ rust_name: UseSingleClauseNode
198
+ fields:
199
+ - name: type_name
200
+ c_type: rbs_type_name
201
+ - name: new_name
202
+ c_type: rbs_ast_symbol
203
+ optional: true # NULL when no alias (e.g., `use Foo::Bar` vs `use Foo::Bar as Baz`)
204
+ locations:
205
+ - required: type_name
206
+ - optional: keyword
207
+ - optional: new_name
208
+ - name: RBS::AST::Directives::Use::WildcardClause
209
+ rust_name: UseWildcardClauseNode
210
+ fields:
211
+ - name: namespace
212
+ c_type: rbs_namespace
213
+ c_name: rbs_namespace
214
+ locations:
215
+ - required: namespace
216
+ - required: star
217
+ - name: RBS::AST::Members::Alias
218
+ rust_name: AliasNode
219
+ fields:
220
+ - name: new_name
221
+ c_type: rbs_ast_symbol
222
+ - name: old_name
223
+ c_type: rbs_ast_symbol
224
+ - name: kind
225
+ c_type: alias_kind
226
+ - name: annotations
227
+ c_type: rbs_node_list
228
+ - name: comment
229
+ c_type: rbs_ast_comment
230
+ optional: true # NULL when no comment precedes the declaration
231
+ locations:
232
+ - required: keyword
233
+ - required: new_name
234
+ - required: old_name
235
+ - optional: new_kind
236
+ - optional: old_kind
237
+ - name: RBS::AST::Members::AttrAccessor
238
+ rust_name: AttrAccessorNode
239
+ fields:
240
+ - name: name
241
+ c_type: rbs_ast_symbol
242
+ - name: type
243
+ c_type: rbs_node
244
+ - name: ivar_name
245
+ c_type: rbs_attr_ivar_name
246
+ - name: kind
247
+ c_type: attribute_kind
248
+ - name: annotations
249
+ c_type: rbs_node_list
250
+ - name: comment
251
+ c_type: rbs_ast_comment
252
+ optional: true # NULL when no comment precedes the declaration
253
+ - name: visibility
254
+ c_type: attribute_visibility
255
+ locations:
256
+ - required: keyword
257
+ - required: name
258
+ - required: colon
259
+ - optional: kind
260
+ - optional: ivar
261
+ - optional: ivar_name
262
+ - optional: visibility
263
+ - name: RBS::AST::Members::AttrReader
264
+ rust_name: AttrReaderNode
265
+ fields:
266
+ - name: name
267
+ c_type: rbs_ast_symbol
268
+ - name: type
269
+ c_type: rbs_node
270
+ - name: ivar_name
271
+ c_type: rbs_attr_ivar_name
272
+ - name: kind
273
+ c_type: attribute_kind
274
+ - name: annotations
275
+ c_type: rbs_node_list
276
+ - name: comment
277
+ c_type: rbs_ast_comment
278
+ optional: true # NULL when no comment precedes the declaration
279
+ - name: visibility
280
+ c_type: attribute_visibility
281
+ locations:
282
+ - required: keyword
283
+ - required: name
284
+ - required: colon
285
+ - optional: kind
286
+ - optional: ivar
287
+ - optional: ivar_name
288
+ - optional: visibility
289
+ - name: RBS::AST::Members::AttrWriter
290
+ rust_name: AttrWriterNode
291
+ fields:
292
+ - name: name
293
+ c_type: rbs_ast_symbol
294
+ - name: type
295
+ c_type: rbs_node
296
+ - name: ivar_name
297
+ c_type: rbs_attr_ivar_name
298
+ - name: kind
299
+ c_type: attribute_kind
300
+ - name: annotations
301
+ c_type: rbs_node_list
302
+ - name: comment
303
+ c_type: rbs_ast_comment
304
+ optional: true # NULL when no comment precedes the declaration
305
+ - name: visibility
306
+ c_type: attribute_visibility
307
+ locations:
308
+ - required: keyword
309
+ - required: name
310
+ - required: colon
311
+ - optional: kind
312
+ - optional: ivar
313
+ - optional: ivar_name
314
+ - optional: visibility
315
+ - name: RBS::AST::Members::ClassInstanceVariable
316
+ rust_name: ClassInstanceVariableNode
317
+ fields:
318
+ - name: name
319
+ c_type: rbs_ast_symbol
320
+ - name: type
321
+ c_type: rbs_node
322
+ - name: comment
323
+ c_type: rbs_ast_comment
324
+ optional: true # NULL when no comment precedes the declaration
325
+ locations:
326
+ - required: name
327
+ - required: colon
328
+ - optional: kind
329
+ - name: RBS::AST::Members::ClassVariable
330
+ rust_name: ClassVariableNode
331
+ fields:
332
+ - name: name
333
+ c_type: rbs_ast_symbol
334
+ - name: type
335
+ c_type: rbs_node
336
+ - name: comment
337
+ c_type: rbs_ast_comment
338
+ optional: true # NULL when no comment precedes the declaration
339
+ locations:
340
+ - required: name
341
+ - required: colon
342
+ - optional: kind
343
+ - name: RBS::AST::Members::Extend
344
+ rust_name: ExtendNode
345
+ fields:
346
+ - name: name
347
+ c_type: rbs_type_name
348
+ - name: args
349
+ c_type: rbs_node_list
350
+ - name: annotations
351
+ c_type: rbs_node_list
352
+ - name: comment
353
+ c_type: rbs_ast_comment
354
+ optional: true # NULL when no comment precedes the declaration
355
+ locations:
356
+ - required: name
357
+ - required: keyword
358
+ - optional: args
359
+ - name: RBS::AST::Members::Include
360
+ rust_name: IncludeNode
361
+ fields:
362
+ - name: name
363
+ c_type: rbs_type_name
364
+ - name: args
365
+ c_type: rbs_node_list
366
+ - name: annotations
367
+ c_type: rbs_node_list
368
+ - name: comment
369
+ c_type: rbs_ast_comment
370
+ optional: true # NULL when no comment precedes the declaration
371
+ locations:
372
+ - required: name
373
+ - required: keyword
374
+ - optional: args
375
+ - name: RBS::AST::Members::InstanceVariable
376
+ rust_name: InstanceVariableNode
377
+ fields:
378
+ - name: name
379
+ c_type: rbs_ast_symbol
380
+ - name: type
381
+ c_type: rbs_node
382
+ - name: comment
383
+ c_type: rbs_ast_comment
384
+ optional: true # NULL when no comment precedes the declaration
385
+ locations:
386
+ - required: name
387
+ - required: colon
388
+ - optional: kind
389
+ - name: RBS::AST::Members::MethodDefinition
390
+ rust_name: MethodDefinitionNode
391
+ fields:
392
+ - name: name
393
+ c_type: rbs_ast_symbol
394
+ - name: kind
395
+ c_type: method_definition_kind
396
+ - name: overloads
397
+ c_type: rbs_node_list
398
+ - name: annotations
399
+ c_type: rbs_node_list
400
+ - name: comment
401
+ c_type: rbs_ast_comment
402
+ optional: true # NULL when no comment precedes the declaration
403
+ - name: overloading
404
+ c_type: bool
405
+ - name: visibility
406
+ c_type: method_definition_visibility
407
+ locations:
408
+ - required: keyword
409
+ - required: name
410
+ - optional: kind
411
+ - optional: overloading
412
+ - optional: visibility
413
+ - name: RBS::AST::Members::MethodDefinition::Overload
414
+ rust_name: MethodDefinitionOverloadNode
415
+ expose_location: false
416
+ fields:
417
+ - name: annotations
418
+ c_type: rbs_node_list
419
+ - name: method_type
420
+ c_type: rbs_node
421
+ - name: RBS::AST::Members::Prepend
422
+ rust_name: PrependNode
423
+ fields:
424
+ - name: name
425
+ c_type: rbs_type_name
426
+ - name: args
427
+ c_type: rbs_node_list
428
+ - name: annotations
429
+ c_type: rbs_node_list
430
+ - name: comment
431
+ c_type: rbs_ast_comment
432
+ optional: true # NULL when no comment precedes the declaration
433
+ locations:
434
+ - required: name
435
+ - required: keyword
436
+ - optional: args
437
+ - name: RBS::AST::Members::Private
438
+ rust_name: PrivateNode
439
+ - name: RBS::AST::Members::Public
440
+ rust_name: PublicNode
441
+ - name: RBS::AST::TypeParam
442
+ rust_name: TypeParamNode
443
+ fields:
444
+ - name: name
445
+ c_type: rbs_ast_symbol
446
+ - name: variance
447
+ c_type: type_param_variance
448
+ - name: upper_bound
449
+ c_type: rbs_node
450
+ optional: true # NULL when no upper bound (e.g., `[T]` vs `[T < Bound]`)
451
+ - name: lower_bound
452
+ c_type: rbs_node
453
+ optional: true # NULL when no lower bound (e.g., `[T]` vs `[T > Bound]`)
454
+ - name: default_type
455
+ c_type: rbs_node
456
+ optional: true # NULL when no default (e.g., `[T]` vs `[T = Default]`)
457
+ - name: unchecked
458
+ c_type: bool
459
+ locations:
460
+ - required: name
461
+ - optional: variance
462
+ - optional: unchecked
463
+ - optional: upper_bound
464
+ - optional: lower_bound
465
+ - optional: default
466
+ - name: RBS::AST::Integer
467
+ rust_name: IntegerNode
468
+ expose_to_ruby: false
469
+ expose_location: false
470
+ fields:
471
+ - name: string_representation
472
+ c_type: rbs_string
473
+ - name: RBS::AST::String
474
+ rust_name: StringNode
475
+ expose_to_ruby: false
476
+ expose_location: false
477
+ fields:
478
+ - name: string
479
+ c_type: rbs_string
480
+ - name: RBS::MethodType
481
+ rust_name: MethodTypeNode
482
+ fields:
483
+ - name: type_params
484
+ c_type: rbs_node_list
485
+ - name: type
486
+ c_type: rbs_node
487
+ - name: block
488
+ c_type: rbs_types_block
489
+ optional: true # NULL when no block (e.g., `() -> void` vs `() { () -> void } -> void`)
490
+ locations:
491
+ - required: type
492
+ - optional: type_params
493
+ - name: RBS::Namespace
494
+ rust_name: NamespaceNode
495
+ expose_location: false
496
+ fields:
497
+ - name: path
498
+ c_type: rbs_node_list
499
+ - name: absolute
500
+ c_type: bool
501
+ - name: RBS::Signature
502
+ rust_name: SignatureNode
503
+ expose_to_ruby: false
504
+ expose_location: false
505
+ fields:
506
+ - name: directives
507
+ c_type: rbs_node_list
508
+ - name: declarations
509
+ c_type: rbs_node_list
510
+ - name: RBS::TypeName
511
+ rust_name: TypeNameNode
512
+ expose_location: false
513
+ fields:
514
+ - name: namespace
515
+ c_type: rbs_namespace
516
+ c_name: rbs_namespace
517
+ - name: name
518
+ c_type: rbs_ast_symbol
519
+ - name: RBS::Types::Alias
520
+ rust_name: AliasTypeNode
521
+ fields:
522
+ - name: name
523
+ c_type: rbs_type_name
524
+ - name: args
525
+ c_type: rbs_node_list
526
+ locations:
527
+ - required: name
528
+ - optional: args
529
+ - name: RBS::Types::Bases::Any
530
+ rust_name: AnyTypeNode
531
+ fields:
532
+ - name: todo
533
+ c_type: bool
534
+ - name: RBS::Types::Bases::Bool
535
+ rust_name: BoolTypeNode
536
+ - name: RBS::Types::Bases::Bottom
537
+ rust_name: BottomTypeNode
538
+ - name: RBS::Types::Bases::Class
539
+ rust_name: ClassTypeNode
540
+ - name: RBS::Types::Bases::Instance
541
+ rust_name: InstanceTypeNode
542
+ - name: RBS::Types::Bases::Nil
543
+ rust_name: NilTypeNode
544
+ - name: RBS::Types::Bases::Self
545
+ rust_name: SelfTypeNode
546
+ - name: RBS::Types::Bases::Top
547
+ rust_name: TopTypeNode
548
+ - name: RBS::Types::Bases::Void
549
+ rust_name: VoidTypeNode
550
+ - name: RBS::Types::Block
551
+ rust_name: BlockTypeNode
552
+ expose_location: true
553
+ fields:
554
+ - name: type
555
+ c_type: rbs_node
556
+ - name: required
557
+ c_type: bool
558
+ - name: self_type
559
+ c_type: rbs_node
560
+ optional: true # NULL when no self binding (e.g., `{ () -> void }` vs `{ () [self: T] -> void }`)
561
+ - name: RBS::Types::ClassInstance
562
+ rust_name: ClassInstanceTypeNode
563
+ fields:
564
+ - name: name
565
+ c_type: rbs_type_name
566
+ - name: args
567
+ c_type: rbs_node_list
568
+ locations:
569
+ - required: name
570
+ - optional: args
571
+ - name: RBS::Types::ClassSingleton
572
+ rust_name: ClassSingletonTypeNode
573
+ fields:
574
+ - name: name
575
+ c_type: rbs_type_name
576
+ - name: args
577
+ c_type: rbs_node_list
578
+ locations:
579
+ - required: name
580
+ - optional: args
581
+ - name: RBS::Types::Function
582
+ rust_name: FunctionTypeNode
583
+ expose_location: false
584
+ fields:
585
+ - name: required_positionals
586
+ c_type: rbs_node_list
587
+ - name: optional_positionals
588
+ c_type: rbs_node_list
589
+ - name: rest_positionals
590
+ c_type: rbs_node
591
+ optional: true # NULL when no splat (e.g., `(String) -> void` vs `(*String) -> void`)
592
+ - name: trailing_positionals
593
+ c_type: rbs_node_list
594
+ - name: required_keywords
595
+ c_type: rbs_hash
596
+ - name: optional_keywords
597
+ c_type: rbs_hash
598
+ - name: rest_keywords
599
+ c_type: rbs_node
600
+ optional: true # NULL when no double-splat (e.g., `() -> void` vs `(**String) -> void`)
601
+ - name: return_type
602
+ c_type: rbs_node
603
+ - name: RBS::Types::Function::Param
604
+ rust_name: FunctionParamNode
605
+ fields:
606
+ - name: type
607
+ c_type: rbs_node
608
+ - name: name
609
+ c_type: rbs_ast_symbol
610
+ optional: true # NULL when param is unnamed (e.g., `(String) -> void` vs `(String name) -> void`)
611
+ locations:
612
+ - optional: name
613
+ - name: RBS::Types::Interface
614
+ rust_name: InterfaceTypeNode
615
+ fields:
616
+ - name: name
617
+ c_type: rbs_type_name
618
+ - name: args
619
+ c_type: rbs_node_list
620
+ locations:
621
+ - required: name
622
+ - optional: args
623
+ - name: RBS::Types::Intersection
624
+ rust_name: IntersectionTypeNode
625
+ fields:
626
+ - name: types
627
+ c_type: rbs_node_list
628
+ - name: RBS::Types::Literal
629
+ rust_name: LiteralTypeNode
630
+ fields:
631
+ - name: literal
632
+ c_type: rbs_node
633
+ - name: RBS::Types::Optional
634
+ rust_name: OptionalTypeNode
635
+ fields:
636
+ - name: type
637
+ c_type: rbs_node
638
+ - name: RBS::Types::Proc
639
+ rust_name: ProcTypeNode
640
+ fields:
641
+ - name: type
642
+ c_type: rbs_node
643
+ - name: block
644
+ c_type: rbs_types_block
645
+ optional: true # NULL when proc has no block (e.g., `^() -> void` vs `^() { () -> void } -> void`)
646
+ - name: self_type
647
+ c_type: rbs_node
648
+ optional: true # NULL when no self binding (e.g., `^() -> void` vs `^() [self: T] -> void`)
649
+ - name: RBS::Types::Record
650
+ rust_name: RecordTypeNode
651
+ fields:
652
+ - name: all_fields
653
+ c_type: rbs_hash
654
+ - name: RBS::Types::Record::FieldType
655
+ rust_name: RecordFieldTypeNode
656
+ expose_to_ruby: false
657
+ expose_location: false
658
+ fields:
659
+ - name: type
660
+ c_type: rbs_node
661
+ - name: required
662
+ c_type: bool
663
+ - name: RBS::Types::Tuple
664
+ rust_name: TupleTypeNode
665
+ fields:
666
+ - name: types
667
+ c_type: rbs_node_list
668
+ - name: RBS::Types::Union
669
+ rust_name: UnionTypeNode
670
+ fields:
671
+ - name: types
672
+ c_type: rbs_node_list
673
+ - name: RBS::Types::UntypedFunction
674
+ rust_name: UntypedFunctionTypeNode
675
+ expose_location: false
676
+ fields:
677
+ - name: return_type
678
+ c_type: rbs_node
679
+ - name: RBS::Types::Variable
680
+ rust_name: VariableTypeNode
681
+ fields:
682
+ - name: name
683
+ c_type: rbs_ast_symbol
684
+ - name: RBS::AST::Ruby::Annotations::NodeTypeAssertion
685
+ rust_name: NodeTypeAssertionNode
686
+ fields:
687
+ - name: prefix_location
688
+ c_type: rbs_location_range
689
+ - name: type
690
+ c_type: rbs_node
691
+ - name: RBS::AST::Ruby::Annotations::ColonMethodTypeAnnotation
692
+ rust_name: ColonMethodTypeAnnotationNode
693
+ fields:
694
+ - name: prefix_location
695
+ c_type: rbs_location_range
696
+ - name: annotations
697
+ c_type: rbs_node_list
698
+ - name: method_type
699
+ c_type: rbs_node
700
+ - name: RBS::AST::Ruby::Annotations::MethodTypesAnnotation
701
+ rust_name: MethodTypesAnnotationNode
702
+ fields:
703
+ - name: prefix_location
704
+ c_type: rbs_location_range
705
+ - name: overloads
706
+ c_type: rbs_node_list
707
+ - name: vertical_bar_locations
708
+ c_type: rbs_location_range_list
709
+ - name: dot3_location
710
+ c_type: rbs_location_range
711
+ optional: true
712
+ - name: RBS::AST::Ruby::Annotations::SkipAnnotation
713
+ rust_name: SkipAnnotationNode
714
+ fields:
715
+ - name: prefix_location
716
+ c_type: rbs_location_range
717
+ - name: skip_location
718
+ c_type: rbs_location_range
719
+ - name: comment_location
720
+ c_type: rbs_location_range
721
+ optional: true
722
+ - name: RBS::AST::Ruby::Annotations::ReturnTypeAnnotation
723
+ rust_name: ReturnTypeAnnotationNode
724
+ fields:
725
+ - name: prefix_location
726
+ c_type: rbs_location_range
727
+ - name: return_location
728
+ c_type: rbs_location_range
729
+ - name: colon_location
730
+ c_type: rbs_location_range
731
+ - name: return_type
732
+ c_type: rbs_node
733
+ - name: comment_location
734
+ c_type: rbs_location_range
735
+ optional: true
736
+ - name: RBS::AST::Ruby::Annotations::TypeApplicationAnnotation
737
+ rust_name: TypeApplicationAnnotationNode
738
+ fields:
739
+ - name: prefix_location
740
+ c_type: rbs_location_range
741
+ - name: type_args
742
+ c_type: rbs_node_list
743
+ - name: close_bracket_location
744
+ c_type: rbs_location_range
745
+ - name: comma_locations
746
+ c_type: rbs_location_range_list
747
+ - name: RBS::AST::Ruby::Annotations::InstanceVariableAnnotation
748
+ rust_name: InstanceVariableAnnotationNode
749
+ fields:
750
+ - name: prefix_location
751
+ c_type: rbs_location_range
752
+ - name: ivar_name
753
+ c_type: rbs_ast_symbol
754
+ - name: ivar_name_location
755
+ c_type: rbs_location_range
756
+ - name: colon_location
757
+ c_type: rbs_location_range
758
+ - name: type
759
+ c_type: rbs_node
760
+ - name: comment_location
761
+ c_type: rbs_location_range
762
+ optional: true
763
+ - name: RBS::AST::Ruby::Annotations::ClassAliasAnnotation
764
+ rust_name: ClassAliasAnnotationNode
765
+ fields:
766
+ - name: prefix_location
767
+ c_type: rbs_location_range
768
+ - name: keyword_location
769
+ c_type: rbs_location_range
770
+ - name: type_name
771
+ c_type: rbs_type_name
772
+ - name: type_name_location
773
+ c_type: rbs_location_range
774
+ optional: true
775
+ - name: RBS::AST::Ruby::Annotations::ModuleAliasAnnotation
776
+ rust_name: ModuleAliasAnnotationNode
777
+ fields:
778
+ - name: prefix_location
779
+ c_type: rbs_location_range
780
+ - name: keyword_location
781
+ c_type: rbs_location_range
782
+ - name: type_name
783
+ c_type: rbs_type_name
784
+ - name: type_name_location
785
+ c_type: rbs_location_range
786
+ optional: true
787
+ - name: RBS::AST::Ruby::Annotations::ModuleSelfAnnotation
788
+ rust_name: ModuleSelfAnnotationNode
789
+ fields:
790
+ - name: prefix_location
791
+ c_type: rbs_location_range
792
+ - name: keyword_location
793
+ c_type: rbs_location_range
794
+ - name: colon_location
795
+ c_type: rbs_location_range
796
+ - name: name
797
+ c_type: rbs_type_name
798
+ - name: args
799
+ c_type: rbs_node_list
800
+ - name: open_bracket_location
801
+ c_type: rbs_location_range
802
+ optional: true
803
+ - name: close_bracket_location
804
+ c_type: rbs_location_range
805
+ optional: true
806
+ - name: args_comma_locations
807
+ c_type: rbs_location_range_list
808
+ - name: comment_location
809
+ c_type: rbs_location_range
810
+ optional: true
811
+ - name: RBS::AST::Ruby::Annotations::ParamTypeAnnotation
812
+ rust_name: ParamTypeAnnotationNode
813
+ fields:
814
+ - name: prefix_location
815
+ c_type: rbs_location_range
816
+ - name: name_location
817
+ c_type: rbs_location_range
818
+ - name: colon_location
819
+ c_type: rbs_location_range
820
+ - name: param_type
821
+ c_type: rbs_node
822
+ - name: comment_location
823
+ c_type: rbs_location_range
824
+ optional: true
825
+ - name: RBS::AST::Ruby::Annotations::SplatParamTypeAnnotation
826
+ rust_name: SplatParamTypeAnnotationNode
827
+ fields:
828
+ - name: prefix_location
829
+ c_type: rbs_location_range
830
+ - name: star_location
831
+ c_type: rbs_location_range
832
+ - name: name_location
833
+ c_type: rbs_location_range
834
+ optional: true
835
+ - name: colon_location
836
+ c_type: rbs_location_range
837
+ - name: param_type
838
+ c_type: rbs_node
839
+ - name: comment_location
840
+ c_type: rbs_location_range
841
+ optional: true
842
+ - name: RBS::AST::Ruby::Annotations::DoubleSplatParamTypeAnnotation
843
+ rust_name: DoubleSplatParamTypeAnnotationNode
844
+ fields:
845
+ - name: prefix_location
846
+ c_type: rbs_location_range
847
+ - name: star2_location
848
+ c_type: rbs_location_range
849
+ - name: name_location
850
+ c_type: rbs_location_range
851
+ optional: true
852
+ - name: colon_location
853
+ c_type: rbs_location_range
854
+ - name: param_type
855
+ c_type: rbs_node
856
+ - name: comment_location
857
+ c_type: rbs_location_range
858
+ optional: true
859
+ - name: RBS::AST::Ruby::Annotations::BlockParamTypeAnnotation
860
+ rust_name: BlockParamTypeAnnotationNode
861
+ fields:
862
+ - name: prefix_location
863
+ c_type: rbs_location_range
864
+ - name: ampersand_location
865
+ c_type: rbs_location_range
866
+ - name: name_location
867
+ c_type: rbs_location_range
868
+ optional: true
869
+ - name: colon_location
870
+ c_type: rbs_location_range
871
+ - name: question_location
872
+ c_type: rbs_location_range
873
+ optional: true
874
+ - name: type_location
875
+ c_type: rbs_location_range
876
+ - name: type
877
+ c_name: type_
878
+ c_type: rbs_node
879
+ - name: comment_location
880
+ c_type: rbs_location_range
881
+ optional: true
882
+
883
+ enums:
884
+ attribute_visibility:
885
+ optional: true
886
+ symbols:
887
+ - unspecified
888
+ - public
889
+ - private
890
+ attribute_kind:
891
+ symbols:
892
+ - instance
893
+ - singleton
894
+ alias_kind:
895
+ symbols:
896
+ - instance
897
+ - singleton
898
+ method_definition_kind:
899
+ symbols:
900
+ - instance
901
+ - singleton
902
+ - singleton_instance
903
+ method_definition_visibility:
904
+ optional: true
905
+ symbols:
906
+ - unspecified
907
+ - public
908
+ - private
909
+ type_param_variance:
910
+ symbols:
911
+ - invariant
912
+ - covariant
913
+ - contravariant