Issue #10421 has been updated by Usaku NAKAMURA.
Backport changed from 2.0.0: REQUIRED, 2.1: DONE to 2.0.0: DONE, 2.1:
DONE
Backported into ruby_2_0_0
at r48149.
Bug #10421: BasicObject継承クラスで object_id メソッドを定義すると redefining … 警告が出る
- Author: Satoshi TAGOMORI
- Status: Closed
- Priority: Normal
- Assignee:
- Category:
- Target version:
- ruby -v: ruby 2.1.3p242 (2014-09-19 revision 47630)
[x86_64-darwin12.0] - Backport: 2.0.0: DONE, 2.1: DONE
BasicObject 継承クラスに通常 #object_id
がありませんが、これだと pp などに該当オブジェクトを与えると
NoMethodError 例外が出たりして実用上困るケースがあります。ただし #object_id
を定義すると以下のような警告が出ます。
warning: redefining `object_id' may cause serious problems
BasicObject には元々 #object_id
は存在しないため redefining という警告はこの場合は誤りであり、また
#object_id
を定義することの危険については意図してBasicObjectを使っているプログラマには理解されているものと思います。
このため、この警告は BasicObject 継承クラスにおいては出さないのが適当かと思います。