rbs 2.8.4 → 3.8.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (434) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +12 -4
  3. data/.github/workflows/comments.yml +11 -11
  4. data/.github/workflows/dependabot.yml +30 -0
  5. data/.github/workflows/ruby.yml +40 -49
  6. data/.github/workflows/typecheck.yml +36 -0
  7. data/.github/workflows/windows.yml +28 -0
  8. data/.gitignore +1 -0
  9. data/.rubocop.yml +42 -2
  10. data/CHANGELOG.md +845 -1
  11. data/README.md +64 -4
  12. data/Rakefile +198 -18
  13. data/Steepfile +11 -11
  14. data/config.yml +311 -0
  15. data/core/array.rbs +2189 -1914
  16. data/core/basic_object.rbs +59 -84
  17. data/core/binding.rbs +7 -69
  18. data/core/builtin.rbs +210 -11
  19. data/core/class.rbs +37 -0
  20. data/core/comparable.rbs +23 -25
  21. data/core/complex.rbs +449 -227
  22. data/core/constants.rbs +29 -21
  23. data/core/data.rbs +415 -0
  24. data/core/dir.rbs +698 -415
  25. data/core/encoding.rbs +468 -843
  26. data/core/enumerable.rbs +495 -455
  27. data/core/enumerator/product.rbs +92 -0
  28. data/core/enumerator.rbs +106 -9
  29. data/core/env.rbs +1 -1
  30. data/core/errno.rbs +506 -605
  31. data/core/errors.rbs +15 -17
  32. data/core/exception.rbs +361 -145
  33. data/core/false_class.rbs +39 -26
  34. data/core/fiber.rbs +121 -14
  35. data/core/file.rbs +1262 -320
  36. data/core/file_test.rbs +62 -45
  37. data/core/float.rbs +187 -208
  38. data/core/gc.rbs +446 -196
  39. data/core/global_variables.rbs +29 -29
  40. data/core/hash.rbs +242 -349
  41. data/core/integer.rbs +246 -308
  42. data/core/io/buffer.rbs +373 -122
  43. data/core/io/wait.rbs +29 -17
  44. data/core/io.rbs +1881 -1518
  45. data/core/kernel.rbs +2116 -1538
  46. data/core/marshal.rbs +24 -14
  47. data/core/match_data.rbs +413 -166
  48. data/core/math.rbs +531 -291
  49. data/core/method.rbs +101 -32
  50. data/core/module.rbs +228 -64
  51. data/core/nil_class.rbs +106 -47
  52. data/core/numeric.rbs +206 -292
  53. data/core/object.rbs +73 -1168
  54. data/core/object_space/weak_key_map.rbs +166 -0
  55. data/core/object_space.rbs +5 -3
  56. data/core/proc.rbs +280 -39
  57. data/core/process.rbs +1318 -658
  58. data/core/ractor.rbs +200 -134
  59. data/core/random.rbs +21 -4
  60. data/core/range.rbs +309 -153
  61. data/core/rational.rbs +4 -12
  62. data/core/rb_config.rbs +64 -43
  63. data/core/rbs/unnamed/argf.rbs +411 -147
  64. data/core/rbs/unnamed/env_class.rbs +137 -253
  65. data/core/rbs/unnamed/random.rbs +49 -26
  66. data/core/refinement.rbs +16 -1
  67. data/core/regexp.rbs +1568 -862
  68. data/core/ruby_vm.rbs +719 -7
  69. data/core/rubygems/config_file.rbs +3 -0
  70. data/core/rubygems/errors.rbs +69 -6
  71. data/core/rubygems/rubygems.rbs +71 -17
  72. data/core/rubygems/version.rbs +11 -7
  73. data/{stdlib/set/0 → core}/set.rbs +80 -91
  74. data/core/signal.rbs +14 -8
  75. data/core/string.rbs +1732 -1607
  76. data/core/struct.rbs +467 -95
  77. data/core/symbol.rbs +215 -245
  78. data/core/thread.rbs +133 -89
  79. data/core/thread_group.rbs +9 -9
  80. data/core/time.rbs +1141 -841
  81. data/core/trace_point.rbs +181 -121
  82. data/core/true_class.rbs +58 -32
  83. data/core/unbound_method.rbs +103 -30
  84. data/core/warning.rbs +50 -5
  85. data/docs/CONTRIBUTING.md +1 -1
  86. data/docs/architecture.md +110 -0
  87. data/docs/collection.md +59 -5
  88. data/docs/data_and_struct.md +86 -0
  89. data/docs/gem.md +57 -0
  90. data/docs/rbs_by_example.md +16 -35
  91. data/docs/repo.md +1 -1
  92. data/docs/sigs.md +7 -7
  93. data/docs/stdlib.md +63 -5
  94. data/docs/syntax.md +255 -61
  95. data/docs/tools.md +1 -0
  96. data/ext/rbs_extension/extconf.rb +10 -0
  97. data/ext/rbs_extension/lexer.c +1741 -1548
  98. data/ext/rbs_extension/lexer.h +11 -1
  99. data/ext/rbs_extension/lexer.re +12 -6
  100. data/ext/rbs_extension/lexstate.c +26 -3
  101. data/ext/rbs_extension/location.c +119 -111
  102. data/ext/rbs_extension/location.h +32 -7
  103. data/ext/rbs_extension/main.c +3 -0
  104. data/ext/rbs_extension/parser.c +883 -481
  105. data/ext/rbs_extension/parserstate.c +65 -25
  106. data/ext/rbs_extension/parserstate.h +13 -3
  107. data/ext/rbs_extension/rbs_extension.h +1 -10
  108. data/ext/rbs_extension/unescape.c +7 -47
  109. data/goodcheck.yml +2 -2
  110. data/{ext/rbs_extension → include/rbs}/constants.h +26 -15
  111. data/include/rbs/ruby_objs.h +72 -0
  112. data/include/rbs.h +7 -0
  113. data/lib/rbs/annotate/annotations.rb +3 -3
  114. data/lib/rbs/annotate/formatter.rb +13 -3
  115. data/lib/rbs/annotate/rdoc_annotator.rb +1 -1
  116. data/lib/rbs/annotate/rdoc_source.rb +12 -3
  117. data/lib/rbs/ast/declarations.rb +85 -2
  118. data/lib/rbs/ast/directives.rb +39 -0
  119. data/lib/rbs/ast/members.rb +49 -15
  120. data/lib/rbs/ast/type_param.rb +104 -15
  121. data/lib/rbs/ast/visitor.rb +137 -0
  122. data/lib/rbs/buffer.rb +5 -0
  123. data/lib/rbs/cli/colored_io.rb +48 -0
  124. data/lib/rbs/cli/diff.rb +83 -0
  125. data/lib/rbs/cli/validate.rb +356 -0
  126. data/lib/rbs/cli.rb +253 -143
  127. data/lib/rbs/collection/cleaner.rb +8 -1
  128. data/lib/rbs/collection/config/lockfile.rb +92 -0
  129. data/lib/rbs/collection/config/lockfile_generator.rb +154 -65
  130. data/lib/rbs/collection/config.rb +19 -46
  131. data/lib/rbs/collection/installer.rb +12 -13
  132. data/lib/rbs/collection/sources/base.rb +2 -2
  133. data/lib/rbs/collection/sources/git.rb +146 -69
  134. data/lib/rbs/collection/sources/local.rb +81 -0
  135. data/lib/rbs/collection/sources/rubygems.rb +10 -12
  136. data/lib/rbs/collection/sources/stdlib.rb +14 -13
  137. data/lib/rbs/collection/sources.rb +15 -2
  138. data/lib/rbs/collection.rb +2 -1
  139. data/lib/rbs/definition.rb +13 -16
  140. data/lib/rbs/definition_builder/ancestor_builder.rb +100 -24
  141. data/lib/rbs/definition_builder/method_builder.rb +4 -4
  142. data/lib/rbs/definition_builder.rb +489 -584
  143. data/lib/rbs/diff.rb +125 -0
  144. data/lib/rbs/environment/use_map.rb +77 -0
  145. data/lib/rbs/environment.rb +406 -105
  146. data/lib/rbs/environment_loader.rb +48 -44
  147. data/lib/rbs/environment_walker.rb +1 -1
  148. data/lib/rbs/errors.rb +175 -56
  149. data/lib/rbs/file_finder.rb +28 -0
  150. data/lib/rbs/location_aux.rb +8 -7
  151. data/lib/rbs/locator.rb +37 -15
  152. data/lib/rbs/method_type.rb +23 -0
  153. data/lib/rbs/namespace.rb +1 -0
  154. data/lib/rbs/parser/lex_result.rb +15 -0
  155. data/lib/rbs/parser/token.rb +23 -0
  156. data/lib/rbs/parser_aux.rb +22 -13
  157. data/lib/rbs/prototype/helpers.rb +48 -22
  158. data/lib/rbs/prototype/node_usage.rb +99 -0
  159. data/lib/rbs/prototype/rb.rb +125 -31
  160. data/lib/rbs/prototype/rbi.rb +49 -36
  161. data/lib/rbs/prototype/runtime/helpers.rb +59 -0
  162. data/lib/rbs/prototype/runtime/reflection.rb +19 -0
  163. data/lib/rbs/prototype/runtime/value_object_generator.rb +279 -0
  164. data/lib/rbs/prototype/runtime.rb +273 -159
  165. data/lib/rbs/resolver/constant_resolver.rb +24 -8
  166. data/lib/rbs/resolver/type_name_resolver.rb +41 -7
  167. data/lib/rbs/sorter.rb +153 -123
  168. data/lib/rbs/substitution.rb +19 -0
  169. data/lib/rbs/subtractor.rb +201 -0
  170. data/lib/rbs/test/errors.rb +24 -11
  171. data/lib/rbs/test/guaranteed.rb +30 -0
  172. data/lib/rbs/test/hook.rb +45 -40
  173. data/lib/rbs/test/setup.rb +1 -1
  174. data/lib/rbs/test/tester.rb +1 -1
  175. data/lib/rbs/test/type_check.rb +120 -23
  176. data/lib/rbs/test.rb +6 -3
  177. data/lib/rbs/type_alias_dependency.rb +13 -3
  178. data/lib/rbs/type_alias_regularity.rb +21 -14
  179. data/lib/rbs/type_name.rb +18 -13
  180. data/lib/rbs/types.rb +352 -18
  181. data/lib/rbs/unit_test/convertibles.rb +176 -0
  182. data/lib/rbs/unit_test/spy.rb +136 -0
  183. data/lib/rbs/unit_test/type_assertions.rb +341 -0
  184. data/lib/rbs/unit_test/with_aliases.rb +143 -0
  185. data/lib/rbs/unit_test.rb +6 -0
  186. data/lib/rbs/validator.rb +55 -30
  187. data/lib/rbs/variance_calculator.rb +26 -23
  188. data/lib/rbs/vendorer.rb +3 -3
  189. data/lib/rbs/version.rb +1 -1
  190. data/lib/rbs/writer.rb +69 -22
  191. data/lib/rbs.rb +7 -2
  192. data/lib/rdoc/discover.rb +1 -1
  193. data/lib/rdoc_plugin/parser.rb +5 -5
  194. data/rbs.gemspec +12 -2
  195. data/schema/decls.json +1 -1
  196. data/schema/members.json +15 -10
  197. data/sig/ancestor_builder.rbs +4 -0
  198. data/sig/ancestor_graph.rbs +22 -2
  199. data/sig/annotate/formatter.rbs +2 -2
  200. data/sig/annotate/rdoc_annotater.rbs +1 -1
  201. data/sig/cli/colored_io.rbs +15 -0
  202. data/sig/cli/diff.rbs +21 -0
  203. data/sig/cli/validate.rbs +43 -0
  204. data/sig/cli.rbs +4 -0
  205. data/sig/collection/config/lockfile.rbs +74 -0
  206. data/sig/collection/config/lockfile_generator.rbs +66 -0
  207. data/sig/collection/config.rbs +5 -48
  208. data/sig/collection/installer.rbs +1 -1
  209. data/sig/collection/sources.rbs +105 -33
  210. data/sig/constant.rbs +1 -1
  211. data/sig/declarations.rbs +42 -3
  212. data/sig/definition.rbs +26 -10
  213. data/sig/definition_builder.rbs +103 -81
  214. data/sig/diff.rbs +28 -0
  215. data/sig/directives.rbs +61 -0
  216. data/sig/environment.rbs +175 -29
  217. data/sig/environment_loader.rbs +20 -18
  218. data/sig/errors.rbs +123 -2
  219. data/sig/file_finder.rbs +28 -0
  220. data/sig/location.rbs +0 -3
  221. data/sig/locator.rbs +14 -2
  222. data/sig/manifest.yaml +0 -1
  223. data/sig/members.rbs +32 -9
  224. data/sig/method_types.rbs +10 -4
  225. data/sig/namespace.rbs +2 -3
  226. data/sig/parser.rbs +55 -16
  227. data/sig/prototype/helpers.rbs +4 -0
  228. data/sig/prototype/node_usage.rbs +20 -0
  229. data/sig/prototype/rb.rbs +10 -2
  230. data/sig/prototype/rbi.rbs +2 -0
  231. data/sig/prototype/runtime.rbs +182 -0
  232. data/sig/rbs.rbs +1 -1
  233. data/sig/rdoc/rbs.rbs +4 -0
  234. data/sig/repository.rbs +7 -5
  235. data/sig/resolver/constant_resolver.rbs +3 -4
  236. data/sig/resolver/context.rbs +1 -1
  237. data/sig/resolver/type_name_resolver.rbs +5 -1
  238. data/sig/shims/bundler.rbs +38 -0
  239. data/sig/shims/rubygems.rbs +19 -0
  240. data/sig/sorter.rbs +23 -5
  241. data/sig/substitution.rbs +6 -0
  242. data/sig/subtractor.rbs +37 -0
  243. data/sig/test/errors.rbs +52 -0
  244. data/sig/test/guranteed.rbs +9 -0
  245. data/sig/test/type_check.rbs +19 -0
  246. data/sig/test.rbs +82 -0
  247. data/sig/type_alias_dependency.rbs +31 -0
  248. data/sig/type_alias_regularity.rbs +12 -6
  249. data/sig/type_param.rbs +45 -9
  250. data/sig/typename.rbs +8 -5
  251. data/sig/types.rbs +119 -12
  252. data/sig/unit_test/convertibles.rbs +154 -0
  253. data/sig/unit_test/spy.rbs +28 -0
  254. data/sig/unit_test/type_assertions.rbs +194 -0
  255. data/sig/unit_test/with_aliases.rbs +136 -0
  256. data/sig/use_map.rbs +35 -0
  257. data/sig/validator.rbs +12 -5
  258. data/sig/variance_calculator.rbs +3 -1
  259. data/sig/vendorer.rbs +1 -1
  260. data/sig/visitor.rbs +47 -0
  261. data/sig/writer.rbs +6 -2
  262. data/src/constants.c +153 -0
  263. data/src/ruby_objs.c +793 -0
  264. data/stdlib/base64/0/base64.rbs +298 -45
  265. data/stdlib/benchmark/0/benchmark.rbs +12 -3
  266. data/stdlib/bigdecimal/0/big_decimal.rbs +62 -198
  267. data/stdlib/cgi/0/core.rbs +68 -15
  268. data/stdlib/cgi/0/manifest.yaml +1 -0
  269. data/stdlib/coverage/0/coverage.rbs +50 -11
  270. data/stdlib/csv/0/csv.rbs +90 -119
  271. data/stdlib/csv/0/manifest.yaml +1 -0
  272. data/stdlib/date/0/date.rbs +806 -735
  273. data/stdlib/date/0/date_time.rbs +70 -211
  274. data/stdlib/dbm/0/dbm.rbs +0 -2
  275. data/stdlib/delegate/0/delegator.rbs +184 -0
  276. data/stdlib/delegate/0/kernel.rbs +47 -0
  277. data/stdlib/delegate/0/simple_delegator.rbs +96 -0
  278. data/stdlib/did_you_mean/0/did_you_mean.rbs +3 -8
  279. data/stdlib/digest/0/digest.rbs +48 -35
  280. data/stdlib/erb/0/erb.rbs +15 -39
  281. data/stdlib/etc/0/etc.rbs +174 -54
  282. data/stdlib/fileutils/0/fileutils.rbs +1234 -385
  283. data/stdlib/forwardable/0/forwardable.rbs +4 -4
  284. data/stdlib/io-console/0/io-console.rbs +82 -17
  285. data/stdlib/ipaddr/0/ipaddr.rbs +11 -6
  286. data/stdlib/json/0/json.rbs +434 -151
  287. data/stdlib/kconv/0/kconv.rbs +166 -0
  288. data/stdlib/logger/0/formatter.rbs +0 -2
  289. data/stdlib/logger/0/log_device.rbs +1 -3
  290. data/stdlib/logger/0/logger.rbs +465 -328
  291. data/stdlib/minitest/0/kernel.rbs +2 -2
  292. data/stdlib/minitest/0/minitest/abstract_reporter.rbs +4 -1
  293. data/stdlib/minitest/0/minitest/assertion.rbs +1 -0
  294. data/stdlib/minitest/0/minitest/assertions.rbs +58 -13
  295. data/stdlib/minitest/0/minitest/backtrace_filter.rbs +7 -0
  296. data/stdlib/minitest/0/minitest/bench_spec.rbs +8 -8
  297. data/stdlib/minitest/0/minitest/benchmark.rbs +17 -16
  298. data/stdlib/minitest/0/minitest/compress.rbs +13 -0
  299. data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
  300. data/stdlib/minitest/0/minitest/mock.rbs +9 -5
  301. data/stdlib/minitest/0/minitest/parallel/executor.rbs +4 -0
  302. data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +0 -1
  303. data/stdlib/minitest/0/minitest/pride_io.rbs +8 -0
  304. data/stdlib/minitest/0/minitest/pride_lol.rbs +2 -0
  305. data/stdlib/minitest/0/minitest/progress_reporter.rbs +1 -1
  306. data/stdlib/minitest/0/minitest/reportable.rbs +2 -0
  307. data/stdlib/minitest/0/minitest/runnable.rbs +33 -1
  308. data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +1 -1
  309. data/stdlib/minitest/0/minitest/spec/dsl.rbs +10 -6
  310. data/stdlib/minitest/0/minitest/spec.rbs +1 -1
  311. data/stdlib/minitest/0/minitest/statistics_reporter.rbs +5 -0
  312. data/stdlib/minitest/0/minitest/summary_reporter.rbs +0 -7
  313. data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +7 -7
  314. data/stdlib/minitest/0/minitest/test.rbs +7 -14
  315. data/stdlib/minitest/0/minitest/unexpected_error.rbs +2 -0
  316. data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
  317. data/stdlib/minitest/0/minitest/unit.rbs +1 -2
  318. data/stdlib/minitest/0/minitest.rbs +41 -892
  319. data/stdlib/monitor/0/monitor.rbs +91 -10
  320. data/stdlib/mutex_m/0/mutex_m.rbs +0 -2
  321. data/stdlib/net-http/0/manifest.yaml +1 -1
  322. data/stdlib/net-http/0/net-http.rbs +3858 -964
  323. data/stdlib/net-protocol/0/manifest.yaml +2 -0
  324. data/stdlib/net-protocol/0/net-protocol.rbs +56 -0
  325. data/stdlib/net-smtp/0/manifest.yaml +2 -0
  326. data/stdlib/net-smtp/0/net-smtp.rbs +55 -0
  327. data/stdlib/nkf/0/nkf.rbs +35 -5
  328. data/stdlib/objspace/0/objspace.rbs +40 -18
  329. data/stdlib/observable/0/observable.rbs +217 -0
  330. data/stdlib/open-uri/0/manifest.yaml +4 -0
  331. data/stdlib/open-uri/0/open-uri.rbs +393 -0
  332. data/stdlib/open3/0/open3.rbs +147 -0
  333. data/stdlib/openssl/0/manifest.yaml +1 -0
  334. data/stdlib/openssl/0/openssl.rbs +681 -316
  335. data/stdlib/optparse/0/optparse.rbs +100 -65
  336. data/stdlib/pathname/0/pathname.rbs +24 -15
  337. data/stdlib/pp/0/manifest.yaml +2 -0
  338. data/stdlib/pp/0/pp.rbs +300 -0
  339. data/stdlib/prettyprint/0/prettyprint.rbs +2 -6
  340. data/stdlib/pstore/0/pstore.rbs +370 -156
  341. data/stdlib/psych/0/core_ext.rbs +12 -0
  342. data/stdlib/{yaml → psych}/0/dbm.rbs +3 -3
  343. data/stdlib/psych/0/manifest.yaml +3 -0
  344. data/stdlib/psych/0/psych.rbs +402 -0
  345. data/stdlib/{yaml → psych}/0/store.rbs +2 -2
  346. data/stdlib/pty/0/pty.rbs +63 -11
  347. data/stdlib/rdoc/0/code_object.rbs +51 -0
  348. data/stdlib/rdoc/0/comment.rbs +59 -0
  349. data/stdlib/rdoc/0/context.rbs +153 -0
  350. data/stdlib/rdoc/0/markup.rbs +117 -0
  351. data/stdlib/rdoc/0/parser.rbs +56 -0
  352. data/stdlib/rdoc/0/rdoc.rbs +13 -380
  353. data/stdlib/rdoc/0/ri.rbs +17 -0
  354. data/stdlib/rdoc/0/store.rbs +48 -0
  355. data/stdlib/rdoc/0/top_level.rbs +97 -0
  356. data/stdlib/resolv/0/resolv.rbs +16 -79
  357. data/stdlib/ripper/0/ripper.rbs +1648 -0
  358. data/stdlib/securerandom/0/securerandom.rbs +7 -2
  359. data/stdlib/shellwords/0/shellwords.rbs +11 -12
  360. data/stdlib/singleton/0/singleton.rbs +0 -3
  361. data/stdlib/socket/0/addrinfo.rbs +13 -18
  362. data/stdlib/socket/0/basic_socket.rbs +5 -10
  363. data/stdlib/socket/0/ip_socket.rbs +0 -2
  364. data/stdlib/socket/0/socket.rbs +77 -46
  365. data/stdlib/socket/0/tcp_server.rbs +0 -5
  366. data/stdlib/socket/0/tcp_socket.rbs +36 -3
  367. data/stdlib/socket/0/udp_socket.rbs +4 -5
  368. data/stdlib/socket/0/unix_server.rbs +0 -5
  369. data/stdlib/socket/0/unix_socket.rbs +2 -4
  370. data/{core/string_io.rbs → stdlib/stringio/0/stringio.rbs} +188 -107
  371. data/stdlib/strscan/0/string_scanner.rbs +1269 -425
  372. data/stdlib/tempfile/0/tempfile.rbs +224 -61
  373. data/stdlib/time/0/time.rbs +48 -35
  374. data/stdlib/timeout/0/timeout.rbs +17 -8
  375. data/stdlib/tmpdir/0/tmpdir.rbs +10 -3
  376. data/stdlib/tsort/0/tsort.rbs +0 -4
  377. data/stdlib/uri/0/common.rbs +271 -144
  378. data/stdlib/uri/0/file.rbs +5 -0
  379. data/stdlib/uri/0/ftp.rbs +1 -1
  380. data/stdlib/uri/0/generic.rbs +26 -22
  381. data/stdlib/uri/0/http.rbs +4 -4
  382. data/stdlib/uri/0/ldap.rbs +1 -1
  383. data/stdlib/uri/0/mailto.rbs +84 -0
  384. data/stdlib/uri/0/rfc2396_parser.rbs +3 -0
  385. data/stdlib/yaml/0/manifest.yaml +1 -2
  386. data/stdlib/yaml/0/yaml.rbs +1 -199
  387. data/stdlib/zlib/0/buf_error.rbs +10 -0
  388. data/stdlib/zlib/0/data_error.rbs +10 -0
  389. data/stdlib/zlib/0/deflate.rbs +210 -0
  390. data/stdlib/zlib/0/error.rbs +20 -0
  391. data/stdlib/zlib/0/gzip_file/crc_error.rbs +12 -0
  392. data/stdlib/zlib/0/gzip_file/error.rbs +23 -0
  393. data/stdlib/zlib/0/gzip_file/length_error.rbs +12 -0
  394. data/stdlib/zlib/0/gzip_file/no_footer.rbs +11 -0
  395. data/stdlib/zlib/0/gzip_file.rbs +156 -0
  396. data/stdlib/zlib/0/gzip_reader.rbs +293 -0
  397. data/stdlib/zlib/0/gzip_writer.rbs +166 -0
  398. data/stdlib/zlib/0/inflate.rbs +180 -0
  399. data/stdlib/zlib/0/mem_error.rbs +10 -0
  400. data/stdlib/zlib/0/need_dict.rbs +13 -0
  401. data/stdlib/zlib/0/stream_end.rbs +11 -0
  402. data/stdlib/zlib/0/stream_error.rbs +11 -0
  403. data/stdlib/zlib/0/version_error.rbs +11 -0
  404. data/stdlib/zlib/0/zlib.rbs +1 -3
  405. data/stdlib/zlib/0/zstream.rbs +200 -0
  406. data/templates/include/rbs/constants.h.erb +20 -0
  407. data/templates/include/rbs/ruby_objs.h.erb +10 -0
  408. data/templates/src/constants.c.erb +36 -0
  409. data/templates/src/ruby_objs.c.erb +27 -0
  410. data/templates/template.rb +122 -0
  411. metadata +136 -36
  412. data/Gemfile +0 -33
  413. data/Gemfile.lock +0 -118
  414. data/core/deprecated.rbs +0 -9
  415. data/ext/rbs_extension/constants.c +0 -135
  416. data/ext/rbs_extension/ruby_objs.c +0 -525
  417. data/ext/rbs_extension/ruby_objs.h +0 -43
  418. data/lib/rbs/constant_table.rb +0 -167
  419. data/lib/rbs/parser_compat/lexer_error.rb +0 -6
  420. data/lib/rbs/parser_compat/located_value.rb +0 -7
  421. data/lib/rbs/parser_compat/semantics_error.rb +0 -6
  422. data/lib/rbs/parser_compat/syntax_error.rb +0 -6
  423. data/lib/rbs/test/spy.rb +0 -6
  424. data/lib/rbs/type_name_resolver.rb +0 -67
  425. data/sig/constant_table.rbs +0 -30
  426. data/sig/shims/abstract_syntax_tree.rbs +0 -25
  427. data/sig/shims/pp.rbs +0 -3
  428. data/sig/shims/ripper.rbs +0 -8
  429. data/sig/shims.rbs +0 -69
  430. data/sig/type_name_resolver.rbs +0 -26
  431. data/stdlib/minitest/0/manifest.yaml +0 -2
  432. data/stdlib/prime/0/integer-extension.rbs +0 -41
  433. data/stdlib/prime/0/manifest.yaml +0 -2
  434. data/stdlib/prime/0/prime.rbs +0 -372
