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 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
=== tests/cases/compiler/recursiveArrayNotCircular.ts ===
type Action<T, P> = P extends void ? { type : T } : { type: T, payload: P }
>Action : Symbol(Action, Decl(recursiveArrayNotCircular.ts, 0, 0))
>T : Symbol(T, Decl(recursiveArrayNotCircular.ts, 0, 12))
>P : Symbol(P, Decl(recursiveArrayNotCircular.ts, 0, 14))
>P : Symbol(P, Decl(recursiveArrayNotCircular.ts, 0, 14))
>type : Symbol(type, Decl(recursiveArrayNotCircular.ts, 0, 38))
>T : Symbol(T, Decl(recursiveArrayNotCircular.ts, 0, 12))
>type : Symbol(type, Decl(recursiveArrayNotCircular.ts, 0, 53))
>T : Symbol(T, Decl(recursiveArrayNotCircular.ts, 0, 12))
>payload : Symbol(payload, Decl(recursiveArrayNotCircular.ts, 0, 62))
>P : Symbol(P, Decl(recursiveArrayNotCircular.ts, 0, 14))
enum ActionType {
>ActionType : Symbol(ActionType, Decl(recursiveArrayNotCircular.ts, 0, 75))
Foo,
>Foo : Symbol(ActionType.Foo, Decl(recursiveArrayNotCircular.ts, 2, 17))
Bar,
>Bar : Symbol(ActionType.Bar, Decl(recursiveArrayNotCircular.ts, 3, 8))
Baz,
>Baz : Symbol(ActionType.Baz, Decl(recursiveArrayNotCircular.ts, 4, 8))
Batch
>Batch : Symbol(ActionType.Batch, Decl(recursiveArrayNotCircular.ts, 5, 8))
}
type ReducerAction =
>ReducerAction : Symbol(ReducerAction, Decl(recursiveArrayNotCircular.ts, 7, 1))
| Action<ActionType.Bar, number>
>Action : Symbol(Action, Decl(recursiveArrayNotCircular.ts, 0, 0))
>ActionType : Symbol(ActionType, Decl(recursiveArrayNotCircular.ts, 0, 75))
>Bar : Symbol(ActionType.Bar, Decl(recursiveArrayNotCircular.ts, 3, 8))
| Action<ActionType.Baz, boolean>
>Action : Symbol(Action, Decl(recursiveArrayNotCircular.ts, 0, 0))
>ActionType : Symbol(ActionType, Decl(recursiveArrayNotCircular.ts, 0, 75))
>Baz : Symbol(ActionType.Baz, Decl(recursiveArrayNotCircular.ts, 4, 8))
| Action<ActionType.Foo, string>
>Action : Symbol(Action, Decl(recursiveArrayNotCircular.ts, 0, 0))
>ActionType : Symbol(ActionType, Decl(recursiveArrayNotCircular.ts, 0, 75))
>Foo : Symbol(ActionType.Foo, Decl(recursiveArrayNotCircular.ts, 2, 17))
| Action<ActionType.Batch, ReducerAction[]>
>Action : Symbol(Action, Decl(recursiveArrayNotCircular.ts, 0, 0))
>ActionType : Symbol(ActionType, Decl(recursiveArrayNotCircular.ts, 0, 75))
>Batch : Symbol(ActionType.Batch, Decl(recursiveArrayNotCircular.ts, 5, 8))
>ReducerAction : Symbol(ReducerAction, Decl(recursiveArrayNotCircular.ts, 7, 1))
function assertNever(a: never): never {
>assertNever : Symbol(assertNever, Decl(recursiveArrayNotCircular.ts, 13, 45))
>a : Symbol(a, Decl(recursiveArrayNotCircular.ts, 15, 21))
throw new Error("Unreachable!");
>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
}
function reducer(action: ReducerAction): void {
>reducer : Symbol(reducer, Decl(recursiveArrayNotCircular.ts, 17, 1))
>action : Symbol(action, Decl(recursiveArrayNotCircular.ts, 19, 17))
>ReducerAction : Symbol(ReducerAction, Decl(recursiveArrayNotCircular.ts, 7, 1))
switch(action.type) {
>action.type : Symbol(type, Decl(recursiveArrayNotCircular.ts, 0, 53), Decl(recursiveArrayNotCircular.ts, 0, 53), Decl(recursiveArrayNotCircular.ts, 0, 53), Decl(recursiveArrayNotCircular.ts, 0, 53), Decl(recursiveArrayNotCircular.ts, 0, 53))
>action : Symbol(action, Decl(recursiveArrayNotCircular.ts, 19, 17))
>type : Symbol(type, Decl(recursiveArrayNotCircular.ts, 0, 53), Decl(recursiveArrayNotCircular.ts, 0, 53), Decl(recursiveArrayNotCircular.ts, 0, 53), Decl(recursiveArrayNotCircular.ts, 0, 53), Decl(recursiveArrayNotCircular.ts, 0, 53))
case ActionType.Bar:
>ActionType.Bar : Symbol(ActionType.Bar, Decl(recursiveArrayNotCircular.ts, 3, 8))
>ActionType : Symbol(ActionType, Decl(recursiveArrayNotCircular.ts, 0, 75))
>Bar : Symbol(ActionType.Bar, Decl(recursiveArrayNotCircular.ts, 3, 8))
const x: number = action.payload;
>x : Symbol(x, Decl(recursiveArrayNotCircular.ts, 22, 17))
>action.payload : Symbol(payload, Decl(recursiveArrayNotCircular.ts, 0, 62))
>action : Symbol(action, Decl(recursiveArrayNotCircular.ts, 19, 17))
>payload : Symbol(payload, Decl(recursiveArrayNotCircular.ts, 0, 62))
break;
case ActionType.Baz:
>ActionType.Baz : Symbol(ActionType.Baz, Decl(recursiveArrayNotCircular.ts, 4, 8))
>ActionType : Symbol(ActionType, Decl(recursiveArrayNotCircular.ts, 0, 75))
>Baz : Symbol(ActionType.Baz, Decl(recursiveArrayNotCircular.ts, 4, 8))
const y: boolean = action.payload;
>y : Symbol(y, Decl(recursiveArrayNotCircular.ts, 25, 17))
>action.payload : Symbol(payload, Decl(recursiveArrayNotCircular.ts, 0, 62), Decl(recursiveArrayNotCircular.ts, 0, 62))
>action : Symbol(action, Decl(recursiveArrayNotCircular.ts, 19, 17))
>payload : Symbol(payload, Decl(recursiveArrayNotCircular.ts, 0, 62), Decl(recursiveArrayNotCircular.ts, 0, 62))
break;
case ActionType.Foo:
>ActionType.Foo : Symbol(ActionType.Foo, Decl(recursiveArrayNotCircular.ts, 2, 17))
>ActionType : Symbol(ActionType, Decl(recursiveArrayNotCircular.ts, 0, 75))
>Foo : Symbol(ActionType.Foo, Decl(recursiveArrayNotCircular.ts, 2, 17))
const z: string = action.payload;
>z : Symbol(z, Decl(recursiveArrayNotCircular.ts, 28, 17))
>action.payload : Symbol(payload, Decl(recursiveArrayNotCircular.ts, 0, 62))
>action : Symbol(action, Decl(recursiveArrayNotCircular.ts, 19, 17))
>payload : Symbol(payload, Decl(recursiveArrayNotCircular.ts, 0, 62))
break;
case ActionType.Batch:
>ActionType.Batch : Symbol(ActionType.Batch, Decl(recursiveArrayNotCircular.ts, 5, 8))
>ActionType : Symbol(ActionType, Decl(recursiveArrayNotCircular.ts, 0, 75))
>Batch : Symbol(ActionType.Batch, Decl(recursiveArrayNotCircular.ts, 5, 8))
action.payload.map(reducer);
>action.payload.map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --))
>action.payload : Symbol(payload, Decl(recursiveArrayNotCircular.ts, 0, 62))
>action : Symbol(action, Decl(recursiveArrayNotCircular.ts, 19, 17))
>payload : Symbol(payload, Decl(recursiveArrayNotCircular.ts, 0, 62))
>map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --))
>reducer : Symbol(reducer, Decl(recursiveArrayNotCircular.ts, 17, 1))
break;
default: return assertNever(action);
>assertNever : Symbol(assertNever, Decl(recursiveArrayNotCircular.ts, 13, 45))
>action : Symbol(action, Decl(recursiveArrayNotCircular.ts, 19, 17))
}
}
|