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/typename.rbs ADDED
@@ -0,0 +1,79 @@
1
+ module RBS
2
+ # TypeName represents name of types in RBS.
3
+ #
4
+ # TypeNames are one of the three kind, class, alias, and interface.
5
+ # *class* type names corresponds to Ruby classes and modules.
6
+ # There are no corresponding Ruby value to *alias* and *interface* type names.
7
+ #
8
+ class TypeName
9
+ # Type of type names.
10
+ #
11
+ type kind = :class | :alias | :interface
12
+
13
+ # The namespace the type name is defined in.
14
+ attr_reader namespace: Namespace
15
+
16
+ # Name of type name.
17
+ attr_reader name: Symbol
18
+
19
+ # Kind of the type.
20
+ attr_reader kind: kind
21
+
22
+ # Initializer accepts two keyword args, `namespace` and `name`.
23
+ # Note that `kind` is automatically determined from its `name`.
24
+ #
25
+ # If the name starts with capital alphabet, it is _class_.
26
+ # If the name starts with lower case alphabet, it is _alias_.
27
+ # If the name starts with an underscore, it is _interface_.
28
+ #
29
+ def initialize: (namespace: Namespace, name: Symbol) -> void
30
+
31
+ def ==: (untyped other) -> bool
32
+
33
+ def hash: () -> Integer
34
+
35
+ def to_s: () -> ::String
36
+
37
+ include _ToJson
38
+
39
+ # Returns a namespace with same components of self.
40
+ def to_namespace: () -> Namespace
41
+
42
+ # Returns true when self is a _class_ type name.
43
+ def class?: () -> bool
44
+
45
+ # Returns true when self is an _alias_ type name.
46
+ def alias?: () -> bool
47
+
48
+ def absolute!: () -> TypeName
49
+
50
+ def absolute?: () -> bool
51
+
52
+ def relative!: () -> TypeName
53
+
54
+ # Returns true when self is an _interface_ type name.
55
+ def interface?: () -> bool
56
+
57
+ # Returns a new type name with a namespace appended to given namespace.
58
+ #
59
+ # ```rb
60
+ # TypeName.parse("Hello").with_prefix(Namespace("World")) # => World::Hello
61
+ # TypeName.parse("Foo::Bar").with_prefix(Namespace("::Hello")) # => ::Hello::Foo::Bar
62
+ # TypeName.parse("::A::B").with_prefix(Namespace("C")) # => ::A::B
63
+ # ```
64
+ #
65
+ def with_prefix: (Namespace namespace) -> TypeName
66
+
67
+ def +: (TypeName) -> TypeName
68
+
69
+ def split: () -> Array[Symbol]
70
+
71
+ # Returns type name with given string representation.
72
+ def self.parse: (String name) -> RBS::TypeName
73
+ end
74
+ end
75
+
76
+ module Kernel
77
+ # Deprecated: Use `RBS::TypeName.parse` instead
78
+ %a{steep:deprecated} def TypeName: (String name) -> RBS::TypeName
79
+ end
data/sig/types.rbs ADDED
@@ -0,0 +1,579 @@
1
+ module RBS
2
+ module Types
3
+ # _TypeBase interface represents the operations common to all of the types.
4
+ #
5
+ interface _TypeBase
6
+ # Returns names of free variables of a type.
7
+ # You can pass a Set instance to add the free variables to the set to avoid Set object allocation.
8
+ #
9
+ def free_variables: (?Set[Symbol]) -> Set[Symbol]
10
+
11
+ # Receives a substitution and returns a new type applied the substitution.
12
+ #
13
+ def sub: (Substitution) -> t
14
+
15
+ # Maps type names included in the type and returns new instance of type.
16
+ def map_type_name: () { (TypeName, Location[untyped, untyped]?, t) -> TypeName } -> t
17
+
18
+ # Yields all direct sub types included in the type.
19
+ # It doesn't yield the type itself.
20
+ #
21
+ # ```ruby
22
+ # parse("Hash[String, Array[Symbol]]").each_type do |ty|
23
+ # ... # Yields String and Array[Symbol]
24
+ # end
25
+ # ```
26
+ #
27
+ def each_type: () { (t) -> void } -> void
28
+ | () -> Enumerator[t, void]
29
+
30
+ # Returns a JSON representation.
31
+ #
32
+ include _ToJson
33
+
34
+ # Returns a String representation.
35
+ # `level` is used internally.
36
+ #
37
+ # ```ruby
38
+ # parse("String").to_s # => "String"
39
+ # parse("String | Integer").to_s() # => "String | Integer"
40
+ # parse("String | Integer").to_s(1) # => "(String | Integer)"
41
+ # ```
42
+ #
43
+ def to_s: (?Integer level) -> String
44
+
45
+ # Returns `true` if it has `self` type
46
+ #
47
+ def has_self_type?: () -> bool
48
+
49
+ # Returns `true` if it has `instance` or `class` types
50
+ def has_classish_type?: () -> bool
51
+
52
+ # Returns `true` if it has `void` types other than *return* position
53
+ #
54
+ # * The function return type is a return position (`() -> void`)
55
+ # * Generic parameter is a return position (`Enumerator[Integer, void]`)
56
+ #
57
+ def with_nonreturn_void?: () -> bool
58
+ end
59
+
60
+ # t represents union of all possible types.
61
+ #
62
+ type t = Bases::Bool | Bases::Void | Bases::Any | Bases::Nil | Bases::Top | Bases::Bottom | Bases::Self | Bases::Instance | Bases::Class
63
+ | Variable | ClassSingleton | Interface | ClassInstance | Alias | Tuple | Record | Optional | Union | Intersection | Proc | Literal
64
+
65
+ module NoFreeVariables
66
+ def free_variables: (?Set[Symbol]) -> Set[Symbol]
67
+ end
68
+
69
+ module NoSubst
70
+ def sub: (Substitution) -> self
71
+ end
72
+
73
+ module EmptyEachType
74
+ def each_type: () { (t) -> void } -> void
75
+ | () -> Enumerator[t, void]
76
+
77
+ # `map_type` returns itself, because there is no sub type.
78
+ #
79
+ def map_type: () { (t) -> t } -> self
80
+ | () -> Enumerator[t, self]
81
+ end
82
+
83
+ module NoTypeName
84
+ def map_type_name: () { (TypeName, Location[untyped, untyped]?, t) -> TypeName } -> self
85
+ end
86
+
87
+ module Bases
88
+ class Base
89
+ include _TypeBase
90
+
91
+ attr_reader location: Location[bot, bot]?
92
+
93
+ def initialize: (location: Location[bot, bot]?) -> void
94
+
95
+ def ==: (untyped other) -> bool
96
+
97
+ def hash: () -> Integer
98
+
99
+ alias eql? ==
100
+
101
+ include NoFreeVariables
102
+ include NoSubst
103
+ include EmptyEachType
104
+ include NoTypeName
105
+ end
106
+
107
+ class Bool < Base
108
+ end
109
+
110
+ class Void < Base
111
+ end
112
+
113
+ class Any < Base
114
+ @string: String?
115
+
116
+ def initialize: (location: Location[bot, bot]?, ?todo: bool) -> void
117
+
118
+ %a{steep:deprecated}
119
+ def todo!: () -> self
120
+ end
121
+
122
+ class Nil < Base
123
+ end
124
+
125
+ class Top < Base
126
+ end
127
+
128
+ class Bottom < Base
129
+ end
130
+
131
+ class Self < Base
132
+ end
133
+
134
+ class Instance < Base
135
+ def sub: (Substitution sub) -> t
136
+ end
137
+
138
+ class Class < Base
139
+ end
140
+ end
141
+
142
+ class Variable
143
+ type loc = Location[bot, bot]
144
+
145
+ attr_reader name: Symbol
146
+
147
+ @@count: Integer
148
+
149
+ include _TypeBase
150
+ include NoTypeName
151
+ include EmptyEachType
152
+
153
+ def initialize: (name: Symbol, location: loc?) -> void
154
+
155
+ attr_reader location: loc?
156
+
157
+ def ==: (untyped other) -> bool
158
+
159
+ alias eql? ==
160
+
161
+ def hash: () -> Integer
162
+
163
+ def self.build: (Symbol) -> Variable
164
+ | (Array[Symbol]) -> Array[Variable]
165
+
166
+ # Returns fresh type variable with prefix (if given.)
167
+ #
168
+ # Variable.fresh(:S) # => S@1
169
+ # Variable.fresh(:S) # => S@2
170
+ # Variable.fresh() # => T@3
171
+ #
172
+ def self.fresh: (?Symbol prefix) -> Variable
173
+ end
174
+
175
+ class ClassSingleton
176
+ # singleton(::Foo)
177
+ # ^^^^^ => name
178
+ type loc = Location[:name, bot]
179
+
180
+ def initialize: (name: TypeName, location: loc?) -> void
181
+
182
+ attr_reader name: TypeName
183
+
184
+ attr_reader location: loc?
185
+
186
+ include _TypeBase
187
+ include NoFreeVariables
188
+ include NoSubst
189
+ include EmptyEachType
190
+
191
+ def ==: (untyped other) -> bool
192
+
193
+ alias eql? ==
194
+
195
+ def hash: () -> Integer
196
+ end
197
+
198
+ module Application
199
+ attr_reader name: TypeName
200
+ attr_reader args: Array[t]
201
+
202
+ def ==: (untyped) -> bool
203
+
204
+ alias eql? ==
205
+
206
+ def hash: () -> Integer
207
+
208
+ def free_variables: (?Set[Symbol]) -> Set[Symbol]
209
+
210
+ def to_s: (?Integer level) -> String
211
+
212
+ def each_type: () { (t) -> void } -> void
213
+ | () -> Enumerator[t, void]
214
+
215
+ def has_self_type?: () -> bool
216
+
217
+ def has_classish_type?: () -> bool
218
+
219
+ def with_nonreturn_void?: () -> bool
220
+ end
221
+
222
+ class Interface
223
+ # _Foo
224
+ # ^^^^ => name
225
+ #
226
+ # _Foo[Bar, Baz]
227
+ # ^^^^ => name
228
+ # ^^^^^^^^^^ => args
229
+ type loc = Location[:name, :args]
230
+
231
+ def initialize: (name: TypeName, args: Array[t], location: loc?) -> void
232
+
233
+ include Application
234
+ include _TypeBase
235
+
236
+ attr_reader location: loc?
237
+
238
+ def map_type: () { (t) -> t } -> Interface
239
+ | () -> Enumerator[t, Interface]
240
+ end
241
+
242
+ # ClassInstance represents a type of an instance of a class.
243
+ #
244
+ # String # Type of an instance of String class.
245
+ # Array[String] # Type of an instance of Array class with instances of String.
246
+ # Kernel # Type of an instance of a class which includes Kernel.
247
+ #
248
+ class ClassInstance
249
+ include Application
250
+
251
+ # Foo
252
+ # ^^^ => name
253
+ #
254
+ # Foo[Bar, Baz]
255
+ # ^^^ => name
256
+ # ^^^^^^^^^^ => args
257
+ #
258
+ type loc = Location[:name, :args]
259
+
260
+ def initialize: (name: TypeName, args: Array[t], location: loc?) -> void
261
+
262
+ attr_reader location: loc?
263
+
264
+ include _TypeBase
265
+
266
+ def map_type: () { (t) -> t } -> ClassInstance
267
+ | () -> Enumerator[t, ClassInstance]
268
+ end
269
+
270
+ class Alias
271
+ # foo
272
+ # ^^^ => name
273
+ #
274
+ # foo[bar, baz]
275
+ # ^^^ => name
276
+ # ^^^^^^^^^^ => args
277
+ #
278
+ type loc = Location[:name, :args]
279
+
280
+ attr_reader location: loc?
281
+
282
+ def initialize: (name: TypeName, args: Array[t], location: loc?) -> void
283
+
284
+ include _TypeBase
285
+ include Application
286
+
287
+ def map_type: () { (t) -> t } -> Alias
288
+ | () -> Enumerator[t, Alias]
289
+ end
290
+
291
+ class Tuple
292
+ attr_reader types: Array[t]
293
+
294
+ type loc = Location[bot, bot]
295
+
296
+ def initialize: (types: Array[t], location: loc?) -> void
297
+
298
+ include _TypeBase
299
+
300
+ attr_reader location: loc?
301
+
302
+ def map_type: () { (t) -> t } -> Tuple
303
+ | () -> Enumerator[t, Tuple]
304
+ end
305
+
306
+ class Record
307
+ type key = Symbol | String | Integer | bool
308
+
309
+ # All types of all files
310
+ #
311
+ # If the key is *required*, the second value of the tuple is `true`.
312
+ # If the key is *optional*, the second value of the tuple is `false`.
313
+ #
314
+ attr_reader all_fields: Hash[key, [t, bool]]
315
+
316
+ attr_reader fields: Hash[key, t]
317
+
318
+ attr_reader optional_fields: Hash[key, t]
319
+
320
+ type loc = Location[bot, bot]
321
+
322
+ def initialize: (fields: Hash[key, t], location: loc?) -> void
323
+ | (all_fields: Hash[key, [t, bool]], location: loc?) -> void
324
+
325
+ include _TypeBase
326
+
327
+ attr_reader location: loc?
328
+
329
+ def map_type: () { (t) -> t } -> Record
330
+ | () -> Enumerator[t, Record]
331
+ end
332
+
333
+ class Optional
334
+ attr_reader type: t
335
+
336
+ type loc = Location[bot, bot]
337
+
338
+ def initialize: (type: t, location: loc?) -> void
339
+
340
+ include _TypeBase
341
+
342
+ attr_reader location: loc?
343
+
344
+ def map_type: () { (t) -> t } -> Optional
345
+ | () -> Enumerator[t, Optional]
346
+ end
347
+
348
+ class Union
349
+ attr_reader types: Array[t]
350
+
351
+ type loc = Location[bot, bot]
352
+
353
+ def initialize: (types: Array[t], location: loc?) -> void
354
+
355
+ include _TypeBase
356
+
357
+ attr_reader location: loc?
358
+
359
+ def map_type: () { (t) -> t } -> Union
360
+ | () -> Enumerator[t, Union]
361
+ end
362
+
363
+ class Intersection
364
+ attr_reader types: Array[t]
365
+
366
+ type loc = Location[bot, bot]
367
+
368
+ def initialize: (types: Array[t], location: loc?) -> void
369
+
370
+ include _TypeBase
371
+
372
+ attr_reader location: loc?
373
+
374
+ def map_type: () { (t) -> t } -> Intersection
375
+ | () -> Enumerator[t, Intersection]
376
+ end
377
+
378
+ class Function
379
+ class Param
380
+ type loc = Location[bot, :name]
381
+
382
+ attr_reader type: t
383
+ attr_reader name: Symbol?
384
+ attr_reader location: loc?
385
+
386
+ def initialize: (type: t, name: Symbol?, ?location: loc?) -> void
387
+
388
+ def map_type: { (t) -> t } -> Param
389
+ | -> Enumerator[t, Param]
390
+ end
391
+
392
+ attr_reader required_positionals: Array[Param]
393
+ attr_reader optional_positionals: Array[Param]
394
+ attr_reader rest_positionals: Param?
395
+ attr_reader trailing_positionals: Array[Param]
396
+ attr_reader required_keywords: Hash[Symbol, Param]
397
+ attr_reader optional_keywords: Hash[Symbol, Param]
398
+ attr_reader rest_keywords: Param?
399
+ attr_reader return_type: t
400
+
401
+ def initialize: (required_positionals: Array[Param],
402
+ optional_positionals: Array[Param],
403
+ rest_positionals: Param?,
404
+ trailing_positionals: Array[Param],
405
+ required_keywords: Hash[Symbol, Param],
406
+ optional_keywords: Hash[Symbol, Param],
407
+ rest_keywords: Param?,
408
+ return_type: t) -> void
409
+
410
+ def free_variables: (?Set[Symbol]) -> Set[Symbol]
411
+
412
+ def map_type: { (t) -> t } -> Function
413
+ | -> Enumerator[t, Function]
414
+
415
+ def map_type_name: () { (TypeName, Location[untyped, untyped]?, t) -> TypeName } -> Function
416
+
417
+ def each_type: () { (t) -> void } -> void
418
+ | -> Enumerator[t, void]
419
+
420
+ def each_param: () { (Param) -> void } -> void
421
+ | -> Enumerator[Param, void]
422
+
423
+ include _ToJson
424
+
425
+ def sub: (Substitution) -> Function
426
+
427
+ def self.empty: (t) -> instance
428
+
429
+ def with_return_type: (t) -> Function
430
+
431
+ def update: (?required_positionals: Array[Param],
432
+ ?optional_positionals: Array[Param],
433
+ ?rest_positionals: Param?,
434
+ ?trailing_positionals: Array[Param],
435
+ ?required_keywords: Hash[Symbol, Param],
436
+ ?optional_keywords: Hash[Symbol, Param],
437
+ ?rest_keywords: Param?,
438
+ ?return_type: t) -> Function
439
+
440
+ def empty?: () -> bool
441
+
442
+ def param_to_s: () -> String
443
+ def return_to_s: () -> String
444
+
445
+ def drop_head: () -> [Param, Function]
446
+ def drop_tail: () -> [Param, Function]
447
+
448
+ def has_keyword?: () -> bool
449
+
450
+ def amap: [A, B] (Array[A]) { (A) -> B } -> Array[B]
451
+
452
+ def hmapv: [X, Y, Z] (Hash[X, Y]) { (Y) -> Z } -> Hash[X, Z]
453
+
454
+ def has_self_type?: () -> bool
455
+
456
+ def has_classish_type?: () -> bool
457
+
458
+ def with_nonreturn_void?: () -> bool
459
+
460
+ def ==: (untyped) -> bool
461
+
462
+ alias eql? ==
463
+
464
+ def hash: () -> Integer
465
+ end
466
+
467
+ # Function type without type checking arguments
468
+ #
469
+ class UntypedFunction
470
+ attr_reader return_type: t
471
+
472
+ def initialize: (return_type: t) -> void
473
+
474
+ def free_variables: (?Set[Symbol]) -> Set[Symbol]
475
+
476
+ def map_type: { (t) -> t } -> UntypedFunction
477
+ | -> Enumerator[t, UntypedFunction]
478
+
479
+ def map_type_name: () { (TypeName, Location[untyped, untyped]?, t) -> TypeName } -> UntypedFunction
480
+
481
+ def each_type: () { (t) -> void } -> void
482
+ | -> Enumerator[t, void]
483
+
484
+ def each_param: () { (Function::Param) -> void } -> void
485
+ | -> Enumerator[Function::Param, void]
486
+
487
+ include _ToJson
488
+
489
+ def sub: (Substitution) -> UntypedFunction
490
+
491
+ def with_return_type: (t) -> UntypedFunction
492
+
493
+ def update: (?return_type: t) -> UntypedFunction
494
+
495
+ def empty?: () -> bool
496
+
497
+ def has_self_type?: () -> bool
498
+
499
+ def has_classish_type?: () -> bool
500
+
501
+ def with_nonreturn_void?: () -> bool
502
+
503
+ # Returns `?`
504
+ def param_to_s: () -> String
505
+
506
+ # Returns `return_type.to_s(1)`
507
+ def return_to_s: () -> String
508
+
509
+ def ==: (untyped) -> bool
510
+
511
+ alias eql? ==
512
+
513
+ def hash: () -> Integer
514
+ end
515
+
516
+ type function = Types::Function | Types::UntypedFunction
517
+
518
+ class Block
519
+ attr_reader type: function
520
+ attr_reader required: bool
521
+
522
+ attr_reader self_type: t?
523
+
524
+ def initialize: (type: function, ?self_type: t?, required: boolish) -> void
525
+
526
+ def ==: (untyped other) -> bool
527
+
528
+ include _ToJson
529
+
530
+ def sub: (Substitution) -> Block
531
+
532
+ def map_type: () { (t) -> t } -> Block
533
+ end
534
+
535
+ module SelfTypeBindingHelper
536
+ def self?.self_type_binding_to_s: (t?) -> String
537
+ end
538
+
539
+ class Proc
540
+ attr_reader type: function
541
+ attr_reader block: Block?
542
+
543
+ attr_reader self_type: t?
544
+
545
+ type loc = Location[bot, bot]
546
+
547
+ def initialize: (location: loc?, type: function, ?self_type: t?, block: Block?) -> void
548
+
549
+ include _TypeBase
550
+
551
+ attr_reader location: loc?
552
+
553
+ def map_type: () { (t) -> t } -> Proc
554
+ | () -> Enumerator[t, Proc]
555
+ end
556
+
557
+ class Literal
558
+ type literal = String | Integer | Symbol | TrueClass | FalseClass
559
+ type loc = Location[bot, bot]
560
+
561
+ attr_reader literal: literal
562
+
563
+ def initialize: (literal: literal, location: loc?) -> void
564
+
565
+ include _TypeBase
566
+ include NoFreeVariables
567
+ include NoSubst
568
+ include EmptyEachType
569
+ include NoTypeName
570
+
571
+ attr_reader location: loc?
572
+
573
+ TABLE: Hash[String, String]
574
+
575
+ # Unescape string type body
576
+ def self.unescape_string: (String, bool is_double_quote) -> String
577
+ end
578
+ end
579
+ end