Add tests for generators

This commit is contained in:
Jason Freeman
2015-05-04 16:15:55 -07:00
parent 6183c81f9e
commit 28d9c6cd7e
189 changed files with 2254 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
//// [generatorTypeCheck1.ts]
function* g1(): Iterator<string> { }
//// [generatorTypeCheck1.js]
function* g1() { }

View File

@@ -0,0 +1,5 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck1.ts ===
function* g1(): Iterator<string> { }
>g1 : Symbol(g1, Decl(generatorTypeCheck1.ts, 0, 0))
>Iterator : Symbol(Iterator, Decl(lib.d.ts, 1657, 1))

View File

@@ -0,0 +1,5 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck1.ts ===
function* g1(): Iterator<string> { }
>g1 : () => Iterator<string>
>Iterator : Iterator<T>

View File

@@ -0,0 +1,9 @@
//// [generatorTypeCheck10.ts]
function* g(): IterableIterator<any> {
return;
}
//// [generatorTypeCheck10.js]
function* g() {
return;
}

View File

@@ -0,0 +1,7 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck10.ts ===
function* g(): IterableIterator<any> {
>g : Symbol(g, Decl(generatorTypeCheck10.ts, 0, 0))
>IterableIterator : Symbol(IterableIterator, Decl(lib.d.ts, 1667, 1))
return;
}

View File

@@ -0,0 +1,7 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck10.ts ===
function* g(): IterableIterator<any> {
>g : () => IterableIterator<any>
>IterableIterator : IterableIterator<T>
return;
}

View File

@@ -0,0 +1,9 @@
//// [generatorTypeCheck11.ts]
function* g(): IterableIterator<number> {
return 0;
}
//// [generatorTypeCheck11.js]
function* g() {
return 0;
}

View File

@@ -0,0 +1,7 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck11.ts ===
function* g(): IterableIterator<number> {
>g : Symbol(g, Decl(generatorTypeCheck11.ts, 0, 0))
>IterableIterator : Symbol(IterableIterator, Decl(lib.d.ts, 1667, 1))
return 0;
}

View File

@@ -0,0 +1,8 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck11.ts ===
function* g(): IterableIterator<number> {
>g : () => IterableIterator<number>
>IterableIterator : IterableIterator<T>
return 0;
>0 : number
}

View File

@@ -0,0 +1,9 @@
//// [generatorTypeCheck12.ts]
function* g(): IterableIterator<number> {
return "";
}
//// [generatorTypeCheck12.js]
function* g() {
return "";
}

View File

@@ -0,0 +1,7 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck12.ts ===
function* g(): IterableIterator<number> {
>g : Symbol(g, Decl(generatorTypeCheck12.ts, 0, 0))
>IterableIterator : Symbol(IterableIterator, Decl(lib.d.ts, 1667, 1))
return "";
}

View File

@@ -0,0 +1,8 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck12.ts ===
function* g(): IterableIterator<number> {
>g : () => IterableIterator<number>
>IterableIterator : IterableIterator<T>
return "";
>"" : string
}

View File

@@ -0,0 +1,11 @@
//// [generatorTypeCheck13.ts]
function* g(): IterableIterator<number> {
yield 0;
return "";
}
//// [generatorTypeCheck13.js]
function* g() {
yield 0;
return "";
}

View File

@@ -0,0 +1,8 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck13.ts ===
function* g(): IterableIterator<number> {
>g : Symbol(g, Decl(generatorTypeCheck13.ts, 0, 0))
>IterableIterator : Symbol(IterableIterator, Decl(lib.d.ts, 1667, 1))
yield 0;
return "";
}

View File

@@ -0,0 +1,12 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck13.ts ===
function* g(): IterableIterator<number> {
>g : () => IterableIterator<number>
>IterableIterator : IterableIterator<T>
yield 0;
>yield 0 : any
>0 : number
return "";
>"" : string
}

View File

@@ -0,0 +1,11 @@
//// [generatorTypeCheck14.ts]
function* g() {
yield 0;
return "";
}
//// [generatorTypeCheck14.js]
function* g() {
yield 0;
return "";
}

View File

@@ -0,0 +1,7 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck14.ts ===
function* g() {
>g : Symbol(g, Decl(generatorTypeCheck14.ts, 0, 0))
yield 0;
return "";
}

View File

@@ -0,0 +1,11 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck14.ts ===
function* g() {
>g : () => IterableIterator<number>
yield 0;
>yield 0 : any
>0 : number
return "";
>"" : string
}

View File

@@ -0,0 +1,9 @@
//// [generatorTypeCheck15.ts]
function* g() {
return "";
}
//// [generatorTypeCheck15.js]
function* g() {
return "";
}

View File

@@ -0,0 +1,6 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck15.ts ===
function* g() {
>g : Symbol(g, Decl(generatorTypeCheck15.ts, 0, 0))
return "";
}

View File

@@ -0,0 +1,7 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck15.ts ===
function* g() {
>g : () => IterableIterator<any>
return "";
>"" : string
}

View File

@@ -0,0 +1,9 @@
//// [generatorTypeCheck16.ts]
function* g() {
return;
}
//// [generatorTypeCheck16.js]
function* g() {
return;
}

View File

@@ -0,0 +1,6 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck16.ts ===
function* g() {
>g : Symbol(g, Decl(generatorTypeCheck16.ts, 0, 0))
return;
}

View File

@@ -0,0 +1,6 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck16.ts ===
function* g() {
>g : () => IterableIterator<any>
return;
}

View File

