Project

General

Profile

Bug #5926

Procs created by Method#to_proc do not pass block through.

Added by headius (Charles Nutter) over 7 years ago. Updated about 6 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 1.8.7 (2011-12-28 patchlevel 357) [i686-darwin10.8.0]
[ruby-core:42227]

Description

The Proc object you get back from a Method on which you have called to_proc does not appear to pass blocks through when called. I do not see any reason why it should behave this way.

system ~/projects/rubyspec $ rvm 1.8.7 do ruby -v -e "def foo; yield; end; method(:foo).to_proc.call {puts 'ok'}"
ruby 1.8.7 (2011-12-28 patchlevel 357) [i686-darwin10.8.0]
-e:1:in foo': no block given (LocalJumpError)
from -e:1:in
to_proc'
from -e:1:in `call'
from -e:1

system ~/projects/rubyspec $ rvm 1.9.3 do ruby -v -e "def foo; yield; end; method(:foo).to_proc.call {puts 'ok'}"
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin10.8.0]
ok

system ~/projects/rubyspec $ rvm 1.9.2 do ruby -v -e "def foo; yield; end; method(:foo).to_proc.call {puts 'ok'}"
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin10.8.0]
ok

Rubinius already implements it the 1.9 way in both 1.8 and 1.9 modes, and JRuby will do so from version 1.6.6 on.

History

Updated by headius (Charles Nutter) over 6 years ago

This should be fixed (if 1.8 is still open for fixes) or closed (if it is not).

Updated by kosaki (Motohiro KOSAKI) about 6 years ago

  • Status changed from Open to Closed

1.8 is dead.

Also available in: Atom PDF