Project

General

Profile

This project is closed and read-only.

Actions

Bug #5926

closed

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

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

Added by headius (Charles Nutter) almost 15 years ago. Updated over 13 years ago.

Status:
Closed
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.

Updated by headius (Charles Nutter) almost 14 years ago Actions #1 [ruby-core:49440]

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

Updated by kosaki (Motohiro KOSAKI) over 13 years ago Actions #2 [ruby-core:53456]

  • Status changed from Open to Closed

1.8 is dead.

Actions

Also available in: PDF Atom