File: largeTupleTypes.symbols

package info (click to toggle)
node-typescript 5.1.6%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 492,516 kB
  • sloc: javascript: 2,078,951; makefile: 6; sh: 1
file content (118 lines) | stat: -rw-r--r-- 6,768 bytes parent folder | download
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
=== tests/cases/compiler/largeTupleTypes.ts ===
// Repro from #54491

type UnshiftTuple<T extends [...any[]]> = T extends [T[0], ...infer Tail] ? Tail : never;
>UnshiftTuple : Symbol(UnshiftTuple, Decl(largeTupleTypes.ts, 0, 0))
>T : Symbol(T, Decl(largeTupleTypes.ts, 2, 18))
>T : Symbol(T, Decl(largeTupleTypes.ts, 2, 18))
>T : Symbol(T, Decl(largeTupleTypes.ts, 2, 18))
>Tail : Symbol(Tail, Decl(largeTupleTypes.ts, 2, 67))
>Tail : Symbol(Tail, Decl(largeTupleTypes.ts, 2, 67))

type ExpandSmallerTuples<T extends [...any[]]> = T extends [T[0], ...infer Tail] ? T | ExpandSmallerTuples<Tail> : [];
>ExpandSmallerTuples : Symbol(ExpandSmallerTuples, Decl(largeTupleTypes.ts, 2, 89))
>T : Symbol(T, Decl(largeTupleTypes.ts, 3, 25))
>T : Symbol(T, Decl(largeTupleTypes.ts, 3, 25))
>T : Symbol(T, Decl(largeTupleTypes.ts, 3, 25))
>Tail : Symbol(Tail, Decl(largeTupleTypes.ts, 3, 74))
>T : Symbol(T, Decl(largeTupleTypes.ts, 3, 25))
>ExpandSmallerTuples : Symbol(ExpandSmallerTuples, Decl(largeTupleTypes.ts, 2, 89))
>Tail : Symbol(Tail, Decl(largeTupleTypes.ts, 3, 74))

type Shift<A extends Array<any>> = ((...args: A) => void) extends (...args: [A[0], ...infer R]) => void ? R : never;
>Shift : Symbol(Shift, Decl(largeTupleTypes.ts, 3, 118))
>A : Symbol(A, Decl(largeTupleTypes.ts, 4, 11))
>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
>args : Symbol(args, Decl(largeTupleTypes.ts, 4, 37))
>A : Symbol(A, Decl(largeTupleTypes.ts, 4, 11))
>args : Symbol(args, Decl(largeTupleTypes.ts, 4, 67))
>A : Symbol(A, Decl(largeTupleTypes.ts, 4, 11))
>R : Symbol(R, Decl(largeTupleTypes.ts, 4, 91))
>R : Symbol(R, Decl(largeTupleTypes.ts, 4, 91))

type GrowExpRev<A extends Array<any>, N extends number, P extends Array<Array<any>>> = A['length'] extends N ? A : GrowExpRev<[...A, ...P[0]][N] extends undefined ? [...A, ...P[0]] : A, N, Shift<P>>;
>GrowExpRev : Symbol(GrowExpRev, Decl(largeTupleTypes.ts, 4, 116))
>A : Symbol(A, Decl(largeTupleTypes.ts, 5, 16))
>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
>N : Symbol(N, Decl(largeTupleTypes.ts, 5, 37))
>P : Symbol(P, Decl(largeTupleTypes.ts, 5, 55))
>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
>A : Symbol(A, Decl(largeTupleTypes.ts, 5, 16))
>N : Symbol(N, Decl(largeTupleTypes.ts, 5, 37))
>A : Symbol(A, Decl(largeTupleTypes.ts, 5, 16))
>GrowExpRev : Symbol(GrowExpRev, Decl(largeTupleTypes.ts, 4, 116))
>A : Symbol(A, Decl(largeTupleTypes.ts, 5, 16))
>P : Symbol(P, Decl(largeTupleTypes.ts, 5, 55))
>N : Symbol(N, Decl(largeTupleTypes.ts, 5, 37))
>A : Symbol(A, Decl(largeTupleTypes.ts, 5, 16))
>P : Symbol(P, Decl(largeTupleTypes.ts, 5, 55))
>A : Symbol(A, Decl(largeTupleTypes.ts, 5, 16))
>N : Symbol(N, Decl(largeTupleTypes.ts, 5, 37))
>Shift : Symbol(Shift, Decl(largeTupleTypes.ts, 3, 118))
>P : Symbol(P, Decl(largeTupleTypes.ts, 5, 55))

