tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInInstanceMember2.ts(14,9): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInInstanceMember2.ts(26,10): error TS2684: The 'this' context of type 'C<string>' is not assignable to method's 'this' of type 'C<T>'.
  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/members/instanceAndStaticMembers/typeOfThisInInstanceMember2.ts (2 errors) ====
    class C<T> {
        x = this;
        foo() {
            return this;
        }
        constructor(x: T) {
            var t = this;
            t.x;
            t.y;
            t.z;
            var r = t.foo();
        }
    
        get y() {
            ~
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
            return this;
        }
    
        z: T;
    }
    
    var c: C<string>;
    // all ok
    var r = c.x;
    var ra = c.x.x.x;
    var r2 = c.y;
    var r3 = c.foo();
             ~
!!! error TS2684: The 'this' context of type 'C<string>' is not assignable to method's 'this' of type 'C<T>'.
!!! 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 r4 = c.z;
    var rs = [r, r2, r3];
    
    rs.forEach(x => {
        x.foo;
        x.x;
        x.y;
        x.z;
    });