How to handle this situation:
module typeTest;

class A{

        void a(){}
}

class B:A{
        int b(){
                return 1;
        }

}

class C:B,D{
        string c(){
                return "";
        }
        override int d() {
                return 0;               
        }
}

interface D{
        int d();
}
TypeInfo __typeInfo(T)(T t){
        return typeid(T);
}

unittest{
        A a= new A;
        A b= new B;
        A c = new C;

        TypeInfo aInfo=__typeInfo(a);
        TypeInfo bInfo=__typeInfo(b);
        TypeInfo cInfo=__typeInfo(c);

        assert(aInfo!=bInfo); //fails
        assert(aInfo!=cInfo);//fails
        assert(bInfo!=cInfo);//fails

}

Reply via email to