tests/cases/compiler/promiseTypeAssignability.ts(6,1): error TS2322: Type 'Promise<string>' is not assignable to type 'PromiseLike<number>'.
  Types of property 'then' are incompatible.
    Type '{ (onfulfilled?: null, onrejected?: null): Promise<string>; <TResult>(onfulfilled: null, onrejected: (reason: any) => TResult | PromiseLike<TResult>): Promise<string | TResult>; <TResult>(onfulfilled: (value: string) => TResult | PromiseLike<TResult>, onrejected: null): Promise<TResult>; <TResult>(onfulfilled: (value: string) => TResult | PromiseLike<TResult>): Promise<TResult>; <TResult>(onfulfilled: (value: string) => TResult | PromiseLike<TResult>, onrejected: (reason: any) => TResult | PromiseLike<TResult>): Promise<TResult>; <TResult1, TResult2>(onfulfilled: (value: string) => TResult1 | PromiseLike<TResult1>, onrejected: (reason: any) => TResult2 | PromiseLike<TResult2>): Promise<TResult1 | TResult2>; }' is not assignable to type '{ (onfulfilled?: null, onrejected?: null): PromiseLike<number>; <TResult>(onfulfilled: null, onrejected: (reason: any) => TResult | PromiseLike<TResult>): PromiseLike<number | TResult>; <TResult>(onfulfilled: (value: number) => TResult | PromiseLike<TResult>, onrejected: null): PromiseLike<TResult>; <TResult>(onfulfilled: (value: number) => TResult | PromiseLike<TResult>): PromiseLike<TResult>; <TResult>(onfulfilled: (value: number) => TResult | PromiseLike<TResult>, onrejected: (reason: any) => TResult | PromiseLike<TResult>): PromiseLike<TResult>; <TResult1, TResult2>(onfulfilled: (value: number) => TResult1 | PromiseLike<TResult1>, onrejected: (reason: any) => TResult2 | PromiseLike<TResult2>): PromiseLike<TResult1 | TResult2>; }'.


==== tests/cases/compiler/promiseTypeAssignability.ts (1 errors) ====
    var x: Promise<string>;
    var y: PromiseLike<string>;
    var z: PromiseLike<number>;
    
    y = x; // ok
    z = x; // error
    ~
!!! error TS2322: Type 'Promise<string>' is not assignable to type 'PromiseLike<number>'.
!!! error TS2322:   Types of property 'then' are incompatible.
!!! error TS2322:     Type '{ (onfulfilled?: null, onrejected?: null): Promise<string>; <TResult>(onfulfilled: null, onrejected: (reason: any) => TResult | PromiseLike<TResult>): Promise<string | TResult>; <TResult>(onfulfilled: (value: string) => TResult | PromiseLike<TResult>, onrejected: null): Promise<TResult>; <TResult>(onfulfilled: (value: string) => TResult | PromiseLike<TResult>): Promise<TResult>; <TResult>(onfulfilled: (value: string) => TResult | PromiseLike<TResult>, onrejected: (reason: any) => TResult | PromiseLike<TResult>): Promise<TResult>; <TResult1, TResult2>(onfulfilled: (value: string) => TResult1 | PromiseLike<TResult1>, onrejected: (reason: any) => TResult2 | PromiseLike<TResult2>): Promise<TResult1 | TResult2>; }' is not assignable to type '{ (onfulfilled?: null, onrejected?: null): PromiseLike<number>; <TResult>(onfulfilled: null, onrejected: (reason: any) => TResult | PromiseLike<TResult>): PromiseLike<number | TResult>; <TResult>(onfulfilled: (value: number) => TResult | PromiseLike<TResult>, onrejected: null): PromiseLike<TResult>; <TResult>(onfulfilled: (value: number) => TResult | PromiseLike<TResult>): PromiseLike<TResult>; <TResult>(onfulfilled: (value: number) => TResult | PromiseLike<TResult>, onrejected: (reason: any) => TResult | PromiseLike<TResult>): PromiseLike<TResult>; <TResult1, TResult2>(onfulfilled: (value: number) => TResult1 | PromiseLike<TResult1>, onrejected: (reason: any) => TResult2 | PromiseLike<TResult2>): PromiseLike<TResult1 | TResult2>; }'.