From: _ wanabe <redmine@...>
Date: 2010-01-10T05:36:57+09:00
Subject: [ruby-dev:40009] [Bug #2583] クラス定義中の defined? yield が "yield" 	を返す

Bug #2583: クラス定義中の defined? yield が "yield" を返す
http://redmine.ruby-lang.org/issues/show/2583

起票者: _ wanabe
ステータス: Open, 優先度: Normal
担当者: Koichi Sasada, カテゴリ: YARV, Target version: 1.9.x
ruby -v: ruby 1.9.2dev (2010-01-09 trunk 26260) [i386-mingw32]

クラス定義中は yield を呼べないにも関わらず、defined?(yield) が "yield" を返します。

$ ruby -ve 'class Foo;p defined?(yield);end'
ruby 1.9.2dev (2010-01-09 trunk 26260) [i386-mingw32]
"yield"

GET_BLOCK_PTR() はクラス定義中なら 0 を返す方がいいと思うのですがどうでしょうか。
パッチを添付します。なお、このパッチで Bug #2568 も修正されます。


----------------------------------------
http://redmine.ruby-lang.org