=== tests/cases/conformance/async/es6/asyncAwait_es6.ts ===
type MyPromise<T> = Promise<T>;
>MyPromise : Promise<T>
>T : T
>Promise : Promise<T>
>T : T

declare var MyPromise: typeof Promise;
>MyPromise : PromiseConstructor
>Promise : PromiseConstructor

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

declare var mp: MyPromise<number>;
>mp : Promise<number>
>MyPromise : Promise<T>

async function f0() { }
>f0 : () => Promise<void>

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

async function f3(): MyPromise<void> { }
>f3 : () => Promise<void>
>MyPromise : Promise<T>

let f4 = async function() { }
>f4 : () => Promise<void>
>async function() { } : () => Promise<void>

let f5 = async function(): Promise<void> { }
>f5 : () => Promise<void>
>async function(): Promise<void> { } : () => Promise<void>
>Promise : Promise<T>

let f6 = async function(): MyPromise<void> { }
>f6 : () => Promise<void>
>async function(): MyPromise<void> { } : () => Promise<void>
>MyPromise : Promise<T>

let f7 = async () => { };
>f7 : () => Promise<void>
>async () => { } : () => Promise<void>

let f8 = async (): Promise<void> => { };
>f8 : () => Promise<void>
>async (): Promise<void> => { } : () => Promise<void>
>Promise : Promise<T>

let f9 = async (): MyPromise<void> => { }; 
>f9 : () => Promise<void>
>async (): MyPromise<void> => { } : () => Promise<void>
>MyPromise : Promise<T>

let f10 = async () => p;
>f10 : () => Promise<number>
>async () => p : () => Promise<number>
>p : Promise<number>

let f11 = async () => mp;
>f11 : () => Promise<number>
>async () => mp : () => Promise<number>
>mp : Promise<number>

let f12 = async (): Promise<number> => mp;
>f12 : () => Promise<number>
>async (): Promise<number> => mp : () => Promise<number>
>Promise : Promise<T>
>mp : Promise<number>

let f13 = async (): MyPromise<number> => p;
>f13 : () => Promise<number>
>async (): MyPromise<number> => p : () => Promise<number>
>MyPromise : Promise<T>
>p : Promise<number>

let o = {
>o : { m1(): Promise<void>; m2(): Promise<void>; m3(): Promise<void>; }
>{	async m1() { },	async m2(): Promise<void> { },	async m3(): MyPromise<void> { }} : { m1(): Promise<void>; m2(): Promise<void>; m3(): Promise<void>; }

	async m1() { },
>m1 : () => Promise<void>

	async m2(): Promise<void> { },
>m2 : () => Promise<void>
>Promise : Promise<T>

	async m3(): MyPromise<void> { }
>m3 : () => Promise<void>
>MyPromise : Promise<T>

};

class C {
>C : C

	async m1() { }
>m1 : () => Promise<void>

	async m2(): Promise<void> { }
>m2 : () => Promise<void>
>Promise : Promise<T>

	async m3(): MyPromise<void> { }
>m3 : () => Promise<void>
>MyPromise : Promise<T>

	static async m4() { }
>m4 : () => Promise<void>

	static async m5(): Promise<void> { }
>m5 : () => Promise<void>
>Promise : Promise<T>

	static async m6(): MyPromise<void> { }
>m6 : () => Promise<void>
>MyPromise : Promise<T>
}

module M {
>M : typeof M

	export async function f1() { }
>f1 : () => Promise<void>
}
