Skip to content

Commit de9f59a

Browse files
committed
Test non-identifier rest in destructuring assignment
1 parent 9b2b2ca commit de9f59a

3 files changed

Lines changed: 15 additions & 1 deletion

File tree

tests/baselines/reference/objectRestNegative.errors.txt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
tests/cases/conformance/types/rest/objectRestNegative.ts(2,10): error TS2462: A rest element must be last in a destructuring pattern
22
tests/cases/conformance/types/rest/objectRestNegative.ts(3,31): error TS2462: A rest element must be last in a destructuring pattern
33
tests/cases/conformance/types/rest/objectRestNegative.ts(6,17): error TS2700: Rest types may only be created from object types.
4+
tests/cases/conformance/types/rest/objectRestNegative.ts(11,9): error TS2701: An object rest element must be an identifier.
45

56

6-
==== tests/cases/conformance/types/rest/objectRestNegative.ts (3 errors) ====
7+
==== tests/cases/conformance/types/rest/objectRestNegative.ts (4 errors) ====
78
let o = { a: 1, b: 'no' };
89
var { ...mustBeLast, a } = o;
910
~~~~~~~~~~
@@ -18,4 +19,9 @@ tests/cases/conformance/types/rest/objectRestNegative.ts(6,17): error TS2700: Re
1819
!!! error TS2700: Rest types may only be created from object types.
1920
return rest;
2021
}
22+
23+
let rest: { b: string }
24+
({a, ...rest.b + rest.b} = o);
25+
~~~~~~~~~~~~~~~
26+
!!! error TS2701: An object rest element must be an identifier.
2127

tests/baselines/reference/objectRestNegative.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ function generic<T extends { x, y }>(t: T) {
77
let { x, ...rest } = t;
88
return rest;
99
}
10+
11+
let rest: { b: string }
12+
({a, ...rest.b + rest.b} = o);
1013

1114

1215
//// [objectRestNegative.js]
@@ -25,3 +28,5 @@ function generic(t) {
2528
var x = t.x, rest = __rest(t, ["x"]);
2629
return rest;
2730
}
31+
var rest;
32+
(a = o.a, o, o);

tests/cases/conformance/types/rest/objectRestNegative.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,6 @@ function generic<T extends { x, y }>(t: T) {
66
let { x, ...rest } = t;
77
return rest;
88
}
9+
10+
let rest: { b: string }
11+
({a, ...rest.b + rest.b} = o);

0 commit comments

Comments
 (0)