From: matz@... (Yukihiro Matsumoto) Date: 1997-08-15T19:34:01+09:00 Subject: [ruby-dev:135] Re: meta programming features まつもと ゆきひろです さて,その後いろいろ考えた結果,Object#typeで特異クラスが見 えるのは良くないという結論が出ました.理由は以下の通りです. * 特異メソッドが定義されているオブジェクトに対しては特異メ ソッドを返し,そうでないオブジェクトに対しては通常のクラ スを返すのは使いにくい * そもそもfoo.evalとfoo.type.evalの対比が出て来た経緯も typeで特異クラスが見えることによる からです.以下のパッチを当てて下さい. --- object.c~ Fri Aug 8 16:19:14 1997 +++ object.c Fri Aug 15 15:51:28 1997 @@ -81,3 +81,8 @@ { - return obj->class; + struct RClass *class = (struct RClass*)CLASS_OF(obj); + + if (FL_TEST(class, FL_SINGLETON)) { + class = class->super; + } + return (VALUE)class; }