From: SASADA Koichi Date: 2010-01-11T14:14:12+09:00 Subject: [ruby-dev:40027] Re: [Bug #2583] クラス定義中の defined? yield が "yield" を返す (2010/01/10 5:36), _ wanabe wrote:: > 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 も修正されます。  分岐が含まれると嫌なので,ビット演算なコードにすると良いかと思います. -- // SASADA Koichi at atdot dot net