==== tests/cases/compiler/classExtendsItselfIndirectly2.ts (2 errors) ====
    class C extends N.E { foo: string; } // error
          ~
!!! classExtendsItselfIndirectly2.ts(1,7): error TS2100: Class 'C' is recursively referenced as a base type of itself.
    
    module M {
        export class D extends C { bar: string; }
    
    }
    
    module N {
        export class E extends M.D { baz: number; }
    }
    
    module O {
        class C2<T> extends Q.E2<T> { foo: T; } // error
              ~~
!!! classExtendsItselfIndirectly2.ts(13,11): error TS2100: Class 'O.C2<T>' is recursively referenced as a base type of itself.
    
        module P {
            export class D2<T> extends C2<T> { bar: T; }
        }
    
        module Q {
            export class E2<T> extends P.D2<T> { baz: T; }
        }
    }