mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-19 20:37:00 -05:00
Merge pull request #21897 from Microsoft/fix21626
Fix duplicate label in es2017 async function
This commit is contained in:
@@ -153,7 +153,7 @@ namespace ts {
|
||||
if (statement.kind === SyntaxKind.ForOfStatement && (<ForOfStatement>statement).awaitModifier) {
|
||||
return visitForOfStatement(<ForOfStatement>statement, node);
|
||||
}
|
||||
return restoreEnclosingLabel(visitEachChild(node, visitor, context), node);
|
||||
return restoreEnclosingLabel(visitEachChild(statement, visitor, context), node);
|
||||
}
|
||||
return visitEachChild(node, visitor, context);
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ let f6 = async function(): MyPromise<void> { }
|
||||
|
||||
let f7 = async () => { };
|
||||
let f8 = async (): Promise<void> => { };
|
||||
let f9 = async (): MyPromise<void> => { };
|
||||
let f9 = async (): MyPromise<void> => { };
|
||||
let f10 = async () => p;
|
||||
let f11 = async () => mp;
|
||||
let f12 = async (): Promise<number> => mp;
|
||||
@@ -37,6 +37,13 @@ class C {
|
||||
|
||||
module M {
|
||||
export async function f1() { }
|
||||
}
|
||||
|
||||
async function f14() {
|
||||
block: {
|
||||
await 1;
|
||||
break block;
|
||||
}
|
||||
}
|
||||
|
||||
//// [asyncAwait_es2017.js]
|
||||
@@ -71,3 +78,9 @@ var M;
|
||||
async function f1() { }
|
||||
M.f1 = f1;
|
||||
})(M || (M = {}));
|
||||
async function f14() {
|
||||
block: {
|
||||
await 1;
|
||||
break block;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ let f8 = async (): Promise<void> => { };
|
||||
>f8 : Symbol(f8, Decl(asyncAwait_es2017.ts, 14, 3))
|
||||
>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --))
|
||||
|
||||
let f9 = async (): MyPromise<void> => { };
|
||||
let f9 = async (): MyPromise<void> => { };
|
||||
>f9 : Symbol(f9, Decl(asyncAwait_es2017.ts, 15, 3))
|
||||
>MyPromise : Symbol(MyPromise, Decl(asyncAwait_es2017.ts, 0, 0), Decl(asyncAwait_es2017.ts, 1, 11))
|
||||
|
||||
@@ -116,3 +116,12 @@ module M {
|
||||
export async function f1() { }
|
||||
>f1 : Symbol(f1, Decl(asyncAwait_es2017.ts, 36, 10))
|
||||
}
|
||||
|
||||
async function f14() {
|
||||
>f14 : Symbol(f14, Decl(asyncAwait_es2017.ts, 38, 1))
|
||||
|
||||
block: {
|
||||
await 1;
|
||||
break block;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ let f8 = async (): Promise<void> => { };
|
||||
>async (): Promise<void> => { } : () => Promise<void>
|
||||
>Promise : Promise<T>
|
||||
|
||||
let f9 = async (): MyPromise<void> => { };
|
||||
let f9 = async (): MyPromise<void> => { };
|
||||
>f9 : () => Promise<void>
|
||||
>async (): MyPromise<void> => { } : () => Promise<void>
|
||||
>MyPromise : Promise<T>
|
||||
@@ -127,3 +127,18 @@ module M {
|
||||
export async function f1() { }
|
||||
>f1 : () => Promise<void>
|
||||
}
|
||||
|
||||
async function f14() {
|
||||
>f14 : () => Promise<void>
|
||||
|
||||
block: {
|
||||
>block : any
|
||||
|
||||
await 1;
|
||||
>await 1 : 1
|
||||
>1 : 1
|
||||
|
||||
break block;
|
||||
>block : any
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,6 +37,13 @@ class C {
|
||||
|
||||
module M {
|
||||
export async function f1() { }
|
||||
}
|
||||
|
||||
async function f14() {
|
||||
block: {
|
||||
await 1;
|
||||
break block;
|
||||
}
|
||||
}
|
||||
|
||||
//// [asyncAwait_es5.js]
|
||||
@@ -188,3 +195,16 @@ var M;
|
||||
}
|
||||
M.f1 = f1;
|
||||
})(M || (M = {}));
|
||||
function f14() {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0: return [4 /*yield*/, 1];
|
||||
case 1:
|
||||
_a.sent();
|
||||
return [3 /*break*/, 2];
|
||||
case 2: return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@@ -116,3 +116,12 @@ module M {
|
||||
export async function f1() { }
|
||||
>f1 : Symbol(f1, Decl(asyncAwait_es5.ts, 36, 10))
|
||||
}
|
||||
|
||||
async function f14() {
|
||||
>f14 : Symbol(f14, Decl(asyncAwait_es5.ts, 38, 1))
|
||||
|
||||
block: {
|
||||
await 1;
|
||||
break block;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -127,3 +127,18 @@ module M {
|
||||
export async function f1() { }
|
||||
>f1 : () => Promise<void>
|
||||
}
|
||||
|
||||
async function f14() {
|
||||
>f14 : () => Promise<void>
|
||||
|
||||
block: {
|
||||
>block : any
|
||||
|
||||
await 1;
|
||||
>await 1 : 1
|
||||
>1 : 1
|
||||
|
||||
break block;
|
||||
>block : any
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ let f6 = async function(): MyPromise<void> { }
|
||||
|
||||
let f7 = async () => { };
|
||||
let f8 = async (): Promise<void> => { };
|
||||
let f9 = async (): MyPromise<void> => { };
|
||||
let f9 = async (): MyPromise<void> => { };
|
||||
let f10 = async () => p;
|
||||
let f11 = async () => mp;
|
||||
let f12 = async (): Promise<number> => mp;
|
||||
@@ -37,6 +37,13 @@ class C {
|
||||
|
||||
module M {
|
||||
export async function f1() { }
|
||||
}
|
||||
|
||||
async function f14() {
|
||||
block: {
|
||||
await 1;
|
||||
break block;
|
||||
}
|
||||
}
|
||||
|
||||
//// [asyncAwait_es6.js]
|
||||
@@ -111,3 +118,11 @@ var M;
|
||||
}
|
||||
M.f1 = f1;
|
||||
})(M || (M = {}));
|
||||
function f14() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
block: {
|
||||
yield 1;
|
||||
break block;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ let f8 = async (): Promise<void> => { };
|
||||
>f8 : Symbol(f8, Decl(asyncAwait_es6.ts, 14, 3))
|
||||
>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --))
|
||||
|
||||
let f9 = async (): MyPromise<void> => { };
|
||||
let f9 = async (): MyPromise<void> => { };
|
||||
>f9 : Symbol(f9, Decl(asyncAwait_es6.ts, 15, 3))
|
||||
>MyPromise : Symbol(MyPromise, Decl(asyncAwait_es6.ts, 0, 0), Decl(asyncAwait_es6.ts, 1, 11))
|
||||
|
||||
@@ -116,3 +116,12 @@ module M {
|
||||
export async function f1() { }
|
||||
>f1 : Symbol(f1, Decl(asyncAwait_es6.ts, 36, 10))
|
||||
}
|
||||
|
||||
async function f14() {
|
||||
>f14 : Symbol(f14, Decl(asyncAwait_es6.ts, 38, 1))
|
||||
|
||||
block: {
|
||||
await 1;
|
||||
break block;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ let f8 = async (): Promise<void> => { };
|
||||
>async (): Promise<void> => { } : () => Promise<void>
|
||||
>Promise : Promise<T>
|
||||
|
||||
let f9 = async (): MyPromise<void> => { };
|
||||
let f9 = async (): MyPromise<void> => { };
|
||||
>f9 : () => Promise<void>
|
||||
>async (): MyPromise<void> => { } : () => Promise<void>
|
||||
>MyPromise : Promise<T>
|
||||
@@ -127,3 +127,18 @@ module M {
|
||||
export async function f1() { }
|
||||
>f1 : () => Promise<void>
|
||||
}
|
||||
|
||||
async function f14() {
|
||||
>f14 : () => Promise<void>
|
||||
|
||||
block: {
|
||||
>block : any
|
||||
|
||||
await 1;
|
||||
>await 1 : 1
|
||||
>1 : 1
|
||||
|
||||
break block;
|
||||
>block : any
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ let f6 = async function(): MyPromise<void> { }
|
||||
|
||||
let f7 = async () => { };
|
||||
let f8 = async (): Promise<void> => { };
|
||||
let f9 = async (): MyPromise<void> => { };
|
||||
let f9 = async (): MyPromise<void> => { };
|
||||
let f10 = async () => p;
|
||||
let f11 = async () => mp;
|
||||
let f12 = async (): Promise<number> => mp;
|
||||
@@ -37,4 +37,11 @@ class C {
|
||||
|
||||
module M {
|
||||
export async function f1() { }
|
||||
}
|
||||
|
||||
async function f14() {
|
||||
block: {
|
||||
await 1;
|
||||
break block;
|
||||
}
|
||||
}
|
||||
@@ -38,4 +38,11 @@ class C {
|
||||
|
||||
module M {
|
||||
export async function f1() { }
|
||||
}
|
||||
|
||||
async function f14() {
|
||||
block: {
|
||||
await 1;
|
||||
break block;
|
||||
}
|
||||
}
|
||||
@@ -14,7 +14,7 @@ let f6 = async function(): MyPromise<void> { }
|
||||
|
||||
let f7 = async () => { };
|
||||
let f8 = async (): Promise<void> => { };
|
||||
let f9 = async (): MyPromise<void> => { };
|
||||
let f9 = async (): MyPromise<void> => { };
|
||||
let f10 = async () => p;
|
||||
let f11 = async () => mp;
|
||||
let f12 = async (): Promise<number> => mp;
|
||||
@@ -37,4 +37,11 @@ class C {
|
||||
|
||||
module M {
|
||||
export async function f1() { }
|
||||
}
|
||||
|
||||
async function f14() {
|
||||
block: {
|
||||
await 1;
|
||||
break block;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user