rbs 4.1.0.pre.2-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (574) hide show
  1. checksums.yaml +7 -0
  2. data/.clang-format +75 -0
  3. data/.clangd +2 -0
  4. data/.github/dependabot.yml +24 -0
  5. data/.github/workflows/bundle-update.yml +63 -0
  6. data/.github/workflows/c-check.yml +61 -0
  7. data/.github/workflows/comments.yml +37 -0
  8. data/.github/workflows/dependabot.yml +30 -0
  9. data/.github/workflows/jruby.yml +67 -0
  10. data/.github/workflows/milestone.yml +83 -0
  11. data/.github/workflows/ruby.yml +158 -0
  12. data/.github/workflows/rust.yml +184 -0
  13. data/.github/workflows/truffleruby.yml +54 -0
  14. data/.github/workflows/typecheck.yml +39 -0
  15. data/.github/workflows/wasm.yml +53 -0
  16. data/.github/workflows/windows.yml +49 -0
  17. data/.gitignore +38 -0
  18. data/.rubocop.yml +72 -0
  19. data/BSDL +22 -0
  20. data/CHANGELOG.md +2292 -0
  21. data/COPYING +56 -0
  22. data/README.md +240 -0
  23. data/Rakefile +869 -0
  24. data/Steepfile +53 -0
  25. data/config.yml +913 -0
  26. data/core/array.rbs +4142 -0
  27. data/core/basic_object.rbs +376 -0
  28. data/core/binding.rbs +148 -0
  29. data/core/builtin.rbs +278 -0
  30. data/core/class.rbs +223 -0
  31. data/core/comparable.rbs +192 -0
  32. data/core/complex.rbs +812 -0
  33. data/core/constants.rbs +96 -0
  34. data/core/data.rbs +415 -0
  35. data/core/dir.rbs +993 -0
  36. data/core/encoding.rbs +1368 -0
  37. data/core/enumerable.rbs +2506 -0
  38. data/core/enumerator/arithmetic_sequence.rbs +70 -0
  39. data/core/enumerator/product.rbs +92 -0
  40. data/core/enumerator.rbs +705 -0
  41. data/core/env.rbs +6 -0
  42. data/core/errno.rbs +682 -0
  43. data/core/errors.rbs +789 -0
  44. data/core/exception.rbs +485 -0
  45. data/core/false_class.rbs +82 -0
  46. data/core/fiber.rbs +570 -0
  47. data/core/fiber_error.rbs +11 -0
  48. data/core/file.rbs +2045 -0
  49. data/core/file_constants.rbs +463 -0
  50. data/core/file_stat.rbs +534 -0
  51. data/core/file_test.rbs +331 -0
  52. data/core/float.rbs +1316 -0
  53. data/core/gc.rbs +788 -0
  54. data/core/global_variables.rbs +184 -0
  55. data/core/hash.rbs +2183 -0
  56. data/core/integer.rbs +1374 -0
  57. data/core/io/buffer.rbs +995 -0
  58. data/core/io/wait.rbs +48 -0
  59. data/core/io.rbs +3472 -0
  60. data/core/kernel.rbs +3172 -0
  61. data/core/marshal.rbs +207 -0
  62. data/core/match_data.rbs +637 -0
  63. data/core/math.rbs +770 -0
  64. data/core/method.rbs +422 -0
  65. data/core/module.rbs +1856 -0
  66. data/core/nil_class.rbs +210 -0
  67. data/core/numeric.rbs +832 -0
  68. data/core/object.rbs +108 -0
  69. data/core/object_space/weak_key_map.rbs +166 -0
  70. data/core/object_space.rbs +197 -0
  71. data/core/pathname.rbs +1322 -0
  72. data/core/proc.rbs +905 -0
  73. data/core/process.rbs +2316 -0
  74. data/core/ractor.rbs +924 -0
  75. data/core/random.rbs +255 -0
  76. data/core/range.rbs +1209 -0
  77. data/core/rational.rbs +502 -0
  78. data/core/rb_config.rbs +88 -0
  79. data/core/rbs/ops.rbs +154 -0
  80. data/core/rbs/unnamed/argf.rbs +1236 -0
  81. data/core/rbs/unnamed/env_class.rbs +1214 -0
  82. data/core/rbs/unnamed/main_class.rbs +123 -0
  83. data/core/rbs/unnamed/random.rbs +186 -0
  84. data/core/refinement.rbs +59 -0
  85. data/core/regexp.rbs +1974 -0
  86. data/core/ruby.rbs +53 -0
  87. data/core/ruby_vm.rbs +809 -0
  88. data/core/rubygems/basic_specification.rbs +6 -0
  89. data/core/rubygems/config_file.rbs +38 -0
  90. data/core/rubygems/dependency_installer.rbs +6 -0
  91. data/core/rubygems/errors.rbs +109 -0
  92. data/core/rubygems/installer.rbs +15 -0
  93. data/core/rubygems/path_support.rbs +6 -0
  94. data/core/rubygems/platform.rbs +7 -0
  95. data/core/rubygems/request_set.rbs +49 -0
  96. data/core/rubygems/requirement.rbs +148 -0
  97. data/core/rubygems/rubygems.rbs +1105 -0
  98. data/core/rubygems/source_list.rbs +15 -0
  99. data/core/rubygems/specification.rbs +23 -0
  100. data/core/rubygems/stream_ui.rbs +5 -0
  101. data/core/rubygems/uninstaller.rbs +10 -0
  102. data/core/rubygems/version.rbs +293 -0
  103. data/core/set.rbs +751 -0
  104. data/core/signal.rbs +110 -0
  105. data/core/string.rbs +5532 -0
  106. data/core/struct.rbs +668 -0
  107. data/core/symbol.rbs +482 -0
  108. data/core/thread.rbs +1826 -0
  109. data/core/thread_group.rbs +79 -0
  110. data/core/time.rbs +1793 -0
  111. data/core/trace_point.rbs +483 -0
  112. data/core/true_class.rbs +98 -0
  113. data/core/unbound_method.rbs +337 -0
  114. data/core/warning.rbs +87 -0
  115. data/docs/CONTRIBUTING.md +107 -0
  116. data/docs/aliases.md +79 -0
  117. data/docs/architecture.md +110 -0
  118. data/docs/collection.md +192 -0
  119. data/docs/config.md +171 -0
  120. data/docs/data_and_struct.md +86 -0
  121. data/docs/encoding.md +56 -0
  122. data/docs/gem.md +56 -0
  123. data/docs/inline.md +634 -0
  124. data/docs/rbs_by_example.md +309 -0
  125. data/docs/repo.md +125 -0
  126. data/docs/rust.md +96 -0
  127. data/docs/sigs.md +167 -0
  128. data/docs/stdlib.md +147 -0
  129. data/docs/syntax.md +940 -0
  130. data/docs/tools.md +17 -0
  131. data/docs/type_fingerprint.md +21 -0
  132. data/docs/wasm_serialization.md +80 -0
  133. data/exe/rbs +7 -0
  134. data/ext/rbs_extension/ast_translation.c +1855 -0
  135. data/ext/rbs_extension/ast_translation.h +41 -0
  136. data/ext/rbs_extension/class_constants.c +187 -0
  137. data/ext/rbs_extension/class_constants.h +104 -0
  138. data/ext/rbs_extension/compat.h +10 -0
  139. data/ext/rbs_extension/extconf.rb +40 -0
  140. data/ext/rbs_extension/legacy_location.c +294 -0
  141. data/ext/rbs_extension/legacy_location.h +82 -0
  142. data/ext/rbs_extension/main.c +613 -0
  143. data/ext/rbs_extension/rbs_extension.h +16 -0
  144. data/ext/rbs_extension/rbs_string_bridging.c +9 -0
  145. data/ext/rbs_extension/rbs_string_bridging.h +24 -0
  146. data/goodcheck.yml +91 -0
  147. data/include/rbs/ast.h +1047 -0
  148. data/include/rbs/defines.h +99 -0
  149. data/include/rbs/lexer.h +207 -0
  150. data/include/rbs/location.h +40 -0
  151. data/include/rbs/parser.h +153 -0
  152. data/include/rbs/serialize.h +39 -0
  153. data/include/rbs/string.h +47 -0
  154. data/include/rbs/util/rbs_allocator.h +59 -0
  155. data/include/rbs/util/rbs_assert.h +20 -0
  156. data/include/rbs/util/rbs_buffer.h +83 -0
  157. data/include/rbs/util/rbs_constant_pool.h +155 -0
  158. data/include/rbs/util/rbs_encoding.h +282 -0
  159. data/include/rbs/util/rbs_unescape.h +24 -0
  160. data/include/rbs.h +14 -0
  161. data/lib/rbs/ancestor_graph.rb +92 -0
  162. data/lib/rbs/annotate/annotations.rb +199 -0
  163. data/lib/rbs/annotate/formatter.rb +82 -0
  164. data/lib/rbs/annotate/rdoc_annotator.rb +398 -0
  165. data/lib/rbs/annotate/rdoc_source.rb +131 -0
  166. data/lib/rbs/annotate.rb +8 -0
  167. data/lib/rbs/ast/annotation.rb +29 -0
  168. data/lib/rbs/ast/comment.rb +29 -0
  169. data/lib/rbs/ast/declarations.rb +472 -0
  170. data/lib/rbs/ast/directives.rb +49 -0
  171. data/lib/rbs/ast/members.rb +451 -0
  172. data/lib/rbs/ast/ruby/annotations.rb +451 -0
  173. data/lib/rbs/ast/ruby/comment_block.rb +247 -0
  174. data/lib/rbs/ast/ruby/declarations.rb +291 -0
  175. data/lib/rbs/ast/ruby/helpers/constant_helper.rb +28 -0
  176. data/lib/rbs/ast/ruby/helpers/location_helper.rb +15 -0
  177. data/lib/rbs/ast/ruby/members.rb +762 -0
  178. data/lib/rbs/ast/type_param.rb +235 -0
  179. data/lib/rbs/ast/visitor.rb +137 -0
  180. data/lib/rbs/buffer.rb +189 -0
  181. data/lib/rbs/builtin_names.rb +58 -0
  182. data/lib/rbs/cli/colored_io.rb +48 -0
  183. data/lib/rbs/cli/diff.rb +84 -0
  184. data/lib/rbs/cli/validate.rb +294 -0
  185. data/lib/rbs/cli.rb +1253 -0
  186. data/lib/rbs/collection/cleaner.rb +38 -0
  187. data/lib/rbs/collection/config/lockfile.rb +92 -0
  188. data/lib/rbs/collection/config/lockfile_generator.rb +269 -0
  189. data/lib/rbs/collection/config.rb +81 -0
  190. data/lib/rbs/collection/installer.rb +32 -0
  191. data/lib/rbs/collection/sources/base.rb +14 -0
  192. data/lib/rbs/collection/sources/git.rb +265 -0
  193. data/lib/rbs/collection/sources/local.rb +81 -0
  194. data/lib/rbs/collection/sources/rubygems.rb +48 -0
  195. data/lib/rbs/collection/sources/stdlib.rb +50 -0
  196. data/lib/rbs/collection/sources.rb +38 -0
  197. data/lib/rbs/collection.rb +16 -0
  198. data/lib/rbs/constant.rb +28 -0
  199. data/lib/rbs/definition.rb +415 -0
  200. data/lib/rbs/definition_builder/ancestor_builder.rb +678 -0
  201. data/lib/rbs/definition_builder/method_builder.rb +295 -0
  202. data/lib/rbs/definition_builder.rb +1054 -0
  203. data/lib/rbs/diff.rb +131 -0
  204. data/lib/rbs/environment/class_entry.rb +69 -0
  205. data/lib/rbs/environment/module_entry.rb +66 -0
  206. data/lib/rbs/environment/use_map.rb +77 -0
  207. data/lib/rbs/environment.rb +1028 -0
  208. data/lib/rbs/environment_loader.rb +167 -0
  209. data/lib/rbs/environment_walker.rb +155 -0
  210. data/lib/rbs/errors.rb +634 -0
  211. data/lib/rbs/factory.rb +18 -0
  212. data/lib/rbs/file_finder.rb +28 -0
  213. data/lib/rbs/inline_parser/comment_association.rb +117 -0
  214. data/lib/rbs/inline_parser.rb +568 -0
  215. data/lib/rbs/location_aux.rb +170 -0
  216. data/lib/rbs/locator.rb +247 -0
  217. data/lib/rbs/method_type.rb +145 -0
  218. data/lib/rbs/namespace.rb +154 -0
  219. data/lib/rbs/parser/lex_result.rb +15 -0
  220. data/lib/rbs/parser/token.rb +23 -0
  221. data/lib/rbs/parser_aux.rb +142 -0
  222. data/lib/rbs/prototype/helpers.rb +197 -0
  223. data/lib/rbs/prototype/node_usage.rb +99 -0
  224. data/lib/rbs/prototype/rb.rb +816 -0
  225. data/lib/rbs/prototype/rbi.rb +625 -0
  226. data/lib/rbs/prototype/runtime/helpers.rb +59 -0
  227. data/lib/rbs/prototype/runtime/reflection.rb +19 -0
  228. data/lib/rbs/prototype/runtime/value_object_generator.rb +279 -0
  229. data/lib/rbs/prototype/runtime.rb +680 -0
  230. data/lib/rbs/repository.rb +127 -0
  231. data/lib/rbs/resolver/constant_resolver.rb +219 -0
  232. data/lib/rbs/resolver/type_name_resolver.rb +167 -0
  233. data/lib/rbs/rewriter.rb +70 -0
  234. data/lib/rbs/sorter.rb +198 -0
  235. data/lib/rbs/source.rb +99 -0
  236. data/lib/rbs/substitution.rb +83 -0
  237. data/lib/rbs/subtractor.rb +204 -0
  238. data/lib/rbs/test/errors.rb +80 -0
  239. data/lib/rbs/test/guaranteed.rb +30 -0
  240. data/lib/rbs/test/hook.rb +212 -0
  241. data/lib/rbs/test/observer.rb +19 -0
  242. data/lib/rbs/test/setup.rb +84 -0
  243. data/lib/rbs/test/setup_helper.rb +50 -0
  244. data/lib/rbs/test/tester.rb +167 -0
  245. data/lib/rbs/test/type_check.rb +457 -0
  246. data/lib/rbs/test.rb +112 -0
  247. data/lib/rbs/type_alias_dependency.rb +100 -0
  248. data/lib/rbs/type_alias_regularity.rb +126 -0
  249. data/lib/rbs/type_name.rb +122 -0
  250. data/lib/rbs/types.rb +1604 -0
  251. data/lib/rbs/unit_test/convertibles.rb +177 -0
  252. data/lib/rbs/unit_test/spy.rb +138 -0
  253. data/lib/rbs/unit_test/type_assertions.rb +383 -0
  254. data/lib/rbs/unit_test/with_aliases.rb +145 -0
  255. data/lib/rbs/unit_test.rb +6 -0
  256. data/lib/rbs/validator.rb +186 -0
  257. data/lib/rbs/variance_calculator.rb +189 -0
  258. data/lib/rbs/vendorer.rb +71 -0
  259. data/lib/rbs/version.rb +5 -0
  260. data/lib/rbs/wasm/deserializer.rb +213 -0
  261. data/lib/rbs/wasm/jars/asm-analysis.jar +0 -0
  262. data/lib/rbs/wasm/jars/asm-commons.jar +0 -0
  263. data/lib/rbs/wasm/jars/asm-tree.jar +0 -0
  264. data/lib/rbs/wasm/jars/asm-util.jar +0 -0
  265. data/lib/rbs/wasm/jars/asm.jar +0 -0
  266. data/lib/rbs/wasm/jars/compiler.jar +0 -0
  267. data/lib/rbs/wasm/jars/log.jar +0 -0
  268. data/lib/rbs/wasm/jars/runtime.jar +0 -0
  269. data/lib/rbs/wasm/jars/wasi.jar +0 -0
  270. data/lib/rbs/wasm/jars/wasm.jar +0 -0
  271. data/lib/rbs/wasm/location.rb +61 -0
  272. data/lib/rbs/wasm/parser.rb +137 -0
  273. data/lib/rbs/wasm/rbs_parser.wasm +0 -0
  274. data/lib/rbs/wasm/runtime.rb +217 -0
  275. data/lib/rbs/wasm/serialization_schema.rb +110 -0
  276. data/lib/rbs/writer.rb +424 -0
  277. data/lib/rbs.rb +117 -0
  278. data/lib/rdoc/discover.rb +20 -0
  279. data/lib/rdoc_plugin/parser.rb +163 -0
  280. data/rbs.gemspec +68 -0
  281. data/schema/annotation.json +14 -0
  282. data/schema/comment.json +26 -0
  283. data/schema/decls.json +326 -0
  284. data/schema/function.json +87 -0
  285. data/schema/location.json +56 -0
  286. data/schema/members.json +266 -0
  287. data/schema/methodType.json +50 -0
  288. data/schema/typeParam.json +52 -0
  289. data/schema/types.json +317 -0
  290. data/sig/ancestor_builder.rbs +163 -0
  291. data/sig/ancestor_graph.rbs +60 -0
  292. data/sig/annotate/annotations.rbs +102 -0
  293. data/sig/annotate/formatter.rbs +24 -0
  294. data/sig/annotate/rdoc_annotater.rbs +85 -0
  295. data/sig/annotate/rdoc_source.rbs +32 -0
  296. data/sig/annotation.rbs +27 -0
  297. data/sig/ast/ruby/annotations.rbs +470 -0
  298. data/sig/ast/ruby/comment_block.rbs +127 -0
  299. data/sig/ast/ruby/declarations.rbs +158 -0
  300. data/sig/ast/ruby/helpers/constant_helper.rbs +11 -0
  301. data/sig/ast/ruby/helpers/location_helper.rbs +15 -0
  302. data/sig/ast/ruby/members.rbs +198 -0
  303. data/sig/buffer.rbs +108 -0
  304. data/sig/builtin_names.rbs +44 -0
  305. data/sig/cli/colored_io.rbs +15 -0
  306. data/sig/cli/diff.rbs +15 -0
  307. data/sig/cli/validate.rbs +47 -0
  308. data/sig/cli.rbs +89 -0
  309. data/sig/collection/cleaner.rbs +13 -0
  310. data/sig/collection/config/lockfile.rbs +74 -0
  311. data/sig/collection/config/lockfile_generator.rbs +68 -0
  312. data/sig/collection/config.rbs +46 -0
  313. data/sig/collection/installer.rbs +17 -0
  314. data/sig/collection/sources.rbs +214 -0
  315. data/sig/collection.rbs +4 -0
  316. data/sig/comment.rbs +26 -0
  317. data/sig/constant.rbs +21 -0
  318. data/sig/declarations.rbs +274 -0
  319. data/sig/definition.rbs +232 -0
  320. data/sig/definition_builder.rbs +181 -0
  321. data/sig/diff.rbs +28 -0
  322. data/sig/directives.rbs +77 -0
  323. data/sig/environment/class_entry.rbs +50 -0
  324. data/sig/environment/module_entry.rbs +50 -0
  325. data/sig/environment.rbs +286 -0
  326. data/sig/environment_loader.rbs +111 -0
  327. data/sig/environment_walker.rbs +65 -0
  328. data/sig/errors.rbs +408 -0
  329. data/sig/factory.rbs +5 -0
  330. data/sig/file_finder.rbs +28 -0
  331. data/sig/inline_parser/comment_association.rbs +71 -0
  332. data/sig/inline_parser.rbs +126 -0
  333. data/sig/location.rbs +135 -0
  334. data/sig/locator.rbs +56 -0
  335. data/sig/manifest.yaml +5 -0
  336. data/sig/members.rbs +258 -0
  337. data/sig/method_builder.rbs +89 -0
  338. data/sig/method_types.rbs +58 -0
  339. data/sig/namespace.rbs +161 -0
  340. data/sig/parser.rbs +164 -0
  341. data/sig/prototype/helpers.rbs +29 -0
  342. data/sig/prototype/node_usage.rbs +20 -0
  343. data/sig/prototype/rb.rbs +96 -0
  344. data/sig/prototype/rbi.rbs +75 -0
  345. data/sig/prototype/runtime.rbs +182 -0
  346. data/sig/rbs.rbs +21 -0
  347. data/sig/rdoc/rbs.rbs +67 -0
  348. data/sig/repository.rbs +85 -0
  349. data/sig/resolver/constant_resolver.rbs +92 -0
  350. data/sig/resolver/context.rbs +34 -0
  351. data/sig/resolver/type_name_resolver.rbs +61 -0
  352. data/sig/rewriter.rbs +45 -0
  353. data/sig/shims/bundler.rbs +38 -0
  354. data/sig/shims/enumerable.rbs +5 -0
  355. data/sig/shims/rubygems.rbs +19 -0
  356. data/sig/sorter.rbs +41 -0
  357. data/sig/source.rbs +48 -0
  358. data/sig/substitution.rbs +48 -0
  359. data/sig/subtractor.rbs +37 -0
  360. data/sig/test/errors.rbs +52 -0
  361. data/sig/test/guranteed.rbs +9 -0
  362. data/sig/test/type_check.rbs +19 -0
  363. data/sig/test.rbs +82 -0
  364. data/sig/type_alias_dependency.rbs +53 -0
  365. data/sig/type_alias_regularity.rbs +98 -0
  366. data/sig/type_param.rbs +115 -0
  367. data/sig/typename.rbs +89 -0
  368. data/sig/types.rbs +578 -0
  369. data/sig/unit_test/convertibles.rbs +154 -0
  370. data/sig/unit_test/spy.rbs +22 -0
  371. data/sig/unit_test/type_assertions.rbs +211 -0
  372. data/sig/unit_test/with_aliases.rbs +136 -0
  373. data/sig/use_map.rbs +35 -0
  374. data/sig/util.rbs +9 -0
  375. data/sig/validator.rbs +63 -0
  376. data/sig/variance_calculator.rbs +87 -0
  377. data/sig/vendorer.rbs +51 -0
  378. data/sig/version.rbs +3 -0
  379. data/sig/visitor.rbs +47 -0
  380. data/sig/wasm/deserializer.rbs +66 -0
  381. data/sig/wasm/serialization_schema.rbs +13 -0
  382. data/sig/writer.rbs +127 -0
  383. data/src/ast.c +1628 -0
  384. data/src/lexer.c +3217 -0
  385. data/src/lexer.re +155 -0
  386. data/src/lexstate.c +217 -0
  387. data/src/location.c +31 -0
  388. data/src/parser.c +4255 -0
  389. data/src/serialize.c +958 -0
  390. data/src/string.c +41 -0
  391. data/src/util/rbs_allocator.c +162 -0
  392. data/src/util/rbs_assert.c +19 -0
  393. data/src/util/rbs_buffer.c +54 -0
  394. data/src/util/rbs_constant_pool.c +268 -0
  395. data/src/util/rbs_encoding.c +21308 -0
  396. data/src/util/rbs_unescape.c +167 -0
  397. data/stdlib/abbrev/0/abbrev.rbs +66 -0
  398. data/stdlib/abbrev/0/array.rbs +26 -0
  399. data/stdlib/base64/0/base64.rbs +355 -0
  400. data/stdlib/benchmark/0/benchmark.rbs +452 -0
  401. data/stdlib/bigdecimal/0/big_decimal.rbs +1647 -0
  402. data/stdlib/bigdecimal-math/0/big_math.rbs +280 -0
  403. data/stdlib/bigdecimal-math/0/manifest.yaml +2 -0
  404. data/stdlib/cgi/0/core.rbs +911 -0
  405. data/stdlib/cgi/0/manifest.yaml +4 -0
  406. data/stdlib/cgi-escape/0/escape.rbs +171 -0
  407. data/stdlib/coverage/0/coverage.rbs +266 -0
  408. data/stdlib/csv/0/csv.rbs +3776 -0
  409. data/stdlib/csv/0/manifest.yaml +3 -0
  410. data/stdlib/date/0/date.rbs +1598 -0
  411. data/stdlib/date/0/date_time.rbs +617 -0
  412. data/stdlib/date/0/time.rbs +26 -0
  413. data/stdlib/dbm/0/dbm.rbs +421 -0
  414. data/stdlib/delegate/0/delegator.rbs +187 -0
  415. data/stdlib/delegate/0/kernel.rbs +47 -0
  416. data/stdlib/delegate/0/simple_delegator.rbs +96 -0
  417. data/stdlib/did_you_mean/0/did_you_mean.rbs +344 -0
  418. data/stdlib/digest/0/digest.rbs +687 -0
  419. data/stdlib/erb/0/erb.rbs +933 -0
  420. data/stdlib/etc/0/etc.rbs +884 -0
  421. data/stdlib/fileutils/0/fileutils.rbs +1753 -0
  422. data/stdlib/find/0/find.rbs +49 -0
  423. data/stdlib/forwardable/0/forwardable.rbs +271 -0
  424. data/stdlib/io-console/0/io-console.rbs +414 -0
  425. data/stdlib/ipaddr/0/ipaddr.rbs +436 -0
  426. data/stdlib/json/0/json.rbs +1963 -0
  427. data/stdlib/kconv/0/kconv.rbs +166 -0
  428. data/stdlib/logger/0/formatter.rbs +45 -0
  429. data/stdlib/logger/0/log_device.rbs +100 -0
  430. data/stdlib/logger/0/logger.rbs +796 -0
  431. data/stdlib/logger/0/manifest.yaml +2 -0
  432. data/stdlib/logger/0/period.rbs +17 -0
  433. data/stdlib/logger/0/severity.rbs +34 -0
  434. data/stdlib/minitest/0/kernel.rbs +42 -0
  435. data/stdlib/minitest/0/minitest/abstract_reporter.rbs +52 -0
  436. data/stdlib/minitest/0/minitest/assertion.rbs +17 -0
  437. data/stdlib/minitest/0/minitest/assertions.rbs +590 -0
  438. data/stdlib/minitest/0/minitest/backtrace_filter.rbs +23 -0
  439. data/stdlib/minitest/0/minitest/bench_spec.rbs +102 -0
  440. data/stdlib/minitest/0/minitest/benchmark.rbs +259 -0
  441. data/stdlib/minitest/0/minitest/composite_reporter.rbs +25 -0
  442. data/stdlib/minitest/0/minitest/compress.rbs +13 -0
  443. data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
  444. data/stdlib/minitest/0/minitest/expectation.rbs +2 -0
  445. data/stdlib/minitest/0/minitest/expectations.rbs +21 -0
  446. data/stdlib/minitest/0/minitest/guard.rbs +64 -0
  447. data/stdlib/minitest/0/minitest/mock.rbs +64 -0
  448. data/stdlib/minitest/0/minitest/parallel/executor.rbs +46 -0
  449. data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +5 -0
  450. data/stdlib/minitest/0/minitest/parallel/test.rbs +3 -0
  451. data/stdlib/minitest/0/minitest/parallel.rbs +2 -0
  452. data/stdlib/minitest/0/minitest/pride_io.rbs +62 -0
  453. data/stdlib/minitest/0/minitest/pride_lol.rbs +19 -0
  454. data/stdlib/minitest/0/minitest/progress_reporter.rbs +11 -0
  455. data/stdlib/minitest/0/minitest/reportable.rbs +53 -0
  456. data/stdlib/minitest/0/minitest/reporter.rbs +5 -0
  457. data/stdlib/minitest/0/minitest/result.rbs +28 -0
  458. data/stdlib/minitest/0/minitest/runnable.rbs +163 -0
  459. data/stdlib/minitest/0/minitest/skip.rbs +6 -0
  460. data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +48 -0
  461. data/stdlib/minitest/0/minitest/spec/dsl.rbs +129 -0
  462. data/stdlib/minitest/0/minitest/spec.rbs +11 -0
  463. data/stdlib/minitest/0/minitest/statistics_reporter.rbs +81 -0
  464. data/stdlib/minitest/0/minitest/summary_reporter.rbs +18 -0
  465. data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +92 -0
  466. data/stdlib/minitest/0/minitest/test.rbs +69 -0
  467. data/stdlib/minitest/0/minitest/unexpected_error.rbs +12 -0
  468. data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
  469. data/stdlib/minitest/0/minitest/unit/test_case.rbs +3 -0
  470. data/stdlib/minitest/0/minitest/unit.rbs +4 -0
  471. data/stdlib/minitest/0/minitest.rbs +115 -0
  472. data/stdlib/monitor/0/monitor.rbs +363 -0
  473. data/stdlib/mutex_m/0/mutex_m.rbs +104 -0
  474. data/stdlib/net-http/0/manifest.yaml +3 -0
  475. data/stdlib/net-http/0/net-http.rbs +5580 -0
  476. data/stdlib/net-protocol/0/manifest.yaml +2 -0
  477. data/stdlib/net-protocol/0/net-protocol.rbs +56 -0
  478. data/stdlib/net-smtp/0/manifest.yaml +2 -0
  479. data/stdlib/net-smtp/0/net-smtp.rbs +55 -0
  480. data/stdlib/nkf/0/nkf.rbs +402 -0
  481. data/stdlib/objspace/0/objspace.rbs +470 -0
  482. data/stdlib/observable/0/observable.rbs +217 -0
  483. data/stdlib/open-uri/0/manifest.yaml +4 -0
  484. data/stdlib/open-uri/0/open-uri.rbs +433 -0
  485. data/stdlib/open3/0/open3.rbs +606 -0
  486. data/stdlib/openssl/0/manifest.yaml +3 -0
  487. data/stdlib/openssl/0/openssl.rbs +12231 -0
  488. data/stdlib/optparse/0/optparse.rbs +1734 -0
  489. data/stdlib/pathname/0/pathname.rbs +36 -0
  490. data/stdlib/pp/0/manifest.yaml +2 -0
  491. data/stdlib/pp/0/pp.rbs +301 -0
  492. data/stdlib/prettyprint/0/prettyprint.rbs +383 -0
  493. data/stdlib/pstore/0/pstore.rbs +608 -0
  494. data/stdlib/psych/0/core_ext.rbs +12 -0
  495. data/stdlib/psych/0/dbm.rbs +237 -0
  496. data/stdlib/psych/0/manifest.yaml +3 -0
  497. data/stdlib/psych/0/psych.rbs +455 -0
  498. data/stdlib/psych/0/store.rbs +57 -0
  499. data/stdlib/pty/0/pty.rbs +240 -0
  500. data/stdlib/random-formatter/0/random-formatter.rbs +277 -0
  501. data/stdlib/rdoc/0/code_object.rbs +52 -0
  502. data/stdlib/rdoc/0/comment.rbs +61 -0
  503. data/stdlib/rdoc/0/context.rbs +153 -0
  504. data/stdlib/rdoc/0/markup.rbs +117 -0
  505. data/stdlib/rdoc/0/options.rbs +76 -0
  506. data/stdlib/rdoc/0/parser.rbs +56 -0
  507. data/stdlib/rdoc/0/rdoc.rbs +393 -0
  508. data/stdlib/rdoc/0/ri.rbs +17 -0
  509. data/stdlib/rdoc/0/store.rbs +48 -0
  510. data/stdlib/rdoc/0/top_level.rbs +97 -0
  511. data/stdlib/resolv/0/manifest.yaml +3 -0
  512. data/stdlib/resolv/0/resolv.rbs +1787 -0
  513. data/stdlib/ripper/0/ripper.rbs +1654 -0
  514. data/stdlib/securerandom/0/manifest.yaml +2 -0
  515. data/stdlib/securerandom/0/securerandom.rbs +49 -0
  516. data/stdlib/shellwords/0/shellwords.rbs +229 -0
  517. data/stdlib/singleton/0/singleton.rbs +134 -0
  518. data/stdlib/socket/0/addrinfo.rbs +666 -0
  519. data/stdlib/socket/0/basic_socket.rbs +590 -0
  520. data/stdlib/socket/0/constants.rbs +2295 -0
  521. data/stdlib/socket/0/ip_socket.rbs +94 -0
  522. data/stdlib/socket/0/socket.rbs +4170 -0
  523. data/stdlib/socket/0/socket_error.rbs +5 -0
  524. data/stdlib/socket/0/tcp_server.rbs +192 -0
  525. data/stdlib/socket/0/tcp_socket.rbs +87 -0
  526. data/stdlib/socket/0/udp_socket.rbs +133 -0
  527. data/stdlib/socket/0/unix_server.rbs +169 -0
  528. data/stdlib/socket/0/unix_socket.rbs +172 -0
  529. data/stdlib/stringio/0/stringio.rbs +1681 -0
  530. data/stdlib/strscan/0/string_scanner.rbs +1648 -0
  531. data/stdlib/tempfile/0/tempfile.rbs +483 -0
  532. data/stdlib/time/0/time.rbs +434 -0
  533. data/stdlib/timeout/0/timeout.rbs +137 -0
  534. data/stdlib/tmpdir/0/tmpdir.rbs +69 -0
  535. data/stdlib/tsort/0/cyclic.rbs +8 -0
  536. data/stdlib/tsort/0/interfaces.rbs +20 -0
  537. data/stdlib/tsort/0/tsort.rbs +410 -0
  538. data/stdlib/uri/0/common.rbs +621 -0
  539. data/stdlib/uri/0/file.rbs +118 -0
  540. data/stdlib/uri/0/ftp.rbs +13 -0
  541. data/stdlib/uri/0/generic.rbs +1116 -0
  542. data/stdlib/uri/0/http.rbs +104 -0
  543. data/stdlib/uri/0/https.rbs +14 -0
  544. data/stdlib/uri/0/ldap.rbs +230 -0
  545. data/stdlib/uri/0/ldaps.rbs +14 -0
  546. data/stdlib/uri/0/mailto.rbs +92 -0
  547. data/stdlib/uri/0/rfc2396_parser.rbs +189 -0
  548. data/stdlib/uri/0/rfc3986_parser.rbs +2 -0
  549. data/stdlib/uri/0/ws.rbs +13 -0
  550. data/stdlib/uri/0/wss.rbs +9 -0
  551. data/stdlib/yaml/0/manifest.yaml +2 -0
  552. data/stdlib/yaml/0/yaml.rbs +1 -0
  553. data/stdlib/zlib/0/buf_error.rbs +10 -0
  554. data/stdlib/zlib/0/data_error.rbs +10 -0
  555. data/stdlib/zlib/0/deflate.rbs +211 -0
  556. data/stdlib/zlib/0/error.rbs +20 -0
  557. data/stdlib/zlib/0/gzip_file/crc_error.rbs +12 -0
  558. data/stdlib/zlib/0/gzip_file/error.rbs +23 -0
  559. data/stdlib/zlib/0/gzip_file/length_error.rbs +12 -0
  560. data/stdlib/zlib/0/gzip_file/no_footer.rbs +11 -0
  561. data/stdlib/zlib/0/gzip_file.rbs +156 -0
  562. data/stdlib/zlib/0/gzip_reader.rbs +293 -0
  563. data/stdlib/zlib/0/gzip_writer.rbs +168 -0
  564. data/stdlib/zlib/0/inflate.rbs +180 -0
  565. data/stdlib/zlib/0/mem_error.rbs +10 -0
  566. data/stdlib/zlib/0/need_dict.rbs +13 -0
  567. data/stdlib/zlib/0/stream_end.rbs +11 -0
  568. data/stdlib/zlib/0/stream_error.rbs +11 -0
  569. data/stdlib/zlib/0/version_error.rbs +11 -0
  570. data/stdlib/zlib/0/zlib.rbs +449 -0
  571. data/stdlib/zlib/0/zstream.rbs +201 -0
  572. data/wasm/README.md +59 -0
  573. data/wasm/rbs_wasm.c +411 -0
  574. metadata +660 -0
