From 011b567918290d367ba181b76f5726fa3401bb5d Mon Sep 17 00:00:00 2001 From: Andrew Casey Date: Wed, 29 Nov 2017 18:05:36 -0800 Subject: [PATCH 1/2] Don't offer to prepend an underscore to the name of an unused private property --- src/services/codefixes/fixUnusedIdentifier.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/services/codefixes/fixUnusedIdentifier.ts b/src/services/codefixes/fixUnusedIdentifier.ts index 090aefbb8ca..473c4748550 100644 --- a/src/services/codefixes/fixUnusedIdentifier.ts +++ b/src/services/codefixes/fixUnusedIdentifier.ts @@ -18,7 +18,7 @@ namespace ts.codefix { switch (token.kind) { case ts.SyntaxKind.Identifier: - return deleteIdentifierOrPrefixWithUnderscore(token); + return deleteIdentifierOrPrefixWithUnderscore(token, context.errorCode); case SyntaxKind.PropertyDeclaration: case SyntaxKind.NamespaceImport: @@ -54,7 +54,7 @@ namespace ts.codefix { }; } - function deleteIdentifierOrPrefixWithUnderscore(identifier: Identifier): CodeAction[] | undefined { + function deleteIdentifierOrPrefixWithUnderscore(identifier: Identifier, errorCode: number): CodeAction[] | undefined { const parent = identifier.parent; switch (parent.kind) { case ts.SyntaxKind.VariableDeclaration: @@ -76,8 +76,10 @@ namespace ts.codefix { case ts.SyntaxKind.Parameter: const functionDeclaration = parent.parent; - return [functionDeclaration.parameters.length === 1 ? deleteNode(parent) : deleteNodeInList(parent), - prefixIdentifierWithUnderscore(identifier)]; + const deleteAction = functionDeclaration.parameters.length === 1 ? deleteNode(parent) : deleteNodeInList(parent); + return errorCode === Diagnostics.Property_0_is_declared_but_its_value_is_never_read.code + ? [deleteAction] + : [deleteAction, prefixIdentifierWithUnderscore(identifier)]; // handle case where 'import a = A;' case SyntaxKind.ImportEqualsDeclaration: From d7da7d48d3de8a95322186df9aaf9a99ad6b3584 Mon Sep 17 00:00:00 2001 From: Andrew Casey Date: Wed, 29 Nov 2017 18:27:56 -0800 Subject: [PATCH 2/2] Update affected fourslash test --- .../fourslash/unusedParameterInConstructor1AddUnderscore.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/cases/fourslash/unusedParameterInConstructor1AddUnderscore.ts b/tests/cases/fourslash/unusedParameterInConstructor1AddUnderscore.ts index 634561a5c65..37b975a53df 100644 --- a/tests/cases/fourslash/unusedParameterInConstructor1AddUnderscore.ts +++ b/tests/cases/fourslash/unusedParameterInConstructor1AddUnderscore.ts @@ -1,12 +1,12 @@ /// -// @noUnusedLocals: true +// @noUnusedParameters: true //// class C1 { -//// [|constructor(private p1: string, public p2: boolean, public p3: any, p5) |] { p5; } +//// [|constructor(p1: string, public p2: boolean, public p3: any, p5) |] { p5; } //// } verify.codeFix({ description: "Prefix 'p1' with an underscore.", index: 1, - newRangeContent: "constructor(private _p1: string, public p2: boolean, public p3: any, p5)", + newRangeContent: "constructor(_p1: string, public p2: boolean, public p3: any, p5)", });