From: corey@... Date: 2015-12-17T16:59:38+00:00 Subject: [ruby-core:72219] [Ruby trunk - Bug #11833] [Open] 2.2.4 syntax error when naked percent notation touches keyword arguments Issue #11833 has been reported by Corey Csuhta. ---------------------------------------- Bug #11833: 2.2.4 syntax error when naked percent notation touches keyword arguments https://bugs.ruby-lang.org/issues/11833 * Author: Corey Csuhta * Status: Open * Priority: Normal * Assignee: * ruby -v: 2.2.4 * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- Possible regression: In Ruby 2.2.3, naked percent-notation was allowed in keyword arguments without spacing, like this: ~~~ $ ruby -v ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin15] $ ruby -e "def foo(x:%i[a b c]); puts x end; foo" a b c ~~~ In Ruby 2.2.4 this is a syntax error: ~~~ $ ruby -v ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-darwin15] $ ruby -e "def foo(x:%i[a b c]); puts x end; foo" -e:1: syntax error, unexpected '%', expecting ')' def foo(x:%i[a b c]); puts x end; foo ^ -e:1: syntax error, unexpected ')', expecting end-of-input def foo(x:%i[a b c]); puts x end; foo ~~~ This however works: ~~~ $ ruby -v ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-darwin15] $ ruby -e "def foo(x: %i[a b c]); puts x end; foo" a b c ~~~ Notice the extra space after `x:` -- https://bugs.ruby-lang.org/