Project

General

Profile

Actions

Backport #5731

closed

enum_for を使うと method_missing にブロックが渡されない

Added by tommy (Masahiro Tomita) about 13 years ago. Updated over 8 years ago.

Status:
Rejected
Assignee:
-
[ruby-dev:44961]

Description

次のスクリプトを 1.9.3 で実行すると enum_for の方は block が nil になります。
1.8.7 では両方とも block が渡されました。


class A
def method_missing(name, *args, &block)
p block
end
end

a = A.new
a.hoge{|l| p l} # ブロックが渡される
a.enum_for(:hoge).each{|l| p l} # ブロックが渡されない

% /usr/local/ruby187/bin/ruby -v a.rb
ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-linux]
#Proc:0xb76dbb60@a.rb:9
#Proc:0xb76db8e0@a.rb:10

% ruby -v a.rb
ruby 1.9.3p0 (2011-10-30) [i686-linux]
#Proc:0x8829080@a.rb:9
nil

使い方が間違ってるだけだったらすいません

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0