tests/cases/conformance/async/es6/functionDeclarations/asyncFunctionDeclaration15_es6.ts(6,16): error TS1055: Type '{}' is not a valid async function return type.
tests/cases/conformance/async/es6/functionDeclarations/asyncFunctionDeclaration15_es6.ts(7,16): error TS1055: Type 'any' is not a valid async function return type.
tests/cases/conformance/async/es6/functionDeclarations/asyncFunctionDeclaration15_es6.ts(8,16): error TS1055: Type 'number' is not a valid async function return type.
tests/cases/conformance/async/es6/functionDeclarations/asyncFunctionDeclaration15_es6.ts(9,16): error TS1055: Type 'PromiseLike' is not a valid async function return type.
tests/cases/conformance/async/es6/functionDeclarations/asyncFunctionDeclaration15_es6.ts(10,16): error TS1055: Type 'typeof Thenable' is not a valid async function return type.
  Type 'Thenable' is not assignable to type 'PromiseLike<any>'.
    Types of property 'then' are incompatible.
      Type '() => void' is not assignable to type '{ <TResult>(onfulfilled?: (value: any) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): PromiseLike<TResult>; <TResult>(onfulfilled?: (value: any) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => void): PromiseLike<TResult>; }'.
        Type 'void' is not assignable to type 'PromiseLike<any>'.
tests/cases/conformance/async/es6/functionDeclarations/asyncFunctionDeclaration15_es6.ts(17,16): error TS1059: Return expression in async function does not have a valid callable 'then' member.
tests/cases/conformance/async/es6/functionDeclarations/asyncFunctionDeclaration15_es6.ts(23,25): error TS1058: Operand for 'await' does not have a valid callable 'then' member.


==== tests/cases/conformance/async/es6/functionDeclarations/asyncFunctionDeclaration15_es6.ts (7 errors) ====
    declare class Thenable { then(): void; }
    declare let a: any;
    declare let obj: { then: string; };
    declare let thenable: Thenable;
    async function fn1() { } // valid: Promise<void>
    async function fn2(): { } { } // error
                   ~~~
!!! error TS1055: Type '{}' is not a valid async function return type.
    async function fn3(): any { } // error
                   ~~~
!!! error TS1055: Type 'any' is not a valid async function return type.
    async function fn4(): number { } // error
                   ~~~
!!! error TS1055: Type 'number' is not a valid async function return type.
    async function fn5(): PromiseLike<void> { } // error
                   ~~~
!!! error TS1055: Type 'PromiseLike' is not a valid async function return type.
    async function fn6(): Thenable { } // error
                   ~~~
!!! error TS1055: Type 'typeof Thenable' is not a valid async function return type.
!!! error TS1055:   Type 'Thenable' is not assignable to type 'PromiseLike<any>'.
!!! error TS1055:     Types of property 'then' are incompatible.
!!! error TS1055:       Type '() => void' is not assignable to type '{ <TResult>(onfulfilled?: (value: any) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): PromiseLike<TResult>; <TResult>(onfulfilled?: (value: any) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => void): PromiseLike<TResult>; }'.
!!! error TS1055:         Type 'void' is not assignable to type 'PromiseLike<any>'.
    async function fn7() { return; } // valid: Promise<void>
    async function fn8() { return 1; } // valid: Promise<number>
    async function fn9() { return null; } // valid: Promise<any>
    async function fn10() { return undefined; } // valid: Promise<any>
    async function fn11() { return a; } // valid: Promise<any>
    async function fn12() { return obj; } // valid: Promise<{ then: string; }>
    async function fn13() { return thenable; } // error
                   ~~~~
!!! error TS1059: Return expression in async function does not have a valid callable 'then' member.
    async function fn14() { await 1; } // valid: Promise<void>
    async function fn15() { await null; } // valid: Promise<void>
    async function fn16() { await undefined; } // valid: Promise<void>
    async function fn17() { await a; } // valid: Promise<void>
    async function fn18() { await obj; } // valid: Promise<void>
    async function fn19() { await thenable; } // error
                            ~~~~~~~~~~~~~~
!!! error TS1058: Operand for 'await' does not have a valid callable 'then' member.
    