Skip to content

Commit 53f5e84

Browse files
committed
Accept new baselines
1 parent 596493c commit 53f5e84

File tree

3 files changed

+182
-0
lines changed

3 files changed

+182
-0
lines changed

tests/baselines/reference/mappedTypesArraysTuples.js

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,28 @@ function f1(a: number, b: Promise<number>, c: string[], d: Promise<string[]>) {
6161
let x3 = all(a, b, c);
6262
let x4 = all(a, b, c, d);
6363
}
64+
65+
function f2<T extends any[]>(a: Boxified<T>) {
66+
let x: Box<any> | undefined = a.pop();
67+
let y: Box<any>[] = a.concat(a);
68+
}
69+
70+
// Repro from #26163
71+
72+
type ElementType<T> = T extends Array<infer U> ? U : never;
73+
type Mapped<T> = { [K in keyof T]: T[K] };
74+
75+
type F<T> = ElementType<Mapped<T>>;
76+
type R1 = F<[string, number, boolean]>; // string | number | boolean
77+
type R2 = ElementType<Mapped<[string, number, boolean]>>; // string | number | boolean
78+
79+
// Repro from #26163
80+
81+
declare function acceptArray(arr: any[]): void;
82+
declare function mapArray<T extends any[]>(arr: T): Mapped<T>;
83+
function acceptMappedArray<T extends any[]>(arr: T) {
84+
acceptArray(mapArray(arr));
85+
}
6486

6587

6688
//// [mappedTypesArraysTuples.js]
@@ -77,6 +99,13 @@ function f1(a, b, c, d) {
7799
var x3 = all(a, b, c);
78100
var x4 = all(a, b, c, d);
79101
}
102+
function f2(a) {
103+
var x = a.pop();
104+
var y = a.concat(a);
105+
}
106+
function acceptMappedArray(arr) {
107+
acceptArray(mapArray(arr));
108+
}
80109

81110

82111
//// [mappedTypesArraysTuples.d.ts]
@@ -142,3 +171,14 @@ declare type Awaitified<T> = {
142171
};
143172
declare function all<T extends any[]>(...values: T): Promise<Awaitified<T>>;
144173
declare function f1(a: number, b: Promise<number>, c: string[], d: Promise<string[]>): void;
174+
declare function f2<T extends any[]>(a: Boxified<T>): void;
175+
declare type ElementType<T> = T extends Array<infer U> ? U : never;
176+
declare type Mapped<T> = {
177+
[K in keyof T]: T[K];
178+
};
179+
declare type F<T> = ElementType<Mapped<T>>;
180+
declare type R1 = F<[string, number, boolean]>;
181+
declare type R2 = ElementType<Mapped<[string, number, boolean]>>;
182+
declare function acceptArray(arr: any[]): void;
183+
declare function mapArray<T extends any[]>(arr: T): Mapped<T>;
184+
declare function acceptMappedArray<T extends any[]>(arr: T): void;

tests/baselines/reference/mappedTypesArraysTuples.symbols

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,3 +245,86 @@ function f1(a: number, b: Promise<number>, c: string[], d: Promise<string[]>) {
245245
>d : Symbol(d, Decl(mappedTypesArraysTuples.ts, 56, 55))
246246
}
247247

