RHGの逆襲 第3回に向けて、ruby-trunk の class.c を読んでて気がついたのですが、クラス定義の時superclassにClassを指定するとTypeErrorが発生するのに、Class.newメソッドを使って無名クラスを生成する時にはこの制限が回避されてるんですよね。
class A < Class end TypeError: can't make subclass of Class from (irb):1 from irb-trunk:12:in `' A = Class.new(Class) => A A.superclass => Class
だけどやっぱり継承関係がおかしくなってるらしくて、このようにして作ったクラス(A)はインスタンスを作れないんですよね。
A.new TypeError: wrong instance allocation from (irb):5:in `new' from (irb):5 from irb-trunk:12:in `'
もしかしたら何か裏技的な使い道があるのかもしれないけど。
というわけで ruby-dev に投げてみたんですが、埋もれちゃってますね。
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/34114