@@ -26,3 +26,162 @@ export const yThen = y.map(item => item.length);
26
26
>item : Symbol(item, Decl(two.ts, 1, 27))
27
27
>length : Symbol(length, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
28
28
29
+ === tests/cases/compiler/three.ts ===
30
+ // #42504
31
+ interface ResizeObserverCallback {
32
+ >ResizeObserverCallback : Symbol(ResizeObserverCallback, Decl(three.ts, 0, 0), Decl(three.ts, 3, 1))
33
+
34
+ (entries: ResizeObserverEntry[], observer: ResizeObserver): void;
35
+ >entries : Symbol(entries, Decl(three.ts, 2, 5))
36
+ >ResizeObserverEntry : Symbol(ResizeObserverEntry, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))
37
+ >observer : Symbol(observer, Decl(three.ts, 2, 36))
38
+ >ResizeObserver : Symbol(ResizeObserver, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))
39
+ }
40
+ interface ResizeObserverCallback { // duplicate for effect
41
+ >ResizeObserverCallback : Symbol(ResizeObserverCallback, Decl(three.ts, 0, 0), Decl(three.ts, 3, 1))
42
+
43
+ (entries: ResizeObserverEntry[], observer: ResizeObserver): void;
44
+ >entries : Symbol(entries, Decl(three.ts, 5, 5))
45
+ >ResizeObserverEntry : Symbol(ResizeObserverEntry, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))
46
+ >observer : Symbol(observer, Decl(three.ts, 5, 36))
47
+ >ResizeObserver : Symbol(ResizeObserver, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))
48
+ }
49
+
50
+ const resizeObserver = new ResizeObserver(([entry]) => {
51
+ >resizeObserver : Symbol(resizeObserver, Decl(three.ts, 8, 5))
52
+ >ResizeObserver : Symbol(ResizeObserver, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))
53
+ >entry : Symbol(entry, Decl(three.ts, 8, 44))
54
+
55
+ entry
56
+ >entry : Symbol(entry, Decl(three.ts, 8, 44))
57
+
58
+ });
59
+ // comment in #35501
60
+ interface Callback<T> {
61
+ >Callback : Symbol(Callback, Decl(three.ts, 10, 3))
62
+ >T : Symbol(T, Decl(three.ts, 12, 19))
63
+
64
+ (error: null, result: T): unknown
65
+ >error : Symbol(error, Decl(three.ts, 13, 5))
66
+ >result : Symbol(result, Decl(three.ts, 13, 17))
67
+ >T : Symbol(T, Decl(three.ts, 12, 19))
68
+
69
+ (error: Error, result: null): unknown
70
+ >error : Symbol(error, Decl(three.ts, 14, 5))
71
+ >Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
72
+ >result : Symbol(result, Decl(three.ts, 14, 18))
73
+ }
74
+
75
+ interface Task<T> {
76
+ >Task : Symbol(Task, Decl(three.ts, 15, 1))
77
+ >T : Symbol(T, Decl(three.ts, 17, 15))
78
+
79
+ (callback: Callback<T>): unknown
80
+ >callback : Symbol(callback, Decl(three.ts, 18, 5))
81
+ >Callback : Symbol(Callback, Decl(three.ts, 10, 3))
82
+ >T : Symbol(T, Decl(three.ts, 17, 15))
83
+ }
84
+
85
+ export function series<T>(tasks: Task<T>[], callback: Callback<T[]>): void {
86
+ >series : Symbol(series, Decl(three.ts, 19, 1))
87
+ >T : Symbol(T, Decl(three.ts, 21, 23))
88
+ >tasks : Symbol(tasks, Decl(three.ts, 21, 26))
89
+ >Task : Symbol(Task, Decl(three.ts, 15, 1))
90
+ >T : Symbol(T, Decl(three.ts, 21, 23))
91
+ >callback : Symbol(callback, Decl(three.ts, 21, 43))
92
+ >Callback : Symbol(Callback, Decl(three.ts, 10, 3))
93
+ >T : Symbol(T, Decl(three.ts, 21, 23))
94
+
95
+ let index = 0
96
+ >index : Symbol(index, Decl(three.ts, 22, 7))
97
+
98
+ let results: T[] = []
99
+ >results : Symbol(results, Decl(three.ts, 23, 7))
100
+ >T : Symbol(T, Decl(three.ts, 21, 23))
101
+
102
+ function next() {
103
+ >next : Symbol(next, Decl(three.ts, 23, 25))
104
+
105
+ let task = tasks[index]
106
+ >task : Symbol(task, Decl(three.ts, 26, 11))
107
+ >tasks : Symbol(tasks, Decl(three.ts, 21, 26))
108
+ >index : Symbol(index, Decl(three.ts, 22, 7))
109
+
110
+ if (!task) {
111
+ >task : Symbol(task, Decl(three.ts, 26, 11))
112
+
113
+ callback(null, results)
114
+ >callback : Symbol(callback, Decl(three.ts, 21, 43))
115
+ >results : Symbol(results, Decl(three.ts, 23, 7))
116
+
117
+ } else {
118
+ task((error, result) => {
119
+ >task : Symbol(task, Decl(three.ts, 26, 11))
120
+ >error : Symbol(error, Decl(three.ts, 30, 18))
121
+ >result : Symbol(result, Decl(three.ts, 30, 24))
122
+
123
+ if (error) {
124
+ >error : Symbol(error, Decl(three.ts, 30, 18))
125
+
126
+ callback(error, null)
127
+ >callback : Symbol(callback, Decl(three.ts, 21, 43))
128
+ >error : Symbol(error, Decl(three.ts, 30, 18))
129
+
130
+ } else {
131
+ // must use postfix-!, since `error` and `result` don't have a
132
+ // causal relationship when the overloads are combined
133
+ results.push(result!)
134
+ >results.push : Symbol(Array.push, Decl(lib.es5.d.ts, --, --))
135
+ >results : Symbol(results, Decl(three.ts, 23, 7))
136
+ >push : Symbol(Array.push, Decl(lib.es5.d.ts, --, --))
137
+ >result : Symbol(result, Decl(three.ts, 30, 24))
138
+
139
+ next()
140
+ >next : Symbol(next, Decl(three.ts, 23, 25))
141
+ }
142
+ })
143
+ }
144
+ }
145
+ next()
146
+ >next : Symbol(next, Decl(three.ts, 23, 25))
147
+ }
148
+
149
+ series([
150
+ >series : Symbol(series, Decl(three.ts, 19, 1))
151
+
152
+ cb => setTimeout(() => cb(null, 1), 300),
153
+ >cb : Symbol(cb, Decl(three.ts, 45, 8))
154
+ >setTimeout : Symbol(setTimeout, Decl(lib.dom.d.ts, --, --))
155
+ >cb : Symbol(cb, Decl(three.ts, 45, 8))
156
+
157
+ cb => setTimeout(() => cb(null, 2), 200),
158
+ >cb : Symbol(cb, Decl(three.ts, 46, 45))
159
+ >setTimeout : Symbol(setTimeout, Decl(lib.dom.d.ts, --, --))
160
+ >cb : Symbol(cb, Decl(three.ts, 46, 45))
161
+
162
+ cb => setTimeout(() => cb(null, 3), 100),
163
+ >cb : Symbol(cb, Decl(three.ts, 47, 45))
164
+ >setTimeout : Symbol(setTimeout, Decl(lib.dom.d.ts, --, --))
165
+ >cb : Symbol(cb, Decl(three.ts, 47, 45))
166
+
167
+ ], (error, results) => {
168
+ >error : Symbol(error, Decl(three.ts, 49, 4))
169
+ >results : Symbol(results, Decl(three.ts, 49, 10))
170
+
171
+ if (error) {
172
+ >error : Symbol(error, Decl(three.ts, 49, 4))
173
+
174
+ console.error(error)
175
+ >console.error : Symbol(Console.error, Decl(lib.dom.d.ts, --, --))
176
+ >console : Symbol(console, Decl(lib.dom.d.ts, --, --))
177
+ >error : Symbol(Console.error, Decl(lib.dom.d.ts, --, --))
178
+ >error : Symbol(error, Decl(three.ts, 49, 4))
179
+
180
+ } else {
181
+ console.log(results)
182
+ >console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
183
+ >console : Symbol(console, Decl(lib.dom.d.ts, --, --))
184
+ >log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
185
+ >results : Symbol(results, Decl(three.ts, 49, 10))
186
+ }
187
+ })
0 commit comments