diff --git a/src/services/codefixes/unusedIdentifierFixes.ts b/src/services/codefixes/unusedIdentifierFixes.ts
index f801d5182d8..bb3664b974e 100644
--- a/src/services/codefixes/unusedIdentifierFixes.ts
+++ b/src/services/codefixes/unusedIdentifierFixes.ts
@@ -92,18 +92,20 @@ namespace ts.codefix {
}
// handle case where 'import a = A;'
- // remove entire line
case SyntaxKind.ImportEqualsDeclaration:
- const importDecl = token.parent;
- return createCodeFix("", importDecl.pos, importDecl.end - importDecl.pos);
+ return createCodeFix("", token.parent.pos, token.parent.end - token.parent.pos);
+
+ // handle case where 'import d from './file'
+ case SyntaxKind.ImportClause:
+ return createCodeFix("", token.parent.parent.pos, token.parent.parent.end - token.parent.parent.pos);
+
+ // handle case where 'import * as a from './file'
+ case SyntaxKind.NamespaceImport:
+ return createCodeFix("", token.parent.parent.parent.pos, token.parent.parent.parent.end - token.parent.parent.parent.pos);
case SyntaxKind.EnumDeclaration:
return createCodeFix("", token.parent.pos, token.parent.end - token.parent.pos);
}
-
- if (token.parent.parent.kind === SyntaxKind.ImportClause || token.parent.parent.kind === SyntaxKind.ImportDeclaration) {
- return createCodeFix("{}", token.parent.pos, token.parent.end - token.parent.pos);
- }
break;
case SyntaxKind.PrivateKeyword:
@@ -112,7 +114,7 @@ namespace ts.codefix {
case SyntaxKind.AsteriskToken:
case SyntaxKind.NamespaceImport:
- return createCodeFix("{}", token.parent.pos, token.parent.end - token.parent.pos);
+ return createCodeFix("", token.parent.pos, token.parent.end - token.parent.pos);
}
return undefined;
diff --git a/tests/cases/fourslash/unusedImports11FS.ts b/tests/cases/fourslash/unusedImports11FS.ts
new file mode 100644
index 00000000000..a18a4634d71
--- /dev/null
+++ b/tests/cases/fourslash/unusedImports11FS.ts
@@ -0,0 +1,14 @@
+///
+
+// @noUnusedLocals: true
+// @Filename: file2.ts
+//// [| import f1, * as s from "./file1"; |]
+//// s.f2('hello');
+
+// @Filename: file1.ts
+//// export var v1;
+//// export function f1(n: number){}
+//// export function f2(s: string){};
+//// export default f1;
+
+verify.codeFixAtPosition('import * as s from "./file1";');
\ No newline at end of file
diff --git a/tests/cases/fourslash/unusedImports12FS.ts b/tests/cases/fourslash/unusedImports12FS.ts
new file mode 100644
index 00000000000..647b7dfbe16
--- /dev/null
+++ b/tests/cases/fourslash/unusedImports12FS.ts
@@ -0,0 +1,13 @@
+///
+
+// @noUnusedLocals: true
+// @Filename: file2.ts
+//// [| import f1, * as s from "./file1"; |]
+//// f1(42);
+
+// @Filename: file1.ts
+//// export function f1(n: number){}
+//// export function f2(s: string){};
+//// export default f1;
+
+verify.codeFixAtPosition('import f1 "./file1";');
\ No newline at end of file
diff --git a/tests/cases/fourslash/unusedImports1FS.ts b/tests/cases/fourslash/unusedImports1FS.ts
index c3ae198d876..411e9b3530b 100644
--- a/tests/cases/fourslash/unusedImports1FS.ts
+++ b/tests/cases/fourslash/unusedImports1FS.ts
@@ -2,11 +2,11 @@
// @noUnusedLocals: true
// @Filename: file2.ts
-//// [| import {/*0*/Calculator/*1*/} from "./file1" |]
+//// [| import { Calculator } from "./file1" |]
// @Filename: file1.ts
//// export class Calculator {
////
//// }
-verify.codeFixAtPosition(`import {} from "./file1"`);
+verify.codeFixAtPosition('');
diff --git a/tests/cases/fourslash/unusedImports2FS.ts b/tests/cases/fourslash/unusedImports2FS.ts
index a7144d1eb49..a27f568b0d2 100644
--- a/tests/cases/fourslash/unusedImports2FS.ts
+++ b/tests/cases/fourslash/unusedImports2FS.ts
@@ -16,5 +16,4 @@
////
//// }
-verify.codeFixAtPosition(`import {Calculator} from "./file1"
-import {} from "./file1"`);
+verify.codeFixAtPosition(`import {Calculator} from "./file1"`);
diff --git a/tests/cases/fourslash/unusedImports3FS.ts b/tests/cases/fourslash/unusedImports3FS.ts
index f030232dc1e..205666e971d 100644
--- a/tests/cases/fourslash/unusedImports3FS.ts
+++ b/tests/cases/fourslash/unusedImports3FS.ts
@@ -2,7 +2,7 @@
// @noUnusedLocals: true
// @Filename: file2.ts
-////[| import {/*0*/Calculator,/*1*/ test, test2} from "./file1" |]
+////[| import {Calculator, test, test2} from "./file1" |]
//// test();
//// test2();
diff --git a/tests/cases/fourslash/unusedImports4FS.ts b/tests/cases/fourslash/unusedImports4FS.ts
index ab37928eb01..302007748f4 100644
--- a/tests/cases/fourslash/unusedImports4FS.ts
+++ b/tests/cases/fourslash/unusedImports4FS.ts
@@ -2,7 +2,7 @@
// @noUnusedLocals: true
// @Filename: file2.ts
-//// [| import {Calculator/*0*/, test/*1*/, test2} from "./file1" |]
+//// [| import {Calculator, test, test2} from "./file1" |]
////
//// var x = new Calculator();
//// x.handleChar();
diff --git a/tests/cases/fourslash/unusedImports6FS.ts b/tests/cases/fourslash/unusedImports6FS.ts
index c8e1af92313..a5c6744855a 100644
--- a/tests/cases/fourslash/unusedImports6FS.ts
+++ b/tests/cases/fourslash/unusedImports6FS.ts
@@ -17,4 +17,4 @@
////
//// }
-verify.codeFixAtPosition(`import {} from "./file1"`);
\ No newline at end of file
+verify.codeFixAtPosition('');
\ No newline at end of file
diff --git a/tests/cases/fourslash/unusedImports7FS.ts b/tests/cases/fourslash/unusedImports7FS.ts
index 6dc0886e8ff..23066ef538d 100644
--- a/tests/cases/fourslash/unusedImports7FS.ts
+++ b/tests/cases/fourslash/unusedImports7FS.ts
@@ -8,13 +8,9 @@
//// export class Calculator {
//// handleChar() { }
//// }
-////
//// export function test() {
-////
//// }
-////
//// export default function test2() {
-////
//// }
-verify.codeFixAtPosition(`import {} from "./file1"`);
\ No newline at end of file
+verify.codeFixAtPosition('');
\ No newline at end of file