From 9644859f291840db87de6275f2e4cca7f665bf8a Mon Sep 17 00:00:00 2001 From: kingwl Date: Mon, 21 Jun 2021 15:45:53 +0800 Subject: [PATCH] Avoid yield and await check in identifier --- src/compiler/parser.ts | 20 ++-- .../await_unaryExpression_es2017_3.errors.txt | 16 ++- .../await_unaryExpression_es2017_3.js | 8 +- .../await_unaryExpression_es2017_3.types | 10 +- .../await_unaryExpression_es6_3.errors.txt | 16 ++- .../reference/await_unaryExpression_es6_3.js | 8 +- .../await_unaryExpression_es6_3.types | 10 +- .../reference/castOfYield.errors.txt | 9 +- tests/baselines/reference/castOfYield.js | 6 +- tests/baselines/reference/castOfYield.types | 5 +- .../topLevelAwaitErrors.1.errors.txt | 105 +++++++++++++----- .../reference/topLevelAwaitErrors.1.js | 44 ++++---- .../reference/topLevelAwaitErrors.1.symbols | 17 +-- .../reference/topLevelAwaitErrors.1.types | 39 ++++--- 14 files changed, 184 insertions(+), 129 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index fb82b4d6033..17d7bf85b82 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1510,17 +1510,17 @@ namespace ts { return true; } - // If we have a 'yield' keyword, and we're in the [yield] context, then 'yield' is - // considered a keyword and is not an identifier. - if (token() === SyntaxKind.YieldKeyword && inYieldContext()) { - return false; - } + // // If we have a 'yield' keyword, and we're in the [yield] context, then 'yield' is + // // considered a keyword and is not an identifier. + // if (token() === SyntaxKind.YieldKeyword && inYieldContext()) { + // return false; + // } - // If we have a 'await' keyword, and we're in the [Await] context, then 'await' is - // considered a keyword and is not an identifier. - if (token() === SyntaxKind.AwaitKeyword && inAwaitContext()) { - return false; - } + // // If we have a 'await' keyword, and we're in the [Await] context, then 'await' is + // // considered a keyword and is not an identifier. + // if (token() === SyntaxKind.AwaitKeyword && inAwaitContext()) { + // return false; + // } return token() > SyntaxKind.LastReservedWord; } diff --git a/tests/baselines/reference/await_unaryExpression_es2017_3.errors.txt b/tests/baselines/reference/await_unaryExpression_es2017_3.errors.txt index da533765a07..bffdd1b9a20 100644 --- a/tests/baselines/reference/await_unaryExpression_es2017_3.errors.txt +++ b/tests/baselines/reference/await_unaryExpression_es2017_3.errors.txt @@ -1,18 +1,24 @@ -tests/cases/conformance/async/es2017/await_unaryExpression_es2017_3.ts(2,7): error TS1109: Expression expected. -tests/cases/conformance/async/es2017/await_unaryExpression_es2017_3.ts(6,7): error TS1109: Expression expected. +tests/cases/conformance/async/es2017/await_unaryExpression_es2017_3.ts(2,7): error TS2304: Cannot find name 'await'. +tests/cases/conformance/async/es2017/await_unaryExpression_es2017_3.ts(2,13): error TS1005: ';' expected. +tests/cases/conformance/async/es2017/await_unaryExpression_es2017_3.ts(6,7): error TS2304: Cannot find name 'await'. +tests/cases/conformance/async/es2017/await_unaryExpression_es2017_3.ts(6,13): error TS1005: ';' expected. -==== tests/cases/conformance/async/es2017/await_unaryExpression_es2017_3.ts (2 errors) ==== +==== tests/cases/conformance/async/es2017/await_unaryExpression_es2017_3.ts (4 errors) ==== async function bar1() { ++await 42; // Error ~~~~~ -!!! error TS1109: Expression expected. +!!! error TS2304: Cannot find name 'await'. + ~~ +!!! error TS1005: ';' expected. } async function bar2() { --await 42; // Error ~~~~~ -!!! error TS1109: Expression expected. +!!! error TS2304: Cannot find name 'await'. + ~~ +!!! error TS1005: ';' expected. } async function bar3() { diff --git a/tests/baselines/reference/await_unaryExpression_es2017_3.js b/tests/baselines/reference/await_unaryExpression_es2017_3.js index b2a1593a9d0..bbddded1a1d 100644 --- a/tests/baselines/reference/await_unaryExpression_es2017_3.js +++ b/tests/baselines/reference/await_unaryExpression_es2017_3.js @@ -19,12 +19,12 @@ async function bar4() { //// [await_unaryExpression_es2017_3.js] async function bar1() { - ++; - await 42; // Error + ++await; + 42; // Error } async function bar2() { - --; - await 42; // Error + --await; + 42; // Error } async function bar3() { var x = 42; diff --git a/tests/baselines/reference/await_unaryExpression_es2017_3.types b/tests/baselines/reference/await_unaryExpression_es2017_3.types index b60ea42b2a0..f94d05515d6 100644 --- a/tests/baselines/reference/await_unaryExpression_es2017_3.types +++ b/tests/baselines/reference/await_unaryExpression_es2017_3.types @@ -3,9 +3,8 @@ async function bar1() { >bar1 : () => Promise ++await 42; // Error ->++ : number -> : any ->await 42 : 42 +>++await : number +>await : any >42 : 42 } @@ -13,9 +12,8 @@ async function bar2() { >bar2 : () => Promise --await 42; // Error ->-- : number -> : any ->await 42 : 42 +>--await : number +>await : any >42 : 42 } diff --git a/tests/baselines/reference/await_unaryExpression_es6_3.errors.txt b/tests/baselines/reference/await_unaryExpression_es6_3.errors.txt index 373e6739461..297c8887db9 100644 --- a/tests/baselines/reference/await_unaryExpression_es6_3.errors.txt +++ b/tests/baselines/reference/await_unaryExpression_es6_3.errors.txt @@ -1,18 +1,24 @@ -tests/cases/conformance/async/es6/await_unaryExpression_es6_3.ts(2,7): error TS1109: Expression expected. -tests/cases/conformance/async/es6/await_unaryExpression_es6_3.ts(6,7): error TS1109: Expression expected. +tests/cases/conformance/async/es6/await_unaryExpression_es6_3.ts(2,7): error TS2304: Cannot find name 'await'. +tests/cases/conformance/async/es6/await_unaryExpression_es6_3.ts(2,13): error TS1005: ';' expected. +tests/cases/conformance/async/es6/await_unaryExpression_es6_3.ts(6,7): error TS2304: Cannot find name 'await'. +tests/cases/conformance/async/es6/await_unaryExpression_es6_3.ts(6,13): error TS1005: ';' expected. -==== tests/cases/conformance/async/es6/await_unaryExpression_es6_3.ts (2 errors) ==== +==== tests/cases/conformance/async/es6/await_unaryExpression_es6_3.ts (4 errors) ==== async function bar1() { ++await 42; // Error ~~~~~ -!!! error TS1109: Expression expected. +!!! error TS2304: Cannot find name 'await'. + ~~ +!!! error TS1005: ';' expected. } async function bar2() { --await 42; // Error ~~~~~ -!!! error TS1109: Expression expected. +!!! error TS2304: Cannot find name 'await'. + ~~ +!!! error TS1005: ';' expected. } async function bar3() { diff --git a/tests/baselines/reference/await_unaryExpression_es6_3.js b/tests/baselines/reference/await_unaryExpression_es6_3.js index 42643caa262..f9240102802 100644 --- a/tests/baselines/reference/await_unaryExpression_es6_3.js +++ b/tests/baselines/reference/await_unaryExpression_es6_3.js @@ -29,14 +29,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }; function bar1() { return __awaiter(this, void 0, void 0, function* () { - ++; - yield 42; // Error + ++await; + 42; // Error }); } function bar2() { return __awaiter(this, void 0, void 0, function* () { - --; - yield 42; // Error + --await; + 42; // Error }); } function bar3() { diff --git a/tests/baselines/reference/await_unaryExpression_es6_3.types b/tests/baselines/reference/await_unaryExpression_es6_3.types index db18c889553..d24149449ac 100644 --- a/tests/baselines/reference/await_unaryExpression_es6_3.types +++ b/tests/baselines/reference/await_unaryExpression_es6_3.types @@ -3,9 +3,8 @@ async function bar1() { >bar1 : () => Promise ++await 42; // Error ->++ : number -> : any ->await 42 : 42 +>++await : number +>await : any >42 : 42 } @@ -13,9 +12,8 @@ async function bar2() { >bar2 : () => Promise --await 42; // Error ->-- : number -> : any ->await 42 : 42 +>--await : number +>await : any >42 : 42 } diff --git a/tests/baselines/reference/castOfYield.errors.txt b/tests/baselines/reference/castOfYield.errors.txt index 0d40a4dcd98..b7c3035f68e 100644 --- a/tests/baselines/reference/castOfYield.errors.txt +++ b/tests/baselines/reference/castOfYield.errors.txt @@ -1,14 +1,17 @@ error TS2318: Cannot find global type 'IterableIterator'. -tests/cases/compiler/castOfYield.ts(4,14): error TS1109: Expression expected. +tests/cases/compiler/castOfYield.ts(4,14): error TS2304: Cannot find name 'yield'. +tests/cases/compiler/castOfYield.ts(4,20): error TS1005: ';' expected. !!! error TS2318: Cannot find global type 'IterableIterator'. -==== tests/cases/compiler/castOfYield.ts (1 errors) ==== +==== tests/cases/compiler/castOfYield.ts (2 errors) ==== function* f() { (yield 0); // Unlike await, yield is not allowed to appear in a simple unary expression. yield 0; ~~~~~ -!!! error TS1109: Expression expected. +!!! error TS2304: Cannot find name 'yield'. + ~ +!!! error TS1005: ';' expected. } \ No newline at end of file diff --git a/tests/baselines/reference/castOfYield.js b/tests/baselines/reference/castOfYield.js index 86d35bedad4..91b1f01a785 100644 --- a/tests/baselines/reference/castOfYield.js +++ b/tests/baselines/reference/castOfYield.js @@ -41,10 +41,8 @@ function f() { case 1: (_a.sent()); // Unlike await, yield is not allowed to appear in a simple unary expression. - ; - return [4 /*yield*/, 0]; - case 2: - _a.sent(); + yield; + 0; return [2 /*return*/]; } }); diff --git a/tests/baselines/reference/castOfYield.types b/tests/baselines/reference/castOfYield.types index c0052056091..008cf646686 100644 --- a/tests/baselines/reference/castOfYield.types +++ b/tests/baselines/reference/castOfYield.types @@ -10,9 +10,8 @@ function* f() { // Unlike await, yield is not allowed to appear in a simple unary expression. yield 0; -> : number -> : any ->yield 0 : any +> yield : number +>yield : any >0 : 0 } diff --git a/tests/baselines/reference/topLevelAwaitErrors.1.errors.txt b/tests/baselines/reference/topLevelAwaitErrors.1.errors.txt index 773e8446a6f..525ce18f6d7 100644 --- a/tests/baselines/reference/topLevelAwaitErrors.1.errors.txt +++ b/tests/baselines/reference/topLevelAwaitErrors.1.errors.txt @@ -4,23 +4,40 @@ tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(5,14): error TS tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(5,16): error TS2693: 'string' only refers to a type, but is being used as a value here. tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(8,14): error TS1005: '>' expected. tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(8,16): error TS2693: 'string' only refers to a type, but is being used as a value here. -tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(11,17): error TS1109: Expression expected. -tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(11,22): error TS1109: Expression expected. -tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(11,23): error TS2693: 'string' only refers to a type, but is being used as a value here. -tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(11,29): error TS1005: ',' expected. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(11,17): error TS2304: Cannot find name 'await'. tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(15,8): error TS1109: Expression expected. -tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(18,2): error TS1109: Expression expected. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(18,8): error TS1146: Declaration expected. tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(18,8): error TS2304: Cannot find name 'x'. -tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(21,2): error TS1109: Expression expected. -tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(26,6): error TS1109: Expression expected. -tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(30,6): error TS1109: Expression expected. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(18,9): error TS1005: ';' expected. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(22,6): error TS1146: Declaration expected. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(22,7): error TS2304: Cannot find name 'C3'. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(22,10): error TS1005: ';' expected. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(26,6): error TS2304: Cannot find name 'await'. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(27,11): error TS1005: ';' expected. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(27,12): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(27,13): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(27,15): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(28,1): error TS1109: Expression expected. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(30,6): error TS2304: Cannot find name 'await'. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(30,13): error TS1005: ';' expected. tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(34,12): error TS1109: Expression expected. -tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(40,14): error TS1109: Expression expected. -tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(41,14): error TS1109: Expression expected. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(40,14): error TS2304: Cannot find name 'await'. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(40,22): error TS1005: ')' expected. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(40,23): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(40,25): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(41,5): error TS2304: Cannot find name 'method2'. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(41,13): error TS1135: Argument expression expected. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(41,24): error TS2304: Cannot find name 'x'. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(41,28): error TS1005: ';' expected. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(42,5): error TS2304: Cannot find name 'method3'. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(42,13): error TS1135: Argument expression expected. tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(42,20): error TS1109: Expression expected. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(42,23): error TS2304: Cannot find name 'x'. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(42,27): error TS1005: ';' expected. +tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(43,1): error TS1109: Expression expected. -==== tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts (20 errors) ==== +==== tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts (37 errors) ==== export {}; // reparse call as invalid await should error @@ -45,13 +62,7 @@ tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(42,20): error T // reparse class extends clause should fail class C extends await { ~~~~~ -!!! error TS1109: Expression expected. - ~ -!!! error TS1109: Expression expected. - ~~~~~~ -!!! error TS2693: 'string' only refers to a type, but is being used as a value here. - ~ -!!! error TS1005: ',' expected. +!!! error TS2304: Cannot find name 'await'. } // await in class decorators should fail @@ -61,28 +72,46 @@ tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(42,20): error T class C1 {} @await(x) - ~~~~~ -!!! error TS1109: Expression expected. + +!!! error TS1146: Declaration expected. ~ !!! error TS2304: Cannot find name 'x'. + ~ +!!! error TS1005: ';' expected. class C2 {} @await - ~~~~~ -!!! error TS1109: Expression expected. class C3 {} + +!!! error TS1146: Declaration expected. + ~~ +!!! error TS2304: Cannot find name 'C3'. + ~ +!!! error TS1005: ';' expected. // await in member decorators should fail class C4 { @await ~~~~~ -!!! error TS1109: Expression expected. +!!! error TS2304: Cannot find name 'await'. ["foo"]() {} + ~ +!!! error TS1005: ';' expected. + ~ +!!! error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. + ~ +!!! error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. + ~ +!!! error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. } + ~ +!!! error TS1109: Expression expected. class C5 { @await(1) ~~~~~ -!!! error TS1109: Expression expected. +!!! error TS2304: Cannot find name 'await'. + ~ +!!! error TS1005: ';' expected. ["foo"]() {} } class C6 { @@ -96,12 +125,34 @@ tests/cases/conformance/externalModules/topLevelAwaitErrors.1.ts(42,20): error T class C7 { method1(@await [x]) {} ~~~~~ -!!! error TS1109: Expression expected. +!!! error TS2304: Cannot find name 'await'. + ~ +!!! error TS1005: ')' expected. + ~ +!!! error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. + ~ +!!! error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. method2(@await(1) [x]) {} - ~~~~~ -!!! error TS1109: Expression expected. + ~~~~~~~ +!!! error TS2304: Cannot find name 'method2'. + ~ +!!! error TS1135: Argument expression expected. + ~ +!!! error TS2304: Cannot find name 'x'. + ~ +!!! error TS1005: ';' expected. method3(@(await) [x]) {} + ~~~~~~~ +!!! error TS2304: Cannot find name 'method3'. + ~ +!!! error TS1135: Argument expression expected. ~ !!! error TS1109: Expression expected. + ~ +!!! error TS2304: Cannot find name 'x'. + ~ +!!! error TS1005: ';' expected. } + ~ +!!! error TS1109: Expression expected. \ No newline at end of file diff --git a/tests/baselines/reference/topLevelAwaitErrors.1.js b/tests/baselines/reference/topLevelAwaitErrors.1.js index 175321a0513..b535c95dca4 100644 --- a/tests/baselines/reference/topLevelAwaitErrors.1.js +++ b/tests/baselines/reference/topLevelAwaitErrors.1.js @@ -51,7 +51,7 @@ await , string > (1); // reparse tagged template as invalid await should error await , string > ``; // reparse class extends clause should fail -class C extends string { +class C extends await { } // await in class decorators should fail let C1 = class C1 { @@ -59,27 +59,27 @@ let C1 = class C1 { C1 = __decorate([ (await ) ], C1); -let C2 = class C2 { -}; -C2 = __decorate([ - (x) -], C2); -let C3 = class C3 { -}; -C3 = __decorate([ -], C3); +x; +; +class C2 { +} +C3; +{ } // await in member decorators should fail class C4 { - ["foo"]() { } + "foo"; } __decorate([ -], C4.prototype, "foo", null); + await +], C4.prototype, "foo", void 0); +; class C5 { + 1; ["foo"]() { } } __decorate([ - (1) -], C5.prototype, "foo", null); + await +], C5.prototype, 1, void 0); class C6 { ["foo"]() { } } @@ -88,17 +88,13 @@ __decorate([ ], C6.prototype, "foo", null); // await in parameter decorators should fail class C7 { - method1([x]) { } - method2([x]) { } - method3([x]) { } } __decorate([ - __param(0, ) + __param(0, await) ], C7.prototype, "method1", null); -__decorate([ - __param(0, (1)) -], C7.prototype, "method2", null); -__decorate([ - __param(0, (await )) -], C7.prototype, "method3", null); +method2(await (1)[x]); +{ } +method3((await )[x]); +{ } +; export {}; diff --git a/tests/baselines/reference/topLevelAwaitErrors.1.symbols b/tests/baselines/reference/topLevelAwaitErrors.1.symbols index c414127bbe6..0384c15c740 100644 --- a/tests/baselines/reference/topLevelAwaitErrors.1.symbols +++ b/tests/baselines/reference/topLevelAwaitErrors.1.symbols @@ -20,11 +20,10 @@ class C1 {} @await(x) class C2 {} ->C2 : Symbol(C2, Decl(topLevelAwaitErrors.1.ts, 15, 11)) +>C2 : Symbol(C2, Decl(topLevelAwaitErrors.1.ts, 17, 9)) @await class C3 {} ->C3 : Symbol(C3, Decl(topLevelAwaitErrors.1.ts, 18, 11)) // await in member decorators should fail class C4 { @@ -32,16 +31,17 @@ class C4 { @await ["foo"]() {} ->["foo"] : Symbol(C4["foo"], Decl(topLevelAwaitErrors.1.ts, 24, 10)) >"foo" : Symbol(C4["foo"], Decl(topLevelAwaitErrors.1.ts, 24, 10)) } class C5 { >C5 : Symbol(C5, Decl(topLevelAwaitErrors.1.ts, 27, 1)) @await(1) +>1 : Symbol(C5[1], Decl(topLevelAwaitErrors.1.ts, 28, 10)) + ["foo"]() {} ->["foo"] : Symbol(C5["foo"], Decl(topLevelAwaitErrors.1.ts, 28, 10)) ->"foo" : Symbol(C5["foo"], Decl(topLevelAwaitErrors.1.ts, 28, 10)) +>["foo"] : Symbol(C5["foo"], Decl(topLevelAwaitErrors.1.ts, 29, 13)) +>"foo" : Symbol(C5["foo"], Decl(topLevelAwaitErrors.1.ts, 29, 13)) } class C6 { >C6 : Symbol(C6, Decl(topLevelAwaitErrors.1.ts, 31, 1)) @@ -58,14 +58,9 @@ class C7 { method1(@await [x]) {} >method1 : Symbol(C7.method1, Decl(topLevelAwaitErrors.1.ts, 38, 10)) ->x : Symbol(x, Decl(topLevelAwaitErrors.1.ts, 39, 20)) +>x : Symbol(x, Decl(topLevelAwaitErrors.1.ts, 39, 12)) method2(@await(1) [x]) {} ->method2 : Symbol(C7.method2, Decl(topLevelAwaitErrors.1.ts, 39, 26)) ->x : Symbol(x, Decl(topLevelAwaitErrors.1.ts, 40, 23)) - method3(@(await) [x]) {} ->method3 : Symbol(C7.method3, Decl(topLevelAwaitErrors.1.ts, 40, 29)) ->x : Symbol(x, Decl(topLevelAwaitErrors.1.ts, 41, 22)) } diff --git a/tests/baselines/reference/topLevelAwaitErrors.1.types b/tests/baselines/reference/topLevelAwaitErrors.1.types index 7e8efc49dce..3ce38b5cca1 100644 --- a/tests/baselines/reference/topLevelAwaitErrors.1.types +++ b/tests/baselines/reference/topLevelAwaitErrors.1.types @@ -32,7 +32,7 @@ await ``; // reparse class extends clause should fail class C extends await { >C : C ->string : any +>await : any } // await in class decorators should fail @@ -45,37 +45,37 @@ class C1 {} >C1 : C1 @await(x) ->await(x) : any -> : any +>await : any >x : any +> : any class C2 {} >C2 : C2 @await -> : any +>await : any class C3 {} ->C3 : C3 +>C3 : any // await in member decorators should fail class C4 { >C4 : C4 @await -> : any +>await : any ["foo"]() {} ->["foo"] : () => void ->"foo" : "foo" +>"foo" : any } +> : any + class C5 { >C5 : C5 @await(1) ->await(1) : any -> : any ->1 : 1 +>await : any +>1 : any ["foo"]() {} >["foo"] : () => void @@ -99,22 +99,27 @@ class C7 { >C7 : C7 method1(@await [x]) {} ->method1 : ([x]: [any]) => void -> : any +>method1 : (x: any) => any +>await : any >x : any method2(@await(1) [x]) {} ->method2 : ([x]: [any]) => void ->await(1) : any -> : any +>method2(@await(1) [x]) : any +>method2 : any +>await(1) [x] : any +>(1) [x] : any +>(1) : 1 >1 : 1 >x : any method3(@(await) [x]) {} ->method3 : ([x]: [any]) => void +>method3(@(await) [x]) : any +>method3 : any +>(await) [x] : any >(await) : any >await : any > : any >x : any } +> : any