Actions
Bug #7190
closedwarning: already initialized constant の書式
Description
未定義の定数を参照した場合のエラーメッセージでは名前空間がすべて表示されます:
module A; B; end
#=> NameError: uninitialized constant A::B
A::B
#=> NameError: uninitialized constant A::B
しかし、既に定義してある定数を再定義した場合の警告メッセージでは名前空間が表示されません:
module A; B = :foo end
module A; B = :bar end
#=> warning: already initialized constant B
A::B = :baz
#=> warning: already initialized constant B
後者の場合も前者の場合にならって名前空間を表示した方がよいと思います。
warning: already initialized constant A::B
メタプログラミングで、$stderr = StringIO.new のように警告メッセージをリダイレクトしてコード内で定数の再定義を捕捉したい場合に、名前空間なしでは問題になっている定数を再現できません。
Actions
Like0
Like0Like0Like0