From: josh.cheek@... Date: 2016-02-15T03:36:05+00:00 Subject: [ruby-core:73816] [Ruby trunk Bug#12073] local variable interferes with keyword arguments Issue #12073 has been reported by Josh Cheek. ---------------------------------------- Bug #12073: local variable interferes with keyword arguments https://bugs.ruby-lang.org/issues/12073 * Author: Josh Cheek * Status: Open * Priority: Normal * Assignee: * ruby -v: ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin13] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- This code causes a syntax error: ~~~ def a(b:) b end a = 1 a b: 9 # !> program.rb:5: syntax error, unexpected ':', expecting end-of-input # !> a b: (9) # !> ^ ~~~ However, if we remove the local assignment it works ~~~ def a(b:) b end a b: 9 # => 9 ~~~ Or if we use parentheses it works ~~~ def a(b:) b end a = 1 a(b: 9) # => 9 ~~~ Or if we use non-keyword arguments it works ~~~ def a(b) b end a = 1 a 9 # => 9 ~~~ -- https://bugs.ruby-lang.org/ Unsubscribe: