Skip to content

Commit ed20f7d

Browse files
author
Andy
authored
Simplify tryDeleteDeclaration (microsoft#24808)
1 parent e07e2e0 commit ed20f7d

1 file changed

Lines changed: 14 additions & 29 deletions

File tree

src/services/codefixes/fixUnusedIdentifier.ts

Lines changed: 14 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -148,20 +148,9 @@ namespace ts.codefix {
148148
return false;
149149
}
150150

151-
function tryDeleteDeclaration(changes: textChanges.ChangeTracker, sourceFile: SourceFile, token: Node, deletedAncestors: NodeSet | undefined, checker: TypeChecker, isFixAll: boolean): void {
152-
switch (token.kind) {
153-
case SyntaxKind.Identifier:
154-
tryDeleteIdentifier(changes, sourceFile, <Identifier>token, deletedAncestors, checker, isFixAll);
155-
deleteAssignments(changes, sourceFile, token as Identifier, checker);
156-
break;
157-
case SyntaxKind.PropertyDeclaration:
158-
case SyntaxKind.NamespaceImport:
159-
if (deletedAncestors) deletedAncestors.add(token.parent);
160-
changes.deleteNode(sourceFile, token.parent);
161-
break;
162-
default:
163-
tryDeleteDefault(changes, sourceFile, token, deletedAncestors);
164-
}
151+
function tryDeleteDeclaration(changes: textChanges.ChangeTracker, sourceFile: SourceFile, token: Node, deletedAncestors: NodeSet | undefined, checker: TypeChecker, isFixAll: boolean) {
152+
tryDeleteDeclarationWorker(changes, sourceFile, token, deletedAncestors, checker, isFixAll);
153+
if (isIdentifier(token)) deleteAssignments(changes, sourceFile, token, checker);
165154
}
166155

167156
function deleteAssignments(changes: textChanges.ChangeTracker, sourceFile: SourceFile, token: Identifier, checker: TypeChecker) {
@@ -173,19 +162,8 @@ namespace ts.codefix {
173162
});
174163
}
175164

176-
function tryDeleteDefault(changes: textChanges.ChangeTracker, sourceFile: SourceFile, token: Node, deletedAncestors: NodeSet | undefined): void {
177-
if (isDeclarationName(token)) {
178-
if (deletedAncestors) deletedAncestors.add(token.parent);
179-
changes.deleteNode(sourceFile, token.parent);
180-
}
181-
else if (isLiteralComputedPropertyDeclarationName(token)) {
182-
if (deletedAncestors) deletedAncestors.add(token.parent.parent);
183-
changes.deleteNode(sourceFile, token.parent.parent);
184-
}
185-
}
186-
187-
function tryDeleteIdentifier(changes: textChanges.ChangeTracker, sourceFile: SourceFile, identifier: Identifier, deletedAncestors: NodeSet | undefined, checker: TypeChecker, isFixAll: boolean): void {
188-
const parent = identifier.parent;
165+
function tryDeleteDeclarationWorker(changes: textChanges.ChangeTracker, sourceFile: SourceFile, token: Node, deletedAncestors: NodeSet | undefined, checker: TypeChecker, isFixAll: boolean): void {
166+
const parent = token.parent;
189167
switch (parent.kind) {
190168
case SyntaxKind.VariableDeclaration:
191169
tryDeleteVariableDeclaration(changes, sourceFile, <VariableDeclaration>parent, deletedAncestors);
@@ -250,7 +228,7 @@ namespace ts.codefix {
250228

251229
// handle case where 'import a = A;'
252230
case SyntaxKind.ImportEqualsDeclaration:
253-
const importEquals = getAncestor(identifier, SyntaxKind.ImportEqualsDeclaration)!;
231+
const importEquals = getAncestor(token, SyntaxKind.ImportEqualsDeclaration)!;
254232
changes.deleteNode(sourceFile, importEquals);
255233
break;
256234

@@ -290,7 +268,14 @@ namespace ts.codefix {
290268
break;
291269

292270
default:
293-
tryDeleteDefault(changes, sourceFile, identifier, deletedAncestors);
271+
if (isDeclarationName(token)) {
272+
if (deletedAncestors) deletedAncestors.add(token.parent);
273+
changes.deleteNode(sourceFile, token.parent);
274+
}
275+
else if (isLiteralComputedPropertyDeclarationName(token)) {
276+
if (deletedAncestors) deletedAncestors.add(token.parent.parent);
277+
changes.deleteNode(sourceFile, token.parent.parent);
278+
}
294279
break;
295280
}
296281
}

0 commit comments

Comments
 (0)