Simplify tryDeleteDeclaration (#24808)
This commit is contained in:
parent
e07e2e0e1f
commit
ed20f7d983
|
@ -148,20 +148,9 @@ namespace ts.codefix {
|
|||
return false;
|
||||
}
|
||||
|
||||
function tryDeleteDeclaration(changes: textChanges.ChangeTracker, sourceFile: SourceFile, token: Node, deletedAncestors: NodeSet | undefined, checker: TypeChecker, isFixAll: boolean): void {
|
||||
switch (token.kind) {
|
||||
case SyntaxKind.Identifier:
|
||||
tryDeleteIdentifier(changes, sourceFile, <Identifier>token, deletedAncestors, checker, isFixAll);
|
||||
deleteAssignments(changes, sourceFile, token as Identifier, checker);
|
||||
break;
|
||||
case SyntaxKind.PropertyDeclaration:
|
||||
case SyntaxKind.NamespaceImport:
|
||||
if (deletedAncestors) deletedAncestors.add(token.parent);
|
||||
changes.deleteNode(sourceFile, token.parent);
|
||||
break;
|
||||
default:
|
||||
tryDeleteDefault(changes, sourceFile, token, deletedAncestors);
|
||||
}
|
||||
function tryDeleteDeclaration(changes: textChanges.ChangeTracker, sourceFile: SourceFile, token: Node, deletedAncestors: NodeSet | undefined, checker: TypeChecker, isFixAll: boolean) {
|
||||
tryDeleteDeclarationWorker(changes, sourceFile, token, deletedAncestors, checker, isFixAll);
|
||||
if (isIdentifier(token)) deleteAssignments(changes, sourceFile, token, checker);
|
||||
}
|
||||
|
||||
function deleteAssignments(changes: textChanges.ChangeTracker, sourceFile: SourceFile, token: Identifier, checker: TypeChecker) {
|
||||
|
@ -173,19 +162,8 @@ namespace ts.codefix {
|
|||
});
|
||||
}
|
||||
|
||||
function tryDeleteDefault(changes: textChanges.ChangeTracker, sourceFile: SourceFile, token: Node, deletedAncestors: NodeSet | undefined): void {
|
||||
if (isDeclarationName(token)) {
|
||||
if (deletedAncestors) deletedAncestors.add(token.parent);
|
||||
changes.deleteNode(sourceFile, token.parent);
|
||||
}
|
||||
else if (isLiteralComputedPropertyDeclarationName(token)) {
|
||||
if (deletedAncestors) deletedAncestors.add(token.parent.parent);
|
||||
changes.deleteNode(sourceFile, token.parent.parent);
|
||||
}
|
||||
}
|
||||
|
||||
function tryDeleteIdentifier(changes: textChanges.ChangeTracker, sourceFile: SourceFile, identifier: Identifier, deletedAncestors: NodeSet | undefined, checker: TypeChecker, isFixAll: boolean): void {
|
||||
const parent = identifier.parent;
|
||||
function tryDeleteDeclarationWorker(changes: textChanges.ChangeTracker, sourceFile: SourceFile, token: Node, deletedAncestors: NodeSet | undefined, checker: TypeChecker, isFixAll: boolean): void {
|
||||
const parent = token.parent;
|
||||
switch (parent.kind) {
|
||||
case SyntaxKind.VariableDeclaration:
|
||||
tryDeleteVariableDeclaration(changes, sourceFile, <VariableDeclaration>parent, deletedAncestors);
|
||||
|
@ -250,7 +228,7 @@ namespace ts.codefix {
|
|||
|
||||
// handle case where 'import a = A;'
|
||||
case SyntaxKind.ImportEqualsDeclaration:
|
||||
const importEquals = getAncestor(identifier, SyntaxKind.ImportEqualsDeclaration)!;
|
||||
const importEquals = getAncestor(token, SyntaxKind.ImportEqualsDeclaration)!;
|
||||
changes.deleteNode(sourceFile, importEquals);
|
||||
break;
|
||||
|
||||
|
@ -290,7 +268,14 @@ namespace ts.codefix {
|
|||
break;
|
||||
|
||||
default:
|
||||
tryDeleteDefault(changes, sourceFile, identifier, deletedAncestors);
|
||||
if (isDeclarationName(token)) {
|
||||
if (deletedAncestors) deletedAncestors.add(token.parent);
|
||||
changes.deleteNode(sourceFile, token.parent);
|
||||
}
|
||||
else if (isLiteralComputedPropertyDeclarationName(token)) {
|
||||
if (deletedAncestors) deletedAncestors.add(token.parent.parent);
|
||||
changes.deleteNode(sourceFile, token.parent.parent);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue