tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendingClass.ts(30,10): error TS2684: The 'this' context of type 'D2<string>' is not assignable to method's 'this' of type 'C2<T>'.
  Types of property 'foo' are incompatible.
    Type 'string' is not assignable to type 'T'.
      'T' could be instantiated with an arbitrary type which could be unrelated to 'string'.


==== tests/cases/conformance/classes/classDeclarations/classHeritageSpecification/classExtendingClass.ts (1 errors) ====
    class C {
        foo: string;
        thing() { }
        static other() { }
    }
    
    class D extends C {
        bar: string;
    }
    
    var d: D;
    var r = d.foo;
    var r2 = d.bar;
    var r3 = d.thing();
    var r4 = D.other();
    
    class C2<T> {
        foo: T;
        thing(x: T) { }
        static other<T>(x: T) { }
    }
    
    class D2<T> extends C2<T> {
        bar: string;
    }
    
    var d2: D2<string>;
    var r5 = d2.foo;
    var r6 = d2.bar;
    var r7 = d2.thing('');
             ~~
!!! error TS2684: The 'this' context of type 'D2<string>' is not assignable to method's 'this' of type 'C2<T>'.
!!! error TS2684:   Types of property 'foo' are incompatible.
!!! error TS2684:     Type 'string' is not assignable to type 'T'.
!!! error TS2684:       'T' could be instantiated with an arbitrary type which could be unrelated to 'string'.
    var r8 = D2.other(1);