Gabriel Horner created JRUBY-6550:
-------------------------------------
Summary: [1.9] yield yields incorrect args when splatted args
passed as 2nd arg to yield
Key: JRUBY-6550
URL: https://jira.codehaus.org/browse/JRUBY-6550
Project: JRuby
Issue Type: Bug
Components: Core Classes/Modules, Ruby 1.9.3
Affects Versions: JRuby 1.6.7
Environment: mac osx
Reporter: Gabriel Horner
Executing the following:
def passes(*args, &block); yield([1,2,3]); end
def fails(*args, &block); yield([1,2,3], *args); end
passes {|x| p x }
passes(4) {|x| p x }
fails {|x| p x }
fails(4) {|x| p x }
In 1.9.3 and rubinius 1.9, all yields print -> [1,2,3]
In jruby 1.6.7 and 1.7.0 dev (in 1.9 mode), I get:
[1, 2, 3]
[1, 2, 3]
1
[1, 2, 3]
As you can see, yield([1,2,3], *args) yields the first argument split up
instead of yielding the full array. I noticed this bug while trying to get my
test suite jruby 1.9 compatible on bacon:
https://github.com/chneukirchen/bacon/blob/master/lib/bacon.rb#L346
This ticket may be related: http://jira.codehaus.org/browse/JRUBY-6499
Thanks
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email