まつもと ゆきひろです

In message "[ruby-list:33736] Redefinition of builtin class"
    on 02/02/04, Shin-ichiro HARA <sinara / blade.nagaokaut.ac.jp> writes:

|昔は、例えば Integer に foo を定義するには、
|
|   class Integer < Numeric
|     def foo; 1; end
|   end
|
|とスーパークラスまで書かないといけなかったと記憶してるんですが、

そうだったっけ? 「指定したら一致してないといけない」という
ルールは作った覚えがあるんですが。

|今(1.6.6)では、
|
|   class Integer < Numeric
|     def foo; 1; end
|   end
|   p 0.respond_to? :foo #=> false
|
|で、warning: already initialized constant Integer も出ますね。
|これって仕様変更?

これはバグです。現状では「指定したら別物」という挙動になって
ますね。さっそく直します。