From: ko1@... Date: 2016-03-16T09:39:52+00:00 Subject: [ruby-core:74374] [Ruby trunk Bug#12104][Rejected] Procs keyword arguments affect value of previous argument Issue #12104 has been updated by Koichi Sasada. Status changed from Open to Rejected You are right. It is intentional. ---------------------------------------- Bug #12104: Procs keyword arguments affect value of previous argument https://bugs.ruby-lang.org/issues/12104#change-57494 * Author: Brian Underwood * Status: Rejected * Priority: Normal * Assignee: * ruby -v: Tested in 2.3.0 and 2.2.3 * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- This seems like a bug to me: ~~~ 2.3.0 :001 > p = Proc.new {|nodes, match_array: false| puts nodes.inspect } => # 2.3.0 :002 > p.call([]) nil => nil 2.3.0 :003 > p.call([], match_array: true) [] => nil ~~~ When I try the same thing in a method I get the behavior I would expect: ~~~ 2.3.0 :004 > def foo(nodes, match_array: false) 2.3.0 :005?> puts nodes.inspect 2.3.0 :006?> end => :foo 2.3.0 :007 > foo([]) [] => nil 2.3.0 :008 > foo([], match_array: true) [] ~~~ -- https://bugs.ruby-lang.org/ Unsubscribe: