1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck46.ts ===
declare function foo<T, U>(x: T, fun: () => Iterable<(x: T) => U>, fun2: (y: U) => T): T;
>foo : Symbol(foo, Decl(generatorTypeCheck46.ts, 0, 0))
>T : Symbol(T, Decl(generatorTypeCheck46.ts, 0, 21))
>U : Symbol(U, Decl(generatorTypeCheck46.ts, 0, 23))
>x : Symbol(x, Decl(generatorTypeCheck46.ts, 0, 27))
>T : Symbol(T, Decl(generatorTypeCheck46.ts, 0, 21))
>fun : Symbol(fun, Decl(generatorTypeCheck46.ts, 0, 32))
>Iterable : Symbol(Iterable, Decl(lib.es2015.iterable.d.ts, --, --))
>x : Symbol(x, Decl(generatorTypeCheck46.ts, 0, 54))
>T : Symbol(T, Decl(generatorTypeCheck46.ts, 0, 21))
>U : Symbol(U, Decl(generatorTypeCheck46.ts, 0, 23))
>fun2 : Symbol(fun2, Decl(generatorTypeCheck46.ts, 0, 66))
>y : Symbol(y, Decl(generatorTypeCheck46.ts, 0, 74))
>U : Symbol(U, Decl(generatorTypeCheck46.ts, 0, 23))
>T : Symbol(T, Decl(generatorTypeCheck46.ts, 0, 21))
>T : Symbol(T, Decl(generatorTypeCheck46.ts, 0, 21))
foo("", function* () {
>foo : Symbol(foo, Decl(generatorTypeCheck46.ts, 0, 0))
yield* {
*[Symbol.iterator]() {
>[Symbol.iterator] : Symbol([Symbol.iterator], Decl(generatorTypeCheck46.ts, 3, 12))
>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.es2015.iterable.d.ts, --, --))
>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --))
>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.es2015.iterable.d.ts, --, --))
yield x => x.length
>x : Symbol(x, Decl(generatorTypeCheck46.ts, 5, 17))
>x.length : Symbol(String.length, Decl(lib.es5.d.ts, --, --))
>x : Symbol(x, Decl(generatorTypeCheck46.ts, 5, 17))
>length : Symbol(String.length, Decl(lib.es5.d.ts, --, --))
}
}
}, p => undefined); // T is fixed, should be string
>p : Symbol(p, Decl(generatorTypeCheck46.ts, 8, 2))
>undefined : Symbol(undefined)
|