tests/cases/compiler/genericCloneReturnTypes2.ts(13,22): error TS2684: The 'this' context of type 'MyList<string>' is not assignable to method's 'this' of type 'MyList<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/compiler/genericCloneReturnTypes2.ts(14,25): error TS2684: The 'this' context of type 'MyList<string>' is not assignable to method's 'this' of type 'MyList<T>'.
tests/cases/compiler/genericCloneReturnTypes2.ts(15,5): error TS2322: Type 'MyList<string>' is not assignable to type 'MyList<number>'.
  Type 'string' is not assignable to type 'number'.
tests/cases/compiler/genericCloneReturnTypes2.ts(15,25): error TS2684: The 'this' context of type 'MyList<string>' is not assignable to method's 'this' of type 'MyList<T>'.


==== tests/cases/compiler/genericCloneReturnTypes2.ts (4 errors) ====
    class MyList<T> {
        public size: number;
        public data: T[];
        constructor(n: number) {
            this.size = n;
            this.data = new Array<T>(this.size);
        }
        public clone() {
            return new MyList<T>(this.size);
        }
    }
    var a: MyList<string>;
    var b: MyList<any> = a.clone(); // ok
                         ~
!!! error TS2684: The 'this' context of type 'MyList<string>' is not assignable to method's 'this' of type 'MyList<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 c: MyList<string> = a.clone(); // bug was there was an error on this line
                            ~
!!! error TS2684: The 'this' context of type 'MyList<string>' is not assignable to method's 'this' of type 'MyList<T>'.
    var d: MyList<number> = a.clone(); // error
        ~
!!! error TS2322: Type 'MyList<string>' is not assignable to type 'MyList<number>'.
!!! error TS2322:   Type 'string' is not assignable to type 'number'.
                            ~
!!! error TS2684: The 'this' context of type 'MyList<string>' is not assignable to method's 'this' of type 'MyList<T>'.