Conformance tests for for-await-of

This commit is contained in:
Ron Buckton
2016-11-17 23:25:24 -08:00
parent e53263edbb
commit 42085a6576
28 changed files with 284 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
tests/cases/conformance/es2017/forAwait/forAwait.1.es2017.ts(2,5): error TS1104: A 'for-await-of' statement is only allowed within an async function or async generator.
==== tests/cases/conformance/es2017/forAwait/forAwait.1.es2017.ts (1 errors) ====
declare const ai: AsyncIterable<number>;
for await (const x of ai) {
~~~~~
!!! error TS1104: A 'for-await-of' statement is only allowed within an async function or async generator.
}

View File

@@ -0,0 +1,8 @@
//// [forAwait.1.es2017.ts]
declare const ai: AsyncIterable<number>;
for await (const x of ai) {
}
//// [forAwait.1.es2017.js]
for await (const x of ai) {
}

View File

@@ -0,0 +1,11 @@
tests/cases/conformance/es2017/forAwait/forAwait.2.es2017.ts(3,9): error TS1104: A 'for-await-of' statement is only allowed within an async function or async generator.
==== tests/cases/conformance/es2017/forAwait/forAwait.2.es2017.ts (1 errors) ====
declare const ai: AsyncIterable<number>;
function f() {
for await (const x of ai) {
~~~~~
!!! error TS1104: A 'for-await-of' statement is only allowed within an async function or async generator.
}
}

View File

@@ -0,0 +1,12 @@
//// [forAwait.2.es2017.ts]
declare const ai: AsyncIterable<number>;
function f() {
for await (const x of ai) {
}
}
//// [forAwait.2.es2017.js]
function f() {
for await (const x of ai) {
}
}

View File

@@ -0,0 +1,12 @@
//// [forAwait.3.es2017.ts]
declare const ai: AsyncIterable<number>;
async function f() {
for await (const x of ai) {
}
}
//// [forAwait.3.es2017.js]
async function f() {
for await (const x of ai) {
}
}

View File

@@ -0,0 +1,13 @@
=== tests/cases/conformance/es2017/forAwait/forAwait.3.es2017.ts ===
declare const ai: AsyncIterable<number>;
>ai : Symbol(ai, Decl(forAwait.3.es2017.ts, 0, 13))
>AsyncIterable : Symbol(AsyncIterable, Decl(lib.es2017.asynciterable.d.ts, --, --))
async function f() {
>f : Symbol(f, Decl(forAwait.3.es2017.ts, 0, 40))
for await (const x of ai) {
>x : Symbol(x, Decl(forAwait.3.es2017.ts, 2, 20))
>ai : Symbol(ai, Decl(forAwait.3.es2017.ts, 0, 13))
}
}

View File

@@ -0,0 +1,13 @@
=== tests/cases/conformance/es2017/forAwait/forAwait.3.es2017.ts ===
declare const ai: AsyncIterable<number>;
>ai : AsyncIterable<number>
>AsyncIterable : AsyncIterable<T>
async function f() {
>f : () => Promise<void>
for await (const x of ai) {
>x : number
>ai : AsyncIterable<number>
}
}

View File

@@ -0,0 +1,12 @@
//// [forAwait.4.es2017.ts]
declare const i: Iterable<number>;
async function f() {
for await (const x of i) {
}
}
//// [forAwait.4.es2017.js]
async function f() {
for await (const x of i) {
}
}

View File

@@ -0,0 +1,13 @@
=== tests/cases/conformance/es2017/forAwait/forAwait.4.es2017.ts ===
declare const i: Iterable<number>;
>i : Symbol(i, Decl(forAwait.4.es2017.ts, 0, 13))
>Iterable : Symbol(Iterable, Decl(lib.es2015.iterable.d.ts, --, --))
async function f() {
>f : Symbol(f, Decl(forAwait.4.es2017.ts, 0, 34))
for await (const x of i) {
>x : Symbol(x, Decl(forAwait.4.es2017.ts, 2, 20))
>i : Symbol(i, Decl(forAwait.4.es2017.ts, 0, 13))
}
}

View File

@@ -0,0 +1,13 @@
=== tests/cases/conformance/es2017/forAwait/forAwait.4.es2017.ts ===
declare const i: Iterable<number>;
>i : Iterable<number>
>Iterable : Iterable<T>
async function f() {
>f : () => Promise<void>
for await (const x of i) {
>x : number
>i : Iterable<number>
}
}

View File

@@ -0,0 +1,12 @@
//// [forAwait.5.es2017.ts]
declare const ai: AsyncIterable<number>;
async function* f() {
for await (const x of ai) {
}
}
//// [forAwait.5.es2017.js]
async function* f() {
for await (const x of ai) {
}
}

View File

