diff --git a/src/services/codefixes/unusedIdentifierFixes.ts b/src/services/codefixes/unusedIdentifierFixes.ts index bb3664b974e..1f6dcb5535f 100644 --- a/src/services/codefixes/unusedIdentifierFixes.ts +++ b/src/services/codefixes/unusedIdentifierFixes.ts @@ -54,14 +54,6 @@ namespace ts.codefix { } } - case SyntaxKind.FunctionDeclaration: - case SyntaxKind.ClassDeclaration: - case SyntaxKind.InterfaceDeclaration: - case SyntaxKind.MethodDeclaration: - case SyntaxKind.ModuleDeclaration: - case SyntaxKind.PropertyDeclaration: - return createCodeFix("", token.parent.pos, token.parent.end - token.parent.pos); - case SyntaxKind.TypeParameter: const typeParameters = (token.parent.parent).typeParameters; if (typeParameters.length === 1) { @@ -105,6 +97,12 @@ namespace ts.codefix { case SyntaxKind.EnumDeclaration: return createCodeFix("", token.parent.pos, token.parent.end - token.parent.pos); + + default: + if (isDeclarationName(token)) { + return createCodeFix("", token.parent.pos, token.parent.end - token.parent.pos); + } + break; } break; diff --git a/tests/cases/fourslash/unusedClassInNamespace3.ts b/tests/cases/fourslash/unusedClassInNamespace3.ts index 6102f744717..391c5e833ef 100644 --- a/tests/cases/fourslash/unusedClassInNamespace3.ts +++ b/tests/cases/fourslash/unusedClassInNamespace3.ts @@ -5,8 +5,21 @@ //// [| namespace Validation { //// class c1 { //// -//// }/*1*/ -//// } |] +//// } +//// +//// export class c2 { +//// +//// } +//// +//// class c3 extends c1 { +//// +//// } +////} |] verify.codeFixAtPosition(`namespace Validation { -}`); \ No newline at end of file + class c1 { + } + + export class c2 { + } +}`); diff --git a/tests/cases/fourslash/unusedClassInNamespace4.ts b/tests/cases/fourslash/unusedClassInNamespace4.ts index 79701a5e0e2..5db5b1aefa6 100644 --- a/tests/cases/fourslash/unusedClassInNamespace4.ts +++ b/tests/cases/fourslash/unusedClassInNamespace4.ts @@ -2,7 +2,6 @@ // @noUnusedLocals: true // @noUnusedParameters:true - //// [| namespace Validation { //// class c1 { //// @@ -11,9 +10,18 @@ //// export class c2 { //// //// } -//// } |] +//// +//// class c3 { +//// public x: c1; +//// } +////} |] verify.codeFixAtPosition(`namespace Validation { + class c1 { + + } + export class c2 { + } }`); diff --git a/tests/cases/fourslash/unusedClassInNamespace5.ts b/tests/cases/fourslash/unusedClassInNamespace5.ts deleted file mode 100644 index 80d8fe857bd..00000000000 --- a/tests/cases/fourslash/unusedClassInNamespace5.ts +++ /dev/null @@ -1,26 +0,0 @@ -/// - -// @noUnusedLocals: true -// @noUnusedParameters:true - -//// [| namespace Validation { -//// class c1 { -//// -//// } -//// -//// export class c2 { -//// -//// } -//// -//// class c3 extends c1 { -//// -//// } -////} |] - -verify.codeFixAtPosition(`namespace Validation { - class c1 { - } - - export class c2 { - } -}`); diff --git a/tests/cases/fourslash/unusedClassInNamespace6.ts b/tests/cases/fourslash/unusedClassInNamespace6.ts deleted file mode 100644 index 5db5b1aefa6..00000000000 --- a/tests/cases/fourslash/unusedClassInNamespace6.ts +++ /dev/null @@ -1,27 +0,0 @@ -/// - -// @noUnusedLocals: true -// @noUnusedParameters:true -//// [| namespace Validation { -//// class c1 { -//// -//// } -//// -//// export class c2 { -//// -//// } -//// -//// class c3 { -//// public x: c1; -//// } -////} |] - -verify.codeFixAtPosition(`namespace Validation { - class c1 { - - } - - export class c2 { - - } -}`); diff --git a/tests/cases/fourslash/unusedEnumInNamespace1.ts b/tests/cases/fourslash/unusedEnumInNamespace1.ts new file mode 100644 index 00000000000..88e8e32d5f8 --- /dev/null +++ b/tests/cases/fourslash/unusedEnumInNamespace1.ts @@ -0,0 +1,11 @@ +/// + +// @noUnusedLocals: true +//// [| namespace greeter { +//// enum enum1 { +//// Monday +//// } +//// } |] + +verify.codeFixAtPosition(`namespace greeter { +}`); diff --git a/tests/cases/fourslash/unusedTypeAliasInNamespace1.ts b/tests/cases/fourslash/unusedTypeAliasInNamespace1.ts new file mode 100644 index 00000000000..593c0fe8cf4 --- /dev/null +++ b/tests/cases/fourslash/unusedTypeAliasInNamespace1.ts @@ -0,0 +1,11 @@ +/// + +// @noUnusedLocals: true +//// [| namespace greeter { +//// type hw = "Hello" |"world"; +//// export type nw = "No" | "Way"; +//// } |] + +verify.codeFixAtPosition(`namespace greeter { + export type nw = "No" | "Way"; +}`);