rbs-relaxed 3.9.0.1

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 (484) hide show
  1. checksums.yaml +7 -0
  2. data/.github/dependabot.yml +22 -0
  3. data/.github/workflows/comments.yml +35 -0
  4. data/.github/workflows/dependabot.yml +30 -0
  5. data/.github/workflows/ruby.yml +82 -0
  6. data/.github/workflows/typecheck.yml +38 -0
  7. data/.github/workflows/windows.yml +43 -0
  8. data/.gitignore +23 -0
  9. data/.rubocop.yml +68 -0
  10. data/BSDL +22 -0
  11. data/CHANGELOG.md +1868 -0
  12. data/COPYING +56 -0
  13. data/README.md +203 -0
  14. data/Rakefile +417 -0
  15. data/Steepfile +44 -0
  16. data/config.yml +313 -0
  17. data/core/array.rbs +4062 -0
  18. data/core/basic_object.rbs +375 -0
  19. data/core/binding.rbs +150 -0
  20. data/core/builtin.rbs +277 -0
  21. data/core/class.rbs +220 -0
  22. data/core/comparable.rbs +171 -0
  23. data/core/complex.rbs +786 -0
  24. data/core/constants.rbs +96 -0
  25. data/core/data.rbs +415 -0
  26. data/core/dir.rbs +981 -0
  27. data/core/encoding.rbs +1371 -0
  28. data/core/enumerable.rbs +2405 -0
  29. data/core/enumerator/product.rbs +92 -0
  30. data/core/enumerator.rbs +630 -0
  31. data/core/env.rbs +6 -0
  32. data/core/errno.rbs +673 -0
  33. data/core/errors.rbs +760 -0
  34. data/core/exception.rbs +485 -0
  35. data/core/false_class.rbs +82 -0
  36. data/core/fiber.rbs +550 -0
  37. data/core/fiber_error.rbs +11 -0
  38. data/core/file.rbs +2936 -0
  39. data/core/file_test.rbs +331 -0
  40. data/core/float.rbs +1151 -0
  41. data/core/gc.rbs +644 -0
  42. data/core/global_variables.rbs +184 -0
  43. data/core/hash.rbs +1861 -0
  44. data/core/integer.rbs +1413 -0
  45. data/core/io/buffer.rbs +984 -0
  46. data/core/io/wait.rbs +70 -0
  47. data/core/io.rbs +3406 -0
  48. data/core/kernel.rbs +3096 -0
  49. data/core/marshal.rbs +207 -0
  50. data/core/match_data.rbs +635 -0
  51. data/core/math.rbs +729 -0
  52. data/core/method.rbs +386 -0
  53. data/core/module.rbs +1704 -0
  54. data/core/nil_class.rbs +209 -0
  55. data/core/numeric.rbs +818 -0
  56. data/core/object.rbs +110 -0
  57. data/core/object_space/weak_key_map.rbs +166 -0
  58. data/core/object_space.rbs +190 -0
  59. data/core/proc.rbs +868 -0
  60. data/core/process.rbs +2296 -0
  61. data/core/ractor.rbs +1068 -0
  62. data/core/random.rbs +237 -0
  63. data/core/range.rbs +1107 -0
  64. data/core/rational.rbs +531 -0
  65. data/core/rb_config.rbs +88 -0
  66. data/core/rbs/unnamed/argf.rbs +1229 -0
  67. data/core/rbs/unnamed/env_class.rbs +1209 -0
  68. data/core/rbs/unnamed/random.rbs +293 -0
  69. data/core/refinement.rbs +59 -0
  70. data/core/regexp.rbs +1930 -0
  71. data/core/ruby_vm.rbs +765 -0
  72. data/core/rubygems/basic_specification.rbs +6 -0
  73. data/core/rubygems/config_file.rbs +38 -0
  74. data/core/rubygems/dependency_installer.rbs +6 -0
  75. data/core/rubygems/errors.rbs +176 -0
  76. data/core/rubygems/installer.rbs +15 -0
  77. data/core/rubygems/path_support.rbs +6 -0
  78. data/core/rubygems/platform.rbs +7 -0
  79. data/core/rubygems/request_set.rbs +49 -0
  80. data/core/rubygems/requirement.rbs +148 -0
  81. data/core/rubygems/rubygems.rbs +1171 -0
  82. data/core/rubygems/source_list.rbs +15 -0
  83. data/core/rubygems/specification.rbs +23 -0
  84. data/core/rubygems/stream_ui.rbs +5 -0
  85. data/core/rubygems/uninstaller.rbs +10 -0
  86. data/core/rubygems/version.rbs +294 -0
  87. data/core/set.rbs +621 -0
  88. data/core/signal.rbs +100 -0
  89. data/core/string.rbs +3583 -0
  90. data/core/struct.rbs +667 -0
  91. data/core/symbol.rbs +475 -0
  92. data/core/thread.rbs +1765 -0
  93. data/core/thread_group.rbs +79 -0
  94. data/core/time.rbs +1762 -0
  95. data/core/trace_point.rbs +477 -0
  96. data/core/true_class.rbs +98 -0
  97. data/core/unbound_method.rbs +329 -0
  98. data/core/warning.rbs +87 -0
  99. data/docs/CONTRIBUTING.md +106 -0
  100. data/docs/architecture.md +110 -0
  101. data/docs/collection.md +192 -0
  102. data/docs/data_and_struct.md +86 -0
  103. data/docs/gem.md +57 -0
  104. data/docs/rbs_by_example.md +309 -0
  105. data/docs/repo.md +125 -0
  106. data/docs/sigs.md +167 -0
  107. data/docs/stdlib.md +147 -0
  108. data/docs/syntax.md +910 -0
  109. data/docs/tools.md +17 -0
  110. data/exe/rbs +7 -0
  111. data/ext/rbs_extension/extconf.rb +15 -0
  112. data/ext/rbs_extension/lexer.c +2728 -0
  113. data/ext/rbs_extension/lexer.h +179 -0
  114. data/ext/rbs_extension/lexer.re +147 -0
  115. data/ext/rbs_extension/lexstate.c +175 -0
  116. data/ext/rbs_extension/location.c +325 -0
  117. data/ext/rbs_extension/location.h +85 -0
  118. data/ext/rbs_extension/main.c +33 -0
  119. data/ext/rbs_extension/parser.c +2973 -0
  120. data/ext/rbs_extension/parser.h +18 -0
  121. data/ext/rbs_extension/parserstate.c +397 -0
  122. data/ext/rbs_extension/parserstate.h +163 -0
  123. data/ext/rbs_extension/rbs_extension.h +31 -0
  124. data/ext/rbs_extension/unescape.c +32 -0
  125. data/goodcheck.yml +91 -0
  126. data/include/rbs/constants.h +82 -0
  127. data/include/rbs/ruby_objs.h +72 -0
  128. data/include/rbs/util/rbs_constant_pool.h +219 -0
  129. data/include/rbs.h +7 -0
  130. data/lib/rbs/ancestor_graph.rb +92 -0
  131. data/lib/rbs/annotate/annotations.rb +199 -0
  132. data/lib/rbs/annotate/formatter.rb +92 -0
  133. data/lib/rbs/annotate/rdoc_annotator.rb +400 -0
  134. data/lib/rbs/annotate/rdoc_source.rb +131 -0
  135. data/lib/rbs/annotate.rb +8 -0
  136. data/lib/rbs/ast/annotation.rb +29 -0
  137. data/lib/rbs/ast/comment.rb +29 -0
  138. data/lib/rbs/ast/declarations.rb +467 -0
  139. data/lib/rbs/ast/directives.rb +49 -0
  140. data/lib/rbs/ast/members.rb +451 -0
  141. data/lib/rbs/ast/type_param.rb +225 -0
  142. data/lib/rbs/ast/visitor.rb +137 -0
  143. data/lib/rbs/buffer.rb +67 -0
  144. data/lib/rbs/builtin_names.rb +58 -0
  145. data/lib/rbs/cli/colored_io.rb +48 -0
  146. data/lib/rbs/cli/diff.rb +83 -0
  147. data/lib/rbs/cli/validate.rb +357 -0
  148. data/lib/rbs/cli.rb +1223 -0
  149. data/lib/rbs/collection/cleaner.rb +38 -0
  150. data/lib/rbs/collection/config/lockfile.rb +92 -0
  151. data/lib/rbs/collection/config/lockfile_generator.rb +218 -0
  152. data/lib/rbs/collection/config.rb +81 -0
  153. data/lib/rbs/collection/installer.rb +32 -0
  154. data/lib/rbs/collection/sources/base.rb +14 -0
  155. data/lib/rbs/collection/sources/git.rb +258 -0
  156. data/lib/rbs/collection/sources/local.rb +81 -0
  157. data/lib/rbs/collection/sources/rubygems.rb +48 -0
  158. data/lib/rbs/collection/sources/stdlib.rb +50 -0
  159. data/lib/rbs/collection/sources.rb +38 -0
  160. data/lib/rbs/collection.rb +16 -0
  161. data/lib/rbs/constant.rb +28 -0
  162. data/lib/rbs/definition.rb +401 -0
  163. data/lib/rbs/definition_builder/ancestor_builder.rb +620 -0
  164. data/lib/rbs/definition_builder/method_builder.rb +254 -0
  165. data/lib/rbs/definition_builder.rb +845 -0
  166. data/lib/rbs/diff.rb +125 -0
  167. data/lib/rbs/environment/use_map.rb +77 -0
  168. data/lib/rbs/environment.rb +829 -0
  169. data/lib/rbs/environment_loader.rb +173 -0
  170. data/lib/rbs/environment_walker.rb +155 -0
  171. data/lib/rbs/errors.rb +645 -0
  172. data/lib/rbs/factory.rb +18 -0
  173. data/lib/rbs/file_finder.rb +28 -0
  174. data/lib/rbs/location_aux.rb +138 -0
  175. data/lib/rbs/locator.rb +243 -0
  176. data/lib/rbs/method_type.rb +143 -0
  177. data/lib/rbs/namespace.rb +125 -0
  178. data/lib/rbs/parser/lex_result.rb +15 -0
  179. data/lib/rbs/parser/token.rb +23 -0
  180. data/lib/rbs/parser_aux.rb +114 -0
  181. data/lib/rbs/prototype/helpers.rb +140 -0
  182. data/lib/rbs/prototype/node_usage.rb +99 -0
  183. data/lib/rbs/prototype/rb.rb +840 -0
  184. data/lib/rbs/prototype/rbi.rb +641 -0
  185. data/lib/rbs/prototype/runtime/helpers.rb +59 -0
  186. data/lib/rbs/prototype/runtime/reflection.rb +19 -0
  187. data/lib/rbs/prototype/runtime/value_object_generator.rb +279 -0
  188. data/lib/rbs/prototype/runtime.rb +667 -0
  189. data/lib/rbs/repository.rb +127 -0
  190. data/lib/rbs/resolver/constant_resolver.rb +219 -0
  191. data/lib/rbs/resolver/type_name_resolver.rb +91 -0
  192. data/lib/rbs/sorter.rb +198 -0
  193. data/lib/rbs/substitution.rb +83 -0
  194. data/lib/rbs/subtractor.rb +201 -0
  195. data/lib/rbs/test/errors.rb +80 -0
  196. data/lib/rbs/test/guaranteed.rb +30 -0
  197. data/lib/rbs/test/hook.rb +212 -0
  198. data/lib/rbs/test/observer.rb +19 -0
  199. data/lib/rbs/test/setup.rb +84 -0
  200. data/lib/rbs/test/setup_helper.rb +50 -0
  201. data/lib/rbs/test/tester.rb +167 -0
  202. data/lib/rbs/test/type_check.rb +435 -0
  203. data/lib/rbs/test.rb +112 -0
  204. data/lib/rbs/type_alias_dependency.rb +100 -0
  205. data/lib/rbs/type_alias_regularity.rb +126 -0
  206. data/lib/rbs/type_name.rb +109 -0
  207. data/lib/rbs/types.rb +1596 -0
  208. data/lib/rbs/unit_test/convertibles.rb +176 -0
  209. data/lib/rbs/unit_test/spy.rb +138 -0
  210. data/lib/rbs/unit_test/type_assertions.rb +347 -0
  211. data/lib/rbs/unit_test/with_aliases.rb +143 -0
  212. data/lib/rbs/unit_test.rb +6 -0
  213. data/lib/rbs/validator.rb +186 -0
  214. data/lib/rbs/variance_calculator.rb +189 -0
  215. data/lib/rbs/vendorer.rb +71 -0
  216. data/lib/rbs/version.rb +5 -0
  217. data/lib/rbs/writer.rb +424 -0
  218. data/lib/rbs.rb +94 -0
  219. data/lib/rdoc/discover.rb +20 -0
  220. data/lib/rdoc_plugin/parser.rb +163 -0
  221. data/rbs-relaxed.gemspec +48 -0
  222. data/schema/annotation.json +14 -0
  223. data/schema/comment.json +26 -0
  224. data/schema/decls.json +326 -0
  225. data/schema/function.json +87 -0
  226. data/schema/location.json +56 -0
  227. data/schema/members.json +266 -0
  228. data/schema/methodType.json +50 -0
  229. data/schema/typeParam.json +36 -0
  230. data/schema/types.json +317 -0
  231. data/sig/ancestor_builder.rbs +163 -0
  232. data/sig/ancestor_graph.rbs +60 -0
  233. data/sig/annotate/annotations.rbs +102 -0
  234. data/sig/annotate/formatter.rbs +24 -0
  235. data/sig/annotate/rdoc_annotater.rbs +82 -0
  236. data/sig/annotate/rdoc_source.rbs +30 -0
  237. data/sig/annotation.rbs +27 -0
  238. data/sig/buffer.rbs +32 -0
  239. data/sig/builtin_names.rbs +44 -0
  240. data/sig/cli/colored_io.rbs +15 -0
  241. data/sig/cli/diff.rbs +21 -0
  242. data/sig/cli/validate.rbs +43 -0
  243. data/sig/cli.rbs +87 -0
  244. data/sig/collection/cleaner.rbs +13 -0
  245. data/sig/collection/config/lockfile.rbs +74 -0
  246. data/sig/collection/config/lockfile_generator.rbs +66 -0
  247. data/sig/collection/config.rbs +46 -0
  248. data/sig/collection/installer.rbs +17 -0
  249. data/sig/collection/sources.rbs +214 -0
  250. data/sig/collection.rbs +4 -0
  251. data/sig/comment.rbs +26 -0
  252. data/sig/constant.rbs +21 -0
  253. data/sig/declarations.rbs +267 -0
  254. data/sig/definition.rbs +173 -0
  255. data/sig/definition_builder.rbs +165 -0
  256. data/sig/diff.rbs +28 -0
  257. data/sig/directives.rbs +77 -0
  258. data/sig/environment.rbs +279 -0
  259. data/sig/environment_loader.rbs +111 -0
  260. data/sig/environment_walker.rbs +65 -0
  261. data/sig/errors.rbs +405 -0
  262. data/sig/factory.rbs +5 -0
  263. data/sig/file_finder.rbs +28 -0
  264. data/sig/location.rbs +110 -0
  265. data/sig/locator.rbs +58 -0
  266. data/sig/manifest.yaml +7 -0
  267. data/sig/members.rbs +258 -0
  268. data/sig/method_builder.rbs +84 -0
  269. data/sig/method_types.rbs +58 -0
  270. data/sig/namespace.rbs +146 -0
  271. data/sig/parser.rbs +100 -0
  272. data/sig/prototype/helpers.rbs +27 -0
  273. data/sig/prototype/node_usage.rbs +20 -0
  274. data/sig/prototype/rb.rbs +96 -0
  275. data/sig/prototype/rbi.rbs +75 -0
  276. data/sig/prototype/runtime.rbs +182 -0
  277. data/sig/rbs.rbs +21 -0
  278. data/sig/rdoc/rbs.rbs +67 -0
  279. data/sig/repository.rbs +85 -0
  280. data/sig/resolver/constant_resolver.rbs +92 -0
  281. data/sig/resolver/context.rbs +34 -0
  282. data/sig/resolver/type_name_resolver.rbs +35 -0
  283. data/sig/shims/bundler.rbs +38 -0
  284. data/sig/shims/enumerable.rbs +5 -0
  285. data/sig/shims/rubygems.rbs +19 -0
  286. data/sig/sorter.rbs +41 -0
  287. data/sig/substitution.rbs +48 -0
  288. data/sig/subtractor.rbs +37 -0
  289. data/sig/test/errors.rbs +52 -0
  290. data/sig/test/guranteed.rbs +9 -0
  291. data/sig/test/type_check.rbs +19 -0
  292. data/sig/test.rbs +82 -0
  293. data/sig/type_alias_dependency.rbs +53 -0
  294. data/sig/type_alias_regularity.rbs +98 -0
  295. data/sig/type_param.rbs +110 -0
  296. data/sig/typename.rbs +79 -0
  297. data/sig/types.rbs +579 -0
  298. data/sig/unit_test/convertibles.rbs +154 -0
  299. data/sig/unit_test/spy.rbs +30 -0
  300. data/sig/unit_test/type_assertions.rbs +196 -0
  301. data/sig/unit_test/with_aliases.rbs +136 -0
  302. data/sig/use_map.rbs +35 -0
  303. data/sig/util.rbs +9 -0
  304. data/sig/validator.rbs +63 -0
  305. data/sig/variance_calculator.rbs +87 -0
  306. data/sig/vendorer.rbs +51 -0
  307. data/sig/version.rbs +3 -0
  308. data/sig/visitor.rbs +47 -0
  309. data/sig/writer.rbs +127 -0
  310. data/src/constants.c +153 -0
  311. data/src/ruby_objs.c +795 -0
  312. data/src/util/rbs_constant_pool.c +342 -0
  313. data/stdlib/abbrev/0/abbrev.rbs +66 -0
  314. data/stdlib/abbrev/0/array.rbs +26 -0
  315. data/stdlib/base64/0/base64.rbs +355 -0
  316. data/stdlib/benchmark/0/benchmark.rbs +452 -0
  317. data/stdlib/bigdecimal/0/big_decimal.rbs +1629 -0
  318. data/stdlib/bigdecimal-math/0/big_math.rbs +119 -0
  319. data/stdlib/bigdecimal-math/0/manifest.yaml +2 -0
  320. data/stdlib/cgi/0/core.rbs +1285 -0
  321. data/stdlib/cgi/0/manifest.yaml +3 -0
  322. data/stdlib/coverage/0/coverage.rbs +263 -0
  323. data/stdlib/csv/0/csv.rbs +3776 -0
  324. data/stdlib/csv/0/manifest.yaml +3 -0
  325. data/stdlib/date/0/date.rbs +1585 -0
  326. data/stdlib/date/0/date_time.rbs +616 -0
  327. data/stdlib/date/0/time.rbs +26 -0
  328. data/stdlib/dbm/0/dbm.rbs +421 -0
  329. data/stdlib/delegate/0/delegator.rbs +184 -0
  330. data/stdlib/delegate/0/kernel.rbs +47 -0
  331. data/stdlib/delegate/0/simple_delegator.rbs +96 -0
  332. data/stdlib/did_you_mean/0/did_you_mean.rbs +343 -0
  333. data/stdlib/digest/0/digest.rbs +577 -0
  334. data/stdlib/erb/0/erb.rbs +532 -0
  335. data/stdlib/etc/0/etc.rbs +865 -0
  336. data/stdlib/fileutils/0/fileutils.rbs +1734 -0
  337. data/stdlib/find/0/find.rbs +49 -0
  338. data/stdlib/forwardable/0/forwardable.rbs +268 -0
  339. data/stdlib/io-console/0/io-console.rbs +414 -0
  340. data/stdlib/ipaddr/0/ipaddr.rbs +428 -0
  341. data/stdlib/json/0/json.rbs +1916 -0
  342. data/stdlib/kconv/0/kconv.rbs +166 -0
  343. data/stdlib/logger/0/formatter.rbs +45 -0
  344. data/stdlib/logger/0/log_device.rbs +100 -0
  345. data/stdlib/logger/0/logger.rbs +796 -0
  346. data/stdlib/logger/0/manifest.yaml +2 -0
  347. data/stdlib/logger/0/period.rbs +17 -0
  348. data/stdlib/logger/0/severity.rbs +34 -0
  349. data/stdlib/minitest/0/kernel.rbs +42 -0
  350. data/stdlib/minitest/0/minitest/abstract_reporter.rbs +52 -0
  351. data/stdlib/minitest/0/minitest/assertion.rbs +17 -0
  352. data/stdlib/minitest/0/minitest/assertions.rbs +590 -0
  353. data/stdlib/minitest/0/minitest/backtrace_filter.rbs +23 -0
  354. data/stdlib/minitest/0/minitest/bench_spec.rbs +102 -0
  355. data/stdlib/minitest/0/minitest/benchmark.rbs +259 -0
  356. data/stdlib/minitest/0/minitest/composite_reporter.rbs +25 -0
  357. data/stdlib/minitest/0/minitest/compress.rbs +13 -0
  358. data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
  359. data/stdlib/minitest/0/minitest/expectation.rbs +2 -0
  360. data/stdlib/minitest/0/minitest/expectations.rbs +21 -0
  361. data/stdlib/minitest/0/minitest/guard.rbs +64 -0
  362. data/stdlib/minitest/0/minitest/mock.rbs +64 -0
  363. data/stdlib/minitest/0/minitest/parallel/executor.rbs +46 -0
  364. data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +5 -0
  365. data/stdlib/minitest/0/minitest/parallel/test.rbs +3 -0
  366. data/stdlib/minitest/0/minitest/parallel.rbs +2 -0
  367. data/stdlib/minitest/0/minitest/pride_io.rbs +62 -0
  368. data/stdlib/minitest/0/minitest/pride_lol.rbs +19 -0
  369. data/stdlib/minitest/0/minitest/progress_reporter.rbs +11 -0
  370. data/stdlib/minitest/0/minitest/reportable.rbs +53 -0
  371. data/stdlib/minitest/0/minitest/reporter.rbs +5 -0
  372. data/stdlib/minitest/0/minitest/result.rbs +28 -0
  373. data/stdlib/minitest/0/minitest/runnable.rbs +163 -0
  374. data/stdlib/minitest/0/minitest/skip.rbs +6 -0
  375. data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +48 -0
  376. data/stdlib/minitest/0/minitest/spec/dsl.rbs +129 -0
  377. data/stdlib/minitest/0/minitest/spec.rbs +11 -0
  378. data/stdlib/minitest/0/minitest/statistics_reporter.rbs +81 -0
  379. data/stdlib/minitest/0/minitest/summary_reporter.rbs +18 -0
  380. data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +92 -0
  381. data/stdlib/minitest/0/minitest/test.rbs +69 -0
  382. data/stdlib/minitest/0/minitest/unexpected_error.rbs +12 -0
  383. data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
  384. data/stdlib/minitest/0/minitest/unit/test_case.rbs +3 -0
  385. data/stdlib/minitest/0/minitest/unit.rbs +4 -0
  386. data/stdlib/minitest/0/minitest.rbs +115 -0
  387. data/stdlib/monitor/0/monitor.rbs +363 -0
  388. data/stdlib/mutex_m/0/mutex_m.rbs +104 -0
  389. data/stdlib/net-http/0/manifest.yaml +3 -0
  390. data/stdlib/net-http/0/net-http.rbs +5552 -0
  391. data/stdlib/net-protocol/0/manifest.yaml +2 -0
  392. data/stdlib/net-protocol/0/net-protocol.rbs +56 -0
  393. data/stdlib/net-smtp/0/manifest.yaml +2 -0
  394. data/stdlib/net-smtp/0/net-smtp.rbs +55 -0
  395. data/stdlib/nkf/0/nkf.rbs +402 -0
  396. data/stdlib/objspace/0/objspace.rbs +487 -0
  397. data/stdlib/observable/0/observable.rbs +217 -0
  398. data/stdlib/open-uri/0/manifest.yaml +4 -0
  399. data/stdlib/open-uri/0/open-uri.rbs +393 -0
  400. data/stdlib/open3/0/open3.rbs +147 -0
  401. data/stdlib/openssl/0/manifest.yaml +3 -0
  402. data/stdlib/openssl/0/openssl.rbs +12113 -0
  403. data/stdlib/optparse/0/optparse.rbs +1725 -0
  404. data/stdlib/pathname/0/pathname.rbs +1406 -0
  405. data/stdlib/pp/0/manifest.yaml +2 -0
  406. data/stdlib/pp/0/pp.rbs +300 -0
  407. data/stdlib/prettyprint/0/prettyprint.rbs +383 -0
  408. data/stdlib/pstore/0/pstore.rbs +603 -0
  409. data/stdlib/psych/0/core_ext.rbs +12 -0
  410. data/stdlib/psych/0/dbm.rbs +237 -0
  411. data/stdlib/psych/0/manifest.yaml +3 -0
  412. data/stdlib/psych/0/psych.rbs +402 -0
  413. data/stdlib/psych/0/store.rbs +59 -0
  414. data/stdlib/pty/0/pty.rbs +237 -0
  415. data/stdlib/rdoc/0/code_object.rbs +51 -0
  416. data/stdlib/rdoc/0/comment.rbs +59 -0
  417. data/stdlib/rdoc/0/context.rbs +153 -0
  418. data/stdlib/rdoc/0/markup.rbs +117 -0
  419. data/stdlib/rdoc/0/parser.rbs +56 -0
  420. data/stdlib/rdoc/0/rdoc.rbs +391 -0
  421. data/stdlib/rdoc/0/ri.rbs +17 -0
  422. data/stdlib/rdoc/0/store.rbs +48 -0
  423. data/stdlib/rdoc/0/top_level.rbs +97 -0
  424. data/stdlib/resolv/0/manifest.yaml +3 -0
  425. data/stdlib/resolv/0/resolv.rbs +1830 -0
  426. data/stdlib/ripper/0/ripper.rbs +1648 -0
  427. data/stdlib/securerandom/0/securerandom.rbs +62 -0
  428. data/stdlib/shellwords/0/shellwords.rbs +229 -0
  429. data/stdlib/singleton/0/singleton.rbs +131 -0
  430. data/stdlib/socket/0/addrinfo.rbs +666 -0
  431. data/stdlib/socket/0/basic_socket.rbs +590 -0
  432. data/stdlib/socket/0/constants.rbs +2295 -0
  433. data/stdlib/socket/0/ip_socket.rbs +92 -0
  434. data/stdlib/socket/0/socket.rbs +4157 -0
  435. data/stdlib/socket/0/socket_error.rbs +5 -0
  436. data/stdlib/socket/0/tcp_server.rbs +192 -0
  437. data/stdlib/socket/0/tcp_socket.rbs +79 -0
  438. data/stdlib/socket/0/udp_socket.rbs +133 -0
  439. data/stdlib/socket/0/unix_server.rbs +169 -0
  440. data/stdlib/socket/0/unix_socket.rbs +172 -0
  441. data/stdlib/stringio/0/stringio.rbs +567 -0
  442. data/stdlib/strscan/0/string_scanner.rbs +1627 -0
  443. data/stdlib/tempfile/0/tempfile.rbs +479 -0
  444. data/stdlib/time/0/time.rbs +432 -0
  445. data/stdlib/timeout/0/timeout.rbs +81 -0
  446. data/stdlib/tmpdir/0/tmpdir.rbs +69 -0
  447. data/stdlib/tsort/0/cyclic.rbs +5 -0
  448. data/stdlib/tsort/0/interfaces.rbs +20 -0
  449. data/stdlib/tsort/0/tsort.rbs +409 -0
  450. data/stdlib/uri/0/common.rbs +582 -0
  451. data/stdlib/uri/0/file.rbs +118 -0
  452. data/stdlib/uri/0/ftp.rbs +13 -0
  453. data/stdlib/uri/0/generic.rbs +1108 -0
  454. data/stdlib/uri/0/http.rbs +104 -0
  455. data/stdlib/uri/0/https.rbs +14 -0
  456. data/stdlib/uri/0/ldap.rbs +230 -0
  457. data/stdlib/uri/0/ldaps.rbs +14 -0
  458. data/stdlib/uri/0/mailto.rbs +92 -0
  459. data/stdlib/uri/0/rfc2396_parser.rbs +189 -0
  460. data/stdlib/uri/0/rfc3986_parser.rbs +2 -0
  461. data/stdlib/uri/0/ws.rbs +13 -0
  462. data/stdlib/uri/0/wss.rbs +9 -0
  463. data/stdlib/yaml/0/manifest.yaml +2 -0
  464. data/stdlib/yaml/0/yaml.rbs +1 -0
  465. data/stdlib/zlib/0/buf_error.rbs +10 -0
  466. data/stdlib/zlib/0/data_error.rbs +10 -0
  467. data/stdlib/zlib/0/deflate.rbs +210 -0
  468. data/stdlib/zlib/0/error.rbs +20 -0
  469. data/stdlib/zlib/0/gzip_file/crc_error.rbs +12 -0
  470. data/stdlib/zlib/0/gzip_file/error.rbs +23 -0
  471. data/stdlib/zlib/0/gzip_file/length_error.rbs +12 -0
  472. data/stdlib/zlib/0/gzip_file/no_footer.rbs +11 -0
  473. data/stdlib/zlib/0/gzip_file.rbs +156 -0
  474. data/stdlib/zlib/0/gzip_reader.rbs +293 -0
  475. data/stdlib/zlib/0/gzip_writer.rbs +166 -0
  476. data/stdlib/zlib/0/inflate.rbs +180 -0
  477. data/stdlib/zlib/0/mem_error.rbs +10 -0
  478. data/stdlib/zlib/0/need_dict.rbs +13 -0
  479. data/stdlib/zlib/0/stream_end.rbs +11 -0
  480. data/stdlib/zlib/0/stream_error.rbs +11 -0
  481. data/stdlib/zlib/0/version_error.rbs +11 -0
  482. data/stdlib/zlib/0/zlib.rbs +449 -0
  483. data/stdlib/zlib/0/zstream.rbs +200 -0
  484. metadata +532 -0
