1
1
=== tests/cases/conformance/types/never/neverInference.ts ===
2
- declare function f <T>(x: T[]): T;
3
- >f : Symbol(f , Decl(neverInference.ts, 0, 0))
4
- >T : Symbol(T, Decl(neverInference.ts, 0, 19 ))
5
- >x : Symbol(x, Decl(neverInference.ts, 0, 22 ))
6
- >T : Symbol(T, Decl(neverInference.ts, 0, 19 ))
7
- >T : Symbol(T, Decl(neverInference.ts, 0, 19 ))
2
+ declare function f1 <T>(x: T[]): T;
3
+ >f1 : Symbol(f1 , Decl(neverInference.ts, 0, 0))
4
+ >T : Symbol(T, Decl(neverInference.ts, 0, 20 ))
5
+ >x : Symbol(x, Decl(neverInference.ts, 0, 23 ))
6
+ >T : Symbol(T, Decl(neverInference.ts, 0, 20 ))
7
+ >T : Symbol(T, Decl(neverInference.ts, 0, 20 ))
8
8
9
9
let neverArray: never[] = [];
10
10
>neverArray : Symbol(neverArray, Decl(neverInference.ts, 2, 3))
11
11
12
- let a1 = f ([]); // {}
12
+ let a1 = f1 ([]); // never
13
13
>a1 : Symbol(a1, Decl(neverInference.ts, 4, 3))
14
- >f : Symbol(f , Decl(neverInference.ts, 0, 0))
14
+ >f1 : Symbol(f1 , Decl(neverInference.ts, 0, 0))
15
15
16
- let a2 = f (neverArray); // never
16
+ let a2 = f1 (neverArray); // never
17
17
>a2 : Symbol(a2, Decl(neverInference.ts, 5, 3))
18
- >f : Symbol(f , Decl(neverInference.ts, 0, 0))
18
+ >f1 : Symbol(f1 , Decl(neverInference.ts, 0, 0))
19
19
>neverArray : Symbol(neverArray, Decl(neverInference.ts, 2, 3))
20
20
21
21
// Repro from #19576
22
22
23
23
type Comparator<T> = (x: T, y: T) => number;
24
- >Comparator : Symbol(Comparator, Decl(neverInference.ts, 5, 23 ))
24
+ >Comparator : Symbol(Comparator, Decl(neverInference.ts, 5, 24 ))
25
25
>T : Symbol(T, Decl(neverInference.ts, 9, 16))
26
26
>x : Symbol(x, Decl(neverInference.ts, 9, 22))
27
27
>T : Symbol(T, Decl(neverInference.ts, 9, 16))
@@ -34,7 +34,7 @@ interface LinkedList<T> {
34
34
35
35
comparator: Comparator<T>,
36
36
>comparator : Symbol(LinkedList.comparator, Decl(neverInference.ts, 11, 25))
37
- >Comparator : Symbol(Comparator, Decl(neverInference.ts, 5, 23 ))
37
+ >Comparator : Symbol(Comparator, Decl(neverInference.ts, 5, 24 ))
38
38
>T : Symbol(T, Decl(neverInference.ts, 11, 21))
39
39
40
40
nodes: Node<T>
@@ -63,7 +63,7 @@ declare function mkList<T>(items: T[], comparator: Comparator<T>): LinkedList<T>
63
63
>items : Symbol(items, Decl(neverInference.ts, 19, 27))
64
64
>T : Symbol(T, Decl(neverInference.ts, 19, 24))
65
65
>comparator : Symbol(comparator, Decl(neverInference.ts, 19, 38))
66
- >Comparator : Symbol(Comparator, Decl(neverInference.ts, 5, 23 ))
66
+ >Comparator : Symbol(Comparator, Decl(neverInference.ts, 5, 24 ))
67
67
>T : Symbol(T, Decl(neverInference.ts, 19, 24))
68
68
>LinkedList : Symbol(LinkedList, Decl(neverInference.ts, 9, 44))
69
69
>T : Symbol(T, Decl(neverInference.ts, 19, 24))
@@ -74,3 +74,38 @@ const list: LinkedList<number> = mkList([], compareNumbers);
74
74
>mkList : Symbol(mkList, Decl(neverInference.ts, 18, 62))
75
75
>compareNumbers : Symbol(compareNumbers, Decl(neverInference.ts, 16, 49))
76
76
77
+ // Repro from #19858
78
+
79
+ declare function f2<a>(as1: a[], as2: a[], cmp: (a1: a, a2: a) => number): void;
80
+ >f2 : Symbol(f2, Decl(neverInference.ts, 21, 60))
81
+ >a : Symbol(a, Decl(neverInference.ts, 25, 20))
82
+ >as1 : Symbol(as1, Decl(neverInference.ts, 25, 23))
83
+ >a : Symbol(a, Decl(neverInference.ts, 25, 20))
84
+ >as2 : Symbol(as2, Decl(neverInference.ts, 25, 32))
85
+ >a : Symbol(a, Decl(neverInference.ts, 25, 20))
86
+ >cmp : Symbol(cmp, Decl(neverInference.ts, 25, 42))
87
+ >a1 : Symbol(a1, Decl(neverInference.ts, 25, 49))
88
+ >a : Symbol(a, Decl(neverInference.ts, 25, 20))
89
+ >a2 : Symbol(a2, Decl(neverInference.ts, 25, 55))
90
+ >a : Symbol(a, Decl(neverInference.ts, 25, 20))
91
+
92
+ f2(Array.from([0]), [], (a1, a2) => a1 - a2);
93
+ >f2 : Symbol(f2, Decl(neverInference.ts, 21, 60))
94
+ >Array.from : Symbol(ArrayConstructor.from, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --))
95
+ >Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --))
96
+ >from : Symbol(ArrayConstructor.from, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --))
97
+ >a1 : Symbol(a1, Decl(neverInference.ts, 26, 25))
98
+ >a2 : Symbol(a2, Decl(neverInference.ts, 26, 28))
99
+ >a1 : Symbol(a1, Decl(neverInference.ts, 26, 25))
100
+ >a2 : Symbol(a2, Decl(neverInference.ts, 26, 28))
101
+
102
+ f2(Array.from([]), [0], (a1, a2) => a1 - a2);
103
+ >f2 : Symbol(f2, Decl(neverInference.ts, 21, 60))
104
+ >Array.from : Symbol(ArrayConstructor.from, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --))
105
+ >Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --))
106
+ >from : Symbol(ArrayConstructor.from, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --))
107
+ >a1 : Symbol(a1, Decl(neverInference.ts, 27, 25))
108
+ >a2 : Symbol(a2, Decl(neverInference.ts, 27, 28))
109
+ >a1 : Symbol(a1, Decl(neverInference.ts, 27, 25))
110
+ >a2 : Symbol(a2, Decl(neverInference.ts, 27, 28))
111
+
0 commit comments