Issue #11456 has been updated by Tomoyuki Chikanaga. Backport changed from 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: REQUIRED to 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: DONE r50409, r51616, r51617 and r51624 were backported into `ruby_2_2` branch at r52046. r50409 により { %w"key": 0 } が SyntaxError になるという(おそらく誰も使っていないと思われる)非互換が入ります。 この変更の全体が必要とは限らないと思いますが、必要なところだけ切り取れる自信がなかったのでまるごと backport します。 ---------------------------------------- Bug #11456: Hash リテラル中で rescue をもちいると SyntaxError になる https://bugs.ruby-lang.org/issues/11456#change-54368 * Author: Koichi ITO * Status: Closed * Priority: Normal * Assignee: * ruby -v: ruby 2.3.0dev (2015-08-18 trunk 51622) [x86_64-darwin13] * Backport: 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: DONE ---------------------------------------- ruby 2.3.0dev (2015-08-18 trunk 51622) にて、Hash リテラル中で rescue をもちいると SyntaxError になりました。 まず、ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin13] の実行結果です。 ~~~ruby % irb irb(main):001:0> {foo: ("" rescue "")} => {:foo=>""} ~~~ 次に、ruby 2.3.0dev (2015-08-18 trunk 51622) [x86_64-darwin13] の実行結果です。 ~~~ruby % irb irb(main):001:0> {foo: ("" rescue "")} SyntaxError: (irb):1: syntax error, unexpected modifier_rescue, expecting ')' { foo: ('' rescue '') } ^ from /Users/koic/.rbenv/versions/2.3.0-dev/bin/irb:11:in `<main>' ~~~ こちらの挙動について期待している振る舞いかどうか判断がつかなかったため、レポートとさせてください。 -- https://bugs.ruby-lang.org/