Skip to content

Commit 2b47e15

Browse files
author
Andy Hanson
committed
Add array destructure tests
1 parent b2ca04b commit 2b47e15

File tree

2 files changed

+62
-2
lines changed

2 files changed

+62
-2
lines changed

src/services/codefixes/fixUnusedIdentifier.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -171,9 +171,20 @@ namespace ts.codefix {
171171
}
172172
break;
173173

174-
case SyntaxKind.BindingElement:
175-
changes.deleteNodeInList(sourceFile, parent);
174+
case SyntaxKind.BindingElement: {
175+
const pattern = (parent as BindingElement).parent;
176+
switch (pattern.kind) {
177+
case SyntaxKind.ArrayBindingPattern:
178+
changes.deleteNode(sourceFile, parent); // Don't delete ','
179+
break;
180+
case SyntaxKind.ObjectBindingPattern:
181+
changes.deleteNodeInList(sourceFile, parent);
182+
break;
183+
default:
184+
return Debug.assertNever(pattern);
185+
}
176186
break;
187+
}
177188

178189
// handle case where 'import a = A;'
179190
case SyntaxKind.ImportEqualsDeclaration:

tests/cases/fourslash/codeFixUnusedIdentifier_destructure_partlyUnused.ts

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,31 @@
1010
//// const { x, y } = o;
1111
//// y;
1212
////}
13+
////{
14+
//// const { x, y, z } = o;
15+
//// y;
16+
////}
17+
////{
18+
//// const { x, y, z } = o;
19+
//// x; z;
20+
////}
21+
////{
22+
//// const [x, y] = o;
23+
//// x;
24+
////}
25+
////{
26+
//// const [x, y] = o;
27+
//// y;
28+
////}
29+
////{
30+
//// const [x, y, z] = o;
31+
//// y;
32+
////}
33+
////{
34+
//// const [x, y, z] = o;
35+
//// x; z;
36+
////}
37+
1338

1439
verify.codeFixAll({
1540
fixId: "unusedIdentifier_delete",
@@ -22,5 +47,29 @@ verify.codeFixAll({
2247
{
2348
const { y } = o;
2449
y;
50+
}
51+
{
52+
const { y } = o;
53+
y;
54+
}
55+
{
56+
const { x, z } = o;
57+
x; z;
58+
}
59+
{
60+
const [x,] = o;
61+
x;
62+
}
63+
{
64+
const [, y] = o;
65+
y;
66+
}
67+
{
68+
const [, y,] = o;
69+
y;
70+
}
71+
{
72+
const [x,, z] = o;
73+
x; z;
2574
}`,
2675
});

0 commit comments

Comments
 (0)