@@ -0,0 +1,17 @@
//// [generatorTypeCheck17.ts]
class Foo { x: number }
class Bar extends Foo { y: string }
function* g(): IterableIterator<Foo> {
yield;
yield new Bar;
}
//// [generatorTypeCheck17.js]
class Foo {
}
class Bar extends Foo {
}
function* g() {
yield;
yield new Bar;
}

View File

@@ -0,0 +1,19 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck17.ts ===
class Foo { x: number }
>Foo : Symbol(Foo, Decl(generatorTypeCheck17.ts, 0, 0))
>x : Symbol(x, Decl(generatorTypeCheck17.ts, 0, 11))
class Bar extends Foo { y: string }
>Bar : Symbol(Bar, Decl(generatorTypeCheck17.ts, 0, 23))
>Foo : Symbol(Foo, Decl(generatorTypeCheck17.ts, 0, 0))
>y : Symbol(y, Decl(generatorTypeCheck17.ts, 1, 23))
function* g(): IterableIterator<Foo> {
>g : Symbol(g, Decl(generatorTypeCheck17.ts, 1, 35))
>IterableIterator : Symbol(IterableIterator, Decl(lib.d.ts, 1667, 1))
>Foo : Symbol(Foo, Decl(generatorTypeCheck17.ts, 0, 0))
yield;
yield new Bar;
>Bar : Symbol(Bar, Decl(generatorTypeCheck17.ts, 0, 23))
}

View File

@@ -0,0 +1,23 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck17.ts ===
class Foo { x: number }
>Foo : Foo
>x : number
class Bar extends Foo { y: string }
>Bar : Bar
>Foo : Foo
>y : string
function* g(): IterableIterator<Foo> {
>g : () => IterableIterator<Foo>
>IterableIterator : IterableIterator<T>
>Foo : Foo
yield;
>yield : any
yield new Bar;
>yield new Bar : any
>new Bar : Bar
>Bar : typeof Bar
}

View File

@@ -0,0 +1,14 @@
tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck18.ts(5,11): error TS2322: Type 'Baz' is not assignable to type 'Foo'.
Property 'x' is missing in type 'Baz'.
==== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck18.ts (1 errors) ====
class Foo { x: number }
class Baz { z: number }
function* g(): IterableIterator<Foo> {
yield;
yield new Baz;
~~~~~~~
!!! error TS2322: Type 'Baz' is not assignable to type 'Foo'.
!!! error TS2322: Property 'x' is missing in type 'Baz'.
}

View File

@@ -0,0 +1,17 @@
//// [generatorTypeCheck18.ts]
class Foo { x: number }
class Baz { z: number }
function* g(): IterableIterator<Foo> {
yield;
yield new Baz;
}
//// [generatorTypeCheck18.js]
class Foo {
}
class Baz {
}
function* g() {
yield;
yield new Baz;
}

View File

@@ -0,0 +1,17 @@
//// [generatorTypeCheck19.ts]
class Foo { x: number }
class Bar extends Foo { y: string }
function* g(): IterableIterator<Foo> {
yield;
yield * [new Bar];
}
//// [generatorTypeCheck19.js]
class Foo {
}
class Bar extends Foo {
}
function* g() {
yield;
yield* [new Bar];
}

View File

@@ -0,0 +1,19 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck19.ts ===
class Foo { x: number }
>Foo : Symbol(Foo, Decl(generatorTypeCheck19.ts, 0, 0))
>x : Symbol(x, Decl(generatorTypeCheck19.ts, 0, 11))
class Bar extends Foo { y: string }
>Bar : Symbol(Bar, Decl(generatorTypeCheck19.ts, 0, 23))
>Foo : Symbol(Foo, Decl(generatorTypeCheck19.ts, 0, 0))
>y : Symbol(y, Decl(generatorTypeCheck19.ts, 1, 23))
function* g(): IterableIterator<Foo> {
>g : Symbol(g, Decl(generatorTypeCheck19.ts, 1, 35))
>IterableIterator : Symbol(IterableIterator, Decl(lib.d.ts, 1667, 1))
>Foo : Symbol(Foo, Decl(generatorTypeCheck19.ts, 0, 0))
yield;
yield * [new Bar];
>Bar : Symbol(Bar, Decl(generatorTypeCheck19.ts, 0, 23))
}

View File

@@ -0,0 +1,24 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck19.ts ===
class Foo { x: number }
>Foo : Foo
>x : number
class Bar extends Foo { y: string }
>Bar : Bar
>Foo : Foo
>y : string
function* g(): IterableIterator<Foo> {
>g : () => IterableIterator<Foo>
>IterableIterator : IterableIterator<T>
>Foo : Foo
yield;
>yield : any
yield * [new Bar];
>yield * [new Bar] : any
>[new Bar] : Bar[]
>new Bar : Bar
>Bar : typeof Bar
}

View File

@@ -0,0 +1,5 @@
//// [generatorTypeCheck2.ts]
function* g1(): Iterable<string> { }
//// [generatorTypeCheck2.js]
function* g1() { }

View File

@@ -0,0 +1,5 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck2.ts ===
function* g1(): Iterable<string> { }
>g1 : Symbol(g1, Decl(generatorTypeCheck2.ts, 0, 0))
>Iterable : Symbol(Iterable, Decl(lib.d.ts, 1663, 1))

View File

@@ -0,0 +1,5 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck2.ts ===
function* g1(): Iterable<string> { }
>g1 : () => Iterable<string>
>Iterable : Iterable<T>

View File

