Actions
Bug #12706
closedHash#each yields inconsistent number of args
Bug #12706:
Hash#each yields inconsistent number of args
Description
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
Actions