data/core/symbol.rbs CHANGED
@@ -1,15 +1,14 @@
1
1
  # <!-- rdoc-file=string.c -->
2
- # Symbol objects represent named identifiers inside the Ruby interpreter.
2
+ # A `Symbol` object represents a named identifier inside the Ruby interpreter.
3
3
  #
4
- # You can create a Symbol object explicitly with:
4
+ # You can create a `Symbol` object explicitly with:
5
5
  #
6
- # * A [symbol literal](doc/syntax/literals_rdoc.html#label-Symbol+Literals).
6
+ # * A [symbol literal](rdoc-ref:syntax/literals.rdoc@Symbol+Literals).
7
7
  #
8
- #
9
- # The same Symbol object will be created for a given name or string for the
8
+ # The same `Symbol` object will be created for a given name or string for the
10
9
  # duration of a program's execution, regardless of the context or meaning of
11
10
  # that name. Thus if `Fred` is a constant in one context, a method in another,
12
- # and a class in a third, the Symbol `:Fred` will be the same object in all
11
+ # and a class in a third, the `Symbol` `:Fred` will be the same object in all
13
12
  # three contexts.
14
13
  #
15
14
  # module One
@@ -52,188 +51,140 @@
52
51
  # local_variables
53
52
  # # => [:seven]
