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,267 @@
1
+ module RBS
2
+ module AST
3
+ module Declarations
4
+ type t = Class | Module | Interface | Constant | Global | TypeAlias | ClassAlias | ModuleAlias
5
+
6
+ class Base
7
+ end
8
+
9
+ interface _WithMember
10
+ def members: () -> Array[untyped]
11
+ end
12
+
13
+ module NestedDeclarationHelper : _WithMember
14
+ def each_member: () { (Members::t) -> void } -> void
15
+ | () -> Enumerator[Members::t, void]
16
+
17
+ def each_decl: () { (t) -> void } -> void
18
+ | () -> Enumerator[t, void]
19
+ end
20
+
21
+ module MixinHelper : _WithMember
22
+ type mixin_member = Members::Include | Members::Extend | Members::Prepend
23
+
24
+ @mixins: Array[mixin_member]
25
+
26
+ def each_mixin: () { (mixin_member) -> void } -> void
27
+ | () -> Enumerator[mixin_member, void]
28
+ end
29
+
30
+ class Class < Base
31
+ class Super
32
+ # String
33
+ # ^^^^^^ name
34
+ #
35
+ # Array[String]
36
+ # ^^^^^ name
37
+ # ^^^^^^^^ args
38
+ #
39
+ type loc = Location[:name, :args]
40
+
41
+ attr_reader name: TypeName
42
+ attr_reader args: Array[Types::t]
43
+ attr_reader location: loc?
44
+
45
+ def initialize: (name: TypeName, args: Array[Types::t], location: loc?) -> void
46
+
47
+ include _HashEqual
48
+ include _ToJson
49
+ end
50
+
51
+ type member = Members::t | t
52
+
53
+ # class Foo end
54
+ # ^^^^^ keyword
55
+ # ^^^ name
56
+ # ^^^ end
57
+ #
58
+ # class Foo[A] < String end
59
+ # ^^^^^ keyword
60
+ # ^^^ name
61
+ # ^^^ type_params
62
+ # ^ lt
63
+ # ^^^ end
64
+ #
65
+ type loc = Location[:keyword | :name | :end, :type_params | :lt]
66
+
67
+ include NestedDeclarationHelper
68
+ include MixinHelper
69
+
70
+ attr_reader name: TypeName
71
+ attr_reader type_params: Array[TypeParam]
72
+ attr_reader members: Array[member]
73
+ attr_reader super_class: Super?
74
+ attr_reader annotations: Array[Annotation]
75
+ attr_reader location: loc?
76
+ attr_reader comment: Comment?
77
+
78
+ def initialize: (name: TypeName, type_params: Array[TypeParam], members: Array[member], super_class: Super?, annotations: Array[Annotation], location: loc?, comment: Comment?) -> void
79
+
80
+ def update: (?name: TypeName, ?type_params: Array[TypeParam], ?members: Array[member], ?super_class: Super?, ?annotations: Array[Annotation], ?location: loc?, ?comment: Comment?) -> Declarations::Class
81
+
82
+ include _HashEqual
83
+ include _ToJson
84
+ end
85
+
86
+ class Module < Base
87
+ class Self
88
+ # _Each[String]
89
+ # ^^^^^ name
90
+ # ^^^^^^^^ args
91
+ #
92
+ type loc = Location[:name, :args]
93
+
94
+ attr_reader name: TypeName
95
+ attr_reader args: Array[Types::t]
96
+ attr_reader location: loc?
97
+
98
+ def initialize: (name: TypeName, args: Array[Types::t], location: loc?) -> void
99
+
100
+ include _HashEqual
101
+ include _ToJson
102
+
103
+ def to_s: () -> String
104
+ end
105
+
106
+ type member = Members::t | t
107
+
108
+ # module Foo end
109
+ # ^^^^^^ keyword
110
+ # ^^^ name
111
+ # ^^^ end
112
+ #
113
+ # module Foo[A] : BasicObject end
114
+ # ^^^^^^ keyword
115
+ # ^^^ name
116
+ # ^^^ type_params
117
+ # ^ colon
118
+ # ^^^^^^^^^^^ self_types
119
+ # ^^^ end
120
+ #
121
+ type loc = Location[:keyword | :name | :end, :type_params | :colon | :self_types]
122
+
123
+ include NestedDeclarationHelper
124
+ include MixinHelper
125
+
126
+ attr_reader name: TypeName
127
+ attr_reader type_params: Array[TypeParam]
128
+ attr_reader members: Array[member]
129
+ attr_reader location: loc?
130
+ attr_reader annotations: Array[Annotation]
131
+ attr_reader self_types: Array[Self]
132
+ attr_reader comment: Comment?
133
+
134
+ def initialize: (name: TypeName, type_params: Array[TypeParam], members: Array[member], location: loc?, annotations: Array[Annotation], self_types: Array[Self], comment: Comment?) -> void
135
+
136
+ def update: (?name: TypeName, ?type_params: Array[TypeParam], ?members: Array[member], ?location: loc?, ?annotations: Array[Annotation], ?self_types: Array[Self], ?comment: Comment?) -> Declarations::Module
137
+
138
+ include _HashEqual
139
+ include _ToJson
140
+ end
141
+
142
+ class Interface < Base
143
+ type member = Members::t
144
+
145
+ # interface _Foo end
146
+ # ^^^^^^^^^ keyword
147
+ # ^^^^ name
148
+ # ^^^ end
149
+ #
150
+ # interface _Bar[A, B] end
151
+ # ^^^^^^^^^ keyword
152
+ # ^^^^ name
153
+ # ^^^^^^ type_params
154
+ # ^^^ end
155
+ #
156
+ type loc = Location[:name | :keyword | :end, :type_params]
157
+
158
+ attr_reader name: TypeName
159
+ attr_reader type_params: Array[TypeParam]
160
+ attr_reader members: Array[member]
161
+ attr_reader annotations: Array[Annotation]
162
+ attr_reader location: loc?
163
+ attr_reader comment: Comment?
164
+
165
+ def initialize: (name: TypeName, type_params: Array[TypeParam], members: Array[member], annotations: Array[Annotation], location: loc?, comment: Comment?) -> void
166
+
167
+ def update: (?name: TypeName, ?type_params: Array[TypeParam], ?members: Array[member], ?annotations: Array[Annotation], ?location: loc?, ?comment: Comment?) -> Declarations::Interface
168
+
169
+ include MixinHelper
170
+
171
+ include _HashEqual
172
+ include _ToJson
173
+ end
174
+
175
+ class TypeAlias < Base
176
+ # type loc[T] = Location[T, bot]
177
+ # ^^^^ keyword
178
+ # ^^^ name
179
+ # ^^^ type_params
180
+ # ^ eq
181
+ #
182
+ type loc = Location[:keyword | :name | :eq, :type_params]
183
+
184
+ attr_reader name: TypeName
185
+ attr_reader type_params: Array[TypeParam]
186
+ attr_reader type: Types::t
187
+ attr_reader annotations: Array[Annotation]
188
+ attr_reader location: loc?
189
+ attr_reader comment: Comment?
190
+
191
+ def initialize: (name: TypeName, type_params: Array[TypeParam], type: Types::t, annotations: Array[Annotation], location: loc?, comment: Comment?) -> void
192
+
193
+ include _HashEqual
194
+ include _ToJson
195
+ end
196
+
197
+ class Constant < Base
198
+ # VERSION: String
199
+ # ^^^^^^^ name
200
+ # ^ colon
201
+ #
202
+ type loc = Location[:name | :colon, bot]
203
+
204
+ attr_reader name: TypeName
205
+ attr_reader type: Types::t
206
+ attr_reader location: loc?
207
+ attr_reader comment: Comment?
208
+
209
+ def initialize: (name: TypeName, type: Types::t, location: loc?, comment: Comment?) -> void
210
+
211
+ include _HashEqual
212
+ include _ToJson
213
+ end
214
+
215
+ class Global < Base
216
+ # $SIZE: String
217
+ # ^^^^^ name
218
+ # ^ colon
219
+ #
220
+ type loc = Location[:name | :colon, bot]
221
+
222
+ attr_reader name: Symbol
223
+ attr_reader type: Types::t
224
+ attr_reader location: loc?
225
+ attr_reader comment: Comment?
226
+
227
+ def initialize: (name: Symbol, type: Types::t, location: loc?, comment: Comment?) -> void
228
+
229
+ include _HashEqual
230
+ include _ToJson
231
+ end
232
+
233
+ class AliasDecl < Base
234
+ # module Foo = Bar
235
+ # ^^^^^^ keyword
236
+ # ^^^ new_name
237
+ # ^ eq
238
+ # ^^^ old_name
239
+ #
240
+ # class Foo = Bar
241
+ # ^^^^^ keyword
242
+ #
243
+ type loc = Location[:keyword | :new_name | :eq | :old_name, bot]
244
+
245
+ attr_reader new_name: TypeName
246
+
247
+ attr_reader old_name: TypeName
248
+
249
+ attr_reader location: loc?
250
+
251
+ attr_reader comment: Comment?
252
+
253
+ def initialize: (new_name: TypeName, old_name: TypeName, location: loc?, comment: Comment?) -> void
254
+
255
+ include _HashEqual
256
+ end
257
+
258
+ class ClassAlias < AliasDecl
259
+ include _ToJson
260
+ end
261
+
262
+ class ModuleAlias < AliasDecl
263
+ include _ToJson
264
+ end
265
+ end
266
+ end
267
+ end
@@ -0,0 +1,173 @@
1
+ module RBS
2
+ class Definition
3
+ type accessibility = :public | :private
4
+
5
+ class Variable
6
+ attr_reader parent_variable: Variable?
7
+ attr_reader type: Types::t
8
+ attr_reader declared_in: TypeName
9
+
10
+ def initialize: (parent_variable: Variable?, type: Types::t, declared_in: TypeName) -> void
11
+
12
+ def sub: (Substitution) -> Variable
13
+ end
14
+
15
+ class Method
16
+ type method_member = AST::Members::MethodDefinition | AST::Members::AttrReader | AST::Members::AttrAccessor | AST::Members::AttrWriter
17
+
18
+ class TypeDef
19
+ attr_reader type: MethodType
20
+ attr_reader member: method_member
21
+ attr_reader defined_in: TypeName
22
+ attr_reader implemented_in: TypeName?
23
+
24
+ # Annotations given to `#member`
25
+ attr_reader member_annotations: Array[AST::Annotation]
26
+
27
+ # Annotations given to the overload associated to the method type
28
+ attr_reader overload_annotations: Array[AST::Annotation]
29
+
30
+ # Concatenation of `member_annotations` and `overload_annotations`
31
+ attr_reader annotations: Array[AST::Annotation]
32
+
33
+ def initialize: (type: MethodType, member: method_member, defined_in: TypeName, implemented_in: TypeName?, ?overload_annotations: Array[AST::Annotation]) -> void
34
+
35
+ def comment: () -> AST::Comment?
36
+
37
+ def update: (?type: MethodType, ?member: method_member, ?defined_in: TypeName, ?implemented_in: TypeName?) -> TypeDef
38
+
39
+ def overload?: () -> bool
40
+ end
41
+
42
+ attr_reader super_method: Method?
43
+ attr_reader defs: Array[TypeDef]
44
+ attr_reader accessibility: accessibility
45
+
46
+ attr_reader defined_in: TypeName?
47
+ attr_reader implemented_in: TypeName?
48
+ attr_reader method_types: Array[MethodType]
49
+ attr_reader comments: Array[AST::Comment]
50
+
51
+ attr_reader members: Array[method_member]
52
+ attr_reader alias_of: Method?
53
+
54
+ # Unused, always returns empty array
55
+ attr_reader extra_annotations: Array[AST::Annotation]
56
+
57
+ # Union of annotations given to `defs`, not contains annotations given to each overload
58
+ attr_reader annotations: Array[AST::Annotation]
59
+
60
+ # Note that the annotations given through `annotations:` keyword is ignored.
61
+ #
62
+ def initialize: (super_method: Method?,
63
+ defs: Array[TypeDef],
64
+ accessibility: accessibility,
65
+ alias_of: Method?,
66
+ ?annotations: Array[AST::Annotation]) -> void
67
+
68
+ def public?: () -> bool
69
+
70
+ def private?: () -> bool
71
+
72
+ # Substitutes type variables to some types.
73
+ # Takes care of type parameter bounds.
74
+ #
75
+ def sub: (Substitution) -> Method
76
+
77
+ # Applies the mapping from `Types::t` to `Types::t`.
78
+ #
79
+ # Note this method doesn't handle upper bound in type params.
80
+ # You may want to use `#map_type_bound` explicitly, or `#sub` for simple substitution.
81
+ #
82
+ def map_type: () { (Types::t) -> Types::t } -> Method
83
+
84
+ def map_type_bound: () { (Types::t) -> Types::t } -> Method
85
+
86
+ def map_method_type: () { (MethodType) -> MethodType } -> Method
87
+
88
+ def update: (
89
+ ?super_method: Method?,
90
+ ?defs: Array[TypeDef],
91
+ ?accessibility: accessibility,
92
+ ?alias_of: Method?,
93
+ ?annotations: Array[AST::Annotation]
94
+ ) -> Method
95
+ end
96
+
97
+ module Ancestor
98
+ type t = Instance | Singleton
99
+
100
+ class Instance
101
+ type source = :super # Inheritance
102
+ | nil # Itself
103
+ | AST::Members::Include | AST::Members::Extend | AST::Members::Prepend # AST
104
+ | AST::Declarations::Module::Self
105
+
106
+ attr_reader name: TypeName
107
+ attr_reader args: Array[Types::t]
108
+ attr_reader source: source
109
+
110
+ def initialize: (name: TypeName, args: Array[Types::t], source: source) -> void
111
+ end
112
+
113
+ class Singleton
114
+ attr_reader name: TypeName
115
+
116
+ def initialize: (name: TypeName) -> void
117
+ end
118
+ end
119
+
120
+ class InstanceAncestors
121
+ attr_reader type_name: TypeName
122
+ attr_reader params: Array[Symbol]
123
+ attr_reader ancestors: Array[Ancestor::t]
124
+
125
+ def initialize: (type_name: TypeName, params: Array[Symbol], ancestors: Array[Ancestor::t]) -> void
126
+
127
+ def apply: (Array[Types::t], env: Environment, location: Location[untyped, untyped]?) -> Array[Ancestor::t]
128
+ end
129
+
130
+ class SingletonAncestors
131
+ attr_reader type_name: TypeName
132
+ attr_reader ancestors: Array[Ancestor::t]
133
+
134
+ def initialize: (type_name: TypeName, ancestors: Array[Ancestor::t]) -> void
135
+ end
136
+
137
+ type self_type = Types::ClassSingleton | Types::ClassInstance | Types::Interface
138
+ type definition_entry = Environment::ModuleEntry | Environment::ClassEntry | Environment::InterfaceEntry
139
+
140
+ attr_reader type_name: TypeName
141
+ attr_reader entry: definition_entry
142
+ attr_reader ancestors: InstanceAncestors | SingletonAncestors | nil
143
+ attr_reader self_type: self_type
144
+ attr_reader methods: Hash[Symbol, Method]
145
+ attr_reader instance_variables: Hash[Symbol, Variable]
146
+ attr_reader class_variables: Hash[Symbol, Variable]
147
+
148
+ def initialize: (type_name: TypeName, entry: definition_entry, self_type: self_type, ancestors: InstanceAncestors | SingletonAncestors | nil) -> void
149
+
150
+ def class?: () -> bool
151
+
152
+ def module?: () -> bool
153
+
154
+ def interface?: () -> bool
155
+
156
+ def class_type?: () -> bool
157
+
158
+ def instance_type?: () -> bool
159
+
160
+ def interface_type?: () -> bool
161
+
162
+ def type_params: () -> Array[Symbol]
163
+
164
+ def type_params_decl: () -> Array[AST::TypeParam]
165
+
166
+ def sub: (Substitution) -> Definition
167
+
168
+ def map_method_type: () { (MethodType) -> MethodType } -> Definition
169
+
170
+ def each_type: () { (Types::t) -> void } -> void
171
+ | () -> Enumerator[Types::t, void]
172
+ end
173
+ end
@@ -0,0 +1,165 @@
1
+ module RBS
2
+ # DefinitionBuilder translates TypeName to Definition of the type
3
+ #
4
+ # It also provides semantic utilities that depends on Environment.
5
+ #
6
+ class DefinitionBuilder
7
+ attr_reader env: Environment
8
+ attr_reader ancestor_builder: AncestorBuilder
9
+ attr_reader method_builder: MethodBuilder
10
+
11
+ attr_reader instance_cache: Hash[TypeName, Definition | false | nil]
12
+ attr_reader singleton_cache: Hash[TypeName, Definition | false | nil]
13
+ attr_reader singleton0_cache: Hash[TypeName, Definition | false | nil]
14
+ attr_reader interface_cache: Hash[TypeName, Definition | false | nil]
15
+
16
+ def initialize: (env: Environment, ?ancestor_builder: AncestorBuilder?, ?method_builder: MethodBuilder?) -> void
17
+
18
+ # Returns a Definition of a interface
19
+ #
20
+ def build_interface: (TypeName) -> Definition
21
+
22
+ # Returns a Definition of an instance type
23
+ #
24
+ # If TypeName is a module and `no_self_types` is `true`, it won't have methods of _self type constraints_.
25
+ # This typically happens when definition is being calculated for mixin.
26
+ #
27
+ def build_instance: (TypeName) -> Definition
28
+
29
+ # Returns a Definition of a singleton type
30
+ def build_singleton: (TypeName) -> Definition
31
+
32
+ # Validates the given Namespace and its ancestor namespaces exists
33
+ #
34
+ # Raises NoTypeFoundError
35
+ #
36
+ def ensure_namespace!: (Namespace, location: Location[untyped, untyped]?) -> void
37
+
38
+ # Expand a type alias of given name without type arguments.
39
+ # Raises an error if the type alias requires arguments.
40
+ #
41
+ # Assume `type foo[T] = [T, T]`:
42
+ #
43
+ # ```
44
+ # expand_alias("::foo") # => error
45
+ # ```
46
+ #
47
+ def expand_alias: (TypeName) -> Types::t
48
+
49
+ # Expand a type alias of given name with arguments of `untyped`.
50
+ #
51
+ # Assume `type foo[T] = [T, T]`:
52
+ #
53
+ # ```
54
+ # expand_alias1("::foo") # => [untyped, untyped]
55
+ # ```
56
+ #
57
+ def expand_alias1: (TypeName) -> Types::t
58
+
59
+ # Expand a type alias of given name with `args`.
60
+ #
61
+ # Assume `type foo[T] = [T, T]`:
62
+ #
63
+ # ```
64
+ # expand_alias2("::foo", ["::Integer"]) # => [::Integer, ::Integer]
65
+ # ```
66
+ #
67
+ def expand_alias2: (TypeName, Array[Types::t] args) -> Types::t
68
+
69
+ # Validates presence of type names recursively
70
+ #
71
+ # Assumes the type names are already resolved.
72
+ # Raises NoTypeFoundError in case of failure.
73
+ #
74
+ # Normalizes type names in the given type automatically.
75
+ #
76
+ def validate_type_presence: (Types::t) -> void
77
+
78
+ # Validates presence of an absolute type name
79
+ #
80
+ # Raises NoTypeFoundError in case of error.
81
+ #
82
+ # Normalizes the given type name automatically.
83
+ #
84
+ def validate_type_name: (TypeName, Location[untyped, untyped]?) -> void
85
+
86
+ # Returns a new DefinitionBuilder with updated Environment, AncestorBuilder, and exceptions
87
+ #
88
+ def update: (env: Environment, ancestor_builder: AncestorBuilder, except: _Each[TypeName]) -> DefinitionBuilder
89
+
90
+ private
91
+
92
+ def validate_super_class!: (TypeName, Environment::ClassEntry) -> void
93
+
94
+ def build_singleton0: (TypeName) -> Definition
95
+
96
+ # Returns `interface_methods` from given array of interface ancestors
97
+ #
98
+ def interface_methods: (Array[Definition::Ancestor::Instance] interface_ancestors) -> interface_methods
99
+
100
+ def try_cache: (TypeName, cache: Hash[TypeName, Definition | false | nil]) { () -> Definition } -> Definition
101
+
102
+ def validate_params_with: (Array[AST::TypeParam], result: VarianceCalculator::Result) { (AST::TypeParam) -> void } -> void
103
+
104
+ def validate_type_params: (Definition, ancestors: AncestorBuilder::OneAncestors, methods: MethodBuilder::Methods) -> void
105
+
106
+ def source_location: (Definition::Ancestor::Instance::source, AST::Declarations::t) -> Location[untyped, untyped]?
107
+
108
+ def insert_variable: (TypeName, Hash[Symbol, Definition::Variable], name: Symbol, type: Types::t) -> void
109
+
110
+ # Add method definition to `methods`, which will be merged to `class_definition` after defining all methods at this *level* -- class, module, or interface
111
+ #
112
+ # `class_definition` is a definition of given type, but it has definitions of prior levels.
113
+ #
114
+ def define_method: (
115
+ Hash[Symbol, Definition::Method] methods,
116
+ Definition class_definition,
117
+ MethodBuilder::Methods::Definition method_definition,
118
+ Substitution subst,
119
+ Hash[Symbol, Definition::Method]? self_type_methods,
120
+ defined_in: TypeName,
121
+ ?implemented_in: TypeName?
122
+ ) -> void
123
+
124
+ # The `interface_methods` type describes the association between the interface name to its name and the *mixin* to a module
125
+ #
126
+ type interface_methods = Hash[
127
+ Definition::Ancestor::Instance,
128
+ [MethodBuilder::Methods, AST::Members::Include | AST::Members::Extend]
129
+ ]
130
+
131
+ # Add method definitions from `module_methods` to `definition`
132
+ #
133
+ # It also processes interface mixins, with duplication detection.
134
+ # It doesn't process module mixins.
135
+ #
136
+ def import_methods: (
137
+ Definition definition,
138
+ TypeName module_name,
139
+ MethodBuilder::Methods module_methods,
140
+ interface_methods interface_methods,
141
+ Substitution subst,
142
+ Hash[Symbol, Definition::Method]? self_type_methods,
143
+ ) -> void
144
+
145
+ # Updates `definition` with methods and variables of `type_name` that can be a module or a class
146
+ #
147
+ # It processes includes and prepends recursively.
148
+ #
149
+ def define_instance: (Definition definition, TypeName type_name, Substitution subst) -> void
150
+
151
+ # Updates `definition` with methods defined in an interface `type_name`
152
+ #
153
+ # It processes includes recursively
154
+ #
155
+ def define_interface: (Definition definition, TypeName type_name, Substitution subst) -> void
156
+
157
+ # Returns a substitution that corresponds to type application
158
+ #
159
+ # ```
160
+ # tapp_subst(`::Array`, [`::Integer`]) # => Substitution.build([:Elem], [`::Integer`])
161
+ # ```
162
+ #
163
+ def tapp_subst: (TypeName, Array[Types::t]) -> Substitution
164
+ end
165
+ end
data/sig/diff.rbs ADDED
@@ -0,0 +1,28 @@
1
+ module RBS
2
+ class Diff
3
+ @type_name: TypeName
4
+ @library_options: RBS::CLI::LibraryOptions
5
+ @after_path: Array[String]
6
+ @before_path: Array[String]
7
+ @detail: boolish
8
+
9
+ def initialize: (
10
+ type_name: TypeName,
11
+ library_options: RBS::CLI::LibraryOptions,
12
+ ?after_path: Array[String],
13
+ ?before_path: Array[String],
14
+ ?detail: boolish
15
+ ) -> void
16
+
17
+ def each_diff: () { (String before, String after) -> void } -> void
18
+
19
+ private def each_diff_by: (Symbol kind, Hash[::Symbol, Definition::Method] before_methods, Hash[::Symbol, Definition::Method] after_methods) { (String before, String after) -> void } -> void
20
+ private def build_methods: (Array[String] path) -> [ Hash[::Symbol, Definition::Method], Hash[::Symbol, Definition::Method] , Hash[Symbol, Constant]]
21
+ private def build_env: (Array[String] path) -> Environment
22
+ private def build_builder: (Environment env) -> DefinitionBuilder
23
+ private def definition_method_to_s: (Symbol key, Symbol kind, Definition::Method definition_method) -> String?
24
+ private def each_diff_methods: (Symbol kind, Hash[Symbol, Definition::Method], Hash[Symbol, Definition::Method]) { (String before, String after) -> void } -> void
25
+ private def each_diff_constants: (Hash[Symbol, Constant] before_constants, Hash[Symbol, Constant] after_constants) { (String before, String after) -> void } -> void
26
+ private def constant_to_s: (Constant?) -> String
27
+ end
28
+ end
@@ -0,0 +1,77 @@
1
+ module RBS
2
+ module AST
3
+ module Directives
4
+ type t = Use | ResolveTypeNames
5
+
6
+ class Base
7
+ end
8
+
9
+ # ```
10
+ # use Foo, Foo::Bar as FBar, Foo:Baz::*
11
+ # ```
12
+ #
13
+ class Use < Base
14
+ type clause = SingleClause | WildcardClause
15
+
16
+ class SingleClause
17
+ # Foo::Bar
18
+ # ^^^^^^^^ type_name
19
+ #
20
+ # Foo::Bar as X
21
+ # ^^ keyword
22
+ # ^ new_name
23
+ #
24
+ type loc = Location[:type_name, :keyword | :new_name]
25
+
26
+ attr_reader type_name: TypeName
27
+
28
+ attr_reader new_name: Symbol?
29
+
30
+ attr_reader location: loc?
31
+
32
+ def initialize: (type_name: TypeName, new_name: Symbol?, location: loc?) -> void
33
+ end
34
+
35
+ class WildcardClause
36
+ # Foo::Bar::*
37
+ # ^^^^^^^^^^ namespace
38
+ # ^ star
39
+ #
40
+ type loc = Location[:namespace | :star, bot]
41
+
42
+ attr_reader namespace: Namespace
43
+
44
+ attr_reader location: loc?
45
+
46
+ def initialize: (namespace: Namespace, location: loc?) -> void
47
+ end
48
+
49
+ # use Foo
50
+ # ^^^ keyword
51
+ type loc = Location[:keyword, bot]
52
+
53
+ attr_reader clauses: Array[clause]
54
+
55
+ attr_reader location: loc?
56
+
57
+ def initialize: (clauses: Array[clause], location: loc?) -> void
58
+ end
59
+
60
+ class ResolveTypeNames < Base
61
+ # ```
62
+ # # resolve-type-names: false
63
+ # ^^^^^^^^^^^^^^^^^^ keyword
64
+ # ^ colon
65
+ # ^^^^^ value
66
+ # ```
67
+ type loc = Location[:keyword | :colon | :value, bot]
68
+
69
+ attr_reader location: loc?
70
+
71
+ attr_reader value: bool
72
+
73
+ def initialize: (value: bool, location: loc?) -> void
74
+ end
75
+ end
76
+ end
77
+ end