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/errors.rbs ADDED
@@ -0,0 +1,408 @@
1
+ module RBS
2
+ interface _MethodName
3
+ def kind: () -> (:instance | :singleton)
4
+
5
+ def type_name: () -> TypeName
6
+
7
+ def method_name: () -> Symbol
8
+ end
9
+
10
+ module MethodNameHelper : _MethodName
11
+ def method_name_string: () -> String
12
+ end
13
+
14
+ # Error class for errors defined in RBS.
15
+ #
16
+ class BaseError < StandardError
17
+ end
18
+
19
+ interface _Location
20
+ %a{pure} def location: () -> Location[untyped, untyped]?
21
+ end
22
+
23
+ module DetailedMessageable : _Location, Exception
24
+ def detailed_message: (?highlight: boolish, **untyped) -> String
25
+ end
26
+
27
+ # Error class for errors raised during parsing.
28
+ #
29
+ class ParsingError < BaseError
30
+ include DetailedMessageable
31
+
32
+ attr_reader location: Location[untyped, untyped]
33
+ attr_reader error_message: String
34
+ attr_reader token_type: String
35
+
36
+ def initialize: (Location[untyped, untyped], String error_message, String token_type) -> void
37
+
38
+ def error_value: () -> String
39
+
40
+ def token_str: () -> String
41
+ end
42
+
43
+ class Parser
44
+ SemanticsError: singleton(ParsingError)
45
+ SyntaxError: singleton(ParsingError)
46
+ LexerError: singleton(ParsingError)
47
+ end
48
+
49
+ # Error class for errors raised during loading environments.
50
+ #
51
+ class LoadingError < BaseError
52
+ end
53
+
54
+ # Error class for errors raised during building definitions.
55
+ #
56
+ class DefinitionError < BaseError
57
+ end
58
+
59
+ class InvalidTypeApplicationError < DefinitionError
60
+ attr_reader type_name: TypeName
61
+ attr_reader args: Array[Types::t]
62
+ attr_reader params: Array[Symbol]
63
+ attr_reader type_params: Array[AST::TypeParam]
64
+ attr_reader location: Location[untyped, untyped]?
65
+
66
+ def initialize: (type_name: TypeName, args: Array[Types::t], params: Array[AST::TypeParam], location: Location[untyped, untyped]?) -> void
67
+
68
+ def self.check!: (type_name: TypeName, args: Array[Types::t], params: Array[AST::TypeParam], location: Location[untyped, untyped]?) -> void
69
+
70
+ def self.check2!: (env: Environment, type_name: TypeName, args: Array[Types::t], location: Location[untyped, untyped]?) -> void
71
+ end
72
+
73
+ class RecursiveAncestorError < DefinitionError
74
+ attr_reader ancestors: Array[Definition::Ancestor::t]
75
+ attr_reader location: Location[untyped, untyped]?
76
+
77
+ def initialize: (ancestors: Array[Definition::Ancestor::t], location: Location[untyped, untyped]?) -> void
78
+
79
+ def self.check!: (Definition::Ancestor::t, ancestors: Array[Definition::Ancestor::t], location: Location[untyped, untyped]?) -> void
80
+ end
81
+
82
+ class NoTypeFoundError < DefinitionError
83
+ include DetailedMessageable
84
+
85
+ attr_reader type_name: TypeName
86
+ attr_reader location: Location[untyped, untyped]?
87
+
88
+ def initialize: (type_name: TypeName, location: Location[untyped, untyped]?) -> void
89
+
90
+ def self.check!: (TypeName, env: Environment, location: Location[untyped, untyped]?) -> TypeName
91
+ end
92
+
93
+ class NoSuperclassFoundError < DefinitionError
94
+ attr_reader type_name: TypeName
95
+ attr_reader location: Location[untyped, untyped]?
96
+
97
+ def initialize: (type_name: TypeName, location: Location[untyped, untyped]?) -> void
98
+
99
+ def self.check!: (TypeName, env: Environment, location: Location[untyped, untyped]?) -> void
100
+ end
101
+
102
+ class NoSelfTypeFoundError < DefinitionError
103
+ include DetailedMessageable
104
+
105
+ attr_reader type_name: TypeName
106
+ attr_reader location: Location[untyped, untyped]?
107
+
108
+ def initialize: (type_name: TypeName, location: Location[untyped, untyped]?) -> void
109
+
110
+ # The type name in `self` is automatically normalized
111
+ #
112
+ def self.check!: (AST::Declarations::Module::Self, env: Environment) -> void
113
+ end
114
+
115
+ class NoMixinFoundError < DefinitionError
116
+ include DetailedMessageable
117
+
118
+ type member = AST::Members::t | AST::Ruby::Members::IncludeMember | AST::Ruby::Members::ExtendMember | AST::Ruby::Members::PrependMember
119
+
120
+ attr_reader type_name: TypeName
121
+ attr_reader member: member
122
+
123
+ def initialize: (type_name: TypeName, member: member) -> void
124
+
125
+ def location: () -> Location[untyped, untyped]?
126
+
127
+ def self.check!: (TypeName, env: Environment, member: member) -> void
128
+ end
129
+
130
+ class DuplicatedMethodDefinitionError < DefinitionError
131
+ include DetailedMessageable
132
+
133
+ type ty = Types::ClassSingleton | Types::ClassInstance | Types::Interface
134
+ type original = DefinitionBuilder::MethodBuilder::Methods::Definition::original
135
+
136
+ attr_reader type: ty
137
+ attr_reader method_name: Symbol
138
+ attr_reader members: Array[original]
139
+
140
+ def initialize: (type: ty, method_name: Symbol, members: Array[original]) -> void
141
+
142
+ def type_name: () -> TypeName
143
+
144
+ def qualified_method_name: () -> String
145
+
146
+ def location: () -> Location[untyped, untyped]?
147
+
148
+ def other_locations: () -> Array[Location[untyped, untyped]?]
149
+ end
150
+
151
+ # An interface mixin causes a duplication of a method definition
152
+ #
153
+ # ```rbs
154
+ # interface _Foo1
155
+ # def foo: () -> void
156
+ # end
157
+ #
158
+ # interface _Foo2
159
+ # def foo: () -> void
160
+ # end
161
+ #
162
+ # class Foo
163
+ # include _Foo1
164
+ # include _Foo2 # <= The error will be reported here (or the line of _Foo1)
165
+ # end
166
+ # ```
167
+ #
168
+ class DuplicatedInterfaceMethodDefinitionError < DefinitionError
169
+ include DetailedMessageable
170
+
171
+ type ty = Types::ClassSingleton | Types::ClassInstance | Types::Interface
172
+ type mixin_member = AST::Members::Include | AST::Members::Extend
173
+
174
+ attr_reader type: ty
175
+ attr_reader method_name: Symbol
176
+ attr_reader member: mixin_member
177
+
178
+ def initialize: (type: ty, method_name: Symbol, member: mixin_member) -> void
179
+
180
+ def type_name: () -> TypeName
181
+
182
+ def qualified_method_name: () -> String
183
+
184
+ def location: () -> AST::Members::Mixin::loc?
185
+ end
186
+
187
+ class VariableDuplicationError < DefinitionError
188
+ include DetailedMessageable
189
+
190
+ attr_reader type_name: TypeName
191
+ attr_reader variable_name: Symbol
192
+ attr_reader location: Location[untyped, untyped]?
193
+
194
+ def initialize: (type_name: TypeName, variable_name: Symbol, location: Location[untyped, untyped]?) -> void
195
+ def kind: () -> String
196
+ end
197
+
198
+ class InstanceVariableDuplicationError < VariableDuplicationError
199
+ def kind: () -> String
200
+ end
201
+
202
+ class ClassInstanceVariableDuplicationError < VariableDuplicationError
203
+ def kind: () -> String
204
+ end
205
+
206
+ # The `alias` member declares an alias from unknown method
207
+ #
208
+ class UnknownMethodAliasError < DefinitionError
209
+ include DetailedMessageable
210
+
211
+ attr_reader type_name: TypeName
212
+ attr_reader original_name: Symbol
213
+ attr_reader aliased_name: Symbol
214
+ attr_reader location: Location[untyped, untyped]?
215
+
216
+ def initialize: (type_name: TypeName, original_name: Symbol, aliased_name: Symbol, location: Location[untyped, untyped]?) -> void
217
+ end
218
+
219
+ class SuperclassMismatchError < DefinitionError
220
+ attr_reader name: TypeName
221
+ attr_reader entry: Environment::ClassEntry
222
+
223
+ def initialize: (name: TypeName, entry: Environment::ClassEntry) -> void
224
+ end
225
+
226
+ # The *overloading* method definition cannot find *non-overloading* method definition
227
+ #
228
+ class InvalidOverloadMethodError < DefinitionError
229
+ include DetailedMessageable
230
+
231
+ type member = AST::Members::MethodDefinition | AST::Ruby::Members::DefMember
232
+
233
+ attr_reader type_name: TypeName
234
+ attr_reader method_name: Symbol
235
+ attr_reader kind: :instance | :singleton
236
+ attr_reader members: Array[member]
237
+
238
+ def initialize: (type_name: TypeName, method_name: Symbol, kind: :instance | :singleton, members: Array[member]) -> void
239
+
240
+ def location: () -> AST::Members::MethodDefinition::loc?
241
+ end
242
+
243
+ class GenericParameterMismatchError < LoadingError
244
+ type decl = AST::Declarations::Class | AST::Declarations::Module
245
+ | AST::Ruby::Declarations::ClassDecl | AST::Ruby::Declarations::ModuleDecl
246
+
247
+ attr_reader name: TypeName
248
+ attr_reader decl: decl
249
+
250
+ def initialize: (name: TypeName, decl: decl, ?location: Location) -> void
251
+ end
252
+
253
+ class DuplicatedDeclarationError < LoadingError
254
+ type declaration = AST::Declarations::t | AST::Ruby::Declarations::t
255
+
256
+ attr_reader name: TypeName | Symbol
257
+ attr_reader decls: Array[declaration]
258
+
259
+ def initialize: (TypeName | Symbol, *declaration) -> void
260
+ end
261
+
262
+ class InvalidVarianceAnnotationError < DefinitionError
263
+ include DetailedMessageable
264
+
265
+ attr_reader type_name: TypeName
266
+ attr_reader param: AST::TypeParam
267
+ attr_reader location: Location[untyped, untyped]?
268
+
269
+ def initialize: (type_name: TypeName, param: AST::TypeParam, location: Location[untyped, untyped]?) -> void
270
+ end
271
+
272
+ class RecursiveAliasDefinitionError < DefinitionError
273
+ include DetailedMessageable
274
+
275
+ type ty = Types::ClassInstance | Types::ClassSingleton | Types::Interface
276
+ type defn = DefinitionBuilder::MethodBuilder::Methods::Definition
277
+
278
+ attr_reader type: ty
279
+ attr_reader defs: Array[defn]
280
+
281
+ def initialize: (type: ty, defs: Array[defn]) -> void
282
+
283
+ def location: () -> Location[untyped, untyped]?
284
+ end
285
+
286
+ # MixinClassError is raised if a include/prepend/extend has a class (not a module) to mix-in
287
+ #
288
+ class MixinClassError < DefinitionError
289
+ include DetailedMessageable
290
+
291
+ type member = AST::Members::Include | AST::Members::Prepend | AST::Members::Extend
292
+ | AST::Ruby::Members::IncludeMember | AST::Ruby::Members::PrependMember | AST::Ruby::Members::ExtendMember
293
+
294
+ attr_reader type_name: TypeName
295
+ attr_reader member: member
296
+
297
+ def initialize: (type_name: TypeName, member: member) -> void
298
+
299
+ def location: () -> Location[untyped, untyped]?
300
+
301
+ def self.check!: (type_name: TypeName, env: Environment, member: member) -> void
302
+
303
+ def member_name: (member) -> TypeName
304
+
305
+ def mixin_name: () -> String
306
+ end
307
+
308
+ # InheritModuleError is raised if a class definition inherits a module (not a class)
309
+ #
310
+ class InheritModuleError < DefinitionError
311
+ type super_class = AST::Declarations::Class::Super | AST::Ruby::Declarations::ClassDecl::SuperClass
312
+
313
+ include DetailedMessageable
314
+
315
+ attr_reader super_decl: super_class
316
+
317
+ def initialize: (super_class) -> void
318
+
319
+ def location: () -> Location[untyped, untyped]?
320
+
321
+ # Confirms if `super` inherits specifies a class
322
+ #
323
+ # Automatically normalize the name of super.
324
+ #
325
+ def self.check!: (super_class, env: Environment) -> void
326
+ end
327
+
328
+ class RecursiveTypeAliasError < BaseError
329
+ include DetailedMessageable
330
+
331
+ attr_reader alias_names: Array[TypeName]
332
+ attr_reader location: Location[untyped, untyped]?
333
+
334
+ def initialize: (alias_names: Array[TypeName], location: Location[untyped, untyped]?) -> void
335
+
336
+ def name: () -> String
337
+ end
338
+
339
+ class NonregularTypeAliasError < BaseError
340
+ include DetailedMessageable
341
+
342
+ # Diagnostic reported from `TypeAliasRegularity`.
343
+ attr_reader diagnostic: TypeAliasRegularity::Diagnostic
344
+
345
+ # Location of the definition.
346
+ attr_reader location: Location[untyped, untyped]?
347
+
348
+ def initialize: (diagnostic: TypeAliasRegularity::Diagnostic, location: Location[untyped, untyped]?) -> void
349
+ end
350
+
351
+ class CyclicTypeParameterBound < BaseError
352
+ include DetailedMessageable
353
+
354
+ attr_reader location: Location[untyped, untyped]?
355
+
356
+ # Array of parameters which contains cyclic dependencies.
357
+ attr_reader params: Array[AST::TypeParam]
358
+
359
+ # Type name
360
+ attr_reader type_name: TypeName
361
+
362
+ # Method name
363
+ attr_reader method_name: Symbol?
364
+
365
+ def initialize: (type_name: TypeName, method_name: Symbol?, params: Array[AST::TypeParam], location: Location[untyped, untyped]?) -> void
366
+ end
367
+
368
+ # A module/class alias declaration has inconsistent right-hand-side
369
+ #
370
+ # ```rbs
371
+ # module Foo = Object # Error
372
+ # class Bar = Kernel # Error
373
+ # ```
374
+ #
375
+ class InconsistentClassModuleAliasError < BaseError
376
+ include DetailedMessageable
377
+
378
+ attr_reader alias_entry: Environment::ModuleAliasEntry | Environment::ClassAliasEntry
379
+
380
+ def initialize: (Environment::ModuleAliasEntry | Environment::ClassAliasEntry) -> void
381
+
382
+ def location: () -> AST::Declarations::AliasDecl::loc?
383
+ end
384
+
385
+ # A module/class alias declaration is cyclic
386
+ #
387
+ class CyclicClassAliasDefinitionError < BaseError
388
+ include DetailedMessageable
389
+
390
+ attr_reader alias_entry: Environment::ModuleAliasEntry | Environment::ClassAliasEntry
391
+
392
+ def initialize: (Environment::ModuleAliasEntry | Environment::ClassAliasEntry) -> void
393
+
394
+ def location: () -> AST::Declarations::AliasDecl::loc?
395
+ end
396
+
397
+ class TypeParamDefaultReferenceError < BaseError
398
+ include DetailedMessageable
399
+
400
+ attr_reader type_param: AST::TypeParam
401
+
402
+ def initialize: (AST::TypeParam, location: Location[untyped, untyped]?) -> void
403
+
404
+ attr_reader location: Location[untyped, untyped]?
405
+
406
+ def self.check!: (Array[AST::TypeParam]) -> void
407
+ end
408
+ end
data/sig/factory.rbs ADDED
@@ -0,0 +1,5 @@
1
+ module RBS
2
+ class Factory
3
+ def type_name: (String) -> TypeName
4
+ end
5
+ end
@@ -0,0 +1,28 @@
1
+ module RBS
2
+ module FileFinder
3
+ # Enumerate RBS files under path
4
+ #
5
+ # When `path` is a file, it yields the path.
6
+ #
7
+ # ```rb
8
+ # FileFinder.each_file(Pathname("foo.rbs")) {} # => yields `foo.rbs`
9
+ # ```
10
+ #
11
+ # When `path` is a directory, it yields all `.rbs` files under the directory, recursively.
12
+ #
13
+ # * Skips files under directory starting with `_`, if `skip_hidden` is `true`
14
+ # * Yields files under directory starting with `_` even if `skip_hidden` is true, when the `_` directory is given explicitly, and `immediate:` is `true`
15
+ #
16
+ # ```rb
17
+ # FileFinder.each_file(Pathname("sig"), skip_hidden: false) {} # => yields all `.rbs` files under `sig`
18
+ # FileFinder.each_file(Pathname("sig"), skip_hidden: true) {} # => yields all `.rbs` files under `sig`, skips `_` directories
19
+ #
20
+ # FileFinder.each_file(Pathname("_hidden"), skip_hidden: true) {} # => yields all `.rbs` files under `_hidden`, skips other `_` directories
21
+ # ```
22
+ #
23
+ # `immediate` keyword is unused and left for API compatibility.
24
+ #
25
+ def self?.each_file: (Pathname path, ?immediate: top, skip_hidden: boolish) { (Pathname) -> void } -> void
26
+ | (Pathname path, ?immediate: top, skip_hidden: boolish) -> Enumerator[Pathname, void]
27
+ end
28
+ end
@@ -0,0 +1,71 @@
1
+ use RBS::AST::Ruby::CommentBlock
2
+
3
+ module RBS
4
+ class InlineParser
5
+ # CommentAssociation manages the association between `Prism::Node` and `CommentBlock`
6
+ #
7
+ class CommentAssociation
8
+ attr_reader blocks: Array[CommentBlock]
9
+
10
+ attr_reader start_line_map: Hash[Integer, CommentBlock]
11
+
12
+ attr_reader end_line_map: Hash[Integer, CommentBlock]
13
+
14
+ # CommentBlocks that are already associated to a node, which cannot be associated to another node again
15
+ #
16
+ attr_reader associated_blocks: Set[CommentBlock]
17
+
18
+ def self.build: (Buffer, Prism::Result) -> instance
19
+
20
+ def initialize: (Array[CommentBlock]) -> void
21
+
22
+ class Reference
23
+ attr_reader block: CommentBlock
24
+
25
+ @associated_blocks: Set[CommentBlock]
26
+
27
+ def initialize: (CommentBlock, Set[CommentBlock]) -> void
28
+
29
+ def associate!: () -> self
30
+
31
+ def associated?: () -> bool
32
+ end
33
+
34
+ # Returns an unassociated CommentBlock that can be associated to given node
35
+ #
36
+ # Automatically updates association status.
37
+ #
38
+ def leading_block!: (Prism::Node) -> CommentBlock?
39
+
40
+ # Returns a Reference that is associated to given node
41
+ #
42
+ # Updates association explicitly through the reference.
43
+ #
44
+ def leading_block: (Prism::Node) -> Reference?
45
+
46
+ # Returns a CommentBlock that is associated to given node, or by its location
47
+ #
48
+ # Update association status.
49
+ #
50
+ def trailing_block!: (Prism::Node | Prism::Location) -> CommentBlock?
51
+
52
+ # Returns a Reference that is associated to given node, or by its location
53
+ #
54
+ # Updates association explicitly through the reference.
55
+ #
56
+ def trailing_block: (Prism::Node | Prism::Location) -> Reference?
57
+
58
+ # Yields leading CommentBlocks that is enclosed in the given node
59
+ #
60
+ # Note that `enclosed_blocks` works only after all of the *leading* blocks inside the node is associated.
61
+ #
62
+ # Update association status.
63
+ #
64
+ def each_enclosed_block: (Prism::Node) { (CommentBlock) -> void } -> void
65
+ | (Prism::Node) -> Enumerator[CommentBlock]
66
+
67
+ def each_unassociated_block: () { (CommentBlock) -> void } -> void
68
+ | () -> Enumerator[CommentBlock]
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,126 @@
1
+ use RBS::AST::Ruby::Declarations
2
+
3
+ module RBS
4
+ class InlineParser
5
+ class Result
6
+ attr_reader buffer: Buffer
7
+ attr_reader prism_result: Prism::ParseResult
8
+ attr_reader declarations: Array[AST::Ruby::Declarations::t]
9
+ attr_reader diagnostics: Array[Diagnostic::t]
10
+
11
+ def initialize: (Buffer, Prism::ParseResult) -> void
12
+
13
+ def type_fingerprint: () -> untyped
14
+ end
15
+
16
+ module Diagnostic
17
+ class Base
18
+ attr_reader message: String
19
+
20
+ attr_reader location: Location
21
+
22
+ def initialize: (Location, String) -> void
23
+ end
24
+
25
+ class NotImplementedYet < Base
26
+ end
27
+
28
+ class NonConstantClassName < Base
29
+ end
30
+
31
+ class NonConstantModuleName < Base
32
+ end
33
+
34
+ class NonConstantSuperClassName < Base
35
+ end
36
+
37
+ class TopLevelMethodDefinition < Base
38
+ end
39
+
40
+ class TopLevelAttributeDefinition < Base
41
+ end
42
+
43
+ class UnusedInlineAnnotation < Base
44
+ end
45
+
46
+ class AnnotationSyntaxError < Base
47
+ end
48
+
49
+ class MixinMultipleArguments < Base
50
+ end
51
+
52
+ class MixinNonConstantModule < Base
53
+ end
54
+
55
+ class AttributeNonSymbolName < Base
56
+ end
57
+
58
+ class NonConstantConstantDeclaration < Base
59
+ end
60
+
61
+ class ClassModuleAliasDeclarationMissingTypeName < Base
62
+ end
63
+
64
+ type t = NotImplementedYet
65
+ | NonConstantClassName | NonConstantModuleName | NonConstantSuperClassName
66
+ | TopLevelMethodDefinition | TopLevelAttributeDefinition
67
+ | UnusedInlineAnnotation | AnnotationSyntaxError
68
+ | MixinMultipleArguments | MixinNonConstantModule
69
+ | AttributeNonSymbolName
70
+ | NonConstantConstantDeclaration
71
+ | ClassModuleAliasDeclarationMissingTypeName
72
+ end
73
+
74
+ def self.parse: (Buffer, Prism::ParseResult) -> Result
75
+
76
+ class Parser < Prism::Visitor
77
+ type module_context = Declarations::ClassDecl | Declarations::ModuleDecl
78
+
79
+ include AST::Ruby::Helpers::ConstantHelper
80
+
81
+ include AST::Ruby::Helpers::LocationHelper
82
+
83
+ attr_reader comments: CommentAssociation
84
+
85
+ attr_reader result: Result
86
+
87
+ attr_reader module_nesting: Array[module_context]
88
+
89
+ def initialize: (Result) -> void
90
+
91
+ def buffer: () -> Buffer
92
+
93
+ %a{pure} def current_module: () -> module_context?
94
+
95
+ %a{pure} def current_module!: () -> module_context
96
+
97
+ def diagnostics: () -> Array[Diagnostic::t]
98
+
99
+ def push_module_nesting: [T] (module_context) { () -> T } -> T
100
+
101
+ # Returns `true` if the node is a comment block including `@rbs skip` annotation
102
+ #
103
+ # Doesn't update the `association` flag if returning `false`.
104
+ #
105
+ def skip_node?: (Prism::Node) -> bool
106
+
107
+ def insert_declaration: (module_context) -> void
108
+
109
+ def report_unused_annotation: (*AST::Ruby::Annotations::t | nil | AST::Ruby::CommentBlock::AnnotationSyntaxError) -> void
110
+
111
+ def report_unused_block: (AST::Ruby::CommentBlock) -> void
112
+
113
+ def visit_class_or_module_body: (module_context, Prism::ClassNode | Prism::ModuleNode) -> void
114
+
115
+ private
116
+
117
+ def parse_mixin_call: (Prism::CallNode) -> void
118
+
119
+ def parse_attribute_call: (Prism::CallNode) -> void
120
+
121
+ def parse_constant_declaration: (Prism::ConstantWriteNode | Prism::ConstantPathWriteNode) -> void
122
+
123
+ def parse_super_class: (Prism::node, Prism::Location) -> Declarations::ClassDecl::SuperClass?
124
+ end
125
+ end
126
+ end