54
53
  #
55
- # Symbol objects are different from String objects in that Symbol objects
56
- # represent identifiers, while String objects represent text or data.
54
+ # A `Symbol` object differs from a String object in that a `Symbol` object
55
+ # represents an identifier, while a String object represents text or data.
57
56
  #
58
57
  # ## What's Here
59
58
  #
60
- # First, what's elsewhere. Class Symbol:
61
- #
62
- # * Inherits from [class
63
- # Object](Object.html#class-Object-label-What-27s+Here).
64
- # * Includes [module
65
- # Comparable](Comparable.html#module-Comparable-label-What-27s+Here).
59
+ # First, what's elsewhere. Class `Symbol`:
66
60
  #
61
+ # * Inherits from [class Object](rdoc-ref:Object@What-27s+Here).
62
+ # * Includes [module Comparable](rdoc-ref:Comparable@What-27s+Here).
67
63
  #
68
- # Here, class Symbol provides methods that are useful for:
69
- #
70
- # * [Querying](#class-Symbol-label-Methods+for+Querying)
71
- # * [Comparing](#class-Symbol-label-Methods+for+Comparing)
72
- # * [Converting](#class-Symbol-label-Methods+for+Converting)
64
+ # Here, class `Symbol` provides methods that are useful for:
73
65
  #
