/* TEST_OUTPUT: --- fail_compilation/fail61.d(22): Error: no property 'B' for type 'fail61.A.B' fail_compilation/fail61.d(23): Error: no property 'B' for type 'fail61.A.B' fail_compilation/fail61.d(32): Error: no property 'A2' for type 'fail61.B2' fail_compilation/fail61.d(41): Error: this for foo needs to be type B3 not type fail61.C3 --- */ class A { class B : A { static const int C = 5; } } void main() { int n1 = A.B.C; int n2 = A.B.B.C; // Line22 int n3 = A.B.B.B.C; // Line23 } class A2 { void foo(){ assert(0);} } class B2 : A2 { override void foo(){} } class C2 : B2 { void bar() { B2.A2.foo(); // Line32 } } class B3 { void foo(){ assert(0); } } class C3 { void bar() { B3.foo(); // Line41 } }