From: nobu@... Date: 2015-10-13T01:22:38+00:00 Subject: [ruby-dev:49300] [Ruby trunk - Bug #11456] Hash リテラル中で rescue をもちいると SyntaxError になる Issue #11456 has been updated by Nobuyoshi Nakada. 2.2.3でも `%q"key":` は通るけれど `%q[key]:` はダメだとか微妙な感じだったので、ナシということで。 ---------------------------------------- Bug #11456: Hash リテラル中で rescue をもちいると SyntaxError になる https://bugs.ruby-lang.org/issues/11456#change-54434 * 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 `
' ~~~ こちらの挙動について期待している振る舞いかどうか判断がつかなかったため、レポートとさせてください。 -- https://bugs.ruby-lang.org/