66
+ # * [Querying](rdoc-ref:Symbol@Methods+for+Querying)
67
+ # * [Comparing](rdoc-ref:Symbol@Methods+for+Comparing)
68
+ # * [Converting](rdoc-ref:Symbol@Methods+for+Converting)
74
69
  #
75
70
  # ### Methods for Querying
76
71
  #
77
- # ::all_symbols
78
- # : Returns an array of the symbols currently in Ruby's symbol table.
79
- #
80
- # [#=~](#method-i-3D~)
81
- # : Returns the index of the first substring in symbol that matches a
82
- # given Regexp or other object; returns `nil` if no match is found.
83
- #
84
- # #[], #slice
85
- # : Returns a substring of symbol determined by a given index,
86
- # start/length, or range, or string.
87
- #
88
- # #empty?
89
- # : Returns `true` if `self.length` is zero; `false` otherwise.
90
- #
91
- # #encoding
92
- # : Returns the Encoding object that represents the encoding of symbol.
93
- #
94
- # #end_with?
95
- # : Returns `true` if symbol ends with any of the given strings.
96
- #
97
- # #match
98
- # : Returns a MatchData object if symbol matches a given Regexp; `nil`
99
- # otherwise.
100
- #
101
- # #match?
102
- # : Returns `true` if symbol matches a given Regexp; `false` otherwise.
103
- #
104
- # #length, #size
105
- # : Returns the number of characters in symbol.
106
- #
107
- # #start_with?
108
- # : Returns `true` if symbol starts with any of the given strings.
109
- #
110
- #
72
+ # * ::all_symbols: Returns an array of the symbols currently in Ruby's symbol
73
+ # table.
74
+ # * #=~: Returns the index of the first substring in symbol that matches a
75
+ # given Regexp or other object; returns `nil` if no match is found.
76
+ # * #[], #slice : Returns a substring of symbol determined by a given index,
77
+ # start/length, or range, or string.
78
+ # * #empty?: Returns `true` if `self.length` is zero; `false` otherwise.
79
+ # * #encoding: Returns the Encoding object that represents the encoding of
80
+ # symbol.
81
+ # * #end_with?: Returns `true` if symbol ends with any of the given strings.
82
+ # * #match: Returns a MatchData object if symbol matches a given Regexp; `nil`
83
+ # otherwise.
84
+ # * #match?: Returns `true` if symbol matches a given Regexp; `false`
85
+ # otherwise.
86
+ # * #length, #size: Returns the number of characters in symbol.
87
+ # * #start_with?: Returns `true` if symbol starts with any of the given
88
+ # strings.
111
89
  #
