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,163 @@
1
+ module RBS
2
+ class DefinitionBuilder
3
+ # AncestorBuilder calculates the ancestors of a class or module.
4
+ #
5
+ class AncestorBuilder
6
+ # OneAncestors represents a list of _direct_ ancestors of a type name
7
+ #
8
+ # _Direct_ ancestors is defined as follows:
9
+ #
10
+ # * Super class is a direct ancestor
11
+ # * Self type constraints are direct ancestors
12
+ # * Mixin modules are direct ancestors
13
+ # * Mixin interfaces are direct ancestors
14
+ #
15
+ # The optional attributes are defined by the type of the ancestors object, one of the following five groups:
16
+ #
17
+ # 1. Instance of a class -- with super_class, included_modules, included_interfaces, and prepended_modules
18
+ # 2. Instance of a module -- with self_types, included_modules, included_interfaces, and prepended_modules
19
+ # 3. Singleton of a class or module -- with super_class, extended_modules, and extended_interfaces
20
+ # 4. Interface -- with included_interfaces
21
+ #
22
+ class OneAncestors
23
+ attr_reader type_name: TypeName
24
+ attr_reader params: Array[Symbol]?
25
+
26
+ # Returns super_class ancestor if specified
27
+ #
28
+ # * Always `nil` if this is not a class.
29
+ #
30
+ attr_reader super_class: Definition::Ancestor::t?
31
+
32
+ # Returns list of _self type constraints_ of a module
33
+ #
34
+ # * Returns `nil` if it is not a module instance.
35
+ #
36
+ attr_reader self_types: Array[Definition::Ancestor::Instance]?
37
+
38
+ # Returns the list of included modules
39
+ #
40
+ # * Returns `nil` if it is an interface or it is a singleton.
41
+ #
42
+ attr_reader included_modules: Array[Definition::Ancestor::Instance]?
43
+
44
+ # Returns the list of included interfaces
45
+ #
46
+ # * Returns `nil` it it is a singleton.
47
+ #
48
+ attr_reader included_interfaces: Array[Definition::Ancestor::Instance]?
49
+
50
+ # Returns the list of prepended modules
51
+ #
52
+ # * Returns `nil` if it is an interface or it is a singleton.
53
+ #
54
+ attr_reader prepended_modules: Array[Definition::Ancestor::Instance]?
55
+
56
+ # Returns the list of extended modules
57
+ #
58
+ # * Returns `nil` if it is an interface or it is an instance.
59
+ #
60
+ attr_reader extended_modules: Array[Definition::Ancestor::Instance]?
61
+
62
+ # Returns the list of extended interfaces
63
+ #
64
+ # * Returns `nil` if it is an interface or it is an instance.
65
+ #
66
+ attr_reader extended_interfaces: Array[Definition::Ancestor::Instance]?
67
+
68
+ def initialize: (type_name: TypeName,
69
+ params: Array[Symbol]?,
70
+ super_class: Definition::Ancestor::t?,
71
+ self_types: Array[Definition::Ancestor::Instance]?,
72
+ included_modules: Array[Definition::Ancestor::Instance]?,
73
+ included_interfaces: Array[Definition::Ancestor::Instance]?,
74
+ prepended_modules: Array[Definition::Ancestor::Instance]?,
75
+ extended_modules: Array[Definition::Ancestor::Instance]?,
76
+ extended_interfaces: Array[Definition::Ancestor::Instance]?) -> void
77
+
78
+ def each_ancestor: { (Definition::Ancestor::t) -> void } -> void
79
+ | -> Enumerator[Definition::Ancestor::t, void]
80
+
81
+ # Returns a OneAncestors object for class instance
82
+ def self.class_instance: (type_name: TypeName, params: Array[Symbol], super_class: Definition::Ancestor::t?) -> instance
83
+
84
+ # Returns a OneAncestors object for module instance
85
+ def self.module_instance: (type_name: TypeName, params: Array[Symbol]) -> instance
86
+
87
+ # Returns a OneAncestors object for class/module singleton
88
+ def self.singleton: (type_name: TypeName, super_class: Definition::Ancestor::t) -> instance
89
+
90
+ # Returns a OneAncestors object for interface
91
+ def self.interface: (type_name: TypeName, params: Array[Symbol]) -> instance
92
+
93
+ def each_included_module: () { (Definition::Ancestor::Instance) -> void } -> void
94
+ | () -> Enumerator[Definition::Ancestor::Instance, void]
95
+
96
+ def each_included_interface: () { (Definition::Ancestor::Instance) -> void } -> void
97
+ | () -> Enumerator[Definition::Ancestor::Instance, void]
98
+
99
+ def each_prepended_module: () { (Definition::Ancestor::Instance) -> void } -> void
100
+ | () -> Enumerator[Definition::Ancestor::Instance, void]
101
+
102
+ def each_extended_module: () { (Definition::Ancestor::Instance) -> void } -> void
103
+ | () -> Enumerator[Definition::Ancestor::Instance, void]
104
+
105
+ def each_extended_interface: () { (Definition::Ancestor::Instance) -> void } -> void
106
+ | () -> Enumerator[Definition::Ancestor::Instance, void]
107
+
108
+ def each_self_type: () { (Definition::Ancestor::Instance) -> void } -> void
109
+ | () -> Enumerator[Definition::Ancestor::Instance, void]
110
+ end
111
+
112
+ attr_reader env: Environment
113
+
114
+ attr_reader one_instance_ancestors_cache: Hash[TypeName, OneAncestors]
115
+ attr_reader instance_ancestors_cache: Hash[TypeName, Definition::InstanceAncestors]
116
+
117
+ attr_reader one_singleton_ancestors_cache: Hash[TypeName, OneAncestors]
118
+ attr_reader singleton_ancestors_cache: Hash[TypeName, Definition::SingletonAncestors]
119
+
120
+ attr_reader one_interface_ancestors_cache: Hash[TypeName, OneAncestors]
121
+ attr_reader interface_ancestors_cache: Hash[TypeName, Definition::InstanceAncestors]
122
+
123
+ def initialize: (env: Environment) -> void
124
+
125
+ def instance_ancestors: (TypeName, ?building_ancestors: Array[Definition::Ancestor::t]) -> Definition::InstanceAncestors
126
+
127
+ def singleton_ancestors: (TypeName, ?building_ancestors: Array[Definition::Ancestor::t]) -> Definition::SingletonAncestors
128
+
129
+ def interface_ancestors: (TypeName, ?building_ancestors: Array[Definition::Ancestor::t]) -> Definition::InstanceAncestors
130
+
131
+ def one_instance_ancestors: (TypeName) -> OneAncestors
132
+
133
+ def one_singleton_ancestors: (TypeName) -> OneAncestors
134
+
135
+ def one_interface_ancestors: (TypeName) -> OneAncestors
136
+
137
+ private
138
+
139
+ def validate_super_class!: (TypeName, Environment::ClassEntry) -> void
140
+
141
+ def mixin_ancestors: (Environment::ClassEntry | Environment::ModuleEntry,
142
+ TypeName,
143
+ included_modules: Array[Definition::Ancestor::Instance]?,
144
+ included_interfaces: Array[Definition::Ancestor::Instance]?,
145
+ prepended_modules: Array[Definition::Ancestor::Instance]?,
146
+ extended_modules: Array[Definition::Ancestor::Instance]?,
147
+ extended_interfaces: Array[Definition::Ancestor::Instance]?) -> void
148
+
149
+ def mixin_ancestors0: (AST::Declarations::Class | AST::Declarations::Module | AST::Declarations::Interface,
150
+ TypeName,
151
+ align_params: Substitution?,
152
+ included_modules: Array[Definition::Ancestor::Instance]?,
153
+ included_interfaces: Array[Definition::Ancestor::Instance]?,
154
+ prepended_modules: Array[Definition::Ancestor::Instance]?,
155
+ extended_modules: Array[Definition::Ancestor::Instance]?,
156
+ extended_interfaces: Array[Definition::Ancestor::Instance]?) -> void
157
+
158
+ # Fill `#source` of instance ancestor if `ancestor.name == name` and its `source` is `nil`
159
+ #
160
+ def fill_ancestor_source: (Definition::Ancestor::t, name: TypeName, source: Definition::Ancestor::Instance::source) -> Definition::Ancestor::t
161
+ end
162
+ end
163
+ end
@@ -0,0 +1,60 @@
1
+ module RBS
2
+ # AncestorGraph is a utility class that helps iterating through ancestors and descendants of a class/module
3
+ #
4
+ # ```ruby
5
+ # graph = AncestorGraph.new(env: env, ancestor_builder: ancestor_builder)
6
+ #
7
+ # graph.each_parent(AncestorGraph::InstanceNode.new(type_name: TypeName.parse("::Object")))
8
+ # graph.each_ancestor(AncestorGraph::InstanceNode.new(type_name: TypeName.parse("::Object")))
9
+ #
10
+ # graph.each_child(AncestorGraph::InstanceNode.new(type_name: TypeName.parse("::Object")))
11
+ # graph.each_descendant(AncestorGraph::InstanceNode.new(type_name: TypeName.parse("::Object")))
12
+ # ```
13
+ #
14
+ # Note that the class works for class/module declarations.
15
+ # All of the *alias* classes/modules are ignored.
16
+ #
17
+ # * Alias classes/modules doesn't count as a parent nor child
18
+ # * Passing alias classes/modules to the method doesn't yield anything
19
+ #
20
+ class AncestorGraph
21
+ class InstanceNode
22
+ attr_reader type_name: TypeName
23
+ def initialize: (type_name: TypeName) -> void
24
+ end
25
+
26
+ class SingletonNode
27
+ attr_reader type_name: TypeName
28
+ def initialize: (type_name: TypeName) -> void
29
+ end
30
+
31
+ type node = InstanceNode | SingletonNode
32
+
33
+ attr_reader env: Environment
34
+ attr_reader ancestor_builder: DefinitionBuilder::AncestorBuilder
35
+ attr_reader parents: Hash[node, Set[node]]
36
+ attr_reader children: Hash[node, Set[node]]
37
+
38
+ def initialize: (env: Environment, ?ancestor_builder: DefinitionBuilder::AncestorBuilder) -> void
39
+
40
+ def each_parent: (node) { (node) -> void } -> void
41
+ | (node) -> Enumerator[node, void]
42
+
43
+ def each_ancestor: (node, ?yielded: Set[node]) { (node) -> void } -> void
44
+ | (node) -> Enumerator[node, void]
45
+
46
+ def each_child: (node) { (node) -> void } -> void
47
+ | (node) -> Enumerator[node, void]
48
+
49
+ def each_descendant: (node, ?yielded: Set[node]) { (node) -> void } -> void
50
+ | (node) -> Enumerator[node, void]
51
+
52
+ private
53
+
54
+ def build: () -> void
55
+
56
+ def build_ancestors: (node, DefinitionBuilder::AncestorBuilder::OneAncestors) -> void
57
+
58
+ def register: (parent: node, child: node) -> void
59
+ end
60
+ end
@@ -0,0 +1,102 @@
1
+ module RBS
2
+ module Annotate
3
+ class Annotations
4
+ type t = Skip | Source | Copy
5
+
6
+ def self.parse: (AST::Annotation) -> t?
7
+
8
+ attr_reader items: Array[t]
9
+
10
+ def initialize: (Array[t]) -> void
11
+
12
+ def skip?: () -> bool
13
+
14
+ def skip_all?: () -> bool
15
+
16
+ def test_path: (String path) -> bool
17
+
18
+ def test_path_string: (String pattern, String path) -> bool
19
+
20
+ def copy_annotation: -> Copy?
21
+
22
+ # Skip annotation allows skipping generating annotation of a subject.
23
+ #
24
+ # %a{annotate:rdoc:skip}
25
+ # %a{annotate:rdoc:skip:all}
26
+ #
27
+ class Skip
28
+ attr_reader annotation: AST::Annotation
29
+
30
+ attr_reader skip_children: bool
31
+
32
+ def initialize: (annotation: AST::Annotation, skip_children: bool) -> void
33
+
34
+ def hash: () -> Integer
35
+
36
+ def ==: (untyped) -> bool
37
+
38
+ alias eql? ==
39
+ end
40
+
41
+ # Source annotation allows where the documents are copied from.
42
+ #
43
+ # It allows specifying two directions: the source to read from, and the source to skip.
44
+ #
45
+ # %a{annotate:rdoc:source:from=ext/pathname}
46
+ # %a{annotate:rdoc:source:skip=ext/pathname/doc}
47
+ #
48
+ # When you want to specify several paths, repeat writing the Source annotation.
49
+ #
50
+ class Source
51
+ attr_reader annotation: AST::Annotation
52
+
53
+ attr_reader include_source: String?
54
+ attr_reader skip_source: String?
55
+
56
+ def initialize: (annotation: AST::Annotation, include: String) -> void
57
+ | (annotation: AST::Annotation, skip: String) -> void
58
+
59
+ def hash: () -> Integer
60
+
61
+ def ==: (untyped) -> bool
62
+
63
+ alias eql? ==
64
+ end
65
+
66
+ # Copy annotation allows copying the doc from another subject.
67
+ # This helps working with incorrect RDoc annotations.
68
+ #
69
+ # %a{annotate:rdoc:copy:Bar#baz}
70
+ # %a{annotate:rdoc:copy:Bar.baz}
71
+ # %a{annotate:rdoc:copy:Bar::Baz}
72
+ #
73
+ class Copy
74
+ attr_reader annotation: AST::Annotation
75
+
76
+ attr_reader source: String
77
+
78
+ def initialize: (annotation: AST::Annotation, source: String) -> void
79
+
80
+ # Returns a tuple of:
81
+ #
82
+ # - Type name
83
+ # - A pair of:
84
+ # - Boolean which holds if it is singleton
85
+ # - Name of method
86
+ def partition: () -> [TypeName, [bool, Symbol]?]
87
+
88
+ def type_name: () -> TypeName
89
+
90
+ def method_name: () -> Symbol?
91
+
92
+ def singleton?: () -> bool
93
+
94
+ def hash: () -> Integer
95
+
96
+ def ==: (untyped) -> bool
97
+
98
+ alias eql? ==
99
+ end
100
+ end
101
+ end
102
+ end
@@ -0,0 +1,24 @@
1
+ module RBS
2
+ module Annotate
3
+ class Formatter
4
+ attr_reader buffer: String
5
+
6
+ @pending_separator: String?
7
+
8
+ def initialize: () -> void
9
+
10
+ def <<: (String | RDoc::Markup::Document | nil) -> self
11
+
12
+ def margin: (?separator: String) -> self
13
+
14
+ def empty?: () -> bool
15
+
16
+ def format: (newline_at_end: bool) -> String
17
+
18
+ def self.translate: (RDoc::Markup::Document) -> String?
19
+
20
+ def self.each_part: (RDoc::Markup::Document | RDoc::Comment | String) { (RDoc::Markup::Document) -> void } -> void
21
+ | (RDoc::Markup::Document | RDoc::Comment | String) -> Enumerator[RDoc::Markup::Document, void]
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,82 @@
1
+ module RBS
2
+ module Annotate
3
+ class RDocAnnotator
4
+ attr_reader source: RDocSource
5
+
6
+ attr_accessor include_arg_lists: bool
7
+ attr_accessor include_filename: bool
8
+
9
+ def initialize: (source: RDocSource) -> void
10
+
11
+ def annotate_file: (Pathname, preserve: bool) -> void
12
+
13
+ def annotate_decls: (Array[AST::Declarations::t], ?outer: Array[Namespace]) -> void
14
+
15
+ interface _PathTester
16
+ def test_path: (String) -> bool
17
+ end
18
+
19
+ interface _WithRDocComment
20
+ def comment: () -> (RDoc::Markup::Document | RDoc::Comment | String)
21
+ end
22
+
23
+ def each_part: (Array[Object & _WithRDocComment], tester: _PathTester) { ([RDoc::Markup::Document, Object & _WithRDocComment]) -> void } -> void
24
+ | (Array[Object & _WithRDocComment], tester: _PathTester) -> Enumerator[[RDoc::Markup::Document, Object & _WithRDocComment], void]
25
+
26
+ def join_docs: (Array[String?], ?separator: String) -> String?
27
+
28
+ def doc_for_class: (TypeName, tester: _PathTester) -> String?
29
+
30
+ # Returns the formatted document of given method.
31
+ #
32
+ # Expands attribute documents, or alias documents if needed.
33
+ #
34
+ def doc_for_method: (TypeName, instance_method: Symbol, tester: _PathTester) -> String?
35
+ | (TypeName, singleton_method: Symbol, tester: _PathTester) -> String?
36
+
37
+
38
+ def doc_for_method0: (TypeName, instance_method: Symbol, tester: _PathTester) -> String?
39
+ | (TypeName, singleton_method: Symbol, tester: _PathTester) -> String?
40
+
41
+ # Having `require: nil` means any attribute is okay.
42
+ # Having `require: "R"` means _read attr_ is required.
43
+ # Having `require: "W"` means write attr_ is required.
44
+ #
45
+ def doc_for_attribute: (TypeName, Symbol, singleton: bool, ?require: nil | "R" | "W", tester: _PathTester) -> String?
46
+
47
+ def doc_for_alias: (TypeName, name: Symbol, singleton: bool, tester: _PathTester) -> String?
48
+
49
+ def doc_for_constant: (TypeName, tester: _PathTester) -> String?
50
+
51
+ def resolve_doc_source: (Annotations::Copy?, tester: _PathTester) { () -> String? } -> String?
52
+
53
+ def annotate_class: (AST::Declarations::Class | AST::Declarations::Module, outer: Array[Namespace]) -> void
54
+
55
+ def annotate_constant: (AST::Declarations::Constant, outer: Array[Namespace]) -> void
56
+
57
+ def annotate_method: (TypeName, AST::Members::MethodDefinition) -> void
58
+
59
+ def annotate_alias: (TypeName, AST::Members::Alias) -> void
60
+
61
+ def annotate_attribute: (TypeName, AST::Members::AttrReader | AST::Members::AttrWriter | AST::Members::AttrAccessor) -> void
62
+
63
+ def annotations: (_Annotated) -> Annotations
64
+
65
+ interface _Annotated
66
+ def annotations: -> Array[AST::Annotation]
67
+ end
68
+
69
+ # - If a string is given as `comment`, the content is attached to the object as a comment.
70
+ # - If empty string is given as `comment`, it deletes the original comment.
71
+ # - If `nil` is given as `comment`, it keeps the original comment.
72
+ #
73
+ def replace_comment: (Object & _Commented, String? comment) -> void
74
+
75
+ interface _Commented
76
+ def comment: () -> AST::Comment?
77
+ end
78
+
79
+ def resolve_name: (TypeName, outer: Array[Namespace]) -> TypeName
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,30 @@
1
+ module RBS
2
+ module Annotate
3
+ class RDocSource
4
+ attr_accessor with_system_dir: bool
5
+ attr_accessor with_gems_dir: bool
6
+ attr_accessor with_site_dir: bool
7
+ attr_accessor with_home_dir: bool
8
+
9
+ attr_reader extra_dirs: Array[Pathname]
10
+
11
+ attr_reader stores: Array[RDoc::Store]
12
+
13
+ def initialize: () -> void
14
+
15
+ def load: () -> void
16
+
17
+ # Extract documents from `CodeObject`s
18
+ def docs: () { () -> Array[RDoc::CodeObject]? } -> Array[RDoc::Markup::Document]?
19
+
20
+ def find_class: (TypeName) -> Array[RDoc::ClassModule]?
21
+
22
+ def find_const: (TypeName) -> Array[RDoc::Constant]?
23
+
24
+ def find_method: (TypeName, instance_method: Symbol) -> Array[RDoc::AnyMethod]?
25
+ | (TypeName, singleton_method: Symbol) -> Array[RDoc::AnyMethod]?
26
+
27
+ def find_attribute: (TypeName, Symbol, singleton: bool) -> Array[RDoc::Attr]?
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,27 @@
1
+ module RBS
2
+ module AST
3
+ # RBS allows writing annotations of declarations and members.
4
+ #
5
+ # ```rbs
6
+ # %a{annotation_here}
7
+ # class Hello
8
+ # %a{rbs:test:skip}
9
+ # def foo: () -> void
10
+ # end
11
+ # ```
12
+ class Annotation
13
+ attr_reader string: String
14
+ attr_reader location: Location[untyped, untyped]?
15
+
16
+ def initialize: (string: String, location: Location[untyped, untyped]?) -> void
17
+
18
+ def ==: (untyped other) -> bool
19
+
20
+ alias eql? ==
21
+
22
+ def hash: () -> Integer
23
+
24
+ include _ToJson
25
+ end
26
+ end
27
+ end
data/sig/buffer.rbs ADDED
@@ -0,0 +1,32 @@
1
+ module RBS
2
+ class Buffer
3
+ # Location in a buffer.
4
+ # A pair of line number (1 origin) and column number (0 origin).
5
+ #
6
+ type loc = [Integer, Integer]
7
+
8
+ # Name to identify Buffer.
9
+ attr_reader name: untyped
10
+
11
+ # The content of the buffer.
12
+ attr_reader content: String
13
+
14
+ @lines: Array[String]
15
+
16
+ @ranges: Array[Range[Integer]]
17
+
18
+ def initialize: (name: untyped name, content: String content) -> void
19
+
20
+ def lines: () -> Array[String]
21
+
22
+ def ranges: () -> Array[Range[Integer]]
23
+
24
+ # Translate position to location.
25
+ def pos_to_loc: (Integer pos) -> loc
26
+
27
+ # Translate location to position.
28
+ def loc_to_pos: (loc loc) -> Integer
29
+
30
+ def last_position: () -> Integer
31
+ end
32
+ end
@@ -0,0 +1,44 @@
1
+ module RBS
2
+ module BuiltinNames
3
+ class Name
4
+ attr_reader name: TypeName
5
+
6
+ @singleton_type: Types::t?
7
+
8
+ def initialize: (name: TypeName) -> void
9
+
10
+ def to_s: () -> String
11
+
12
+ def instance_type: (*Types::t) -> Types::ClassInstance
13
+
14
+ def instance_type?: (Types::t) -> bool
15
+
16
+ def singleton_type: () -> Types::ClassSingleton
17
+
18
+ def singleton_type?: (Types::t) -> bool
19
+
20
+ def self.define: (Symbol, ?namespace: Namespace) -> instance
21
+ end
22
+
23
+ BasicObject: Name
24
+ Object: Name
25
+ Kernel: Name
26
+ String: Name
27
+ Comparable: Name
28
+ Enumerable: Name
29
+ Class: Name
30
+ Module: Name
31
+ Array: Name
32
+ Hash: Name
33
+ Range: Name
34
+ Enumerator: Name
35
+ Set: Name
36
+ Symbol: Name
37
+ Integer: Name
38
+ Float: Name
39
+ Regexp: Name
40
+ TrueClass: Name
41
+ FalseClass: Name
42
+ Numeric: Name
43
+ end
44
+ end
@@ -0,0 +1,15 @@
1
+ module RBS
2
+ class CLI
3
+ class ColoredIO
4
+ attr_reader stdout: CLI::_IO
5
+ def initialize: (stdout: CLI::_IO) -> void
6
+ def puts_green: (String) -> void
7
+ def puts_red: (String) -> void
8
+ def puts: (?String) -> void
9
+
10
+ private def can_display_colors?: () -> bool
11
+ private def are_colors_supported?: () -> bool
12
+ private def are_colors_disabled?: () -> bool
13
+ end
14
+ end
15
+ end
data/sig/cli/diff.rbs ADDED
@@ -0,0 +1,21 @@
1
+ module RBS
2
+ class CLI
3
+ class Diff
4
+ @format: String
5
+ @stdout: _IO
6
+ @stderr: _IO
7
+ @diff: RBS::Diff
8
+
9
+ def initialize: (
10
+ argv: Array[String],
11
+ library_options: RBS::CLI::LibraryOptions,
12
+ ?stdout: _IO,
13
+ ?stderr: _IO,
14
+ ) -> void
15
+
16
+ def run: () -> void
17
+ def run_diff: () -> void
18
+ def run_markdown: () -> void
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,43 @@
1
+ module RBS
2
+ class CLI
3
+ class Validate
4
+ class Errors
5
+ @limit: Integer?
6
+ @exit_error: boolish
7
+ @has_syntax_error: bool
8
+ @errors: Array[BaseError]
9
+
10
+ def initialize: (limit: Integer?, exit_error: boolish) -> void
11
+
12
+ def add: (BaseError) -> void
13
+
14
+ def finish: () -> void
15
+
16
+ private
17
+
18
+ def build_message: (BaseError) -> String
19
+ end
20
+
21
+ @env: Environment
22
+ @builder: RBS::DefinitionBuilder
23
+ @validator: RBS::Validator
24
+ @errors: Errors
25
+
26
+ def initialize: (args: Array[String], options: LibraryOptions) -> void
27
+
28
+ def run: () -> void
29
+
30
+ private
31
+
32
+ def validate_class_module_definition: () -> void
33
+ def validate_class_module_alias_definition: () -> void
34
+ def validate_interface: () -> void
35
+ def validate_constant: () -> void
36
+ def validate_global: () -> void
37
+ def validate_type_alias: () -> void
38
+ def no_self_type_validator: (::RBS::Types::t | ::RBS::MethodType type) -> void
39
+ def no_classish_type_validator: (::RBS::Types::t | ::RBS::MethodType type) -> void
40
+ def void_type_context_validator: (::RBS::Types::t | ::RBS::MethodType type, ?bool allowed_here) -> void
41
+ end
42
+ end
43
+ end