@@ -0,0 +1,14 @@
tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck20.ts(5,13): error TS2322: Type 'Baz' is not assignable to type 'Foo'.
Property 'x' is missing in type 'Baz'.
==== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck20.ts (1 errors) ====
class Foo { x: number }
class Baz { z: number }
function* g(): IterableIterator<Foo> {
yield;
yield * [new Baz];
~~~~~~~~~
!!! error TS2322: Type 'Baz' is not assignable to type 'Foo'.
!!! error TS2322: Property 'x' is missing in type 'Baz'.
}

View File

@@ -0,0 +1,17 @@
//// [generatorTypeCheck20.ts]
class Foo { x: number }
class Baz { z: number }
function* g(): IterableIterator<Foo> {
yield;
yield * [new Baz];
}
//// [generatorTypeCheck20.js]
class Foo {
}
class Baz {
}
function* g() {
yield;
yield* [new Baz];
}

View File

@@ -0,0 +1,12 @@
tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck21.ts(5,13): error TS2488: Type must have a '[Symbol.iterator]()' method that returns an iterator.
==== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck21.ts (1 errors) ====
class Foo { x: number }
class Bar extends Foo { y: string }
function* g(): IterableIterator<Foo> {
yield;
yield * new Bar;
~~~~~~~
!!! error TS2488: Type must have a '[Symbol.iterator]()' method that returns an iterator.
}

View File

@@ -0,0 +1,17 @@
//// [generatorTypeCheck21.ts]
class Foo { x: number }
class Bar extends Foo { y: string }
function* g(): IterableIterator<Foo> {
yield;
yield * new Bar;
}
//// [generatorTypeCheck21.js]
class Foo {
}
class Bar extends Foo {
}
function* g() {
yield;
yield* new Bar;
}

View File

@@ -0,0 +1,26 @@
//// [generatorTypeCheck22.ts]
class Foo { x: number }
class Bar extends Foo { y: string }
class Baz { z: number }
function* g3() {
yield;
yield new Bar;
yield new Baz;
yield *[new Bar];
yield *[new Baz];
}
//// [generatorTypeCheck22.js]
class Foo {
}
class Bar extends Foo {
}
class Baz {
}
function* g3() {
yield;
yield new Bar;
yield new Baz;
yield* [new Bar];
yield* [new Baz];
}

View File

@@ -0,0 +1,30 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck22.ts ===
class Foo { x: number }
>Foo : Symbol(Foo, Decl(generatorTypeCheck22.ts, 0, 0))
>x : Symbol(x, Decl(generatorTypeCheck22.ts, 0, 11))
class Bar extends Foo { y: string }
>Bar : Symbol(Bar, Decl(generatorTypeCheck22.ts, 0, 23))
>Foo : Symbol(Foo, Decl(generatorTypeCheck22.ts, 0, 0))
>y : Symbol(y, Decl(generatorTypeCheck22.ts, 1, 23))
class Baz { z: number }
>Baz : Symbol(Baz, Decl(generatorTypeCheck22.ts, 1, 35))
>z : Symbol(z, Decl(generatorTypeCheck22.ts, 2, 11))
function* g3() {
>g3 : Symbol(g3, Decl(generatorTypeCheck22.ts, 2, 23))
yield;
yield new Bar;
>Bar : Symbol(Bar, Decl(generatorTypeCheck22.ts, 0, 23))
yield new Baz;
>Baz : Symbol(Baz, Decl(generatorTypeCheck22.ts, 1, 35))
yield *[new Bar];
>Bar : Symbol(Bar, Decl(generatorTypeCheck22.ts, 0, 23))
yield *[new Baz];
>Baz : Symbol(Baz, Decl(generatorTypeCheck22.ts, 1, 35))
}

View File

@@ -0,0 +1,42 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck22.ts ===
class Foo { x: number }
>Foo : Foo
>x : number
class Bar extends Foo { y: string }
>Bar : Bar
>Foo : Foo
>y : string
class Baz { z: number }
>Baz : Baz
>z : number
function* g3() {
>g3 : () => IterableIterator<any>
yield;
>yield : any
yield new Bar;
>yield new Bar : any
>new Bar : Bar
>Bar : typeof Bar
yield new Baz;
>yield new Baz : any
>new Baz : Baz
>Baz : typeof Baz
yield *[new Bar];
>yield *[new Bar] : any
>[new Bar] : Bar[]
>new Bar : Bar
>Bar : typeof Bar
yield *[new Baz];
>yield *[new Baz] : any
>[new Baz] : Baz[]
>new Baz : Baz
>Baz : typeof Baz
}

View File

@@ -0,0 +1,28 @@
//// [generatorTypeCheck23.ts]
class Foo { x: number }
class Bar extends Foo { y: string }
class Baz { z: number }
function* g3() {
yield;
yield new Foo;
yield new Bar;
yield new Baz;
yield *[new Bar];
yield *[new Baz];
}
//// [generatorTypeCheck23.js]
class Foo {
}
class Bar extends Foo {
}
class Baz {
}
function* g3() {
yield;
yield new Foo;
yield new Bar;
yield new Baz;
yield* [new Bar];
yield* [new Baz];
}

View File