type GrowExp<A extends Array<any>, N extends number, P extends Array<Array<any>>> = [...A, ...A][N] extends undefined ? GrowExp<[...A, ...A], N, [A, ...P]> : GrowExpRev<A, N, P>;
>GrowExp : Symbol(GrowExp, Decl(largeTupleTypes.ts, 5, 199))
>A : Symbol(A, Decl(largeTupleTypes.ts, 6, 13))
>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
>N : Symbol(N, Decl(largeTupleTypes.ts, 6, 34))
>P : Symbol(P, Decl(largeTupleTypes.ts, 6, 52))
>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
>A : Symbol(A, Decl(largeTupleTypes.ts, 6, 13))
>A : Symbol(A, Decl(largeTupleTypes.ts, 6, 13))
>N : Symbol(N, Decl(largeTupleTypes.ts, 6, 34))
>GrowExp : Symbol(GrowExp, Decl(largeTupleTypes.ts, 5, 199))
>A : Symbol(A, Decl(largeTupleTypes.ts, 6, 13))
>A : Symbol(A, Decl(largeTupleTypes.ts, 6, 13))
>N : Symbol(N, Decl(largeTupleTypes.ts, 6, 34))
>A : Symbol(A, Decl(largeTupleTypes.ts, 6, 13))
>P : Symbol(P, Decl(largeTupleTypes.ts, 6, 52))
>GrowExpRev : Symbol(GrowExpRev, Decl(largeTupleTypes.ts, 4, 116))
>A : Symbol(A, Decl(largeTupleTypes.ts, 6, 13))
>N : Symbol(N, Decl(largeTupleTypes.ts, 6, 34))
>P : Symbol(P, Decl(largeTupleTypes.ts, 6, 52))

type Tuple<T, N extends number> = number extends N ? Array<T> : N extends 0 ? [] : N extends 1 ? [T] : GrowExp<[T], N, [[]]>;
>Tuple : Symbol(Tuple, Decl(largeTupleTypes.ts, 6, 178))
>T : Symbol(T, Decl(largeTupleTypes.ts, 7, 11))
>N : Symbol(N, Decl(largeTupleTypes.ts, 7, 13))
>N : Symbol(N, Decl(largeTupleTypes.ts, 7, 13))
>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
>T : Symbol(T, Decl(largeTupleTypes.ts, 7, 11))
>N : Symbol(N, Decl(largeTupleTypes.ts, 7, 13))
>N : Symbol(N, Decl(largeTupleTypes.ts, 7, 13))
>T : Symbol(T, Decl(largeTupleTypes.ts, 7, 11))
>GrowExp : Symbol(GrowExp, Decl(largeTupleTypes.ts, 5, 199))
>T : Symbol(T, Decl(largeTupleTypes.ts, 7, 11))
>N : Symbol(N, Decl(largeTupleTypes.ts, 7, 13))

declare class ArrayValidator<T extends unknown[], I = T[number]> {
>ArrayValidator : Symbol(ArrayValidator, Decl(largeTupleTypes.ts, 7, 125))
>T : Symbol(T, Decl(largeTupleTypes.ts, 9, 29))
>I : Symbol(I, Decl(largeTupleTypes.ts, 9, 49))
>T : Symbol(T, Decl(largeTupleTypes.ts, 9, 29))

    lengthRange<S extends number, E extends number>(start: S, endBefore: E): ArrayValidator<Exclude<ExpandSmallerTuples<UnshiftTuple<[...Tuple<I, E>]>>, ExpandSmallerTuples<UnshiftTuple<[...Tuple<I, S>]>>>>;
>lengthRange : Symbol(ArrayValidator.lengthRange, Decl(largeTupleTypes.ts, 9, 66))
>S : Symbol(S, Decl(largeTupleTypes.ts, 10, 16))
>E : Symbol(E, Decl(largeTupleTypes.ts, 10, 33))
>start : Symbol(start, Decl(largeTupleTypes.ts, 10, 52))
>S : Symbol(S, Decl(largeTupleTypes.ts, 10, 16))
>endBefore : Symbol(endBefore, Decl(largeTupleTypes.ts, 10, 61))
>E : Symbol(E, Decl(largeTupleTypes.ts, 10, 33))
>ArrayValidator : Symbol(ArrayValidator, Decl(largeTupleTypes.ts, 7, 125))
>Exclude : Symbol(Exclude, Decl(lib.es5.d.ts, --, --))
>ExpandSmallerTuples : Symbol(ExpandSmallerTuples, Decl(largeTupleTypes.ts, 2, 89))
>UnshiftTuple : Symbol(UnshiftTuple, Decl(largeTupleTypes.ts, 0, 0))
>Tuple : Symbol(Tuple, Decl(largeTupleTypes.ts, 6, 178))
>I : Symbol(I, Decl(largeTupleTypes.ts, 9, 49))
>E : Symbol(E, Decl(largeTupleTypes.ts, 10, 33))
>ExpandSmallerTuples : Symbol(ExpandSmallerTuples, Decl(largeTupleTypes.ts, 2, 89))
>UnshiftTuple : Symbol(UnshiftTuple, Decl(largeTupleTypes.ts, 0, 0))
>Tuple : Symbol(Tuple, Decl(largeTupleTypes.ts, 6, 178))
>I : Symbol(I, Decl(largeTupleTypes.ts, 9, 49))
>S : Symbol(S, Decl(largeTupleTypes.ts, 10, 16))
}