112
90
  # ### Methods for Comparing
113
91
  #
114
- # [#<=>](#method-i-3C-3D-3E)
115
- # : Returns -1, 0, or 1 as a given symbol is smaller than, equal to, or
116
- # larger than symbol.
117
- #
118
- # [#==, #===](#method-i-3D-3D)
119
- # : Returns `true` if a given symbol has the same content and encoding.
120
- #
121
- # #casecmp
122
- # : Ignoring case, returns -1, 0, or 1 as a given symbol is smaller than,
123
- # equal to, or larger than symbol.
124
- #
125
- # #casecmp?
126
- # : Returns `true` if symbol is equal to a given symbol after Unicode case
127
- # folding; `false` otherwise.
128
- #
129
- #
92
+ # * #<=>: Returns -1, 0, or 1 as a given symbol is smaller than, equal to, or
93
+ # larger than symbol.
94
+ # * #==, #===: Returns `true` if a given symbol has the same content and
95
+ # encoding.
96
+ # * #casecmp: Ignoring case, returns -1, 0, or 1 as a given symbol is smaller
97
+ # than, equal to, or larger than symbol.
98
+ # * #casecmp?: Returns `true` if symbol is equal to a given symbol after
99
+ # Unicode case folding; `false` otherwise.
130
100
  #
131
101
  # ### Methods for Converting
132
102
  #
133
- # #capitalize
134
- # : Returns symbol with the first character upcased and all other
135
- # characters downcased.
136
- #
137
- # #downcase
138
- # : Returns symbol with all characters downcased.
139
- #
140
- # #inspect
141
- # : Returns the string representation of `self` as a symbol literal.
142
- #
143
- # #name
144
- # : Returns the frozen string corresponding to symbol.
145
- #
146
- # #succ, #next
147
- # : Returns the symbol that is the successor to symbol.
148
- #
149
- # #swapcase
150
- # : Returns symbol with all upcase characters downcased and all downcase
151
- # characters upcased.
152
- #
153
- # #to_proc
154
- # : Returns a Proc object which responds to the method named by symbol.
155
- #
156
- # #to_s, #id2name
157
- # : Returns the string corresponding to `self`.
158
- #
159
- # #to_sym, #intern
160
- # : Returns `self`.
161
- #
162
- # #upcase
163
- # : Returns symbol with all characters upcased.
103
+ # * #capitalize: Returns symbol with the first character upcased and all other
104
+ # characters downcased.
105
+ # * #downcase: Returns symbol with all characters downcased.
106
+ # * #inspect: Returns the string representation of `self` as a symbol literal.
107
+ # * #name: Returns the frozen string corresponding to symbol.
108
+ # * #succ, #next: Returns the symbol that is the successor to symbol.
109
+ # * #swapcase: Returns symbol with all upcase characters downcased and all
110
+ # downcase characters upcased.
111
+ # * #to_proc: Returns a Proc object which responds to the method named by
112
+ # symbol.
113
+ # * #to_s, #id2name: Returns the string corresponding to `self`.
114
+ # * #to_sym, #intern: Returns `self`.
115
+ # * #upcase: Returns symbol with all characters upcased.
164
116
  #
