Project

General

Profile

Bug #2583

クラス定義中の defined? yield が "yield" を返す

Added by _ wanabe about 6 years ago. Updated almost 5 years ago.

Status:
Closed
Priority:
Normal
Assignee:
ruby -v:
ruby 1.9.2dev (2010-01-09 trunk 26260) [i386-mingw32]
Backport:
2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
[ruby-dev:40009]

Description

=begin
クラス定義中は 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 も修正されます。
=end

check_block.patch Magnifier (485 Bytes) _ wanabe, 01/10/2010 05:36 AM


Related issues

Duplicated by Ruby trunk - Bug #2584: クラス定義中の defined? yield が "yield" を返す Rejected 01/10/2010

History

#1 Updated by Yukihiro Matsumoto about 6 years ago

=begin
まつもと ゆきひろです

In message "Re: [Bug #2583] クラス定義中の defined? yield が "yield" を返す"
on Sun, 10 Jan 2010 05:36:57 +0900, _ wanabe redmine@ruby-lang.org writes:

|クラス定義中は 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 も修正されます。

コミットしてみてください。

=end

#2 Updated by Koichi Sasada about 6 years ago

=begin
(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

=end

#3 Updated by _ wanabe about 6 years ago

  • Status changed from Open to Closed

=begin
ご指摘ありがとうございます。
r26283 でそのように変更してコミットしました。
=end

Also available in: Atom PDF