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/CHANGELOG.md CHANGED
@@ -1,6 +1,850 @@
1
1
  # CHANGELOG
2
2
 
3
- ## master
3
+ ## 3.8.1 (2024-12-27)
4
+
5
+ ### Signature updates
6
+
7
+ * `Ractor.store_if_absent` ([#2206](https://github.com/ruby/rbs/pull/2206))
8
+ * `Time#iso860t1` ([#2207](https://github.com/ruby/rbs/pull/2207))
9
+ * `Time#xmlschema` ([#2207](https://github.com/ruby/rbs/pull/2207))
10
+
11
+ ### Miscellaneous
12
+
13
+ * Update rubocop-on-rbs ([#2200](https://github.com/ruby/rbs/pull/2200))
14
+ * Update docs based on Ruby 3.4.1 ([#2208](https://github.com/ruby/rbs/pull/2208))
15
+ * Ruby 3.4.1 ([#2206](https://github.com/ruby/rbs/pull/2206))
16
+
17
+ ## 3.8.0 (2024-12-24)
18
+
19
+ ### Signature updates
20
+
21
+ * `Dir.mktmpdir` ([#2158](https://github.com/ruby/rbs/pull/2158))
22
+ * `File.join` ([#2158](https://github.com/ruby/rbs/pull/2158))
23
+ * `IO#each_line` ([#2151](https://github.com/ruby/rbs/pull/2151))
24
+ * `Kernel#readlines` ([#2151](https://github.com/ruby/rbs/pull/2151))
25
+ * `Ractor.store_if_absent` ([#2198](https://github.com/ruby/rbs/pull/2198))
26
+ * Update docs as of 2024-12-24, 16:13 JST ([#2193](https://github.com/ruby/rbs/pull/2193))
27
+
28
+ ### Library changes
29
+
30
+ * Adjust capacity of location children ([#2197](https://github.com/ruby/rbs/pull/2197))
31
+ * Should validate self-type on Proc ([#2192](https://github.com/ruby/rbs/pull/2192))
32
+
33
+ ## 3.8.0.pre.1 (2024-12-19)
34
+
35
+ ### Signature updates
36
+
37
+ * `RubyVM::AbstractSyntaxTree::Location` ([#2189](https://github.com/ruby/rbs/pull/2189))
38
+ * `_JsonWrite#flush` ([#2134](https://github.com/ruby/rbs/pull/2134))
39
+ * `Array#fetch_values` ([#2189](https://github.com/ruby/rbs/pull/2189))
40
+ * `Array#to_csv` ([#2099](https://github.com/ruby/rbs/pull/2099))
41
+ * `Exception#set_backtrace` ([#2189](https://github.com/ruby/rbs/pull/2189))
42
+ * `Fiber#raise` ([#2189](https://github.com/ruby/rbs/pull/2189))
43
+ * `GC.config` ([#2189](https://github.com/ruby/rbs/pull/2189))
44
+ * `Hash.new` ([#2189](https://github.com/ruby/rbs/pull/2189))
45
+ * `Kernel#raise` ([#2189](https://github.com/ruby/rbs/pull/2189))
46
+ * `MatchData#bytebegin` ([#2189](https://github.com/ruby/rbs/pull/2189))
47
+ * `MatchData#byteend` ([#2189](https://github.com/ruby/rbs/pull/2189))
48
+ * `Pathname#mkpath` ([#2048](https://github.com/ruby/rbs/pull/2048))
49
+ * `Pathname#rmtree` ([#2048](https://github.com/ruby/rbs/pull/2048))
50
+ * `Ractor._require` ([#2189](https://github.com/ruby/rbs/pull/2189))
51
+ * `Ractor.[]` ([#2189](https://github.com/ruby/rbs/pull/2189))
52
+ * `Ractor.[]=` ([#2189](https://github.com/ruby/rbs/pull/2189))
53
+ * `Ractor.main?` ([#2189](https://github.com/ruby/rbs/pull/2189))
54
+ * `Range#step` ([#1958](https://github.com/ruby/rbs/pull/1958))
55
+ * `RubyVM::AbstractSyntaxTree::Node#locations` ([#2189](https://github.com/ruby/rbs/pull/2189))
56
+ * `String#append_as_bytes` ([#2189](https://github.com/ruby/rbs/pull/2189))
57
+ * `String#parse_csv` ([#2099](https://github.com/ruby/rbs/pull/2099))
58
+ * `String#scan` ([#2146](https://github.com/ruby/rbs/pull/2146))
59
+ * `Tempfile.create` ([#2189](https://github.com/ruby/rbs/pull/2189))
60
+ * `Thread#raise` ([#2189](https://github.com/ruby/rbs/pull/2189))
61
+ * `Time#iso8601` ([#2189](https://github.com/ruby/rbs/pull/2189))
62
+ * `Time#xmlschema` ([#2189](https://github.com/ruby/rbs/pull/2189))
63
+ * `Warning.categories` ([#2189](https://github.com/ruby/rbs/pull/2189))
64
+ * `ZStream#finish` ([#2136](https://github.com/ruby/rbs/pull/2136))
65
+ * Generate docs based on ruby 3.4.0-rc1 ([#2183](https://github.com/ruby/rbs/pull/2183))
66
+
67
+ ### Library changes
68
+
69
+ * Deprecate `Kernel#Namespace` ([#2123](https://github.com/ruby/rbs/pull/2123))
70
+ * Fix `missing braces around initializer` warning ([#2180](https://github.com/ruby/rbs/pull/2180))
71
+ * Avoid double name resolution ([#2127](https://github.com/ruby/rbs/pull/2127))
72
+ * Remove forward declarations of local variables ([#2132](https://github.com/ruby/rbs/pull/2132))
73
+ * Designated initializers ([#2131](https://github.com/ruby/rbs/pull/2131))
74
+
75
+ ### Miscellaneous
76
+
77
+ * Update docs with rdoc-6.10.0 ([#2182](https://github.com/ruby/rbs/pull/2182))
78
+ * Update rdoc ([#2160](https://github.com/ruby/rbs/pull/2160))
79
+ * Prepare for ruby 3.4.0 ([#2181](https://github.com/ruby/rbs/pull/2181))
80
+ * Fix typo in `instance` usage example ([#2139](https://github.com/ruby/rbs/pull/2139))
81
+ * Indent `parser_test` code snippets properly ([#2137](https://github.com/ruby/rbs/pull/2137))
82
+ * Bump rbs and steep in /steep ([#2129](https://github.com/ruby/rbs/pull/2129))
83
+ * Un-hardcode repo name in test suite ([#2128](https://github.com/ruby/rbs/pull/2128))
84
+
85
+ ## 3.7.0 (2024-12-05)
86
+
87
+ ### Miscellaneous
88
+
89
+ * bundle update mutex_m ([#2122](https://github.com/ruby/rbs/pull/2122))
90
+
91
+ ## 3.7.0.pre.1 (2024-12-05)
92
+
93
+ ### Signature updates
94
+
95
+ * `CGI.accept_charset` ([#2045](https://github.com/ruby/rbs/pull/2045))
96
+ * `IO#readline`, `IO#readlines` ([#2059](https://github.com/ruby/rbs/pull/2059))
97
+ * `Kernel#proc` ([#2036](https://github.com/ruby/rbs/pull/2036))
98
+ * `Kernel#system` ([#2075](https://github.com/ruby/rbs/pull/2075))
99
+ * `Object#to_yaml` ([#2107](https://github.com/ruby/rbs/pull/2107))
100
+ * `OpenSSL::Digest` ([#2108](https://github.com/ruby/rbs/pull/2108))
101
+ * `OpenSSL.base64digest` ([#2078](https://github.com/ruby/rbs/pull/2078))
102
+ * `Process.detach` ([#2083](https://github.com/ruby/rbs/pull/2083))
103
+
104
+ ### Library changes
105
+
106
+ * Reduce object allocation for record type ([#2118](https://github.com/ruby/rbs/pull/2118))
107
+ * Milestone to graduate stringio from core. ([#2114](https://github.com/ruby/rbs/pull/2114))
108
+ * Mark all internal `parse_` methods as `static` ([#2103](https://github.com/ruby/rbs/pull/2103))
109
+ * Add templating mechanism to automatically generate `.c`/`.h` files ([#2098](https://github.com/ruby/rbs/pull/2098))
110
+ * Remove unused `rbs_unescape_string` declaration ([#2058](https://github.com/ruby/rbs/pull/2058))
111
+ * Fix UntypedFunction does not provide #map_type_name ([#2054](https://github.com/ruby/rbs/pull/2054))
112
+ * Better `instance_eval`/`instance_exec` detection ([#2052](https://github.com/ruby/rbs/pull/2052))
113
+ * Overload annotations ([#2049](https://github.com/ruby/rbs/pull/2049))
114
+
115
+ #### rbs prototype
116
+
117
+ * prototype rb: Fix crashed by self::CONST ([#2079](https://github.com/ruby/rbs/pull/2079))
118
+
119
+ #### rbs collection
120
+
121
+ * mutex_m support ([#2115](https://github.com/ruby/rbs/pull/2115))
122
+
123
+ ### Miscellaneous
124
+
125
+ * Use `File.open` with block ([#2119](https://github.com/ruby/rbs/pull/2119))
126
+ * Compile without activesupport ([#2105](https://github.com/ruby/rbs/pull/2105))
127
+ * docs: Add singleton attribute members to syntax.md ([#2090](https://github.com/ruby/rbs/pull/2090))
128
+ * Bundle update rubocop-on-rbs ([#2094](https://github.com/ruby/rbs/pull/2094))
129
+ * `bundle exec` on windows ([#2101](https://github.com/ruby/rbs/pull/2101))
130
+ * Fix typos ([#2097](https://github.com/ruby/rbs/pull/2097))
131
+ * Bundle update json 2.8.2 ([#2095](https://github.com/ruby/rbs/pull/2095))
132
+ * Skip `rbs` gem validation ([#2084](https://github.com/ruby/rbs/pull/2084))
133
+ * Skip PTY_test with Windows platform ([#2055](https://github.com/ruby/rbs/pull/2055))
134
+ * Randomize stdlib test order to uncover hidden assumptions ([#2043](https://github.com/ruby/rbs/pull/2043))
135
+ * Suppress `inline` is not at beginning of declaration for melt_array ([#2050](https://github.com/ruby/rbs/pull/2050))
136
+ * Skip `mkpath` test with 3.4 ([#2053](https://github.com/ruby/rbs/pull/2053))
137
+
138
+ ## 3.6.1 (2024-10-03)
139
+
140
+ ### Library changes
141
+
142
+ * Mark as ractor-safe ([#2041](https://github.com/ruby/rbs/pull/2041))
143
+
144
+ ### Miscellaneous
145
+
146
+ * Omit IOConsoleTest with Windows platform ([#2044](https://github.com/ruby/rbs/pull/2044))
147
+ * Recover `$stdout` after test ([#2042](https://github.com/ruby/rbs/pull/2042))
148
+
149
+ ## 3.6.0 (2024-09-30)
150
+
151
+ Nothing changed since `3.6.0.pre.3`.
152
+
153
+ ## 3.6.0.pre.3 (2024-09-30)
154
+
155
+ ### Signature updates
156
+
157
+ * `JSON.load_file`, `.load_file!` ([#2031](https://github.com/ruby/rbs/pull/2031))
158
+ * `Module#class_eval`, `Module#module_eval` ([#2029](https://github.com/ruby/rbs/pull/2029))
159
+ * `Open3` ([#2014](https://github.com/ruby/rbs/pull/2014))
160
+ * `RubyVM::InstructionSequence` ([#2027](https://github.com/ruby/rbs/pull/2027))
161
+ * Fixup RBS type definitions with rbs-on-rubocop ([#2023](https://github.com/ruby/rbs/pull/2023))
162
+ * Avoid using `instance`/`class` types in modules ([#2020](https://github.com/ruby/rbs/pull/2020))
163
+
164
+ ### Language updates
165
+
166
+ * Optional type param restriction ([#2030](https://github.com/ruby/rbs/pull/2030))
167
+ * Prohibit `self` type as a generics default ([#2022](https://github.com/ruby/rbs/pull/2022))
168
+ * Allow `self` types in generics default type ([#2021](https://github.com/ruby/rbs/pull/2021))
169
+
170
+ ### Library changes
171
+
172
+ * Add `TypeParamDefaultReferenceError#type_param` ([#2032](https://github.com/ruby/rbs/pull/2032))
173
+
174
+ ## 3.6.0.pre.2 (2024-09-18)
175
+
176
+ ### Signature updates
177
+
178
+ * `Kernel#class` ([#2017](https://github.com/ruby/rbs/pull/2017))
179
+ * `TracePoint#enable` ([#2015](https://github.com/ruby/rbs/pull/2015))
180
+
181
+ ### Miscellaneous
182
+
183
+ * Fix type definition and type errors ([#2016](https://github.com/ruby/rbs/pull/2016))
184
+
185
+ ## 3.6.0.pre.1 (2024-09-17)
186
+
187
+ ### Signature updates
188
+
189
+ * csv ([#2012](https://github.com/ruby/rbs/pull/2012), [#1864](https://github.com/ruby/rbs/pull/1864), [#2002](https://github.com/ruby/rbs/pull/2002), [#2003](https://github.com/ruby/rbs/pull/2003), [#1903](https://github.com/ruby/rbs/pull/1903))
190
+ * digest ([#1880](https://github.com/ruby/rbs/pull/1880))
191
+ * kconv ([#1857](https://github.com/ruby/rbs/pull/1857))
192
+ * zlib ([#1911](https://github.com/ruby/rbs/pull/1911))
193
+ * `_Each` ([#2006](https://github.com/ruby/rbs/pull/2006))
194
+ * `Array` ([#1921](https://github.com/ruby/rbs/pull/1921))
195
+ * `Enumerable` ([#1921](https://github.com/ruby/rbs/pull/1921))
196
+ * `Enumerator::_Each` ([#2006](https://github.com/ruby/rbs/pull/2006), [#1915](https://github.com/ruby/rbs/pull/1915))
197
+ * `Enumerator` ([#2004](https://github.com/ruby/rbs/pull/2004))
198
+ * `Kernel` ([#1945](https://github.com/ruby/rbs/pull/1945))
199
+ * `Method` ([#1939](https://github.com/ruby/rbs/pull/1939))
200
+ * `Module` ([#1921](https://github.com/ruby/rbs/pull/1921))
201
+ * `Net::HTTPHeader` ([#1932](https://github.com/ruby/rbs/pull/1932))
202
+ * `Proc` ([#1937](https://github.com/ruby/rbs/pull/1937))
203
+ * `Queue` ([#2004](https://github.com/ruby/rbs/pull/2004))
204
+ * `Range` ([#1921](https://github.com/ruby/rbs/pull/1921))
205
+ * `Refinement` ([#1931](https://github.com/ruby/rbs/pull/1931))
206
+ * `Symbol` ([#1930](https://github.com/ruby/rbs/pull/1930))
207
+ * `TracePoint` ([#1943](https://github.com/ruby/rbs/pull/1943))
208
+ * `#rand` ([#2007](https://github.com/ruby/rbs/pull/2007))
209
+ * Use untyped blocks ([#1935](https://github.com/ruby/rbs/pull/1935))
210
+ * Update docs for ruby-3.3.4 ([#1923](https://github.com/ruby/rbs/pull/1923))
211
+ * Update docs for ruby-3.3.3 ([#1889](https://github.com/ruby/rbs/pull/1889))
212
+
213
+ ### Language updates
214
+
215
+ * Fix position for default_type ([#1997](https://github.com/ruby/rbs/pull/1997))
216
+ * Update `syntax.md` ([#1995](https://github.com/ruby/rbs/pull/1995))
217
+ * Improve generics ([#1994](https://github.com/ruby/rbs/pull/1994))
218
+ * Allow alias to module-self-type from module ([#1948](https://github.com/ruby/rbs/pull/1948))
219
+ * Make it a syntax error when the keys of keyword and record are duplicated. ([#1883](https://github.com/ruby/rbs/pull/1883))
220
+
221
+ ### Library changes
222
+
223
+ * Omit unnecessary field from location range ([#1788](https://github.com/ruby/rbs/pull/1788))
224
+ * Handle ISEQs compiled by Prism ([#1983](https://github.com/ruby/rbs/pull/1983))
225
+ * Add AST Visitor ([#1975](https://github.com/ruby/rbs/pull/1975))
226
+ * Make the extension `GC.auto_compact` compatible ([#1971](https://github.com/ruby/rbs/pull/1971))
227
+ * Make `FileFinder` faster by globbing all possible files ([#1965](https://github.com/ruby/rbs/pull/1965))
228
+ * Fix #1905: Fix typo in `UntypedFunction` ([#1906](https://github.com/ruby/rbs/pull/1906))
229
+
230
+ #### rbs prototype
231
+
232
+ * [prototype] Remove redundant access modifier ([#1914](https://github.com/ruby/rbs/pull/1914))
233
+
234
+ ### Miscellaneous
235
+
236
+ * Allow RBS/Style/InitializeReturnType ([#2008](https://github.com/ruby/rbs/pull/2008))
237
+ * docs: An interface can include interfaces only and not modules ([#1996](https://github.com/ruby/rbs/pull/1996))
238
+ * Fix the portability of an external command ([#2001](https://github.com/ruby/rbs/pull/2001))
239
+ * Skip `AbstractSyntaxTree` test with ruby-3.4 ([#2005](https://github.com/ruby/rbs/pull/2005))
240
+ * Fix test ([#1972](https://github.com/ruby/rbs/pull/1972))
241
+ * Use `File.open` instead of `IO.sysopen` ([#1912](https://github.com/ruby/rbs/pull/1912))
242
+
243
+ ## 3.5.3 (2024-08-23)
244
+
245
+ ### Library changes
246
+
247
+ * Backport GC fix PR ([#1977](https://github.com/ruby/rbs/pull/1977))
248
+
249
+ ## 3.5.2 (2024-07-10)
250
+
251
+ ### Library changes
252
+
253
+ * Update docs for ruby-3.3.4 ([#1923](https://github.com/ruby/rbs/pull/1923), Backported in [#1925](https://github.com/ruby/rbs/pull/1925))
254
+ * Update docs for ruby-3.3.3 ([#1889](https://github.com/ruby/rbs/pull/1889), Backported in [#1925](https://github.com/ruby/rbs/pull/1925))
255
+ * Fix #1905: Fix typo in `UntypedFunction` ([#1906](https://github.com/ruby/rbs/pull/1906), Backported in [#1925](https://github.com/ruby/rbs/pull/1925))
256
+
257
+ ### Miscellaneous
258
+
259
+ * Use `File.open` instead of `IO.sysopen` ([#1913](https://github.com/ruby/rbs/pull/1913))
260
+
261
+ ## 3.5.1 (2024-06-07)
262
+
263
+ ### Library changes
264
+
265
+ * Add explicit dependency on the `logger` gem ([#1865](https://github.com/ruby/rbs/pull/1865))
266
+ * Make c99, c23 compatible ([#1870](https://github.com/ruby/rbs/pull/1870))
267
+
268
+ ### Miscellaneous
269
+
270
+ * Don't try to sign git commits when running tests ([#1867](https://github.com/ruby/rbs/pull/1867))
271
+
272
+ ## 3.5.0 (2024-06-06)
273
+
274
+ ### Signature updates
275
+
276
+ * `net-http` headers ([#1750](https://github.com/ruby/rbs/pull/1750))
277
+ * `CSV.foreach` ([#1738](https://github.com/ruby/rbs/pull/1738))
278
+ * `Enumerator#initialize` ([#1801](https://github.com/ruby/rbs/pull/1801))
279
+ * `Float#divmod`, `Rational#divmod` ([#1868](https://github.com/ruby/rbs/pull/1868))
280
+ * `GC` ([#1530](https://github.com/ruby/rbs/pull/1530))
281
+ * `Integer#pow` ([#1706](https://github.com/ruby/rbs/pull/1706))
282
+ * `Kernel.rand` ([#1783](https://github.com/ruby/rbs/pull/1783))
283
+ * `Kernel#extend` ([#1769](https://github.com/ruby/rbs/pull/1769))
284
+ * `Module#include`, `Module#prepend` ([#1769](https://github.com/ruby/rbs/pull/1769))
285
+ * `Proc#parameters` ([#1819](https://github.com/ruby/rbs/pull/1819))
286
+ * `Range#step` ([#1709](https://github.com/ruby/rbs/pull/1709))
287
+ * `Regexp.union` ([#1809](https://github.com/ruby/rbs/pull/1809))
288
+ * `RubyVM::YJIT.enable` ([#1812](https://github.com/ruby/rbs/pull/1812))
289
+ * `RubyVM::YJIT`, `RubyVM::RJIT` ([#1746](https://github.com/ruby/rbs/pull/1746))
290
+ * `String#bytesplice` ([#1793](https://github.com/ruby/rbs/pull/1793))
291
+ * `String#gsub!` ([#1768](https://github.com/ruby/rbs/pull/1768))
292
+ * `Symbol#=~` ([#1704](https://github.com/ruby/rbs/pull/1704))
293
+ * `Time#initialize` ([#1771](https://github.com/ruby/rbs/pull/1771))
294
+ * `Time#zone` ([#1770](https://github.com/ruby/rbs/pull/1770))
295
+ * `Timeout::ExitException` ([#1803](https://github.com/ruby/rbs/pull/1803))
296
+ * `URI::MailTo` ([#1858](https://github.com/ruby/rbs/pull/1858))
297
+ * Update docs ([#1811](https://github.com/ruby/rbs/pull/1811), [#1699](https://github.com/ruby/rbs/pull/1699))
298
+
299
+ ### Language updates
300
+
301
+ * Fix proc type syntax ([#1807](https://github.com/ruby/rbs/pull/1807))
302
+ * Function types with untyped parameter ([#1806](https://github.com/ruby/rbs/pull/1806))
303
+ * Fix record type ([#1732](https://github.com/ruby/rbs/pull/1732))
304
+ * parser: enable record types with optional fields ([#1717](https://github.com/ruby/rbs/pull/1717))
305
+
306
+ ### Library changes
307
+
308
+ * Drop dependency on `abbrev` ([#1866](https://github.com/ruby/rbs/pull/1866))
309
+ * Fix source display ([#1832](https://github.com/ruby/rbs/pull/1832))
310
+ * Include trivia tokens to lex result ([#1831](https://github.com/ruby/rbs/pull/1831))
311
+ * Implement token list API ([#1829](https://github.com/ruby/rbs/pull/1829))
312
+ * Fix memory leak when ParsingError ([#1830](https://github.com/ruby/rbs/pull/1830))
313
+ * [rbs diff] Fix error when empty manifest.yaml ([#1762](https://github.com/ruby/rbs/pull/1762))
314
+ * Remove deprecated API since RBS v1 ([#1805](https://github.com/ruby/rbs/pull/1805))
315
+ * Use array instead of linked list for rbs location's child ([#1786](https://github.com/ruby/rbs/pull/1786))
316
+ * Fix SEGV with parse negative position ([#1790](https://github.com/ruby/rbs/pull/1790))
317
+ * Add location for attribute ([#1787](https://github.com/ruby/rbs/pull/1787))
318
+ * Always be private ([#1774](https://github.com/ruby/rbs/pull/1774))
319
+ * Prevent resource leak with type/method-type parser when reaching EOF. ([#1742](https://github.com/ruby/rbs/pull/1742))
320
+ * Allow loading RBS from different version of a gem ([#1731](https://github.com/ruby/rbs/pull/1731))
321
+ * Fix method name tag on assertion ([#1705](https://github.com/ruby/rbs/pull/1705))
322
+ * Improve interface check by method parameters ([#1698](https://github.com/ruby/rbs/pull/1698))
323
+
324
+ #### rbs prototype
325
+
326
+ * Fix prototype for ruby-3.4 ([#1760](https://github.com/ruby/rbs/pull/1760))
327
+ * Fix 3.4 `prototype rb` failure ([#1713](https://github.com/ruby/rbs/pull/1713))
328
+ * Add Numeric Node's check for parse rbs ([#1711](https://github.com/ruby/rbs/pull/1711))
329
+
330
+ #### rbs collection
331
+
332
+ * Fix RBS loading precedence ([#1720](https://github.com/ruby/rbs/pull/1720))
333
+ * Refactor Git source by using `git?` method ([#1701](https://github.com/ruby/rbs/pull/1701))
334
+
335
+ ### Miscellaneous
336
+
337
+ * Introduce RaaP for testing of signature ([#1810](https://github.com/ruby/rbs/pull/1810))
338
+ * Revise .gemspec to remove `Gemfile` and `Gemfile.lock` ([#1856](https://github.com/ruby/rbs/pull/1856))
339
+ * Add link to gem_rbs_collection to README ([#1827](https://github.com/ruby/rbs/pull/1827))
340
+ * Remove `Gemfile.lock` from the gem package ([#1823](https://github.com/ruby/rbs/pull/1823))
341
+ * Modify template to use TestHelper ([#1776](https://github.com/ruby/rbs/pull/1776))
342
+ * Should focus on `String.new` not `String#initialize`. ([#1789](https://github.com/ruby/rbs/pull/1789))
343
+ * Make the test suite compatible with `--enable-frozen-string-literal` ([#1767](https://github.com/ruby/rbs/pull/1767))
344
+ * Stop reusing `fd` ([#1752](https://github.com/ruby/rbs/pull/1752))
345
+ * Fix test failures on Ruby 3.4 ([#1734](https://github.com/ruby/rbs/pull/1734))
346
+ * Stop trace object allocations during test ([#1724](https://github.com/ruby/rbs/pull/1724))
347
+ * Fix head test fails ([#1719](https://github.com/ruby/rbs/pull/1719))
348
+
349
+ ## 3.4.4 (2024-02-08)
350
+
351
+ ### Miscellaneous
352
+
353
+ * Backport [#1752](https://github.com/ruby/rbs/pull/1752) ([#1753](https://github.com/ruby/rbs/pull/1753))
354
+
355
+ ## 3.4.3 (2024-01-25)
356
+
357
+ ### Library changes
358
+
359
+ #### rbs collection
360
+
361
+ * Backport [#1731](https://github.com/ruby/rbs/pull/1731) ([#1735](https://github.com/ruby/rbs/pull/1735))
362
+
363
+ ## 3.4.2 (2024-01-19)
364
+
365
+ ### Miscellaneous
366
+
367
+ * Backport [#1724](https://github.com/ruby/rbs/pull/1724) ([#1726](https://github.com/ruby/rbs/pull/1726))
368
+
369
+ ## 3.4.1 (2023-12-26)
370
+
371
+ ### Signature updates
372
+
373
+ * Update embedded RDoc based on ruby-3.3.0 (Backport #1699) ([#1700](https://github.com/ruby/rbs/pull/1700))
374
+
375
+ ## 3.4.0 (2023-12-21)
376
+
377
+ ### Signature updates
378
+
379
+ * minitest's lifecycle hooks ([#1694](https://github.com/ruby/rbs/pull/1694))
380
+ * `IO.popen`, `IO#read` ([#1693](https://github.com/ruby/rbs/pull/1693))
381
+
382
+ ### Library changes
383
+
384
+ * Fix klass name if klass is singleton_class ([#1695](https://github.com/ruby/rbs/pull/1695))
385
+
386
+ ### Miscellaneous
387
+
388
+ * Suppress warnings on testing ([#1691](https://github.com/ruby/rbs/pull/1691))
389
+
390
+ ## 3.4.0.pre.1 (2023-12-19)
391
+
392
+ ### Signature updates
393
+
394
+ * Changes in ruby-3.3 ([#1684](https://github.com/ruby/rbs/pull/1684), [#1674](https://github.com/ruby/rbs/pull/1674))
395
+ * Embedded docs update ([#1689](https://github.com/ruby/rbs/pull/1689), [#1676](https://github.com/ruby/rbs/pull/1676))
396
+ * delegate ([#1677](https://github.com/ruby/rbs/pull/1677))
397
+ * `MatchData` ([#1651](https://github.com/ruby/rbs/pull/1651))
398
+ * `String` ([#1672](https://github.com/ruby/rbs/pull/1672), [#1641](https://github.com/ruby/rbs/pull/1641))
399
+ * `Struct` ([#1621](https://github.com/ruby/rbs/pull/1621))
400
+ * `Warning` categories ([#1576](https://github.com/ruby/rbs/pull/1576))
401
+ * `ConditionVariable#wait` ([#1670](https://github.com/ruby/rbs/pull/1670))
402
+ * `Date.parse` ([#1653](https://github.com/ruby/rbs/pull/1653))
403
+ * `IO#gets` ([#1620](https://github.com/ruby/rbs/pull/1620))
404
+ * `Kernel.Pathname` ([#1681](https://github.com/ruby/rbs/pull/1681))
405
+ * `Resolv::DNS::Resource::Generic.create` ([#1655](https://github.com/ruby/rbs/pull/1655))
406
+ * `Thread#raise` ([#1668](https://github.com/ruby/rbs/pull/1668))
407
+ * Builtin types ([#1680](https://github.com/ruby/rbs/pull/1680), [#1644](https://github.com/ruby/rbs/pull/1644))
408
+
409
+ ### Library changes
410
+
411
+ * Add more details error message for `UnresolvedOverloadingError` ([#1688](https://github.com/ruby/rbs/pull/1688))
412
+ * Add `with_***` helpers ([#1687](https://github.com/ruby/rbs/pull/1687))
413
+ * Fix lexer ([#1685](https://github.com/ruby/rbs/pull/1685))
414
+ * Support `Delegator` object ([#1682](https://github.com/ruby/rbs/pull/1682))
415
+ * Should raise `ParsingError` instead of NoMethodError ([#1675](https://github.com/ruby/rbs/pull/1675))
416
+ * Implement multiple validate ([#1648](https://github.com/ruby/rbs/pull/1648))
417
+ * Add `RBS::UnitTest` modules ([#1660](https://github.com/ruby/rbs/pull/1660))
418
+ * Not cached as it may be replaced ([#1656](https://github.com/ruby/rbs/pull/1656))
419
+ * Should raise `ParsingError` instead of ArgumentError ([#1652](https://github.com/ruby/rbs/pull/1652))
420
+ * Added `WithEnum#but` and `with_range` ([#1649](https://github.com/ruby/rbs/pull/1649))
421
+ * Bugfix; `.respond_to` is no longer used in `Rbs::Test::Errors#inspect_` ([#1650](https://github.com/ruby/rbs/pull/1650))
422
+ * Add `--detail` option to rbs diff ([#1623](https://github.com/ruby/rbs/pull/1623))
423
+ * Fix parse error when quoted required keywords ([#1627](https://github.com/ruby/rbs/pull/1627))
424
+
425
+ #### rbs collection
426
+
427
+ * Fix order for collection sources ([#1659](https://github.com/ruby/rbs/pull/1659))
428
+ * [collection] Ignore directory starting with `_` as version from git source ([#1657](https://github.com/ruby/rbs/pull/1657))
429
+
430
+ ### Miscellaneous
431
+
432
+ * Fix token names in comments ([#1658](https://github.com/ruby/rbs/pull/1658))
433
+ * Small bugfix to have guaranteed print out instance variables ([#1642](https://github.com/ruby/rbs/pull/1642))
434
+ * Fix flaky test ([#1616](https://github.com/ruby/rbs/pull/1616))
435
+ * Update syntax.md ([#1634](https://github.com/ruby/rbs/pull/1634))
436
+ * Add steep typecheck workflow ([#1632](https://github.com/ruby/rbs/pull/1632))
437
+ * Add doc for Generating RBS ([#1617](https://github.com/ruby/rbs/pull/1617))
438
+ * updated test harness utils ([#1600](https://github.com/ruby/rbs/pull/1600))
439
+
440
+ ## 3.3.2 (2023-11-21)
441
+
442
+ ### Miscellaneous
443
+
444
+ * Require `bundler` explicitly for ruby/ruby CI ([#1629](https://github.com/ruby/rbs/pull/1629))
445
+
446
+ ## 3.3.1 (2023-11-21)
447
+
448
+ ### Library changes
449
+
450
+ * Allow to use RBS in symlinked tree ([#1624](https://github.com/ruby/rbs/pull/1624))
451
+ * Should escape if param name include not simple-word ([#1618](https://github.com/ruby/rbs/pull/1618))
452
+
453
+ #### rbs collection
454
+
455
+ * Load Bundler lazily ([#1612](https://github.com/ruby/rbs/pull/1612))
456
+
457
+ ### Miscellaneous
458
+
459
+ * Stop using `bundle` command ([#1619](https://github.com/ruby/rbs/pull/1619))
460
+
461
+ ## 3.3.0 (2023-11-09)
462
+
463
+ ### Library changes
464
+
465
+ * Stop exiting with error when syntax error detected during validation ([#1603](https://github.com/ruby/rbs/pull/1603))
466
+ * [rbs diff] Load dependencies from manifest.yaml ([#1602](https://github.com/ruby/rbs/pull/1602))
467
+ * [rbs diff] Resolve constants name ([#1601](https://github.com/ruby/rbs/pull/1601))
468
+
469
+ ## 3.3.0.pre.2 (2023-11-02)
470
+
471
+ ### Signature updates
472
+
473
+ * net/smtp ([#1560](https://github.com/ruby/rbs/pull/1560))
474
+ * open-uri ([#1592](https://github.com/ruby/rbs/pull/1592))
475
+ * `Set` ([#1595](https://github.com/ruby/rbs/pull/1595))
476
+
477
+ ### Library changes
478
+
479
+ * Fixup validation ([#1596](https://github.com/ruby/rbs/pull/1596))
480
+ * Print type syntax errors instead of raising error ([#1594](https://github.com/ruby/rbs/pull/1594))
481
+
482
+ #### rbs prototype
483
+
484
+ * Fix error when MASGN ([#1593](https://github.com/ruby/rbs/pull/1593))
485
+ * Support cases where `Module#constants` has been redefined ([#1591](https://github.com/ruby/rbs/pull/1591))
486
+ * [prototype runtime] Fix error if direct inherited ([#1590](https://github.com/ruby/rbs/pull/1590))
487
+
488
+ ## 3.3.0.pre.1 (2023-10-31)
489
+
490
+ ### Signature updates
491
+
492
+ * json ([#1575](https://github.com/ruby/rbs/pull/1575))
493
+ * net-protocol ([#1559](https://github.com/ruby/rbs/pull/1559))
494
+ * pp ([#1545](https://github.com/ruby/rbs/pull/1545))
495
+ * psych ([#1527](https://github.com/ruby/rbs/pull/1527))
496
+ * `BasicObject` ([#1506](https://github.com/ruby/rbs/pull/1506))
497
+ * `ConditionVariable` ([#1468](https://github.com/ruby/rbs/pull/1468))
498
+ * `Encoding` ([#1510](https://github.com/ruby/rbs/pull/1510))
499
+ * `Exception` ([#1529](https://github.com/ruby/rbs/pull/1529))
500
+ * `FalseClass` ([#1478](https://github.com/ruby/rbs/pull/1478), [#1487](https://github.com/ruby/rbs/pull/1487))
501
+ * `Fiber` ([#1463](https://github.com/ruby/rbs/pull/1463))
502
+ * `FileTest` ([#1500](https://github.com/ruby/rbs/pull/1500))
503
+ * `Kernel` ([#1567](https://github.com/ruby/rbs/pull/1567), [#1518](https://github.com/ruby/rbs/pull/1518), [#1504](https://github.com/ruby/rbs/pull/1504), [#1487](https://github.com/ruby/rbs/pull/1487))
504
+ * `Marshal` ([#1524](https://github.com/ruby/rbs/pull/1524))
505
+ * `Math` ([#1533](https://github.com/ruby/rbs/pull/1533))
506
+ * `Mutex` ([#1468](https://github.com/ruby/rbs/pull/1468))
507
+ * `NilClass` ([#1478](https://github.com/ruby/rbs/pull/1478), [#1487](https://github.com/ruby/rbs/pull/1487))
508
+ * `Object` ([#1504](https://github.com/ruby/rbs/pull/1504))
509
+ * `Queue` ([#1468](https://github.com/ruby/rbs/pull/1468))
510
+ * `RbConfig` ([#1534](https://github.com/ruby/rbs/pull/1534))
511
+ * `Signal` ([#1512](https://github.com/ruby/rbs/pull/1512))
512
+ * `SizedQueue` ([#1468](https://github.com/ruby/rbs/pull/1468))
513
+ * `ThreadGroup` ([#1509](https://github.com/ruby/rbs/pull/1509))
514
+ * `TrueClass` ([#1478](https://github.com/ruby/rbs/pull/1478), [#1487](https://github.com/ruby/rbs/pull/1487))
515
+ * `Warning` ([#1477](https://github.com/ruby/rbs/pull/1477))
516
+ * `Enumerator.produce` ([#1516](https://github.com/ruby/rbs/pull/1516))
517
+ * `Module.define_method` ([#1557](https://github.com/ruby/rbs/pull/1557))
518
+ * `URI.join` ([#1580](https://github.com/ruby/rbs/pull/1580))
519
+ * `YAML.unsafe_load` ([#1528](https://github.com/ruby/rbs/pull/1528))
520
+ * `builtin.rbs`([#1455](https://github.com/ruby/rbs/pull/1455), [#1469](https://github.com/ruby/rbs/pull/1469))
521
+ * `constants.rbs` ([#1531](https://github.com/ruby/rbs/pull/1531))
522
+ * `::interned` ([#1499](https://github.com/ruby/rbs/pull/1499), [#1488](https://github.com/ruby/rbs/pull/1488))
523
+
524
+ ### Language updates
525
+
526
+ * Add `__todo__` type ([#1520](https://github.com/ruby/rbs/pull/1520))
527
+
528
+ ### Library changes
529
+
530
+ * Colored diff ([#1589](https://github.com/ruby/rbs/pull/1589))
531
+ * Fix the issue where ::array[T] would be interpreted as ::array, and type mismatch ([#1491](https://github.com/ruby/rbs/pull/1491))
532
+ * Add `Abbrev` to runtime dependency ([#1573](https://github.com/ruby/rbs/pull/1573))
533
+ * Avoid an error when parsing files including SyntaxError ([#1574](https://github.com/ruby/rbs/pull/1574))
534
+ * Implement rbs diff command ([#1459](https://github.com/ruby/rbs/pull/1459))
535
+ * Add another type syntax validation ([#1566](https://github.com/ruby/rbs/pull/1566))
536
+ * Mark global variables ([#1551](https://github.com/ruby/rbs/pull/1551))
537
+ * Show location of type by method command ([#1537](https://github.com/ruby/rbs/pull/1537))
538
+ * Make alias and interface names absolute ([#1502](https://github.com/ruby/rbs/pull/1502))
539
+ * Better record type format ([#1501](https://github.com/ruby/rbs/pull/1501))
540
+ * Should keep escape of alias and attr family ([#1486](https://github.com/ruby/rbs/pull/1486))
541
+ * Fix error when undefined interface or alias ([#1465](https://github.com/ruby/rbs/pull/1465))
542
+
543
+ #### rbs prototype
544
+
545
+ * [prototype runtime --todo] Consider accessibility mismatch ([#1539](https://github.com/ruby/rbs/pull/1539))
546
+ * Better support for inherited class of `Struct` or `Data` by prototype runtime ([#1571](https://github.com/ruby/rbs/pull/1571))
547
+ * prototype rb: Ignore ITER (method call with block) ([#1562](https://github.com/ruby/rbs/pull/1562))
548
+ * [prototype runtime] Add --autoload option ([#1561](https://github.com/ruby/rbs/pull/1561))
549
+ * Implement todo option ([#1470](https://github.com/ruby/rbs/pull/1470))
550
+ * [prototype runtime] Fix error when constant is a BasicObject instance. ([#1485](https://github.com/ruby/rbs/pull/1485))
551
+ * [prototype runtime] Const name should be absolute ([#1490](https://github.com/ruby/rbs/pull/1490))
552
+ * [prototype runtime] Optimize performance ([#1495](https://github.com/ruby/rbs/pull/1495))
553
+ * [prototype runtime] Fix error when output Object constants ([#1472](https://github.com/ruby/rbs/pull/1472))
554
+ * [prototype runtime] Support prepend mixin ([#1460](https://github.com/ruby/rbs/pull/1460))
555
+ * [prototype runtime] Avoid alias for methods defined in another module ([#1457](https://github.com/ruby/rbs/pull/1457))
556
+
557
+ #### rbs collection
558
+
559
+ * [Collection] Simple colorize collection text like Bundler ([#1558](https://github.com/ruby/rbs/pull/1558))
560
+ * Delete `sources` section from lockfile ([#1544](https://github.com/ruby/rbs/pull/1544))
561
+
562
+ ### Miscellaneous
563
+
564
+ * Add in with_XXX methods ([#1492](https://github.com/ruby/rbs/pull/1492))
565
+ * Updated binding to use modern kernel tests ([#1507](https://github.com/ruby/rbs/pull/1507))
566
+ * Remove all non-required methods from testing types ([#1541](https://github.com/ruby/rbs/pull/1541))
567
+ * Add `assert_type` assertion to confirm if the value has a type ([#1532](https://github.com/ruby/rbs/pull/1532))
568
+ * Add `#assert_const_type` and guide to use type assertions ([#1514](https://github.com/ruby/rbs/pull/1514))
569
+ * Improve skip test message ([#1476](https://github.com/ruby/rbs/pull/1476))
570
+ * Type check ([#1467](https://github.com/ruby/rbs/pull/1467))
571
+ * Type check RDoc related Ruby code ([#1466](https://github.com/ruby/rbs/pull/1466))
572
+ * Fix CI failure ([#1464](https://github.com/ruby/rbs/pull/1464))
573
+
574
+ ## 3.2.2 (2023-09-28)
575
+
576
+ ### Library changes
577
+
578
+ * Mark global variables ([\#1552](https://github.com/ruby/rbs/pull/1552), Backport [\#1551](https://github.com/ruby/rbs/pull/1551))
579
+
580
+ ## 3.2.1 (2023-08-29)
581
+
582
+ ### Signature updates
583
+
584
+ * `Fiber` (Backport [#1463](https://github.com/ruby/rbs/pull/1463))
585
+
586
+ ### Library changes
587
+
588
+ * Fix error when undefined interface or alias (Backport [#1465](https://github.com/ruby/rbs/pull/1465))
589
+
590
+ ### Miscellaneous
591
+
592
+ * Improve skip test message (Backport [#1476](https://github.com/ruby/rbs/pull/1476))
593
+ * Fix CI failure (Backport [#1464](https://github.com/ruby/rbs/pull/1464))
594
+
595
+ ## 3.2.0 (2023-08-22)
596
+
597
+ ### Signature updates
598
+
599
+ * `Binding` ([#1451](https://github.com/ruby/rbs/pull/1451))
600
+ * `Kernel` ([#1445](https://github.com/ruby/rbs/pull/1445), [#1444](https://github.com/ruby/rbs/pull/1444), [#1443](https://github.com/ruby/rbs/pull/1443), [#1441](https://github.com/ruby/rbs/pull/1441), [#1440](https://github.com/ruby/rbs/pull/1440))
601
+ * `Errno` ([#1450](https://github.com/ruby/rbs/pull/1450))
602
+
603
+ ### Library changes
604
+
605
+ #### rbs collection
606
+
607
+ * Fix LockfileGenerator crashes if failed to get deps for locked source ([#1413](https://github.com/ruby/rbs/pull/1413))
608
+
609
+ ## 3.2.0.pre.1 (2023-08-18)
610
+
611
+ ### Signature updates
612
+
613
+ * observable ([#1424](https://github.com/ruby/rbs/pull/1424))
614
+ * uri ([#1371](https://github.com/ruby/rbs/pull/1371))
615
+ * zlib ([#1389](https://github.com/ruby/rbs/pull/1389))
616
+ * `IO` ([#1399](https://github.com/ruby/rbs/pull/1399))
617
+ * `::DATA` ([#1395](https://github.com/ruby/rbs/pull/1395))
618
+ * `$DEBUG` ([#1427](https://github.com/ruby/rbs/pull/1427))
619
+ * `ConditionVariable#wait` ([#1397](https://github.com/ruby/rbs/pull/1397))
620
+ * `Kernel::exit!` ([#1396](https://github.com/ruby/rbs/pull/1396))
621
+ * `Kernel#exec` ([#1368](https://github.com/ruby/rbs/pull/1368))
622
+ * `Kernel#p`, `Kernel#pp` ([#1342](https://github.com/ruby/rbs/pull/1342))
623
+ * `Logger.new` ([#1423](https://github.com/ruby/rbs/pull/1423))
624
+ * `Module` ([#1321](https://github.com/ruby/rbs/pull/1321))
625
+ * `Object#define_singleton_method` ([#1431](https://github.com/ruby/rbs/pull/1431))
626
+ * `Object#enum_for` ([#1327](https://github.com/ruby/rbs/pull/1327))
627
+ * `StringIO#truncate` ([#1425](https://github.com/ruby/rbs/pull/1425))
628
+ * `Thread#raise` ([#1426](https://github.com/ruby/rbs/pull/1426))
629
+ * `Time#round`, `Time#floor`, `Time#ceil` ([#1337](https://github.com/ruby/rbs/pull/1337))
630
+ * Remove `TRUE`, `FALSE`, and `NIL` constants ([#1432](https://github.com/ruby/rbs/pull/1432))
631
+ * Updated builtin.rbs's interfaces ([#1429](https://github.com/ruby/rbs/pull/1429))
632
+ * Convert `| nil` to `?` in global_variables.rbs ([#1430](https://github.com/ruby/rbs/pull/1430))
633
+ * Remove references to the transient heap ([#1374](https://github.com/ruby/rbs/pull/1374))
634
+
635
+ ### Library changes
636
+
637
+ * subtract: Remove RBS file if the subtracted definition is empty ([#1385](https://github.com/ruby/rbs/pull/1385))
638
+ * subtract: Filter redundant access modifiers ([#1384](https://github.com/ruby/rbs/pull/1384))
639
+ * Fix module alias normalizations ([#1393](https://github.com/ruby/rbs/pull/1393))
640
+ * Reduce memory allocation on TypeName#initialize ([#1363](https://github.com/ruby/rbs/pull/1363))
641
+ * Fix a type error in FileFinder ([#1326](https://github.com/ruby/rbs/pull/1326))
642
+ * Add signatures about DetailedMessage ([#1323](https://github.com/ruby/rbs/pull/1323))
643
+ * Make TypeNameResolver more compatible with Ruby ([#1373](https://github.com/ruby/rbs/pull/1373))
644
+ * Drop support of Ruby 2.x ([#1364](https://github.com/ruby/rbs/pull/1364))
645
+ * Print detailed_message on parse command ([#1329](https://github.com/ruby/rbs/pull/1329))
646
+ * Relax rdoc version requirement ([#1333](https://github.com/ruby/rbs/pull/1333))
647
+ * Support keyword argument to #detailed_message ([#1328](https://github.com/ruby/rbs/pull/1328))
648
+
649
+ #### rbs prototype
650
+
651
+ * Avoid to generate anonymous or internal module ([#1421](https://github.com/ruby/rbs/pull/1421))
652
+ * Fix type name for prototype rbi ([#1386](https://github.com/ruby/rbs/pull/1386))
653
+ * Support type params for known signatures ([#1408](https://github.com/ruby/rbs/pull/1408))
654
+ * Super class should be absolute paths. ([#1415](https://github.com/ruby/rbs/pull/1415))
655
+ * prototype rb: Fix a crash by "include foo" ([#1419](https://github.com/ruby/rbs/pull/1419))
656
+ * Add `--outline` option to `prototype runtime` to skip generating method definition ([#1404](https://github.com/ruby/rbs/pull/1404))
657
+ * [rbs prototype] Follow up ivar/cvar feature ([#1361](https://github.com/ruby/rbs/pull/1361))
658
+ * prototype rb: Extract instance variables and class variables ([#1343](https://github.com/ruby/rbs/pull/1343))
659
+
660
+ #### rbs collection
661
+
662
+ * Print warning when specified gem not found ([#1367](https://github.com/ruby/rbs/pull/1367))
663
+ * Generate gem specific sources in lockfile ([#1402](https://github.com/ruby/rbs/pull/1402))
664
+ * Spec may be missing when `rbs_collection.yaml` declares dependency ([#1378](https://github.com/ruby/rbs/pull/1378))
665
+
666
+ ### Miscellaneous
667
+
668
+ * Remove ruby-lsp && bundle update --bundler ([#1420](https://github.com/ruby/rbs/pull/1420))
669
+ * Delete all remaining set-related descriptions. ([#1324](https://github.com/ruby/rbs/pull/1324))
670
+ * Add customized test runner to accept minitest options ([#1392](https://github.com/ruby/rbs/pull/1392))
671
+ * Specify `rbs` syntax to code snippets in Markdown files ([#1366](https://github.com/ruby/rbs/pull/1366))
672
+ * Fix typo in parser.rbs ([#1352](https://github.com/ruby/rbs/pull/1352))
673
+ * Fix broken CI ([#1353](https://github.com/ruby/rbs/pull/1353))
674
+ * Handle connection error with Resolv_test.rb ([#1356](https://github.com/ruby/rbs/pull/1356))
675
+ * Removed Prime signature and tests ([#1355](https://github.com/ruby/rbs/pull/1355))
676
+
677
+ ## 3.1.3 (2023-07-31)
678
+
679
+ ### Library changes
680
+
681
+ #### rbs collection
682
+
683
+ * Generate gem specific sources in lockfile (Backport [#1402](https://github.com/ruby/rbs/pull/1402))
684
+
685
+ ## 3.1.2 (2023-07-27)
686
+
687
+ ⚠️ Note that this patch level release may report additional validation errors that is caused by fix of type name resolution ([#1373](https://github.com/ruby/rbs/pull/1373)).
688
+
689
+ ### Library changes
690
+
691
+ * Make `TypeNameResolver` more compatible with Ruby (Backport [#1373](https://github.com/ruby/rbs/pull/1373))
692
+ * Fix module alias normalizations (Backport [#1393](https://github.com/ruby/rbs/pull/1393))
693
+
694
+ ## 3.1.1 (2023-07-18)
695
+
696
+ ### Signature updates
697
+
698
+ * Removed `GC.verify_transient_heap_internal_consistency` (Backport [#1374](https://github.com/ruby/rbs/pull/1374))
699
+
700
+ ### Library changes
701
+
702
+ * Relax rdoc version requirement in RDoc plugin (Backport [#1333](https://github.com/ruby/rbs/pull/1333))
703
+
704
+ #### rbs collection
705
+
706
+ * Spec may be missing when rbs_collection.yaml declares dependency (Backport [#1378](https://github.com/ruby/rbs/pull/1378))
707
+
708
+ ### Miscellaneous
709
+
710
+ * Handle connection error with Resolv_test.rb (Backport [#1356](https://github.com/ruby/rbs/pull/1356))
711
+ * Fix broken CI (Backport [#1353](https://github.com/ruby/rbs/pull/1353))
712
+
713
+ ## 3.1.0 (2023-04-26)
714
+
715
+ ### Signature updates
716
+
717
+ * `Module#attr_*` methods ([#1300](https://github.com/ruby/rbs/pull/1300))
718
+ * `Object#define_singleton_method` ([#1299](https://github.com/ruby/rbs/pull/1299))
719
+ * `String#scan` ([#1297](https://github.com/ruby/rbs/pull/1297))
720
+ * Removed `Gem.datadir` ([#1273](https://github.com/ruby/rbs/pull/1273))
721
+
722
+ ### Language updates
723
+
724
+ ### Library changes
725
+
726
+ * Use fenced code block instead of indented one in .rbs files ([#1312](https://github.com/ruby/rbs/pull/1312))
727
+ * Fix single use clause `:type_name` location ([#1307](https://github.com/ruby/rbs/pull/1307))
728
+ * Fix `InvalidOverloadMethodError` on overloading extended method ([#1294](https://github.com/ruby/rbs/pull/1294))
729
+ * Fix super class of `NoTypeFoundError` from `BaseError` to `DefinitionError` ([#1290](https://github.com/ruby/rbs/pull/1290))
730
+ * Support `#detailed_message` for `NonregularTypeAliasError`, `CyclicTypeParameterBound`, `InconsistentClassModuleAliasError` and `CyclicClassAliasDefinitionError` ([#1289](https://github.com/ruby/rbs/pull/1289))
731
+ * Implement `rbs subtract` command ([#1287](https://github.com/ruby/rbs/pull/1287))
732
+ * Support `#detailed_message` for `InvalidVarianceAnnotationError`, `RecursiveAliasDefinitionError`, `MixinClassError` and `RecursiveTypeAliasError` ([#1285](https://github.com/ruby/rbs/pull/1285))
733
+ * Support `#detailed_message` for `NoTypeError`, `InheritModuleError`, `NoSelfTypeFoundError` and `NoMixinFoundError` ([#1280](https://github.com/ruby/rbs/pull/1280))
734
+ * Validate duplicate type aliases ([#1279](https://github.com/ruby/rbs/pull/1279))
735
+ * Add `-e`, `--type`, and `--method-type` options to `rbs parse` ([#1252](https://github.com/ruby/rbs/pull/1252))
736
+
737
+ #### rbs prototype
738
+
739
+ * Convert `include` in `class << self` to `extend` by `prototype rb` ([#1255](https://github.com/ruby/rbs/pull/1255))
740
+
741
+ #### rbs collection
742
+
743
+ * Skip loading `#gemspec` gems via RBS collection ([#1319](https://github.com/ruby/rbs/pull/1319))
744
+
745
+ ### Miscellaneous
746
+
747
+ * Run `bundle install` automatically in `bin/steep` ([#1308](https://github.com/ruby/rbs/pull/1308))
748
+ * Fix warnings ([#1314](https://github.com/ruby/rbs/pull/1314))
749
+
750
+ ## 3.0.4 (2023-03-13)
751
+
752
+ ### Library changes
753
+
754
+ * Add missing implementation to support class/module alias ([#1271](https://github.com/ruby/rbs/pull/1271))
755
+
756
+ ## 3.0.3 (2023-03-07)
757
+
758
+ ### Library changes
759
+
760
+ * Fix `DefinitionBuilder` ([\#1268](https://github.com/ruby/rbs/pull/1268))
761
+
762
+ #### rbs collection
763
+
764
+ * Skip dependencies not included in `Gemfile.lock` ([\#1266](https://github.com/ruby/rbs/pull/1266))
765
+
766
+ ### Miscellaneous
767
+
768
+ * Skip RBS validation on Ruby CI ([\#1264](https://github.com/ruby/rbs/pull/1264), [\#1263](https://github.com/ruby/rbs/pull/1263))
769
+
770
+ ## 3.0.2 (2023-03-01)
771
+
772
+ ### Library changes
773
+
774
+ * Delete `RubyVM::AbstractSyntaxTree` stub type definition ([#1259](https://github.com/ruby/rbs/pull/1259))
775
+
776
+ ## 3.0.1 (2023-02-27)
777
+
778
+ ### Library changes
779
+
780
+ * Ignore `set` library on loading ([#1251](https://github.com/ruby/rbs/pull/1251))
781
+
782
+ ## 3.0.0 (2023-02-22)
783
+
784
+ Read [the release note](https://github.com/ruby/rbs/wiki/Release-Note-3.0) for the overview of the changes.
785
+
786
+ ### Signature updates
787
+
788
+ * Ruby 3.2 core updates ([#1238](https://github.com/ruby/rbs/pull/1238), [#1246](https://github.com/ruby/rbs/pull/1246), [#1242](https://github.com/ruby/rbs/pull/1242))
789
+ * Ruby 3.2 stdlib updates ([#1240](https://github.com/ruby/rbs/pull/1240))
790
+ * Ruby 3.2 incompatibilities ([#1241](https://github.com/ruby/rbs/pull/1241))
791
+ * ripper ([#1193](https://github.com/ruby/rbs/pull/1193))
792
+ * `RubyVM::AbstractSyntaxTree` ([#1189](https://github.com/ruby/rbs/pull/1189))
793
+ * `Array#zip` ([#1232](https://github.com/ruby/rbs/pull/1232))
794
+ * `Enumerable#zip` ([#1232](https://github.com/ruby/rbs/pull/1232))
795
+ * `Module#attr_*` ([#1218](https://github.com/ruby/rbs/pull/1218), [#1229](https://github.com/ruby/rbs/pull/1229))
796
+ * `Regexp.new` ([#1237](https://github.com/ruby/rbs/pull/1237))
797
+ * `Regexp#=~` ([#1195](https://github.com/ruby/rbs/pull/1195))
798
+ * `Socket.new` ([#1185](https://github.com/ruby/rbs/pull/1185))
799
+ * `Object::name` ([#1204](https://github.com/ruby/rbs/pull/1204))
800
+ * `_ToProc#to_proc` ([#1223](https://github.com/ruby/rbs/pull/1223))
801
+ * Add `implicitly-returns-nil` annotations ([#1226](https://github.com/ruby/rbs/pull/1226))
802
+
803
+ ### Language updates
804
+
805
+ #### Class/module alias declaration
806
+
807
+ * Spec: https://hackmd.io/SAE7AGD6SMSJFnYiR2M5-Q?view
808
+ * Pull requests: [#1219](https://github.com/ruby/rbs/pull/1219), [#1220](https://github.com/ruby/rbs/pull/1220)
809
+
810
+ #### `use` directives
811
+
812
+ * Spec: https://hackmd.io/pQehT1u1RfSj6lBcdgW8hg
813
+ * Pull requests: [#1224](https://github.com/ruby/rbs/pull/1224), [#1234](https://github.com/ruby/rbs/pull/1234), [#1235](https://github.com/ruby/rbs/pull/1235)
814
+
815
+ #### Per-overload annotations
816
+
817
+ * Pull requests: [#1174](https://github.com/ruby/rbs/pull/1174)
818
+
819
+ ### Library changes
820
+
821
+ * `Environment` cleanup ([#1209](https://github.com/ruby/rbs/pull/1209), [#1236](https://github.com/ruby/rbs/pull/1236), [#1247](https://github.com/ruby/rbs/pull/1247))
822
+ * Add "Expected one argument." to `rbs ancestors` command ([#1245](https://github.com/ruby/rbs/pull/1245))
823
+ * Implement `#detailed_message` for `ParsingError` ([#1166](https://github.com/ruby/rbs/pull/1166))
824
+ * Support interface in class/module for `Sorter` ([#1191](https://github.com/ruby/rbs/pull/1191))
825
+ * Use `-std=gnu99` instead of `-std=c99` ([#973](https://github.com/ruby/rbs/pull/973))
826
+ * Add `rbs_` prefix to `skip` function ([#1186](https://github.com/ruby/rbs/pull/1186))
827
+ * Better method definition resolution for overload/mixin combination ([#1199](https://github.com/ruby/rbs/pull/1199))
828
+ * Escaping for keywords is no longer necessary ([#1178](https://github.com/ruby/rbs/pull/1178))
829
+ * Fix super-class location ([#1172](https://github.com/ruby/rbs/pull/1172))
830
+
831
+ #### rbs prototype
832
+
833
+ * Introduce new heuristics for block types ([#1180](https://github.com/ruby/rbs/pull/1180))
834
+
835
+ #### rbs collection
836
+
837
+ * Install only *library* dependencies ([#1222](https://github.com/ruby/rbs/pull/1222), [#1228](https://github.com/ruby/rbs/pull/1228))
838
+ * Add *local source* ([#854](https://github.com/ruby/rbs/pull/854))
839
+ * Refactor collection ([#1149](https://github.com/ruby/rbs/pull/1149))
840
+ * Let `#resolved_revision` return the last fetched commit ([#1215](https://github.com/ruby/rbs/pull/1215))
841
+
842
+ ### Miscellaneous
843
+
844
+ * Update `syntax.md` ([#1243](https://github.com/ruby/rbs/pull/1243))
845
+ * Add link to `RBS by Example` to `README.md` [#1225](https://github.com/ruby/rbs/pull/1225)
846
+ * Make `rake stdlib_test` run with single process ([#1207](https://github.com/ruby/rbs/pull/1207), [#1211](https://github.com/ruby/rbs/pull/1211), [#1231](https://github.com/ruby/rbs/pull/1231))
847
+ * Remove `steep/*` files from `.gem` ([#1214](https://github.com/ruby/rbs/pull/1214), [#1216](https://github.com/ruby/rbs/pull/1216))
4
848
 
5
849
  ## 2.8.4 (2023-01-20)
6
850