@@ -0,0 +1,33 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck23.ts ===
class Foo { x: number }
>Foo : Symbol(Foo, Decl(generatorTypeCheck23.ts, 0, 0))
>x : Symbol(x, Decl(generatorTypeCheck23.ts, 0, 11))
class Bar extends Foo { y: string }
>Bar : Symbol(Bar, Decl(generatorTypeCheck23.ts, 0, 23))
>Foo : Symbol(Foo, Decl(generatorTypeCheck23.ts, 0, 0))
>y : Symbol(y, Decl(generatorTypeCheck23.ts, 1, 23))
class Baz { z: number }
>Baz : Symbol(Baz, Decl(generatorTypeCheck23.ts, 1, 35))
>z : Symbol(z, Decl(generatorTypeCheck23.ts, 2, 11))
function* g3() {
>g3 : Symbol(g3, Decl(generatorTypeCheck23.ts, 2, 23))
yield;
yield new Foo;
>Foo : Symbol(Foo, Decl(generatorTypeCheck23.ts, 0, 0))
yield new Bar;
>Bar : Symbol(Bar, Decl(generatorTypeCheck23.ts, 0, 23))
yield new Baz;
>Baz : Symbol(Baz, Decl(generatorTypeCheck23.ts, 1, 35))
yield *[new Bar];
>Bar : Symbol(Bar, Decl(generatorTypeCheck23.ts, 0, 23))
yield *[new Baz];
>Baz : Symbol(Baz, Decl(generatorTypeCheck23.ts, 1, 35))
}

View File

@@ -0,0 +1,47 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck23.ts ===
class Foo { x: number }
>Foo : Foo
>x : number
class Bar extends Foo { y: string }
>Bar : Bar
>Foo : Foo
>y : string
class Baz { z: number }
>Baz : Baz
>z : number
function* g3() {
>g3 : () => IterableIterator<any>
yield;
>yield : any
yield new Foo;
>yield new Foo : any
>new Foo : Foo
>Foo : typeof Foo
yield new Bar;
>yield new Bar : any
>new Bar : Bar
>Bar : typeof Bar
yield new Baz;
>yield new Baz : any
>new Baz : Baz
>Baz : typeof Baz
yield *[new Bar];
>yield *[new Bar] : any
>[new Bar] : Bar[]
>new Bar : Bar
>Bar : typeof Bar
yield *[new Baz];
>yield *[new Baz] : any
>[new Baz] : Baz[]
>new Baz : Baz
>Baz : typeof Baz
}

View File

@@ -0,0 +1,28 @@
//// [generatorTypeCheck24.ts]
class Foo { x: number }
class Bar extends Foo { y: string }
class Baz { z: number }
function* g3() {
yield;
yield * [new Foo];
yield new Bar;
yield new Baz;
yield *[new Bar];
yield *[new Baz];
}
//// [generatorTypeCheck24.js]
class Foo {
}
class Bar extends Foo {
}
class Baz {
}
function* g3() {
yield;
yield* [new Foo];
yield new Bar;
yield new Baz;
yield* [new Bar];
yield* [new Baz];
}

View File

@@ -0,0 +1,33 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck24.ts ===
class Foo { x: number }
>Foo : Symbol(Foo, Decl(generatorTypeCheck24.ts, 0, 0))
>x : Symbol(x, Decl(generatorTypeCheck24.ts, 0, 11))
class Bar extends Foo { y: string }
>Bar : Symbol(Bar, Decl(generatorTypeCheck24.ts, 0, 23))
>Foo : Symbol(Foo, Decl(generatorTypeCheck24.ts, 0, 0))
>y : Symbol(y, Decl(generatorTypeCheck24.ts, 1, 23))
class Baz { z: number }
>Baz : Symbol(Baz, Decl(generatorTypeCheck24.ts, 1, 35))
>z : Symbol(z, Decl(generatorTypeCheck24.ts, 2, 11))
function* g3() {
>g3 : Symbol(g3, Decl(generatorTypeCheck24.ts, 2, 23))
yield;
yield * [new Foo];
>Foo : Symbol(Foo, Decl(generatorTypeCheck24.ts, 0, 0))
yield new Bar;
>Bar : Symbol(Bar, Decl(generatorTypeCheck24.ts, 0, 23))
yield new Baz;
>Baz : Symbol(Baz, Decl(generatorTypeCheck24.ts, 1, 35))
yield *[new Bar];
>Bar : Symbol(Bar, Decl(generatorTypeCheck24.ts, 0, 23))
yield *[new Baz];
>Baz : Symbol(Baz, Decl(generatorTypeCheck24.ts, 1, 35))
}

View File

@@ -0,0 +1,48 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck24.ts ===
class Foo { x: number }
>Foo : Foo
>x : number
class Bar extends Foo { y: string }
>Bar : Bar
>Foo : Foo
>y : string
class Baz { z: number }
>Baz : Baz
>z : number
function* g3() {
>g3 : () => IterableIterator<any>
yield;
>yield : any
yield * [new Foo];
>yield * [new Foo] : any
>[new Foo] : Foo[]
>new Foo : Foo
>Foo : typeof Foo
yield new Bar;
>yield new Bar : any
>new Bar : Bar
>Bar : typeof Bar
yield new Baz;
>yield new Baz : any
>new Baz : Baz
>Baz : typeof Baz
yield *[new Bar];
>yield *[new Bar] : any
>[new Bar] : Bar[]
>new Bar : Bar
>Bar : typeof Bar
yield *[new Baz];
>yield *[new Baz] : any
>[new Baz] : Baz[]
>new Baz : Baz
>Baz : typeof Baz
}

View File

