rbs 4.1.0-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (569) hide show
  1. checksums.yaml +7 -0
  2. data/.clang-format +75 -0
  3. data/.clangd +2 -0
  4. data/.dockerignore +37 -0
  5. data/.github/dependabot.yml +24 -0
  6. data/.github/workflows/bundle-update.yml +63 -0
  7. data/.github/workflows/c-check.yml +66 -0
  8. data/.github/workflows/comments.yml +37 -0
  9. data/.github/workflows/dependabot.yml +30 -0
  10. data/.github/workflows/jruby.yml +79 -0
  11. data/.github/workflows/milestone.yml +91 -0
  12. data/.github/workflows/ruby.yml +158 -0
  13. data/.github/workflows/rust.yml +186 -0
  14. data/.github/workflows/truffleruby.yml +54 -0
  15. data/.github/workflows/typecheck.yml +39 -0
  16. data/.github/workflows/wasm.yml +55 -0
  17. data/.github/workflows/windows.yml +49 -0
  18. data/.gitignore +39 -0
  19. data/.rubocop.yml +72 -0
  20. data/BSDL +22 -0
  21. data/CHANGELOG.md +2380 -0
  22. data/COPYING +56 -0
  23. data/Dockerfile.jruby +53 -0
  24. data/README.md +240 -0
  25. data/Rakefile +856 -0
  26. data/Steepfile +55 -0
  27. data/config.yml +913 -0
  28. data/core/array.rbs +4205 -0
  29. data/core/basic_object.rbs +376 -0
  30. data/core/binding.rbs +148 -0
  31. data/core/builtin.rbs +278 -0
  32. data/core/class.rbs +223 -0
  33. data/core/comparable.rbs +192 -0
  34. data/core/complex.rbs +812 -0
  35. data/core/constants.rbs +96 -0
  36. data/core/data.rbs +415 -0
  37. data/core/dir.rbs +993 -0
  38. data/core/encoding.rbs +1368 -0
  39. data/core/enumerable.rbs +2506 -0
  40. data/core/enumerator/arithmetic_sequence.rbs +70 -0
  41. data/core/enumerator/product.rbs +92 -0
  42. data/core/enumerator.rbs +705 -0
  43. data/core/env.rbs +6 -0
  44. data/core/errno.rbs +682 -0
  45. data/core/errors.rbs +789 -0
  46. data/core/exception.rbs +485 -0
  47. data/core/false_class.rbs +82 -0
  48. data/core/fiber.rbs +570 -0
  49. data/core/fiber_error.rbs +11 -0
  50. data/core/file.rbs +2045 -0
  51. data/core/file_constants.rbs +463 -0
  52. data/core/file_stat.rbs +534 -0
  53. data/core/file_test.rbs +331 -0
  54. data/core/float.rbs +1292 -0
  55. data/core/gc.rbs +788 -0
  56. data/core/global_variables.rbs +184 -0
  57. data/core/hash.rbs +2183 -0
  58. data/core/integer.rbs +1374 -0
  59. data/core/io/buffer.rbs +995 -0
  60. data/core/io/wait.rbs +48 -0
  61. data/core/io.rbs +3472 -0
  62. data/core/kernel.rbs +3172 -0
  63. data/core/marshal.rbs +207 -0
  64. data/core/match_data.rbs +637 -0
  65. data/core/math.rbs +770 -0
  66. data/core/method.rbs +422 -0
  67. data/core/module.rbs +1856 -0
  68. data/core/nil_class.rbs +210 -0
  69. data/core/numeric.rbs +832 -0
  70. data/core/object.rbs +108 -0
  71. data/core/object_space/weak_key_map.rbs +166 -0
  72. data/core/object_space.rbs +197 -0
  73. data/core/pathname.rbs +1312 -0
  74. data/core/proc.rbs +905 -0
  75. data/core/process.rbs +2316 -0
  76. data/core/ractor.rbs +914 -0
  77. data/core/random.rbs +255 -0
  78. data/core/range.rbs +1209 -0
  79. data/core/rational.rbs +502 -0
  80. data/core/rb_config.rbs +88 -0
  81. data/core/rbs/ops.rbs +154 -0
  82. data/core/rbs/unnamed/argf.rbs +1236 -0
  83. data/core/rbs/unnamed/env_class.rbs +1214 -0
  84. data/core/rbs/unnamed/main_class.rbs +123 -0
  85. data/core/rbs/unnamed/random.rbs +186 -0
  86. data/core/refinement.rbs +59 -0
  87. data/core/regexp.rbs +1974 -0
  88. data/core/ruby.rbs +53 -0
  89. data/core/ruby_vm.rbs +809 -0
  90. data/core/rubygems/basic_specification.rbs +6 -0
  91. data/core/rubygems/config_file.rbs +38 -0
  92. data/core/rubygems/dependency_installer.rbs +6 -0
  93. data/core/rubygems/errors.rbs +112 -0
  94. data/core/rubygems/installer.rbs +15 -0
  95. data/core/rubygems/path_support.rbs +6 -0
  96. data/core/rubygems/platform.rbs +7 -0
  97. data/core/rubygems/request_set.rbs +49 -0
  98. data/core/rubygems/requirement.rbs +138 -0
  99. data/core/rubygems/rubygems.rbs +1108 -0
  100. data/core/rubygems/source_list.rbs +15 -0
  101. data/core/rubygems/specification.rbs +31 -0
  102. data/core/rubygems/stream_ui.rbs +5 -0
  103. data/core/rubygems/uninstaller.rbs +10 -0
  104. data/core/rubygems/version.rbs +133 -0
  105. data/core/set.rbs +751 -0
  106. data/core/signal.rbs +110 -0
  107. data/core/string.rbs +5532 -0
  108. data/core/struct.rbs +668 -0
  109. data/core/symbol.rbs +482 -0
  110. data/core/thread.rbs +1821 -0
  111. data/core/thread_group.rbs +79 -0
  112. data/core/time.rbs +1793 -0
  113. data/core/trace_point.rbs +483 -0
  114. data/core/true_class.rbs +98 -0
  115. data/core/unbound_method.rbs +337 -0
  116. data/core/warning.rbs +87 -0
  117. data/docs/CONTRIBUTING.md +107 -0
  118. data/docs/aliases.md +79 -0
  119. data/docs/architecture.md +110 -0
  120. data/docs/collection.md +192 -0
  121. data/docs/config.md +171 -0
  122. data/docs/data_and_struct.md +86 -0
  123. data/docs/encoding.md +56 -0
  124. data/docs/gem.md +56 -0
  125. data/docs/inline.md +634 -0
  126. data/docs/rbs_by_example.md +309 -0
  127. data/docs/release.md +69 -0
  128. data/docs/repo.md +125 -0
  129. data/docs/rust.md +96 -0
  130. data/docs/sigs.md +167 -0
  131. data/docs/stdlib.md +147 -0
  132. data/docs/syntax.md +940 -0
  133. data/docs/tools.md +17 -0
  134. data/docs/type_fingerprint.md +21 -0
  135. data/docs/wasm_serialization.md +80 -0
  136. data/exe/rbs +7 -0
  137. data/ext/rbs_extension/ast_translation.c +1855 -0
  138. data/ext/rbs_extension/ast_translation.h +41 -0
  139. data/ext/rbs_extension/class_constants.c +187 -0
  140. data/ext/rbs_extension/class_constants.h +104 -0
  141. data/ext/rbs_extension/compat.h +10 -0
  142. data/ext/rbs_extension/extconf.rb +40 -0
  143. data/ext/rbs_extension/legacy_location.c +299 -0
  144. data/ext/rbs_extension/legacy_location.h +82 -0
  145. data/ext/rbs_extension/main.c +613 -0
  146. data/ext/rbs_extension/rbs_extension.h +16 -0
  147. data/ext/rbs_extension/rbs_string_bridging.c +9 -0
  148. data/ext/rbs_extension/rbs_string_bridging.h +24 -0
  149. data/goodcheck.yml +91 -0
  150. data/include/rbs/ast.h +1047 -0
  151. data/include/rbs/defines.h +99 -0
  152. data/include/rbs/lexer.h +207 -0
  153. data/include/rbs/location.h +40 -0
  154. data/include/rbs/parser.h +153 -0
  155. data/include/rbs/serialize.h +39 -0
  156. data/include/rbs/string.h +47 -0
  157. data/include/rbs/util/rbs_allocator.h +59 -0
  158. data/include/rbs/util/rbs_assert.h +20 -0
  159. data/include/rbs/util/rbs_buffer.h +83 -0
  160. data/include/rbs/util/rbs_constant_pool.h +155 -0
  161. data/include/rbs/util/rbs_encoding.h +282 -0
  162. data/include/rbs/util/rbs_unescape.h +24 -0
  163. data/include/rbs.h +14 -0
  164. data/lib/rbs/ancestor_graph.rb +92 -0
  165. data/lib/rbs/annotate/annotations.rb +199 -0
  166. data/lib/rbs/annotate/formatter.rb +82 -0
  167. data/lib/rbs/annotate/rdoc_annotator.rb +398 -0
  168. data/lib/rbs/annotate/rdoc_source.rb +131 -0
  169. data/lib/rbs/annotate.rb +8 -0
  170. data/lib/rbs/ast/annotation.rb +29 -0
  171. data/lib/rbs/ast/comment.rb +29 -0
  172. data/lib/rbs/ast/declarations.rb +472 -0
  173. data/lib/rbs/ast/directives.rb +49 -0
  174. data/lib/rbs/ast/members.rb +451 -0
  175. data/lib/rbs/ast/ruby/annotations.rb +451 -0
  176. data/lib/rbs/ast/ruby/comment_block.rb +247 -0
  177. data/lib/rbs/ast/ruby/declarations.rb +291 -0
  178. data/lib/rbs/ast/ruby/helpers/constant_helper.rb +28 -0
  179. data/lib/rbs/ast/ruby/helpers/location_helper.rb +15 -0
  180. data/lib/rbs/ast/ruby/members.rb +762 -0
  181. data/lib/rbs/ast/type_param.rb +235 -0
  182. data/lib/rbs/ast/visitor.rb +137 -0
  183. data/lib/rbs/buffer.rb +189 -0
  184. data/lib/rbs/builtin_names.rb +58 -0
  185. data/lib/rbs/cli/colored_io.rb +48 -0
  186. data/lib/rbs/cli/diff.rb +84 -0
  187. data/lib/rbs/cli/validate.rb +294 -0
  188. data/lib/rbs/cli.rb +1253 -0
  189. data/lib/rbs/collection/cleaner.rb +38 -0
  190. data/lib/rbs/collection/config/lockfile.rb +92 -0
  191. data/lib/rbs/collection/config/lockfile_generator.rb +269 -0
  192. data/lib/rbs/collection/config.rb +81 -0
  193. data/lib/rbs/collection/installer.rb +32 -0
  194. data/lib/rbs/collection/sources/base.rb +14 -0
  195. data/lib/rbs/collection/sources/git.rb +265 -0
  196. data/lib/rbs/collection/sources/local.rb +81 -0
  197. data/lib/rbs/collection/sources/rubygems.rb +48 -0
  198. data/lib/rbs/collection/sources/stdlib.rb +50 -0
  199. data/lib/rbs/collection/sources.rb +38 -0
  200. data/lib/rbs/collection.rb +16 -0
  201. data/lib/rbs/constant.rb +28 -0
  202. data/lib/rbs/definition.rb +415 -0
  203. data/lib/rbs/definition_builder/ancestor_builder.rb +678 -0
  204. data/lib/rbs/definition_builder/method_builder.rb +295 -0
  205. data/lib/rbs/definition_builder.rb +1054 -0
  206. data/lib/rbs/diff.rb +131 -0
  207. data/lib/rbs/environment/class_entry.rb +69 -0
  208. data/lib/rbs/environment/module_entry.rb +66 -0
  209. data/lib/rbs/environment/use_map.rb +77 -0
  210. data/lib/rbs/environment.rb +1028 -0
  211. data/lib/rbs/environment_loader.rb +167 -0
  212. data/lib/rbs/environment_walker.rb +155 -0
  213. data/lib/rbs/errors.rb +634 -0
  214. data/lib/rbs/factory.rb +18 -0
  215. data/lib/rbs/file_finder.rb +28 -0
  216. data/lib/rbs/inline_parser/comment_association.rb +117 -0
  217. data/lib/rbs/inline_parser.rb +568 -0
  218. data/lib/rbs/location_aux.rb +170 -0
  219. data/lib/rbs/locator.rb +247 -0
  220. data/lib/rbs/method_type.rb +145 -0
  221. data/lib/rbs/namespace.rb +154 -0
  222. data/lib/rbs/parser/lex_result.rb +15 -0
  223. data/lib/rbs/parser/token.rb +23 -0
  224. data/lib/rbs/parser_aux.rb +144 -0
  225. data/lib/rbs/prototype/helpers.rb +197 -0
  226. data/lib/rbs/prototype/node_usage.rb +99 -0
  227. data/lib/rbs/prototype/rb.rb +816 -0
  228. data/lib/rbs/prototype/rbi.rb +793 -0
  229. data/lib/rbs/prototype/runtime/helpers.rb +59 -0
  230. data/lib/rbs/prototype/runtime/reflection.rb +19 -0
  231. data/lib/rbs/prototype/runtime/value_object_generator.rb +279 -0
  232. data/lib/rbs/prototype/runtime.rb +680 -0
  233. data/lib/rbs/repository.rb +127 -0
  234. data/lib/rbs/resolver/constant_resolver.rb +219 -0
  235. data/lib/rbs/resolver/type_name_resolver.rb +167 -0
  236. data/lib/rbs/rewriter.rb +70 -0
  237. data/lib/rbs/sorter.rb +198 -0
  238. data/lib/rbs/source.rb +99 -0
  239. data/lib/rbs/substitution.rb +83 -0
  240. data/lib/rbs/subtractor.rb +204 -0
  241. data/lib/rbs/test/errors.rb +80 -0
  242. data/lib/rbs/test/guaranteed.rb +30 -0
  243. data/lib/rbs/test/hook.rb +212 -0
  244. data/lib/rbs/test/observer.rb +19 -0
  245. data/lib/rbs/test/setup.rb +84 -0
  246. data/lib/rbs/test/setup_helper.rb +50 -0
  247. data/lib/rbs/test/tester.rb +167 -0
  248. data/lib/rbs/test/type_check.rb +457 -0
  249. data/lib/rbs/test.rb +112 -0
  250. data/lib/rbs/type_alias_dependency.rb +100 -0
  251. data/lib/rbs/type_alias_regularity.rb +126 -0
  252. data/lib/rbs/type_name.rb +122 -0
  253. data/lib/rbs/types.rb +1604 -0
  254. data/lib/rbs/unit_test/convertibles.rb +177 -0
  255. data/lib/rbs/unit_test/spy.rb +138 -0
  256. data/lib/rbs/unit_test/type_assertions.rb +383 -0
  257. data/lib/rbs/unit_test/with_aliases.rb +145 -0
  258. data/lib/rbs/unit_test.rb +6 -0
  259. data/lib/rbs/validator.rb +186 -0
  260. data/lib/rbs/variance_calculator.rb +189 -0
  261. data/lib/rbs/vendorer.rb +71 -0
  262. data/lib/rbs/version.rb +5 -0
  263. data/lib/rbs/wasm/deserializer.rb +213 -0
  264. data/lib/rbs/wasm/location.rb +61 -0
  265. data/lib/rbs/wasm/parser.rb +137 -0
  266. data/lib/rbs/wasm/rbs_parser.wasm +0 -0
  267. data/lib/rbs/wasm/runtime.rb +196 -0
  268. data/lib/rbs/wasm/serialization_schema.rb +110 -0
  269. data/lib/rbs/writer.rb +424 -0
  270. data/lib/rbs.rb +117 -0
  271. data/lib/rbs_jars.rb +39 -0
  272. data/lib/rdoc/discover.rb +20 -0
  273. data/lib/rdoc_plugin/parser.rb +168 -0
  274. data/rbs.gemspec +81 -0
  275. data/schema/annotation.json +14 -0
  276. data/schema/comment.json +26 -0
  277. data/schema/decls.json +326 -0
  278. data/schema/function.json +87 -0
  279. data/schema/location.json +56 -0
  280. data/schema/members.json +266 -0
  281. data/schema/methodType.json +50 -0
  282. data/schema/typeParam.json +52 -0
  283. data/schema/types.json +317 -0
  284. data/sig/ancestor_builder.rbs +163 -0
  285. data/sig/ancestor_graph.rbs +60 -0
  286. data/sig/annotate/annotations.rbs +102 -0
  287. data/sig/annotate/formatter.rbs +24 -0
  288. data/sig/annotate/rdoc_annotater.rbs +85 -0
  289. data/sig/annotate/rdoc_source.rbs +32 -0
  290. data/sig/annotation.rbs +27 -0
  291. data/sig/ast/ruby/annotations.rbs +470 -0
  292. data/sig/ast/ruby/comment_block.rbs +127 -0
  293. data/sig/ast/ruby/declarations.rbs +158 -0
  294. data/sig/ast/ruby/helpers/constant_helper.rbs +11 -0
  295. data/sig/ast/ruby/helpers/location_helper.rbs +15 -0
  296. data/sig/ast/ruby/members.rbs +198 -0
  297. data/sig/buffer.rbs +108 -0
  298. data/sig/builtin_names.rbs +44 -0
  299. data/sig/cli/colored_io.rbs +15 -0
  300. data/sig/cli/diff.rbs +15 -0
  301. data/sig/cli/validate.rbs +47 -0
  302. data/sig/cli.rbs +89 -0
  303. data/sig/collection/cleaner.rbs +13 -0
  304. data/sig/collection/config/lockfile.rbs +74 -0
  305. data/sig/collection/config/lockfile_generator.rbs +68 -0
  306. data/sig/collection/config.rbs +46 -0
  307. data/sig/collection/installer.rbs +17 -0
  308. data/sig/collection/sources.rbs +214 -0
  309. data/sig/collection.rbs +4 -0
  310. data/sig/comment.rbs +26 -0
  311. data/sig/constant.rbs +21 -0
  312. data/sig/declarations.rbs +274 -0
  313. data/sig/definition.rbs +232 -0
  314. data/sig/definition_builder.rbs +181 -0
  315. data/sig/diff.rbs +28 -0
  316. data/sig/directives.rbs +77 -0
  317. data/sig/environment/class_entry.rbs +50 -0
  318. data/sig/environment/module_entry.rbs +50 -0
  319. data/sig/environment.rbs +286 -0
  320. data/sig/environment_loader.rbs +111 -0
  321. data/sig/environment_walker.rbs +65 -0
  322. data/sig/errors.rbs +408 -0
  323. data/sig/factory.rbs +5 -0
  324. data/sig/file_finder.rbs +28 -0
  325. data/sig/inline_parser/comment_association.rbs +71 -0
  326. data/sig/inline_parser.rbs +126 -0
  327. data/sig/location.rbs +135 -0
  328. data/sig/locator.rbs +56 -0
  329. data/sig/manifest.yaml +5 -0
  330. data/sig/members.rbs +258 -0
  331. data/sig/method_builder.rbs +89 -0
  332. data/sig/method_types.rbs +58 -0
  333. data/sig/namespace.rbs +161 -0
  334. data/sig/parser.rbs +164 -0
  335. data/sig/prototype/helpers.rbs +29 -0
  336. data/sig/prototype/node_usage.rbs +20 -0
  337. data/sig/prototype/rb.rbs +96 -0
  338. data/sig/prototype/rbi.rbs +104 -0
  339. data/sig/prototype/runtime.rbs +182 -0
  340. data/sig/rbs.rbs +21 -0
  341. data/sig/rdoc/rbs.rbs +67 -0
  342. data/sig/repository.rbs +85 -0
  343. data/sig/resolver/constant_resolver.rbs +92 -0
  344. data/sig/resolver/context.rbs +34 -0
  345. data/sig/resolver/type_name_resolver.rbs +61 -0
  346. data/sig/rewriter.rbs +45 -0
  347. data/sig/shims/bundler.rbs +38 -0
  348. data/sig/shims/enumerable.rbs +5 -0
  349. data/sig/shims/rubygems.rbs +19 -0
  350. data/sig/sorter.rbs +41 -0
  351. data/sig/source.rbs +48 -0
  352. data/sig/substitution.rbs +48 -0
  353. data/sig/subtractor.rbs +37 -0
  354. data/sig/test/errors.rbs +52 -0
  355. data/sig/test/guranteed.rbs +9 -0
  356. data/sig/test/type_check.rbs +19 -0
  357. data/sig/test.rbs +82 -0
  358. data/sig/type_alias_dependency.rbs +53 -0
  359. data/sig/type_alias_regularity.rbs +98 -0
  360. data/sig/type_param.rbs +115 -0
  361. data/sig/typename.rbs +89 -0
  362. data/sig/types.rbs +578 -0
  363. data/sig/unit_test/convertibles.rbs +154 -0
  364. data/sig/unit_test/spy.rbs +22 -0
  365. data/sig/unit_test/type_assertions.rbs +211 -0
  366. data/sig/unit_test/with_aliases.rbs +136 -0
  367. data/sig/use_map.rbs +35 -0
  368. data/sig/util.rbs +9 -0
  369. data/sig/validator.rbs +63 -0
  370. data/sig/variance_calculator.rbs +87 -0
  371. data/sig/vendorer.rbs +51 -0
  372. data/sig/version.rbs +3 -0
  373. data/sig/visitor.rbs +47 -0
  374. data/sig/wasm/deserializer.rbs +66 -0
  375. data/sig/wasm/serialization_schema.rbs +13 -0
  376. data/sig/writer.rbs +127 -0
  377. data/src/ast.c +1628 -0
  378. data/src/lexer.c +3221 -0
  379. data/src/lexer.re +155 -0
  380. data/src/lexstate.c +221 -0
  381. data/src/location.c +31 -0
  382. data/src/parser.c +4255 -0
  383. data/src/serialize.c +958 -0
  384. data/src/string.c +41 -0
  385. data/src/util/rbs_allocator.c +171 -0
  386. data/src/util/rbs_assert.c +19 -0
  387. data/src/util/rbs_buffer.c +54 -0
  388. data/src/util/rbs_constant_pool.c +268 -0
  389. data/src/util/rbs_encoding.c +21308 -0
  390. data/src/util/rbs_unescape.c +167 -0
  391. data/stdlib/abbrev/0/abbrev.rbs +66 -0
  392. data/stdlib/abbrev/0/array.rbs +26 -0
  393. data/stdlib/base64/0/base64.rbs +355 -0
  394. data/stdlib/benchmark/0/benchmark.rbs +452 -0
  395. data/stdlib/bigdecimal/0/big_decimal.rbs +1647 -0
  396. data/stdlib/bigdecimal-math/0/big_math.rbs +280 -0
  397. data/stdlib/bigdecimal-math/0/manifest.yaml +2 -0
  398. data/stdlib/cgi/0/core.rbs +911 -0
  399. data/stdlib/cgi/0/manifest.yaml +4 -0
  400. data/stdlib/cgi-escape/0/escape.rbs +171 -0
  401. data/stdlib/coverage/0/coverage.rbs +266 -0
  402. data/stdlib/csv/0/csv.rbs +3776 -0
  403. data/stdlib/csv/0/manifest.yaml +3 -0
  404. data/stdlib/date/0/date.rbs +1598 -0
  405. data/stdlib/date/0/date_time.rbs +617 -0
  406. data/stdlib/date/0/time.rbs +26 -0
  407. data/stdlib/dbm/0/dbm.rbs +421 -0
  408. data/stdlib/delegate/0/delegator.rbs +188 -0
  409. data/stdlib/delegate/0/kernel.rbs +47 -0
  410. data/stdlib/delegate/0/simple_delegator.rbs +96 -0
  411. data/stdlib/did_you_mean/0/did_you_mean.rbs +344 -0
  412. data/stdlib/digest/0/digest.rbs +693 -0
  413. data/stdlib/erb/0/erb.rbs +933 -0
  414. data/stdlib/etc/0/etc.rbs +884 -0
  415. data/stdlib/fileutils/0/fileutils.rbs +1753 -0
  416. data/stdlib/find/0/find.rbs +49 -0
  417. data/stdlib/forwardable/0/forwardable.rbs +271 -0
  418. data/stdlib/io-console/0/io-console.rbs +414 -0
  419. data/stdlib/ipaddr/0/ipaddr.rbs +431 -0
  420. data/stdlib/json/0/json.rbs +1963 -0
  421. data/stdlib/kconv/0/kconv.rbs +166 -0
  422. data/stdlib/logger/0/formatter.rbs +45 -0
  423. data/stdlib/logger/0/log_device.rbs +100 -0
  424. data/stdlib/logger/0/logger.rbs +796 -0
  425. data/stdlib/logger/0/manifest.yaml +2 -0
  426. data/stdlib/logger/0/period.rbs +17 -0
  427. data/stdlib/logger/0/severity.rbs +34 -0
  428. data/stdlib/minitest/0/kernel.rbs +42 -0
  429. data/stdlib/minitest/0/minitest/abstract_reporter.rbs +52 -0
  430. data/stdlib/minitest/0/minitest/assertion.rbs +17 -0
  431. data/stdlib/minitest/0/minitest/assertions.rbs +590 -0
  432. data/stdlib/minitest/0/minitest/backtrace_filter.rbs +23 -0
  433. data/stdlib/minitest/0/minitest/bench_spec.rbs +102 -0
  434. data/stdlib/minitest/0/minitest/benchmark.rbs +259 -0
  435. data/stdlib/minitest/0/minitest/composite_reporter.rbs +25 -0
  436. data/stdlib/minitest/0/minitest/compress.rbs +13 -0
  437. data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
  438. data/stdlib/minitest/0/minitest/expectation.rbs +2 -0
  439. data/stdlib/minitest/0/minitest/expectations.rbs +21 -0
  440. data/stdlib/minitest/0/minitest/guard.rbs +64 -0
  441. data/stdlib/minitest/0/minitest/mock.rbs +64 -0
  442. data/stdlib/minitest/0/minitest/parallel/executor.rbs +46 -0
  443. data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +5 -0
  444. data/stdlib/minitest/0/minitest/parallel/test.rbs +3 -0
  445. data/stdlib/minitest/0/minitest/parallel.rbs +2 -0
  446. data/stdlib/minitest/0/minitest/pride_io.rbs +62 -0
  447. data/stdlib/minitest/0/minitest/pride_lol.rbs +19 -0
  448. data/stdlib/minitest/0/minitest/progress_reporter.rbs +11 -0
  449. data/stdlib/minitest/0/minitest/reportable.rbs +53 -0
  450. data/stdlib/minitest/0/minitest/reporter.rbs +5 -0
  451. data/stdlib/minitest/0/minitest/result.rbs +28 -0
  452. data/stdlib/minitest/0/minitest/runnable.rbs +163 -0
  453. data/stdlib/minitest/0/minitest/skip.rbs +6 -0
  454. data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +48 -0
  455. data/stdlib/minitest/0/minitest/spec/dsl.rbs +129 -0
  456. data/stdlib/minitest/0/minitest/spec.rbs +11 -0
  457. data/stdlib/minitest/0/minitest/statistics_reporter.rbs +81 -0
  458. data/stdlib/minitest/0/minitest/summary_reporter.rbs +18 -0
  459. data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +92 -0
  460. data/stdlib/minitest/0/minitest/test.rbs +69 -0
  461. data/stdlib/minitest/0/minitest/unexpected_error.rbs +12 -0
  462. data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
  463. data/stdlib/minitest/0/minitest/unit/test_case.rbs +3 -0
  464. data/stdlib/minitest/0/minitest/unit.rbs +4 -0
  465. data/stdlib/minitest/0/minitest.rbs +115 -0
  466. data/stdlib/monitor/0/monitor.rbs +363 -0
  467. data/stdlib/mutex_m/0/mutex_m.rbs +104 -0
  468. data/stdlib/net-http/0/manifest.yaml +3 -0
  469. data/stdlib/net-http/0/net-http.rbs +5580 -0
  470. data/stdlib/net-protocol/0/manifest.yaml +2 -0
  471. data/stdlib/net-protocol/0/net-protocol.rbs +56 -0
  472. data/stdlib/net-smtp/0/manifest.yaml +2 -0
  473. data/stdlib/net-smtp/0/net-smtp.rbs +55 -0
  474. data/stdlib/nkf/0/nkf.rbs +402 -0
  475. data/stdlib/objspace/0/objspace.rbs +470 -0
  476. data/stdlib/observable/0/observable.rbs +217 -0
  477. data/stdlib/open-uri/0/manifest.yaml +4 -0
  478. data/stdlib/open-uri/0/open-uri.rbs +433 -0
  479. data/stdlib/open3/0/open3.rbs +606 -0
  480. data/stdlib/openssl/0/manifest.yaml +3 -0
  481. data/stdlib/openssl/0/openssl.rbs +12237 -0
  482. data/stdlib/optparse/0/optparse.rbs +1734 -0
  483. data/stdlib/pathname/0/pathname.rbs +36 -0
  484. data/stdlib/pp/0/manifest.yaml +2 -0
  485. data/stdlib/pp/0/pp.rbs +301 -0
  486. data/stdlib/prettyprint/0/prettyprint.rbs +383 -0
  487. data/stdlib/pstore/0/pstore.rbs +608 -0
  488. data/stdlib/psych/0/core_ext.rbs +12 -0
  489. data/stdlib/psych/0/dbm.rbs +237 -0
  490. data/stdlib/psych/0/manifest.yaml +3 -0
  491. data/stdlib/psych/0/psych.rbs +455 -0
  492. data/stdlib/psych/0/store.rbs +57 -0
  493. data/stdlib/pty/0/pty.rbs +240 -0
  494. data/stdlib/random-formatter/0/random-formatter.rbs +277 -0
  495. data/stdlib/rdoc/0/code_object.rbs +52 -0
  496. data/stdlib/rdoc/0/comment.rbs +61 -0
  497. data/stdlib/rdoc/0/context.rbs +153 -0
  498. data/stdlib/rdoc/0/markup.rbs +117 -0
  499. data/stdlib/rdoc/0/options.rbs +76 -0
  500. data/stdlib/rdoc/0/parser.rbs +56 -0
  501. data/stdlib/rdoc/0/rdoc.rbs +393 -0
  502. data/stdlib/rdoc/0/ri.rbs +17 -0
  503. data/stdlib/rdoc/0/store.rbs +48 -0
  504. data/stdlib/rdoc/0/top_level.rbs +97 -0
  505. data/stdlib/resolv/0/manifest.yaml +3 -0
  506. data/stdlib/resolv/0/resolv.rbs +1787 -0
  507. data/stdlib/ripper/0/ripper.rbs +1654 -0
  508. data/stdlib/securerandom/0/manifest.yaml +2 -0
  509. data/stdlib/securerandom/0/securerandom.rbs +49 -0
  510. data/stdlib/shellwords/0/shellwords.rbs +229 -0
  511. data/stdlib/singleton/0/singleton.rbs +134 -0
  512. data/stdlib/socket/0/addrinfo.rbs +666 -0
  513. data/stdlib/socket/0/basic_socket.rbs +590 -0
  514. data/stdlib/socket/0/constants.rbs +2295 -0
  515. data/stdlib/socket/0/ip_socket.rbs +94 -0
  516. data/stdlib/socket/0/socket.rbs +4170 -0
  517. data/stdlib/socket/0/socket_error.rbs +5 -0
  518. data/stdlib/socket/0/tcp_server.rbs +192 -0
  519. data/stdlib/socket/0/tcp_socket.rbs +87 -0
  520. data/stdlib/socket/0/udp_socket.rbs +133 -0
  521. data/stdlib/socket/0/unix_server.rbs +169 -0
  522. data/stdlib/socket/0/unix_socket.rbs +172 -0
  523. data/stdlib/stringio/0/stringio.rbs +1681 -0
  524. data/stdlib/strscan/0/string_scanner.rbs +1648 -0
  525. data/stdlib/tempfile/0/manifest.yaml +3 -0
  526. data/stdlib/tempfile/0/tempfile.rbs +483 -0
  527. data/stdlib/time/0/time.rbs +434 -0
  528. data/stdlib/timeout/0/timeout.rbs +132 -0
  529. data/stdlib/tmpdir/0/tmpdir.rbs +69 -0
  530. data/stdlib/tsort/0/cyclic.rbs +8 -0
  531. data/stdlib/tsort/0/interfaces.rbs +20 -0
  532. data/stdlib/tsort/0/tsort.rbs +410 -0
  533. data/stdlib/uri/0/common.rbs +621 -0
  534. data/stdlib/uri/0/file.rbs +118 -0
  535. data/stdlib/uri/0/ftp.rbs +13 -0
  536. data/stdlib/uri/0/generic.rbs +1111 -0
  537. data/stdlib/uri/0/http.rbs +104 -0
  538. data/stdlib/uri/0/https.rbs +14 -0
  539. data/stdlib/uri/0/ldap.rbs +230 -0
  540. data/stdlib/uri/0/ldaps.rbs +14 -0
  541. data/stdlib/uri/0/mailto.rbs +92 -0
  542. data/stdlib/uri/0/rfc2396_parser.rbs +189 -0
  543. data/stdlib/uri/0/rfc3986_parser.rbs +2 -0
  544. data/stdlib/uri/0/ws.rbs +13 -0
  545. data/stdlib/uri/0/wss.rbs +9 -0
  546. data/stdlib/yaml/0/manifest.yaml +2 -0
  547. data/stdlib/yaml/0/yaml.rbs +1 -0
  548. data/stdlib/zlib/0/buf_error.rbs +10 -0
  549. data/stdlib/zlib/0/data_error.rbs +10 -0
  550. data/stdlib/zlib/0/deflate.rbs +211 -0
  551. data/stdlib/zlib/0/error.rbs +20 -0
  552. data/stdlib/zlib/0/gzip_file/crc_error.rbs +12 -0
  553. data/stdlib/zlib/0/gzip_file/error.rbs +23 -0
  554. data/stdlib/zlib/0/gzip_file/length_error.rbs +12 -0
  555. data/stdlib/zlib/0/gzip_file/no_footer.rbs +11 -0
  556. data/stdlib/zlib/0/gzip_file.rbs +156 -0
  557. data/stdlib/zlib/0/gzip_reader.rbs +293 -0
  558. data/stdlib/zlib/0/gzip_writer.rbs +168 -0
  559. data/stdlib/zlib/0/inflate.rbs +180 -0
  560. data/stdlib/zlib/0/mem_error.rbs +10 -0
  561. data/stdlib/zlib/0/need_dict.rbs +13 -0
  562. data/stdlib/zlib/0/stream_end.rbs +11 -0
  563. data/stdlib/zlib/0/stream_error.rbs +11 -0
  564. data/stdlib/zlib/0/version_error.rbs +11 -0
  565. data/stdlib/zlib/0/zlib.rbs +449 -0
  566. data/stdlib/zlib/0/zstream.rbs +200 -0
  567. data/wasm/README.md +60 -0
  568. data/wasm/rbs_wasm.c +423 -0
  569. metadata +671 -0
