From: alxtskrnk@... Date: 2016-08-25T18:43:28+00:00 Subject: [ruby-core:77069] [Ruby trunk Bug#12706] Hash#each yields inconsistent number of args Issue #12706 has been reported by bug hit. ---------------------------------------- Bug #12706: Hash#each yields inconsistent number of args https://bugs.ruby-lang.org/issues/12706 * Author: bug hit * Status: Open * Priority: Normal * Assignee: * ruby -v: * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- ```ruby def foo(a, b) p [a, b] end def bar(a, b = 2) p [a, b] end foo_lambda = method(:foo).to_proc bar_lambda = method(:bar).to_proc {a: 1}.each(&foo_lambda) {a: 1}.each(&bar_lambda) ``` From #12705, yielding to method lambdas uses lambda/method arg semnatics the yield to foo produces `[:a, 1]` suggesting that each is yielding two values `yield key, value` but yield to bar produces `[[:a, 1], 2]` suggesting that each is yielding one value `yield [key, value]` it would be better if you always knew what to expect from it -- https://bugs.ruby-lang.org/ Unsubscribe: