Skip to content

Commit 4c99084

Browse files
committed
Accept new baselines
1 parent b7b7a66 commit 4c99084

File tree

4 files changed

+96
-0
lines changed

4 files changed

+96
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
tests/cases/compiler/destructuringTuple.ts(11,8): error TS2493: Tuple type '[]' of length '0' has no element at index '0'.
2+
tests/cases/compiler/destructuringTuple.ts(11,60): error TS2345: Argument of type 'number' is not assignable to parameter of type 'ConcatArray<never>'.
3+
4+
5+
==== tests/cases/compiler/destructuringTuple.ts (2 errors) ====
6+
declare var tuple: [boolean, number, ...string[]];
7+
8+
const [a, b, c, ...rest] = tuple;
9+
10+
declare var receiver: typeof tuple;
11+
12+
[...receiver] = tuple;
13+
14+
// Repros from #32140
15+
16+
const [oops1] = [1, 2, 3].reduce((accu, el) => accu.concat(el), []);
17+
~~~~~
18+
!!! error TS2493: Tuple type '[]' of length '0' has no element at index '0'.
19+
~~
20+
!!! error TS2345: Argument of type 'number' is not assignable to parameter of type 'ConcatArray<never>'.
21+
22+
const [oops2] = [1, 2, 3].reduce((acc: number[], e) => acc.concat(e), []);
23+

tests/baselines/reference/destructuringTuple.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,18 @@ const [a, b, c, ...rest] = tuple;
66
declare var receiver: typeof tuple;
77

88
[...receiver] = tuple;
9+
10+
// Repros from #32140
11+
12+
const [oops1] = [1, 2, 3].reduce((accu, el) => accu.concat(el), []);
13+
14+
const [oops2] = [1, 2, 3].reduce((acc: number[], e) => acc.concat(e), []);
915

1016

1117
//// [destructuringTuple.js]
1218
"use strict";
1319
var a = tuple[0], b = tuple[1], c = tuple[2], rest = tuple.slice(3);
1420
receiver = tuple.slice(0);
21+
// Repros from #32140
22+
var oops1 = [1, 2, 3].reduce(function (accu, el) { return accu.concat(el); }, [])[0];
23+
var oops2 = [1, 2, 3].reduce(function (acc, e) { return acc.concat(e); }, [])[0];

tests/baselines/reference/destructuringTuple.symbols

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,27 @@ declare var receiver: typeof tuple;
1717
>receiver : Symbol(receiver, Decl(destructuringTuple.ts, 4, 11))
1818
>tuple : Symbol(tuple, Decl(destructuringTuple.ts, 0, 11))
1919

20+
// Repros from #32140
21+
22+
const [oops1] = [1, 2, 3].reduce((accu, el) => accu.concat(el), []);
23+
>oops1 : Symbol(oops1, Decl(destructuringTuple.ts, 10, 7))
24+
>[1, 2, 3].reduce : Symbol(Array.reduce, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
25+
>reduce : Symbol(Array.reduce, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
26+
>accu : Symbol(accu, Decl(destructuringTuple.ts, 10, 34))
27+
>el : Symbol(el, Decl(destructuringTuple.ts, 10, 39))
28+
>accu.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
29+
>accu : Symbol(accu, Decl(destructuringTuple.ts, 10, 34))
30+
>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
31+
>el : Symbol(el, Decl(destructuringTuple.ts, 10, 39))
32+
33+
const [oops2] = [1, 2, 3].reduce((acc: number[], e) => acc.concat(e), []);
34+
>oops2 : Symbol(oops2, Decl(destructuringTuple.ts, 12, 7))
35+
>[1, 2, 3].reduce : Symbol(Array.reduce, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
36+
>reduce : Symbol(Array.reduce, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
37+
>acc : Symbol(acc, Decl(destructuringTuple.ts, 12, 34))
38+
>e : Symbol(e, Decl(destructuringTuple.ts, 12, 48))
39+
>acc.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
40+
>acc : Symbol(acc, Decl(destructuringTuple.ts, 12, 34))
41+
>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
42+
>e : Symbol(e, Decl(destructuringTuple.ts, 12, 48))
43+

tests/baselines/reference/destructuringTuple.types

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,43 @@ declare var receiver: typeof tuple;
2020
>receiver : [boolean, number, ...string[]]
2121
>tuple : [boolean, number, ...string[]]
2222

23+
// Repros from #32140
24+
25+
const [oops1] = [1, 2, 3].reduce((accu, el) => accu.concat(el), []);
26+
>oops1 : undefined
27+
>[1, 2, 3].reduce((accu, el) => accu.concat(el), []) : []
28+
>[1, 2, 3].reduce : { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; <U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }
29+
>[1, 2, 3] : number[]
30+
>1 : 1
31+
>2 : 2
32+
>3 : 3
33+
>reduce : { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; <U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }
34+
>(accu, el) => accu.concat(el) : (accu: [], el: number) => any
35+
>accu : []
36+
>el : number
37+
>accu.concat(el) : any
38+
>accu.concat : { (...items: ConcatArray<never>[]): never[]; (...items: ConcatArray<never>[]): never[]; }
39+
>accu : []
40+
>concat : { (...items: ConcatArray<never>[]): never[]; (...items: ConcatArray<never>[]): never[]; }
41+
>el : number
42+
>[] : []
43+
44+
const [oops2] = [1, 2, 3].reduce((acc: number[], e) => acc.concat(e), []);
45+
>oops2 : number
46+
>[1, 2, 3].reduce((acc: number[], e) => acc.concat(e), []) : number[]
47+
>[1, 2, 3].reduce : { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; <U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }
48+
>[1, 2, 3] : number[]
49+
>1 : 1
50+
>2 : 2
51+
>3 : 3
52+
>reduce : { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; <U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }
53+
>(acc: number[], e) => acc.concat(e) : (acc: number[], e: number) => number[]
54+
>acc : number[]
55+
>e : number
56+
>acc.concat(e) : number[]
57+
>acc.concat : { (...items: ConcatArray<number>[]): number[]; (...items: (number | ConcatArray<number>)[]): number[]; }
58+
>acc : number[]
59+
>concat : { (...items: ConcatArray<number>[]): number[]; (...items: (number | ConcatArray<number>)[]): number[]; }
60+
>e : number
61+
>[] : never[]
62+

0 commit comments

Comments
 (0)