@@ -0,0 +1,85 @@
1
+ module RBS
2
+ module Annotate
3
+ class RDocAnnotator
4
+ attr_reader source: RDocSource
5
+
6
+ attr_accessor include_arg_lists: bool
7
+ attr_accessor include_filename: bool
8
+
9
+ def initialize: (source: RDocSource) -> void
10
+
11
+ def annotate_file: (Pathname) -> void
12
+ | %a{deprecated: it preserves the format by default} (Pathname, preserve: bool) -> void
13
+
14
+ def annotate_decls: (Array[AST::Declarations::t], Rewriter, ?outer: Array[Namespace]) -> void
15
+
16
+ interface _PathTester
17
+ def test_path: (String) -> bool
18
+ end
19
+
20
+ interface _WithRDocComment
21
+ def comment: () -> (RDoc::Comment | String)
22
+ end
23
+
24
+ def each_part: (Array[Object & _WithRDocComment], tester: _PathTester) { ([RDoc::Markup::Document, Object & _WithRDocComment]) -> void } -> void
25
+ | (Array[Object & _WithRDocComment], tester: _PathTester) -> Enumerator[[RDoc::Markup::Document, Object & _WithRDocComment], void]
26
+
27
+ def join_docs: (Array[String?], ?separator: String) -> String?
28
+
29
+ def doc_for_class: (TypeName, tester: _PathTester) -> String?
30
+
31
+ # Returns the formatted document of given method.
32
+ #
33
+ # Expands attribute documents, or alias documents if needed.
34
+ #
35
+ def doc_for_method: (TypeName, instance_method: Symbol, tester: _PathTester) -> String?
36
+ | (TypeName, singleton_method: Symbol, tester: _PathTester) -> String?
37
+
38
+
39
+ def doc_for_method0: (TypeName, instance_method: Symbol, tester: _PathTester) -> String?
40
+ | (TypeName, singleton_method: Symbol, tester: _PathTester) -> String?
41
+
42
+ # Having `require: nil` means any attribute is okay.
43
+ # Having `require: "R"` means _read attr_ is required.
44
+ # Having `require: "W"` means write attr_ is required.
45
+ #
46
+ def doc_for_attribute: (TypeName, Symbol, singleton: bool, ?require: nil | "R" | "W", tester: _PathTester) -> String?
47
+
48
+ def doc_for_alias: (TypeName, name: Symbol, singleton: bool, tester: _PathTester) -> String?
49
+
50
+ def doc_for_constant: (TypeName, tester: _PathTester) -> String?
51
+
52
+ def resolve_doc_source: (Annotations::Copy?, tester: _PathTester) { () -> String? } -> String?
53
+
54
+ def annotate_class: (AST::Declarations::Class | AST::Declarations::Module, Rewriter, outer: Array[Namespace]) -> void
55
+
56
+ def annotate_constant: (AST::Declarations::Constant, Rewriter, outer: Array[Namespace]) -> void
57
+
58
+ def annotate_method: (TypeName, AST::Members::MethodDefinition, Rewriter) -> void
59
+
60
+ def annotate_alias: (TypeName, AST::Members::Alias, Rewriter) -> void
61
+
62
+ def annotate_attribute: (TypeName, AST::Members::AttrReader | AST::Members::AttrWriter | AST::Members::AttrAccessor, Rewriter) -> void
63
+
64
+ def annotations: (_Annotated) -> Annotations
65
+
66
+ interface _Annotated
67
+ def annotations: -> Array[AST::Annotation]
68
+ end
69
+
70
+ # - If a string is given as `comment`, the content is attached to the object as a comment.
71
+ # - If empty string is given as `comment`, it deletes the original comment.
72
+ # - If `nil` is given as `comment`, it keeps the original comment.
73
+ #
74
+ def replace_comment: (_Commented, String?, Rewriter) -> void
75
+
76
+ interface _Commented
77
+ %a{pure} def comment: () -> AST::Comment?
78
+ %a{pure} def location: () -> Location[untyped, untyped]?
79
+ def annotations: () -> Array[AST::Annotation]
80
+ end
81
+
82
+ def resolve_name: (TypeName, outer: Array[Namespace]) -> TypeName
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,32 @@
1
+ module RBS
2
+ module Annotate
3
+ class RDocSource
4
+ attr_accessor with_system_dir: bool
5
+ attr_accessor with_gems_dir: bool
6
+ attr_accessor with_site_dir: bool
7
+ attr_accessor with_home_dir: bool
8
+
9
+ attr_reader extra_dirs: Array[Pathname]
10
+
11
+ attr_reader stores: Array[RDoc::Store]
12
+
13
+ def initialize: () -> void
14
+
15
+ def load: () -> void
16
+
17
+ # Extract documents from `CodeObject`s
18
+ def docs: () { () -> Array[RDoc::CodeObject]? } -> Array[RDoc::Markup::Document]?
19
+
20
+ def find_class: (TypeName) -> Array[RDoc::ClassModule]?
21
+
22
+ def find_const: (TypeName) -> Array[RDoc::Constant]?
23
+
24
+ def find_method: (TypeName, instance_method: Symbol) -> Array[RDoc::AnyMethod]?
25
+ | (TypeName, singleton_method: Symbol) -> Array[RDoc::AnyMethod]?
26
+
27
+ def find_attribute: (TypeName, Symbol, singleton: bool) -> Array[RDoc::Attr]?
28
+
29
+ def class_docs: (TypeName) -> Array[::RDoc::Markup::Document | ::RDoc::Comment | ::String]?
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,27 @@
1
+ module RBS
2
+ module AST
3
+ # RBS allows writing annotations of declarations and members.
4
+ #
5
+ # ```rbs
6
+ # %a{annotation_here}
7
+ # class Hello
8
+ # %a{rbs:test:skip}
9
+ # def foo: () -> void
10
+ # end
11
+ # ```
12
+ class Annotation
13
+ attr_reader string: String
14
+ attr_reader location: Location[untyped, untyped]?
15
+
16
+ def initialize: (string: String, location: Location[untyped, untyped]?) -> void
17
+
18
+ def ==: (untyped other) -> bool
19
+
20
+ alias eql? ==
21
+
22
+ def hash: () -> Integer
23
+
24
+ include _ToJson
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,470 @@
1
+ module RBS
2
+ module AST
3
+ module Ruby
4
+ module Annotations
5
+ type leading_annotation = ColonMethodTypeAnnotation
6
+ | MethodTypesAnnotation
7
+ | SkipAnnotation
8
+ | ReturnTypeAnnotation
9
+ | InstanceVariableAnnotation
10
+ | ModuleSelfAnnotation
11
+ | ParamTypeAnnotation
12
+ | SplatParamTypeAnnotation
13
+ | DoubleSplatParamTypeAnnotation
14
+ | BlockParamTypeAnnotation
15
+
16
+ type trailing_annotation = NodeTypeAssertion
17
+ | TypeApplicationAnnotation
18
+ | ClassAliasAnnotation
19
+ | ModuleAliasAnnotation
20
+
21
+ type t = leading_annotation | trailing_annotation
22
+
23
+ class Base
24
+ # Location that covers all of the annotation
25
+ #
26
+ attr_reader location: Location
27
+
28
+ # Location of `@rbs`, `@rbs!`, or `:` prefix
29
+ #
30
+ attr_reader prefix_location: Location
31
+
32
+ def initialize: (Location location, Location prefix_location) -> void
33
+
34
+ def buffer: () -> Buffer
35
+
36
+ # Returns the type fingerprint for this annotation
37
+ def type_fingerprint: () -> untyped
38
+ end
39
+
40
+ # `: TYPE` annotation attached to nodes
41
+ #
42
+ class NodeTypeAssertion < Base
43
+ attr_reader type: Types::t
44
+
45
+ def initialize: (location: Location, prefix_location: Location, type: Types::t) -> void
46
+
47
+ def map_type_name: () { (TypeName) -> TypeName } -> self
48
+
49
+ def type_fingerprint: () -> untyped
50
+ end
51
+
52
+ class AliasAnnotation < Base
53
+ attr_reader keyword_location: Location
54
+
55
+ attr_reader type_name_location: Location?
56
+
57
+ # The name of the module that will be the target of the alias
58
+ #
59
+ # - `nil` if the module/class name is unspecified
60
+ # - `TypeName` object if the module/class name is specified
61
+ #
62
+ attr_reader type_name: TypeName?
63
+
64
+ def initialize: (location: Location, prefix_location: Location, keyword_location: Location, type_name: TypeName?, type_name_location: Location?) -> void
65
+
66
+ def map_type_name: () { (TypeName) -> TypeName } -> self
67
+ end
68
+
69
+ # `: class-alias` annotation
70
+ #
71
+ # ```
72
+ # : class-alias Foo::Bar
73
+ # ^ -- prefix_location
74
+ # ^^^^^^^^^^^^ -- keyword_location
75
+ # ^^^^^^^^ -- type_name_location
76
+ # ```
77
+ #
78
+ class ClassAliasAnnotation < AliasAnnotation
79
+ def type_fingerprint: () -> untyped
80
+ end
81
+
82
+ # `: module-alias` annotation
83
+ #
84
+ # ```
85
+ # : module-alias Foo::Bar
86
+ # ^ -- prefix_location
87
+ # ^^^^^^^^^^^^ -- keyword_location
88
+ # ^^^^^^^^ -- type_name_location
89
+ # ```
90
+ #
91
+ class ModuleAliasAnnotation < AliasAnnotation
92
+ def type_fingerprint: () -> untyped
93
+ end
94
+
95
+ # `: METHOD-TYPE` annotation in leading comments
96
+ #
97
+ class ColonMethodTypeAnnotation < Base
98
+ attr_reader annotations: Array[AST::Annotation]
99
+
100
+ attr_reader method_type: MethodType
101
+
102
+ def initialize: (location: Location, prefix_location: Location, annotations: Array[AST::Annotation], method_type: MethodType) -> void
103
+
104
+ def map_type_name: () { (TypeName) -> TypeName } -> self
105
+
106
+ def type_fingerprint: () -> untyped
107
+ end
108
+
109
+ # `@rbs METHOD-TYPEs` annotation in leading comments
110
+ #
111
+ # ```
112
+ # @rbs () -> void | %a{foo} () -> String | ...
113
+ # ^^^^ -- prefix_location
114
+ # ^ -- vertical_bar_locations[0]
115
+ # ^ -- vertical_bar_locations[1]
116
+ # ^^^ -- dot3_location
117
+ # ```
118
+ class MethodTypesAnnotation < Base
119
+ class Overload = AST::Members::MethodDefinition::Overload
120
+
121
+ attr_reader overloads: Array[Overload]
122
+
123
+ attr_reader vertical_bar_locations: Array[Location]
124
+
125
+ attr_reader dot3_location: Location?
126
+
127
+ def initialize: (location: Location, prefix_location: Location, overloads: Array[Overload], vertical_bar_locations: Array[Location], dot3_location: Location?) -> void
128
+
129
+ def map_type_name: () { (TypeName) -> TypeName } -> self
130
+
131
+ def type_fingerprint: () -> untyped
132
+ end
133
+
134
+ # `@rbs skip -- comment` annotation in leading comments
135
+ #
136
+ class SkipAnnotation < Base
137
+ attr_reader skip_location: Location
138
+ attr_reader comment_location: Location?
139
+
140
+ def initialize: (location: Location, prefix_location: Location, skip_location: Location, comment_location: Location?) -> void
141
+
142
+ def type_fingerprint: () -> untyped
143
+ end
144
+
145
+ # `@rbs return: T -- comment` annotation in leading comments
146
+ #
147
+ # ```
148
+ # @rbs return: String -- Returns a string
149
+ # ^^^ -- prefix_location
150
+ # ^^^^^^ -- return_location
151
+ # ^ -- colon_location
152
+ # ^^^^^^^^^^^^^^^^^^^ -- comment
153
+ # ```
154
+ class ReturnTypeAnnotation < Base
155
+ attr_reader return_location: Location
156
+
157
+ attr_reader colon_location: Location
158
+
159
+ attr_reader return_type: Types::t
160
+
161
+ attr_reader comment_location: Location?
162
+
163
+ def initialize: (
164
+ location: Location,
165
+ prefix_location: Location,
166
+ return_location: Location,
167
+ colon_location: Location,
168
+ return_type: Types::t,
169
+ comment_location: Location?,
170
+ ) -> void
171
+
172
+ def map_type_name: () { (TypeName) -> TypeName } -> self
173
+
174
+ def type_fingerprint: () -> untyped
175
+ end
176
+
177
+ # `[T1, T2, ...]` annotation in trailing comments
178
+ #
179
+ # ```
180
+ # #[String, Integer]
181
+ # ^ -- prefix_location
182
+ # ^ -- comma_locations[0]
183
+ # ^ -- close_bracket_location
184
+ # ```
185
+ #
186
+ class TypeApplicationAnnotation < Base
187
+ attr_reader type_args: Array[Types::t]
188
+
189
+ attr_reader close_bracket_location: Location
190
+
191
+ attr_reader comma_locations: Array[Location]
192
+
193
+ def initialize: (
194
+ location: Location,
195
+ prefix_location: Location,
196
+ type_args: Array[Types::t],
197
+ close_bracket_location: Location,
198
+ comma_locations: Array[Location],
199
+ ) -> void
200
+
201
+ def map_type_name: () { (TypeName) -> TypeName } -> self
202
+
203
+ def type_fingerprint: () -> untyped
204
+ end
205
+
206
+ # `@rbs IVAR-NAME : TYPE` annotation in leading comments
207
+ #
208
+ # ```
209
+ # @rbs @foo : String -- comment
210
+ # ^^^^ -- prefix_location
211
+ # ^^^^ -- ivar_name_location
212
+ # ^ -- colon_location
213
+ # ^^^^^^^^^^ -- comment_location
214
+ # ```
215
+ class InstanceVariableAnnotation < Base
216
+ attr_reader ivar_name: Symbol
217
+
218
+ attr_reader ivar_name_location: Location
219
+
220
+ attr_reader colon_location: Location
221
+
222
+ attr_reader type: Types::t
223
+
224
+ attr_reader comment_location: Location?
225
+
226
+ def initialize: (
227
+ location: Location,
228
+ prefix_location: Location,
229
+ ivar_name: Symbol,
230
+ ivar_name_location: Location,
231
+ colon_location: Location,
232
+ type: Types::t,
233
+ comment_location: Location?,
234
+ ) -> void
235
+
236
+ def map_type_name: () { (TypeName) -> TypeName } -> self
237
+
238
+ def type_fingerprint: () -> untyped
239
+ end
240
+
241
+ # `@rbs module-self: NAME[ARGS] -- comment` annotation in leading comments
242
+ #
243
+ # ```
244
+ # @rbs module-self: _Each[String, Integer] -- comment
245
+ # ^^^^ -- prefix_location
246
+ # ^^^^^^^^^^^ -- keyword_location
247
+ # ^ -- colon_location
248
+ # ^ -- open_bracket_location
249
+ # ^ -- args_comma_locations[0]
250
+ # ^ -- close_bracket_location
251
+ # ^^^^^^^^^^ -- comment_location
252
+ # ```
253
+ #
254
+ class ModuleSelfAnnotation < Base
255
+ attr_reader keyword_location: Location
256
+
257
+ attr_reader colon_location: Location
258
+
259
+ attr_reader name: TypeName
260
+
261
+ attr_reader args: Array[Types::t]
262
+
263
+ attr_reader open_bracket_location: Location?
264
+
265
+ attr_reader close_bracket_location: Location?
266
+
267
+ attr_reader args_comma_locations: Array[Location]
268
+
269
+ attr_reader comment_location: Location?
270
+
271
+ def initialize: (
272
+ location: Location,
273
+ prefix_location: Location,
274
+ keyword_location: Location,
275
+ colon_location: Location,
276
+ name: TypeName,
277
+ args: Array[Types::t],
278
+ open_bracket_location: Location?,
279
+ close_bracket_location: Location?,
280
+ args_comma_locations: Array[Location],
281
+ comment_location: Location?,
282
+ ) -> void
283
+
284
+ def map_type_name: () { (TypeName) -> TypeName } -> self
285
+
286
+ def type_fingerprint: () -> untyped
287
+ end
288
+
289
+ class ParamTypeAnnotation < Base
290
+ attr_reader name_location: Location
291
+
292
+ attr_reader colon_location: Location
293
+
294
+ attr_reader param_type: Types::t
295
+
296
+ attr_reader comment_location: Location?
297
+
298
+ def initialize: (
299
+ location: Location,
300
+ prefix_location: Location,
301
+ name_location: Location,
302
+ colon_location: Location,
303
+ param_type: Types::t,
304
+ comment_location: Location?,
305
+ ) -> void
306
+
307
+ def map_type_name: () { (TypeName) -> TypeName } -> self
308
+
309
+ def type_fingerprint: () -> untyped
310
+
311
+ %a{pure}
312
+ def name: () -> Symbol
313
+ end
314
+
315
+ # `@rbs *name: Type -- comment` annotation in leading comments
316
+ #
317
+ # ```
318
+ # @rbs *a: String -- comment
319
+ # ^^^^ -- prefix_location
320
+ # ^ -- star_location
321
+ # ^ -- name_location
322
+ # ^ -- colon_location
323
+ # ^^^^^^^^^^ -- comment_location
324
+ # ```
325
+ #
326
+ # ```
327
+ # @rbs *: String
328
+ # ^^^^ -- prefix_location
329
+ # ^ -- star_location
330
+ # ^ -- colon_location
331
+ # ```
332
+ #
333
+ class SplatParamTypeAnnotation < Base
334
+ attr_reader star_location: Location
335
+
336
+ attr_reader name_location: Location?
337
+
338
+ attr_reader colon_location: Location
339
+
340
+ attr_reader param_type: Types::t
341
+
342
+ attr_reader comment_location: Location?
343
+
344
+ def initialize: (
345
+ location: Location,
346
+ prefix_location: Location,
347
+ star_location: Location,
348
+ name_location: Location?,
349
+ colon_location: Location,
350
+ param_type: Types::t,
351
+ comment_location: Location?,
352
+ ) -> void
353
+
354
+ def map_type_name: () { (TypeName) -> TypeName } -> self
355
+
356
+ def type_fingerprint: () -> untyped
357
+
358
+ %a{pure}
359
+ def name: () -> Symbol?
360
+ end
361
+
362
+ # `@rbs **name: Type -- comment` annotation in leading comments
363
+ #
364
+ # ```
365
+ # @rbs **b: bool -- comment
366
+ # ^^^^ -- prefix_location
367
+ # ^^ -- star2_location
368
+ # ^ -- name_location
369
+ # ^ -- colon_location
370
+ # ^^^^^^^^^^ -- comment_location
371
+ # ```
372
+ #
373
+ # ```
374
+ # @rbs **: bool
375
+ # ^^^^ -- prefix_location
376
+ # ^^ -- star2_location
377
+ # ^ -- colon_location
378
+ # ```
379
+ #
380
+ class DoubleSplatParamTypeAnnotation < Base
381
+ attr_reader star2_location: Location
382
+
383
+ attr_reader name_location: Location?
384
+
385
+ attr_reader colon_location: Location
386
+
387
+ attr_reader param_type: Types::t
388
+
389
+ attr_reader comment_location: Location?
390
+
391
+ def initialize: (
392
+ location: Location,
393
+ prefix_location: Location,
394
+ star2_location: Location,
395
+ name_location: Location?,
396
+ colon_location: Location,
397
+ param_type: Types::t,
398
+ comment_location: Location?,
399
+ ) -> void
400
+
401
+ def map_type_name: () { (TypeName) -> TypeName } -> self
402
+
403
+ def type_fingerprint: () -> untyped
404
+
405
+ %a{pure}
406
+ def name: () -> Symbol?
407
+ end
408
+
409
+ # `@rbs &name: TYPE -- comment` annotation in leading comments
410
+ #
411
+ # ```
412
+ # @rbs &block: () -> void -- comment
413
+ # ^^^^ -- prefix_location
414
+ # ^ -- ampersand_location
415
+ # ^^^^^ -- name_location
416
+ # ^ -- colon_location
417
+ # ^^^^^^^^^^ -- type_location
418
+ # ^^^^^^^^^^ -- comment_location
419
+ # ```
420
+ #
421
+ # ```
422
+ # @rbs &: ? () -> void
423
+ # ^^^^ -- prefix_location
424
+ # ^ -- ampersand_location
425
+ # ^ -- colon_location
426
+ # ^ -- question_location
427
+ # ^^^^^^^^^^ -- type_location
428
+ # ```
429
+ #
430
+ class BlockParamTypeAnnotation < Base
431
+ attr_reader ampersand_location: Location
432
+
433
+ attr_reader name_location: Location?
434
+
435
+ attr_reader colon_location: Location
436
+
437
+ attr_reader type_location: Location
438
+
439
+ attr_reader type: Types::function
440
+
441
+ attr_reader question_location: Location?
442
+
443
+ attr_reader comment_location: Location?
444
+
445
+ def initialize: (
446
+ location: Location,
447
+ prefix_location: Location,
448
+ ampersand_location: Location,
449
+ name_location: Location?,
450
+ colon_location: Location,
451
+ question_location: Location?,
452
+ type_location: Location,
453
+ type: Types::function,
454
+ comment_location: Location?,
455
+ ) -> void
456
+
457
+ def map_type_name: () { (TypeName) -> TypeName } -> self
458
+
459
+ def type_fingerprint: () -> untyped
460
+
461
+ %a{pure} def name: () -> Symbol?
462
+
463
+ def optional?: () -> bool
464
+
465
+ def required?: () -> bool
466
+ end
467
+ end
468
+ end
469
+ end
470
+ end