tests/cases/compiler/genericImplements.ts(8,7): error TS2420: Class 'X' incorrectly implements interface 'I'.
  Types of property 'f' are incompatible.
    Type '<T extends B>() => T' is not assignable to type '<T extends A>() => T'.
      Type 'B' is not assignable to type 'T'.


==== tests/cases/compiler/genericImplements.ts (1 errors) ====
    class A { a; };
    class B { b; };
    interface I {
        f<T extends A>(): T;
    } // { f: () => { a; } }
    
    // OK
    class X implements I {  
          ~
!!! error TS2420: Class 'X' incorrectly implements interface 'I'.
!!! error TS2420:   Types of property 'f' are incompatible.
!!! error TS2420:     Type '<T extends B>() => T' is not assignable to type '<T extends A>() => T'.
!!! error TS2420:       Type 'B' is not assignable to type 'T'.
        f<T extends B>(): T { return undefined; }
    } // { f: () => { b; } }
    
    // OK
    class Y implements I {
        f<T extends A>(): T { return undefined; }
    } // { f: () => { a; } }
    
    // OK
    class Z implements I {
        f<T>(): T { return undefined; }
    } // { f: <T>() => T } 