From: eregontp@... Date: 2016-10-15T10:37:55+00:00 Subject: [ruby-core:77634] [Ruby trunk Bug#12705] yielding args to a lambda uses block/proc rather than lambda/method semantics Issue #12705 has been updated by Benoit Daloze. This bug seems specific to yield, calling the lambda behaves as expected. I added specs in ruby/spec to verify this behavior: https://github.com/ruby/spec/commit/c4cabcf37ac804ea127bd0216c0239e5f9045ec1 The ruby_bug guard can be adjusted as soon as there is a minor release containing the fix for this bug. ---------------------------------------- Bug #12705: yielding args to a lambda uses block/proc rather than lambda/method semantics https://bugs.ruby-lang.org/issues/12705#change-60905 * Author: bug hit * Status: Assigned * Priority: Normal * Assignee: Koichi Sasada * ruby -v: * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- ```ruby def yield_test yield 1, 2 yield [1, 2] end def foo(a, b) p a, b end method_lambda = method(:foo).to_proc normal_lambda = ->a, b{p a, b} yield_test(&normal_lambda) yield_test(&method_lambda) ``` the yield of [1, 2] to the method_lambda produces an argument error as you would expect but the same yield to the normal_lamda does not, the single array arg is slpatted per block/proc semantics -- https://bugs.ruby-lang.org/ Unsubscribe: