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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck62.ts ===
export interface StrategicState {
>StrategicState : Symbol(StrategicState, Decl(generatorTypeCheck62.ts, 0, 0))
lastStrategyApplied?: string;
>lastStrategyApplied : Symbol(StrategicState.lastStrategyApplied, Decl(generatorTypeCheck62.ts, 0, 33))
}
export function strategy<T extends StrategicState>(stratName: string, gen: (a: T) => IterableIterator<T | undefined>): (a: T) => IterableIterator<T | undefined> {
>strategy : Symbol(strategy, Decl(generatorTypeCheck62.ts, 2, 1))
>T : Symbol(T, Decl(generatorTypeCheck62.ts, 4, 25))
>StrategicState : Symbol(StrategicState, Decl(generatorTypeCheck62.ts, 0, 0))
>stratName : Symbol(stratName, Decl(generatorTypeCheck62.ts, 4, 51))
>gen : Symbol(gen, Decl(generatorTypeCheck62.ts, 4, 69))
>a : Symbol(a, Decl(generatorTypeCheck62.ts, 4, 76))
>T : Symbol(T, Decl(generatorTypeCheck62.ts, 4, 25))
>IterableIterator : Symbol(IterableIterator, Decl(lib.es2015.iterable.d.ts, --, --))
>T : Symbol(T, Decl(generatorTypeCheck62.ts, 4, 25))
>a : Symbol(a, Decl(generatorTypeCheck62.ts, 4, 120))
>T : Symbol(T, Decl(generatorTypeCheck62.ts, 4, 25))
>IterableIterator : Symbol(IterableIterator, Decl(lib.es2015.iterable.d.ts, --, --))
>T : Symbol(T, Decl(generatorTypeCheck62.ts, 4, 25))
return function*(state) {
>state : Symbol(state, Decl(generatorTypeCheck62.ts, 5, 21))
for (const next of gen(state)) {
>next : Symbol(next, Decl(generatorTypeCheck62.ts, 6, 18))
>gen : Symbol(gen, Decl(generatorTypeCheck62.ts, 4, 69))
>state : Symbol(state, Decl(generatorTypeCheck62.ts, 5, 21))
if (next) {
>next : Symbol(next, Decl(generatorTypeCheck62.ts, 6, 18))
next.lastStrategyApplied = stratName;
>next.lastStrategyApplied : Symbol(StrategicState.lastStrategyApplied, Decl(generatorTypeCheck62.ts, 0, 33))
>next : Symbol(next, Decl(generatorTypeCheck62.ts, 6, 18))
>lastStrategyApplied : Symbol(StrategicState.lastStrategyApplied, Decl(generatorTypeCheck62.ts, 0, 33))
>stratName : Symbol(stratName, Decl(generatorTypeCheck62.ts, 4, 51))
}
yield next;
>next : Symbol(next, Decl(generatorTypeCheck62.ts, 6, 18))
}
}
}
export interface Strategy<T> {
>Strategy : Symbol(Strategy, Decl(generatorTypeCheck62.ts, 13, 1))
>T : Symbol(T, Decl(generatorTypeCheck62.ts, 15, 26))
(a: T): IterableIterator<T | undefined>;
>a : Symbol(a, Decl(generatorTypeCheck62.ts, 16, 5))
>T : Symbol(T, Decl(generatorTypeCheck62.ts, 15, 26))
>IterableIterator : Symbol(IterableIterator, Decl(lib.es2015.iterable.d.ts, --, --))
>T : Symbol(T, Decl(generatorTypeCheck62.ts, 15, 26))
}
export interface State extends StrategicState {
>State : Symbol(State, Decl(generatorTypeCheck62.ts, 17, 1))
>StrategicState : Symbol(StrategicState, Decl(generatorTypeCheck62.ts, 0, 0))
foo: number;
>foo : Symbol(State.foo, Decl(generatorTypeCheck62.ts, 19, 47))
}
export const Nothing1: Strategy<State> = strategy("Nothing", function*(state: State) {
>Nothing1 : Symbol(Nothing1, Decl(generatorTypeCheck62.ts, 23, 12))
>Strategy : Symbol(Strategy, Decl(generatorTypeCheck62.ts, 13, 1))
>State : Symbol(State, Decl(generatorTypeCheck62.ts, 17, 1))
>strategy : Symbol(strategy, Decl(generatorTypeCheck62.ts, 2, 1))
>state : Symbol(state, Decl(generatorTypeCheck62.ts, 23, 71))
>State : Symbol(State, Decl(generatorTypeCheck62.ts, 17, 1))
return state;
>state : Symbol(state, Decl(generatorTypeCheck62.ts, 23, 71))
});
export const Nothing2: Strategy<State> = strategy("Nothing", function*(state: State) {
>Nothing2 : Symbol(Nothing2, Decl(generatorTypeCheck62.ts, 27, 12))
>Strategy : Symbol(Strategy, Decl(generatorTypeCheck62.ts, 13, 1))
>State : Symbol(State, Decl(generatorTypeCheck62.ts, 17, 1))
>strategy : Symbol(strategy, Decl(generatorTypeCheck62.ts, 2, 1))
>state : Symbol(state, Decl(generatorTypeCheck62.ts, 27, 71))
>State : Symbol(State, Decl(generatorTypeCheck62.ts, 17, 1))
yield state;
>state : Symbol(state, Decl(generatorTypeCheck62.ts, 27, 71))
});
export const Nothing3: Strategy<State> = strategy("Nothing", function* (state: State) {
>Nothing3 : Symbol(Nothing3, Decl(generatorTypeCheck62.ts, 31, 12))
>Strategy : Symbol(Strategy, Decl(generatorTypeCheck62.ts, 13, 1))
>State : Symbol(State, Decl(generatorTypeCheck62.ts, 17, 1))
>strategy : Symbol(strategy, Decl(generatorTypeCheck62.ts, 2, 1))
>state : Symbol(state, Decl(generatorTypeCheck62.ts, 31, 72))
>State : Symbol(State, Decl(generatorTypeCheck62.ts, 17, 1))
yield ;
return state;
>state : Symbol(state, Decl(generatorTypeCheck62.ts, 31, 72))
});
|