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,138 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RBS
4
+ class Location
5
+ def inspect
6
+ rks = each_required_key.to_a
7
+ ops = each_optional_key.to_a.map {|x| "?#{x}" }
8
+ src = if source.length <= 1
9
+ source.inspect
10
+ else
11
+ source.each_line.first&.chomp&.inspect
12
+ end
13
+ "#<#{self.class}:#{self.__id__} buffer=#{buffer.name}, start=#{start_line}:#{start_column}, pos=#{start_pos}...#{end_pos}, children=#{(rks + ops).join(",")} source=#{src}>"
14
+ end
15
+
16
+ def self.new(buffer_ = nil, start_pos_ = nil, end_pos_ = nil, buffer: nil, start_pos: nil, end_pos: nil)
17
+ __skip__ =
18
+ begin
19
+ if buffer && start_pos && end_pos
20
+ super(buffer, start_pos, end_pos)
21
+ else
22
+ super(buffer_, start_pos_, end_pos_)
23
+ end
24
+ end
25
+ end
26
+
27
+ alias aref []
28
+
29
+ WithChildren = self
30
+
31
+ def name
32
+ buffer.name
33
+ end
34
+
35
+ def start_line
36
+ start_loc[0]
37
+ end
38
+
39
+ def start_column
40
+ start_loc[1]
41
+ end
42
+
43
+ def end_line
44
+ end_loc[0]
45
+ end
46
+
47
+ def end_column
48
+ end_loc[1]
49
+ end
50
+
51
+ def start_loc
52
+ @start_loc ||= buffer.pos_to_loc(start_pos)
53
+ end
54
+
55
+ def end_loc
56
+ @end_loc ||= buffer.pos_to_loc(end_pos)
57
+ end
58
+
59
+ def range
60
+ @range ||= start_pos...end_pos
61
+ end
62
+
63
+ def source
64
+ @source ||= (buffer.content[range] || raise)
65
+ end
66
+
67
+ def to_s
68
+ "#{name || "-"}:#{start_line}:#{start_column}...#{end_line}:#{end_column}"
69
+ end
70
+
71
+ def ==(other)
72
+ other.is_a?(Location) &&
73
+ other.buffer == buffer &&
74
+ other.start_pos == start_pos &&
75
+ other.end_pos == end_pos
76
+ end
77
+
78
+ def to_json(state = _ = nil)
79
+ {
80
+ start: {
81
+ line: start_line,
82
+ column: start_column
83
+ },
84
+ end: {
85
+ line: end_line,
86
+ column: end_column
87
+ },
88
+ buffer: {
89
+ name: name&.to_s
90
+ }
91
+ }.to_json(state)
92
+ end
93
+
94
+ def self.to_string(location, default: "*:*:*...*:*")
95
+ location&.to_s || default
96
+ end
97
+
98
+ def add_required_child(name, range)
99
+ _add_required_child(name, range.begin, range.end)
100
+ end
101
+
102
+ def add_optional_child(name, range)
103
+ if range
104
+ _add_optional_child(name, range.begin, range.end)
105
+ else
106
+ _add_optional_no_child(name);
107
+ end
108
+ end
109
+
110
+ def each_optional_key(&block)
111
+ if block
112
+ _optional_keys.uniq.each(&block)
113
+ else
114
+ enum_for(:each_optional_key)
115
+ end
116
+ end
117
+
118
+ def each_required_key(&block)
119
+ if block
120
+ _required_keys.uniq.each(&block)
121
+ else
122
+ enum_for(:each_required_key)
123
+ end
124
+ end
125
+
126
+ def key?(name)
127
+ optional_key?(name) || required_key?(name)
128
+ end
129
+
130
+ def optional_key?(name)
131
+ _optional_keys.include?(name)
132
+ end
133
+
134
+ def required_key?(name)
135
+ _required_keys.include?(name)
136
+ end
137
+ end
138
+ end
@@ -0,0 +1,243 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RBS
4
+ class Locator
5
+ attr_reader :decls, :dirs, :buffer
6
+
7
+ def initialize(buffer:, dirs:, decls:)
8
+ @buffer = buffer
9
+ @dirs = dirs
10
+ @decls = decls
11
+ end
12
+
13
+ def find(line:, column:)
14
+ pos = buffer.loc_to_pos([line, column])
15
+
16
+ dirs.each do |dir|
17
+ array = [] #: Array[component]
18
+ find_in_directive(pos, dir, array) and return array
19
+ end
20
+
21
+ decls.each do |decl|
22
+ array = [] #: Array[component]
23
+ find_in_decl(pos, decl: decl, array: array) and return array
24
+ end
25
+
26
+ []
27
+ end
28
+
29
+ def find2(line:, column:)
30
+ path = find(line: line, column: column)
31
+
32
+ return if path.empty?
33
+
34
+ hd, *tl = path
35
+ if hd.is_a?(Symbol)
36
+ [hd, tl]
37
+ else
38
+ [nil, path]
39
+ end
40
+ end
41
+
42
+ def find_in_directive(pos, dir, array)
43
+ return false unless dir.is_a?(AST::Directives::Use)
44
+
45
+ if test_loc(pos, location: dir.location)
46
+ array.unshift(dir)
47
+
48
+ dir.clauses.each do |clause|
49
+ if test_loc(pos, location: clause.location)
50
+ array.unshift(clause)
51
+ find_in_loc(pos, location: clause.location, array: array)
52
+ return true
53
+ end
54
+ end
55
+ end
56
+
57
+ false
58
+ end
59
+
60
+ def find_in_decl(pos, decl:, array:)
61
+ if test_loc(pos, location: decl.location)
62
+ array.unshift(decl)
63
+
64
+ case decl
65
+ when AST::Declarations::Class
66
+ decl.type_params.each do |param|
67
+ find_in_type_param(pos, type_param: param, array: array) and return true
68
+ end
69
+
70
+ if super_class = decl.super_class
71
+ if test_loc(pos, location: super_class.location)
72
+ array.unshift(super_class)
73
+ find_in_loc(pos, array: array, location: super_class.location)
74
+ return true
75
+ end
76
+ end
77
+
78
+ decl.each_decl do |decl_|
79
+ find_in_decl(pos, decl: decl_, array: array) and return true
80
+ end
81
+
82
+ decl.each_member do |member|
83
+ find_in_member(pos, array: array, member: member) and return true
84
+ end
85
+
86
+ when AST::Declarations::Module
87
+ decl.type_params.each do |param|
88
+ find_in_type_param(pos, type_param: param, array: array) and return true
89
+ end
90
+
91
+ decl.self_types.each do |self_type|
92
+ if test_loc(pos, location: self_type.location)
93
+ array.unshift(self_type)
94
+ find_in_loc(pos, array: array, location: self_type.location)
95
+ return true
96
+ end
97
+ end
98
+
99
+ decl.each_decl do |decl_|
100
+ find_in_decl(pos, decl: decl_, array: array) and return true
101
+ end
102
+
103
+ decl.each_member do |member|
104
+ find_in_member(pos, array: array, member: member) and return true
105
+ end
106
+
107
+ when AST::Declarations::Interface
108
+ decl.type_params.each do |param|
109
+ find_in_type_param(pos, type_param: param, array: array) and return true
110
+ end
111
+
112
+ decl.members.each do |member|
113
+ find_in_member(pos, array: array, member: member) and return true
114
+ end
115
+
116
+ when AST::Declarations::Constant, AST::Declarations::Global
117
+ find_in_type(pos, array: array, type: decl.type) and return true
118
+
119
+ when AST::Declarations::TypeAlias
120
+ find_in_type(pos, array: array, type: decl.type) and return true
121
+ end
122
+
123
+ find_in_loc(pos, location: decl.location, array: array)
124
+
125
+ true
126
+ else
127
+ false
128
+ end
129
+ end
130
+
131
+ def find_in_member(pos, member:, array:)
132
+ if test_loc(pos, location: member.location)
133
+ array.unshift(member)
134
+
135
+ case member
136
+ when AST::Members::MethodDefinition
137
+ member.overloads.each do |overload|
138
+ find_in_method_type(pos, array: array, method_type: overload.method_type) and return true
139
+ end
140
+ when AST::Members::InstanceVariable, AST::Members::ClassInstanceVariable, AST::Members::ClassVariable
141
+ find_in_type(pos, array: array, type: member.type) and return true
142
+ when AST::Members::AttrReader, AST::Members::AttrWriter, AST::Members::AttrAccessor
143
+ find_in_type(pos, array: array, type: member.type) and return true
144
+ end
145
+
146
+ find_in_loc(pos, location: member.location, array: array)
147
+
148
+ true
149
+ else
150
+ false
151
+ end
152
+ end
153
+
154
+ def find_in_method_type(pos, method_type:, array:)
155
+ if test_loc(pos, location: method_type.location)
156
+ array.unshift(method_type)
157
+
158
+ method_type.type_params.each do |param|
159
+ find_in_type_param(pos, type_param: param, array: array) and return true
160
+ end
161
+
162
+ method_type.each_type do |type|
163
+ find_in_type(pos, array: array, type: type) and break
164
+ end
165
+
166
+ true
167
+ else
168
+ false
169
+ end
170
+ end
171
+
172
+ def find_in_type_param(pos, type_param:, array:)
173
+ if test_loc(pos, location: type_param.location)
174
+ array.unshift(type_param)
175
+
176
+ if upper_bound = type_param.upper_bound_type
177
+ find_in_type(pos, type: upper_bound, array: array) and return true
178
+ end
179
+
180
+ if default_type = type_param.default_type
181
+ find_in_type(pos, type: default_type, array: array) and return true
182
+ end
183
+
184
+ find_in_loc(pos, location: type_param.location, array: array)
185
+
186
+ true
187
+ else
188
+ false
189
+ end
190
+ end
191
+
192
+ def find_in_type(pos, type:, array:)
193
+ if test_loc(pos, location: type.location)
194
+ array.unshift(type)
195
+
196
+ type.each_type do |type_|
197
+ find_in_type(pos, array: array, type: type_) and return true
198
+ end
199
+
200
+ find_in_loc(pos, array: array, location: type.location)
201
+
202
+ true
203
+ else
204
+ false
205
+ end
206
+ end
207
+
208
+ def find_in_loc(pos, location:, array:)
209
+ if test_loc(pos, location: location)
210
+ if location.is_a?(Location)
211
+ location.each_optional_key do |key|
212
+ if loc = location[key]
213
+ if loc.range === pos
214
+ array.unshift(key)
215
+ return true
216
+ end
217
+ end
218
+ end
219
+
220
+ location.each_required_key do |key|
221
+ loc = location[key] or raise
222
+ if loc.range === pos
223
+ array.unshift(key)
224
+ return true
225
+ end
226
+ end
227
+ end
228
+
229
+ true
230
+ else
231
+ false
232
+ end
233
+ end
234
+
235
+ def test_loc(pos, location:)
236
+ if location
237
+ location.range === pos
238
+ else
239
+ false
240
+ end
241
+ end
242
+ end
243
+ end
@@ -0,0 +1,143 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RBS
4
+ class MethodType
5
+ attr_reader :type_params
6
+ attr_reader :type
7
+ attr_reader :block
8
+ attr_reader :location
9
+
10
+ def initialize(type_params:, type:, block:, location:)
11
+ @type_params = type_params
12
+ @type = type
13
+ @block = block
14
+ @location = location
15
+ end
16
+
17
+ def ==(other)
18
+ other.is_a?(MethodType) &&
19
+ other.type_params == type_params &&
20
+ other.type == type &&
21
+ other.block == block
22
+ end
23
+
24
+ def to_json(state = _ = nil)
25
+ {
26
+ type_params: type_params,
27
+ type: type,
28
+ block: block,
29
+ location: location
30
+ }.to_json(state)
31
+ end
32
+
33
+ def sub(s)
34
+ sub = s.without(*type_param_names)
35
+
36
+ return self if sub.empty?
37
+
38
+ self.class.new(
39
+ type_params: type_params.map do |param|
40
+ param.map_type do |bound|
41
+ bound.map_type {|ty| ty.sub(sub) }
42
+ end
43
+ end,
44
+ type: type.sub(sub),
45
+ block: block&.sub(sub),
46
+ location: location
47
+ )
48
+ end
49
+
50
+ def update(type_params: self.type_params, type: self.type, block: self.block, location: self.location)
51
+ self.class.new(
52
+ type_params: type_params,
53
+ type: type,
54
+ block: block,
55
+ location: location
56
+ )
57
+ end
58
+
59
+ def free_variables(set = Set.new)
60
+ type.free_variables(set)
61
+ block&.type&.free_variables(set)
62
+ set.subtract(type_param_names)
63
+ end
64
+
65
+ def map_type(&block)
66
+ self.class.new(
67
+ type_params: type_params,
68
+ type: type.map_type(&block),
69
+ block: self.block&.map_type(&block),
70
+ location: location
71
+ )
72
+ end
73
+
74
+ def map_type_bound(&block)
75
+ if type_params.empty?
76
+ self
77
+ else
78
+ self.update(
79
+ type_params: type_params.map {|param|
80
+ param.map_type(&block)
81
+ }
82
+ )
83
+ end
84
+ end
85
+
86
+ def each_type(&block)
87
+ if block
88
+ type.each_type(&block)
89
+ self.block&.yield_self do |b|
90
+ b.type.each_type(&block)
91
+ if b.self_type
92
+ yield b.self_type
93
+ end
94
+ end
95
+ else
96
+ enum_for :each_type
97
+ end
98
+ end
99
+
100
+ def to_s
101
+ block_self_binding = Types::SelfTypeBindingHelper.self_type_binding_to_s(block&.self_type)
102
+
103
+ s = case
104
+ when (b = block) && b.required
105
+ "(#{type.param_to_s}) { (#{b.type.param_to_s}) #{block_self_binding}-> #{b.type.return_to_s} } -> #{type.return_to_s}"
106
+ when b = block
107
+ "(#{type.param_to_s}) ?{ (#{b.type.param_to_s}) #{block_self_binding}-> #{b.type.return_to_s} } -> #{type.return_to_s}"
108
+ else
109
+ "(#{type.param_to_s}) -> #{type.return_to_s}"
110
+ end
111
+
112
+ if type_params.empty?
113
+ s
114
+ else
115
+ "[#{type_params.join(", ")}] #{s}"
116
+ end
117
+ end
118
+
119
+ def type_param_names
120
+ type_params.map(&:name)
121
+ end
122
+
123
+ def has_self_type?
124
+ each_type.any? {|type| type.has_self_type? }
125
+ end
126
+
127
+ def has_classish_type?
128
+ each_type.any? {|type| type.has_classish_type? }
129
+ end
130
+
131
+ def with_nonreturn_void?
132
+ if type.with_nonreturn_void?
133
+ true
134
+ else
135
+ if block = block()
136
+ block.type.with_nonreturn_void? || block.self_type&.with_nonreturn_void? || false
137
+ else
138
+ false
139
+ end
140
+ end
141
+ end
142
+ end
143
+ end
@@ -0,0 +1,125 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RBS
4
+ class Namespace
5
+ attr_reader :path
6
+
7
+ def initialize(path:, absolute:)
8
+ @path = path
9
+ @absolute = absolute ? true : false
10
+ end
11
+
12
+ def self.empty
13
+ @empty ||= new(path: [], absolute: false)
14
+ end
15
+
16
+ def self.root
17
+ @root ||= new(path: [], absolute: true)
18
+ end
19
+
20
+ def +(other)
21
+ if other.absolute?
22
+ other
23
+ else
24
+ self.class.new(path: path + other.path, absolute: absolute?)
25
+ end
26
+ end
27
+
28
+ def append(component)
29
+ self.class.new(path: path + [component], absolute: absolute?)
30
+ end
31
+
32
+ def parent
33
+ @parent ||= begin
34
+ raise "Parent with empty namespace" if empty?
35
+ self.class.new(path: path.take(path.size - 1), absolute: absolute?)
36
+ end
37
+ end
38
+
39
+ def absolute?
40
+ @absolute
41
+ end
42
+
43
+ def relative?
44
+ !absolute?
45
+ end
46
+
47
+ def absolute!
48
+ self.class.new(path: path, absolute: true)
49
+ end
50
+
51
+ def relative!
52
+ self.class.new(path: path, absolute: false)
53
+ end
54
+
55
+ def empty?
56
+ path.empty?
57
+ end
58
+
59
+ def ==(other)
60
+ other.is_a?(Namespace) && other.path == path && other.absolute? == absolute?
61
+ end
62
+
63
+ alias eql? ==
64
+
65
+ def hash
66
+ path.hash ^ absolute?.hash
67
+ end
68
+
69
+ def split
70
+ last = path.last or return
71
+ parent = self.parent
72
+ [parent, last]
73
+ end
74
+
75
+ def to_s
76
+ if empty?
77
+ absolute? ? "::" : ""
78
+ else
79
+ s = path.join("::")
80
+ absolute? ? "::#{s}::" : "#{s}::"
81
+ end
82
+ end
83
+
84
+ def to_type_name
85
+ parent, name = split
86
+
87
+ raise unless name
88
+ raise unless parent
89
+
90
+ TypeName.new(name: name, namespace: parent)
91
+ end
92
+
93
+ def self.parse(string)
94
+ if string.start_with?("::")
95
+ new(path: string.split("::").drop(1).map(&:to_sym), absolute: true)
96
+ else
97
+ new(path: string.split("::").map(&:to_sym), absolute: false)
98
+ end
99
+ end
100
+
101
+ def ascend
102
+ if block_given?
103
+ current = self
104
+
105
+ until current.empty?
106
+ yield current
107
+ current = _ = current.parent
108
+ end
109
+
110
+ yield current
111
+
112
+ self
113
+ else
114
+ enum_for(:ascend)
115
+ end
116
+ end
117
+ end
118
+ end
119
+
120
+ module Kernel
121
+ def Namespace(name)
122
+ warn "Kernel#Namespace() is deprecated. Use RBS::Namespace.parse instead.", category: :deprecated
123
+ RBS::Namespace.parse(name)
124
+ end
125
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RBS
4
+ class Parser
5
+ class LexResult
6
+ attr_reader :buffer
7
+ attr_reader :value
8
+
9
+ def initialize(buffer:, value:)
10
+ @buffer = buffer
11
+ @value = value
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RBS
4
+ class Parser
5
+ class Token
6
+ attr_reader :type
7
+ attr_reader :location
8
+
9
+ def initialize(type:, location:)
10
+ @type = type
11
+ @location = location
12
+ end
13
+
14
+ def value
15
+ @location.source
16
+ end
17
+
18
+ def comment?
19
+ @type == :tCOMMENT || @type == :tLINECOMMENT
20
+ end
21
+ end
22
+ end
23
+ end