data/CHANGELOG.md ADDED
@@ -0,0 +1,2380 @@
1
+ # CHANGELOG
2
+
3
+ ## 4.1.0 (2026-07-27)
4
+
5
+ RBS 4.1 ships with JRuby support. The RBS parser is written in plain C without depending on the Ruby C API, so it is compiled to WebAssembly and runs on a Wasm runtime, with the parsed AST serialized in a binary format and decoded into RBS objects. The full test suite runs on JRuby in CI.
6
+
7
+ The inline RBS syntax gets three new features: singleton method definitions (`def self.`), the `module-self` constraint, and instance variable annotations in `module` declarations. Note that RBS inline is still experimental and may change in future releases.
8
+
9
+ This release also introduces `RBS::Rewriter`, an API to edit RBS source text while preserving the surrounding content, which `rbs annotate` is now built on. Parsing performance is improved by interning type names in a shared trie and reducing allocations per node.
10
+
11
+ `RBS::Prototype::Runtime`, the RDoc plugin parser, and the top-level `float` type alias are deprecated in this release.
12
+
13
+ ### Signature updates
14
+
15
+ **Updated classes/modules/methods:** `ARGF`, `Array`, `CSV`, `Class`, `Delegator`, `Digest`, `ERB`, `Enumerable`, `Enumerator`, `Enumerator::Product`, `Etc`, `File`, `File::Constants`, `File::Stat`, `FileUtils`, `Float`, `Gem`, `Hash`, `IO`, `IPAddr`, `Integer`, `JSON`, `Kernel`, `MatchData`, `Module`, `Monitor`, `Numeric`, `ObjectSpace::WeakKeyMap`, `OpenSSL`, `Pathname`, `RBS::Ops`, `Ractor`, `Range`, `Resolv`, `RubyVM::InstructionSequence`, `Set`, `Shellwords`, `String`, `StringIO`, `StringScanner`, `Struct`, `Tempfile`, `Thread`, `Timeout`, `TSort`, `URI::Generic`, `Zlib::GzipReader`, `Zlib::ZStream`
16
+
17
+ * Remove stale Float constants and add a constant drift test ([#2994](https://github.com/ruby/rbs/pull/2994))
18
+ * Update RDoc comments with Ruby 4.0.6 ([#3035](https://github.com/ruby/rbs/pull/3035))
19
+ * Add a dependency on tempfile. ([#3025](https://github.com/ruby/rbs/pull/3025))
20
+ * Support `%a{implicitly-returns-nil}` on `MatchData#[]` ([#2990](https://github.com/ruby/rbs/pull/2990))
21
+ * Update `Array` ([#2987](https://github.com/ruby/rbs/pull/2987))
22
+ * Allow nil output buffers for reader methods ([#3002](https://github.com/ruby/rbs/pull/3002))
23
+ * Add stdlib signature tests for #2967 ([#2989](https://github.com/ruby/rbs/pull/2989))
24
+ * Update `Integer`, phase 1 ([#2995](https://github.com/ruby/rbs/pull/2995))
25
+ * Add RBS::Ops ([#2934](https://github.com/ruby/rbs/pull/2934))
26
+ * Update Module ([#2933](https://github.com/ruby/rbs/pull/2933))
27
+ * Correct core/stdlib signatures to match Ruby 4.0 ([#2967](https://github.com/ruby/rbs/pull/2967))
28
+ * Revert Digest::Class method changes ([#2980](https://github.com/ruby/rbs/pull/2980))
29
+ * Add stdlib tests for updated StringScanner signatures ([#2968](https://github.com/ruby/rbs/pull/2968))
30
+ * Update `StringScanner` signatures to match strscan 3.1.6 ([#2959](https://github.com/ruby/rbs/pull/2959))
31
+ * Remove StringScanner methods absent from the latest Ruby release ([#2961](https://github.com/ruby/rbs/pull/2961))
32
+ * Fix `Resolv#initialize` signature: array of resolvers + `use_ipv6:` ([#2960](https://github.com/ruby/rbs/pull/2960))
33
+ * [Hash] Update Hash's signatures and tests to be correct ([#2694](https://github.com/ruby/rbs/pull/2694))
34
+ * update rbs signatures to be more consistent with generics ([#2867](https://github.com/ruby/rbs/pull/2867))
35
+ * Use top-level `path` in fileutils.rbs to suppress deprecation warning ([#2949](https://github.com/ruby/rbs/pull/2949))
36
+ * Update File::Constants and File::Stat ([#2942](https://github.com/ruby/rbs/pull/2942))
37
+ * Add signature for `RubyVM::InstructionSequence.of` ([#2916](https://github.com/ruby/rbs/pull/2916))
38
+ * fix OpenSSL#session_new_cb signature ([#2924](https://github.com/ruby/rbs/pull/2924))
39
+ * [Class] update class.rbs ([#2898](https://github.com/ruby/rbs/pull/2898))
40
+ * Deprecate top-level float ([#2695](https://github.com/ruby/rbs/pull/2695))
41
+ * [Kernel] Updated querying methods ([#2685](https://github.com/ruby/rbs/pull/2685))
42
+
43
+ ### Library changes
44
+
45
+ * Convert character offset to byte offset in parse_inline_*_annotation ([#2945](https://github.com/ruby/rbs/pull/2945))
46
+ * Guard against underflow when sysconf(_SC_PAGESIZE) returns 0 ([#3031](https://github.com/ruby/rbs/pull/3031))
47
+ * Report invalid UTF-8 byte in a comment as a parsing error ([#2983](https://github.com/ruby/rbs/pull/2983))
48
+ * Fetch Chicory/ASM jars from Maven instead of bundling in gem ([#3019](https://github.com/ruby/rbs/pull/3019))
49
+ * Add write barrier protection to RBS Location objects ([#3022](https://github.com/ruby/rbs/pull/3022))
50
+ * Rename parameter in rbs_intern_type_name for clarity ([#3023](https://github.com/ruby/rbs/pull/3023))
51
+ * Deprecate RDoc plugin parser ([#3016](https://github.com/ruby/rbs/pull/3016))
52
+ * Run the test suite on JRuby (JRuby support, step 4) ([#3008](https://github.com/ruby/rbs/pull/3008))
53
+ * Run the RBS parser on JRuby via WebAssembly (JRuby support, step 3) ([#3000](https://github.com/ruby/rbs/pull/3000))
54
+ * Add binary serialization of the parsed AST (JRuby support, step 2) ([#2999](https://github.com/ruby/rbs/pull/2999))
55
+ * Build the RBS parser as a WebAssembly module (JRuby support, step 1) ([#2998](https://github.com/ruby/rbs/pull/2998))
56
+ * Reject reversed position ranges in parser/lexer entrypoints ([#2974](https://github.com/ruby/rbs/pull/2974))
57
+ * Fix lexer infinite loop / abort on invalid UTF-8 byte ([#2973](https://github.com/ruby/rbs/pull/2973))
58
+ * Flyweight TypeName / Namespace cached in a shared trie ([#2957](https://github.com/ruby/rbs/pull/2957))
59
+ * Reduce Hash allocation per `Node` creation ([#2946](https://github.com/ruby/rbs/pull/2946))
60
+ * Tidy `ast_translation.c` ([#2947](https://github.com/ruby/rbs/pull/2947))
61
+ * Auto-generate rbs_ast_ruby_annotations_t union from config.yml ([#2939](https://github.com/ruby/rbs/pull/2939))
62
+ * Speed up RBS::InlineParser on large sources with non-ASCII characters ([#2950](https://github.com/ruby/rbs/pull/2950))
63
+ * Support `def self.method_name` singleton method in inline parser ([#2935](https://github.com/ruby/rbs/pull/2935))
64
+ * This is not prism ([#2951](https://github.com/ruby/rbs/pull/2951))
65
+ * Add RBS::Rewriter and use it in rbs annotate ([#2927](https://github.com/ruby/rbs/pull/2927))
66
+ * Add nullability annotations to AST pointer types ([#2922](https://github.com/ruby/rbs/pull/2922))
67
+ * Support `module-self` inline annotation ([#2921](https://github.com/ruby/rbs/pull/2921))
68
+ * Inline instance variable annotation in module declaration ([#2919](https://github.com/ruby/rbs/pull/2919))
69
+
70
+ #### rbs prototype
71
+
72
+ * Fix nested declarations in rbs prototype rbi ([#3029](https://github.com/ruby/rbs/pull/3029))
73
+ * Deprecate prototype runtime ([#2956](https://github.com/ruby/rbs/pull/2956))
74
+
75
+ #### rbs collection
76
+
77
+ * Clean up partial clone before falling back to full clone ([#2978](https://github.com/ruby/rbs/pull/2978))
78
+ * Suppress spurious warning for non-gem stdlib libraries ([#2929](https://github.com/ruby/rbs/pull/2929))
79
+
80
+ ### Miscellaneous
81
+
82
+ * Fix Lint/DuplicateMethods in StringIO_test.rb ([#3010](https://github.com/ruby/rbs/pull/3010))
83
+ * Compressed files must be opened in binary mode ([#2981](https://github.com/ruby/rbs/pull/2981))
84
+ * Fix flaky DirSingletonTest GC failures in test_fchdir and test_for_fd ([#3004](https://github.com/ruby/rbs/pull/3004))
85
+ * Add TruffleRuby CI job ([#2996](https://github.com/ruby/rbs/pull/2996))
86
+ * Update the target Ruby version notes to the latest release ([#2962](https://github.com/ruby/rbs/pull/2962))
87
+ * Update docs/inline.md to match current inline parser behavior ([#2953](https://github.com/ruby/rbs/pull/2953))
88
+ * ci: skip Gemfile.lock BUNDLED WITH on ruby-head ([#2952](https://github.com/ruby/rbs/pull/2952))
89
+ * Remove `logger` from sig dependencies ([#2904](https://github.com/ruby/rbs/pull/2904))
90
+
91
+ ## 4.0.2 (2026-03-25)
92
+
93
+ ### Library changes
94
+
95
+ #### rbs collection
96
+
97
+ * Fix: pathname not written to lockfile. ([#2889](https://github.com/ruby/rbs/pull/2889))
98
+
99
+ ### Miscellaneous
100
+
101
+ * Fix test failure on Windows in `ruby/ruby` ([#2900](https://github.com/ruby/rbs/pull/2900))
102
+ * Fix test for Ruby 4.1 ([#2899](https://github.com/ruby/rbs/pull/2899))
103
+
104
+ ## 4.0.1 (2026-03-23)
105
+
106
+ This is a minor release to fix Ruby CI failure, which was caused by symlinks included in the `rust` directory.
107
+
108
+ ### Library changes
109
+
110
+ * Fix `() -> (void)` being rejected as SyntaxError ([#2884](https://github.com/ruby/rbs/pull/2884))
111
+
112
+ ### Miscellaneous
113
+
114
+ * Drop crates ([#2887](https://github.com/ruby/rbs/pull/2887))
115
+ * Add newline at eof ([#2885](https://github.com/ruby/rbs/pull/2885))
116
+
117
+ ## 4.0.0 (2026-03-16)
118
+
119
+ RBS 4.0 ships with experimental RBS inline syntax support, allowing you to write type annotations directly in Ruby source files. See [docs/inline.md](docs/inline.md) for the syntax details.
120
+
121
+ ```ruby
122
+ class Calculator
123
+ # @rbs (Integer, Integer) -> Integer
124
+ def add(a, b) = a + b
125
+ end
126
+ ```
127
+
128
+ Note: RBS inline is still experimental and may change in future releases.
129
+
130
+ This release also introduces two language changes: type argument support for singleton types (`singleton(T)[S]`) mainly for Sorbet integration, and generic type parameter lower bounds (`T < S`).
131
+
132
+ ### Signature updates
133
+
134
+ **Updated classes/modules/methods:** `Addrinfo`, `Array`, `BasicObject`, `BigDecimal`, `Binding`, `CGI`, `Comparable`, `Complex`, `Digest::SHA2`, `Encoding::Converter`, `Enumerable`, `Enumerator`, `Enumerator::ArithmeticSequence`, `Enumerator::Lazy`, `Fiber`, `File`, `FileUtils`, `Float`, `Hash`, `IO`, `IO::TimeoutError`, `Integer`, `JSON`, `Kernel`, `Kconv`, `Math`, `Method`, `Minitest`, `Module`, `Numeric`, `ObjectSpace`, `Open3`, `OpenURI`, `OptionParser`, `PStore`, `Pathname`, `Proc`, `Process::Status`, `Psych`, `Ractor`, `Random`, `Random::Formatter`, `Range`, `Rational`, `RBS::Unnamed::TopLevelSelfClass`, `Ripper::Lexer::Elem`, `Ruby`, `RubyVM`, `SecureRandom`, `Set`, `Socket`, `String`, `StringScanner`, `TCPSocket`, `Thread`, `URI`, `URI::Generic`, `Zlib::GzipReader`, `Zlib::GzipWriter`
135
+
136
+ * Remove deprecated types ([#2880](https://github.com/ruby/rbs/pull/2880))
137
+ * Add type `RBS::Unnamed::TopLevelSelfClass` to core ([#2362](https://github.com/ruby/rbs/pull/2362))
138
+ * Graduate bundled gems from Ruby v4.0 ([#2852](https://github.com/ruby/rbs/pull/2852))
139
+ * stdlib: Add missing Psych methods and exception classes ([#2850](https://github.com/ruby/rbs/pull/2850))
140
+ * Add variants with positional argument to `Hash#transform_keys` ([#2848](https://github.com/ruby/rbs/pull/2848))
141
+ * add extra kwarg options for File#initialize and derivatives ([#2798](https://github.com/ruby/rbs/pull/2798))
142
+ * pstore: fixes types, treat it as a collection ([#2806](https://github.com/ruby/rbs/pull/2806))
143
+ * Add signatures for `{Module,Proc}#ruby2_keywords` ([#2805](https://github.com/ruby/rbs/pull/2805))
144
+ * Make Zlib::GzipWriter.new level and strategy parameters optional ([#2810](https://github.com/ruby/rbs/pull/2810))
145
+ * URI.(s) does string coercion ([#2825](https://github.com/ruby/rbs/pull/2825))
146
+ * Fix String#append_as_bytes to accept Integer ([#2817](https://github.com/ruby/rbs/pull/2817))
147
+ * [Comparable] Add in Comparable::_CompareToZero ([#2697](https://github.com/ruby/rbs/pull/2697))
148
+ * [Kernel] Add Kernel.trace_var and Kernel.untrace_var ([#2682](https://github.com/ruby/rbs/pull/2682))
149
+ * Add signature for `Module#method_undefined` ([#2804](https://github.com/ruby/rbs/pull/2804))
150
+ * Fix Zlib::GzipWriter signatures ([#2803](https://github.com/ruby/rbs/pull/2803))
151
+ * GzipWriter#initialize only takes 1 required positional arg ([#2799](https://github.com/ruby/rbs/pull/2799))
152
+ * Fix accessibility of method in Module ([#2802](https://github.com/ruby/rbs/pull/2802))
153
+ * Graduate kconv ([#2794](https://github.com/ruby/rbs/pull/2794))
154
+ * Fix test related to pathname ([#2789](https://github.com/ruby/rbs/pull/2789))
155
+ * Split pathname to core and stdlib ([#2777](https://github.com/ruby/rbs/pull/2777))
156
+ * [Kernel] Narrow `caller_locations` ([#2745](https://github.com/ruby/rbs/pull/2745))
157
+ * Ruby 4.1 changed `source_location` type ([#2784](https://github.com/ruby/rbs/pull/2784))
158
+ * Remove ObjectSpace.count_nodes ([#2779](https://github.com/ruby/rbs/pull/2779))
159
+ * Support selector for `String#strip` family. ([#2775](https://github.com/ruby/rbs/pull/2775))
160
+ * Add `Ruby`, `Array#find`, and `Array#rfind` ([#2767](https://github.com/ruby/rbs/pull/2767))
161
+ * Update minitest ([#2761](https://github.com/ruby/rbs/pull/2761))
162
+ * Support BigDecimal v4 ([#2758](https://github.com/ruby/rbs/pull/2758))
163
+ * Update rdoc and comments ([#2733](https://github.com/ruby/rbs/pull/2733))
164
+ * Update cgi and cgi/escape type definitions ([#2728](https://github.com/ruby/rbs/pull/2728))
165
+ * Update RBS files for Ruby 4 ([#2731](https://github.com/ruby/rbs/pull/2731))
166
+ * Update existing docs ([#2724](https://github.com/ruby/rbs/pull/2724))
167
+ * Remove reference to `JSON.deep_const_get` ([#2701](https://github.com/ruby/rbs/pull/2701))
168
+ * Remove deprecated methods in `JSON` ([#2366](https://github.com/ruby/rbs/pull/2366))
169
+ * Update FileUtils to v1.8.0 ([#2700](https://github.com/ruby/rbs/pull/2700))
170
+ * Avoid overloading where arguments are identical ([#2559](https://github.com/ruby/rbs/pull/2559))
171
+ * Move Pathname to core from stdlib ([#2705](https://github.com/ruby/rbs/pull/2705))
172
+ * Remove undocumented `#nonzero?` ([#2543](https://github.com/ruby/rbs/pull/2543))
173
+ * Add signature for `OptionParser#raise_unknown` ([#2735](https://github.com/ruby/rbs/pull/2735))
174
+ * Add signature for `Open3.popen2` ([#2734](https://github.com/ruby/rbs/pull/2734))
175
+ * Add RFC2396_PARSER to URI module ([#2727](https://github.com/ruby/rbs/pull/2727))
176
+ * Add signature for `Open3.capture3` ([#2714](https://github.com/ruby/rbs/pull/2714))
177
+ * Remove sig for IO#{ready?,nread} ([#2710](https://github.com/ruby/rbs/pull/2710))
178
+ * Accept `nil` state parameter in `to_json` type signatures ([#2691](https://github.com/ruby/rbs/pull/2691))
179
+ * Add type of `Open3.popen3` ([#2699](https://github.com/ruby/rbs/pull/2699))
180
+ * `unsetenv_others` and `close_others` only allows bool. ([#2698](https://github.com/ruby/rbs/pull/2698))
181
+ * Add deprecated annotation to `attr` with bool args ([#2693](https://github.com/ruby/rbs/pull/2693))
182
+ * Update open3 ([#2692](https://github.com/ruby/rbs/pull/2692))
183
+ * Add signature for `SecureRandom.bytes` ([#2690](https://github.com/ruby/rbs/pull/2690))
184
+ * Set %a{deprecated} to deprecated core methods ([#2664](https://github.com/ruby/rbs/pull/2664))
185
+ * Migrate usages of ::_ToPath to use ::path instead ([#2677](https://github.com/ruby/rbs/pull/2677))
186
+ * Add missing signatures for `Random::Formatter` ([#2680](https://github.com/ruby/rbs/pull/2680))
187
+ * Split `Random::Formatter` to core and stdlib ([#2661](https://github.com/ruby/rbs/pull/2661))
188
+ * Skip test cases of developing methods for Pathname ([#2648](https://github.com/ruby/rbs/pull/2648))
189
+ * Add signature `Random.seed` ([#2649](https://github.com/ruby/rbs/pull/2649))
190
+ * Update `string.rbs` to avoid deprecation warning in Steep ([#2655](https://github.com/ruby/rbs/pull/2655))
191
+ * Add sig `IO#pread` and `IO#pwrite` ([#2647](https://github.com/ruby/rbs/pull/2647))
192
+ * Refine signature of `Numeric#step` and add type of `Enumerator::ArithmeticSequence` ([#2600](https://github.com/ruby/rbs/pull/2600))
193
+ * Remove undocumented override methods ([#2622](https://github.com/ruby/rbs/pull/2622))
194
+ * Add docs ([#2625](https://github.com/ruby/rbs/pull/2625))
195
+ * Remove undocumented methods for `imaginary` ([#2620](https://github.com/ruby/rbs/pull/2620))
196
+ * Update securerandom ([#2619](https://github.com/ruby/rbs/pull/2619))
197
+ * Drop undocumented `#eql?` ([#2618](https://github.com/ruby/rbs/pull/2618))
198
+ * Just use `Numeric#+@` and return self ([#2597](https://github.com/ruby/rbs/pull/2597))
199
+ * Drop undocumented `#dup` ([#2598](https://github.com/ruby/rbs/pull/2598))
200
+ * Add signature for `Digest::SHA2` ([#2573](https://github.com/ruby/rbs/pull/2573))
201
+ * Add signatures for `OpenURI` ([#2574](https://github.com/ruby/rbs/pull/2574))
202
+ * Add signature for `IO::TimeoutError` ([#2571](https://github.com/ruby/rbs/pull/2571))
203
+ * Add signatures for `Set` ([#2570](https://github.com/ruby/rbs/pull/2570))
204
+ * Add signature for `Enumerator#+` ([#2567](https://github.com/ruby/rbs/pull/2567))
205
+ * Add signature for `Enumerator::Lazy#eager` ([#2568](https://github.com/ruby/rbs/pull/2568))
206
+ * Add signature for `Fiber#blocking` ([#2566](https://github.com/ruby/rbs/pull/2566))
207
+ * Support BasicObject to avoid NoMethodError for `RBS::Test::TypeCheck` ([#2565](https://github.com/ruby/rbs/pull/2565))
208
+ * Add documentation for `Range#{minmax,count,to_a,entries}` ([#2562](https://github.com/ruby/rbs/pull/2562))
209
+ * Delegate to `Enumerable` from `Range#{min,max}` ([#2540](https://github.com/ruby/rbs/pull/2540))
210
+ * Add URI::Generic#+ ([#2535](https://github.com/ruby/rbs/pull/2535))
211
+ * Make IO.binread, IO.binwrite, IO.read and IO.write accept _ToPath ([#2378](https://github.com/ruby/rbs/pull/2378))
212
+ * Support pattern argument for Enumerable#{all,any,none,one}? ([#2368](https://github.com/ruby/rbs/pull/2368))
213
+ * fixing sig for addrinfo ([#2464](https://github.com/ruby/rbs/pull/2464))
214
+
215
+ ### Language updates
216
+
217
+ * Add type arguments support to singleton types ([#2502](https://github.com/ruby/rbs/pull/2502))
218
+ * Move the note about lower bound ([#2517](https://github.com/ruby/rbs/pull/2517))
219
+ * Add support for lower bounds in type parameters ([#2490](https://github.com/ruby/rbs/pull/2490))
220
+
221
+ ### Library changes
222
+
223
+ * Add `#type_fingerprint` methods ([#2879](https://github.com/ruby/rbs/pull/2879))
224
+ * `top` for membership predicates of collection types ([#2878](https://github.com/ruby/rbs/pull/2878))
225
+ * Add block parameter (`&block`) type declaration ([#2875](https://github.com/ruby/rbs/pull/2875))
226
+ * Add splat (`*a`) and double-splat (`**a`) parameter support ([#2873](https://github.com/ruby/rbs/pull/2873))
227
+ * Add parameter type inline annotation ([#2443](https://github.com/ruby/rbs/pull/2443))
228
+ * Reduce compile warnings ([#2871](https://github.com/ruby/rbs/pull/2871))
229
+ * Specify input range by byte offsets ([#2863](https://github.com/ruby/rbs/pull/2863))
230
+ * add `extern "C"` wrapping to `rbs.h` when using C++ ([#2855](https://github.com/ruby/rbs/pull/2855))
231
+ * Automatically inherits super method type if unannotated ([#2858](https://github.com/ruby/rbs/pull/2858))
232
+ * Add `...` syntax to method type inline annotation syntax ([#2856](https://github.com/ruby/rbs/pull/2856))
233
+ * Fix for string reference corruption issue ([#2836](https://github.com/ruby/rbs/pull/2836))
234
+ * Use unreleased steep for `rake typecheck_test` ([#2842](https://github.com/ruby/rbs/pull/2842))
235
+ * Fix breaking references after GC.compact ([#2822](https://github.com/ruby/rbs/pull/2822))
236
+ * Fix special methods accessibility. ([#2546](https://github.com/ruby/rbs/pull/2546))
237
+ * Fix allocation alignment ([#2788](https://github.com/ruby/rbs/pull/2788))
238
+ * Skip `set` and `pathname` from `manifest.yaml` ([#2773](https://github.com/ruby/rbs/pull/2773))
239
+ * Fix C++ compiler warnings ([#2755](https://github.com/ruby/rbs/pull/2755))
240
+ * Better encoding ([#2675](https://github.com/ruby/rbs/pull/2675))
241
+ * Move `require_eof` handling to C API ([#2678](https://github.com/ruby/rbs/pull/2678))
242
+ * Delete debug print ([#2753](https://github.com/ruby/rbs/pull/2753))
243
+ * Make assertions macro ([#2729](https://github.com/ruby/rbs/pull/2729))
244
+ * Remove deprecated method `Kernel#Namespace`. Also remove `Kernel#TypeName`. ([#2480](https://github.com/ruby/rbs/pull/2480))
245
+ * Update rdoc to 6.13.1 ([#2355](https://github.com/ruby/rbs/pull/2355))
246
+ * Allow `self` for inline `@rbs @ivar: self` ([#2633](https://github.com/ruby/rbs/pull/2633))
247
+ * Normalize modules during type name resolution ([#2670](https://github.com/ruby/rbs/pull/2670))
248
+ * Only load extconf_compile_commands_json when compiling through Rake ([#2498](https://github.com/ruby/rbs/pull/2498))
249
+ * Use `malloc` based allocator ([#2666](https://github.com/ruby/rbs/pull/2666))
250
+ * Add another parser benchmark script ([#2668](https://github.com/ruby/rbs/pull/2668))
251
+ * Reuse empty array and hash ([#2667](https://github.com/ruby/rbs/pull/2667))
252
+ * Faster lexical analyzer ([#2665](https://github.com/ruby/rbs/pull/2665))
253
+ * Introduce `type_fingerprint` ([#2644](https://github.com/ruby/rbs/pull/2644))
254
+ * Add module-class alias declaration ([#2636](https://github.com/ruby/rbs/pull/2636))
255
+ * Inline constant declaration ([#2635](https://github.com/ruby/rbs/pull/2635))
256
+ * `self` type is rejected depending on the context ([#2627](https://github.com/ruby/rbs/pull/2627))
257
+ * Add instance variable declaration annotation ([#2632](https://github.com/ruby/rbs/pull/2632))
258
+ * Module-self allow void once ([#2626](https://github.com/ruby/rbs/pull/2626))
259
+ * Support inheritance in Inline RBS declaration ([#2630](https://github.com/ruby/rbs/pull/2630))
260
+ * Inline attribute/method definitions have comments ([#2624](https://github.com/ruby/rbs/pull/2624))
261
+ * Inline RBS declaration for attributes (`attr_***`) ([#2623](https://github.com/ruby/rbs/pull/2623))
262
+ * Fix bad scaling in `rbs_comment_t` tokens ([#2578](https://github.com/ruby/rbs/pull/2578))
263
+ * Update parser so that `void` type is rejected depending on the context ([#2590](https://github.com/ruby/rbs/pull/2590))
264
+ * Implement mixin in inline RBS declarations ([#2614](https://github.com/ruby/rbs/pull/2614))
265
+ * Validate type args given to non-generic ancestor ([#2615](https://github.com/ruby/rbs/pull/2615))
266
+ * Add name locations to AST ([#2595](https://github.com/ruby/rbs/pull/2595))
267
+ * Move `exit` calls to `exe/rbs` ([#2591](https://github.com/ruby/rbs/pull/2591))
268
+ * Fix locator ([#2588](https://github.com/ruby/rbs/pull/2588))
269
+ * Introduce standalone C parser for RBS with arena allocation ([#2398](https://github.com/ruby/rbs/pull/2398))
270
+ * Fix subtraction of civar ([#2369](https://github.com/ruby/rbs/pull/2369))
271
+ * Buffer with empty string ([#2551](https://github.com/ruby/rbs/pull/2551))
272
+ * Fix unavailable MAP_ANONYMOUS ([#2470](https://github.com/ruby/rbs/pull/2470))
273
+ * Inline minor fix ([#2514](https://github.com/ruby/rbs/pull/2514))
274
+ * Enable `-Wc++-compat` ([#2463](https://github.com/ruby/rbs/pull/2463))
275
+ * Expose a method to parse type parameters ([#2457](https://github.com/ruby/rbs/pull/2457))
276
+ * Expose and fix `Block#location` ([#2456](https://github.com/ruby/rbs/pull/2456))
277
+ * Restore RBS::Environment#declarations for backwards-compatibility ([#2393](https://github.com/ruby/rbs/pull/2393))
278
+ * Implement `@rbs return: T` annotation ([#2406](https://github.com/ruby/rbs/pull/2406))
279
+ * Add `@rbs skip` annotation ([#2405](https://github.com/ruby/rbs/pull/2405))
280
+ * Inline annotations ([#2403](https://github.com/ruby/rbs/pull/2403))
281
+ * Inline `def` support ([#2392](https://github.com/ruby/rbs/pull/2392))
282
+ * Suppress to GCC warning with multi-line comment ([#2383](https://github.com/ruby/rbs/pull/2383))
283
+ * Add inline class/module declaration ([#2390](https://github.com/ruby/rbs/pull/2390))
284
+ * Add `RBS::Source::RBS` ([#2380](https://github.com/ruby/rbs/pull/2380))
285
+
286
+ #### rbs prototype
287
+
288
+ * [prototype runtime] Find redefined methods ([#2542](https://github.com/ruby/rbs/pull/2542))
289
+
290
+ #### rbs collection
291
+
292
+ ### Miscellaneous
293
+
294
+ * bundle update (2026-01-20) ([#2818](https://github.com/ruby/rbs/pull/2818))
295
+ * Ruby 4.0.1 ([#2823](https://github.com/ruby/rbs/pull/2823))
296
+ * [rbs/test] Check type arguments size ([#2809](https://github.com/ruby/rbs/pull/2809))
297
+ * Add tsort to testing dependencies ([#2795](https://github.com/ruby/rbs/pull/2795))
298
+ * Update ruby to 4.0 ([#2776](https://github.com/ruby/rbs/pull/2776))
299
+ * Ruby 4.0.0 preview3 ([#2764](https://github.com/ruby/rbs/pull/2764))
300
+ * Remove test code for bundled gems ([#2760](https://github.com/ruby/rbs/pull/2760))
301
+ * Fix `nil` size `Enumerator` test ([#2749](https://github.com/ruby/rbs/pull/2749))
302
+ * Fix tests for rbs_skip_tests in ruby repo ([#2725](https://github.com/ruby/rbs/pull/2725))
303
+ * Update rdoc to v6.16 ([#2721](https://github.com/ruby/rbs/pull/2721))
304
+ * Run CI with "4.0.0-preview2" ([#2718](https://github.com/ruby/rbs/pull/2718))
305
+ * Minor typo fix ([#2676](https://github.com/ruby/rbs/pull/2676))
306
+ * Add -j option to make ([#2658](https://github.com/ruby/rbs/pull/2658))
307
+ * Allows the use of a path list as RBS_SKIP_TESTS ([#2612](https://github.com/ruby/rbs/pull/2612))
308
+ * Fix clang-format ([#2589](https://github.com/ruby/rbs/pull/2589))
309
+ * Restrict the execution of the valgrind task to when the C code has been modified. ([#2552](https://github.com/ruby/rbs/pull/2552))
310
+ * Set force_ruby_platform for bundler when head ([#2555](https://github.com/ruby/rbs/pull/2555))
311
+ * More skip paths with valgrind ([#2557](https://github.com/ruby/rbs/pull/2557))
312
+ * Run the `Encoding::Converter` test ([#2550](https://github.com/ruby/rbs/pull/2550))
313
+ * Fix CI ([#2527](https://github.com/ruby/rbs/pull/2527))
314
+ * Replace reference with official documentation ([#2453](https://github.com/ruby/rbs/pull/2453))
315
+ * Add clangd integration for improved C extension development ([#2481](https://github.com/ruby/rbs/pull/2481))
316
+ * Setup clang format for C code ([#2437](https://github.com/ruby/rbs/pull/2437))
317
+ * Add `super` calls in `setup` ([#2484](https://github.com/ruby/rbs/pull/2484))
318
+ * Suppress warnings during testing ([#2370](https://github.com/ruby/rbs/pull/2370))
319
+ * Update rubocop-on-rbs and use plugins ([#2345](https://github.com/ruby/rbs/pull/2345))
320
+ * Fix error at Ruby CI ([#2445](https://github.com/ruby/rbs/pull/2445))
321
+ * Use `erb` instead of `set` for load path testing ([#2439](https://github.com/ruby/rbs/pull/2439))
322
+ * Skip loading ruby_memcheck ([#2349](https://github.com/ruby/rbs/pull/2349))
323
+ * Forcibly uninstall gems even if there is a dependency problem. ([#2346](https://github.com/ruby/rbs/pull/2346))
324
+
325
+ ## 3.10.4 (2026-03-25)
326
+
327
+ ### Library changes
328
+
329
+ #### rbs collection
330
+
331
+ * [Backport] [3.10] Fix: pathname not written to lockfile. ([#2896](https://github.com/ruby/rbs/pull/2896))
332
+
333
+ ## 3.10.3 (2026-01-30)
334
+
335
+ This is a minor fix around the dependency to `tsort`.
336
+
337
+ ## Pull Requests
338
+
339
+ * Merge pull request #2601 from ima1zumi/add-tsort-dep ([#2834](https://github.com/ruby/rbs/pull/2834))
340
+
341
+ ## 3.10.2 (2026-01-07)
342
+
343
+ This is a minor fix on arena allocator alignment.
344
+
345
+ ### Pull Requests
346
+
347
+ * Merge pull request #2788 from ruby/fix-alloc-alignment ([#2790](https://github.com/ruby/rbs/pull/2790))
348
+
349
+ ## 3.10.1 (2026-01-07)
350
+
351
+ This is a follow-up release for Ruby 4.0.0 with documentation update based on Ruby 4.0.0, and bugfixes related to set/pathname library loading.
352
+
353
+ ### Pull Requests
354
+
355
+ * Merge pull request #2777 from ksss/pathname-ext ([#2786](https://github.com/ruby/rbs/pull/2786))
356
+ * Ruby 4.0.0 backports ([#2785](https://github.com/ruby/rbs/pull/2785))
357
+ * [Backport] Fix subtraction of civar ([#2783](https://github.com/ruby/rbs/pull/2783))
358
+ * [Backport] Update ruby to 4.0 ([#2778](https://github.com/ruby/rbs/pull/2778))
359
+
360
+ ## 3.10.0 (2025-12-23)
361
+
362
+ RBS 3.10.0 ships with a pure C parser implementation, signature updates for Ruby 4.0, and various bug fixes.
363
+
364
+ ### Pure C parser implementation
365
+
366
+ The new parser implementation was announced at [RubyKaigi 2025](https://rubykaigi.org/2025/presentations/amomchilov.html) and is finally shipped as a RubyGem!
367
+
368
+ The new parser is faster than the one in 3.9 and is portable — it is independent of the Ruby runtime and is used to implement Sorbet’s RBS support.
369
+
370
+ ### Type definition of bundled gems
371
+
372
+ The type definitions of `cgi` have been moved to [gem_rbs_collection](https://github.com/ruby/gem_rbs_collection/tree/main/gems/cgi), as it has been migrated to a bundled gem in Ruby 4.0
373
+
374
+ `cgi-escape` has been added to `stdlib`. You may need to declare a dependency on `cgi-escape` in your `manifest.yaml`, add `-r cgi-escape` to your command line, or update your type checker configuration.
375
+
376
+ ```yaml
377
+ dependencies:
378
+ - name: cgi-escape
379
+ ```
380
+
381
+ The type definitions for `pathname` have also been moved from `stdlib` to `core`, as it is now implemented as part of the core library.
382
+
383
+ ### Pull Requests
384
+
385
+ * [Backport] Support rdoc v7 ([#2770](https://github.com/ruby/rbs/pull/2770))
386
+ * [Backport] Check tuple type length ([#2766](https://github.com/ruby/rbs/pull/2766))
387
+ * Backport update to 4.0.0-preview3 ([#2768](https://github.com/ruby/rbs/pull/2768))
388
+ * [Backport] Remove test code for bundled gems ([#2762](https://github.com/ruby/rbs/pull/2762))
389
+ * Merge pull request #2761 from ruby/update-minitest ([#2763](https://github.com/ruby/rbs/pull/2763))
390
+ * [Backport] Support BigDecimal v4 ([#2759](https://github.com/ruby/rbs/pull/2759))
391
+ * Parser/lexer backports ([#2756](https://github.com/ruby/rbs/pull/2756))
392
+ * Merge pull request #2753 from ruby/delete-printf ([#2754](https://github.com/ruby/rbs/pull/2754))
393
+ * Backports ([#2751](https://github.com/ruby/rbs/pull/2751))
394
+ * Merge pull request #2728 from ruby/cgi ([#2747](https://github.com/ruby/rbs/pull/2747))
395
+ * Merge pull request #2729 from ruby/rbs-assert ([#2748](https://github.com/ruby/rbs/pull/2748))
396
+ * Merge pull request #2749 from ruby/fix-test ([#2750](https://github.com/ruby/rbs/pull/2750))
397
+ * Backport RBS file updates ([#2742](https://github.com/ruby/rbs/pull/2742))
398
+ * Backport JSON PRs ([#2740](https://github.com/ruby/rbs/pull/2740))
399
+ * Merge pull request #2718 from ruby/ruby-4 ([#2741](https://github.com/ruby/rbs/pull/2741))
400
+ * [Backport] Move Pathname to core from stdlib ([#2730](https://github.com/ruby/rbs/pull/2730))
401
+ * Backport rdoc 6.16 ([#2722](https://github.com/ruby/rbs/pull/2722))
402
+ * Backport rdoc support ([#2719](https://github.com/ruby/rbs/pull/2719))
403
+ * Backport "Remove sig for IO#{ready?,nread}" ([#2720](https://github.com/ruby/rbs/pull/2720))
404
+ * Backport more pure C parsers ([#2679](https://github.com/ruby/rbs/pull/2679))
405
+ * Backport module name normalization ([#2673](https://github.com/ruby/rbs/pull/2673))
406
+ * Backport pure-C parser ([#2671](https://github.com/ruby/rbs/pull/2671))
407
+ * Fix test failure ([#2672](https://github.com/ruby/rbs/pull/2672))
408
+
409
+ ## 3.9.5 (2025-09-08)
410
+
411
+ ### Signature updates
412
+
413
+ * Merge pull request #2655 from ruby/silence-string-deprecation ([#2656](https://github.com/ruby/rbs/pull/2656))
414
+
415
+ ### Miscellaneous
416
+
417
+ * Allows the use of a path list as RBS_SKIP_TESTS ([#2641](https://github.com/ruby/rbs/pull/2641))
418
+ * Suppress to GCC warning with multi-line comment ([#2646](https://github.com/ruby/rbs/pull/2646))
419
+ * Backport to 3.9 ([#2487](https://github.com/ruby/rbs/pull/2487))
420
+ * Use erb instead of set for load path testing ([#2468](https://github.com/ruby/rbs/pull/2468))
421
+
422
+ ## 3.9.4 (2025-05-15)
423
+
424
+ ### Miscellaneous
425
+
426
+ * Backport test/CI fixes to 3.9 ([#2487](https://github.com/ruby/rbs/pull/2487))
427
+ * Use erb instead of set for load path testing ([#2468](https://github.com/ruby/rbs/pull/2468))
428
+
429
+ ## 3.9.3 (2025-05-09)
430
+
431
+ ### Miscellaneous
432
+
433
+ * Use erb instead of set for load path testing ([#2468](https://github.com/ruby/rbs/pull/2468))
434
+
435
+ ## 3.9.2 (2025-03-31)
436
+
437
+ ### Library changes
438
+
439
+ * Change `{}` to `{ 0 }` ([#2354](https://github.com/ruby/rbs/pull/2354))
440
+
441
+ ## 3.9.1 (2025-03-24)
442
+
443
+ ### Miscellaneous
444
+
445
+ * `did_you_mean` is a default gem ([#2348](https://github.com/ruby/rbs/pull/2348))
446
+ * Skip loading ruby_memcheck ([#2347](https://github.com/ruby/rbs/pull/2347))
447
+
448
+ ## 3.9.0 (2025-03-18)
449
+
450
+ ### Miscellaneous
451
+
452
+ * Update steep ([#2328](https://github.com/ruby/rbs/pull/2328))
453
+
454
+ ## 3.9.0.pre.2 (2025-03-14)
455
+
456
+ ### Signature updates
457
+
458
+ * `Hash.new` type ([#2323](https://github.com/ruby/rbs/pull/2323))
459
+ * `Module#define_method` ([#2325](https://github.com/ruby/rbs/pull/2325))
460
+ * `Object#define_singleton_method` ([#2324](https://github.com/ruby/rbs/pull/2324))
461
+
462
+ ### Language updates
463
+
464
+ * Fix `define_method` method block self type ([#2325](https://github.com/ruby/rbs/pull/2325))
465
+
466
+ ## 3.9.0.pre.1 (2025-03-11)
467
+
468
+ ### Signature updates
469
+
470
+ * `CGI.escape/unescape_uri_component` ([#2299](https://github.com/ruby/rbs/pull/2299))
471
+ * `Enumerator::Chain` ([#2220](https://github.com/ruby/rbs/pull/2220))
472
+ * `IO.read` ([#2216](https://github.com/ruby/rbs/pull/2216))
473
+ * `IPAddr#netmask` ([#2311](https://github.com/ruby/rbs/pull/2311))
474
+ * `Kernel#gets`, `Kernel#readline`, `Kernel#readlines` ([#2212](https://github.com/ruby/rbs/pull/2212))
475
+ * `Net::HTTP.start` ([#2225](https://github.com/ruby/rbs/pull/2225))
476
+ * `OpenSSL::BN` ([#2267](https://github.com/ruby/rbs/pull/2267))
477
+ * `OpenSSL::PKey::{RSA,DSA,DH}#params` ([#2255](https://github.com/ruby/rbs/pull/2255))
478
+ * `UNIXSocket#send_io`, `UNIXSocket#recv_io` ([#2264](https://github.com/ruby/rbs/pull/2264))
479
+ * `URI.encode/decode_uri_component` ([#2299](https://github.com/ruby/rbs/pull/2299))
480
+ * Rename to reduce top-level interface and type alias ([#2250](https://github.com/ruby/rbs/pull/2250))
481
+
482
+ ### Language updates
483
+
484
+ * Let class/module alias decls, global decls, and constant decls be annotated ([#2302](https://github.com/ruby/rbs/pull/2302))
485
+ * Add `resolve-type-names: false` magic comment ([#2234](https://github.com/ruby/rbs/pull/2234))
486
+
487
+ ### Library changes
488
+
489
+ * Remove unused root variable ([#2307](https://github.com/ruby/rbs/pull/2307))
490
+ * Run Valgrind on CI and fix memory leaks ([#2309](https://github.com/ruby/rbs/pull/2309))
491
+ * Add information for VariableDuplicationError ([#2310](https://github.com/ruby/rbs/pull/2310))
492
+ * Reduce Array object allocation during parsing ([#2304](https://github.com/ruby/rbs/pull/2304))
493
+ * No class variable duplication validation ([#2305](https://github.com/ruby/rbs/pull/2305))
494
+ * Keep annotations during type name resolution ([#2303](https://github.com/ruby/rbs/pull/2303))
495
+ * Fix method annotations ([#2301](https://github.com/ruby/rbs/pull/2301))
496
+ * Fix class variable ([#2300](https://github.com/ruby/rbs/pull/2300))
497
+ * Add bundled gems to alumnus ([#2288](https://github.com/ruby/rbs/pull/2288))
498
+ * Exclude `attr_*` methods from duplicate checks. ([#2294](https://github.com/ruby/rbs/pull/2294))
499
+ * Validate superclass and module-self-type ([#2289](https://github.com/ruby/rbs/pull/2289))
500
+ * Remove case when `rubygems` and `set` ([#2279](https://github.com/ruby/rbs/pull/2279))
501
+ * Check variable duplication ([#2241](https://github.com/ruby/rbs/pull/2241))
502
+ * Validate variable types ([#2237](https://github.com/ruby/rbs/pull/2237))
503
+ * Remove call to `TypeParam#unchecked!` from C parser ([#2256](https://github.com/ruby/rbs/pull/2256))
504
+ * Remove call to `Any#todo!` from C parser ([#2249](https://github.com/ruby/rbs/pull/2249))
505
+ * [rbs/unit_test] Treat nil as a return value ([#2257](https://github.com/ruby/rbs/pull/2257))
506
+
507
+ ### Miscellaneous
508
+
509
+ * Apply rubocop style to RBS ([#2292](https://github.com/ruby/rbs/pull/2292))
510
+ * Eliminate external HTTP requests on test ([#2253](https://github.com/ruby/rbs/pull/2253))
511
+ * Prevent a warning: the block passed to 'map_type_name' .. may be ignored ([#2248](https://github.com/ruby/rbs/pull/2248))
512
+ * Update ruby version for rubocop ([#2251](https://github.com/ruby/rbs/pull/2251))
513
+ * Drop templates from package ([#2214](https://github.com/ruby/rbs/pull/2214))
514
+
515
+ ## 3.8.1 (2024-12-27)
516
+
517
+ ### Signature updates
518
+
519
+ * `Ractor.store_if_absent` ([#2206](https://github.com/ruby/rbs/pull/2206))
520
+ * `Time#iso860t1` ([#2207](https://github.com/ruby/rbs/pull/2207))
521
+ * `Time#xmlschema` ([#2207](https://github.com/ruby/rbs/pull/2207))
522
+
523
+ ### Miscellaneous
524
+
525
+ * Update rubocop-on-rbs ([#2200](https://github.com/ruby/rbs/pull/2200))
526
+ * Update docs based on Ruby 3.4.1 ([#2208](https://github.com/ruby/rbs/pull/2208))
527
+ * Ruby 3.4.1 ([#2206](https://github.com/ruby/rbs/pull/2206))
528
+
529
+ ## 3.8.0 (2024-12-24)
530
+
531
+ ### Signature updates
532
+
533
+ * `Dir.mktmpdir` ([#2158](https://github.com/ruby/rbs/pull/2158))
534
+ * `File.join` ([#2158](https://github.com/ruby/rbs/pull/2158))
535
+ * `IO#each_line` ([#2151](https://github.com/ruby/rbs/pull/2151))
536
+ * `Kernel#readlines` ([#2151](https://github.com/ruby/rbs/pull/2151))
537
+ * `Ractor.store_if_absent` ([#2198](https://github.com/ruby/rbs/pull/2198))
538
+ * Update docs as of 2024-12-24, 16:13 JST ([#2193](https://github.com/ruby/rbs/pull/2193))
539
+
540
+ ### Library changes
541
+
542
+ * Adjust capacity of location children ([#2197](https://github.com/ruby/rbs/pull/2197))
543
+ * Should validate self-type on Proc ([#2192](https://github.com/ruby/rbs/pull/2192))
544
+
545
+ ## 3.8.0.pre.1 (2024-12-19)
546
+
547
+ ### Signature updates
548
+
549
+ * `RubyVM::AbstractSyntaxTree::Location` ([#2189](https://github.com/ruby/rbs/pull/2189))
550
+ * `_JsonWrite#flush` ([#2134](https://github.com/ruby/rbs/pull/2134))
551
+ * `Array#fetch_values` ([#2189](https://github.com/ruby/rbs/pull/2189))
552
+ * `Array#to_csv` ([#2099](https://github.com/ruby/rbs/pull/2099))
553
+ * `Exception#set_backtrace` ([#2189](https://github.com/ruby/rbs/pull/2189))
554
+ * `Fiber#raise` ([#2189](https://github.com/ruby/rbs/pull/2189))
555
+ * `GC.config` ([#2189](https://github.com/ruby/rbs/pull/2189))
556
+ * `Hash.new` ([#2189](https://github.com/ruby/rbs/pull/2189))
557
+ * `Kernel#raise` ([#2189](https://github.com/ruby/rbs/pull/2189))
558
+ * `MatchData#bytebegin` ([#2189](https://github.com/ruby/rbs/pull/2189))
559
+ * `MatchData#byteend` ([#2189](https://github.com/ruby/rbs/pull/2189))
560
+ * `Pathname#mkpath` ([#2048](https://github.com/ruby/rbs/pull/2048))
561
+ * `Pathname#rmtree` ([#2048](https://github.com/ruby/rbs/pull/2048))
562
+ * `Ractor._require` ([#2189](https://github.com/ruby/rbs/pull/2189))
563
+ * `Ractor.[]` ([#2189](https://github.com/ruby/rbs/pull/2189))
564
+ * `Ractor.[]=` ([#2189](https://github.com/ruby/rbs/pull/2189))
565
+ * `Ractor.main?` ([#2189](https://github.com/ruby/rbs/pull/2189))
566
+ * `Range#step` ([#1958](https://github.com/ruby/rbs/pull/1958))
567
+ * `RubyVM::AbstractSyntaxTree::Node#locations` ([#2189](https://github.com/ruby/rbs/pull/2189))
568
+ * `String#append_as_bytes` ([#2189](https://github.com/ruby/rbs/pull/2189))
569
+ * `String#parse_csv` ([#2099](https://github.com/ruby/rbs/pull/2099))
570
+ * `String#scan` ([#2146](https://github.com/ruby/rbs/pull/2146))
571
+ * `Tempfile.create` ([#2189](https://github.com/ruby/rbs/pull/2189))
572
+ * `Thread#raise` ([#2189](https://github.com/ruby/rbs/pull/2189))
573
+ * `Time#iso8601` ([#2189](https://github.com/ruby/rbs/pull/2189))
574
+ * `Time#xmlschema` ([#2189](https://github.com/ruby/rbs/pull/2189))
575
+ * `Warning.categories` ([#2189](https://github.com/ruby/rbs/pull/2189))
576
+ * `ZStream#finish` ([#2136](https://github.com/ruby/rbs/pull/2136))
577
+ * Generate docs based on ruby 3.4.0-rc1 ([#2183](https://github.com/ruby/rbs/pull/2183))
578
+
579
+ ### Library changes
580
+
581
+ * Deprecate `Kernel#Namespace` ([#2123](https://github.com/ruby/rbs/pull/2123))
582
+ * Fix `missing braces around initializer` warning ([#2180](https://github.com/ruby/rbs/pull/2180))
583
+ * Avoid double name resolution ([#2127](https://github.com/ruby/rbs/pull/2127))
584
+ * Remove forward declarations of local variables ([#2132](https://github.com/ruby/rbs/pull/2132))
585
+ * Designated initializers ([#2131](https://github.com/ruby/rbs/pull/2131))
586
+
587
+ ### Miscellaneous
588
+
589
+ * Update docs with rdoc-6.10.0 ([#2182](https://github.com/ruby/rbs/pull/2182))
590
+ * Update rdoc ([#2160](https://github.com/ruby/rbs/pull/2160))
591
+ * Prepare for ruby 3.4.0 ([#2181](https://github.com/ruby/rbs/pull/2181))
592
+ * Fix typo in `instance` usage example ([#2139](https://github.com/ruby/rbs/pull/2139))
593
+ * Indent `parser_test` code snippets properly ([#2137](https://github.com/ruby/rbs/pull/2137))
594
+ * Bump rbs and steep in /steep ([#2129](https://github.com/ruby/rbs/pull/2129))
595
+ * Un-hardcode repo name in test suite ([#2128](https://github.com/ruby/rbs/pull/2128))
596
+
597
+ ## 3.7.0 (2024-12-05)
598
+
599
+ ### Miscellaneous
600
+
601
+ * bundle update mutex_m ([#2122](https://github.com/ruby/rbs/pull/2122))
602
+
603
+ ## 3.7.0.pre.1 (2024-12-05)
604
+
605
+ ### Signature updates
606
+
607
+ * `CGI.accept_charset` ([#2045](https://github.com/ruby/rbs/pull/2045))
608
+ * `IO#readline`, `IO#readlines` ([#2059](https://github.com/ruby/rbs/pull/2059))
609
+ * `Kernel#proc` ([#2036](https://github.com/ruby/rbs/pull/2036))
610
+ * `Kernel#system` ([#2075](https://github.com/ruby/rbs/pull/2075))
611
+ * `Object#to_yaml` ([#2107](https://github.com/ruby/rbs/pull/2107))
612
+ * `OpenSSL::Digest` ([#2108](https://github.com/ruby/rbs/pull/2108))
613
+ * `OpenSSL.base64digest` ([#2078](https://github.com/ruby/rbs/pull/2078))
614
+ * `Process.detach` ([#2083](https://github.com/ruby/rbs/pull/2083))
615
+
616
+ ### Library changes
617
+
618
+ * Reduce object allocation for record type ([#2118](https://github.com/ruby/rbs/pull/2118))
619
+ * Milestone to graduate stringio from core. ([#2114](https://github.com/ruby/rbs/pull/2114))
620
+ * Mark all internal `parse_` methods as `static` ([#2103](https://github.com/ruby/rbs/pull/2103))
621
+ * Add templating mechanism to automatically generate `.c`/`.h` files ([#2098](https://github.com/ruby/rbs/pull/2098))
622
+ * Remove unused `rbs_unescape_string` declaration ([#2058](https://github.com/ruby/rbs/pull/2058))
623
+ * Fix UntypedFunction does not provide #map_type_name ([#2054](https://github.com/ruby/rbs/pull/2054))
624
+ * Better `instance_eval`/`instance_exec` detection ([#2052](https://github.com/ruby/rbs/pull/2052))
625
+ * Overload annotations ([#2049](https://github.com/ruby/rbs/pull/2049))
626
+
627
+ #### rbs prototype
628
+
629
+ * prototype rb: Fix crashed by self::CONST ([#2079](https://github.com/ruby/rbs/pull/2079))
630
+
631
+ #### rbs collection
632
+
633
+ * mutex_m support ([#2115](https://github.com/ruby/rbs/pull/2115))
634
+
635
+ ### Miscellaneous
636
+
637
+ * Use `File.open` with block ([#2119](https://github.com/ruby/rbs/pull/2119))
638
+ * Compile without activesupport ([#2105](https://github.com/ruby/rbs/pull/2105))
639
+ * docs: Add singleton attribute members to syntax.md ([#2090](https://github.com/ruby/rbs/pull/2090))
640
+ * Bundle update rubocop-on-rbs ([#2094](https://github.com/ruby/rbs/pull/2094))
641
+ * `bundle exec` on windows ([#2101](https://github.com/ruby/rbs/pull/2101))
642
+ * Fix typos ([#2097](https://github.com/ruby/rbs/pull/2097))
643
+ * Bundle update json 2.8.2 ([#2095](https://github.com/ruby/rbs/pull/2095))
644
+ * Skip `rbs` gem validation ([#2084](https://github.com/ruby/rbs/pull/2084))
645
+ * Skip PTY_test with Windows platform ([#2055](https://github.com/ruby/rbs/pull/2055))
646
+ * Randomize stdlib test order to uncover hidden assumptions ([#2043](https://github.com/ruby/rbs/pull/2043))
647
+ * Suppress `inline` is not at beginning of declaration for melt_array ([#2050](https://github.com/ruby/rbs/pull/2050))
648
+ * Skip `mkpath` test with 3.4 ([#2053](https://github.com/ruby/rbs/pull/2053))
649
+
650
+ ## 3.6.1 (2024-10-03)
651
+
652
+ ### Library changes
653
+
654
+ * Mark as ractor-safe ([#2041](https://github.com/ruby/rbs/pull/2041))
655
+
656
+ ### Miscellaneous
657
+
658
+ * Omit IOConsoleTest with Windows platform ([#2044](https://github.com/ruby/rbs/pull/2044))
659
+ * Recover `$stdout` after test ([#2042](https://github.com/ruby/rbs/pull/2042))
660
+
661
+ ## 3.6.0 (2024-09-30)
662
+
663
+ Nothing changed since `3.6.0.pre.3`.
664
+
665
+ ## 3.6.0.pre.3 (2024-09-30)
666
+
667
+ ### Signature updates
668
+
669
+ * `JSON.load_file`, `.load_file!` ([#2031](https://github.com/ruby/rbs/pull/2031))
670
+ * `Module#class_eval`, `Module#module_eval` ([#2029](https://github.com/ruby/rbs/pull/2029))
671
+ * `Open3` ([#2014](https://github.com/ruby/rbs/pull/2014))
672
+ * `RubyVM::InstructionSequence` ([#2027](https://github.com/ruby/rbs/pull/2027))
673
+ * Fixup RBS type definitions with rbs-on-rubocop ([#2023](https://github.com/ruby/rbs/pull/2023))
674
+ * Avoid using `instance`/`class` types in modules ([#2020](https://github.com/ruby/rbs/pull/2020))
675
+
676
+ ### Language updates
677
+
678
+ * Optional type param restriction ([#2030](https://github.com/ruby/rbs/pull/2030))
679
+ * Prohibit `self` type as a generics default ([#2022](https://github.com/ruby/rbs/pull/2022))
680
+ * Allow `self` types in generics default type ([#2021](https://github.com/ruby/rbs/pull/2021))
681
+
682
+ ### Library changes
683
+
684
+ * Add `TypeParamDefaultReferenceError#type_param` ([#2032](https://github.com/ruby/rbs/pull/2032))
685
+
686
+ ## 3.6.0.pre.2 (2024-09-18)
687
+
688
+ ### Signature updates
689
+
690
+ * `Kernel#class` ([#2017](https://github.com/ruby/rbs/pull/2017))
691
+ * `TracePoint#enable` ([#2015](https://github.com/ruby/rbs/pull/2015))
692
+
693
+ ### Miscellaneous
694
+
695
+ * Fix type definition and type errors ([#2016](https://github.com/ruby/rbs/pull/2016))
696
+
697
+ ## 3.6.0.pre.1 (2024-09-17)
698
+
699
+ ### Signature updates
700
+
701
+ * 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))
702
+ * digest ([#1880](https://github.com/ruby/rbs/pull/1880))
703
+ * kconv ([#1857](https://github.com/ruby/rbs/pull/1857))
704
+ * zlib ([#1911](https://github.com/ruby/rbs/pull/1911))
705
+ * `_Each` ([#2006](https://github.com/ruby/rbs/pull/2006))
706
+ * `Array` ([#1921](https://github.com/ruby/rbs/pull/1921))
707
+ * `Enumerable` ([#1921](https://github.com/ruby/rbs/pull/1921))
708
+ * `Enumerator::_Each` ([#2006](https://github.com/ruby/rbs/pull/2006), [#1915](https://github.com/ruby/rbs/pull/1915))
709
+ * `Enumerator` ([#2004](https://github.com/ruby/rbs/pull/2004))
710
+ * `Kernel` ([#1945](https://github.com/ruby/rbs/pull/1945))
711
+ * `Method` ([#1939](https://github.com/ruby/rbs/pull/1939))
712
+ * `Module` ([#1921](https://github.com/ruby/rbs/pull/1921))
713
+ * `Net::HTTPHeader` ([#1932](https://github.com/ruby/rbs/pull/1932))
714
+ * `Proc` ([#1937](https://github.com/ruby/rbs/pull/1937))
715
+ * `Queue` ([#2004](https://github.com/ruby/rbs/pull/2004))
716
+ * `Range` ([#1921](https://github.com/ruby/rbs/pull/1921))
717
+ * `Refinement` ([#1931](https://github.com/ruby/rbs/pull/1931))
718
+ * `Symbol` ([#1930](https://github.com/ruby/rbs/pull/1930))
719
+ * `TracePoint` ([#1943](https://github.com/ruby/rbs/pull/1943))
720
+ * `#rand` ([#2007](https://github.com/ruby/rbs/pull/2007))
721
+ * Use untyped blocks ([#1935](https://github.com/ruby/rbs/pull/1935))
722
+ * Update docs for ruby-3.3.4 ([#1923](https://github.com/ruby/rbs/pull/1923))
723
+ * Update docs for ruby-3.3.3 ([#1889](https://github.com/ruby/rbs/pull/1889))
724
+
725
+ ### Language updates
726
+
727
+ * Fix position for default_type ([#1997](https://github.com/ruby/rbs/pull/1997))
728
+ * Update `syntax.md` ([#1995](https://github.com/ruby/rbs/pull/1995))
729
+ * Improve generics ([#1994](https://github.com/ruby/rbs/pull/1994))
730
+ * Allow alias to module-self-type from module ([#1948](https://github.com/ruby/rbs/pull/1948))
731
+ * Make it a syntax error when the keys of keyword and record are duplicated. ([#1883](https://github.com/ruby/rbs/pull/1883))
732
+
733
+ ### Library changes
734
+
735
+ * Omit unnecessary field from location range ([#1788](https://github.com/ruby/rbs/pull/1788))
736
+ * Handle ISEQs compiled by Prism ([#1983](https://github.com/ruby/rbs/pull/1983))
737
+ * Add AST Visitor ([#1975](https://github.com/ruby/rbs/pull/1975))
738
+ * Make the extension `GC.auto_compact` compatible ([#1971](https://github.com/ruby/rbs/pull/1971))
739
+ * Make `FileFinder` faster by globbing all possible files ([#1965](https://github.com/ruby/rbs/pull/1965))
740
+ * Fix #1905: Fix typo in `UntypedFunction` ([#1906](https://github.com/ruby/rbs/pull/1906))
741
+
742
+ #### rbs prototype
743
+
744
+ * [prototype] Remove redundant access modifier ([#1914](https://github.com/ruby/rbs/pull/1914))
745
+
746
+ ### Miscellaneous
747
+
748
+ * Allow RBS/Style/InitializeReturnType ([#2008](https://github.com/ruby/rbs/pull/2008))
749
+ * docs: An interface can include interfaces only and not modules ([#1996](https://github.com/ruby/rbs/pull/1996))
750
+ * Fix the portability of an external command ([#2001](https://github.com/ruby/rbs/pull/2001))
751
+ * Skip `AbstractSyntaxTree` test with ruby-3.4 ([#2005](https://github.com/ruby/rbs/pull/2005))
752
+ * Fix test ([#1972](https://github.com/ruby/rbs/pull/1972))
753
+ * Use `File.open` instead of `IO.sysopen` ([#1912](https://github.com/ruby/rbs/pull/1912))
754
+
755
+ ## 3.5.3 (2024-08-23)
756
+
757
+ ### Library changes
758
+
759
+ * Backport GC fix PR ([#1977](https://github.com/ruby/rbs/pull/1977))
760
+
761
+ ## 3.5.2 (2024-07-10)
762
+
763
+ ### Library changes
764
+
765
+ * 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))
766
+ * 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))
767
+ * Fix #1905: Fix typo in `UntypedFunction` ([#1906](https://github.com/ruby/rbs/pull/1906), Backported in [#1925](https://github.com/ruby/rbs/pull/1925))
768
+
769
+ ### Miscellaneous
770
+
771
+ * Use `File.open` instead of `IO.sysopen` ([#1913](https://github.com/ruby/rbs/pull/1913))
772
+
773
+ ## 3.5.1 (2024-06-07)
774
+
775
+ ### Library changes
776
+
777
+ * Add explicit dependency on the `logger` gem ([#1865](https://github.com/ruby/rbs/pull/1865))
778
+ * Make c99, c23 compatible ([#1870](https://github.com/ruby/rbs/pull/1870))
779
+
780
+ ### Miscellaneous
781
+
782
+ * Don't try to sign git commits when running tests ([#1867](https://github.com/ruby/rbs/pull/1867))
783
+
784
+ ## 3.5.0 (2024-06-06)
785
+
786
+ ### Signature updates
787
+
788
+ * `net-http` headers ([#1750](https://github.com/ruby/rbs/pull/1750))
789
+ * `CSV.foreach` ([#1738](https://github.com/ruby/rbs/pull/1738))
790
+ * `Enumerator#initialize` ([#1801](https://github.com/ruby/rbs/pull/1801))
791
+ * `Float#divmod`, `Rational#divmod` ([#1868](https://github.com/ruby/rbs/pull/1868))
792
+ * `GC` ([#1530](https://github.com/ruby/rbs/pull/1530))
793
+ * `Integer#pow` ([#1706](https://github.com/ruby/rbs/pull/1706))
794
+ * `Kernel.rand` ([#1783](https://github.com/ruby/rbs/pull/1783))
795
+ * `Kernel#extend` ([#1769](https://github.com/ruby/rbs/pull/1769))
796
+ * `Module#include`, `Module#prepend` ([#1769](https://github.com/ruby/rbs/pull/1769))
797
+ * `Proc#parameters` ([#1819](https://github.com/ruby/rbs/pull/1819))
798
+ * `Range#step` ([#1709](https://github.com/ruby/rbs/pull/1709))
799
+ * `Regexp.union` ([#1809](https://github.com/ruby/rbs/pull/1809))
800
+ * `RubyVM::YJIT.enable` ([#1812](https://github.com/ruby/rbs/pull/1812))
801
+ * `RubyVM::YJIT`, `RubyVM::RJIT` ([#1746](https://github.com/ruby/rbs/pull/1746))
802
+ * `String#bytesplice` ([#1793](https://github.com/ruby/rbs/pull/1793))
803
+ * `String#gsub!` ([#1768](https://github.com/ruby/rbs/pull/1768))
804
+ * `Symbol#=~` ([#1704](https://github.com/ruby/rbs/pull/1704))
805
+ * `Time#initialize` ([#1771](https://github.com/ruby/rbs/pull/1771))
806
+ * `Time#zone` ([#1770](https://github.com/ruby/rbs/pull/1770))
807
+ * `Timeout::ExitException` ([#1803](https://github.com/ruby/rbs/pull/1803))
808
+ * `URI::MailTo` ([#1858](https://github.com/ruby/rbs/pull/1858))
809
+ * Update docs ([#1811](https://github.com/ruby/rbs/pull/1811), [#1699](https://github.com/ruby/rbs/pull/1699))
810
+
811
+ ### Language updates
812
+
813
+ * Fix proc type syntax ([#1807](https://github.com/ruby/rbs/pull/1807))
814
+ * Function types with untyped parameter ([#1806](https://github.com/ruby/rbs/pull/1806))
815
+ * Fix record type ([#1732](https://github.com/ruby/rbs/pull/1732))
816
+ * parser: enable record types with optional fields ([#1717](https://github.com/ruby/rbs/pull/1717))
817
+
818
+ ### Library changes
819
+
820
+ * Drop dependency on `abbrev` ([#1866](https://github.com/ruby/rbs/pull/1866))
821
+ * Fix source display ([#1832](https://github.com/ruby/rbs/pull/1832))
822
+ * Include trivia tokens to lex result ([#1831](https://github.com/ruby/rbs/pull/1831))
823
+ * Implement token list API ([#1829](https://github.com/ruby/rbs/pull/1829))
824
+ * Fix memory leak when ParsingError ([#1830](https://github.com/ruby/rbs/pull/1830))
825
+ * [rbs diff] Fix error when empty manifest.yaml ([#1762](https://github.com/ruby/rbs/pull/1762))
826
+ * Remove deprecated API since RBS v1 ([#1805](https://github.com/ruby/rbs/pull/1805))
827
+ * Use array instead of linked list for rbs location's child ([#1786](https://github.com/ruby/rbs/pull/1786))
828
+ * Fix SEGV with parse negative position ([#1790](https://github.com/ruby/rbs/pull/1790))
829
+ * Add location for attribute ([#1787](https://github.com/ruby/rbs/pull/1787))
830
+ * Always be private ([#1774](https://github.com/ruby/rbs/pull/1774))
831
+ * Prevent resource leak with type/method-type parser when reaching EOF. ([#1742](https://github.com/ruby/rbs/pull/1742))
832
+ * Allow loading RBS from different version of a gem ([#1731](https://github.com/ruby/rbs/pull/1731))
833
+ * Fix method name tag on assertion ([#1705](https://github.com/ruby/rbs/pull/1705))
834
+ * Improve interface check by method parameters ([#1698](https://github.com/ruby/rbs/pull/1698))
835
+
836
+ #### rbs prototype
837
+
838
+ * Fix prototype for ruby-3.4 ([#1760](https://github.com/ruby/rbs/pull/1760))
839
+ * Fix 3.4 `prototype rb` failure ([#1713](https://github.com/ruby/rbs/pull/1713))
840
+ * Add Numeric Node's check for parse rbs ([#1711](https://github.com/ruby/rbs/pull/1711))
841
+
842
+ #### rbs collection
843
+
844
+ * Fix RBS loading precedence ([#1720](https://github.com/ruby/rbs/pull/1720))
845
+ * Refactor Git source by using `git?` method ([#1701](https://github.com/ruby/rbs/pull/1701))
846
+
847
+ ### Miscellaneous
848
+
849
+ * Introduce RaaP for testing of signature ([#1810](https://github.com/ruby/rbs/pull/1810))
850
+ * Revise .gemspec to remove `Gemfile` and `Gemfile.lock` ([#1856](https://github.com/ruby/rbs/pull/1856))
851
+ * Add link to gem_rbs_collection to README ([#1827](https://github.com/ruby/rbs/pull/1827))
852
+ * Remove `Gemfile.lock` from the gem package ([#1823](https://github.com/ruby/rbs/pull/1823))
853
+ * Modify template to use TestHelper ([#1776](https://github.com/ruby/rbs/pull/1776))
854
+ * Should focus on `String.new` not `String#initialize`. ([#1789](https://github.com/ruby/rbs/pull/1789))
855
+ * Make the test suite compatible with `--enable-frozen-string-literal` ([#1767](https://github.com/ruby/rbs/pull/1767))
856
+ * Stop reusing `fd` ([#1752](https://github.com/ruby/rbs/pull/1752))
857
+ * Fix test failures on Ruby 3.4 ([#1734](https://github.com/ruby/rbs/pull/1734))
858
+ * Stop trace object allocations during test ([#1724](https://github.com/ruby/rbs/pull/1724))
859
+ * Fix head test fails ([#1719](https://github.com/ruby/rbs/pull/1719))
860
+
861
+ ## 3.4.4 (2024-02-08)
862
+
863
+ ### Miscellaneous
864
+
865
+ * Backport [#1752](https://github.com/ruby/rbs/pull/1752) ([#1753](https://github.com/ruby/rbs/pull/1753))
866
+
867
+ ## 3.4.3 (2024-01-25)
868
+
869
+ ### Library changes
870
+
871
+ #### rbs collection
872
+
873
+ * Backport [#1731](https://github.com/ruby/rbs/pull/1731) ([#1735](https://github.com/ruby/rbs/pull/1735))
874
+
875
+ ## 3.4.2 (2024-01-19)
876
+
877
+ ### Miscellaneous
878
+
879
+ * Backport [#1724](https://github.com/ruby/rbs/pull/1724) ([#1726](https://github.com/ruby/rbs/pull/1726))
880
+
881
+ ## 3.4.1 (2023-12-26)
882
+
883
+ ### Signature updates
884
+
885
+ * Update embedded RDoc based on ruby-3.3.0 (Backport #1699) ([#1700](https://github.com/ruby/rbs/pull/1700))
886
+
887
+ ## 3.4.0 (2023-12-21)
888
+
889
+ ### Signature updates
890
+
891
+ * minitest's lifecycle hooks ([#1694](https://github.com/ruby/rbs/pull/1694))
892
+ * `IO.popen`, `IO#read` ([#1693](https://github.com/ruby/rbs/pull/1693))
893
+
894
+ ### Library changes
895
+
896
+ * Fix klass name if klass is singleton_class ([#1695](https://github.com/ruby/rbs/pull/1695))
897
+
898
+ ### Miscellaneous
899
+
900
+ * Suppress warnings on testing ([#1691](https://github.com/ruby/rbs/pull/1691))
901
+
902
+ ## 3.4.0.pre.1 (2023-12-19)
903
+
904
+ ### Signature updates
905
+
906
+ * Changes in ruby-3.3 ([#1684](https://github.com/ruby/rbs/pull/1684), [#1674](https://github.com/ruby/rbs/pull/1674))
907
+ * Embedded docs update ([#1689](https://github.com/ruby/rbs/pull/1689), [#1676](https://github.com/ruby/rbs/pull/1676))
908
+ * delegate ([#1677](https://github.com/ruby/rbs/pull/1677))
909
+ * `MatchData` ([#1651](https://github.com/ruby/rbs/pull/1651))
910
+ * `String` ([#1672](https://github.com/ruby/rbs/pull/1672), [#1641](https://github.com/ruby/rbs/pull/1641))
911
+ * `Struct` ([#1621](https://github.com/ruby/rbs/pull/1621))
912
+ * `Warning` categories ([#1576](https://github.com/ruby/rbs/pull/1576))
913
+ * `ConditionVariable#wait` ([#1670](https://github.com/ruby/rbs/pull/1670))
914
+ * `Date.parse` ([#1653](https://github.com/ruby/rbs/pull/1653))
915
+ * `IO#gets` ([#1620](https://github.com/ruby/rbs/pull/1620))
916
+ * `Kernel.Pathname` ([#1681](https://github.com/ruby/rbs/pull/1681))
917
+ * `Resolv::DNS::Resource::Generic.create` ([#1655](https://github.com/ruby/rbs/pull/1655))
918
+ * `Thread#raise` ([#1668](https://github.com/ruby/rbs/pull/1668))
919
+ * Builtin types ([#1680](https://github.com/ruby/rbs/pull/1680), [#1644](https://github.com/ruby/rbs/pull/1644))
920
+
921
+ ### Library changes
922
+
923
+ * Add more details error message for `UnresolvedOverloadingError` ([#1688](https://github.com/ruby/rbs/pull/1688))
924
+ * Add `with_***` helpers ([#1687](https://github.com/ruby/rbs/pull/1687))
925
+ * Fix lexer ([#1685](https://github.com/ruby/rbs/pull/1685))
926
+ * Support `Delegator` object ([#1682](https://github.com/ruby/rbs/pull/1682))
927
+ * Should raise `ParsingError` instead of NoMethodError ([#1675](https://github.com/ruby/rbs/pull/1675))
928
+ * Implement multiple validate ([#1648](https://github.com/ruby/rbs/pull/1648))
929
+ * Add `RBS::UnitTest` modules ([#1660](https://github.com/ruby/rbs/pull/1660))
930
+ * Not cached as it may be replaced ([#1656](https://github.com/ruby/rbs/pull/1656))
931
+ * Should raise `ParsingError` instead of ArgumentError ([#1652](https://github.com/ruby/rbs/pull/1652))
932
+ * Added `WithEnum#but` and `with_range` ([#1649](https://github.com/ruby/rbs/pull/1649))
933
+ * Bugfix; `.respond_to` is no longer used in `Rbs::Test::Errors#inspect_` ([#1650](https://github.com/ruby/rbs/pull/1650))
934
+ * Add `--detail` option to rbs diff ([#1623](https://github.com/ruby/rbs/pull/1623))
935
+ * Fix parse error when quoted required keywords ([#1627](https://github.com/ruby/rbs/pull/1627))
936
+
937
+ #### rbs collection
938
+
939
+ * Fix order for collection sources ([#1659](https://github.com/ruby/rbs/pull/1659))
940
+ * [collection] Ignore directory starting with `_` as version from git source ([#1657](https://github.com/ruby/rbs/pull/1657))
941
+
942
+ ### Miscellaneous
943
+
944
+ * Fix token names in comments ([#1658](https://github.com/ruby/rbs/pull/1658))
945
+ * Small bugfix to have guaranteed print out instance variables ([#1642](https://github.com/ruby/rbs/pull/1642))
946
+ * Fix flaky test ([#1616](https://github.com/ruby/rbs/pull/1616))
947
+ * Update syntax.md ([#1634](https://github.com/ruby/rbs/pull/1634))
948
+ * Add steep typecheck workflow ([#1632](https://github.com/ruby/rbs/pull/1632))
949
+ * Add doc for Generating RBS ([#1617](https://github.com/ruby/rbs/pull/1617))
950
+ * updated test harness utils ([#1600](https://github.com/ruby/rbs/pull/1600))
951
+
952
+ ## 3.3.2 (2023-11-21)
953
+
954
+ ### Miscellaneous
955
+
956
+ * Require `bundler` explicitly for ruby/ruby CI ([#1629](https://github.com/ruby/rbs/pull/1629))
957
+
958
+ ## 3.3.1 (2023-11-21)
959
+
960
+ ### Library changes
961
+
962
+ * Allow to use RBS in symlinked tree ([#1624](https://github.com/ruby/rbs/pull/1624))
963
+ * Should escape if param name include not simple-word ([#1618](https://github.com/ruby/rbs/pull/1618))
964
+
965
+ #### rbs collection
966
+
967
+ * Load Bundler lazily ([#1612](https://github.com/ruby/rbs/pull/1612))
968
+
969
+ ### Miscellaneous
970
+
971
+ * Stop using `bundle` command ([#1619](https://github.com/ruby/rbs/pull/1619))
972
+
973
+ ## 3.3.0 (2023-11-09)
974
+
975
+ ### Library changes
976
+
977
+ * Stop exiting with error when syntax error detected during validation ([#1603](https://github.com/ruby/rbs/pull/1603))
978
+ * [rbs diff] Load dependencies from manifest.yaml ([#1602](https://github.com/ruby/rbs/pull/1602))
979
+ * [rbs diff] Resolve constants name ([#1601](https://github.com/ruby/rbs/pull/1601))
980
+
981
+ ## 3.3.0.pre.2 (2023-11-02)
982
+
983
+ ### Signature updates
984
+
985
+ * net/smtp ([#1560](https://github.com/ruby/rbs/pull/1560))
986
+ * open-uri ([#1592](https://github.com/ruby/rbs/pull/1592))
987
+ * `Set` ([#1595](https://github.com/ruby/rbs/pull/1595))
988
+
989
+ ### Library changes
990
+
991
+ * Fixup validation ([#1596](https://github.com/ruby/rbs/pull/1596))
992
+ * Print type syntax errors instead of raising error ([#1594](https://github.com/ruby/rbs/pull/1594))
993
+
994
+ #### rbs prototype
995
+
996
+ * Fix error when MASGN ([#1593](https://github.com/ruby/rbs/pull/1593))
997
+ * Support cases where `Module#constants` has been redefined ([#1591](https://github.com/ruby/rbs/pull/1591))
998
+ * [prototype runtime] Fix error if direct inherited ([#1590](https://github.com/ruby/rbs/pull/1590))
999
+
1000
+ ## 3.3.0.pre.1 (2023-10-31)
1001
+
1002
+ ### Signature updates
1003
+
1004
+ * json ([#1575](https://github.com/ruby/rbs/pull/1575))
1005
+ * net-protocol ([#1559](https://github.com/ruby/rbs/pull/1559))
1006
+ * pp ([#1545](https://github.com/ruby/rbs/pull/1545))
1007
+ * psych ([#1527](https://github.com/ruby/rbs/pull/1527))
1008
+ * `BasicObject` ([#1506](https://github.com/ruby/rbs/pull/1506))
1009
+ * `ConditionVariable` ([#1468](https://github.com/ruby/rbs/pull/1468))
1010
+ * `Encoding` ([#1510](https://github.com/ruby/rbs/pull/1510))
1011
+ * `Exception` ([#1529](https://github.com/ruby/rbs/pull/1529))
1012
+ * `FalseClass` ([#1478](https://github.com/ruby/rbs/pull/1478), [#1487](https://github.com/ruby/rbs/pull/1487))
1013
+ * `Fiber` ([#1463](https://github.com/ruby/rbs/pull/1463))
1014
+ * `FileTest` ([#1500](https://github.com/ruby/rbs/pull/1500))
1015
+ * `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))
1016
+ * `Marshal` ([#1524](https://github.com/ruby/rbs/pull/1524))
1017
+ * `Math` ([#1533](https://github.com/ruby/rbs/pull/1533))
1018
+ * `Mutex` ([#1468](https://github.com/ruby/rbs/pull/1468))
1019
+ * `NilClass` ([#1478](https://github.com/ruby/rbs/pull/1478), [#1487](https://github.com/ruby/rbs/pull/1487))
1020
+ * `Object` ([#1504](https://github.com/ruby/rbs/pull/1504))
1021
+ * `Queue` ([#1468](https://github.com/ruby/rbs/pull/1468))
1022
+ * `RbConfig` ([#1534](https://github.com/ruby/rbs/pull/1534))
1023
+ * `Signal` ([#1512](https://github.com/ruby/rbs/pull/1512))
1024
+ * `SizedQueue` ([#1468](https://github.com/ruby/rbs/pull/1468))
1025
+ * `ThreadGroup` ([#1509](https://github.com/ruby/rbs/pull/1509))
1026
+ * `TrueClass` ([#1478](https://github.com/ruby/rbs/pull/1478), [#1487](https://github.com/ruby/rbs/pull/1487))
1027
+ * `Warning` ([#1477](https://github.com/ruby/rbs/pull/1477))
1028
+ * `Enumerator.produce` ([#1516](https://github.com/ruby/rbs/pull/1516))
1029
+ * `Module.define_method` ([#1557](https://github.com/ruby/rbs/pull/1557))
1030
+ * `URI.join` ([#1580](https://github.com/ruby/rbs/pull/1580))
1031
+ * `YAML.unsafe_load` ([#1528](https://github.com/ruby/rbs/pull/1528))
1032
+ * `builtin.rbs`([#1455](https://github.com/ruby/rbs/pull/1455), [#1469](https://github.com/ruby/rbs/pull/1469))
1033
+ * `constants.rbs` ([#1531](https://github.com/ruby/rbs/pull/1531))
1034
+ * `::interned` ([#1499](https://github.com/ruby/rbs/pull/1499), [#1488](https://github.com/ruby/rbs/pull/1488))
1035
+
1036
+ ### Language updates
1037
+
1038
+ * Add `__todo__` type ([#1520](https://github.com/ruby/rbs/pull/1520))
1039
+
1040
+ ### Library changes
1041
+
1042
+ * Colored diff ([#1589](https://github.com/ruby/rbs/pull/1589))
1043
+ * Fix the issue where ::array[T] would be interpreted as ::array, and type mismatch ([#1491](https://github.com/ruby/rbs/pull/1491))
1044
+ * Add `Abbrev` to runtime dependency ([#1573](https://github.com/ruby/rbs/pull/1573))
1045
+ * Avoid an error when parsing files including SyntaxError ([#1574](https://github.com/ruby/rbs/pull/1574))
1046
+ * Implement rbs diff command ([#1459](https://github.com/ruby/rbs/pull/1459))
1047
+ * Add another type syntax validation ([#1566](https://github.com/ruby/rbs/pull/1566))
1048
+ * Mark global variables ([#1551](https://github.com/ruby/rbs/pull/1551))
1049
+ * Show location of type by method command ([#1537](https://github.com/ruby/rbs/pull/1537))
1050
+ * Make alias and interface names absolute ([#1502](https://github.com/ruby/rbs/pull/1502))
1051
+ * Better record type format ([#1501](https://github.com/ruby/rbs/pull/1501))
1052
+ * Should keep escape of alias and attr family ([#1486](https://github.com/ruby/rbs/pull/1486))
1053
+ * Fix error when undefined interface or alias ([#1465](https://github.com/ruby/rbs/pull/1465))
1054
+
1055
+ #### rbs prototype
1056
+
1057
+ * [prototype runtime --todo] Consider accessibility mismatch ([#1539](https://github.com/ruby/rbs/pull/1539))
1058
+ * Better support for inherited class of `Struct` or `Data` by prototype runtime ([#1571](https://github.com/ruby/rbs/pull/1571))
1059
+ * prototype rb: Ignore ITER (method call with block) ([#1562](https://github.com/ruby/rbs/pull/1562))
1060
+ * [prototype runtime] Add --autoload option ([#1561](https://github.com/ruby/rbs/pull/1561))
1061
+ * Implement todo option ([#1470](https://github.com/ruby/rbs/pull/1470))
1062
+ * [prototype runtime] Fix error when constant is a BasicObject instance. ([#1485](https://github.com/ruby/rbs/pull/1485))
1063
+ * [prototype runtime] Const name should be absolute ([#1490](https://github.com/ruby/rbs/pull/1490))
1064
+ * [prototype runtime] Optimize performance ([#1495](https://github.com/ruby/rbs/pull/1495))
1065
+ * [prototype runtime] Fix error when output Object constants ([#1472](https://github.com/ruby/rbs/pull/1472))
1066
+ * [prototype runtime] Support prepend mixin ([#1460](https://github.com/ruby/rbs/pull/1460))
1067
+ * [prototype runtime] Avoid alias for methods defined in another module ([#1457](https://github.com/ruby/rbs/pull/1457))
1068
+
1069
+ #### rbs collection
1070
+
1071
+ * [Collection] Simple colorize collection text like Bundler ([#1558](https://github.com/ruby/rbs/pull/1558))
1072
+ * Delete `sources` section from lockfile ([#1544](https://github.com/ruby/rbs/pull/1544))
1073
+
1074
+ ### Miscellaneous
1075
+
1076
+ * Add in with_XXX methods ([#1492](https://github.com/ruby/rbs/pull/1492))
1077
+ * Updated binding to use modern kernel tests ([#1507](https://github.com/ruby/rbs/pull/1507))
1078
+ * Remove all non-required methods from testing types ([#1541](https://github.com/ruby/rbs/pull/1541))
1079
+ * Add `assert_type` assertion to confirm if the value has a type ([#1532](https://github.com/ruby/rbs/pull/1532))
1080
+ * Add `#assert_const_type` and guide to use type assertions ([#1514](https://github.com/ruby/rbs/pull/1514))
1081
+ * Improve skip test message ([#1476](https://github.com/ruby/rbs/pull/1476))
1082
+ * Type check ([#1467](https://github.com/ruby/rbs/pull/1467))
1083
+ * Type check RDoc related Ruby code ([#1466](https://github.com/ruby/rbs/pull/1466))
1084
+ * Fix CI failure ([#1464](https://github.com/ruby/rbs/pull/1464))
1085
+
1086
+ ## 3.2.2 (2023-09-28)
1087
+
1088
+ ### Library changes
1089
+
1090
+ * Mark global variables ([\#1552](https://github.com/ruby/rbs/pull/1552), Backport [\#1551](https://github.com/ruby/rbs/pull/1551))
1091
+
1092
+ ## 3.2.1 (2023-08-29)
1093
+
1094
+ ### Signature updates
1095
+
1096
+ * `Fiber` (Backport [#1463](https://github.com/ruby/rbs/pull/1463))
1097
+
1098
+ ### Library changes
1099
+
1100
+ * Fix error when undefined interface or alias (Backport [#1465](https://github.com/ruby/rbs/pull/1465))
1101
+
1102
+ ### Miscellaneous
1103
+
1104
+ * Improve skip test message (Backport [#1476](https://github.com/ruby/rbs/pull/1476))
1105
+ * Fix CI failure (Backport [#1464](https://github.com/ruby/rbs/pull/1464))
1106
+
1107
+ ## 3.2.0 (2023-08-22)
1108
+
1109
+ ### Signature updates
1110
+
1111
+ * `Binding` ([#1451](https://github.com/ruby/rbs/pull/1451))
1112
+ * `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))
1113
+ * `Errno` ([#1450](https://github.com/ruby/rbs/pull/1450))
1114
+
1115
+ ### Library changes
1116
+
1117
+ #### rbs collection
1118
+
1119
+ * Fix LockfileGenerator crashes if failed to get deps for locked source ([#1413](https://github.com/ruby/rbs/pull/1413))
1120
+
1121
+ ## 3.2.0.pre.1 (2023-08-18)
1122
+
1123
+ ### Signature updates
1124
+
1125
+ * observable ([#1424](https://github.com/ruby/rbs/pull/1424))
1126
+ * uri ([#1371](https://github.com/ruby/rbs/pull/1371))
1127
+ * zlib ([#1389](https://github.com/ruby/rbs/pull/1389))
1128
+ * `IO` ([#1399](https://github.com/ruby/rbs/pull/1399))
1129
+ * `::DATA` ([#1395](https://github.com/ruby/rbs/pull/1395))
1130
+ * `$DEBUG` ([#1427](https://github.com/ruby/rbs/pull/1427))
1131
+ * `ConditionVariable#wait` ([#1397](https://github.com/ruby/rbs/pull/1397))
1132
+ * `Kernel::exit!` ([#1396](https://github.com/ruby/rbs/pull/1396))
1133
+ * `Kernel#exec` ([#1368](https://github.com/ruby/rbs/pull/1368))
1134
+ * `Kernel#p`, `Kernel#pp` ([#1342](https://github.com/ruby/rbs/pull/1342))
1135
+ * `Logger.new` ([#1423](https://github.com/ruby/rbs/pull/1423))
1136
+ * `Module` ([#1321](https://github.com/ruby/rbs/pull/1321))
1137
+ * `Object#define_singleton_method` ([#1431](https://github.com/ruby/rbs/pull/1431))
1138
+ * `Object#enum_for` ([#1327](https://github.com/ruby/rbs/pull/1327))
1139
+ * `StringIO#truncate` ([#1425](https://github.com/ruby/rbs/pull/1425))
1140
+ * `Thread#raise` ([#1426](https://github.com/ruby/rbs/pull/1426))
1141
+ * `Time#round`, `Time#floor`, `Time#ceil` ([#1337](https://github.com/ruby/rbs/pull/1337))
1142
+ * Remove `TRUE`, `FALSE`, and `NIL` constants ([#1432](https://github.com/ruby/rbs/pull/1432))
1143
+ * Updated builtin.rbs's interfaces ([#1429](https://github.com/ruby/rbs/pull/1429))
1144
+ * Convert `| nil` to `?` in global_variables.rbs ([#1430](https://github.com/ruby/rbs/pull/1430))
1145
+ * Remove references to the transient heap ([#1374](https://github.com/ruby/rbs/pull/1374))
1146
+
1147
+ ### Library changes
1148
+
1149
+ * subtract: Remove RBS file if the subtracted definition is empty ([#1385](https://github.com/ruby/rbs/pull/1385))
1150
+ * subtract: Filter redundant access modifiers ([#1384](https://github.com/ruby/rbs/pull/1384))
1151
+ * Fix module alias normalizations ([#1393](https://github.com/ruby/rbs/pull/1393))
1152
+ * Reduce memory allocation on TypeName#initialize ([#1363](https://github.com/ruby/rbs/pull/1363))
1153
+ * Fix a type error in FileFinder ([#1326](https://github.com/ruby/rbs/pull/1326))
1154
+ * Add signatures about DetailedMessage ([#1323](https://github.com/ruby/rbs/pull/1323))
1155
+ * Make TypeNameResolver more compatible with Ruby ([#1373](https://github.com/ruby/rbs/pull/1373))
1156
+ * Drop support of Ruby 2.x ([#1364](https://github.com/ruby/rbs/pull/1364))
1157
+ * Print detailed_message on parse command ([#1329](https://github.com/ruby/rbs/pull/1329))
1158
+ * Relax rdoc version requirement ([#1333](https://github.com/ruby/rbs/pull/1333))
1159
+ * Support keyword argument to #detailed_message ([#1328](https://github.com/ruby/rbs/pull/1328))
1160
+
1161
+ #### rbs prototype
1162
+
1163
+ * Avoid to generate anonymous or internal module ([#1421](https://github.com/ruby/rbs/pull/1421))
1164
+ * Fix type name for prototype rbi ([#1386](https://github.com/ruby/rbs/pull/1386))
1165
+ * Support type params for known signatures ([#1408](https://github.com/ruby/rbs/pull/1408))
1166
+ * Super class should be absolute paths. ([#1415](https://github.com/ruby/rbs/pull/1415))
1167
+ * prototype rb: Fix a crash by "include foo" ([#1419](https://github.com/ruby/rbs/pull/1419))
1168
+ * Add `--outline` option to `prototype runtime` to skip generating method definition ([#1404](https://github.com/ruby/rbs/pull/1404))
1169
+ * [rbs prototype] Follow up ivar/cvar feature ([#1361](https://github.com/ruby/rbs/pull/1361))
1170
+ * prototype rb: Extract instance variables and class variables ([#1343](https://github.com/ruby/rbs/pull/1343))
1171
+
1172
+ #### rbs collection
1173
+
1174
+ * Print warning when specified gem not found ([#1367](https://github.com/ruby/rbs/pull/1367))
1175
+ * Generate gem specific sources in lockfile ([#1402](https://github.com/ruby/rbs/pull/1402))
1176
+ * Spec may be missing when `rbs_collection.yaml` declares dependency ([#1378](https://github.com/ruby/rbs/pull/1378))
1177
+
1178
+ ### Miscellaneous
1179
+
1180
+ * Remove ruby-lsp && bundle update --bundler ([#1420](https://github.com/ruby/rbs/pull/1420))
1181
+ * Delete all remaining set-related descriptions. ([#1324](https://github.com/ruby/rbs/pull/1324))
1182
+ * Add customized test runner to accept minitest options ([#1392](https://github.com/ruby/rbs/pull/1392))
1183
+ * Specify `rbs` syntax to code snippets in Markdown files ([#1366](https://github.com/ruby/rbs/pull/1366))
1184
+ * Fix typo in parser.rbs ([#1352](https://github.com/ruby/rbs/pull/1352))
1185
+ * Fix broken CI ([#1353](https://github.com/ruby/rbs/pull/1353))
1186
+ * Handle connection error with Resolv_test.rb ([#1356](https://github.com/ruby/rbs/pull/1356))
1187
+ * Removed Prime signature and tests ([#1355](https://github.com/ruby/rbs/pull/1355))
1188
+
1189
+ ## 3.1.3 (2023-07-31)
1190
+
1191
+ ### Library changes
1192
+
1193
+ #### rbs collection
1194
+
1195
+ * Generate gem specific sources in lockfile (Backport [#1402](https://github.com/ruby/rbs/pull/1402))
1196
+
1197
+ ## 3.1.2 (2023-07-27)
1198
+
1199
+ ⚠️ 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)).
1200
+
1201
+ ### Library changes
1202
+
1203
+ * Make `TypeNameResolver` more compatible with Ruby (Backport [#1373](https://github.com/ruby/rbs/pull/1373))
1204
+ * Fix module alias normalizations (Backport [#1393](https://github.com/ruby/rbs/pull/1393))
1205
+
1206
+ ## 3.1.1 (2023-07-18)
1207
+
1208
+ ### Signature updates
1209
+
1210
+ * Removed `GC.verify_transient_heap_internal_consistency` (Backport [#1374](https://github.com/ruby/rbs/pull/1374))
1211
+
1212
+ ### Library changes
1213
+
1214
+ * Relax rdoc version requirement in RDoc plugin (Backport [#1333](https://github.com/ruby/rbs/pull/1333))
1215
+
1216
+ #### rbs collection
1217
+
1218
+ * Spec may be missing when rbs_collection.yaml declares dependency (Backport [#1378](https://github.com/ruby/rbs/pull/1378))
1219
+
1220
+ ### Miscellaneous
1221
+
1222
+ * Handle connection error with Resolv_test.rb (Backport [#1356](https://github.com/ruby/rbs/pull/1356))
1223
+ * Fix broken CI (Backport [#1353](https://github.com/ruby/rbs/pull/1353))
1224
+
1225
+ ## 3.1.0 (2023-04-26)
1226
+
1227
+ ### Signature updates
1228
+
1229
+ * `Module#attr_*` methods ([#1300](https://github.com/ruby/rbs/pull/1300))
1230
+ * `Object#define_singleton_method` ([#1299](https://github.com/ruby/rbs/pull/1299))
1231
+ * `String#scan` ([#1297](https://github.com/ruby/rbs/pull/1297))
1232
+ * Removed `Gem.datadir` ([#1273](https://github.com/ruby/rbs/pull/1273))
1233
+
1234
+ ### Language updates
1235
+
1236
+ ### Library changes
1237
+
1238
+ * Use fenced code block instead of indented one in .rbs files ([#1312](https://github.com/ruby/rbs/pull/1312))
1239
+ * Fix single use clause `:type_name` location ([#1307](https://github.com/ruby/rbs/pull/1307))
1240
+ * Fix `InvalidOverloadMethodError` on overloading extended method ([#1294](https://github.com/ruby/rbs/pull/1294))
1241
+ * Fix super class of `NoTypeFoundError` from `BaseError` to `DefinitionError` ([#1290](https://github.com/ruby/rbs/pull/1290))
1242
+ * Support `#detailed_message` for `NonregularTypeAliasError`, `CyclicTypeParameterBound`, `InconsistentClassModuleAliasError` and `CyclicClassAliasDefinitionError` ([#1289](https://github.com/ruby/rbs/pull/1289))
1243
+ * Implement `rbs subtract` command ([#1287](https://github.com/ruby/rbs/pull/1287))
1244
+ * Support `#detailed_message` for `InvalidVarianceAnnotationError`, `RecursiveAliasDefinitionError`, `MixinClassError` and `RecursiveTypeAliasError` ([#1285](https://github.com/ruby/rbs/pull/1285))
1245
+ * Support `#detailed_message` for `NoTypeError`, `InheritModuleError`, `NoSelfTypeFoundError` and `NoMixinFoundError` ([#1280](https://github.com/ruby/rbs/pull/1280))
1246
+ * Validate duplicate type aliases ([#1279](https://github.com/ruby/rbs/pull/1279))
1247
+ * Add `-e`, `--type`, and `--method-type` options to `rbs parse` ([#1252](https://github.com/ruby/rbs/pull/1252))
1248
+
1249
+ #### rbs prototype
1250
+
1251
+ * Convert `include` in `class << self` to `extend` by `prototype rb` ([#1255](https://github.com/ruby/rbs/pull/1255))
1252
+
1253
+ #### rbs collection
1254
+
1255
+ * Skip loading `#gemspec` gems via RBS collection ([#1319](https://github.com/ruby/rbs/pull/1319))
1256
+
1257
+ ### Miscellaneous
1258
+
1259
+ * Run `bundle install` automatically in `bin/steep` ([#1308](https://github.com/ruby/rbs/pull/1308))
1260
+ * Fix warnings ([#1314](https://github.com/ruby/rbs/pull/1314))
1261
+
1262
+ ## 3.0.4 (2023-03-13)
1263
+
1264
+ ### Library changes
1265
+
1266
+ * Add missing implementation to support class/module alias ([#1271](https://github.com/ruby/rbs/pull/1271))
1267
+
1268
+ ## 3.0.3 (2023-03-07)
1269
+
1270
+ ### Library changes
1271
+
1272
+ * Fix `DefinitionBuilder` ([\#1268](https://github.com/ruby/rbs/pull/1268))
1273
+
1274
+ #### rbs collection
1275
+
1276
+ * Skip dependencies not included in `Gemfile.lock` ([\#1266](https://github.com/ruby/rbs/pull/1266))
1277
+
1278
+ ### Miscellaneous
1279
+
1280
+ * Skip RBS validation on Ruby CI ([\#1264](https://github.com/ruby/rbs/pull/1264), [\#1263](https://github.com/ruby/rbs/pull/1263))
1281
+
1282
+ ## 3.0.2 (2023-03-01)
1283
+
1284
+ ### Library changes
1285
+
1286
+ * Delete `RubyVM::AbstractSyntaxTree` stub type definition ([#1259](https://github.com/ruby/rbs/pull/1259))
1287
+
1288
+ ## 3.0.1 (2023-02-27)
1289
+
1290
+ ### Library changes
1291
+
1292
+ * Ignore `set` library on loading ([#1251](https://github.com/ruby/rbs/pull/1251))
1293
+
1294
+ ## 3.0.0 (2023-02-22)
1295
+
1296
+ Read [the release note](https://github.com/ruby/rbs/wiki/Release-Note-3.0) for the overview of the changes.
1297
+
1298
+ ### Signature updates
1299
+
1300
+ * 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))
1301
+ * Ruby 3.2 stdlib updates ([#1240](https://github.com/ruby/rbs/pull/1240))
1302
+ * Ruby 3.2 incompatibilities ([#1241](https://github.com/ruby/rbs/pull/1241))
1303
+ * ripper ([#1193](https://github.com/ruby/rbs/pull/1193))
1304
+ * `RubyVM::AbstractSyntaxTree` ([#1189](https://github.com/ruby/rbs/pull/1189))
1305
+ * `Array#zip` ([#1232](https://github.com/ruby/rbs/pull/1232))
1306
+ * `Enumerable#zip` ([#1232](https://github.com/ruby/rbs/pull/1232))
1307
+ * `Module#attr_*` ([#1218](https://github.com/ruby/rbs/pull/1218), [#1229](https://github.com/ruby/rbs/pull/1229))
1308
+ * `Regexp.new` ([#1237](https://github.com/ruby/rbs/pull/1237))
1309
+ * `Regexp#=~` ([#1195](https://github.com/ruby/rbs/pull/1195))
1310
+ * `Socket.new` ([#1185](https://github.com/ruby/rbs/pull/1185))
1311
+ * `Object::name` ([#1204](https://github.com/ruby/rbs/pull/1204))
1312
+ * `_ToProc#to_proc` ([#1223](https://github.com/ruby/rbs/pull/1223))
1313
+ * Add `implicitly-returns-nil` annotations ([#1226](https://github.com/ruby/rbs/pull/1226))
1314
+
1315
+ ### Language updates
1316
+
1317
+ #### Class/module alias declaration
1318
+
1319
+ * Spec: https://hackmd.io/SAE7AGD6SMSJFnYiR2M5-Q?view
1320
+ * Pull requests: [#1219](https://github.com/ruby/rbs/pull/1219), [#1220](https://github.com/ruby/rbs/pull/1220)
1321
+
1322
+ #### `use` directives
1323
+
1324
+ * Spec: https://hackmd.io/pQehT1u1RfSj6lBcdgW8hg
1325
+ * 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)
1326
+
1327
+ #### Per-overload annotations
1328
+
1329
+ * Pull requests: [#1174](https://github.com/ruby/rbs/pull/1174)
1330
+
1331
+ ### Library changes
1332
+
1333
+ * `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))
1334
+ * Add "Expected one argument." to `rbs ancestors` command ([#1245](https://github.com/ruby/rbs/pull/1245))
1335
+ * Implement `#detailed_message` for `ParsingError` ([#1166](https://github.com/ruby/rbs/pull/1166))
1336
+ * Support interface in class/module for `Sorter` ([#1191](https://github.com/ruby/rbs/pull/1191))
1337
+ * Use `-std=gnu99` instead of `-std=c99` ([#973](https://github.com/ruby/rbs/pull/973))
1338
+ * Add `rbs_` prefix to `skip` function ([#1186](https://github.com/ruby/rbs/pull/1186))
1339
+ * Better method definition resolution for overload/mixin combination ([#1199](https://github.com/ruby/rbs/pull/1199))
1340
+ * Escaping for keywords is no longer necessary ([#1178](https://github.com/ruby/rbs/pull/1178))
1341
+ * Fix super-class location ([#1172](https://github.com/ruby/rbs/pull/1172))
1342
+
1343
+ #### rbs prototype
1344
+
1345
+ * Introduce new heuristics for block types ([#1180](https://github.com/ruby/rbs/pull/1180))
1346
+
1347
+ #### rbs collection
1348
+
1349
+ * Install only *library* dependencies ([#1222](https://github.com/ruby/rbs/pull/1222), [#1228](https://github.com/ruby/rbs/pull/1228))
1350
+ * Add *local source* ([#854](https://github.com/ruby/rbs/pull/854))
1351
+ * Refactor collection ([#1149](https://github.com/ruby/rbs/pull/1149))
1352
+ * Let `#resolved_revision` return the last fetched commit ([#1215](https://github.com/ruby/rbs/pull/1215))
1353
+
1354
+ ### Miscellaneous
1355
+
1356
+ * Update `syntax.md` ([#1243](https://github.com/ruby/rbs/pull/1243))
1357
+ * Add link to `RBS by Example` to `README.md` [#1225](https://github.com/ruby/rbs/pull/1225)
1358
+ * 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))
1359
+ * Remove `steep/*` files from `.gem` ([#1214](https://github.com/ruby/rbs/pull/1214), [#1216](https://github.com/ruby/rbs/pull/1216))
1360
+
1361
+ ## 2.8.4 (2023-01-20)
1362
+
1363
+ ### Miscellaneous
1364
+
1365
+ * Make `rake stdlib_test` run with single process (Backport [#1207](https://github.com/ruby/rbs/pull/1207), [#1211](https://github.com/ruby/rbs/pull/1211))
1366
+ * Remove `steep/*` files from `.gem` (Backport [#1214](https://github.com/ruby/rbs/pull/1214), [#1216](https://github.com/ruby/rbs/pull/1216))
1367
+
1368
+ ## 2.8.3 (2023-01-06)
1369
+
1370
+ ### Library changes
1371
+
1372
+ * Use `-std=gnu99` instead of `-std=c99` (Backport [#973](https://github.com/ruby/rbs/pull/973))
1373
+ * Add `rbs_` prefix to `skip` function (Backport [#1186](https://github.com/ruby/rbs/pull/1186))
1374
+
1375
+ ## 2.8.2 (2022-12-21)
1376
+
1377
+ ### Signature updates
1378
+
1379
+ * `YAML.load` ([#1170](https://github.com/ruby/rbs/pull/1170))
1380
+
1381
+ ### Library changes
1382
+
1383
+ * Add the methods of the `prepend`ed module itself ([#1182](https://github.com/ruby/rbs/pull/1182))
1384
+
1385
+ ### Miscellaneous
1386
+
1387
+ * Add `TestSkip` module to skip tests that fails in ruby CI ([#1167](https://github.com/ruby/rbs/pull/1167))
1388
+
1389
+ ## 2.8.1 (2022-11-28)
1390
+
1391
+ ### Signature updates
1392
+
1393
+ * Update documents based on ruby-3.1.3 ([#1160](https://github.com/ruby/rbs/pull/1160))
1394
+
1395
+ ### Library changes
1396
+
1397
+ #### rbs collection
1398
+
1399
+ * Delay loading `Gemfile` for unbundled environments ([#1161](https://github.com/ruby/rbs/pull/1161))
1400
+
1401
+ ### Miscellaneous
1402
+
1403
+ * Fix collection tests ([#1159](https://github.com/ruby/rbs/pull/1159), [#1162](https://github.com/ruby/rbs/pull/1162))
1404
+
1405
+ ## 2.8.0 (2022-11-24)
1406
+
1407
+ ### Signature updates
1408
+
1409
+ * random ([#1144](https://github.com/ruby/rbs/pull/1144))
1410
+
1411
+ ### Library changes
1412
+
1413
+ * Fix SEGV when give invalid object to `variables:` ([#1153](https://github.com/ruby/rbs/pull/1153))
1414
+
1415
+ ### Miscellaneous
1416
+
1417
+ * Fix some typos ([#1155](https://github.com/ruby/rbs/pull/1155))
1418
+ * Fix a formatting some YAML files ([#1154](https://github.com/ruby/rbs/pull/1154))
1419
+
1420
+ ## 2.8.0.pre.1 (2022-11-17)
1421
+
1422
+ ### Signature updates
1423
+
1424
+ * `IO` ([#1132](https://github.com/ruby/rbs/pull/1132))
1425
+ * `IO::Buffer` ([#1137](https://github.com/ruby/rbs/pull/1137))
1426
+ * `IPAddr` ([#1131](https://github.com/ruby/rbs/pull/1131), [#1151](https://github.com/ruby/rbs/pull/1151))
1427
+ * `Socket` ([#1133](https://github.com/ruby/rbs/pull/1133), [#1134](https://github.com/ruby/rbs/pull/1134), [#1151](https://github.com/ruby/rbs/pull/1151))
1428
+ * `Yaml` ([#1141](https://github.com/ruby/rbs/pull/1141))
1429
+
1430
+ ### Library changes
1431
+
1432
+ * Make type/method-type parser more flexible about input position ([#1140](https://github.com/ruby/rbs/pull/1140))
1433
+ * Raise an error if a class definition inherits a module ([#1152](https://github.com/ruby/rbs/pull/1152))
1434
+ * Fix SEGV when parse with invalid content ([#1146](https://github.com/ruby/rbs/pull/1146))
1435
+
1436
+ #### rbs collection
1437
+
1438
+ * Support to call collection command in child dir ([#1025](https://github.com/ruby/rbs/pull/1025), [#1135](https://github.com/ruby/rbs/pull/1135))
1439
+
1440
+ ### Miscellaneous
1441
+
1442
+ * Remove `rubygems` from `rbs`’s manifest ([#1150](https://github.com/ruby/rbs/pull/1150))
1443
+ * Use `untyped` instead of `any` in `syntax.md` ([#1147](https://github.com/ruby/rbs/pull/1147))
1444
+ * Fix typo and grammatical mistakes in "Generics" section of `syntax.md` ([#1127](https://github.com/ruby/rbs/pull/1127))
1445
+ * Add a doc that describes tools related to RBS ([#1125](https://github.com/ruby/rbs/pull/1125))
1446
+ * Add self-type-bindings to `syntax.md` ([#1123](https://github.com/ruby/rbs/pull/1123))
1447
+ * Add documentation for `...` in `syntax.md` ([#1120](https://github.com/ruby/rbs/pull/1120))
1448
+
1449
+ ## 2.7.0 (2022-10-07)
1450
+
1451
+ ### Signature updates
1452
+
1453
+ * `Symbol#start_with?` ([#1118](https://github.com/ruby/rbs/pull/1118))
1454
+ * `URL::*.build` ([#1118](https://github.com/ruby/rbs/pull/1118))
1455
+
1456
+ ## 2.7.0.pre.3 (2022-10-06)
1457
+
1458
+ ### Signature updates
1459
+
1460
+ * rubygems ([#1107](https://github.com/ruby/rbs/pull/1107))
1461
+ * `OptionParser` ([#1114](https://github.com/ruby/rbs/pull/1114))
1462
+
1463
+ ## 2.7.0.pre.2 (2022-09-20)
1464
+
1465
+ ### Signature updates
1466
+
1467
+ * `Set` ([#1110](https://github.com/ruby/rbs/pull/1110))
1468
+ * `RDoc::Markup` ([#1109](https://github.com/ruby/rbs/pull/1109))
1469
+
1470
+ ### Library changes
1471
+
1472
+ * Always skip CR explicitly ([#1112](https://github.com/ruby/rbs/pull/1112))
1473
+
1474
+ ### Miscellaneous
1475
+
1476
+ * Use `append_cflags` for other than GCC ([#1106](https://github.com/ruby/rbs/pull/1106))
1477
+
1478
+ ## 2.7.0.pre.1 (2022-09-02)
1479
+
1480
+ See [Release Note 2.7](https://github.com/ruby/rbs/wiki/Release-Note-2.7) for the highlights of this release.
1481
+
1482
+ ### Signature updates
1483
+
1484
+ * fiber ([#1071](https://github.com/ruby/rbs/pull/1071))
1485
+ * `BigDecimal` ([#1053](https://github.com/ruby/rbs/pull/1053))
1486
+ * `ERB::Util`, `ERB::DefMethod` ([#1074](https://github.com/ruby/rbs/pull/1074))
1487
+ * `Float::Infinity` ([#1095](https://github.com/ruby/rbs/pull/1095))
1488
+ * `Logger` ([#1046](https://github.com/ruby/rbs/pull/1046))
1489
+ * `IO.pipe`, `IO.foreach` ([#1057](https://github.com/ruby/rbs/pull/1057))
1490
+ * `Module#refine` ([#1064](https://github.com/ruby/rbs/pull/1064))
1491
+ * `Regexp.new` ([#1059](https://github.com/ruby/rbs/pull/1059))
1492
+ * `StringIO#write` ([#1065](https://github.com/ruby/rbs/pull/1065))
1493
+ * `Warning.#warn`, `Kernel.#warn` ([#1056](https://github.com/ruby/rbs/pull/1056))
1494
+
1495
+ ### Language updates
1496
+
1497
+ * Type of `self` in blocks/procs ([#1077](https://github.com/ruby/rbs/issues/1077), [#1101](https://github.com/ruby/rbs/pull/1101))
1498
+
1499
+ ### Library changes
1500
+
1501
+ * RDoc plugin ([#1048](https://github.com/ruby/rbs/pull/1048))
1502
+ * Dedupe method comments ([#1103](https://github.com/ruby/rbs/pull/1103))
1503
+ * Reduce object allocations for GC ([#1102](https://github.com/ruby/rbs/pull/1102))
1504
+ * Add `frozen_string_literal: true` ([#1100](https://github.com/ruby/rbs/pull/1100))
1505
+ * Load dependencies on `-r` option also ([#1013](https://github.com/ruby/rbs/pull/1013))
1506
+ * Fix DefinitionBuilder for methods aliased from module self constraints ([#1099](https://github.com/ruby/rbs/pull/1099))
1507
+ * Fix RBS type definitions ([#1098](https://github.com/ruby/rbs/pull/1098))
1508
+ * Give aliases of `.new` methods correct type ([#1097](https://github.com/ruby/rbs/pull/1097))
1509
+ * `nil` versions are discouraged and will be deprecated in Rubygems 4 ([#1091](https://github.com/ruby/rbs/pull/1091))
1510
+ * Fixes towards Rubygems 4.0 ([#1090](https://github.com/ruby/rbs/pull/1090))
1511
+ * Remove redundant `add` for `Repository.default` ([#1062](https://github.com/ruby/rbs/pull/1062))
1512
+ * Refactor: Use Repository in stdlib source ([#1063](https://github.com/ruby/rbs/pull/1063))
1513
+ * Move `bin/sort` implementation to under `lib/` ([#1051](https://github.com/ruby/rbs/pull/1051))
1514
+
1515
+ #### rbs prototype
1516
+
1517
+ * Fix some error on `prototype runtime` ([#1055](https://github.com/ruby/rbs/pull/1055))
1518
+ * Skip existing RBS files from batch `prototype` ([#1060](https://github.com/ruby/rbs/pull/1060))
1519
+
1520
+ ### Miscellaneous
1521
+
1522
+ * Discard outputs from test code ([#1093](https://github.com/ruby/rbs/pull/1093))
1523
+ * Skip testing visibility methods with Ruby 3.2 ([#1082](https://github.com/ruby/rbs/pull/1082))
1524
+
1525
+ ## 2.6.0 (2022-06-22)
1526
+
1527
+ RBS 2.6 ships with `rbs prototype` commands improvements and signature updates.
1528
+ New minitest RBS definitions will help you to type check your tests.
1529
+
1530
+ ### Signature updates
1531
+
1532
+ * etc ([\#1006](https://github.com/ruby/rbs/pull/1006))
1533
+ * minitest ([\#1009](https://github.com/ruby/rbs/pull/1009))
1534
+ * date ([\#1033](https://github.com/ruby/rbs/pull/1033))
1535
+ * `ENV`. `ARGF`, `Random::Base` ([\#1041](https://github.com/ruby/rbs/pull/1041))
1536
+ * `Hash#dig` ([\#1011](https://github.com/ruby/rbs/pull/1011))
1537
+ * `Hash#reject` ([\#1016](https://github.com/ruby/rbs/pull/1016))
1538
+ * `Kernel?.fail` ([\#1026](https://github.com/ruby/rbs/pull/1026), [\#1028](https://github.com/ruby/rbs/pull/1028))
1539
+ * `Rational#*` ([\#1012](https://github.com/ruby/rbs/pull/1012))
1540
+ * `Regexp.new` ([\#1040](https://github.com/ruby/rbs/pull/1040))
1541
+
1542
+ ### Library changes
1543
+
1544
+ * Add `visibility` columns in {AttrReader,AttrAccessor,AttrWriter}#to_json ([\#1014](https://github.com/ruby/rbs/pull/1014))
1545
+ * Add support for RSpec's verifying doubles in test setup helper ([\#1015](https://github.com/ruby/rbs/pull/1015))
1546
+ * Fix lexer to analyze escape characters ([\#1043](https://github.com/ruby/rbs/pull/1043))
1547
+
1548
+ #### rbs prototype
1549
+
1550
+ * [rb] Support the case where the return value is `self` ([\#1003](https://github.com/ruby/rbs/pull/1003))
1551
+ * [rb] Lean to the optional side ([\#1021](https://github.com/ruby/rbs/pull/1021))
1552
+ * [rb] Fix method commenting ([\#1027](https://github.com/ruby/rbs/pull/1027))
1553
+ * [runtime] Fix decls of output from `Prototype::Runtime` ([\#1030](https://github.com/ruby/rbs/pull/1030))
1554
+ * [runtime] Fix class name resolution of prototype runtime ([\#1032](https://github.com/ruby/rbs/pull/1032))
1555
+ * [rbi] Improve `Prototype::RBI` ([\#1018](https://github.com/ruby/rbs/pull/1018))
1556
+
1557
+ ### Miscellaneous
1558
+
1559
+ * Fix typo in `CONTRIBUTING.md` ([\#1004](https://github.com/ruby/rbs/pull/1004))
1560
+ * Use manifest.yaml instead of manually for validate task ([\#1010](https://github.com/ruby/rbs/pull/1010))
1561
+ * Update re2c ([\#1017](https://github.com/ruby/rbs/pull/1017))
1562
+ * Type check `Prototype::RB` ([\#1019](https://github.com/ruby/rbs/pull/1019))
1563
+ * Minor cleanup & fix ([\#1020](https://github.com/ruby/rbs/pull/1020))
1564
+ * Fix type errors ([\#1023](https://github.com/ruby/rbs/pull/1023))
1565
+ * Clarify GHA step name for rake annotate ([\#1024](https://github.com/ruby/rbs/pull/1024))
1566
+ * Silence parser warning ([\#1039](https://github.com/ruby/rbs/pull/1039))
1567
+ * Fix warnings ([\#1035](https://github.com/ruby/rbs/pull/1035))
1568
+
1569
+ ## 2.5.1 (2022-06-19)
1570
+
1571
+ This is a maintenance release mainly to fix errors detected in CI of `ruby/ruby`.
1572
+ Nothing changed related to the users of RBS gem.
1573
+
1574
+ ### Miscellaneous
1575
+
1576
+ * Skip failing tests on ruby/ruby CI ([\#1036](https://github.com/ruby/rbs/pull/1036))
1577
+ * Fix warnings ([\#1035](https://github.com/ruby/rbs/pull/1035) except changes on `test/tools/sort_test.rb` that is not included in this release)
1578
+ * Fix `Regexp.new` argument ([\#1034](https://github.com/ruby/rbs/pull/1034))
1579
+ * Fix errors with OpenSSL 3 ([\#1029](https://github.com/ruby/rbs/pull/1029))
1580
+ * Fix `OpenSSL::PKey::PKeyError: EVP_PKEY_keygen: bad ffc parameters` with OpenSSL 3 ([\#1005](https://github.com/ruby/rbs/pull/1005))
1581
+
1582
+ ## 2.5.0 (2022-05-20)
1583
+
1584
+ This is a minor release with tuple type/record type syntax updates and `rbs prototype` improvements.
1585
+
1586
+ * You can write empty tuple type as `[]`, instead of `[ ]`
1587
+ * You can write empty record type as `{}`
1588
+ * `prototype-rb` command with `--out-dir` option generates multiple RBS files in the directory
1589
+
1590
+ ### Signature updates
1591
+
1592
+ * `Time` ([\#994](https://github.com/ruby/rbs/pull/994))
1593
+
1594
+ ### Language updates
1595
+
1596
+ * Fix empty tuple type syntax and allow empty record type ([\#1001](https://github.com/ruby/rbs/pull/1001))
1597
+
1598
+ ### Library changes
1599
+
1600
+ * Add `name` attribute in `MethodDefinition#to_json` ([\#997](https://github.com/ruby/rbs/pull/997))
1601
+
1602
+ #### rbs prototype
1603
+
1604
+ * Fix (`ArgumentError`) invalid byte sequence in UTF-8 ([\#995](https://github.com/ruby/rbs/pull/995))
1605
+ * Fix broken args after parsed `decls` from `RBS::Prototype::RB` ([\#998](https://github.com/ruby/rbs/pull/998))
1606
+ * Add *batch* mode to `rbs prototype` ([\#1000](https://github.com/ruby/rbs/pull/1000))
1607
+
1608
+ ## 2.4.0 (2022-05-08)
1609
+
1610
+ This is a minor release with some signature updates, `prototype rb` improvement, and test fixes.
1611
+
1612
+ ### Signature updates
1613
+
1614
+ * did_you_mean ([\#980](https://github.com/ruby/rbs/pull/980))
1615
+ * Pattern-matching exceptions ([\#979](https://github.com/ruby/rbs/pull/979/files))
1616
+ * `Singleton::SingletonClassMethods` ([\#978](https://github.com/ruby/rbs/pull/978))
1617
+
1618
+ #### rbs prototype
1619
+
1620
+ * Omit unnecessary param name on keyword arg from `prototype rb` ([\#974](https://github.com/ruby/rbs/pull/974))
1621
+
1622
+ ### Miscellaneous
1623
+
1624
+ * Fix git unsafe repository error on ci test ([\#985](https://github.com/ruby/rbs/pull/985))
1625
+ * Prefer `IO::Buffer.new` for mutable buffer tests ([\#989](https://github.com/ruby/rbs/pull/989))
1626
+ * Update steep ([\#990](https://github.com/ruby/rbs/pull/990))
1627
+
1628
+ ## 2.3.2 (2022-04-06)
1629
+
1630
+ ### Library changes
1631
+
1632
+ * Let modules have constants under `::Object` ([\#972](https://github.com/ruby/rbs/pull/972))
1633
+
1634
+ ### Miscellaneous
1635
+
1636
+ * Delete `-Wold-style-definition` ([\#971](https://github.com/ruby/rbs/pull/971))
1637
+ * `\e` is not defined in C90 ([\#970](https://github.com/ruby/rbs/pull/970))
1638
+
1639
+ ## 2.3.1 (2022-04-05)
1640
+
1641
+ ### Library changes
1642
+
1643
+ * Fix mswin build, use `append_cflags`, add Windows 'compile only' CI ([\#964](https://github.com/ruby/rbs/pull/964))
1644
+ * Raise `RBS::SyntaxError` from `parse_record_attributes` ([\#966](https://github.com/ruby/rbs/pull/966))
1645
+ * Toplevel constant must have the lowest precedence ([\#967](https://github.com/ruby/rbs/pull/967))
1646
+
1647
+ #### rbs prototype
1648
+
1649
+ * Use default value also for `literal_to_type` ([\#962](https://github.com/ruby/rbs/pull/962))
1650
+
1651
+ ## 2.3.0 (2022-04-01)
1652
+
1653
+ ### Signature updates
1654
+
1655
+ * `Enumerator` ([\#931](https://github.com/ruby/rbs/pull/931))
1656
+ * `FalseClass` ([\#931](https://github.com/ruby/rbs/pull/931))
1657
+ * `Integer` ([\#914](https://github.com/ruby/rbs/pull/914))
1658
+ * `Module` ([\#931](https://github.com/ruby/rbs/pull/931))
1659
+ * `NilClass` ([\#931](https://github.com/ruby/rbs/pull/931))
1660
+ * `Object` ([\#931](https://github.com/ruby/rbs/pull/931))
1661
+ * `Prime` ([\#934](https://github.com/ruby/rbs/pull/934))
1662
+ * `TracePoint` ([\#941](https://github.com/ruby/rbs/pull/941))
1663
+ * `TrueClass` ([\#931](https://github.com/ruby/rbs/pull/931))
1664
+ * `#to_d` ([\#936](https://github.com/ruby/rbs/pull/936))
1665
+ * `IO#wait_writable` ([\#943](https://github.com/ruby/rbs/pull/943))
1666
+
1667
+ ### Library changes
1668
+
1669
+ * Add `Resolver::ConstantResolver` and `Resolver::TypeNameResolver` ([\#938](https://github.com/ruby/rbs/pull/938))
1670
+ * Fix RBS::Locator ([\#930](https://github.com/ruby/rbs/pull/930))
1671
+ * Trying to preserve more locations ([\#915](https://github.com/ruby/rbs/pull/915))
1672
+ * Add visibility modifier to method definition json ([\#923](https://github.com/ruby/rbs/pull/923), [\#928](https://github.com/ruby/rbs/pull/928))
1673
+ * Add manifest.yaml for rbs gem ([\#921](https://github.com/ruby/rbs/pull/921))
1674
+ * Fix Environment type checking ([\#929](https://github.com/ruby/rbs/pull/929))
1675
+ * Fix memory violation in C extension ([\#952](https://github.com/ruby/rbs/pull/952))
1676
+ * Fix warnings in C extension ([\#954](https://github.com/ruby/rbs/pull/954))
1677
+
1678
+ #### rbs prototype
1679
+
1680
+ * Better typing for known `self`-returning method calls ([\#932](https://github.com/ruby/rbs/pull/932))
1681
+ * Let constants have literal types ([\#937](https://github.com/ruby/rbs/pull/937))
1682
+
1683
+ #### rbs collection
1684
+
1685
+ * Fix error message to tell gem name when source is not found ([\#927](https://github.com/ruby/rbs/pull/927))
1686
+
1687
+ ### Miscellaneous
1688
+
1689
+ * Fix `bin/sort` for constants ([\#919](https://github.com/ruby/rbs/pull/919))
1690
+ * Use actions/checkout@v3 ([\#944](https://github.com/ruby/rbs/pull/944))
1691
+ * Added actions ecosystem for dependabot ([\#946](https://github.com/ruby/rbs/pull/946))
1692
+ * Confirm RDoc is up to date ([\#945](https://github.com/ruby/rbs/pull/945))
1693
+
1694
+ ## 2.2.2 (2022-02-22)
1695
+
1696
+ ### Signature updates
1697
+
1698
+ * `cgi` ([\#761](https://github.com/ruby/rbs/pull/761))
1699
+ * `json` ([\#761](https://github.com/ruby/rbs/pull/761))
1700
+ * `set` ([\#761](https://github.com/ruby/rbs/pull/761))
1701
+
1702
+ ## 2.2.1 (2022-02-22)
1703
+
1704
+ ### Library changes
1705
+
1706
+ * Let `validate_type_alias` run without an error on unknown type ([\#912](https://github.com/ruby/rbs/pull/912))
1707
+
1708
+ ## 2.2.0 (2022-02-22)
1709
+
1710
+ RBS 2.2 ships with a new syntax to specify the visibility of a method per definition bases.
1711
+
1712
+ ```rbs
1713
+ class Foo
1714
+ private def hello: () -> void
1715
+
1716
+ private attr_accessor world: String
1717
+ end
1718
+ ```
1719
+
1720
+ It also changes the semantics of `self?` method.
1721
+ It defines both _public_ singleton method and _private_ instance method, which is equivalent to `module_function`.
1722
+
1723
+ ## Signature updates
1724
+
1725
+ * `net-http` ([\#892](https://github.com/ruby/rbs/pull/892))
1726
+ * `uri` ([\#864](https://github.com/ruby/rbs/pull/864))
1727
+ * `Encoding` ([\#897](https://github.com/ruby/rbs/pull/897), [\#898](https://github.com/ruby/rbs/pull/898))
1728
+ * `File::Stat` ([\#879](https://github.com/ruby/rbs/pull/879))
1729
+ * `Kernel#sleep` ([\#893](https://github.com/ruby/rbs/pull/893))
1730
+
1731
+ ### Language updates
1732
+
1733
+ * Add public/private per member modifier ([\#911](https://github.com/ruby/rbs/pull/911))
1734
+ * Let `self?.` be equivalent to `module_function` ([\#910](https://github.com/ruby/rbs/pull/910))
1735
+
1736
+ ### Library changes
1737
+
1738
+ * Add c99 flag for compiling on Ruby 2 ([\#895](https://github.com/ruby/rbs/pull/895))
1739
+ * Fix incorrect URI reference in `schema/typeParam.json` ([\#891](https://github.com/ruby/rbs/pull/891))
1740
+ * Allow scaffolding below namespace ([\#894](https://github.com/ruby/rbs/pull/894))
1741
+ * Let `Writer` preserve format ([\#900](https://github.com/ruby/rbs/pull/900))
1742
+ * Reduce memory usage of `RBS::Buffer` ([\#907](https://github.com/ruby/rbs/pull/907))
1743
+ * Do not call `#class` from `#hash` to improve performance ([\#906](https://github.com/ruby/rbs/pull/906))
1744
+ * Skip type variable validation if `unchcked` ([\#909](https://github.com/ruby/rbs/pull/909))
1745
+
1746
+ ### Miscellaneous
1747
+
1748
+ * Add `Thread::Backtrace` and `Thread::Backtrace::Location` test ([\#896](https://github.com/ruby/rbs/pull/896))
1749
+ * Test annotations ([\#902](https://github.com/ruby/rbs/pull/902))
1750
+ * Remove goodcheck rule for arglists section ([\#901](https://github.com/ruby/rbs/pull/901))
1751
+ * Remove `CharScanner` due to no longer used ([\#905](https://github.com/ruby/rbs/pull/905))
1752
+
1753
+ ## 2.1.0 (2022-02-02)
1754
+
1755
+ RBS 2.1 is a release to deliver the types and documents of the new and updated methods of Ruby 3.1.
1756
+
1757
+ ### Signature updates
1758
+
1759
+ * Documents imported from Ruby 3.1 ([\#881](https://github.com/ruby/rbs/pull/881))
1760
+ * Methods/classes updated in Ruby 3.1 ([\#886](https://github.com/ruby/rbs/pull/886))
1761
+ * io/wait ([\#865](https://github.com/ruby/rbs/pull/865))
1762
+ * json ([\#863](https://github.com/ruby/rbs/pull/863))
1763
+ * nkf ([\#873](https://github.com/ruby/rbs/pull/873))
1764
+ * openssl ([\#866](https://github.com/ruby/rbs/pull/866))
1765
+ * `Dir.exists?`, `FileTest#exists?` ([\#884](https://github.com/ruby/rbs/pull/884))
1766
+ * `FileTest` ([\#880](https://github.com/ruby/rbs/pull/880))
1767
+ * `Gem::Version#<=>` ([\#869](https://github.com/ruby/rbs/pull/869))
1768
+ * `Process.clock_gettime` ([\#858](https://github.com/ruby/rbs/pull/858))
1769
+
1770
+ ### Library changes
1771
+
1772
+ * Introduce `rbs annotate` command ([\#881](https://github.com/ruby/rbs/pull/881))
1773
+ * Make prototype rb to be aware of prepend ([\#861](https://github.com/ruby/rbs/pull/861))
1774
+ * Fixes incorrect "Invalid Variance" error when method type variable shadows outer type variable ([#889](https://github.com/ruby/rbs/pull/889))
1775
+
1776
+ ## 2.0.0 (2021-12-24)
1777
+
1778
+ ### Bounded Generics
1779
+
1780
+ RBS 2.0 ships with _bounded generics_, which improves the expressiveness of the language by adding a new syntax to define constraints on type parameters.
1781
+
1782
+ ```rbs
1783
+ class PrettyPrint[T < _Output]
1784
+ interface _Output
1785
+ def <<: (String) -> void
1786
+ end
1787
+
1788
+ attr_reader output: T
1789
+
1790
+ def initialize: (T output) -> void
1791
+ end
1792
+ ```
1793
+
1794
+ This is the motivating example I found in the [prettyprint library](https://github.com/ruby/prettyprint).
1795
+ The `#initialize` receives a object of type `T` and it must have `#<<` method.
1796
+ This is defined with `< _Output` syntax in the example.
1797
+ It means _`T` has to be compatible with `_Output` interface._
1798
+ `PrettyPrint[String]` is okay, but `PrettyPrint[Integer]` is a type error.
1799
+
1800
+ See [the PR for details](https://github.com/ruby/rbs/pull/844).
1801
+
1802
+ ### RBS Collection manager
1803
+
1804
+ RBS Collection feature is generally available on RBS 2.0. In short, it is Bundler for RBS. You can manage RBSs of standard libraries and third party gems with `rbs collection` subcommand.
1805
+
1806
+ ```bash
1807
+ $ rbs collection init
1808
+ created: rbs_collection.yaml
1809
+
1810
+ # The `install` command set up RBS files and creates `rbs_collection.lock.yaml` file
1811
+ $ rbs collection install
1812
+ Installing actionpack:6.0 (actionpack@ce6664cec73)
1813
+ (...snip...)
1814
+ Using tsort:0 (/path/to/rbs-2.0.0/stdlib/tsort/0)
1815
+ It's done! 21 gems' RBSs now installed.
1816
+
1817
+ # Now you can use `rbs`, `typeprof` and `steep` commands with the dependencies out of the box!
1818
+ $ rbs validate
1819
+ $ typeprof app.rb
1820
+ $ steep check
1821
+ ```
1822
+
1823
+ RBS 2.0 also introduces `manifest.yaml` to declare the dependencies from your gems to standard libraries explicitly.
1824
+ See [the documentation](https://github.com/ruby/rbs/blob/master/docs/collection.md) for more information.
1825
+
1826
+ ### Breaking changes
1827
+
1828
+ This version contains a bug fix, which potentially breaks the compatibility with older versions.
1829
+ The super class names in class definitions are now resolved in _outer_ context.
1830
+ It was an incompatibility with Ruby and [this PR](https://github.com/ruby/rbs/pull/856) fixed the problem.
1831
+
1832
+ ### Signature updates
1833
+
1834
+ * uri ([\#846](https://github.com/ruby/rbs/pull/846), [\#852](https://github.com/ruby/rbs/pull/852), [\#851](https://github.com/ruby/rbs/pull/851), [\#850](https://github.com/ruby/rbs/pull/850), [#849](https://github.com/ruby/rbs/pull/849))
1835
+
1836
+ ### Language updates
1837
+
1838
+ * Bounded generics ([\#844](https://github.com/ruby/rbs/pull/844))
1839
+ * Resolve super type names in outer context ([\#856](https://github.com/ruby/rbs/pull/856))
1840
+
1841
+ ### Library changes
1842
+
1843
+ * Add `manifest.yaml` for collection to specify stdlib dependencies ([\#808](https://github.com/ruby/rbs/pull/808))
1844
+ * Remove experimental warning of `rbs collection` ([\#855](https://github.com/ruby/rbs/pull/855))
1845
+ * Add the utility `#map_type` methods ([\#841](https://github.com/ruby/rbs/pull/841))
1846
+
1847
+ ## 1.8.1 (2021-12-13)
1848
+
1849
+ ### Library changes
1850
+
1851
+ * Validate `extend` arguments ([\#840](https://github.com/ruby/rbs/pull/840))
1852
+ * Allow a relative path as git remote in collection ([\#839](https://github.com/ruby/rbs/pull/839))
1853
+
1854
+ ## 1.8.0 (2021-12-02)
1855
+
1856
+ RBS 1.8.0 ships with a language feature enhancement, _generic type alias_.
1857
+ You can define a type alias with type parameters now.
1858
+
1859
+ ```rbs
1860
+ type list[T] = [T, list[T]] | nil # Defines a list of type T
1861
+
1862
+ type int_list = list[Integer] # List of Integer
1863
+ type string_list = list[String] # List of String
1864
+ ```
1865
+
1866
+ You can find the detail in the [PR](https://github.com/ruby/rbs/pull/823).
1867
+
1868
+ ### Signature updates
1869
+
1870
+ * `Date#+`, `Date#-` ([\#830](https://github.com/ruby/rbs/pull/830))
1871
+ * `#include?`, `#member?`, `#delete`, `#count` ([\#835](https://github.com/ruby/rbs/pull/835))
1872
+
1873
+ ### Language updates
1874
+
1875
+ * Generic type alias ([\#823](https://github.com/ruby/rbs/pull/823))
1876
+
1877
+ ## 1.7.1 (2021-11-18)
1878
+
1879
+ ### Signature updates
1880
+
1881
+ * `Thread#value` ([\#824](https://github.com/ruby/rbs/pull/824/files))
1882
+
1883
+ ### Library changes
1884
+
1885
+ * Unquote parameter name ([\#827](https://github.com/ruby/rbs/pull/827))
1886
+ * Remove `ruby/signature.rb` ([\#825](https://github.com/ruby/rbs/pull/825))
1887
+
1888
+ ### Miscellaneous
1889
+
1890
+ * Use `untyped` as an expectation of return value of `IO#ready?` in test ([\#828](https://github.com/ruby/rbs/pull/828/files))
1891
+
1892
+ ## 1.7.0 (2021-11-11)
1893
+
1894
+ This version replaces `RBS::Parser` implementation from pure Ruby code based on [Racc](https://github.com/ruby/racc) to C extension.
1895
+ It improves the RBS file parsing performance up to 5 times faster. :rocket:
1896
+
1897
+ * There are some incompatibilities to drop obsolete syntax rules: `super` keyword and `any` type are no longer supported.
1898
+ * [re2c](https://github.com/skvadrik/re2c) is used to generate lexical generator.
1899
+
1900
+ When you want to change the parser/lexer, change the files under `ext/rbs_extension` directory and run `rake compile` to compile the extension.
1901
+
1902
+ ### Signature updates
1903
+
1904
+ * io/console ([\#783](https://github.com/ruby/rbs/pull/783))
1905
+ * `ENV` -- Note that it introduces a dummy `::ENVClass` class, which is not defined in Ruby. ([\#812](https://github.com/ruby/rbs/pull/812))
1906
+ * `Net::HTTPRequest` ([\#784](https://github.com/ruby/rbs/pull/784))
1907
+ * `#clone` ([#811](https://github.com/ruby/rbs/pull/811), [\#813](https://github.com/ruby/rbs/pull/813))
1908
+ * `Kernel#BigDecimal` ([\#817](https://github.com/ruby/rbs/pull/817))
1909
+ * `Tempfile.new`, `Tempfile.create` ([\#792](https://github.com/ruby/rbs/pull/792), [\#791](https://github.com/ruby/rbs/pull/791))
1910
+
1911
+ ### Library changes
1912
+
1913
+ * Replace `RBS::Parser` ([#788](https://github.com/ruby/rbs/pull/788), [#789](https://github.com/ruby/rbs/pull/789))
1914
+ * Fix unexpected `CollectionNotAvailable` without `gems` from git source ([\#795](https://github.com/ruby/rbs/pull/795))
1915
+ * Print deprecation warning ([\#801](https://github.com/ruby/rbs/pull/801))
1916
+ * Make `Parser::KEYWORDS` a hash ([\#804](https://github.com/ruby/rbs/pull/804))
1917
+ * Use _partial clone_ for `rbs collection` installer ([#805](https://github.com/ruby/rbs/pull/805))
1918
+ * Respect logger level for test/setup logger ([\#819](https://github.com/ruby/rbs/pull/819), [\#822](https://github.com/ruby/rbs/pull/822))
1919
+
1920
+ ## Miscellaneous
1921
+
1922
+ * Avoid a mixture of `Array#filter` and `Array#select` ([\#820](https://github.com/ruby/rbs/pull/820))
1923
+ * Remove leftover documentation about `super` ([\#807](https://github.com/ruby/rbs/pull/807))
1924
+
1925
+ ## 1.6.2 (2021-09-09)
1926
+
1927
+ ### Signature updates
1928
+
1929
+ * `Enumerator::Lazy#force` ([\#782](https://github.com/ruby/rbs/pull/782))
1930
+ * `IO.readlines` ([\#780](https://github.com/ruby/rbs/pull/780))
1931
+
1932
+ ### Miscellaneous
1933
+
1934
+ * Set `$XDG_CACHE_HOME` during test ([\#781](https://github.com/ruby/rbs/pull/781))
1935
+
1936
+ ## 1.6.1 (2021-09-05)
1937
+
1938
+ This is a minor release including test fixes.
1939
+
1940
+ ### Miscellaneous
1941
+
1942
+ * Fix stdlib test for `Resolv::Hosts` by removing `/etc/hosts` dependency ([\#779](https://github.com/ruby/rbs/pull/779))
1943
+ * Fix bundler related test for test-bundled-gems ([\#778](https://github.com/ruby/rbs/pull/778))
1944
+
1945
+ ## 1.6.0 (2021-09-05)
1946
+
1947
+ This release includes a preview of `rbs collection` commands, which is _bundler for RBS_.
1948
+ The command helps you manage RBS files from gem_rbs_collection or other repositories.
1949
+
1950
+ This feature is a preview, and any feedback is welcome!
1951
+
1952
+ ### Signature updates
1953
+
1954
+ * objspace ([\#763](https://github.com/ruby/rbs/pull/763), [\#776](https://github.com/ruby/rbs/pull/776))
1955
+ * tempfile ([\#767](https://github.com/ruby/rbs/pull/767), [\#775](https://github.com/ruby/rbs/pull/775))
1956
+ * `IO#set_encoding_by_bom` ([\#106](https://github.com/ruby/rbs/pull/106))
1957
+ * `OpenSSL::PKey::EC#dh_compute_key` ([\#775](https://github.com/ruby/rbs/pull/775))
1958
+
1959
+ ### Library changes
1960
+
1961
+ * Add `rbs collection` ([\#589](https://github.com/ruby/rbs/pull/589), [\#772](https://github.com/ruby/rbs/pull/772), [\#773](https://github.com/ruby/rbs/pull/773))
1962
+
1963
+ ### Miscellaneous
1964
+
1965
+ * Let `bin/annotate-with-rdoc` process nested constants/classes ([\#766](https://github.com/ruby/rbs/pull/766), [\#768](https://github.com/ruby/rbs/pull/768))
1966
+ * Stop printing version mismatch message in CI ([\#777](https://github.com/ruby/rbs/pull/777))
1967
+ * Update Steep and fix type errors ([\#770](https://github.com/ruby/rbs/pull/770), [\#774](https://github.com/ruby/rbs/pull/774))
1968
+ * Add dependabot configuration ([\#771](https://github.com/ruby/rbs/pull/771))
1969
+
1970
+ ## 1.5.1 (2021-08-22)
1971
+
1972
+ ### Miscellaneous
1973
+
1974
+ * Fix Net_HTTP_test ([\#759](https://github.com/ruby/rbs/pull/759))
1975
+
1976
+ ## 1.5.0 (2021-08-22)
1977
+
1978
+ This release includes stdlib signature updates.
1979
+
1980
+ ### Signature updates
1981
+
1982
+ * digest ([\#744](https://github.com/ruby/rbs/pull/744), [\#757](https://github.com/ruby/rbs/pull/757))
1983
+ * io-wait ([\#756](https://github.com/ruby/rbs/pull/756), [\#758](https://github.com/ruby/rbs/pull/758))
1984
+ * `Ractor` ([\#755](https://github.com/ruby/rbs/pull/755))
1985
+ * `File::Stat#size?` ([\#754](https://github.com/ruby/rbs/pull/754))
1986
+ * `$-i`, `$0`, `$PROGRAM_NAME` ([\#753](https://github.com/ruby/rbs/pull/753))
1987
+
1988
+ ## 1.4.0 (2021-08-19)
1989
+
1990
+ This release includes feature enhancements including recursive `type` definition validation, improved compatibility of global variable names, and various method type updates.
1991
+
1992
+ ### Signature updates
1993
+
1994
+ * openssl ([\#743](https://github.com/ruby/rbs/pull/743))
1995
+ * `Array`, `Enumerator`, `Enumerable`, `Hash`, `FalseClass`, `Float`, `Hash`, `Integer`, `Object`, `Range`, `TrueClass` ([\#728](https://github.com/ruby/rbs/pull/728))
1996
+ * `Array#[]` ([\#732](https://github.com/ruby/rbs/pull/732))
1997
+ * `Exception#set_backtrace` ([\#738](https://github.com/ruby/rbs/pull/738))
1998
+ * `Kernel#Array` ([\#733](https://github.com/ruby/rbs/pull/733))
1999
+ * `Kernel#spawn` ([\#748](https://github.com/ruby/rbs/pull/748))
2000
+ * `Kernel#String` ([\#745](https://github.com/ruby/rbs/pull/745), [\#751](https://github.com/ruby/rbs/pull/751))
2001
+ * `URI::Generic#fragment` ([\#752](https://github.com/ruby/rbs/pull/752))
2002
+ * `URI::Generic#merge` ([\#746](https://github.com/ruby/rbs/pull/746))
2003
+
2004
+ ### Language updates
2005
+
2006
+ * Add global variables signature ([\#749](https://github.com/ruby/rbs/pull/749))
2007
+
2008
+ ### Library changes
2009
+
2010
+ * Add Recursive type alias definition validation ([\#719](https://github.com/ruby/rbs/pull/719))
2011
+ * Generate included modules with complete name ([\#731](https://github.com/ruby/rbs/pull/731))
2012
+ * Fix `rbs-prototype-rb` error when multi assign with const ([\#740](https://github.com/ruby/rbs/pull/740))
2013
+
2014
+ ## 1.3.3 (2021-07-28)
2015
+
2016
+ This release includes a minor update of `resolv` library RBS and a fix of test for `ruby/ruby` CI.
2017
+
2018
+ ### Signature updates
2019
+
2020
+ * resolv ([#726](https://github.com/ruby/rbs/pull/726))
2021
+
2022
+ ## 1.3.2 (2021-07-23)
2023
+
2024
+ This release is to fix a bug introduced by parser update in 1.3.0.
2025
+
2026
+ * Fix parser to accept alias names starting with `_` ([#723](https://github.com/ruby/rbs/pull/723))
2027
+
2028
+ ## 1.3.1 (2021-07-21)
2029
+
2030
+ This release is to fix a bug introduced by parser update in 1.3.0.
2031
+
2032
+ * Fix parser to accept param names starting with `_` ([#721](https://github.com/ruby/rbs/pull/721))
2033
+
2034
+ ## 1.3.0 (2021-07-20)
2035
+
2036
+ ### Summary
2037
+
2038
+ RBS 1.3.0 includes bug fixes of the parser and class/module definition validations.
2039
+
2040
+ ### Signature updates
2041
+
2042
+ * dbm ([#718](https://github.com/ruby/rbs/pull/718))
2043
+ * net-http ([#686](https://github.com/ruby/rbs/pull/686))
2044
+ * optparse ([#693](https://github.com/ruby/rbs/pull/693))
2045
+ * resolv ([#697](https://github.com/ruby/rbs/pull/697))
2046
+ * socket ([#699](https://github.com/ruby/rbs/pull/699))
2047
+ * `IO` ([#698](https://github.com/ruby/rbs/pull/698))
2048
+ * `Marshal` ([#684](https://github.com/ruby/rbs/pull/684))
2049
+ * `Mutex` ([#683](https://github.com/ruby/rbs/pull/683))
2050
+ * `Array#shift` ([#707](https://github.com/ruby/rbs/pull/707))
2051
+ * `BasicObject#method_missing` ([#707](https://github.com/ruby/rbs/pull/706), [#710](https://github.com/ruby/rbs/pull/710))
2052
+ * `Kernel#caller` ([#705](https://github.com/ruby/rbs/pull/705))
2053
+
2054
+ ### Library changes
2055
+
2056
+ * Interface names starting with lower case characters are now syntax error ([#678](https://github.com/ruby/rbs/pull/678), [#720](https://github.com/ruby/rbs/pull/720))
2057
+ * Mixins of classes are rejected ([#681](https://github.com/ruby/rbs/pull/681))
2058
+ * Generate prototype of `initialize` method with return type `void` ([#685](https://github.com/ruby/rbs/pull/685))
2059
+ * Let `prototype runtime` generate class/module declarations in nested syntax ([#700](https://github.com/ruby/rbs/pull/700))
2060
+ * Fix race condition for multi-thread support ([#702](https://github.com/ruby/rbs/pull/702))
2061
+
2062
+ ### Miscellaneous
2063
+
2064
+ * Add new doc `docs/rbs_by_example.md` ([#694](https://github.com/ruby/rbs/pull/694))
2065
+
2066
+ ## 1.2.1 (2021-05-27)
2067
+
2068
+ This release includes the following minor changes:
2069
+
2070
+ * Fix test to run the tests in ruby repository. ([#679](https://github.com/ruby/rbs/pull/679))
2071
+ * Remove unnecessary files from the gem package. ([#675](https://github.com/ruby/rbs/pull/675))
2072
+ * Suppress unused variable warning ([#674](https://github.com/ruby/rbs/pull/674))
2073
+ * Update documents ([#672](https://github.com/ruby/rbs/pull/672))
2074
+
2075
+ ## 1.2.0 (2021-04-21)
2076
+
2077
+ ### Summary
2078
+
2079
+ RBS 1.2 ships with better support for AST/token locations and `Locator` utility class. The AST objects now keep the locations of tokens. The `Locator` class is to translate the text position (line and column) to semantic object at the location. The class allows to find if a text position is on the class name of a class declaration.
2080
+
2081
+ ### Signature updates
2082
+
2083
+ * Hash ([#631](https://github.com/ruby/rbs/pull/631), [#632](https://github.com/ruby/rbs/pull/632), [\#637](https://github.com/ruby/rbs/pull/637), [\#638](https://github.com/ruby/rbs/pull/638), [\#639](https://github.com/ruby/rbs/pull/639), )
2084
+ * Module ([\#645](https://github.com/ruby/rbs/pull/645))
2085
+ * Enumerable ([\#647](https://github.com/ruby/rbs/pull/647))
2086
+ * Array ([\#648](https://github.com/ruby/rbs/pull/648))
2087
+ * Proc ([\#649](https://github.com/ruby/rbs/pull/649))
2088
+ * Struct ([\#650](https://github.com/ruby/rbs/pull/650), [\#668](https://github.com/ruby/rbs/pull/668))
2089
+ * Thread ([\#651](https://github.com/ruby/rbs/pull/651))
2090
+ * Random ([\#669](https://github.com/ruby/rbs/pull/669))
2091
+ * Shellwords ([\#665](https://github.com/ruby/rbs/pull/665))
2092
+ * IO ([\#659](https://github.com/ruby/rbs/pull/659))
2093
+
2094
+ ### Language updates
2095
+
2096
+ * Module self type syntax update ([\#653](https://github.com/ruby/rbs/pull/653))
2097
+
2098
+ ### Library changes
2099
+
2100
+ * Token locations ([\#666](https://github.com/ruby/rbs/pull/666))
2101
+ * Add RBS::Locator ([\#667](https://github.com/ruby/rbs/pull/667))
2102
+ * Fix runtime type checker ([\#644](https://github.com/ruby/rbs/pull/644))
2103
+
2104
+ ### Miscellaneous
2105
+
2106
+ * Update documentation for overloading ([\#658](https://github.com/ruby/rbs/pull/658))
2107
+ * Update target ruby version ([\#633](https://github.com/ruby/rbs/pull/633))
2108
+
2109
+ ## 1.1.1 (2021-03-12)
2110
+
2111
+ ### Signature updates
2112
+
2113
+ * rubygem ([#630](https://github.com/ruby/rbs/pull/630))
2114
+
2115
+ ## 1.1.0 (2021-03-08)
2116
+
2117
+ ### Summary
2118
+
2119
+ Errors are now organized by `RBS::BaseError`, `RBS::ParsingError`, `RBS::LoadingError`, and `RBS::DefinitionError`.
2120
+ The library users can rescue RBS related errors with `RBS::BaseError`, parsing errors with `RBS::ParsingError`, and other errors with `RBS::LoadingError` and `RBS::DefinitionErrors`.
2121
+
2122
+ Updating a part of environments are supported. Library users can remove declarations read from a set of files, adding new declarations, running name resolution related to the new decls, and deleting `DefinitionBuilder` caches related to the changes.
2123
+ See `RBS::Environment#reject`, `RBS::Environment#resolve_type_names`, `RBS::AncestorGraph`, and `RBS::DefinitionBuilder#update`.
2124
+
2125
+ `RBS::DefinitionBuilder#build_singleton` now returns definitions containing `instance` type, which had returned resolved class instance types. This is a breaking change, but we consider it a bug fix because `RBS::DefinitionBuilder#build_instance` has returned `instance` types and `#build_singleton` has returned `class` type.
2126
+
2127
+ ### Signature updates
2128
+
2129
+ * rubygem ([\#605](https://github.com/ruby/rbs/pull/605), [\#610](https://github.com/ruby/rbs/pull/610))
2130
+ * Array ([\#612](https://github.com/ruby/rbs/pull/612), [\#614](https://github.com/ruby/rbs/pull/614))
2131
+ * cgi/core ([\#599](https://github.com/ruby/rbs/pull/599))
2132
+ * Thread ([\#618](https://github.com/ruby/rbs/pull/618))
2133
+
2134
+ ### Language updates
2135
+
2136
+ * Allow trailing comma for Record and Tuple types ([\#606](https://github.com/ruby/rbs/pull/606))
2137
+
2138
+ ### Library changes
2139
+
2140
+ * Allow partial update of RBS declarations ([\#608](https://github.com/ruby/rbs/pull/608), [\#621](https://github.com/ruby/rbs/pull/621))
2141
+ * Let errors have `TypeName` ([\#611](https://github.com/ruby/rbs/pull/611))
2142
+ * Add `Parser::LexerError` ([\#615](https://github.com/ruby/rbs/pull/615))
2143
+ * Performance improvement ([\#617](https://github.com/ruby/rbs/pull/617), [\#620](https://github.com/ruby/rbs/pull/620))
2144
+ * No substitute `instance` types on `#build_singleton` ([\#619](https://github.com/ruby/rbs/pull/619))
2145
+
2146
+ ### Miscellaneous
2147
+
2148
+ * Make racc name customizable by `RACC` environment variable ([\#602](https://github.com/ruby/rbs/pull/602))
2149
+ * Suppress warnings ([\#624](https://github.com/ruby/rbs/pull/624))
2150
+ * Remove needless `Gem::Version` polyfill ([\#622](https://github.com/ruby/rbs/pull/622))
2151
+
2152
+ ## 1.0.6 (2021-02-17)
2153
+
2154
+ * Signature Updates
2155
+ * `Enumerable` ([\#595](https://github.com/ruby/rbs/pull/595), [\#596](https://github.com/ruby/rbs/pull/596), [\#601](https://github.com/ruby/rbs/pull/601))
2156
+ * `#as_json` ([\#597](https://github.com/ruby/rbs/pull/597))
2157
+
2158
+ ## 1.0.5 (2021-02-13)
2159
+
2160
+ * Signature Updates
2161
+ * Enumerable ([\#596](https://github.com/ruby/rbs/pull/596))
2162
+ * Set ([\#595](https://github.com/ruby/rbs/pull/595))
2163
+ * `#to_json` ([\#592](https://github.com/ruby/rbs/pull/592))
2164
+ * `<=>` ([\#593](https://github.com/ruby/rbs/pull/593))
2165
+ * Timeout ([\#586](https://github.com/ruby/rbs/pull/586))
2166
+ * URI::RFC2396_Parser ([\#587](https://github.com/ruby/rbs/pull/587))
2167
+ * Rename generic class parameters on re-open ([\#594](https://github.com/ruby/rbs/pull/594))
2168
+ * Make `refute_send_type` check that method call doesn't match with types in RBS ([\#588](https://github.com/ruby/rbs/pull/588))
2169
+
2170
+ ## 1.0.4 (2021-01-31)
2171
+
2172
+ * Unbundle `rr` to run test in `ruby/ruby` repo ([#585](https://github.com/ruby/rbs/pull/585))
2173
+
2174
+ ## 1.0.3 (2021-01-28)
2175
+
2176
+ * Set up `#ancestors` and `#location` of `RecursiveAncestorError` ([#583](https://github.com/ruby/rbs/pull/583))
2177
+
2178
+ ## 1.0.2 (2021-01-28)
2179
+
2180
+ * Signature Updates
2181
+ * Kernel([#582](https://github.com/ruby/rbs/pull/582))
2182
+
2183
+ ## 1.0.1 (2021-01-27)
2184
+
2185
+ * Signature Updates
2186
+ * PrettyPrint ([\#573](https://github.com/ruby/rbs/pull/573))
2187
+ * FileUtils ([\#576](https://github.com/ruby/rbs/pull/576))
2188
+ * UnboundMethod ([\#555](https://github.com/ruby/rbs/pull/555))
2189
+ * IO ([\#571](https://github.com/ruby/rbs/pull/571))
2190
+ * Kernel ([\#549](https://github.com/ruby/rbs/pull/549), [\#569](https://github.com/ruby/rbs/pull/569))
2191
+ * File ([\#552](https://github.com/ruby/rbs/pull/552))
2192
+ * Data is removed ([\#570](https://github.com/ruby/rbs/pull/570))
2193
+ * Module ([\#568](https://github.com/ruby/rbs/pull/568))
2194
+ * Object ([\#557](https://github.com/ruby/rbs/pull/557))
2195
+ * Renew test sample code ([#581](https://github.com/ruby/rbs/pull/581))
2196
+ * Add description to `generate:stdlib_test` Rake task ([\#578](https://github.com/ruby/rbs/pull/578))
2197
+ * Declare supported ruby version >= 2.6 ([\#548](https://github.com/ruby/rbs/pull/548))
2198
+ * Fix module self-type override ([\#577](https://github.com/ruby/rbs/pull/577))
2199
+ * Fix parser to support all operator symbols ([\#550](https://github.com/ruby/rbs/pull/550))
2200
+ * Migrate from Minitest to Test::Unit ([\#556](https://github.com/ruby/rbs/pull/556))
2201
+ * Fix type alias parsing ([\#565](https://github.com/ruby/rbs/pull/565))
2202
+ * Support end-less method definition in `prototype rb` ([\#561](https://github.com/ruby/rbs/pull/561))
2203
+ * Support method argument forwarding in `prototype rb` ([\#560](https://github.com/ruby/rbs/pull/560))
2204
+
2205
+ ## 1.0.0 (2020-12-24)
2206
+
2207
+ * Signature updates for `URI`, `IO`, `File`, `Pathname`, `Module`, and `Time` ([#529](https://github.com/ruby/rbs/pull/529), [#521](https://github.com/ruby/rbs/pull/521), [#520](https://github.com/ruby/rbs/pull/520), [#511](https://github.com/ruby/rbs/pull/511), [#517](https://github.com/ruby/rbs/pull/517), [#542](https://github.com/ruby/rbs/pull/542), [#546](https://github.com/ruby/rbs/pull/546), [#540](https://github.com/ruby/rbs/pull/540), [#538](https://github.com/ruby/rbs/pull/538))
2208
+ * `rbs prototype runtime` generates `extend`s ([#535](https://github.com/ruby/rbs/pull/535))
2209
+ * `rbs prototype runtime` stability improvements ([#533](https://github.com/ruby/rbs/pull/533), [#526](https://github.com/ruby/rbs/pull/526))
2210
+ * `rbs prototype rb` compatibility improvements ([#545](https://github.com/ruby/rbs/pull/545))
2211
+ * Implement method names escape in `RBS::Writer` ([#537](https://github.com/ruby/rbs/pull/537))
2212
+ * Improve runtime type checker compatibility ([#532](https://github.com/ruby/rbs/pull/532), [#528](https://github.com/ruby/rbs/pull/528), [#547](https://github.com/ruby/rbs/pull/547))
2213
+ * Fix `ruby2_keywords` for `Proc` in Ruby <2.7 ([#513](https://github.com/ruby/rbs/pull/513))
2214
+ * Better compatibility for record type attribute names ([#525](https://github.com/ruby/rbs/pull/525), [#524](https://github.com/ruby/rbs/pull/524))
2215
+ * Let module self-types be classes ([#523](https://github.com/ruby/rbs/pull/523))
2216
+ * Delete `extension` syntax ([#543](https://github.com/ruby/rbs/pull/543))
2217
+ * Method resolution improvements about `alias` and `.new` ([#522](https://github.com/ruby/rbs/pull/522), [#519](https://github.com/ruby/rbs/pull/519), [#516](https://github.com/ruby/rbs/pull/516))
2218
+ * Better message for `DuplicatedMethodDefinitionError` ([#539](https://github.com/ruby/rbs/pull/539))
2219
+
2220
+ ## 0.20.1 (2020-12-06)
2221
+
2222
+ * Make the order of RBS load reproducible ([#508](https://github.com/ruby/rbs/pull/508))
2223
+
2224
+ ## 0.20.0 (2020-12-06)
2225
+
2226
+ * Signature updates for `TSort`, `DBM`, `Time`, and `Hash` ([#496](https://github.com/ruby/rbs/pull/496), [#497](https://github.com/ruby/rbs/pull/497), [#499](https://github.com/ruby/rbs/pull/499), [#507](https://github.com/ruby/rbs/pull/507))
2227
+ * Add _singleton attribute_ syntax ([#502](https://github.com/ruby/rbs/pull/502), [#506](https://github.com/ruby/rbs/pull/506), [#505](https://github.com/ruby/rbs/pull/505))
2228
+ * Proc types with blocks ([#503](https://github.com/ruby/rbs/pull/503))
2229
+ * Add support for escape sequences in string literal types ([#501](https://github.com/ruby/rbs/pull/501))
2230
+ * Fix runtime type checking of blocks with keyword args ([#500](https://github.com/ruby/rbs/pull/500))
2231
+
2232
+ ## 0.19.0 (2020-12-02)
2233
+
2234
+ * Signature updates for `Monitor` and File ([#485](https://github.com/ruby/rbs/pull/485), [#495](https://github.com/ruby/rbs/pull/495))
2235
+
2236
+ ## 0.18.1 (2020-12-01)
2237
+
2238
+ * Fix `EnvironmentWalker#each_type_name` ([#494](https://github.com/ruby/rbs/pull/494))
2239
+
2240
+ ## 0.18.0 (2020-12-01)
2241
+
2242
+ * Signature updates for `YAML`, `ObjectSpace`, and `Singleton` ([#408](https://github.com/ruby/rbs/pull/408), [#477](https://github.com/ruby/rbs/pull/477), [#482](https://github.com/ruby/rbs/pull/482))
2243
+ * `prototype rb` improvements ([#492](https://github.com/ruby/rbs/pull/492), [#487](https://github.com/ruby/rbs/pull/487), [#486](https://github.com/ruby/rbs/pull/486), [#481](https://github.com/ruby/rbs/pull/481))
2244
+ * Runtime type checker improvements ([#488](https://github.com/ruby/rbs/pull/488), [#489](https://github.com/ruby/rbs/pull/489), [#490](https://github.com/ruby/rbs/pull/490))
2245
+ * Update `DependencyWalker` API to receive _Node_ objects instead of `TypeName` ([#484](https://github.com/ruby/rbs/pull/484))
2246
+ * Assume encoding of RBS files to be UTF-8 ([#493](https://github.com/ruby/rbs/pull/493))
2247
+
2248
+ ## 0.17.0 (2020-11-14)
2249
+
2250
+ * Signature updates for `Enumerable`, `Hash`, and `TSort` ([#462](https://github.com/ruby/rbs/pull/462), [#468](https://github.com/ruby/rbs/pull/468), [#471](https://github.com/ruby/rbs/pull/471), [#472](https://github.com/ruby/rbs/pull/472), [#473](https://github.com/ruby/rbs/pull/473), [#474](https://github.com/ruby/rbs/pull/474))
2251
+ * Parser error handling improvement ([#463](https://github.com/ruby/rbs/pull/463), [#475](https://github.com/ruby/rbs/pull/475))
2252
+ * Hash spread syntax handling improvement with `prototype rb` ([#465](https://github.com/ruby/rbs/pull/465))
2253
+
2254
+ ## 0.16.0 (2020-11-05)
2255
+
2256
+ * Signature update for `DBM` ([#441](https://github.com/ruby/rbs/pull/441))
2257
+ * RBS repository ([#405](https://github.com/ruby/rbs/pull/405))
2258
+ * Support `alias` in `rbs prototype rb` ([#457](https://github.com/ruby/rbs/pull/457))
2259
+
2260
+ ## 0.15.0 (2020-11-02)
2261
+
2262
+ * Signature updates for `Kernel`, `PStore`, `Enumerable`, and `Array` ([#450](https://github.com/ruby/rbs/pull/450), [#443](https://github.com/ruby/rbs/pull/443), [#438](https://github.com/ruby/rbs/pull/438), [#437](https://github.com/ruby/rbs/pull/437), [#433](https://github.com/ruby/rbs/pull/433), [#432](https://github.com/ruby/rbs/pull/432))
2263
+ * Add helper interfaces ([#434](https://github.com/ruby/rbs/pull/434), [#428](https://github.com/ruby/rbs/pull/428))
2264
+ * Change `bool` type semantics ([#456](https://github.com/ruby/rbs/pull/456))
2265
+ * Support alias in `rbs prototype rb` ([#457](https://github.com/ruby/rbs/pull/457))
2266
+ * Runtime testing improvements ([#455](https://github.com/ruby/rbs/pull/455), [#447](https://github.com/ruby/rbs/pull/447), [#444](https://github.com/ruby/rbs/pull/444), [#431](https://github.com/ruby/rbs/pull/431))
2267
+ * Fix proc type parsing ([#451](https://github.com/ruby/rbs/pull/451))
2268
+ * Fix type variable parsing ([#442](https://github.com/ruby/rbs/pull/442))
2269
+
2270
+
2271
+ ## 0.14.0 (2020-10-17)
2272
+
2273
+ * Allow keyword names ending with `?` and `!` ([#417](https://github.com/ruby/rbs/pull/417))
2274
+ * Make `Range[T]` covariant ([#418](https://github.com/ruby/rbs/pull/418))
2275
+
2276
+ ## 0.13.1 (2020-10-09)
2277
+
2278
+ * Fix test for CI of ruby/ruby ([#412](https://github.com/ruby/rbs/pull/412))
2279
+
2280
+ ## 0.13.0 (2020-10-09)
2281
+
2282
+ * Signature updates for `URI` classes.
2283
+ * Fix tests ([#410](https://github.com/ruby/rbs/pull/410))
2284
+ * Add `--silent` option for `rbs validate` ([#411](https://github.com/ruby/rbs/pull/411))
2285
+
2286
+ ## 0.12.2 (2020-09-17)
2287
+
2288
+ * Minor signature update for `pty`
2289
+ * Fix `PTY` stdlib test
2290
+
2291
+ ## 0.12.1 (2020-09-16)
2292
+
2293
+ This version is to improve Ruby 3 testing compatibility. Nothing changed for users.
2294
+
2295
+ ## 0.12.0 (2020-09-15)
2296
+
2297
+ * Signature updates for `forwardable`, `struct`, `set`, `URI::Generic`, `URI::File`, and `BigDecimal`.
2298
+ * Define `.new` methods from `initialize` included from modules [#390](https://github.com/ruby/rbs/pull/390)
2299
+
2300
+ ## 0.11.0 (2020-08-31)
2301
+
2302
+ * Signature update for `date/datetime` [#367](https://github.com/ruby/rbs/pull/367)
2303
+ * Add test double support for runtime type checker [#380](https://github.com/ruby/rbs/pull/380)
2304
+ * Add `rbs test` command for runtime type checking [#366](https://github.com/ruby/rbs/pull/366)
2305
+ * Fix runtime type checking for record types [#365](https://github.com/ruby/rbs/pull/365)
2306
+ * Improve EnvironmentLoader API [#370](https://github.com/ruby/rbs/pull/370)
2307
+ * Allow overloading from super methods [#364](https://github.com/ruby/rbs/pull/364)
2308
+
2309
+ ## 0.10.0 (2020-08-10)
2310
+
2311
+ * Signature update for `Zlib`
2312
+ * Make "no type checker installed" message a debug print [#363](https://github.com/ruby/rbs/pull/363)
2313
+ * Print `...` for overloading method definitions [#362](https://github.com/ruby/rbs/pull/362)
2314
+ * Allow missing method implementation in Ruby code [#359](https://github.com/ruby/rbs/pull/359)
2315
+ * Runtime testing improvements [#356](https://github.com/ruby/rbs/pull/356)
2316
+
2317
+ ## 0.9.1 (2020-08-04)
2318
+
2319
+ * Ensure using Module#name [#354](https://github.com/ruby/rbs/pull/354)
2320
+ * Fix runtime test setup [#353](https://github.com/ruby/rbs/pull/353)
2321
+
2322
+ ## 0.9.0 (2020-08-03)
2323
+
2324
+ * Fix signature validation [#351](https://github.com/ruby/rbs/pull/351), [#352](https://github.com/ruby/rbs/pull/352)
2325
+ * Parsing performance improvement [#350](https://github.com/ruby/rbs/pull/350)
2326
+
2327
+ ## 0.8.0 (2020-08-01)
2328
+
2329
+ * Signature updates for `Enumerator` and `PTY`
2330
+ * Fix prototype rb/rbi error handling [#349](https://github.com/ruby/rbs/pull/349)
2331
+ * Runtime test improvements [#344](https://github.com/ruby/rbs/pull/344), [#343](https://github.com/ruby/rbs/pull/343)
2332
+ * Add `...` syntax [#342](https://github.com/ruby/rbs/pull/342)
2333
+
2334
+ ## 0.7.0 (2020-07-20)
2335
+
2336
+ * Add `DefinitionBuilder#one_instance_ancestors` and `DefinitionBuilder#one_singleton_ancestors` [#341](https://github.com/ruby/rbs/pull/341)
2337
+ * Bug fix in ConstantTable [#340](https://github.com/ruby/rbs/pull/340)
2338
+ * Make `rbs validate` faster [#338](https://github.com/ruby/rbs/pull/338)
2339
+ * Dedup methods generated by `rbs prototype rb` [#334](https://github.com/ruby/rbs/pull/334)
2340
+
2341
+ ## 0.6.0 (2020-07-12)
2342
+
2343
+ * Signature update for `Logger`.
2344
+ * Clean `Environment#inspect`. [#331](https://github.com/ruby/rbs/pull/331)
2345
+ * Module self type syntax update. [#329](https://github.com/ruby/rbs/pull/329)
2346
+ * Better validation. [#328](https://github.com/ruby/rbs/pull/328)
2347
+ * Parser performance improvement. [#327](https://github.com/ruby/rbs/pull/327)
2348
+ * Runtime type checking performance improvements with sampling [#323](https://github.com/ruby/rbs/pull/323)
2349
+
2350
+ ## 0.5.0 (2020-07-04)
2351
+
2352
+ * Signature updates for `Mutex_m`, `IO`, and `Enumerable`.
2353
+ * Syntax update. [#307](https://github.com/ruby/rbs/pull/307)
2354
+ * AST command prints _absolute_ type names with file name filtering. [#312](https://github.com/ruby/rbs/pull/312)
2355
+ * Improve CLI message. [#309](https://github.com/ruby/rbs/pull/309)
2356
+
2357
+ ## 0.4.0 (2020-06-15)
2358
+
2359
+ * Signature update for `Fiber`, `Encoding`, and `Enumerator`.
2360
+ * Fix syntax error for underscore and `!` `?` [#304](https://github.com/ruby/rbs/pull/304)
2361
+ * Improved return type inference in `rbs prototype rb` [#303](https://github.com/ruby/rbs/pull/303)
2362
+ * Skip anonymous modules/classes in `rbs prototype runtime` [#302](https://github.com/ruby/rbs/pull/302)
2363
+ * Fix `--require-relative` option in `rbs prototype runtime` [#299](https://github.com/ruby/rbs/pull/299)
2364
+ * Add JSON schema for `rbs ast` [#295](https://github.com/ruby/rbs/pull/295)
2365
+
2366
+ ## 0.3.1 (2020-05-22)
2367
+
2368
+ * Fix constant resolution again [#289](https://github.com/ruby/rbs/pull/289)
2369
+
2370
+ ## 0.3.0 (2020-05-20)
2371
+
2372
+ * Fix constant resolution [#288](https://github.com/ruby/rbs/pull/288)
2373
+
2374
+ ## 0.2.0
2375
+
2376
+ * The first release of RBS gem.
2377
+
2378
+ ## 0.1.0
2379
+
2380
+ * Version 0.1.0 is the original `rbs` gem and it is different software from RBS.