Skip to content

Commit 6bd298b

Browse files
committed
add test for remove modifier and parameter
1 parent 13e85ac commit 6bd298b

File tree

2 files changed

+22
-5
lines changed

2 files changed

+22
-5
lines changed

src/services/codefixes/fixUnusedIdentifier.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -200,11 +200,10 @@ namespace ts.codefix {
200200

201201
function tryDeleteParameter(changes: textChanges.ChangeTracker, sourceFile: SourceFile, p: ParameterDeclaration, checker: TypeChecker, sourceFiles: ReadonlyArray<SourceFile>, isFixAll: boolean): void {
202202
if (mayDeleteParameter(p, checker, isFixAll)) {
203-
const modifiers: Modifier["kind"][] = [SyntaxKind.PrivateKeyword, SyntaxKind.ProtectedKeyword, SyntaxKind.PublicKeyword, SyntaxKind.ReadonlyKeyword];
204-
const foundModifiers = modifiers.map(modifier => findModifier(p, modifier)).filter(modifier => modifier !== undefined);
205-
if (foundModifiers.length > 0) {
206-
foundModifiers.forEach(modifier => {
207-
changes.deleteModifier(sourceFile, modifier!);
203+
if (p.modifiers && p.modifiers.length > 0
204+
&& (!isIdentifier(p.name) || FindAllReferences.Core.isSymbolReferencedInFile(p.name, checker, sourceFile))) {
205+
p.modifiers.forEach(modifier => {
206+
changes.deleteModifier(sourceFile, modifier);
208207
});
209208
}
210209
else {
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/// <reference path='fourslash.ts' />
2+
3+
// @noUnusedLocals: true
4+
// @noUnusedParameters: true
5+
6+
////export class Example {
7+
//// constructor(private readonly arg: any) {
8+
//// }
9+
////}
10+
11+
verify.codeFix({
12+
description: "Remove declaration for: 'arg'",
13+
newFileContent:
14+
`export class Example {
15+
constructor() {
16+
}
17+
}`,
18+
});

0 commit comments

Comments
 (0)