Skip to content

Commit bc5c7b6

Browse files
author
Andy Hanson
committed
More tests
1 parent 95e391e commit bc5c7b6

File tree

8 files changed

+71
-6
lines changed

8 files changed

+71
-6
lines changed

src/compiler/parser.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3386,6 +3386,7 @@ namespace ts {
33863386
* 6) - UnaryExpression[?yield]
33873387
* 7) ~ UnaryExpression[?yield]
33883388
* 8) ! UnaryExpression[?yield]
3389+
* 9) await AwaitExpression[?yield]
33893390
*/
33903391
function parseSimpleUnaryExpression(): UnaryExpression {
33913392
switch (token) {

tests/baselines/reference/castOfAwait.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
//// [castOfAwait.ts]
22
async function f() {
3-
return <number> await 0;
3+
<number> await 0;
4+
typeof await 0;
5+
void await 0;
6+
await void <string> typeof <number> void await 0;
47
}
58

69

@@ -15,6 +18,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
1518
};
1619
function f() {
1720
return __awaiter(this, void 0, void 0, function* () {
18-
return yield 0;
21+
yield 0;
22+
typeof yield 0;
23+
void yield 0;
24+
yield void typeof void yield 0;
1925
});
2026
}

tests/baselines/reference/castOfAwait.symbols

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
async function f() {
33
>f : Symbol(f, Decl(castOfAwait.ts, 0, 0))
44

5-
return <number> await 0;
5+
<number> await 0;
6+
typeof await 0;
7+
void await 0;
8+
await void <string> typeof <number> void await 0;
69
}
710

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,30 @@
11
=== tests/cases/compiler/castOfAwait.ts ===
22
async function f() {
3-
>f : () => Promise<number>
3+
>f : () => Promise<void>
44

5-
return <number> await 0;
5+
<number> await 0;
66
><number> await 0 : number
77
>await 0 : number
8+
>0 : number
9+
10+
typeof await 0;
11+
>typeof await 0 : string
12+
>await 0 : number
13+
>0 : number
14+
15+
void await 0;
16+
>void await 0 : undefined
17+
>await 0 : number
18+
>0 : number
19+
20+
await void <string> typeof <number> void await 0;
21+
>await void <string> typeof <number> void await 0 : any
22+
>void <string> typeof <number> void await 0 : undefined
23+
><string> typeof <number> void await 0 : string
24+
>typeof <number> void await 0 : string
25+
><number> void await 0 : number
26+
>void await 0 : undefined
27+
>await 0 : number
828
>0 : number
929
}
1030

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
tests/cases/compiler/castOfYield.ts(4,14): error TS1109: Expression expected.
2+
3+
4+
==== tests/cases/compiler/castOfYield.ts (1 errors) ====
5+
function* f() {
6+
<number> (yield 0);
7+
// Unlike await, yield is not allowed to appear in a simple unary expression.
8+
<number> yield 0;
9+
~~~~~
10+
!!! error TS1109: Expression expected.
11+
}
12+
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
//// [castOfYield.ts]
2+
function* f() {
3+
<number> (yield 0);
4+
// Unlike await, yield is not allowed to appear in a simple unary expression.
5+
<number> yield 0;
6+
}
7+
8+
9+
//// [castOfYield.js]
10+
function f() {
11+
(yield 0);
12+
// Unlike await, yield is not allowed to appear in a simple unary expression.
13+
;
14+
yield 0;
15+
}

tests/cases/compiler/castOfAwait.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
// @target: es6
22
async function f() {
3-
return <number> await 0;
3+
<number> await 0;
4+
typeof await 0;
5+
void await 0;
6+
await void <string> typeof <number> void await 0;
47
}

tests/cases/compiler/castOfYield.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
function* f() {
2+
<number> (yield 0);
3+
// Unlike await, yield is not allowed to appear in a simple unary expression.
4+
<number> yield 0;
5+
}

0 commit comments

Comments
 (0)