Actions
Bug #5748
closedclass_eval ブロック内での定数のスコープがドキュメントと矛盾
Description
以下の class_eval の説明によると、
http://doc.ruby-lang.org/ja/1.9.3/method/Module/i/class_eval.html
定数とクラス変数のスコープは、自身のモジュール定義式内と同じスコープになります。
とのことですが、以下のコードを実行すると NameError が発生します。
class MyClass
CONST = "MyClass"
end
MyClass.class_eval do
p CONST # => NameError
end
実行結果:
test.rb:6:in block in <main>': uninitialized constant CONST (NameError) from test.rb:5:in
class_eval'
from test.rb:5:in `'
期待した結果:
"MyClass" と表示される。
Updated by matz (Yukihiro Matsumoto) about 13 years ago
ドキュメントの間違いです。class_evalは定数の探索経路を変えません。
Updated by miya (Yasunori Miyamoto) about 13 years ago
るりまプロジェクトの方に新しくチケットを作成しました。
#5760
そのため、こちらはクローズして良いと思います。
Updated by sorah (Sorah Fukumori) about 13 years ago
- Status changed from Open to Closed
Actions
Like0
Like0Like0Like0