165
117
  class Symbol
166
118
  include Comparable
167
119
 
168
120
  # <!--
169
121
  # rdoc-file=string.c
170
- # - Symbol.all_symbols => array
122
+ # - Symbol.all_symbols -> array_of_symbols
171
123
  # -->
172
- # Returns an array of all the symbols currently in Ruby's symbol table.
124
+ # Returns an array of all symbols currently in Ruby's symbol table:
173
125
  #
174
- # Symbol.all_symbols.size #=> 903
175
- # Symbol.all_symbols[1,20] #=> [:floor, :ARGV, :Binding, :symlink,
176
- # :chown, :EOFError, :$;, :String,
177
- # :LOCK_SH, :"setuid?", :$<,
178
- # :default_proc, :compact, :extend,
179
- # :Tms, :getwd, :$=, :ThreadGroup,
180
- # :wait2, :$>]
126
+ # Symbol.all_symbols.size # => 9334
127
+ # Symbol.all_symbols.take(3) # => [:!, :"\"", :"#"]
181
128
  #
182
- def self.all_symbols: () -> ::Array[Symbol]
183
-
184
- public
129
+ def self.all_symbols: () -> Array[Symbol]
185
130
 
186
131
  # <!--
187
132
  # rdoc-file=string.c
188
- # - symbol <=> other_symbol -> -1, 0, +1, or nil
133
+ # - symbol <=> object -> -1, 0, +1, or nil
189
134
  # -->
190
- # Compares `symbol` with `other_symbol` after calling #to_s on each of the
191
- # symbols. Returns -1, 0, +1, or `nil` depending on whether `symbol` is less
192
- # than, equal to, or greater than `other_symbol`.
135
+ # If `object` is a symbol, returns the equivalent of `symbol.to_s <=>
136
+ # object.to_s`:
137
+ #
138
+ # :bar <=> :foo # => -1
139
+ # :foo <=> :foo # => 0
140
+ # :foo <=> :bar # => 1
141
+ #
142
+ # Otherwise, returns `nil`:
193
143
  #
194
- # `nil` is returned if the two values are incomparable.
144
+ # :foo <=> 'bar' # => nil
195
145
  #
196
- # See String#<=> for more information.
146
+ # Related: String#<=>.
197
147
  #
198
- def <=>: (Symbol other) -> Integer
199
- | (untyped other) -> Integer?
148
+ def <=>: (Symbol object) -> (-1 | 0 | 1)
149
+ | (untyped) -> (-1 | 0 | 1)?
200
150
 
201
151
  # <!--
202
152
  # rdoc-file=string.c
203
- # - sym == obj -> true or false
153
+ # - symbol == object -> true or false
204
154
  # -->
205
- # Equality---If *sym* and *obj* are exactly the same symbol, returns `true`.
155
+ # Returns `true` if `object` is the same object as `self`, `false` otherwise.
206
156
  #
207
- def ==: (untyped obj) -> bool
157
+ def ==: (untyped object) -> bool
208
158
 
209
159
  # <!-- rdoc-file=string.c -->
210
- # Equality---If *sym* and *obj* are exactly the same symbol, returns `true`.
160
+ # Returns `true` if `object` is the same object as `self`, `false` otherwise.
211
161
  #
212
- def ===: (untyped obj) -> bool
162
+ alias === ==
213
163
 
214
164
  # <!--
215
165
  # rdoc-file=string.c
216
- # - sym =~ obj -> integer or nil
166
+ # - symbol =~ object -> integer or nil
217
167
  # -->
218
- # Returns `sym.to_s =~ obj`.
168
+ # Equivalent to `symbol.to_s =~ object`, including possible updates to global
169
+ # variables; see String#=~.
219
170
  #
220
- def =~: (untyped obj) -> Integer?
171
+ def =~: (Regexp regex) -> Integer?
172
+ | [T] (String::_MatchAgainst[String, T] object) -> T
221
173
 
222
174
  # <!--
223
175
  # rdoc-file=string.c
224
- # - sym[idx] -> char
225
- # - sym[b, n] -> string
226
- # - sym.slice(idx) -> char
227
- # - sym.slice(b, n) -> string
176
+ # - symbol[index] -> string or nil
177
+ # - symbol[start, length] -> string or nil
178
+ # - symbol[range] -> string or nil
179
+ # - symbol[regexp, capture = 0] -> string or nil
180
+ # - symbol[substring] -> string or nil
228
181
  # -->
229
- # Returns `sym.to_s[]`.
230
- #
231
- def []: (int index) -> String?
232
- | (int start, int length) -> String?
233
- | (Range[Integer?] range) -> String?
234
- | (Regexp regexp) -> String?
235
- | (Regexp regexp, int | String capture) -> String?
236
- | (String match_str) -> String?
182
+ # Equivalent to `symbol.to_s[]`; see String#[].
183
+ #
184
+ def []: (int start, ?int length) -> String?
185
+ | (range[int?] range) -> String?
186
+ | (Regexp regexp, ?MatchData::capture backref) -> String?
187
+ | (String substring) -> String?
237
188
 
238
189
  # <!--
239
190
  # rdoc-file=string.c
@@ -250,56 +201,70 @@ class Symbol
250
201
 
251
202
  # <!--
252
203
  # rdoc-file=string.c
253
- # - casecmp(other_symbol) -> -1, 0, 1, or nil
204
+ # - casecmp(object) -> -1, 0, 1, or nil
254
205
  # -->
255
- # Case-insensitive version of [Symbol#<=>](#method-i-3C-3D-3E):
206
+ # Like Symbol#<=>, but case-insensitive; equivalent to
207
+ # `self.to_s.casecmp(object.to_s)`:
256
208
  #
257
- # :aBcDeF.casecmp(:abcde) # => 1
258
- # :aBcDeF.casecmp(:abcdef) # => 0
259
- # :aBcDeF.casecmp(:abcdefg) # => -1
260
- # :abcdef.casecmp(:ABCDEF) # => 0
209
+ # lower = :abc
210
+ # upper = :ABC
211
+ # upper.casecmp(lower) # => 0
212
+ # lower.casecmp(lower) # => 0
213
+ # lower.casecmp(upper) # => 0
261
214
  #
262
- # Returns `nil` if the two symbols have incompatible encodings, or if
263
- # `other_symbol` is not a symbol:
215
+ # Returns nil if `self` and `object` have incompatible encodings, or if `object`
216
+ # is not a symbol:
264
217
  #