@@ -0,0 +1,36 @@
tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck25.ts(4,5): error TS2322: Type '() => IterableIterator<Bar | Baz>' is not assignable to type '() => Iterable<Foo>'.
Type 'IterableIterator<Bar | Baz>' is not assignable to type 'Iterable<Foo>'.
Types of property '[Symbol.iterator]' are incompatible.
Type '() => IterableIterator<Bar | Baz>' is not assignable to type '() => Iterator<Foo>'.
Type 'IterableIterator<Bar | Baz>' is not assignable to type 'Iterator<Foo>'.
Types of property 'next' are incompatible.
Type '(value?: any) => IteratorResult<Bar | Baz>' is not assignable to type '(value?: any) => IteratorResult<Foo>'.
Type 'IteratorResult<Bar | Baz>' is not assignable to type 'IteratorResult<Foo>'.
Type 'Bar | Baz' is not assignable to type 'Foo'.
Type 'Baz' is not assignable to type 'Foo'.
Property 'x' is missing in type 'Baz'.
==== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck25.ts (1 errors) ====
class Foo { x: number }
class Bar extends Foo { y: string }
class Baz { z: number }
var g3: () => Iterable<Foo> = function* () {
~~
!!! error TS2322: Type '() => IterableIterator<Bar | Baz>' is not assignable to type '() => Iterable<Foo>'.
!!! error TS2322: Type 'IterableIterator<Bar | Baz>' is not assignable to type 'Iterable<Foo>'.
!!! error TS2322: Types of property '[Symbol.iterator]' are incompatible.
!!! error TS2322: Type '() => IterableIterator<Bar | Baz>' is not assignable to type '() => Iterator<Foo>'.
!!! error TS2322: Type 'IterableIterator<Bar | Baz>' is not assignable to type 'Iterator<Foo>'.
!!! error TS2322: Types of property 'next' are incompatible.
!!! error TS2322: Type '(value?: any) => IteratorResult<Bar | Baz>' is not assignable to type '(value?: any) => IteratorResult<Foo>'.
!!! error TS2322: Type 'IteratorResult<Bar | Baz>' is not assignable to type 'IteratorResult<Foo>'.
!!! error TS2322: Type 'Bar | Baz' is not assignable to type 'Foo'.
!!! error TS2322: Type 'Baz' is not assignable to type 'Foo'.
!!! error TS2322: Property 'x' is missing in type 'Baz'.
yield;
yield new Bar;
yield new Baz;
yield *[new Bar];
yield *[new Baz];
}

View File

@@ -0,0 +1,26 @@
//// [generatorTypeCheck25.ts]
class Foo { x: number }
class Bar extends Foo { y: string }
class Baz { z: number }
var g3: () => Iterable<Foo> = function* () {
yield;
yield new Bar;
yield new Baz;
yield *[new Bar];
yield *[new Baz];
}
//// [generatorTypeCheck25.js]
class Foo {
}
class Bar extends Foo {
}
class Baz {
}
var g3 = function* () {
yield;
yield new Bar;
yield new Baz;
yield* [new Bar];
yield* [new Baz];
};

View File

@@ -0,0 +1,13 @@
//// [generatorTypeCheck26.ts]
function* g(): IterableIterator<(x: string) => number> {
yield x => x.length;
yield *[x => x.length];
return x => x.length;
}
//// [generatorTypeCheck26.js]
function* g() {
yield x => x.length;
yield* [x => x.length];
return x => x.length;
}

View File

@@ -0,0 +1,22 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck26.ts ===
function* g(): IterableIterator<(x: string) => number> {
>g : Symbol(g, Decl(generatorTypeCheck26.ts, 0, 0))
>IterableIterator : Symbol(IterableIterator, Decl(lib.d.ts, 1667, 1))
>x : Symbol(x, Decl(generatorTypeCheck26.ts, 0, 33))
yield x => x.length;
>x : Symbol(x, Decl(generatorTypeCheck26.ts, 1, 9))
>x.length : Symbol(String.length, Decl(lib.d.ts, 414, 19))
>x : Symbol(x, Decl(generatorTypeCheck26.ts, 1, 9))
>length : Symbol(String.length, Decl(lib.d.ts, 414, 19))
yield *[x => x.length];
>x : Symbol(x, Decl(generatorTypeCheck26.ts, 2, 12))
>x.length : Symbol(String.length, Decl(lib.d.ts, 414, 19))
>x : Symbol(x, Decl(generatorTypeCheck26.ts, 2, 12))
>length : Symbol(String.length, Decl(lib.d.ts, 414, 19))
return x => x.length;
>x : Symbol(x, Decl(generatorTypeCheck26.ts, 3, 10))
>x : Symbol(x, Decl(generatorTypeCheck26.ts, 3, 10))
}

View File

@@ -0,0 +1,30 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck26.ts ===
function* g(): IterableIterator<(x: string) => number> {
>g : () => IterableIterator<(x: string) => number>
>IterableIterator : IterableIterator<T>
>x : string
yield x => x.length;
>yield x => x.length : any
>x => x.length : (x: string) => number
>x : string
>x.length : number
>x : string
>length : number
yield *[x => x.length];
>yield *[x => x.length] : any
>[x => x.length] : ((x: string) => number)[]
>x => x.length : (x: string) => number
>x : string
>x.length : number
>x : string
>length : number
return x => x.length;
>x => x.length : (x: any) => any
>x : any
>x.length : any
>x : any
>length : any
}

View File

@@ -0,0 +1,13 @@
//// [generatorTypeCheck27.ts]
function* g(): IterableIterator<(x: string) => number> {
yield * function* () {
yield x => x.length;
} ();
}
//// [generatorTypeCheck27.js]
function* g() {
yield* function* () {
yield x => x.length;
}();
}

View File

@@ -0,0 +1,13 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck27.ts ===
function* g(): IterableIterator<(x: string) => number> {
>g : Symbol(g, Decl(generatorTypeCheck27.ts, 0, 0))
>IterableIterator : Symbol(IterableIterator, Decl(lib.d.ts, 1667, 1))
>x : Symbol(x, Decl(generatorTypeCheck27.ts, 0, 33))
yield * function* () {
yield x => x.length;
>x : Symbol(x, Decl(generatorTypeCheck27.ts, 2, 13))
>x : Symbol(x, Decl(generatorTypeCheck27.ts, 2, 13))
} ();
}

