From b0e37ab036e2d1f7e48095d347bd1416a8d94c59 Mon Sep 17 00:00:00 2001 From: Ron Buckton Date: Mon, 8 Feb 2016 17:59:54 -0800 Subject: [PATCH] Added test for noCustomAsyncPromise switch --- .../noCustomAsyncReturnType_es6.errors.txt | 16 +++++++++++++ .../reference/noCustomAsyncReturnType_es6.js | 23 +++++++++++++++++++ .../async/es6/noCustomAsyncReturnType_es6.ts | 8 +++++++ 3 files changed, 47 insertions(+) create mode 100644 tests/baselines/reference/noCustomAsyncReturnType_es6.errors.txt create mode 100644 tests/baselines/reference/noCustomAsyncReturnType_es6.js create mode 100644 tests/cases/conformance/async/es6/noCustomAsyncReturnType_es6.ts diff --git a/tests/baselines/reference/noCustomAsyncReturnType_es6.errors.txt b/tests/baselines/reference/noCustomAsyncReturnType_es6.errors.txt new file mode 100644 index 00000000000..e3f70fb40cd --- /dev/null +++ b/tests/baselines/reference/noCustomAsyncReturnType_es6.errors.txt @@ -0,0 +1,16 @@ +tests/cases/conformance/async/es6/noCustomAsyncReturnType_es6.ts(3,5): error TS2529: Duplicate identifier 'Promise'. Compiler reserves name 'Promise' in top level scope of a module containing async functions. +tests/cases/conformance/async/es6/noCustomAsyncReturnType_es6.ts(5,28): error TS1064: The return type of an async function or method must be the global Promise type. + + +==== tests/cases/conformance/async/es6/noCustomAsyncReturnType_es6.ts (2 errors) ==== + + interface Promise extends PromiseLike {} + var Promise: PromiseConstructorLike; + ~~~~~~~ +!!! error TS2529: Duplicate identifier 'Promise'. Compiler reserves name 'Promise' in top level scope of a module containing async functions. + + export async function f(): Promise { + ~~~~~~~~~~~~~ +!!! error TS1064: The return type of an async function or method must be the global Promise type. + } + \ No newline at end of file diff --git a/tests/baselines/reference/noCustomAsyncReturnType_es6.js b/tests/baselines/reference/noCustomAsyncReturnType_es6.js new file mode 100644 index 00000000000..05eb4afff39 --- /dev/null +++ b/tests/baselines/reference/noCustomAsyncReturnType_es6.js @@ -0,0 +1,23 @@ +//// [noCustomAsyncReturnType_es6.ts] + +interface Promise extends PromiseLike {} +var Promise: PromiseConstructorLike; + +export async function f(): Promise { +} + + +//// [noCustomAsyncReturnType_es6.js] +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator.throw(value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments)).next()); + }); +}; +var Promise; +export function f() { + return __awaiter(this, void 0, void 0, function* () { + }); +} diff --git a/tests/cases/conformance/async/es6/noCustomAsyncReturnType_es6.ts b/tests/cases/conformance/async/es6/noCustomAsyncReturnType_es6.ts new file mode 100644 index 00000000000..774cf6efab7 --- /dev/null +++ b/tests/cases/conformance/async/es6/noCustomAsyncReturnType_es6.ts @@ -0,0 +1,8 @@ +// @target: ES6 +// @noCustomAsyncPromise: true + +interface Promise extends PromiseLike {} +var Promise: PromiseConstructorLike; + +export async function f(): Promise { +}