From 855c3a6d4fb2f81061711f52c1b01b6f2295eeee Mon Sep 17 00:00:00 2001 From: Andy Date: Fri, 8 Jun 2018 10:39:01 -0700 Subject: [PATCH] fixUnusedIdentifier: Delete trailing comma in array binding pattern (#24800) --- src/services/codefixes/fixUnusedIdentifier.ts | 15 ++++++--------- ...ixUnusedIdentifier_destructure_partlyUnused.ts | 4 ++-- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/services/codefixes/fixUnusedIdentifier.ts b/src/services/codefixes/fixUnusedIdentifier.ts index c97902e7713..ebe65197c7f 100644 --- a/src/services/codefixes/fixUnusedIdentifier.ts +++ b/src/services/codefixes/fixUnusedIdentifier.ts @@ -228,15 +228,12 @@ namespace ts.codefix { case SyntaxKind.BindingElement: { const pattern = (parent as BindingElement).parent; - switch (pattern.kind) { - case SyntaxKind.ArrayBindingPattern: - changes.deleteNode(sourceFile, parent); // Don't delete ',' - break; - case SyntaxKind.ObjectBindingPattern: - changes.deleteNodeInList(sourceFile, parent); - break; - default: - return Debug.assertNever(pattern); + const preserveComma = pattern.kind === SyntaxKind.ArrayBindingPattern && parent !== last(pattern.elements); + if (preserveComma) { + changes.deleteNode(sourceFile, parent); + } + else { + changes.deleteNodeInList(sourceFile, parent); } break; } diff --git a/tests/cases/fourslash/codeFixUnusedIdentifier_destructure_partlyUnused.ts b/tests/cases/fourslash/codeFixUnusedIdentifier_destructure_partlyUnused.ts index 6ed5973d400..e0783706085 100644 --- a/tests/cases/fourslash/codeFixUnusedIdentifier_destructure_partlyUnused.ts +++ b/tests/cases/fourslash/codeFixUnusedIdentifier_destructure_partlyUnused.ts @@ -57,7 +57,7 @@ verify.codeFixAll({ x; z; } { - const [x,] = o; + const [x] = o; x; } { @@ -65,7 +65,7 @@ verify.codeFixAll({ y; } { - const [, y,] = o; + const [, y] = o; y; } {