[前][次][番号順一覧][スレッド一覧]

ruby-reference-manual:3450

From: "pypypy567 (py _)" <redmine@r...>
Date: Mon, 17 Dec 2012 06:42:57 +0900
Subject: [ruby-reference-manual:3450] [るりまプロジェクト - Bug #7578] 定義済みクラスに現在と異なる親クラスを指定してクラス定義を書いたときの挙動


Issue #7578 has been updated by pypypy567 (py _).

File def.rd.patch added

1.8.2 からのようですね。

$ ruby -ve "class A; end; class B; end; class C < A; end; class C < B; end"
ruby 1.8.1 (2003-12-25) [i386-mswin32]
-e:1: warning: already initialized constant C
ruby 1.8.2 (2004-12-25) [i386-mswin32]
-e:1: superclass mismatch for class C (TypeError)

一応分岐付きでパッチを書いてみましたが古い記述は 1.8.1 以前だから消してもいいですね。

----------------------------------------
Bug #7578: 定義済みクラスに現在と異なる親クラスを指定してクラス定義を書いたときの挙動
https://bugs.ruby-lang.org/issues/7578#change-34781

Author: wanabe (_ wanabe)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 
reporter: 
ruby_version: 


=begin
「クラス/メソッドの定義」の「クラス定義」に

 クラスが既に定義されているとき、さらに同じクラス名でクラス定義を書くとクラスの定義の追加になります。
 ただし、元のクラスと異なるスーパークラスを明示的に指定して定義すると、元のクラスとは異なる新たなクラスを同名で定義することになります。
との記述があり、すぐ下にサンプルコードが掲載されています。
ですが、手元では 1.8.7p358、1.9.3p194 ともに

 superclass mismatch for class Foo (TypeError)
となり、再定義されることはありませんでした。

変更されたタイミングはわかりませんが、たぶんこの部分は昔の名残りではないでしょうか。
=end


-- 
http://bugs.ruby-lang.org/

--
ML: ruby-reference-manual@m...
Info: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

      3449 2012-12-16 14:53 [s.wanabe@g...       ] [るりまプロジェクト - Bug #7578][Open] 定義済みクラスに現在と異なる親クラスを指定してクラス定義を書いたときの挙動
->    3450 2012-12-16 22:42 ┗[redmine@r...        ] [るりまプロジェクト - Bug #7578] 定義済みクラスに現在と異なる親クラスを指定してクラス定義を書いたときの挙動