lindquist@114: module classes9; lindquist@114: lindquist@114: class C lindquist@114: { lindquist@114: } lindquist@114: lindquist@114: class D : C lindquist@114: { lindquist@114: } lindquist@114: lindquist@114: class E lindquist@114: { lindquist@114: } lindquist@114: lindquist@114: class F : E lindquist@114: { lindquist@114: } lindquist@114: lindquist@114: void main() lindquist@114: { lindquist@114: { lindquist@114: D d = new D; lindquist@114: { lindquist@114: C c = d; lindquist@114: assert(c !is null); lindquist@114: D d2 = cast(D)c; lindquist@114: assert(d2 !is null); lindquist@114: E e = cast(E)d; lindquist@114: assert(e is null); lindquist@114: F f = cast(F)d; lindquist@114: assert(f is null); lindquist@114: } lindquist@114: } lindquist@114: { lindquist@114: F f = new F; lindquist@114: { lindquist@114: E e = f; lindquist@114: assert(e !is null); lindquist@114: F f2 = cast(F)e; lindquist@114: assert(f2 !is null); lindquist@114: C c = cast(C)f; lindquist@114: assert(c is null); lindquist@114: D d2 = cast(D)f; lindquist@114: assert(d2 is null); lindquist@114: } lindquist@114: } lindquist@114: }