View File

@@ -0,0 +1,21 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck27.ts ===
function* g(): IterableIterator<(x: string) => number> {
>g : () => IterableIterator<(x: string) => number>
>IterableIterator : IterableIterator<T>
>x : string
yield * function* () {
>yield * function* () { yield x => x.length; } () : any
>function* () { yield x => x.length; } () : IterableIterator<(x: any) => any>
>function* () { yield x => x.length; } : () => IterableIterator<(x: any) => any>
yield x => x.length;
>yield x => x.length : any
>x => x.length : (x: any) => any
>x : any
>x.length : any
>x : any
>length : any
} ();
}

View File

@@ -0,0 +1,17 @@
//// [generatorTypeCheck28.ts]
function* g(): IterableIterator<(x: string) => number> {
yield * {
*[Symbol.iterator]() {
yield x => x.length;
}
};
}
//// [generatorTypeCheck28.js]
function* g() {
yield* {
*[Symbol.iterator]() {
yield x => x.length;
}
};
}

View File

@@ -0,0 +1,20 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck28.ts ===
function* g(): IterableIterator<(x: string) => number> {
>g : Symbol(g, Decl(generatorTypeCheck28.ts, 0, 0))
>IterableIterator : Symbol(IterableIterator, Decl(lib.d.ts, 1667, 1))
>x : Symbol(x, Decl(generatorTypeCheck28.ts, 0, 33))
yield * {
*[Symbol.iterator]() {
>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31))
>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1292, 11))
>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31))
yield x => x.length;
>x : Symbol(x, Decl(generatorTypeCheck28.ts, 3, 17))
>x.length : Symbol(String.length, Decl(lib.d.ts, 414, 19))
>x : Symbol(x, Decl(generatorTypeCheck28.ts, 3, 17))
>length : Symbol(String.length, Decl(lib.d.ts, 414, 19))
}
};
}

View File

@@ -0,0 +1,25 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck28.ts ===
function* g(): IterableIterator<(x: string) => number> {
>g : () => IterableIterator<(x: string) => number>
>IterableIterator : IterableIterator<T>
>x : string
yield * {
>yield * { *[Symbol.iterator]() { yield x => x.length; } } : any
>{ *[Symbol.iterator]() { yield x => x.length; } } : { [Symbol.iterator](): IterableIterator<(x: string) => number>; }
*[Symbol.iterator]() {
>Symbol.iterator : symbol
>Symbol : SymbolConstructor
>iterator : symbol
yield x => x.length;
>yield x => x.length : any
>x => x.length : (x: string) => number
>x : string
>x.length : number
>x : string
>length : number
}
};
}

View File

@@ -0,0 +1,13 @@
//// [generatorTypeCheck29.ts]
function* g2(): Iterator<Iterable<(x: string) => number>> {
yield function* () {
yield x => x.length;
} ()
}
//// [generatorTypeCheck29.js]
function* g2() {
yield function* () {
yield x => x.length;
}();
}

View File

@@ -0,0 +1,14 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck29.ts ===
function* g2(): Iterator<Iterable<(x: string) => number>> {
>g2 : Symbol(g2, Decl(generatorTypeCheck29.ts, 0, 0))
>Iterator : Symbol(Iterator, Decl(lib.d.ts, 1657, 1))
>Iterable : Symbol(Iterable, Decl(lib.d.ts, 1663, 1))
>x : Symbol(x, Decl(generatorTypeCheck29.ts, 0, 35))
yield function* () {
yield x => x.length;
>x : Symbol(x, Decl(generatorTypeCheck29.ts, 2, 13))
>x : Symbol(x, Decl(generatorTypeCheck29.ts, 2, 13))
} ()
}

View File

@@ -0,0 +1,22 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck29.ts ===
function* g2(): Iterator<Iterable<(x: string) => number>> {
>g2 : () => Iterator<Iterable<(x: string) => number>>
>Iterator : Iterator<T>
>Iterable : Iterable<T>
>x : string
yield function* () {
>yield function* () { yield x => x.length; } () : any
>function* () { yield x => x.length; } () : IterableIterator<(x: any) => any>
>function* () { yield x => x.length; } : () => IterableIterator<(x: any) => any>
yield x => x.length;
>yield x => x.length : any
>x => x.length : (x: any) => any
>x : any
>x.length : any
>x : any
>length : any
} ()
}

View File

@@ -0,0 +1,5 @@
//// [generatorTypeCheck3.ts]
function* g1(): IterableIterator<string> { }
//// [generatorTypeCheck3.js]
function* g1() { }

View File

@@ -0,0 +1,5 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck3.ts ===
function* g1(): IterableIterator<string> { }
>g1 : Symbol(g1, Decl(generatorTypeCheck3.ts, 0, 0))
>IterableIterator : Symbol(IterableIterator, Decl(lib.d.ts, 1667, 1))

View File

@@ -0,0 +1,5 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck3.ts ===
function* g1(): IterableIterator<string> { }
>g1 : () => IterableIterator<string>
>IterableIterator : IterableIterator<T>

View File

@@ -0,0 +1,13 @@
//// [generatorTypeCheck30.ts]
function* g2(): Iterator<Iterable<(x: string) => number>> {
yield function* () {
yield x => x.length;
} ()
}
//// [generatorTypeCheck30.js]
function* g2() {
yield function* () {
yield x => x.length;
}();
}

View File