data/sig/members.rbs ADDED
@@ -0,0 +1,258 @@
1
+ module RBS
2
+ module AST
3
+ module Members
4
+ type t = MethodDefinition
5
+ | InstanceVariable | ClassInstanceVariable | ClassVariable
6
+ | Include | Extend | Prepend
7
+ | AttrReader | AttrWriter | AttrAccessor
8
+ | Public | Private
9
+ | Alias
10
+
11
+ # Base class for members.
12
+ class Base
13
+ end
14
+
15
+ type visibility = :public | :private
16
+
17
+ class MethodDefinition < Base
18
+ class Overload
19
+ attr_reader method_type: MethodType
20
+
21
+ attr_reader annotations: Array[Annotation]
22
+
23
+ def initialize: (method_type: MethodType, annotations: Array[Annotation]) -> void
24
+
25
+ def ==: (untyped) -> bool
26
+
27
+ def hash: () -> Integer
28
+
29
+ alias eql? ==
30
+
31
+ def update: (?annotations: Array[Annotation], ?method_type: MethodType) -> Overload
32
+
33
+ def sub: (Substitution) -> Overload
34
+
35
+ include _ToJson
36
+ end
37
+
38
+ type kind = :instance | :singleton | :singleton_instance
39
+
40
+ # def foo: () -> void
41
+ # ^^^ keyword
42
+ # ^^^ name
43
+ #
44
+ # private def self.bar: () -> void | ...
45
+ # ^^^^^^^ visibility
46
+ # ^^^ keyword
47
+ # ^^^^^ kind
48
+ # ^^^ name
49
+ # ^^^ overloading
50
+ #
51
+ type loc = Location[:keyword | :name, :kind | :overloading | :visibility]
52
+
53
+ attr_reader name: Symbol
54
+ attr_reader kind: kind
55
+ attr_reader overloads: Array[Overload]
56
+ attr_reader annotations: Array[Annotation]
57
+ attr_reader location: loc?
58
+ attr_reader comment: Comment?
59
+ attr_reader overloading: bool
60
+ attr_reader visibility: visibility?
61
+
62
+ def initialize: (name: Symbol, kind: kind, overloads: Array[Overload], annotations: Array[Annotation], location: loc?, comment: Comment?, overloading: bool, visibility: visibility?) -> void
63
+
64
+ include _HashEqual
65
+ include _ToJson
66
+
67
+ # Returns true if the `def` is to define instance method
68
+ def instance?: () -> bool
69
+
70
+ # Returns true if the `def` is to define singleton method
71
+ def singleton?: () -> bool
72
+
73
+ # Returns true if the `def` is overloading (== with `...`)
74
+ #
75
+ def overloading?: () -> bool
76
+
77
+ def update: (?name: Symbol, ?kind: kind, ?overloads: Array[Overload], ?annotations: Array[Annotation], ?location: loc?, ?comment: Comment?, ?overloading: bool, ?visibility: visibility?) -> MethodDefinition
78
+ end
79
+
80
+ module Var
81
+ # @foo: String
82
+ # ^^^^ name
83
+ # ^ colon
84
+ #
85
+ # self.@all: Array[String]
86
+ # ^^^^^ kind
87
+ # ^^^^ name
88
+ # ^ colon
89
+ #
90
+ type loc = Location[:name | :colon, :kind]
91
+
92
+ attr_reader name: Symbol
93
+ attr_reader type: Types::t
94
+ attr_reader location: loc?
95
+ attr_reader comment: Comment?
96
+
97
+ def initialize: (name: Symbol, type: Types::t, location: loc?, comment: Comment?) -> void
98
+
99
+ include _HashEqual
100
+ end
101
+
102
+ class InstanceVariable < Base
103
+ include Var
104
+ include _ToJson
105
+ end
106
+
107
+ class ClassInstanceVariable < Base
108
+ include Var
109
+ include _ToJson
110
+ end
111
+
112
+ class ClassVariable < Base
113
+ include Var
114
+ include _ToJson
115
+ end
116
+
117
+ module Mixin
118
+ # include Foo
119
+ # ^^^^^^^ keyword
120
+ # ^^^ name
121
+ #
122
+ # include Array[String]
123
+ # ^^^^^^^ keyword
124
+ # ^^^^^ name
125
+ # ^^^^^^^^ args
126
+ #
127
+ type loc = Location[:name | :keyword, :args]
128
+
129
+ attr_reader name: TypeName
130
+ attr_reader args: Array[Types::t]
131
+ attr_reader annotations: Array[Annotation]
132
+ attr_reader location: loc?
133
+ attr_reader comment: Comment?
134
+
135
+ def initialize: (name: TypeName, args: Array[Types::t], annotations: Array[Annotation], location: loc?, comment: Comment?) -> void
136
+
137
+ include _HashEqual
138
+ end
139
+
140
+ class Include < Base
141
+ include Mixin
142
+ include _ToJson
143
+ end
144
+
145
+ class Extend < Base
146
+ include Mixin
147
+ include _ToJson
148
+ end
149
+
150
+ class Prepend < Base
151
+ include Mixin
152
+ include _ToJson
153
+ end
154
+
155
+ module Attribute
156
+ type kind = :instance | :singleton
157
+
158
+ # attr_reader name: String
159
+ # ^^^^^^^^^^^ keyword
160
+ # ^^^^ name
161
+ # ^ colon
162
+ #
163
+ # public attr_accessor self.name (@foo) : String
164
+ # ^^^^^^ visibility
165
+ # ^^^^^^^^^^^^^ keyword
166
+ # ^^^^^ kind
167
+ # ^^^^ name
168
+ # ^^^^^^ ivar
169
+ # ^^^^ ivar_name
170
+ # ^ colon
171
+ #
172
+ type loc = Location[:keyword | :name | :colon, :kind | :ivar | :ivar_name | :visibility]
173
+
174
+ attr_reader name: Symbol
175
+ attr_reader type: Types::t
176
+ attr_reader kind: kind
177
+ attr_reader ivar_name: Symbol | false | nil
178
+ attr_reader annotations: Array[Annotation]
179
+ attr_reader location: loc?
180
+ attr_reader comment: Comment?
181
+ attr_reader visibility: visibility?
182
+
183
+ def initialize: (name: Symbol, type: Types::t, ivar_name: Symbol | false | nil, kind: kind, annotations: Array[Annotation], location: loc?, comment: Comment?, ?visibility: visibility?) -> void
184
+
185
+ include _HashEqual
186
+
187
+ def update: (?name: Symbol, ?type: Types::t, ?ivar_name: Symbol | false | nil, ?kind: kind, ?annotations: Array[Annotation], ?location: loc?, ?comment: Comment?, ?visibility: visibility?) -> instance
188
+ end
189
+
190
+ class AttrReader < Base
191
+ include Attribute
192
+ include _ToJson
193
+ end
194
+
195
+ class AttrAccessor < Base
196
+ include Attribute
197
+ include _ToJson
198
+ end
199
+
200
+ class AttrWriter < Base
201
+ include Attribute
202
+ include _ToJson
203
+ end
204
+
205
+ module LocationOnly
206
+ attr_reader location: Location[bot, bot]?
207
+
208
+ def initialize: (location: Location[bot, bot]?) -> void
209
+
210
+ include _HashEqual
211
+ end
212
+
213
+ class Public < Base
214
+ include LocationOnly
215
+ include _ToJson
216
+ end
217
+
218
+ class Private < Base
219
+ include LocationOnly
220
+ include _ToJson
221
+ end
222
+
223
+ class Alias < Base
224
+ type kind = :instance | :singleton
225
+
226
+ # alias foo bar
227
+ # ^^^^^ keyword
228
+ # ^^^ new_name
229
+ # ^^^ old_name
230
+ #
231
+ # alias self.foo self.bar
232
+ # ^^^^^ keyword
233
+ # ^^^^^ new_kind
234
+ # ^^^ new_name
235
+ # ^^^^^ old_kind
236
+ # ^^^ old_name
237
+ #
238
+ type loc = Location[:keyword | :new_name | :old_name, :new_kind | :old_kind]
239
+
240
+ attr_reader new_name: Symbol
241
+ attr_reader old_name: Symbol
242
+ attr_reader kind: kind
243
+ attr_reader annotations: Array[Annotation]
244
+ attr_reader location: loc?
245
+ attr_reader comment: Comment?
246
+
247
+ def initialize: (new_name: Symbol, old_name: Symbol, kind: kind, annotations: Array[Annotation], location: loc?, comment: Comment?) -> void
248
+
249
+ include _HashEqual
250
+ include _ToJson
251
+
252
+ def instance?: () -> bool
253
+
254
+ def singleton?: () -> bool
255
+ end
256
+ end
257
+ end
258
+ end
@@ -0,0 +1,84 @@
1
+ module RBS
2
+ class DefinitionBuilder
3
+ # MethodBuilder calculates the sequence of methods available on given type
4
+ #
5
+ # The sequence are sorted topologically.
6
+ #
7
+ class MethodBuilder
8
+ # Set of methods defined in a type.
9
+ #
10
+ class Methods
11
+ type instance_type = Types::ClassInstance | Types::ClassSingleton | Types::Interface
12
+
13
+ # Definition of a method in the type
14
+ #
15
+ # The Definition object allows invalid method definition so that more than one _original_ definitions may exist.
16
+ #
17
+ class Definition
18
+ type original = AST::Members::MethodDefinition | AST::Members::Alias | AST::Members::AttrAccessor | AST::Members::AttrWriter | AST::Members::AttrReader
19
+
20
+ type accessibility = RBS::Definition::accessibility
21
+
22
+ attr_reader name: Symbol
23
+ attr_reader type: instance_type
24
+ attr_reader originals: Array[original]
25
+ attr_reader overloads: Array[AST::Members::MethodDefinition]
26
+ attr_reader accessibilities: Array[accessibility]
27
+
28
+ def initialize: (name: Symbol, type: instance_type, originals: Array[original], overloads: Array[AST::Members::MethodDefinition], accessibilities: Array[accessibility]) -> void
29
+
30
+ def original: () -> original?
31
+
32
+ def accessibility: () -> accessibility
33
+
34
+ def self.empty: (name: Symbol, type: instance_type) -> Definition
35
+ end
36
+
37
+ attr_reader type: instance_type
38
+ attr_reader methods: Hash[Symbol, Definition]
39
+
40
+ def initialize: (type: instance_type) -> void
41
+
42
+ def validate!: () -> self
43
+
44
+ def each: () { (Definition) -> void } -> void
45
+ | () -> Enumerator[Definition, void]
46
+
47
+ class Sorter
48
+ include TSort[Definition]
49
+
50
+ attr_reader methods: Hash[Symbol, Definition]
51
+
52
+ def initialize: (Hash[Symbol, Definition]) -> void
53
+
54
+ def tsort_each_node: { (Definition) -> void } -> void
55
+
56
+ def tsort_each_child: (Definition) { (Definition) -> void } -> void
57
+ end
58
+ end
59
+
60
+ attr_reader env: Environment
61
+ attr_reader instance_methods: Hash[TypeName, Methods]
62
+ attr_reader singleton_methods: Hash[TypeName, Methods]
63
+ attr_reader interface_methods: Hash[TypeName, Methods]
64
+
65
+ def initialize: (env: Environment) -> void
66
+
67
+ def build_instance: (TypeName) -> Methods
68
+
69
+ def build_singleton: (TypeName) -> Methods
70
+
71
+ def build_interface: (TypeName) -> Methods
72
+
73
+ def build_alias: (Methods, Methods::instance_type, member: AST::Members::Alias) -> void
74
+
75
+ def build_attribute: (Methods, Methods::instance_type, member: AST::Members::AttrAccessor | AST::Members::AttrReader | AST::Members::AttrWriter, accessibility: Definition::accessibility) -> void
76
+
77
+ def build_method: (Methods, Methods::instance_type, member: AST::Members::MethodDefinition, accessibility: Definition::accessibility) -> void
78
+
79
+ def each_member_with_accessibility: (Array[AST::Members::t | AST::Declarations::t], ?accessibility: Definition::accessibility) { (AST::Members::t | AST::Declarations::t, Definition::accessibility) -> void } -> void
80
+
81
+ def update: (env: Environment, except: _Each[TypeName]) -> MethodBuilder
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,58 @@
1
+ module RBS
2
+ class MethodType
3
+ # () -> void
4
+ # ^^^^^^^^^^ type
5
+ #
6
+ # [A] () { () -> A } -> A
7
+ # ^^^ type_params
8
+ # ^^^^^^^^^^^^^^^^^^^ type
9
+ #
10
+ type def_loc = Location[:type, :type_params]
11
+
12
+ type attr_loc = AST::Members::Attribute::loc
13
+
14
+ type loc = def_loc | attr_loc
15
+
16
+ attr_reader type_params: Array[AST::TypeParam]
17
+ attr_reader type: Types::function
18
+ attr_reader block: Types::Block?
19
+ attr_reader location: loc?
20
+
21
+ def initialize: (type_params: Array[AST::TypeParam], type: Types::function, block: Types::Block?, location: loc?) -> void
22
+
23
+ def ==: (untyped other) -> bool
24
+
25
+ include _ToJson
26
+
27
+ # Substitute type variables to some types.
28
+ # Takes care of type parameter bounds.
29
+ #
30
+ def sub: (Substitution) -> MethodType
31
+
32
+ def update: (?type_params: Array[AST::TypeParam], ?type: Types::function, ?block: Types::Block?, ?location: loc?) -> MethodType
33
+
34
+ def free_variables: (?Set[Symbol] set) -> Set[Symbol]
35
+
36
+ # Apply the mapping included in the MethodType.
37
+ #
38
+ # Note that type bound in generics parameter is not handled by this method.
39
+ # You may want to use `#map_type_bound` explicitly, or `#sub` for simple substitution.
40
+ #
41
+ def map_type: () { (Types::t) -> Types::t } -> MethodType
42
+
43
+ def map_type_bound: () { (Types::t) -> Types::t } -> MethodType
44
+
45
+ def each_type: () { (Types::t) -> void } -> void
46
+ | () -> Enumerator[Types::t, void]
47
+
48
+ def to_s: () -> String
49
+
50
+ def type_param_names: () -> Array[Symbol]
51
+
52
+ def has_self_type?: () -> bool
53
+
54
+ def has_classish_type?: () -> bool
55
+
56
+ def with_nonreturn_void?: () -> bool
57
+ end
58
+ end
data/sig/namespace.rbs ADDED
@@ -0,0 +1,146 @@
1
+ module RBS
2
+ # Namespace instance represents a _prefix of module names_.
3
+ #
4
+ # ```
5
+ # vvvvvvvvvvvvvv TypeName
6
+ # RBS::Namespace
7
+ # ^^^^^ Namespace
8
+ #
9
+ # vvvvvvvvvv TypeName
10
+ # RBS::Types
11
+ # ^^^^^ Namespace
12
+ #
13
+ # vvvvvvvvvvvvvvvvv TypeName
14
+ # RBS::Types::Union
15
+ # ^^^^^^^^^^^^ Namespace
16
+ # ```
17
+ #
18
+ # Note that `Namespace` is an RBS specific concept and there is no corresponding concept in Ruby.
19
+ #
20
+ # There are _absolute_ and _relative_ namespaces.
21
+ #
22
+ # ```
23
+ # Namespace(::RBS::) # Absolute namespace
24
+ # Namespace( RBS::) # Relative namespace
25
+ # ```
26
+ #
27
+ # It also defines two special namespaces.
28
+ #
29
+ # ```
30
+ # :: # _Root_ namespace
31
+ # # _Empty_ namespace
32
+ # ```
33
+ #
34
+ class Namespace
35
+ attr_reader path: Array[Symbol]
36
+
37
+ def initialize: (path: Array[Symbol], absolute: boolish) -> void
38
+
39
+ @absolute: bool
40
+
41
+ @parent: Namespace?
42
+
43
+ self.@root: Namespace?
44
+
45
+ self.@empty: Namespace?
46
+
47
+ # Returns new _empty_ namespace.
48
+ def self.empty: () -> Namespace
49
+
50
+ # Returns new _root_ namespace.
51
+ def self.root: () -> Namespace
52
+
53
+ # Concat two namespaces.
54
+ #
55
+ # ```rb
56
+ # Namespace("Foo::") + Namespace("Bar::") # => Foo::Bar::
57
+ # Namespace("::Foo::") + Namespace("Bar::") # => ::Foo::Bar::
58
+ # ```
59
+ #
60
+ # If `other` is an absolute namespace, it returns `other`.
61
+ #
62
+ # ```rb
63
+ # Namespace("Foo::") + Namespace("::Bar::") # => ::Bar::
64
+ # ```
65
+ def +: (Namespace other) -> Namespace
66
+
67
+ # Add one path component to self.
68
+ #
69
+ # ```rb
70
+ # Namespace("Foo::").append(:Bar) # => Namespace("Foo::Bar::")
71
+ # ```
72
+ def append: (Symbol component) -> Namespace
73
+
74
+ # Returns parent namespace.
75
+ # Raises error there is no parent namespace.
76
+ #
77
+ # ```rb
78
+ # Namespace("::A").parent # => Namespace("::")
79
+ # Namespace("::").parent # raises error
80
+ # Namespace("A::B").parent # => Namespace("A")
81
+ # ```
82
+ def parent: () -> Namespace
83
+
84
+ # Returns true if self is absolute namespace.
85
+ def absolute?: () -> bool
86
+
87
+ # Returns true if self is relative namespace.
88
+ def relative?: () -> bool
89
+
90
+ # Returns absolute namespace.
91
+ #
92
+ # ```rb
93
+ # Namespace("A").absolute! # => Namespace("::A")
94
+ # Namespace("::A").absolute! # => Namespace("::A")
95
+ # ```
96
+ def absolute!: () -> Namespace
97
+
98
+ # Returns _relative_ namespace.
99
+ #
100
+ def relative!: () -> Namespace
101
+
102
+ def empty?: () -> bool
103
+
104
+ # Equality is defined by its structure.
105
+ #
106
+ def ==: (untyped other) -> bool
107
+
108
+ alias eql? ==
109
+
110
+ # Hash is defined based on its structure.
111
+ #
112
+ def hash: () -> Integer
113
+
114
+ # Returns a pair of parent namespace and a symbol of last component.
115
+ #
116
+ # ```rb
117
+ # Namespace("::A::B::C").split # => [Namespace("::A::B::"), :C]
118
+ # ```
119
+ def split: () -> [Namespace, Symbol]?
120
+
121
+ def to_s: () -> String
122
+
123
+ # Construct a type name which points to the same name type.
124
+ #
125
+ def to_type_name: () -> TypeName
126
+
127
+ def self.parse: (String string) -> Namespace
128
+
129
+ # Iterate over Namespace for each element in ascending order.
130
+ #
131
+ # ```rb
132
+ # Namespace.parse("::A::B::C").ascend {|ns| p ns }
133
+ # # => ::A::B::C
134
+ # # => ::A::B
135
+ # # => ::A
136
+ # # => ::(root)
137
+ # ```
138
+ def ascend: () { (Namespace) -> void } -> void
139
+ | () -> Enumerator[Namespace, void]
140
+ end
141
+ end
142
+
143
+ module Kernel
144
+ # Deprecated: Use `RBS::Namespace.parse` instead
145
+ %a{steep:deprecated} def Namespace: (String) -> RBS::Namespace
146
+ end
data/sig/parser.rbs ADDED
@@ -0,0 +1,100 @@
1
+ module RBS
2
+ class Parser
3
+ # Result of `Parser.lex`
4
+ class LexResult
5
+ attr_reader buffer: Buffer
6
+ attr_reader value: Array[Token]
7
+
8
+ def initialize: (buffer: Buffer, value: Array[Token]) -> void
9
+ end
10
+
11
+ # Represents a token per result of `Parser.lex`.
12
+ class Token
13
+ attr_reader type: Symbol
14
+ attr_reader location: Location[untyped, untyped]
15
+
16
+ def initialize: (type: Symbol, location: Location[untyped, untyped]) -> void
17
+ def value: () -> String
18
+ def comment?: () -> bool
19
+ end
20
+
21
+ # Parse a method type and return it
22
+ #
23
+ # When `range` keyword is specified, it starts parsing from the `begin` to the `end` of the range.
24
+ #
25
+ # ```ruby
26
+ # RBS::Parser.parse_method_type("() -> void") # => `() -> void`
27
+ # RBS::Parser.parse_method_type("() -> void", range: 0...) # => `() -> void`
28
+ # RBS::Parser.parse_method_type("() -> void () -> String", range: 11...) # => `() -> String`
29
+ # RBS::Parser.parse_method_type("() -> void () -> String", range: 23...) # => nil
30
+ # ```
31
+ #
32
+ # When `require_eof` is `true`, an error is raised if more tokens are left in the input.
33
+ # (Defaults to `false`.)
34
+ #
35
+ # ```ruby
36
+ # RBS::Parser.parse_method_type("() -> void () -> String", require_eof: false) # => `() -> void`
37
+ # RBS::Parser.parse_method_type("() -> void () -> String", require_eof: true) # => Raises an error
38
+ #
39
+ # RBS::Parser.parse_method_type("", require_eof: true) # => nil
40
+ # ```
41
+ #
42
+ def self.parse_method_type: (Buffer | String, ?range: Range[Integer?], ?variables: Array[Symbol], ?require_eof: bool) -> MethodType?
43
+
44
+ # Parse a type and return it
45
+ #
46
+ # When `range` keyword is specified, it starts parsing from the `begin` to the `end` of the range.
47
+ #
48
+ # ```ruby
49
+ # RBS::Parser.parse_type("String") # => `String`
50
+ # RBS::Parser.parse_type("String", range: 0...) # => `String`
51
+ # RBS::Parser.parse_type("String Integer", pos: 7...) # => `Integer`
52
+ # RBS::Parser.parse_type("String Integer", pos: 14...) # => nil
53
+ # ```
54
+ #
55
+ # When `require_eof` is `true`, an error is raised if more tokens are left in the input.
56
+ # (Defaults to `false`.)
57
+ #
58
+ # ```ruby
59
+ # RBS::Parser.parse_type("String untyped", require_eof: false) # => `String`
60
+ # RBS::Parser.parse_type("String untyped", require_eof: true) # => Raises an error
61
+ #
62
+ # RBS::Parser.parse_type("", require_eof: true) # => nil
63
+ # ```
64
+ #
65
+ def self.parse_type: (Buffer | String, ?range: Range[Integer?], ?variables: Array[Symbol], ?require_eof: bool) -> Types::t?
66
+
67
+ # Parse whole RBS file and return an array of declarations
68
+ #
69
+ def self.parse_signature: (Buffer | String) -> [Buffer, Array[AST::Directives::t], Array[AST::Declarations::t]]
70
+
71
+ # Returns the magic comment from the buffer
72
+ #
73
+ def self.magic_comment: (Buffer) -> AST::Directives::ResolveTypeNames?
74
+
75
+ # Parse whole RBS file and return result.
76
+ #
77
+ # ```ruby
78
+ # RBS::Parser.lex("# Comment\nmodule A\nend\n").value.map(&:type)
79
+ # # => [:tLINECOMMENT, :kMODULE, :tUIDENT, :kEND, :pEOF]
80
+ # ```
81
+ def self.lex: (Buffer | String) -> LexResult
82
+
83
+ KEYWORDS: Hash[String, bot]
84
+
85
+ private
86
+
87
+ def self.buffer: (String | Buffer source) -> Buffer
88
+
89
+ def self._parse_type: (Buffer, Integer start_pos, Integer end_pos, Array[Symbol] variables, bool require_eof) -> Types::t?
90
+
91
+ def self._parse_method_type: (Buffer, Integer start_pos, Integer end_pos, Array[Symbol] variables, bool require_eof) -> MethodType?
92
+
93
+ def self._parse_signature: (Buffer, Integer start_pos, Integer end_pos) -> [Array[AST::Directives::t], Array[AST::Declarations::t]]
94
+
95
+ def self._lex: (Buffer, Integer end_pos) -> Array[[Symbol, Location[untyped, untyped]]]
96
+
97
+ class LocatedValue
98
+ end
99
+ end
100
+ end
@@ -0,0 +1,27 @@
1
+ module RBS
2
+ module Prototype
3
+ module Helpers
4
+ type node = RubyVM::AbstractSyntaxTree::Node
5
+
6
+ def block_from_body: (node) -> Types::Block?
7
+
8
+ def each_node: (Array[untyped] nodes) { (node) -> void } -> void
9
+
10
+ def each_child: (node) { (node child) -> void } -> void
11
+
12
+ def any_node?: (node, ?nodes: Array[node]) { (node) -> bool } -> Array[node]?
13
+
14
+ def keyword_hash?: (node) -> bool
15
+
16
+ # Returns a symbol if the node is a symbol literal node
17
+ #
18
+ def symbol_literal_node?: (node) -> Symbol?
19
+
20
+ def args_from_node: (node?) -> Array[untyped]
21
+
22
+ def untyped: () -> Types::Bases::Any
23
+
24
+ @untyped: Types::Bases::Any
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,20 @@
1
+ module RBS
2
+ module Prototype
3
+ class NodeUsage
4
+ include Helpers
5
+
6
+ type node = RubyVM::AbstractSyntaxTree::Node
7
+
8
+ attr_reader node: node
9
+
10
+ attr_reader conditional_nodes: Set[node]
11
+
12
+ def initialize: (node) -> void
13
+
14
+ def calculate: (node, conditional: bool) -> void
15
+
16
+ def each_conditional_node: () { (node) -> void } -> void
17
+ | () -> Enumerator[node, void]
18
+ end
19
+ end
20
+ end