=== tests/cases/compiler/baseTypeOrderChecking.ts === var someVariable: Class4; >someVariable : Class4, Symbol(someVariable, Decl(baseTypeOrderChecking.ts, 0, 3)) >Class4 : Class4, Symbol(Class4, Decl(baseTypeOrderChecking.ts, 26, 1)) >Class2 : Class2, Symbol(Class2, Decl(baseTypeOrderChecking.ts, 8, 1)) class Class1 >Class1 : Class1, Symbol(Class1, Decl(baseTypeOrderChecking.ts, 0, 33)) { } class Class2 extends Class1 >Class2 : Class2, Symbol(Class2, Decl(baseTypeOrderChecking.ts, 8, 1)) >Class1 : Class1, Symbol(Class1, Decl(baseTypeOrderChecking.ts, 0, 33)) { } class Class3 >Class3 : Class3, Symbol(Class3, Decl(baseTypeOrderChecking.ts, 16, 1)) >T : T, Symbol(T, Decl(baseTypeOrderChecking.ts, 20, 13)) { public memberVariable: Class2; >memberVariable : Class2, Symbol(memberVariable, Decl(baseTypeOrderChecking.ts, 22, 1)) >Class2 : Class2, Symbol(Class2, Decl(baseTypeOrderChecking.ts, 8, 1)) } class Class4 extends Class3 >Class4 : Class4, Symbol(Class4, Decl(baseTypeOrderChecking.ts, 26, 1)) >T : T, Symbol(T, Decl(baseTypeOrderChecking.ts, 30, 13)) >Class3 : Class3, Symbol(Class3, Decl(baseTypeOrderChecking.ts, 16, 1)) >T : T, Symbol(T, Decl(baseTypeOrderChecking.ts, 30, 13)) { }