@@ -0,0 +1,14 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck30.ts ===
function* g2(): Iterator<Iterable<(x: string) => number>> {
>g2 : Symbol(g2, Decl(generatorTypeCheck30.ts, 0, 0))
>Iterator : Symbol(Iterator, Decl(lib.d.ts, 1657, 1))
>Iterable : Symbol(Iterable, Decl(lib.d.ts, 1663, 1))
>x : Symbol(x, Decl(generatorTypeCheck30.ts, 0, 35))
yield function* () {
yield x => x.length;
>x : Symbol(x, Decl(generatorTypeCheck30.ts, 2, 13))
>x : Symbol(x, Decl(generatorTypeCheck30.ts, 2, 13))
} ()
}

View File

@@ -0,0 +1,22 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck30.ts ===
function* g2(): Iterator<Iterable<(x: string) => number>> {
>g2 : () => Iterator<Iterable<(x: string) => number>>
>Iterator : Iterator<T>
>Iterable : Iterable<T>
>x : string
yield function* () {
>yield function* () { yield x => x.length; } () : any
>function* () { yield x => x.length; } () : IterableIterator<(x: any) => any>
>function* () { yield x => x.length; } : () => IterableIterator<(x: any) => any>
yield x => x.length;
>yield x => x.length : any
>x => x.length : (x: any) => any
>x : any
>x.length : any
>x : any
>length : any
} ()
}

View File

@@ -0,0 +1,13 @@
tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck31.ts(2,11): error TS2322: Type 'IterableIterator<(x: any) => any>' is not assignable to type '() => Iterable<(x: string) => number>'.
==== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck31.ts (1 errors) ====
function* g2(): Iterator<() => Iterable<(x: string) => number>> {
yield function* () {
~~~~~~~~~~~~~~
yield x => x.length;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
} ()
~~~~~~~~
!!! error TS2322: Type 'IterableIterator<(x: any) => any>' is not assignable to type '() => Iterable<(x: string) => number>'.
}

View File

@@ -0,0 +1,13 @@
//// [generatorTypeCheck31.ts]
function* g2(): Iterator<() => Iterable<(x: string) => number>> {
yield function* () {
yield x => x.length;
} ()
}
//// [generatorTypeCheck31.js]
function* g2() {
yield function* () {
yield x => x.length;
}();
}

View File

@@ -0,0 +1,8 @@
tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck32.ts(2,29): error TS1163: A 'yield' expression is only allowed in a generator declaration.
==== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck32.ts (1 errors) ====
var s: string;
var f: () => number = () => yield s;
~~~~~
!!! error TS1163: A 'yield' expression is only allowed in a generator declaration.

View File

@@ -0,0 +1,7 @@
//// [generatorTypeCheck32.ts]
var s: string;
var f: () => number = () => yield s;
//// [generatorTypeCheck32.js]
var s;
var f = () => yield s;

View File

@@ -0,0 +1,15 @@
//// [generatorTypeCheck33.ts]
function* g() {
yield 0;
function* g2() {
yield "";
}
}
//// [generatorTypeCheck33.js]
function* g() {
yield 0;
function* g2() {
yield "";
}
}

View File

@@ -0,0 +1,11 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck33.ts ===
function* g() {
>g : Symbol(g, Decl(generatorTypeCheck33.ts, 0, 0))
yield 0;
function* g2() {
>g2 : Symbol(g2, Decl(generatorTypeCheck33.ts, 1, 12))
yield "";
}
}

View File

@@ -0,0 +1,16 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck33.ts ===
function* g() {
>g : () => IterableIterator<number>
yield 0;
>yield 0 : any
>0 : number
function* g2() {
>g2 : () => IterableIterator<string>
yield "";
>yield "" : any
>"" : string
}
}

View File

@@ -0,0 +1,15 @@
//// [generatorTypeCheck34.ts]
function* g() {
yield 0;
function* g2() {
return "";
}
}
//// [generatorTypeCheck34.js]
function* g() {
yield 0;
function* g2() {
return "";
}
}

View File

@@ -0,0 +1,11 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck34.ts ===
function* g() {
>g : Symbol(g, Decl(generatorTypeCheck34.ts, 0, 0))
yield 0;
function* g2() {
>g2 : Symbol(g2, Decl(generatorTypeCheck34.ts, 1, 12))
return "";
}
}

View File

@@ -0,0 +1,15 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck34.ts ===
function* g() {
>g : () => IterableIterator<number>
yield 0;
>yield 0 : any
>0 : number
function* g2() {
>g2 : () => IterableIterator<any>
return "";
>"" : string
}
}

View File

@@ -0,0 +1,15 @@
//// [generatorTypeCheck35.ts]
function* g() {
yield 0;
function g2() {
return "";
}
}
//// [generatorTypeCheck35.js]
function* g() {
yield 0;
function g2() {
return "";
}
}

View File

@@ -0,0 +1,11 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck35.ts ===
function* g() {
>g : Symbol(g, Decl(generatorTypeCheck35.ts, 0, 0))
yield 0;
function g2() {
>g2 : Symbol(g2, Decl(generatorTypeCheck35.ts, 1, 12))
return "";
}
}

View File

@@ -0,0 +1,15 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck35.ts ===
function* g() {
>g : () => IterableIterator<number>
yield 0;
>yield 0 : any
>0 : number
function g2() {
>g2 : () => string
return "";
>"" : string
}
}

View File

@@ -0,0 +1,9 @@
//// [generatorTypeCheck36.ts]
function* g() {
yield yield 0;
}
//// [generatorTypeCheck36.js]
function* g() {
yield yield 0;
}

View File

@@ -0,0 +1,6 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck36.ts ===
function* g() {
>g : Symbol(g, Decl(generatorTypeCheck36.ts, 0, 0))
yield yield 0;
}

