File: generatorTypeCheck46.types

package info (click to toggle)
node-typescript 5.0.4%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 459,140 kB
  • sloc: javascript: 1,972,754; makefile: 6; sh: 1
file content (39 lines) | stat: -rw-r--r-- 1,535 bytes parent folder | download | duplicates (3)
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 : <T, U>(x: T, fun: () => Iterable<(x: T) => U>, fun2: (y: U) => T) => T
>x : T
>fun : () => Iterable<(x: T) => U>
>x : T
>fun2 : (y: U) => T
>y : U

foo("", function* () {
>foo("", function* () {    yield* {        *[Symbol.iterator]() {            yield x => x.length        }    }}, p => undefined) : string
>foo : <T, U>(x: T, fun: () => Iterable<(x: T) => U>, fun2: (y: U) => T) => T
>"" : ""
>function* () {    yield* {        *[Symbol.iterator]() {            yield x => x.length        }    }} : () => Generator<(x: string) => number, void, undefined>

    yield* {
>yield* {        *[Symbol.iterator]() {            yield x => x.length        }    } : void
>{        *[Symbol.iterator]() {            yield x => x.length        }    } : { [Symbol.iterator](): Generator<(x: string) => number, void, undefined>; }

        *[Symbol.iterator]() {
>[Symbol.iterator] : () => Generator<(x: string) => number, void, undefined>
>Symbol.iterator : unique symbol
>Symbol : SymbolConstructor
>iterator : unique symbol

            yield x => x.length
>yield x => x.length : undefined
>x => x.length : (x: string) => number
>x : string
>x.length : number
>x : string
>length : number
        }
    }
}, p => undefined); // T is fixed, should be string
>p => undefined : (p: number) => any
>p : number
>undefined : undefined