@@ -0,0 +1,13 @@
=== tests/cases/conformance/es2017/forAwait/forAwait.5.es2017.ts ===
declare const ai: AsyncIterable<number>;
>ai : Symbol(ai, Decl(forAwait.5.es2017.ts, 0, 13))
>AsyncIterable : Symbol(AsyncIterable, Decl(lib.es2017.asynciterable.d.ts, --, --))
async function* f() {
>f : Symbol(f, Decl(forAwait.5.es2017.ts, 0, 40))
for await (const x of ai) {
>x : Symbol(x, Decl(forAwait.5.es2017.ts, 2, 20))
>ai : Symbol(ai, Decl(forAwait.5.es2017.ts, 0, 13))
}
}

View File

@@ -0,0 +1,13 @@
=== tests/cases/conformance/es2017/forAwait/forAwait.5.es2017.ts ===
declare const ai: AsyncIterable<number>;
>ai : AsyncIterable<number>
>AsyncIterable : AsyncIterable<T>
async function* f() {
>f : () => AsyncIterableIterator<any>
for await (const x of ai) {
>x : number
>ai : AsyncIterable<number>
}
}

View File

@@ -0,0 +1,12 @@
//// [forAwait.6.es2017.ts]
declare const i: Iterable<number>;
async function* f() {
for await (const x of i) {
}
}
//// [forAwait.6.es2017.js]
async function* f() {
for await (const x of i) {
}
}

View File

@@ -0,0 +1,13 @@
=== tests/cases/conformance/es2017/forAwait/forAwait.6.es2017.ts ===
declare const i: Iterable<number>;
>i : Symbol(i, Decl(forAwait.6.es2017.ts, 0, 13))
>Iterable : Symbol(Iterable, Decl(lib.es2015.iterable.d.ts, --, --))
async function* f() {
>f : Symbol(f, Decl(forAwait.6.es2017.ts, 0, 34))
for await (const x of i) {
>x : Symbol(x, Decl(forAwait.6.es2017.ts, 2, 20))
>i : Symbol(i, Decl(forAwait.6.es2017.ts, 0, 13))
}
}

View File

@@ -0,0 +1,13 @@
=== tests/cases/conformance/es2017/forAwait/forAwait.6.es2017.ts ===
declare const i: Iterable<number>;
>i : Iterable<number>
>Iterable : Iterable<T>
async function* f() {
>f : () => AsyncIterableIterator<any>
for await (const x of i) {
>x : number
>i : Iterable<number>
}
}

View File

@@ -0,0 +1,11 @@
tests/cases/conformance/es2017/forAwait/forAwait.7.es2017.ts(3,9): error TS1104: A 'for-await-of' statement is only allowed within an async function or async generator.
==== tests/cases/conformance/es2017/forAwait/forAwait.7.es2017.ts (1 errors) ====
declare const ai: AsyncIterable<number>;
function* f() {
for await (const x of ai) {
~~~~~
!!! error TS1104: A 'for-await-of' statement is only allowed within an async function or async generator.
}
}

View File

@@ -0,0 +1,12 @@
//// [forAwait.7.es2017.ts]
declare const ai: AsyncIterable<number>;
function* f() {
for await (const x of ai) {
}
}
//// [forAwait.7.es2017.js]
function* f() {
for await (const x of ai) {
}
}

View File

@@ -0,0 +1,11 @@
tests/cases/conformance/es2017/forAwait/forAwait.8.es2017.ts(3,9): error TS1104: A 'for-await-of' statement is only allowed within an async function or async generator.
==== tests/cases/conformance/es2017/forAwait/forAwait.8.es2017.ts (1 errors) ====
declare const i: Iterable<number>;
function* f() {
for await (const x of i) {
~~~~~
!!! error TS1104: A 'for-await-of' statement is only allowed within an async function or async generator.
}
}

View File

@@ -0,0 +1,12 @@
//// [forAwait.8.es2017.ts]
declare const i: Iterable<number>;
function* f() {
for await (const x of i) {
}
}
//// [forAwait.8.es2017.js]
function* f() {
for await (const x of i) {
}
}

View File

@@ -0,0 +1,4 @@
// @target: es2017
declare const ai: AsyncIterable<number>;
for await (const x of ai) {
}

View File

@@ -0,0 +1,6 @@
// @target: es2017
declare const ai: AsyncIterable<number>;
function f() {
for await (const x of ai) {
}
}

View File

@@ -0,0 +1,6 @@
// @target: es2017
declare const ai: AsyncIterable<number>;
async function f() {
for await (const x of ai) {
}
}

View File

@@ -0,0 +1,6 @@
// @target: es2017
declare const i: Iterable<number>;
async function f() {
for await (const x of i) {
}
}

View File

@@ -0,0 +1,6 @@
// @target: es2017
declare const ai: AsyncIterable<number>;
async function* f() {
for await (const x of ai) {
}
}

View File

@@ -0,0 +1,6 @@
// @target: es2017
declare const i: Iterable<number>;
async function* f() {
for await (const x of i) {
}
}

View File

@@ -0,0 +1,6 @@
// @target: es2017
declare const ai: AsyncIterable<number>;
function* f() {
for await (const x of ai) {
}
}

View File

@@ -0,0 +1,6 @@
// @target: es2017
declare const i: Iterable<number>;
function* f() {
for await (const x of i) {
}
}