View File

@@ -0,0 +1,9 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck36.ts ===
function* g() {
>g : () => IterableIterator<any>
yield yield 0;
>yield yield 0 : any
>yield 0 : any
>0 : number
}

View File

@@ -0,0 +1,9 @@
//// [generatorTypeCheck37.ts]
function* g() {
return yield yield 0;
}
//// [generatorTypeCheck37.js]
function* g() {
return yield yield 0;
}

View File

@@ -0,0 +1,6 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck37.ts ===
function* g() {
>g : Symbol(g, Decl(generatorTypeCheck37.ts, 0, 0))
return yield yield 0;
}

View File

@@ -0,0 +1,9 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck37.ts ===
function* g() {
>g : () => IterableIterator<any>
return yield yield 0;
>yield yield 0 : any
>yield 0 : any
>0 : number
}

View File

@@ -0,0 +1,13 @@
//// [generatorTypeCheck38.ts]
var yield;
function* g() {
yield 0;
var v: typeof yield;
}
//// [generatorTypeCheck38.js]
var yield;
function* g() {
yield 0;
var v;
}

View File

@@ -0,0 +1,12 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck38.ts ===
var yield;
>yield : Symbol(yield, Decl(generatorTypeCheck38.ts, 0, 3))
function* g() {
>g : Symbol(g, Decl(generatorTypeCheck38.ts, 0, 10))
yield 0;
var v: typeof yield;
>v : Symbol(v, Decl(generatorTypeCheck38.ts, 3, 7))
>yield : Symbol(yield, Decl(generatorTypeCheck38.ts, 0, 3))
}

View File

@@ -0,0 +1,15 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck38.ts ===
var yield;
>yield : any
function* g() {
>g : () => IterableIterator<number>
yield 0;
>yield 0 : any
>0 : number
var v: typeof yield;
>v : any
>yield : any
}

View File

@@ -0,0 +1,27 @@
tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck39.ts(5,5): error TS1129: Statement expected.
tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck39.ts(5,6): error TS2346: Supplied parameters do not match any signature of call target.
tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck39.ts(5,16): error TS2304: Cannot find name 'yield'.
tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck39.ts(5,22): error TS1005: ',' expected.
tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck39.ts(9,1): error TS1128: Declaration or statement expected.
==== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck39.ts (5 errors) ====
function decorator(x: any) {
return y => { };
}
function* g() {
@decorator(yield 0)
~
!!! error TS1129: Statement expected.
~~~~~~~~~~~~~~~~~~
!!! error TS2346: Supplied parameters do not match any signature of call target.
~~~~~
!!! error TS2304: Cannot find name 'yield'.
~
!!! error TS1005: ',' expected.
class C {
x = yield 0;
}
}
~
!!! error TS1128: Declaration or statement expected.

View File

@@ -0,0 +1,33 @@
//// [generatorTypeCheck39.ts]
function decorator(x: any) {
return y => { };
}
function* g() {
@decorator(yield 0)
class C {
x = yield 0;
}
}
//// [generatorTypeCheck39.js]
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc);
switch (arguments.length) {
case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target);
case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0);
case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc);
}
};
function decorator(x) {
return y => { };
}
function* g() { }
let C = class {
constructor() {
this.x = yield 0;
}
};
Object.defineProperty(C, "name", { value: "C", configurable: true });
C = __decorate([
decorator(yield, 0)
], C);

View File

@@ -0,0 +1,5 @@
//// [generatorTypeCheck4.ts]
function* g1(): {} { }
//// [generatorTypeCheck4.js]
function* g1() { }

View File

@@ -0,0 +1,4 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck4.ts ===
function* g1(): {} { }
>g1 : Symbol(g1, Decl(generatorTypeCheck4.ts, 0, 0))

View File

@@ -0,0 +1,4 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck4.ts ===
function* g1(): {} { }
>g1 : () => {}

View File

@@ -0,0 +1,12 @@
tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck40.ts(2,11): error TS9004: 'class' declarations are only supported directly inside a module or as a top level declaration.
tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck40.ts(2,21): error TS9002: Only identifiers/qualified-names with optional type arguments are currently supported in a class 'extends' clauses.
==== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck40.ts (2 errors) ====
function* g() {
class C extends (yield 0) { }
~
!!! error TS9004: 'class' declarations are only supported directly inside a module or as a top level declaration.
~~~~~~~~~
!!! error TS9002: Only identifiers/qualified-names with optional type arguments are currently supported in a class 'extends' clauses.
}

View File

@@ -0,0 +1,10 @@
//// [generatorTypeCheck40.ts]
function* g() {
class C extends (yield 0) { }
}
//// [generatorTypeCheck40.js]
function* g() {
class C extends (yield 0) {
}
}

View File

@@ -0,0 +1,13 @@
//// [generatorTypeCheck41.ts]
function* g() {
let x = {
[yield 0]: 0
}
}
//// [generatorTypeCheck41.js]
function* g() {
let x = {
[yield 0]: 0
};
}

View File

@@ -0,0 +1,10 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck41.ts ===
function* g() {
>g : Symbol(g, Decl(generatorTypeCheck41.ts, 0, 0))
let x = {
>x : Symbol(x, Decl(generatorTypeCheck41.ts, 1, 7))
[yield 0]: 0
}
}

View File

@@ -0,0 +1,14 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck41.ts ===
function* g() {
>g : () => IterableIterator<number>
let x = {
>x : {}
>{ [yield 0]: 0 } : {}
[yield 0]: 0
>yield 0 : any
>0 : number
>0 : number
}
}

Some files were not shown because too many files have changed in this diff Show More