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
data/sig/errors.rbs ADDED
@@ -0,0 +1,405 @@
1
+ module RBS
2
+ interface _MethodName
3
+ def kind: () -> (:instance | :singleton)
4
+
5
+ def type_name: () -> TypeName
6
+
7
+ def method_name: () -> Symbol
8
+ end
9
+
10
+ module MethodNameHelper : _MethodName
11
+ def method_name_string: () -> String
12
+ end
13
+
14
+ # Error class for errors defined in RBS.
15
+ #
16
+ class BaseError < StandardError
17
+ end
18
+
19
+ interface _Location
20
+ %a{pure} def location: () -> Location[untyped, untyped]?
21
+ end
22
+
23
+ module DetailedMessageable : _Location, Exception
24
+ def detailed_message: (?highlight: boolish, **untyped) -> String
25
+ end
26
+
27
+ # Error class for errors raised during parsing.
28
+ #
29
+ class ParsingError < BaseError
30
+ include DetailedMessageable
31
+
32
+ attr_reader location: Location[untyped, untyped]
33
+ attr_reader error_message: String
34
+ attr_reader token_type: String
35
+
36
+ def initialize: (Location[untyped, untyped], String error_message, String token_type) -> void
37
+
38
+ def error_value: () -> String
39
+
40
+ def token_str: () -> String
41
+ end
42
+
43
+ class Parser
44
+ SemanticsError: singleton(ParsingError)
45
+ SyntaxError: singleton(ParsingError)
46
+ LexerError: singleton(ParsingError)
47
+ end
48
+
49
+ # Error class for errors raised during loading environments.
50
+ #
51
+ class LoadingError < BaseError
52
+ end
53
+
54
+ # Error class for errors raised during building definitions.
55
+ #
56
+ class DefinitionError < BaseError
57
+ end
58
+
59
+ class InvalidTypeApplicationError < DefinitionError
60
+ attr_reader type_name: TypeName
61
+ attr_reader args: Array[Types::t]
62
+ attr_reader params: Array[Symbol]
63
+ attr_reader type_params: Array[AST::TypeParam]
64
+ attr_reader location: Location[untyped, untyped]?
65
+
66
+ def initialize: (type_name: TypeName, args: Array[Types::t], params: Array[AST::TypeParam], location: Location[untyped, untyped]?) -> void
67
+
68
+ def self.check!: (type_name: TypeName, args: Array[Types::t], params: Array[AST::TypeParam], location: Location[untyped, untyped]?) -> void
69
+
70
+ def self.check2!: (env: Environment, type_name: TypeName, args: Array[Types::t], location: Location[untyped, untyped]?) -> void
71
+ end
72
+
73
+ class RecursiveAncestorError < DefinitionError
74
+ attr_reader ancestors: Array[Definition::Ancestor::t]
75
+ attr_reader location: Location[untyped, untyped]?
76
+
77
+ def initialize: (ancestors: Array[Definition::Ancestor::t], location: Location[untyped, untyped]?) -> void
78
+
79
+ def self.check!: (Definition::Ancestor::t, ancestors: Array[Definition::Ancestor::t], location: Location[untyped, untyped]?) -> void
80
+ end
81
+
82
+ class NoTypeFoundError < DefinitionError
83
+ include DetailedMessageable
84
+
85
+ attr_reader type_name: TypeName
86
+ attr_reader location: Location[untyped, untyped]?
87
+
88
+ def initialize: (type_name: TypeName, location: Location[untyped, untyped]?) -> void
89
+
90
+ def self.check!: (TypeName, env: Environment, location: Location[untyped, untyped]?) -> TypeName
91
+ end
92
+
93
+ class NoSuperclassFoundError < DefinitionError
94
+ attr_reader type_name: TypeName
95
+ attr_reader location: Location[untyped, untyped]?
96
+
97
+ def initialize: (type_name: TypeName, location: Location[untyped, untyped]?) -> void
98
+
99
+ def self.check!: (TypeName, env: Environment, location: Location[untyped, untyped]?) -> void
100
+ end
101
+
102
+ class NoSelfTypeFoundError < DefinitionError
103
+ include DetailedMessageable
104
+
105
+ attr_reader type_name: TypeName
106
+ attr_reader location: Location[untyped, untyped]?
107
+
108
+ def initialize: (type_name: TypeName, location: Location[untyped, untyped]?) -> void
109
+
110
+ # The type name in `self` is automatically normalized
111
+ #
112
+ def self.check!: (AST::Declarations::Module::Self, env: Environment) -> void
113
+ end
114
+
115
+ class NoMixinFoundError < DefinitionError
116
+ include DetailedMessageable
117
+
118
+ attr_reader type_name: TypeName
119
+ attr_reader member: AST::Members::t
120
+
121
+ def initialize: (type_name: TypeName, member: AST::Members::t) -> void
122
+
123
+ def location: () -> Location[untyped, untyped]?
124
+
125
+ def self.check!: (TypeName, env: Environment, member: AST::Members::t) -> void
126
+ end
127
+
128
+ class DuplicatedMethodDefinitionError < DefinitionError
129
+ include DetailedMessageable
130
+
131
+ type ty = Types::ClassSingleton | Types::ClassInstance | Types::Interface
132
+ type original = DefinitionBuilder::MethodBuilder::Methods::Definition::original
133
+
134
+ attr_reader type: ty
135
+ attr_reader method_name: Symbol
136
+ attr_reader members: Array[original]
137
+
138
+ def initialize: (type: ty, method_name: Symbol, members: Array[original]) -> void
139
+
140
+ def type_name: () -> TypeName
141
+
142
+ def qualified_method_name: () -> String
143
+
144
+ def location: () -> Location[untyped, untyped]?
145
+
146
+ def other_locations: () -> Array[Location[untyped, untyped]?]
147
+ end
148
+
149
+ # An interface mixin causes a duplication of a method definition
150
+ #
151
+ # ```rbs
152
+ # interface _Foo1
153
+ # def foo: () -> void
154
+ # end
155
+ #
156
+ # interface _Foo2
157
+ # def foo: () -> void
158
+ # end
159
+ #
160
+ # class Foo
161
+ # include _Foo1
162
+ # include _Foo2 # <= The error will be reported here (or the line of _Foo1)
163
+ # end
164
+ # ```
165
+ #
166
+ class DuplicatedInterfaceMethodDefinitionError < DefinitionError
167
+ include DetailedMessageable
168
+
169
+ type ty = Types::ClassSingleton | Types::ClassInstance | Types::Interface
170
+ type mixin_member = AST::Members::Include | AST::Members::Extend
171
+
172
+ attr_reader type: ty
173
+ attr_reader method_name: Symbol
174
+ attr_reader member: mixin_member
175
+
176
+ def initialize: (type: ty, method_name: Symbol, member: mixin_member) -> void
177
+
178
+ def type_name: () -> TypeName
179
+
180
+ def qualified_method_name: () -> String
181
+
182
+ def location: () -> AST::Members::Mixin::loc?
183
+ end
184
+
185
+ class VariableDuplicationError < DefinitionError
186
+ include DetailedMessageable
187
+
188
+ attr_reader member: AST::Members::Var
189
+
190
+ def initialize: (member: AST::Members::Var) -> void
191
+
192
+ def location: () -> Location[bot, bot]
193
+ end
194
+
195
+ class InstanceVariableDuplicationError < VariableDuplicationError
196
+ def self.check!: (variables: Hash[Symbol, Definition::Variable], member: AST::Members::InstanceVariable, type_name: TypeName) -> void
197
+ end
198
+
199
+ class ClassInstanceVariableDuplicationError < VariableDuplicationError
200
+ def self.check!: (variables: Hash[Symbol, Definition::Variable], member: AST::Members::ClassInstanceVariable, type_name: TypeName) -> void
201
+ end
202
+
203
+ class ClassVariableDuplicationError < VariableDuplicationError
204
+ def self.check!: (variables: Hash[Symbol, Definition::Variable], member: AST::Members::ClassVariable, type_name: TypeName) -> void
205
+ end
206
+
207
+ # The `alias` member declares an alias from unknown method
208
+ #
209
+ class UnknownMethodAliasError < DefinitionError
210
+ include DetailedMessageable
211
+
212
+ attr_reader type_name: TypeName
213
+ attr_reader original_name: Symbol
214
+ attr_reader aliased_name: Symbol
215
+ attr_reader location: Location[untyped, untyped]?
216
+
217
+ def initialize: (type_name: TypeName, original_name: Symbol, aliased_name: Symbol, location: Location[untyped, untyped]?) -> void
218
+ end
219
+
220
+ class SuperclassMismatchError < DefinitionError
221
+ attr_reader name: TypeName
222
+ attr_reader entry: Environment::ClassEntry
223
+
224
+ def initialize: (name: TypeName, entry: Environment::ClassEntry) -> void
225
+ end
226
+
227
+ # The *overloading* method definition cannot find *non-overloading* method definition
228
+ #
229
+ class InvalidOverloadMethodError < DefinitionError
230
+ include DetailedMessageable
231
+
232
+ attr_reader type_name: TypeName
233
+ attr_reader method_name: Symbol
234
+ attr_reader kind: :instance | :singleton
235
+ attr_reader members: Array[AST::Members::MethodDefinition]
236
+
237
+ def initialize: (type_name: TypeName, method_name: Symbol, kind: :instance | :singleton, members: Array[AST::Members::MethodDefinition]) -> void
238
+
239
+ def location: () -> AST::Members::MethodDefinition::loc?
240
+ end
241
+
242
+ class GenericParameterMismatchError < LoadingError
243
+ attr_reader name: TypeName
244
+ attr_reader decl: AST::Declarations::Class | AST::Declarations::Module
245
+
246
+ def initialize: (name: TypeName, decl: AST::Declarations::Class | AST::Declarations::Module) -> void
247
+ end
248
+
249
+ class DuplicatedDeclarationError < LoadingError
250
+ attr_reader name: TypeName | Symbol
251
+ attr_reader decls: Array[AST::Declarations::t]
252
+
253
+ def initialize: (TypeName | Symbol, *AST::Declarations::t) -> void
254
+ end
255
+
256
+ class InvalidVarianceAnnotationError < DefinitionError
257
+ include DetailedMessageable
258
+
259
+ attr_reader type_name: TypeName
260
+ attr_reader param: AST::TypeParam
261
+ attr_reader location: Location[untyped, untyped]?
262
+
263
+ def initialize: (type_name: TypeName, param: AST::TypeParam, location: Location[untyped, untyped]?) -> void
264
+ end
265
+
266
+ class RecursiveAliasDefinitionError < DefinitionError
267
+ include DetailedMessageable
268
+
269
+ type ty = Types::ClassInstance | Types::ClassSingleton | Types::Interface
270
+ type defn = DefinitionBuilder::MethodBuilder::Methods::Definition
271
+
272
+ attr_reader type: ty
273
+ attr_reader defs: Array[defn]
274
+
275
+ def initialize: (type: ty, defs: Array[defn]) -> void
276
+
277
+ def location: () -> Location[untyped, untyped]?
278
+ end
279
+
280
+ # MixinClassError is raised if a include/prepend/extend has a class (not a module) to mix-in
281
+ #
282
+ class MixinClassError < DefinitionError
283
+ include DetailedMessageable
284
+
285
+ type member = AST::Members::Include | AST::Members::Prepend | AST::Members::Extend
286
+
287
+ attr_reader type_name: TypeName
288
+ attr_reader member: member
289
+
290
+ def initialize: (type_name: TypeName, member: member) -> void
291
+
292
+ def location: () -> Location[untyped, untyped]?
293
+
294
+ def self.check!: (type_name: TypeName, env: Environment, member: member) -> void
295
+
296
+ def mixin_name: () -> String
297
+ end
298
+
299
+ # InheritModuleError is raised if a class definition inherits a module (not a class)
300
+ #
301
+ class InheritModuleError < DefinitionError
302
+ include DetailedMessageable
303
+
304
+ attr_reader super_decl: AST::Declarations::Class::Super
305
+
306
+ def initialize: (AST::Declarations::Class::Super) -> void
307
+
308
+ def location: () -> Location[untyped, untyped]?
309
+
310
+ # Confirms if `super` inherits specifies a class
311
+ #
312
+ # Automatically normalize the name of super.
313
+ #
314
+ def self.check!: (AST::Declarations::Class::Super, env: Environment) -> void
315
+ end
316
+
317
+ class RecursiveTypeAliasError < BaseError
318
+ include DetailedMessageable
319
+
320
+ attr_reader alias_names: Array[TypeName]
321
+ attr_reader location: Location[untyped, untyped]?
322
+
323
+ def initialize: (alias_names: Array[TypeName], location: Location[untyped, untyped]?) -> void
324
+
325
+ def name: () -> String
326
+ end
327
+
328
+ class NonregularTypeAliasError < BaseError
329
+ include DetailedMessageable
330
+
331
+ # Diagnostic reported from `TypeAliasRegularity`.
332
+ attr_reader diagnostic: TypeAliasRegularity::Diagnostic
333
+
334
+ # Location of the definition.
335
+ attr_reader location: Location[untyped, untyped]?
336
+
337
+ def initialize: (diagnostic: TypeAliasRegularity::Diagnostic, location: Location[untyped, untyped]?) -> void
338
+ end
339
+
340
+ class CyclicTypeParameterBound < BaseError
341
+ include DetailedMessageable
342
+
343
+ attr_reader location: Location[untyped, untyped]?
344
+
345
+ # Array of parameters which contains cyclic dependencies.
346
+ attr_reader params: Array[AST::TypeParam]
347
+
348
+ # Type name
349
+ attr_reader type_name: TypeName
350
+
351
+ # Method name
352
+ attr_reader method_name: Symbol?
353
+
354
+ def initialize: (type_name: TypeName, method_name: Symbol?, params: Array[AST::TypeParam], location: Location[untyped, untyped]?) -> void
355
+ end
356
+
357
+ # A module/class alias declaration has inconsistent right-hand-side
358
+ #
359
+ # ```rbs
360
+ # module Foo = Object # Error
361
+ # class Bar = Kernel # Error
362
+ # ```
363
+ #
364
+ class InconsistentClassModuleAliasError < BaseError
365
+ include DetailedMessageable
366
+
367
+ attr_reader alias_entry: Environment::ModuleAliasEntry | Environment::ClassAliasEntry
368
+
369
+ def initialize: (Environment::ModuleAliasEntry | Environment::ClassAliasEntry) -> void
370
+
371
+ def location: () -> AST::Declarations::AliasDecl::loc?
372
+ end
373
+
374
+ # A module/class alias declaration is cyclic
375
+ #
376
+ class CyclicClassAliasDefinitionError < BaseError
377
+ include DetailedMessageable
378
+
379
+ attr_reader alias_entry: Environment::ModuleAliasEntry | Environment::ClassAliasEntry
380
+
381
+ def initialize: (Environment::ModuleAliasEntry | Environment::ClassAliasEntry) -> void
382
+
383
+ def location: () -> AST::Declarations::AliasDecl::loc?
384
+ end
385
+
386
+ class WillSyntaxError < BaseError
387
+ include RBS::DetailedMessageable
388
+
389
+ def initialize: (String message, location: Location[untyped, untyped]?) -> void
390
+
391
+ attr_reader location: Location[untyped, untyped]?
392
+ end
393
+
394
+ class TypeParamDefaultReferenceError < BaseError
395
+ include DetailedMessageable
396
+
397
+ attr_reader type_param: AST::TypeParam
398
+
399
+ def initialize: (AST::TypeParam, location: Location[untyped, untyped]?) -> void
400
+
401
+ attr_reader location: Location[untyped, untyped]?
402
+
403
+ def self.check!: (Array[AST::TypeParam]) -> void
404
+ end
405
+ end
data/sig/factory.rbs ADDED
@@ -0,0 +1,5 @@
1
+ module RBS
2
+ class Factory
3
+ def type_name: (String) -> TypeName
4
+ end
5
+ end
@@ -0,0 +1,28 @@
1
+ module RBS
2
+ module FileFinder
3
+ # Enumerate RBS files under path
4
+ #
5
+ # When `path` is a file, it yields the path.
6
+ #
7
+ # ```rb
8
+ # FileFinder.each_file(Pathname("foo.rbs")) {} # => yields `foo.rbs`
9
+ # ```
10
+ #
11
+ # When `path` is a directory, it yields all `.rbs` files under the directory, recursively.
12
+ #
13
+ # * Skips files under directory starting with `_`, if `skip_hidden` is `true`
14
+ # * Yields files under directory starting with `_` even if `skip_hidden` is true, when the `_` directory is given explicitly, and `immediate:` is `true`
15
+ #
16
+ # ```rb
17
+ # FileFinder.each_file(Pathname("sig"), skip_hidden: false) {} # => yields all `.rbs` files under `sig`
18
+ # FileFinder.each_file(Pathname("sig"), skip_hidden: true) {} # => yields all `.rbs` files under `sig`, skips `_` directories
19
+ #
20
+ # FileFinder.each_file(Pathname("_hidden"), skip_hidden: true) {} # => yields all `.rbs` files under `_hidden`, skips other `_` directories
21
+ # ```
22
+ #
23
+ # `immediate` keyword is unused and left for API compatibility.
24
+ #
25
+ def self?.each_file: (Pathname path, ?immediate: top, skip_hidden: boolish) { (Pathname) -> void } -> void
26
+ | (Pathname path, ?immediate: top, skip_hidden: boolish) -> Enumerator[Pathname, void]
27
+ end
28
+ end
data/sig/location.rbs ADDED
@@ -0,0 +1,110 @@
1
+ module RBS
2
+ # Location is the range on buffer, `start_pos..end_pos`.
3
+ # The index is based on characters.
4
+ #
5
+ # A location can have _child_ locations.
6
+ #
7
+ class Location[in RequiredChildKeys, in OptionalChildKeys]
8
+ # The buffer this location points on.
9
+ attr_reader buffer (): Buffer
10
+
11
+ # The index of character the range starts from.
12
+ attr_reader start_pos (): Integer
13
+
14
+ # The index of character the range ends at.
15
+ attr_reader end_pos (): Integer
16
+
17
+ def initialize: (Buffer, Integer start_pos, Integer end_pos) -> void
18
+
19
+ def self.new: (Buffer, Integer start_pos, Integer end_pos) -> instance
20
+ | (buffer: Buffer, start_pos: Integer, end_pos: Integer) -> instance
21
+
22
+ def inspect: () -> String
23
+
24
+ # Returns the name of the buffer.
25
+ def name: () -> untyped
26
+
27
+ # Line of the `start_pos` (1 origin)
28
+ attr_reader start_line (): Integer
29
+
30
+ # Column of the `start_pos` (0 origin)
31
+ attr_reader start_column (): Integer
32
+
33
+ # Line of the `end_pos` (1 origin)
34
+ attr_reader end_line (): Integer
35
+
36
+ # Column of the `end_pos` (0 origin)
37
+ attr_reader end_column (): Integer
38
+
39
+ attr_reader start_loc (): Buffer::loc
40
+
41
+ @start_loc: Buffer::loc?
42
+
43
+ attr_reader end_loc (): Buffer::loc
44
+
45
+ @end_loc: Buffer::loc?
46
+
47
+ attr_reader range (): Range[Integer]
48
+
49
+ @range: Range[Integer]?
50
+
51
+ # A substring of buffer associated to the location.
52
+ def source: () -> String
53
+
54
+ @source: String?
55
+
56
+ def to_s: () -> String
57
+
58
+ # Returns a string representation suitable for terminal output.
59
+ #
60
+ # Location.to_string(loc) # => a.rb:1:0...3:4
61
+ # Location.to_string(nil) # => *:*:*..*:*
62
+ #
63
+ def self.to_string: (Location[untyped, untyped]? location, ?default: ::String default) -> String
64
+
65
+ def ==: (untyped other) -> bool
66
+
67
+ include _ToJson
68
+
69
+ def add_optional_child: (OptionalChildKeys name, Range[Integer]? range) -> void
70
+
71
+ def add_required_child: (RequiredChildKeys name, Range[Integer] range) -> void
72
+
73
+ # Returns `Location` instance for given _child_ name.
74
+ #
75
+ # # @type var loc: Location::WithChildren[:name, :args]
76
+ # loc[:name] # => Location
77
+ # loc[:args] # => may be nil
78
+ #
79
+ # Note that passing unknown symbol raises an error even if the child is _optional_.
80
+ # You need explicitly set `nil` for absent optional children.
81
+ #
82
+ def []: (RequiredChildKeys) -> Location[bot, bot]
83
+ | (OptionalChildKeys) -> Location[bot, bot]?
84
+ | (Symbol) -> Location[bot, bot]?
85
+
86
+ alias aref []
87
+
88
+ def each_optional_key: () { (Symbol) -> void } -> void
89
+ | () -> Enumerator[Symbol, void]
90
+
91
+ def each_required_key: () { (Symbol) -> void } -> void
92
+ | () -> Enumerator[Symbol, void]
93
+
94
+ def optional_key?: (Symbol) -> bool
95
+
96
+ def required_key?: (Symbol) -> bool
97
+
98
+ def key?: (Symbol) -> bool
99
+
100
+ private
101
+
102
+ def _add_required_child: (RequiredChildKeys name, Integer start_pos, Integer end_pos) -> void
103
+ def _add_optional_child: (OptionalChildKeys name, Integer start_pos, Integer end_pos) -> void
104
+ def _add_optional_no_child: (OptionalChildKeys name) -> void
105
+ def _optional_keys: () -> Array[Symbol]
106
+ def _required_keys: () -> Array[Symbol]
107
+
108
+ WithChildren: singleton(Location)
109
+ end
110
+ end
data/sig/locator.rbs ADDED
@@ -0,0 +1,58 @@
1
+ module RBS
2
+ # Locator helps finding RBS elements based on locations in the RBS source text.
3
+ #
4
+ class Locator
5
+ type component = Symbol
6
+ | Types::t
7
+ | MethodType
8
+ | AST::Declarations::t
9
+ | AST::Members::t
10
+ | AST::TypeParam
11
+ | AST::Declarations::Class::Super
12
+ | AST::Declarations::Module::Self
13
+ | AST::Directives::t
14
+ | AST::Directives::Use::clause
15
+
16
+ # The buffer the location points to
17
+ #
18
+ attr_reader buffer: Buffer
19
+
20
+ # Array of _top-level_ declarations.
21
+ #
22
+ attr_reader decls: Array[AST::Declarations::t]
23
+
24
+ # Array of directives.
25
+ #
26
+ attr_reader dirs: Array[AST::Directives::t]
27
+
28
+ def initialize: (buffer: Buffer, decls: Array[AST::Declarations::t], dirs: Array[AST::Directives::t]) -> void
29
+
30
+ # Returns list of components.
31
+ # Inner component comes first.
32
+ #
33
+ def find: (line: Integer, column: Integer) -> Array[component]
34
+
35
+ # Returns pair of the inner most symbol and outer components.
36
+ # It ensures the array starts with a AST/type component.
37
+ #
38
+ def find2: (line: Integer, column: Integer) -> [Symbol?, Array[component]]?
39
+
40
+ private
41
+
42
+ def find_in_directive: (Integer pos, AST::Directives::t, Array[component]) -> bool
43
+
44
+ def find_in_decl: (Integer pos, decl: AST::Declarations::t, array: Array[component]) -> bool
45
+
46
+ def find_in_member: (Integer pos, member: AST::Members::t, array: Array[component]) -> bool
47
+
48
+ def find_in_method_type: (Integer pos, method_type: MethodType, array: Array[component]) -> bool
49
+
50
+ def find_in_type: (Integer pos, type: Types::t, array: Array[component]) -> bool
51
+
52
+ def find_in_type_param: (Integer pos, type_param: AST::TypeParam, array: Array[component]) -> bool
53
+
54
+ def find_in_loc: (Integer pos, location: Location[untyped, untyped]?, array: Array[component]) -> bool
55
+
56
+ def test_loc: (Integer pos, location: Location[untyped, untyped]?) -> bool
57
+ end
58
+ end
data/sig/manifest.yaml ADDED
@@ -0,0 +1,7 @@
1
+ dependencies:
2
+ - name: logger
3
+ - name: pathname
4
+ - name: json
5
+ - name: optparse
6
+ - name: tsort
7
+ - name: rdoc