248+
function f2<T extends any[]>(a: Boxified<T>) {
249+
>f2 : Symbol(f2, Decl(mappedTypesArraysTuples.ts, 61, 1))
250+
>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 63, 12))
251+
>a : Symbol(a, Decl(mappedTypesArraysTuples.ts, 63, 29))
252+
>Boxified : Symbol(Boxified, Decl(mappedTypesArraysTuples.ts, 0, 27))
253+
>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 63, 12))
254+
255+
let x: Box<any> | undefined = a.pop();
256+
>x : Symbol(x, Decl(mappedTypesArraysTuples.ts, 64, 7))
257+
>Box : Symbol(Box, Decl(mappedTypesArraysTuples.ts, 0, 0))
258+
>a.pop : Symbol(Array.pop, Decl(lib.es5.d.ts, --, --))
259+
>a : Symbol(a, Decl(mappedTypesArraysTuples.ts, 63, 29))
260+
>pop : Symbol(Array.pop, Decl(lib.es5.d.ts, --, --))
261+
262+
let y: Box<any>[] = a.concat(a);
263+
>y : Symbol(y, Decl(mappedTypesArraysTuples.ts, 65, 7))
264+
>Box : Symbol(Box, Decl(mappedTypesArraysTuples.ts, 0, 0))
265+
>a.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
266+
>a : Symbol(a, Decl(mappedTypesArraysTuples.ts, 63, 29))
267+
>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
268+
>a : Symbol(a, Decl(mappedTypesArraysTuples.ts, 63, 29))
269+
}
270+
271+
// Repro from #26163
272+
273+
type ElementType<T> = T extends Array<infer U> ? U : never;
274+
>ElementType : Symbol(ElementType, Decl(mappedTypesArraysTuples.ts, 66, 1))
275+
>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 70, 17))
276+
>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 70, 17))
277+
>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
278+
>U : Symbol(U, Decl(mappedTypesArraysTuples.ts, 70, 43))
279+
>U : Symbol(U, Decl(mappedTypesArraysTuples.ts, 70, 43))
280+
281+
type Mapped<T> = { [K in keyof T]: T[K] };
282+
>Mapped : Symbol(Mapped, Decl(mappedTypesArraysTuples.ts, 70, 59))
283+
>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 71, 12))
284+
>K : Symbol(K, Decl(mappedTypesArraysTuples.ts, 71, 20))
285+
>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 71, 12))
286+
>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 71, 12))
287+
>K : Symbol(K, Decl(mappedTypesArraysTuples.ts, 71, 20))
288+
289+
type F<T> = ElementType<Mapped<T>>;
290+
>F : Symbol(F, Decl(mappedTypesArraysTuples.ts, 71, 42))
291+
>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 73, 7))
292+
>ElementType : Symbol(ElementType, Decl(mappedTypesArraysTuples.ts, 66, 1))
293+
>Mapped : Symbol(Mapped, Decl(mappedTypesArraysTuples.ts, 70, 59))
294+
>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 73, 7))
295+
296+
type R1 = F<[string, number, boolean]>; // string | number | boolean
297+
>R1 : Symbol(R1, Decl(mappedTypesArraysTuples.ts, 73, 35))
298+
>F : Symbol(F, Decl(mappedTypesArraysTuples.ts, 71, 42))
299+
300+
type R2 = ElementType<Mapped<[string, number, boolean]>>; // string | number | boolean
301+
>R2 : Symbol(R2, Decl(mappedTypesArraysTuples.ts, 74, 39))
302+
>ElementType : Symbol(ElementType, Decl(mappedTypesArraysTuples.ts, 66, 1))
303+
>Mapped : Symbol(Mapped, Decl(mappedTypesArraysTuples.ts, 70, 59))
304+
305+
// Repro from #26163
306+
307+
declare function acceptArray(arr: any[]): void;
308+
>acceptArray : Symbol(acceptArray, Decl(mappedTypesArraysTuples.ts, 75, 57))
309+
>arr : Symbol(arr, Decl(mappedTypesArraysTuples.ts, 79, 29))
310+
311+
declare function mapArray<T extends any[]>(arr: T): Mapped<T>;
312+
>mapArray : Symbol(mapArray, Decl(mappedTypesArraysTuples.ts, 79, 47))
313+
>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 80, 26))
314+
>arr : Symbol(arr, Decl(mappedTypesArraysTuples.ts, 80, 43))
315+
>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 80, 26))
316+
>Mapped : Symbol(Mapped, Decl(mappedTypesArraysTuples.ts, 70, 59))
317+
>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 80, 26))
318+
319+
function acceptMappedArray<T extends any[]>(arr: T) {
320+
>acceptMappedArray : Symbol(acceptMappedArray, Decl(mappedTypesArraysTuples.ts, 80, 62))
321+
>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 81, 27))
322+
>arr : Symbol(arr, Decl(mappedTypesArraysTuples.ts, 81, 44))
323+
>T : Symbol(T, Decl(mappedTypesArraysTuples.ts, 81, 27))
324+
325+
acceptArray(mapArray(arr));
326+
>acceptArray : Symbol(acceptArray, Decl(mappedTypesArraysTuples.ts, 75, 57))
327+
>mapArray : Symbol(mapArray, Decl(mappedTypesArraysTuples.ts, 79, 47))
328+
>arr : Symbol(arr, Decl(mappedTypesArraysTuples.ts, 81, 44))
329+
}
330+

tests/baselines/reference/mappedTypesArraysTuples.types

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,3 +182,62 @@ function f1(a: number, b: Promise<number>, c: string[], d: Promise<string[]>) {
182182
>d : Promise<string[]>
183183
}
184184

185+
function f2<T extends any[]>(a: Boxified<T>) {
186+
>f2 : <T extends any[]>(a: Boxified<T>) => void
187+
>a : Boxified<T>
188+
189+
let x: Box<any> | undefined = a.pop();
190+
>x : Box<any> | undefined
191+
>a.pop() : Box<any> | undefined
192+
>a.pop : () => Box<any> | undefined
193+
>a : Boxified<T>
194+
>pop : () => Box<any> | undefined
195+
196+
let y: Box<any>[] = a.concat(a);
197+
>y : Box<any>[]
198+
>a.concat(a) : Box<any>[]
199+
>a.concat : { (...items: ConcatArray<Box<any>>[]): Box<any>[]; (...items: (Box<any> | ConcatArray<Box<any>>)[]): Box<any>[]; }
200+
>a : Boxified<T>
201+
>concat : { (...items: ConcatArray<Box<any>>[]): Box<any>[]; (...items: (Box<any> | ConcatArray<Box<any>>)[]): Box<any>[]; }
202+
>a : Boxified<T>
203+
}
204+
205+
// Repro from #26163
206+
207+
type ElementType<T> = T extends Array<infer U> ? U : never;
208+
>ElementType : ElementType<T>
209+
210+
type Mapped<T> = { [K in keyof T]: T[K] };
211+
>Mapped : Mapped<T>
212+
213+
type F<T> = ElementType<Mapped<T>>;
214+
>F : ElementType<Mapped<T>>
215+
216+
type R1 = F<[string, number, boolean]>; // string | number | boolean
217+
>R1 : string | number | boolean
218+
219+
type R2 = ElementType<Mapped<[string, number, boolean]>>; // string | number | boolean
220+
>R2 : string | number | boolean
221+
222+
// Repro from #26163
223+
224+
declare function acceptArray(arr: any[]): void;
225+
>acceptArray : (arr: any[]) => void
226+
>arr : any[]
227+
228+
declare function mapArray<T extends any[]>(arr: T): Mapped<T>;
229+
>mapArray : <T extends any[]>(arr: T) => Mapped<T>
230+
>arr : T
231+
232+
function acceptMappedArray<T extends any[]>(arr: T) {
233+
>acceptMappedArray : <T extends any[]>(arr: T) => void
234+
>arr : T
235+
236+
acceptArray(mapArray(arr));
237+
>acceptArray(mapArray(arr)) : void
238+
>acceptArray : (arr: any[]) => void
239+
>mapArray(arr) : Mapped<T>
240+
>mapArray : <T extends any[]>(arr: T) => Mapped<T>
241+
>arr : T
242+
}
243+

0 commit comments

Comments
 (0)