265
- # sym = "\u{e4 f6 fc}".encode("ISO-8859-1").to_sym
266
- # other_sym = :"\u{c4 d6 dc}"
218
+ # sym = 'äöü'.encode("ISO-8859-1").to_sym
219
+ # other_sym = 'ÄÖÜ'
267
220
  # sym.casecmp(other_sym) # => nil
268
221
  # :foo.casecmp(2) # => nil
269
222
  #
270
- # Currently, case-insensitivity only works on characters A-Z/a-z, not all of
271
- # Unicode. This is different from Symbol#casecmp?.
223
+ # Unlike Symbol#casecmp?, case-insensitivity does not work for characters
224
+ # outside of 'A'..'Z' and 'a'..'z':
225
+ #
226
+ # lower = :äöü
227
+ # upper = :ÄÖÜ
228
+ # upper.casecmp(lower) # => -1
229
+ # lower.casecmp(lower) # => 0
230
+ # lower.casecmp(upper) # => 1
272
231
  #
273
- # Related: Symbol#casecmp?.
232
+ # Related: Symbol#casecmp?, String#casecmp.
274
233
  #
275
- def casecmp: (untyped other) -> Integer?
234
+ def casecmp: (untyped object) -> (-1 | 0 | 1)?
276
235
 
277
236
  # <!--
278
237
  # rdoc-file=string.c
279
- # - casecmp?(other_symbol) -> true, false, or nil
238
+ # - casecmp?(object) -> true, false, or nil
280
239
  # -->
281
- # Returns `true` if `sym` and `other_symbol` are equal after Unicode case
282
- # folding, `false` if they are not equal:
240
+ # Returns `true` if `self` and `object` are equal after Unicode case folding,
241
+ # otherwise `false`:
283
242
  #
284
- # :aBcDeF.casecmp?(:abcde) # => false
285
- # :aBcDeF.casecmp?(:abcdef) # => true
286
- # :aBcDeF.casecmp?(:abcdefg) # => false
287
- # :abcdef.casecmp?(:ABCDEF) # => true
288
- # :"\u{e4 f6 fc}".casecmp?(:"\u{c4 d6 dc}") #=> true
243
+ # lower = :abc
244
+ # upper = :ABC
245
+ # upper.casecmp?(lower) # => true
246
+ # lower.casecmp?(lower) # => true
247
+ # lower.casecmp?(upper) # => true
289
248
  #
290
- # Returns `nil` if the two symbols have incompatible encodings, or if
291
- # `other_symbol` is not a symbol:
249
+ # Returns nil if `self` and `object` have incompatible encodings, or if `object`
250
+ # is not a symbol:
292
251
  #
293
- # sym = "\u{e4 f6 fc}".encode("ISO-8859-1").to_sym
294
- # other_sym = :"\u{c4 d6 dc}"
252
+ # sym = 'äöü'.encode("ISO-8859-1").to_sym
253
+ # other_sym = 'ÄÖÜ'
295
254
  # sym.casecmp?(other_sym) # => nil
296
255
  # :foo.casecmp?(2) # => nil
297
256
  #
298
- # See [Case Mapping](doc/case_mapping_rdoc.html).
257
+ # Unlike Symbol#casecmp, works for characters outside of 'A'..'Z' and 'a'..'z':
299
258
  #
300
- # Related: Symbol#casecmp.
259
+ # lower = :äöü
260
+ # upper = :ÄÖÜ
261
+ # upper.casecmp?(lower) # => true
262
+ # lower.casecmp?(lower) # => true
263
+ # lower.casecmp?(upper) # => true
301
264
  #
302
- def casecmp?: (untyped other) -> bool?
265
+ # Related: Symbol#casecmp, String#casecmp?.
266
+ #
267
+ def casecmp?: (untyped object) -> bool?
303
268
 
304
269
  # <!--
305
270
  # rdoc-file=string.c
@@ -318,129 +283,131 @@ class Symbol
318
283
 
319
284
  # <!--
320
285
  # rdoc-file=string.c
321
- # - sym.empty? -> true or false
286
+ # - empty? -> true or false
322
287
  # -->
323
- # Returns whether *sym* is :"" or not.
288
+ # Returns `true` if `self` is `:''`, `false` otherwise.
324
289
  #
325
290
  def empty?: () -> bool
326
291
 
327
292
  # <!--
328
293
  # rdoc-file=string.c
329
- # - sym.encoding -> encoding
294
+ # - encoding -> encoding
330
295
  # -->
331
- # Returns the Encoding object that represents the encoding of *sym*.
296
+ # Equivalent to `self.to_s.encoding`; see String#encoding.
332
297
  #
333
298
  def encoding: () -> Encoding
334
299
 
335
300
  # <!--
336
301
  # rdoc-file=string.c
337
- # - sym.end_with?([suffixes]+) -> true or false
302
+ # - end_with?(*strings) -> true or false
338
303
  # -->
339
- # Returns true if `sym` ends with one of the `suffixes` given.
340
- #
341
- # :hello.end_with?("ello") #=> true
342
- #
343
- # # returns true if one of the +suffixes+ matches.
344
- # :hello.end_with?("heaven", "ello") #=> true
345
- # :hello.end_with?("heaven", "paradise") #=> false
304
+ # Equivalent to `self.to_s.end_with?`; see String#end_with?.
346
305
  #
347
306
  def end_with?: (*string suffixes) -> bool
348
307
 
349
- # <!-- rdoc-file=string.c -->
350
- # Returns the name or string corresponding to *sym*.
351
- #
352
- # :fred.id2name #=> "fred"
353
- # :ginger.to_s #=> "ginger"
354
- #
355
- # Note that this string is not frozen (unlike the symbol itself). To get a
356
- # frozen string, use #name.
308
+ # <!--
309
+ # rdoc-file=symbol.rb
310
+ # - id2name()
311
+ # -->
357
312
  #
358
- def id2name: () -> String
313
+ alias id2name to_s
359
314
 
360
315
  # <!--
361
316
  # rdoc-file=string.c
362
- # - sym.inspect -> string
317
+ # - inspect -> string
363
318
  # -->
364
- # Returns the representation of *sym* as a symbol literal.
319
+ # Returns a string representation of `self` (including the leading colon):
365
320
  #
366
- # :fred.inspect #=> ":fred"
321
+ # :foo.inspect # => ":foo"
322
+ #
323
+ # Related: Symbol#to_s, Symbol#name.
367
324
  #
368
325
  def inspect: () -> String
369
326
 
370
327
  # <!--
371
- # rdoc-file=string.c
372
- # - sym.to_sym -> sym
373
- # - sym.intern -> sym
328
+ # rdoc-file=symbol.rb
329
+ # - intern()
374
330
  # -->
375
- # In general, `to_sym` returns the Symbol corresponding to an object. As *sym*
376
- # is already a symbol, `self` is returned in this case.
377
331
  #
378
- def intern: () -> Symbol
332
+ alias intern to_sym
379
333
 
380
334
  # <!--
381
335
  # rdoc-file=string.c
