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
@@ -0,0 +1,131 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RBS
4
+ module Annotate
5
+ class RDocSource
6
+ attr_accessor :with_system_dir, :with_gems_dir, :with_site_dir, :with_home_dir
7
+
8
+ attr_reader :extra_dirs
9
+
10
+ attr_reader :stores
11
+
12
+ def initialize
13
+ self.with_system_dir = true
14
+ self.with_gems_dir = false
15
+ self.with_site_dir = false
16
+ self.with_home_dir = false
17
+
18
+ @extra_dirs = []
19
+ @stores = []
20
+ end
21
+
22
+ def load
23
+ @stores.clear()
24
+
25
+ RDoc::RI::Paths.each(with_system_dir, with_site_dir, with_home_dir, with_gems_dir ? :latest : false, *extra_dirs.map(&:to_s)) do |path, type|
26
+ store = RDoc::Store.new(path, type)
27
+ store.load_all
28
+
29
+ @stores << store
30
+ end
31
+ end
32
+
33
+ def find_class(typename)
34
+ classes = [] #: Array[::RDoc::ClassModule]
35
+
36
+ @stores.each do |store|
37
+ if klass = store.find_class_or_module(typename.relative!.to_s)
38
+ classes << klass
39
+ end
40
+ end
41
+
42
+ unless classes.empty?
43
+ classes
44
+ end
45
+ end
46
+
47
+ def docs
48
+ if ds = yield
49
+ unless ds.empty?
50
+ ds.map do |code_object|
51
+ case comment = code_object.comment
52
+ when String
53
+ raise
54
+ when RDoc::Comment
55
+ comment.parse
56
+ when RDoc::Markup::Document
57
+ comment
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
63
+
64
+ def class_docs(typename)
65
+ if classes = find_class(typename)
66
+ classes.map {|klass| klass.comment }
67
+ end
68
+ end
69
+
70
+ def find_const(const_name)
71
+ namespace =
72
+ if const_name.namespace.empty?
73
+ TypeName.parse("::Object")
74
+ else
75
+ const_name.namespace.to_type_name
76
+ end
77
+
78
+ if classes = find_class(namespace)
79
+ # @type var consts: Array[RDoc::Constant]
80
+ consts = []
81
+
82
+ classes.each do |klass|
83
+ if const = klass.constants.find {|c| c.name == const_name.name.to_s }
84
+ consts << const
85
+ end
86
+ end
87
+
88
+ unless consts.empty?
89
+ consts
90
+ end
91
+ end
92
+ end
93
+
94
+ def find_method(typename, instance_method: nil, singleton_method: nil)
95
+ if classes = find_class(typename)
96
+ # @type var methods: Array[RDoc::AnyMethod]
97
+ methods = []
98
+
99
+ classes.each do |klass|
100
+ klass.method_list.each do |method|
101
+ if instance_method && !method.singleton && method.name == instance_method.to_s
102
+ methods << method
103
+ end
104
+
105
+ if singleton_method && method.singleton && method.name == singleton_method.to_s
106
+ methods << method
107
+ end
108
+ end
109
+ end
110
+
111
+ unless methods.empty?
112
+ methods
113
+ end
114
+ end
115
+ end
116
+
117
+ def find_attribute(typename, name, singleton:)
118
+ if klasss = find_class(typename)
119
+ # @type var attrs: Array[RDoc::Attr]
120
+ attrs = []
121
+
122
+ klasss.each do |kls|
123
+ attrs.concat(kls.attributes.select {|attr| attr.singleton == singleton && attr.name == name.to_s })
124
+ end
125
+
126
+ attrs unless attrs.empty?
127
+ end
128
+ end
129
+ end
130
+ end
131
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rdoc"
4
+
5
+ require "rbs/annotate/rdoc_annotator"
6
+ require "rbs/annotate/rdoc_source"
7
+ require "rbs/annotate/annotations"
8
+ require "rbs/annotate/formatter"
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RBS
4
+ module AST
5
+ class Annotation
6
+ attr_reader :string
7
+ attr_reader :location
8
+
9
+ def initialize(string:, location:)
10
+ @string = string
11
+ @location = location
12
+ end
13
+
14
+ def ==(other)
15
+ other.is_a?(Annotation) && other.string == string
16
+ end
17
+
18
+ alias eql? ==
19
+
20
+ def hash
21
+ self.class.hash ^ string.hash
22
+ end
23
+
24
+ def to_json(state = _ = nil)
25
+ { string: string, location: location }.to_json(state)
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RBS
4
+ module AST
5
+ class Comment
6
+ attr_reader :string
7
+ attr_reader :location
8
+
9
+ def initialize(string:, location:)
10
+ @string = string
11
+ @location = location
12
+ end
13
+
14
+ def ==(other)
15
+ other.is_a?(Comment) && other.string == string
16
+ end
17
+
18
+ alias eql? ==
19
+
20
+ def hash
21
+ self.class.hash ^ string.hash
22
+ end
23
+
24
+ def to_json(state = _ = nil)
25
+ { string: string, location: location }.to_json(state)
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,467 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RBS
4
+ module AST
5
+ module Declarations
6
+ class Base
7
+ end
8
+
9
+ module NestedDeclarationHelper
10
+ def each_member
11
+ if block_given?
12
+ members.each do |member|
13
+ if member.is_a?(Members::Base)
14
+ yield(_ = member)
15
+ end
16
+ end
17
+ else
18
+ enum_for :each_member
19
+ end
20
+ end
21
+
22
+ def each_decl
23
+ if block_given?
24
+ members.each do |member|
25
+ if member.is_a?(Base)
26
+ yield(_ = member)
27
+ end
28
+ end
29
+ else
30
+ enum_for :each_decl
31
+ end
32
+ end
33
+ end
34
+
35
+ module MixinHelper
36
+ def each_mixin(&block)
37
+ if block
38
+ @mixins ||= begin
39
+ _ = members.select do |member|
40
+ case member
41
+ when Members::Include, Members::Extend, Members::Prepend
42
+ true
43
+ else
44
+ false
45
+ end
46
+ end
47
+ end
48
+ @mixins.each(&block)
49
+ else
50
+ enum_for :each_mixin
51
+ end
52
+ end
53
+ end
54
+
55
+ class Class < Base
56
+ class Super
57
+ attr_reader :name
58
+ attr_reader :args
59
+ attr_reader :location
60
+
61
+ def initialize(name:, args:, location:)
62
+ @name = name
63
+ @args = args
64
+ @location = location
65
+ end
66
+
67
+ def ==(other)
68
+ other.is_a?(Super) && other.name == name && other.args == args
69
+ end
70
+
71
+ alias eql? ==
72
+
73
+ def hash
74
+ self.class.hash ^ name.hash ^ args.hash
75
+ end
76
+
77
+ def to_json(state = _ = nil)
78
+ {
79
+ name: name,
80
+ args: args,
81
+ location: location
82
+ }.to_json(state)
83
+ end
84
+ end
85
+
86
+ include NestedDeclarationHelper
87
+ include MixinHelper
88
+
89
+ attr_reader :name
90
+ attr_reader :type_params
91
+ attr_reader :members
92
+ attr_reader :super_class
93
+ attr_reader :annotations
94
+ attr_reader :location
95
+ attr_reader :comment
96
+
97
+ def initialize(name:, type_params:, super_class:, members:, annotations:, location:, comment:)
98
+ @name = name
99
+ @type_params = type_params
100
+ @super_class = super_class
101
+ @members = members
102
+ @annotations = annotations
103
+ @location = location
104
+ @comment = comment
105
+ end
106
+
107
+ def update(name: self.name, type_params: self.type_params, super_class: self.super_class, members: self.members, annotations: self.annotations, location: self.location, comment: self.comment)
108
+ self.class.new(
109
+ name: name,
110
+ type_params: type_params,
111
+ super_class: super_class,
112
+ members: members,
113
+ annotations: annotations,
114
+ location: location,
115
+ comment: comment
116
+ )
117
+ end
118
+
119
+ def ==(other)
120
+ other.is_a?(Class) &&
121
+ other.name == name &&
122
+ other.type_params == type_params &&
123
+ other.super_class == super_class &&
124
+ other.members == members
125
+ end
126
+
127
+ alias eql? ==
128
+
129
+ def hash
130
+ self.class.hash ^ name.hash ^ type_params.hash ^ super_class.hash ^ members.hash
131
+ end
132
+
133
+ def to_json(state = _ = nil)
134
+ {
135
+ declaration: :class,
136
+ name: name,
137
+ type_params: type_params,
138
+ members: members,
139
+ super_class: super_class,
140
+ annotations: annotations,
141
+ location: location,
142
+ comment: comment
143
+ }.to_json(state)
144
+ end
145
+ end
146
+
147
+ class Module < Base
148
+ class Self
149
+ attr_reader :name
150
+ attr_reader :args
151
+ attr_reader :location
152
+
153
+ def initialize(name:, args:, location:)
154
+ @name = name
155
+ @args = args
156
+ @location = location
157
+ end
158
+
159
+ def ==(other)
160
+ other.is_a?(Self) && other.name == name && other.args == args
161
+ end
162
+
163
+ alias eql? ==
164
+
165
+ def hash
166
+ self.class.hash ^ name.hash ^ args.hash ^ location.hash
167
+ end
168
+
169
+ def to_json(state = _ = nil)
170
+ {
171
+ name: name,
172
+ args: args,
173
+ location: location
174
+ }.to_json(state)
175
+ end
176
+
177
+ def to_s
178
+ if args.empty?
179
+ name.to_s
180
+ else
181
+ "#{name}[#{args.join(", ")}]"
182
+ end
183
+ end
184
+ end
185
+
186
+ include NestedDeclarationHelper
187
+ include MixinHelper
188
+
189
+ attr_reader :name
190
+ attr_reader :type_params
191
+ attr_reader :members
192
+ attr_reader :location
193
+ attr_reader :annotations
194
+ attr_reader :self_types
195
+ attr_reader :comment
196
+
197
+ def initialize(name:, type_params:, members:, self_types:, annotations:, location:, comment:)
198
+ @name = name
199
+ @type_params = type_params
200
+ @self_types = self_types
201
+ @members = members
202
+ @annotations = annotations
203
+ @location = location
204
+ @comment = comment
205
+ end
206
+
207
+ def update(name: self.name, type_params: self.type_params, members: self.members, self_types: self.self_types, annotations: self.annotations, location: self.location, comment: self.comment)
208
+ self.class.new(
209
+ name: name,
210
+ type_params: type_params,
211
+ members: members,
212
+ self_types: self_types,
213
+ annotations: annotations,
214
+ location: location,
215
+ comment: comment
216
+ )
217
+ end
218
+
219
+
220
+ def ==(other)
221
+ other.is_a?(Module) &&
222
+ other.name == name &&
223
+ other.type_params == type_params &&
224
+ other.self_types == self_types &&
225
+ other.members == members
226
+ end
227
+
228
+ alias eql? ==
229
+
230
+ def hash
231
+ self.class.hash ^ name.hash ^ type_params.hash ^ self_types.hash ^ members.hash
232
+ end
233
+
234
+ def to_json(state = _ = nil)
235
+ {
236
+ declaration: :module,
237
+ name: name,
238
+ type_params: type_params,
239
+ members: members,
240
+ self_types: self_types,
241
+ annotations: annotations,
242
+ location: location,
243
+ comment: comment
244
+ }.to_json(state)
245
+ end
246
+ end
247
+
248
+ class Interface < Base
249
+ attr_reader :name
250
+ attr_reader :type_params
251
+ attr_reader :members
252
+ attr_reader :annotations
253
+ attr_reader :location
254
+ attr_reader :comment
255
+
256
+ include MixinHelper
257
+
258
+ def initialize(name:, type_params:, members:, annotations:, location:, comment:)
259
+ @name = name
260
+ @type_params = type_params
261
+ @members = members
262
+ @annotations = annotations
263
+ @location = location
264
+ @comment = comment
265
+ end
266
+
267
+ def update(name: self.name, type_params: self.type_params, members: self.members, annotations: self.annotations, location: self.location, comment: self.comment)
268
+ self.class.new(
269
+ name: name,
270
+ type_params: type_params,
271
+ members: members,
272
+ annotations: annotations,
273
+ location: location,
274
+ comment: comment
275
+ )
276
+ end
277
+
278
+ def ==(other)
279
+ other.is_a?(Interface) &&
280
+ other.name == name &&
281
+ other.type_params == type_params &&
282
+ other.members == members
283
+ end
284
+
285
+ alias eql? ==
286
+
287
+ def hash
288
+ self.class.hash ^ type_params.hash ^ members.hash
289
+ end
290
+
291
+ def to_json(state = _ = nil)
292
+ {
293
+ declaration: :interface,
294
+ name: name,
295
+ type_params: type_params,
296
+ members: members,
297
+ annotations: annotations,
298
+ location: location,
299
+ comment: comment
300
+ }.to_json(state)
301
+ end
302
+ end
303
+
304
+ class TypeAlias < Base
305
+ attr_reader :name
306
+ attr_reader :type_params
307
+ attr_reader :type
308
+ attr_reader :annotations
309
+ attr_reader :location
310
+ attr_reader :comment
311
+
312
+ def initialize(name:, type_params:, type:, annotations:, location:, comment:)
313
+ @name = name
314
+ @type_params = type_params
315
+ @type = type
316
+ @annotations = annotations
317
+ @location = location
318
+ @comment = comment
319
+ end
320
+
321
+ def ==(other)
322
+ other.is_a?(TypeAlias) &&
323
+ other.name == name &&
324
+ other.type_params == type_params &&
325
+ other.type == type
326
+ end
327
+
328
+ alias eql? ==
329
+
330
+ def hash
331
+ self.class.hash ^ name.hash ^ type_params.hash ^ type.hash
332
+ end
333
+
334
+ def to_json(state = _ = nil)
335
+ {
336
+ declaration: :alias,
337
+ name: name,
338
+ type_params: type_params,
339
+ type: type,
340
+ annotations: annotations,
341
+ location: location,
342
+ comment: comment
343
+ }.to_json(state)
344
+ end
345
+ end
346
+
347
+ class Constant < Base
348
+ attr_reader :name
349
+ attr_reader :type
350
+ attr_reader :location
351
+ attr_reader :comment
352
+
353
+ def initialize(name:, type:, location:, comment:)
354
+ @name = name
355
+ @type = type
356
+ @location = location
357
+ @comment = comment
358
+ end
359
+
360
+ def ==(other)
361
+ other.is_a?(Constant) &&
362
+ other.name == name &&
363
+ other.type == type
364
+ end
365
+
366
+ alias eql? ==
367
+
368
+ def hash
369
+ self.class.hash ^ name.hash ^ type.hash
370
+ end
371
+
372
+ def to_json(state = _ = nil)
373
+ {
374
+ declaration: :constant,
375
+ name: name,
376
+ type: type,
377
+ location: location,
378
+ comment: comment
379
+ }.to_json(state)
380
+ end
381
+ end
382
+
383
+ class Global < Base
384
+ attr_reader :name
385
+ attr_reader :type
386
+ attr_reader :location
387
+ attr_reader :comment
388
+
389
+ def initialize(name:, type:, location:, comment:)
390
+ @name = name
391
+ @type = type
392
+ @location = location
393
+ @comment = comment
394
+ end
395
+
396
+ def ==(other)
397
+ other.is_a?(Global) &&
398
+ other.name == name &&
399
+ other.type == type
400
+ end
401
+
402
+ alias eql? ==
403
+
404
+ def hash
405
+ self.class.hash ^ name.hash ^ type.hash
406
+ end
407
+
408
+ def to_json(state = _ = nil)
409
+ {
410
+ declaration: :global,
411
+ name: name,
412
+ type: type,
413
+ location: location,
414
+ comment: comment
415
+ }.to_json(state)
416
+ end
417
+ end
418
+
419
+ class AliasDecl < Base
420
+ attr_reader :new_name, :old_name, :location, :comment
421
+
422
+ def initialize(new_name:, old_name:, location:, comment:)
423
+ @new_name = new_name
424
+ @old_name = old_name
425
+ @location = location
426
+ @comment = comment
427
+ end
428
+
429
+ def ==(other)
430
+ other.is_a?(self.class) &&
431
+ other.new_name == new_name &&
432
+ other.old_name == old_name
433
+ end
434
+
435
+ alias eql? ==
436
+
437
+ def hash
438
+ self.class.hash ^ new_name.hash ^ old_name.hash
439
+ end
440
+ end
441
+
442
+ class ClassAlias < AliasDecl
443
+ def to_json(state = _ = nil)
444
+ {
445
+ declaration: :class_alias,
446
+ new_name: new_name,
447
+ old_name: old_name,
448
+ location: location,
449
+ comment: comment
450
+ }.to_json(state)
451
+ end
452
+ end
453
+
454
+ class ModuleAlias < AliasDecl
455
+ def to_json(state = _ = nil)
456
+ {
457
+ declaration: :module_alias,
458
+ new_name: new_name,
459
+ old_name: old_name,
460
+ location: location,
461
+ comment: comment
462
+ }.to_json(state)
463
+ end
464
+ end
465
+ end
466
+ end
467
+ end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RBS
4
+ module AST
5
+ module Directives
6
+ class Base
7
+ end
8
+
9
+ class Use < Base
10
+ class SingleClause
11
+ attr_reader :type_name, :new_name, :location
12
+
13
+ def initialize(type_name:, new_name:, location:)
14
+ @type_name = type_name
15
+ @new_name = new_name
16
+ @location = location
17
+ end
18
+ end
19
+
20
+ class WildcardClause
21
+ attr_reader :namespace, :location
22
+
23
+ def initialize(namespace:, location:)
24
+ @location = location
25
+ @namespace = namespace
26
+ end
27
+ end
28
+
29
+ attr_reader :clauses, :location
30
+
31
+ def initialize(clauses:, location:)
32
+ @clauses = clauses
33
+ @location = location
34
+ end
35
+ end
36
+
37
+ class ResolveTypeNames < Base
38
+ attr_reader :location
39
+
40
+ attr_reader :value
41
+
42
+ def initialize(value:, location:)
43
+ @value = value
44
+ @location = location
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end