Skip to content

Commit f56c300

Browse files
committed
Add tests
1 parent 816b704 commit f56c300

File tree

4 files changed

+41
-0
lines changed

4 files changed

+41
-0
lines changed

tests/baselines/reference/arrayFlatMap.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,18 @@ const array: number[] = [];
33
const readonlyArray: ReadonlyArray<number> = [];
44
array.flatMap((): ReadonlyArray<number> => []); // ok
55
readonlyArray.flatMap((): ReadonlyArray<number> => []); // ok
6+
7+
// #19535
8+
9+
const [x] = [1].flatMap(undefined as () => number[] | number[][]);
10+
x == 1;
611

712

813
//// [arrayFlatMap.js]
914
var array = [];
1015
var readonlyArray = [];
1116
array.flatMap(function () { return []; }); // ok
1217
readonlyArray.flatMap(function () { return []; }); // ok
18+
// #19535
19+
var x = [1].flatMap(undefined)[0];
20+
x == 1;

tests/baselines/reference/arrayFlatMap.symbols

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,14 @@ readonlyArray.flatMap((): ReadonlyArray<number> => []); // ok
1818
>flatMap : Symbol(ReadonlyArray.flatMap, Decl(lib.es2019.array.d.ts, --, --))
1919
>ReadonlyArray : Symbol(ReadonlyArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --), Decl(lib.es2019.array.d.ts, --, --))
2020

21+
// #19535
22+
23+
const [x] = [1].flatMap(undefined as () => number[] | number[][]);
24+
>x : Symbol(x, Decl(arrayFlatMap.ts, 7, 7))
25+
>[1].flatMap : Symbol(Array.flatMap, Decl(lib.es2019.array.d.ts, --, --))
26+
>flatMap : Symbol(Array.flatMap, Decl(lib.es2019.array.d.ts, --, --))
27+
>undefined : Symbol(undefined)
28+
29+
x == 1;
30+
>x : Symbol(x, Decl(arrayFlatMap.ts, 7, 7))
31+

tests/baselines/reference/arrayFlatMap.types

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,20 @@ readonlyArray.flatMap((): ReadonlyArray<number> => []); // ok
2323
>(): ReadonlyArray<number> => [] : () => readonly number[]
2424
>[] : undefined[]
2525

26+
// #19535
27+
28+
const [x] = [1].flatMap(undefined as () => number[] | number[][]);
29+
>x : number | number[]
30+
>[1].flatMap(undefined as () => number[] | number[][]) : (number | number[])[]
31+
>[1].flatMap : <U, This = undefined>(callback: (this: This, value: number, index: number, array: number[]) => U, thisArg?: This) => (U extends readonly (infer V)[] ? V : U)[]
32+
>[1] : number[]
33+
>1 : 1
34+
>flatMap : <U, This = undefined>(callback: (this: This, value: number, index: number, array: number[]) => U, thisArg?: This) => (U extends readonly (infer V)[] ? V : U)[]
35+
>undefined as () => number[] | number[][] : () => number[] | number[][]
36+
>undefined : undefined
37+
38+
x == 1;
39+
>x == 1 : boolean
40+
>x : number | number[]
41+
>1 : 1
42+

tests/cases/compiler/arrayFlatMap.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,8 @@ const array: number[] = [];
44
const readonlyArray: ReadonlyArray<number> = [];
55
array.flatMap((): ReadonlyArray<number> => []); // ok
66
readonlyArray.flatMap((): ReadonlyArray<number> => []); // ok
7+
8+
// #19535
9+
10+
const [x] = [1].flatMap(undefined as () => number[] | number[][]);
11+
x == 1;

0 commit comments

Comments
 (0)