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,279 @@
1
+ module RBS
2
+ class Environment
3
+ type module_decl = AST::Declarations::Class | AST::Declarations::Module
4
+
5
+ interface _ModuleOrClass
6
+ def name: () -> TypeName
7
+
8
+ def type_params: () -> Array[AST::TypeParam]
9
+ end
10
+
11
+ interface _NamedDecl
12
+ def name: () -> TypeName
13
+ end
14
+
15
+ module ContextUtil
16
+ def calculate_context: (Array[_NamedDecl]) -> Resolver::context
17
+ end
18
+
19
+ # Name of object, it's (multiple) declarations with the outer module declarations
20
+ #
21
+ class MultiEntry[M < _ModuleOrClass]
22
+ class D[M < _ModuleOrClass]
23
+ attr_reader decl: M
24
+ attr_reader outer: Array[module_decl]
25
+
26
+ def initialize: (decl: M, outer: Array[module_decl]) -> void
27
+
28
+ include ContextUtil
29
+
30
+ @context: Resolver::context
31
+
32
+ def context: () -> Resolver::context
33
+ end
34
+
35
+ attr_reader name: TypeName
36
+ attr_reader decls: Array[D[M]]
37
+
38
+ @primary: D[M]?
39
+
40
+ def initialize: (name: TypeName) -> void
41
+
42
+ def insert: (decl: M, outer: Array[module_decl]) -> void
43
+
44
+ def validate_type_params: () -> void
45
+
46
+ def compatible_params?: (Array[AST::TypeParam], Array[AST::TypeParam]) -> boolish
47
+
48
+ def type_params: () -> Array[AST::TypeParam]
49
+
50
+ def primary: () -> D[M]
51
+ end
52
+
53
+ class ModuleEntry < MultiEntry[AST::Declarations::Module]
54
+ def self_types: () -> Array[AST::Declarations::Module::Self]
55
+ end
56
+
57
+ class ClassEntry < MultiEntry[AST::Declarations::Class]
58
+ end
59
+
60
+ # Name of object, it's (single) declaration, and the outer module declarations
61
+ #
62
+ class SingleEntry[N, D]
63
+ attr_reader name: N
64
+ attr_reader decl: D
65
+ attr_reader outer: Array[module_decl]
66
+
67
+ def initialize: (name: N, decl: D, outer: Array[module_decl]) -> void
68
+
69
+ include ContextUtil
70
+
71
+ @context: Resolver::context
72
+
73
+ def context: () -> Resolver::context
74
+ end
75
+
76
+ class ModuleAliasEntry < SingleEntry[TypeName, AST::Declarations::ModuleAlias]
77
+ end
78
+
79
+ class ClassAliasEntry < SingleEntry[TypeName, AST::Declarations::ClassAlias]
80
+ end
81
+
82
+ class InterfaceEntry < SingleEntry[TypeName, AST::Declarations::Interface]
83
+ end
84
+
85
+ class TypeAliasEntry < SingleEntry[TypeName, AST::Declarations::TypeAlias]
86
+ end
87
+
88
+ class ConstantEntry < SingleEntry[TypeName, AST::Declarations::Constant]
89
+ end
90
+
91
+ class GlobalEntry < SingleEntry[Symbol, AST::Declarations::Global]
92
+ end
93
+
94
+ # Top level declarations
95
+ attr_reader declarations: Array[AST::Declarations::t]
96
+
97
+ # Class declarations
98
+ attr_reader class_decls: Hash[TypeName, ModuleEntry | ClassEntry]
99
+
100
+ attr_reader class_alias_decls: Hash[TypeName, ModuleAliasEntry | ClassAliasEntry]
101
+
102
+ # Interface declarations
103
+ attr_reader interface_decls: Hash[TypeName, InterfaceEntry]
104
+
105
+ # Type alias declarations
106
+ attr_reader type_alias_decls: Hash[TypeName, TypeAliasEntry]
107
+
108
+ # Constant declarations
109
+ attr_reader constant_decls: Hash[TypeName, ConstantEntry]
110
+
111
+ # Global declarations
112
+ attr_reader global_decls: Hash[Symbol, GlobalEntry]
113
+
114
+ # A hash from Buffer to it's contents
115
+ #
116
+ attr_reader signatures: Hash[Buffer, [Array[AST::Directives::t], Array[AST::Declarations::t]]]
117
+
118
+ def initialize: () -> void
119
+
120
+ def initialize_copy: (Environment) -> void
121
+
122
+ # Construct an environment from EnvironmentLoader
123
+ #
124
+ def self.from_loader: (EnvironmentLoader) -> Environment
125
+
126
+ def add_signature: (buffer: Buffer, directives: Array[AST::Directives::t], decls: Array[AST::Declarations::t]) -> void
127
+
128
+ # Insert a toplevel declaration into the environment
129
+ #
130
+ def <<: (AST::Declarations::t decl) -> self
131
+
132
+ # Insert a declaration into the environment
133
+ #
134
+ private def insert_decl: (AST::Declarations::t, outer: Array[module_decl], namespace: Namespace) -> void
135
+
136
+ # Resolve all type names in the environment to absolute type names.
137
+ # Relative type name will be left if absolute type name cannot be found.
138
+ #
139
+ # When `only` is given, it skips other _top-level_ declarations not included in the collection.
140
+ # This helps running resolution faster in the case of _partial updates_.
141
+ #
142
+ def resolve_type_names: (?only: Set[AST::Declarations::t]?) -> Environment
143
+
144
+ def resolve_signature: (Resolver::TypeNameResolver, UseMap::Table, Array[AST::Directives::t], Array[AST::Declarations::t], ?only: Set[AST::Declarations::t]?) -> [Array[AST::Directives::t], Array[AST::Declarations::t]]
145
+
146
+ def inspect: () -> String
147
+
148
+ def buffers: () -> Array[Buffer]
149
+
150
+ # Remove declarations and directives that are loaded from `buffers`
151
+ #
152
+ def unload: (Set[Buffer] buffers) -> Environment
153
+
154
+ # Returns true if an interface with the type name is defined
155
+ #
156
+ def interface_name?: (TypeName) -> bool
157
+
158
+ # Returns true if a type alias with the type name is defined
159
+ #
160
+ def type_alias_name?: (TypeName) -> bool
161
+
162
+ # Returns true if a module or class with the type name is defined
163
+ #
164
+ def module_name?: (TypeName) -> bool
165
+
166
+ # Returns true if the type name is defined
167
+ #
168
+ def type_name?: (TypeName) -> bool
169
+
170
+ # Returns if a constant of the name is defined
171
+ #
172
+ def constant_name?: (TypeName) -> bool
173
+
174
+ # Returns true if the type name is defined by constant declaration
175
+ #
176
+ def constant_decl?: (TypeName) -> bool
177
+
178
+ # Returns true if the type name is defined by class declaration
179
+ #
180
+ def class_decl?: (TypeName) -> bool
181
+
182
+ # Returns true if the type name is defined by module declaration
183
+ #
184
+ def module_decl?: (TypeName) -> bool
185
+
186
+ # Returns true if the type name is a module alias
187
+ #
188
+ def module_alias?: (TypeName) -> bool
189
+
190
+ # Returns true if the type name is a class alias
191
+ def class_alias?: (TypeName) -> bool
192
+
193
+ def class_entry: (TypeName) -> (ClassEntry | ClassAliasEntry | nil)
194
+
195
+ # Returns ClassEntry if the class definition is found, normalized in case of alias
196
+ #
197
+ def normalized_class_entry: (TypeName) -> ClassEntry?
198
+
199
+ def module_entry: (TypeName) -> (ModuleEntry | ModuleAliasEntry | nil)
200
+
201
+ # Returns ModuleEntry if the module definition is found, normalized in case of alias
202
+ #
203
+ def normalized_module_entry: (TypeName) -> ModuleEntry?
204
+
205
+ def constant_entry: (TypeName) -> (ClassEntry | ClassAliasEntry | ModuleEntry | ModuleAliasEntry | ConstantEntry | nil)
206
+
207
+ def module_class_entry: (TypeName) -> (ClassEntry | ClassAliasEntry | ModuleEntry | ModuleAliasEntry | nil)
208
+
209
+ def normalized_module_class_entry: (TypeName) -> (ClassEntry | ModuleEntry | nil)
210
+
211
+ @normalize_module_name_cache: Hash[TypeName, TypeName | false | nil]
212
+
213
+ # Returns the original module name that is defined with `module` declaration
214
+ #
215
+ # * Calls `#absolute!` for relative module names
216
+ # * Returns `nil` if the rhs name cannot be found
217
+ # * Returns `false` if the name is cyclic
218
+ #
219
+ def normalize_module_name?: (TypeName) -> (TypeName | nil | false)
220
+
221
+ # Returns the original module name that is defined with `module` declaration
222
+ #
223
+ # * Raises an error if given type name is not module
224
+ # * Calls `#absolute!` for relative module names
225
+ # * Returns the name itself if the name cannot be normalized to a class/module
226
+ #
227
+ def normalize_module_name: (TypeName) -> TypeName
228
+
229
+ # Returns a normalized module/class name or a type name with a normalized namespace
230
+ #
231
+ # * Calls `#absolute!` for relative module names
232
+ # * Returns `nil` if the typename cannot be found
233
+ # * Returns `false` if the name is cyclic
234
+ #
235
+ def normalize_type_name?: (TypeName) -> (TypeName | nil | false)
236
+
237
+ # Normalize the type name or raises an error
238
+ #
239
+ def normalize_type_name!: (TypeName) -> TypeName
240
+
241
+ # Returns a normalized module/class name or a type name with a normalized namespace
242
+ #
243
+ # * Calls `#absolute!` for relative module names
244
+ # * Returns the typename itself if the name cannot be normalized
245
+ #
246
+ def normalize_type_name: (TypeName) -> TypeName
247
+
248
+ # Returns `true` if given type name is normalized
249
+ #
250
+ def normalized_type_name?: (TypeName) -> bool
251
+
252
+ # Returns the given type name if it's normalized, or raises
253
+ #
254
+ def normalized_type_name!: (TypeName) -> TypeName
255
+
256
+ # Runs generics type params validation over each class definitions
257
+ def validate_type_params: () -> void
258
+
259
+ private
260
+
261
+ # Returns a context for inside given decls
262
+ #
263
+ def resolver_context: (*module_decl) -> Resolver::context
264
+
265
+ def append_context: (Resolver::context, module_decl) -> Resolver::context
266
+
267
+ def resolve_declaration: (Resolver::TypeNameResolver resolver, UseMap map, AST::Declarations::t decl, outer: Array[module_decl], prefix: Namespace) -> AST::Declarations::t
268
+
269
+ def resolve_member: (Resolver::TypeNameResolver, UseMap map, AST::Members::t, context: Resolver::context) -> AST::Members::t
270
+
271
+ def resolve_method_type: (Resolver::TypeNameResolver, UseMap map, RBS::MethodType, context: Resolver::context) -> RBS::MethodType
272
+
273
+ def resolve_type_params: (Resolver::TypeNameResolver resolver, UseMap map, Array[AST::TypeParam], context: Resolver::context) -> Array[AST::TypeParam]
274
+
275
+ def absolute_type: (Resolver::TypeNameResolver, UseMap map, Types::t, context: Resolver::context) -> Types::t
276
+
277
+ def absolute_type_name: (Resolver::TypeNameResolver, UseMap map, TypeName, context: Resolver::context) -> TypeName
278
+ end
279
+ end
@@ -0,0 +1,111 @@
1
+ module RBS
2
+ # EnvironmentLoader is an object to load RBS files from filesystem.
3
+ #
4
+ # Set up your configuration through repository and `#add` method.
5
+ #
6
+ # ```ruby
7
+ # # Set up the repository to load library RBSs from.
8
+ # repo = RBS::Repository.default
9
+ # repo.add(Pathname("vendor/rbs/gem-rbs"))
10
+ # repo.add(Pathname("vendor/rbs/internal-rbs"))
11
+ #
12
+ # loader = RBS::EnvironmentLoader.new(repository: repo)
13
+ #
14
+ # # Add libraries to load RBS files.
15
+ # loader.add(library: "minitest")
16
+ # loader.add(library: "rbs", version: "1.0.0")
17
+ #
18
+ # # Add dirs to load RBS files from.
19
+ # loader.add(path: Pathname("sig"))
20
+ #
21
+ # # Load RBSs into an environment.
22
+ # environment = RBS::Environment.new()
23
+ # loader.load(env: environment)
24
+ # ```
25
+ #
26
+ class EnvironmentLoader
27
+ class UnknownLibraryError < StandardError
28
+ attr_reader library: Library
29
+
30
+ def initialize: (lib: Library) -> void
31
+ end
32
+
33
+ class Library
34
+ attr_reader name: String
35
+ attr_reader version: String?
36
+
37
+ def initialize: (name: String, version: String?) -> void
38
+ end
39
+
40
+ include FileFinder
41
+
42
+ DEFAULT_CORE_ROOT: Pathname
43
+
44
+ attr_reader core_root: Pathname?
45
+ attr_reader repository: Repository
46
+
47
+ attr_reader libs: Set[Library]
48
+ attr_reader dirs: Array[Pathname]
49
+
50
+ # The source where the RBS comes from.
51
+ #
52
+ # `:core` means it is part of core library.
53
+ # `Library` means it is from library.
54
+ # `Pathname` means it is loaded from a directory.
55
+ #
56
+ type source = :core
57
+ | Library
58
+ | Pathname
59
+
60
+ # Accepts two optional keyword arguments.
61
+ #
62
+ # `core_root` is the path to the directory with RBSs for core classes.
63
+ # The default value is the core library included in RBS gem. (EnvironmentLoader::DEFAULT_CORE_ROOT)
64
+ # Passing `nil` means it skips loading core class definitions.
65
+ #
66
+ # `repository` is the repository for library classes.
67
+ # The default value is repository only with stdlib classes. (Repository.new)
68
+ #
69
+ def initialize: (?core_root: Pathname?, ?repository: Repository) -> void
70
+
71
+ # Add a path or library to load RBSs from.
72
+ #
73
+ # `path` can be a file or a directory.
74
+ # All `.rbs` files from the given directory will be loaded.
75
+ # Specifying a file will load the file regardless the extension of the file is.
76
+ #
77
+ # `library` can be a name of a gem.
78
+ # Specifying `nil` to `version` will load any version available.
79
+ # It first tries to load RBS files from gem with specified version.
80
+ # If RBS files cannot be found in the gem, it tries to load RBSs from repository.
81
+ #
82
+ def add: (path: Pathname) -> void
83
+ | (library: String, version: String?, ?resolve_dependencies: boolish) -> void
84
+
85
+ def resolve_dependencies: (library: String, version: String?) -> void
86
+
87
+ # Add repository path and libraries via rbs_collection.lock.yaml.
88
+ def add_collection: (Collection::Config::Lockfile lockfile) -> void
89
+
90
+ # This is helper function to test if RBS for a library is available or not.
91
+ #
92
+ def has_library?: (library: String, version: String?) -> bool
93
+
94
+ # Add all declarations to environment.
95
+ #
96
+ # Raises `UnknownLibraryError` if RBS cannot be loaded from a library.
97
+ #
98
+ # Returns an array of tuples of the declaration, path to the file, and the source.
99
+ #
100
+ def load: (env: Environment) -> Array[[AST::Declarations::t, Pathname, source]]
101
+
102
+ # Returns a pair of spec and path for a gem with RBS.
103
+ # Returns nil if the gem is not installed, or the gem doesn't provide RBS.
104
+ #
105
+ def self.gem_sig_path: (String name, String? version) -> [Gem::Specification, Pathname]?
106
+
107
+ def each_signature: () { (source, Pathname, Buffer, Array[AST::Declarations::t], Array[AST::Directives::t]) -> void } -> void
108
+
109
+ def each_dir: { (source, Pathname) -> void } -> void
110
+ end
111
+ end
@@ -0,0 +1,65 @@
1
+ module RBS
2
+ # EnvironmentWalker provides topological sort of class/module definitions.
3
+ #
4
+ # If a method, attribute, or ancestor in a class definition have a reference to another class, it is dependency.
5
+ #
6
+ # ```rb
7
+ # walker = EnvironmentWalker.new(env: env)
8
+ #
9
+ # walker.each_strongly_connected_component do |scc|
10
+ # # Yields an array of strongly connected components.
11
+ # end
12
+ # ```
13
+ #
14
+ # The `#only_ancestors!` method limits the dependency only to ancestors.
15
+ # Only super classes and included modules are dependencies with the option.
16
+ # This is useful to calculate the dependencies of class hierarchy.
17
+ #
18
+ # ```rb
19
+ # walker = EnvironmentWalker.new(env: env).only_ancestors!
20
+ #
21
+ # walker.each_strongly_connected_component do |scc|
22
+ # # Yields an array of strongly connected components.
23
+ # end
24
+ # ```
25
+ #
26
+ class EnvironmentWalker
27
+ class InstanceNode
28
+ attr_reader type_name: TypeName
29
+ def initialize: (type_name: TypeName) -> void
30
+ end
31
+
32
+ class SingletonNode
33
+ attr_reader type_name: TypeName
34
+ def initialize: (type_name: TypeName) -> void
35
+ end
36
+
37
+ class TypeNameNode
38
+ attr_reader type_name: TypeName
39
+ def initialize: (type_name: TypeName) -> void
40
+ end
41
+
42
+ attr_reader env: Environment
43
+ attr_reader only_ancestors: bool
44
+ attr_reader builder: DefinitionBuilder
45
+
46
+ def initialize: (env: Environment) -> void
47
+
48
+ def only_ancestors!: (?bool only) -> self
49
+
50
+ def only_ancestors?: () -> bool
51
+
52
+ type node = InstanceNode | SingletonNode | TypeNameNode
53
+ include TSort[node]
54
+
55
+ def tsort_each_node: () { (node) -> void } -> void
56
+
57
+ def tsort_each_child: (node) { (node) -> void } -> void
58
+
59
+ private
60
+
61
+ def each_type_name: (Types::t) { (TypeName) -> void } -> void
62
+
63
+ def each_type_node: (Types::t) { (node) -> void } -> void
64
+ end
65
+ end