From: shyouhei@... Date: 2017-03-13T14:16:57+00:00 Subject: [ruby-core:80134] [Ruby trunk Bug#12705] yielding args to a lambda uses block/proc rather than lambda/method semantics Issue #12705 has been updated by shyouhei (Shyouhei Urabe). Target version set to 2.5 We looked at this issue in today's developer meeting and Koichi said he want this be fixed in 2.5. ---------------------------------------- Bug #12705: yielding args to a lambda uses block/proc rather than lambda/method semantics https://bugs.ruby-lang.org/issues/12705#change-63562 * Author: bughit (bug hit) * Status: Assigned * Priority: Normal * Assignee: nobu (Nobuyoshi Nakada) * Target version: 2.5 * ruby -v: * Backport: 2.2: UNKNOWN, 2.3: REQUIRED, 2.4: REQUIRED ---------------------------------------- ```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: