=== tests/cases/conformance/async/es6/awaitCallExpression/awaitCallExpression8_es6.ts ===
declare var a: boolean;
>a : boolean

declare var p: Promise<boolean>;
>p : Promise<boolean>
>Promise : Promise<T>

declare function fn(arg0: boolean, arg1: boolean, arg2: boolean): void;
>fn : (arg0: boolean, arg1: boolean, arg2: boolean) => void
>arg0 : boolean
>arg1 : boolean
>arg2 : boolean

declare var o: { fn(arg0: boolean, arg1: boolean, arg2: boolean): void; };
>o : { fn(arg0: boolean, arg1: boolean, arg2: boolean): void; }
>fn : (arg0: boolean, arg1: boolean, arg2: boolean) => void
>arg0 : boolean
>arg1 : boolean
>arg2 : boolean

declare var pfn: Promise<{ (arg0: boolean, arg1: boolean, arg2: boolean): void; }>;
>pfn : Promise<(arg0: boolean, arg1: boolean, arg2: boolean) => void>
>Promise : Promise<T>
>arg0 : boolean
>arg1 : boolean
>arg2 : boolean

declare var po: Promise<{ fn(arg0: boolean, arg1: boolean, arg2: boolean): void; }>;
>po : Promise<{ fn(arg0: boolean, arg1: boolean, arg2: boolean): void; }>
>Promise : Promise<T>
>fn : (arg0: boolean, arg1: boolean, arg2: boolean) => void
>arg0 : boolean
>arg1 : boolean
>arg2 : boolean

async function func(): Promise<void> {
>func : () => Promise<void>
>Promise : Promise<T>

    "before";
>"before" : string

    var b = (await po).fn(a, a, a);
>b : void
>(await po).fn(a, a, a) : void
>(await po).fn : (arg0: boolean, arg1: boolean, arg2: boolean) => void
>(await po) : { fn(arg0: boolean, arg1: boolean, arg2: boolean): void; }
>await po : { fn(arg0: boolean, arg1: boolean, arg2: boolean): void; }
>po : Promise<{ fn(arg0: boolean, arg1: boolean, arg2: boolean): void; }>
>fn : (arg0: boolean, arg1: boolean, arg2: boolean) => void
>a : boolean
>a : boolean
>a : boolean

    "after";
>"after" : string
}
