Project

General

Profile

Actions

Bug #5926

closed

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

Added by headius (Charles Nutter) about 12 years ago. Updated about 11 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) over 11 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 11 years ago

  • Status changed from Open to Closed

1.8 is dead.

Actions

Also available in: Atom PDF

Like0
Like0Like0