382
- # - sym.length -> integer
383
- # - sym.size -> integer
336
+ # - length -> integer
384
337
  # -->
385
- # Same as `sym.to_s.length`.
338
+ # Equivalent to `self.to_s.length`; see String#length.
386
339
  #
387
340
  def length: () -> Integer
388
341
 
389
342
  # <!--
390
343
  # rdoc-file=string.c
391
- # - sym.match(pattern) -> matchdata or nil
392
- # - sym.match(pattern, pos) -> matchdata or nil
344
+ # - match(pattern, offset = 0) -> matchdata or nil
345
+ # - match(pattern, offset = 0) {|matchdata| } -> object
393
346
  # -->
394
- # Returns `sym.to_s.match`.
347
+ # Equivalent to `self.to_s.match`, including possible updates to global
348
+ # variables; see String#match.
395
349
  #
396
- def match: (Regexp | string pattern, ?int pos) -> MatchData?
397
- | (Regexp | string pattern, ?int pos) { (MatchData) -> void } -> untyped
350
+ def match: (Regexp | string pattern, ?int offset) -> MatchData?
351
+ | [T] (Regexp | string pattern, ?int offset) { (MatchData matchdata) -> T } -> T?
398
352
 
399
353
  # <!--
400
354
  # rdoc-file=string.c
401
- # - sym.match?(pattern) -> true or false
402
- # - sym.match?(pattern, pos) -> true or false
355
+ # - match?(pattern, offset) -> true or false
403
356
  # -->
404
- # Returns `sym.to_s.match?`.
357
+ # Equivalent to `sym.to_s.match?`; see String#match.
405
358
  #
406
- def match?: (Regexp | string pattern, ?int pos) -> bool
359
+ def match?: (Regexp | string pattern, ?int offset) -> bool
407
360
 
408
361
  # <!-- rdoc-file=string.c -->
409
- # Same as `sym.to_s.succ.intern`.
362
+ # Equivalent to `self.to_s.succ.to_sym`:
363
+ #
364
+ # :foo.succ # => :fop
365
+ #
366
+ # Related: String#succ.
410
367
  #
411
368
  def next: () -> Symbol
412
369
 
370
+ # <!--
371
+ # rdoc-file=symbol.rb
372
+ # - name -> string
373
+ # -->
374
+ # Returns a frozen string representation of `self` (not including the leading
375
+ # colon):
376
+ #
377
+ # :foo.name # => "foo"
378
+ # :foo.name.frozen? # => true
379
+ #
380
+ # Related: Symbol#to_s, Symbol#inspect.
381
+ #
382
+ def name: () -> String
383
+
413
384
  # <!-- rdoc-file=string.c -->
414
- # Same as `sym.to_s.length`.
385
+ # Equivalent to `self.to_s.length`; see String#length.
415
386
  #
416
387
  alias size length
417
388
 
418
389
  # <!-- rdoc-file=string.c -->
419
- # Returns `sym.to_s[]`.
390
+ # Equivalent to `symbol.to_s[]`; see String#[].
420
391
  #
421
392
  alias slice []
422
393
 
423
394
  # <!--
424
395
  # rdoc-file=string.c
425
- # - sym.start_with?([prefixes]+) -> true or false
396
+ # - start_with?(*string_or_regexp) -> true or false
426
397
  # -->
427
- # Returns true if `sym` starts with one of the `prefixes` given. Each of the
428
- # `prefixes` should be a String or a Regexp.
429
- #
430
- # :hello.start_with?("hell") #=> true
431
- # :hello.start_with?(/H/i) #=> true
398
+ # Equivalent to `self.to_s.start_with?`; see String#start_with?.
432
399
  #
433
- # # returns true if one of the prefixes matches.
434
- # :hello.start_with?("heaven", "hell") #=> true
435
- # :hello.start_with?("heaven", "paradise") #=> false
436
- #
437
- def start_with?: (*string | Regexp prefixes) -> bool
400
+ def start_with?: (*Regexp | string prefixes) -> bool
438
401
 
439
402
  # <!--
440
403
  # rdoc-file=string.c
441
- # - sym.succ
404
+ # - succ
442
405
  # -->
443
- # Same as `sym.to_s.succ.intern`.
406
+ # Equivalent to `self.to_s.succ.to_sym`:
407
+ #
408
+ # :foo.succ # => :fop
409
+ #
410
+ # Related: String#succ.
444
411
  #
445
412
  alias succ next
446
413
 
@@ -459,34 +426,39 @@ class Symbol
459
426
 
460
427
  # <!--
461
428
  # rdoc-file=string.c
462
- # - sym.to_proc
429
+ # - to_proc
463
430
  # -->
464
- # Returns a *Proc* object which responds to the given method by *sym*.
431
+ # Returns a Proc object which calls the method with name of `self` on the first
432
+ # parameter and passes the remaining parameters to the method.
465
433
  #
466
- # (1..3).collect(&:to_s) #=> ["1", "2", "3"]
434
+ # proc = :to_s.to_proc # => #<Proc:0x000001afe0e48680(&:to_s) (lambda)>
435
+ # proc.call(1000) # => "1000"
436
+ # proc.call(1000, 16) # => "3e8"
437
+ # (1..3).collect(&:to_s) # => ["1", "2", "3"]
467
438
  #
468
439
  def to_proc: () -> Proc
469
440
 
470
441
  # <!--
471
- # rdoc-file=string.c
472
- # - sym.id2name -> string
473
- # - sym.to_s -> string
442
+ # rdoc-file=symbol.rb
443
+ # - to_s -> string
474
444
  # -->
475
- # Returns the name or string corresponding to *sym*.
445
+ # Returns a string representation of `self` (not including the leading colon):
476
446
  #
477
- # :fred.id2name #=> "fred"
478
- # :ginger.to_s #=> "ginger"
447
+ # :foo.to_s # => "foo"
479
448
  #
480
- # Note that this string is not frozen (unlike the symbol itself). To get a
481
- # frozen string, use #name.
449
+ # Related: Symbol#inspect, Symbol#name.
482
450
  #
483
- alias to_s id2name
451
+ def to_s: () -> String
484
452
 
485
- # <!-- rdoc-file=string.c -->
486
- # In general, `to_sym` returns the Symbol corresponding to an object. As *sym*
487
- # is already a symbol, `self` is returned in this case.
453
+ # <!--
454
+ # rdoc-file=symbol.rb
455
+ # - to_sym -> self
456
+ # -->
457
+ # Returns `self`.
458
+ #
459
+ # Related: String#to_sym.
488
460
  #
489
- alias to_sym intern
461
+ def to_sym: () -> self
490
462
 
491
463
  # <!--
492
464
  # rdoc-file=string.c
@@ -500,6 +472,4 @@ class Symbol
500
472
  | (:ascii | :lithuanian | :turkic) -> Symbol
501
473
  | (:lithuanian, :turkic) -> Symbol
502
474
  | (:turkic, :lithuanian) -> Symbol
503
-
504
- def clone: (?freeze: true?) -> self
505
475
  end