From 0b98b056f72c90a4d34f7ee383101d80018e1a11 Mon Sep 17 00:00:00 2001 From: Andy Hanson Date: Thu, 17 May 2018 14:07:48 -0700 Subject: [PATCH] moveToNewFile: Fix bug for missing importClause --- src/services/refactors/moveToNewFile.ts | 1 + tests/cases/fourslash/moveToNewFile.ts | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/services/refactors/moveToNewFile.ts b/src/services/refactors/moveToNewFile.ts index 3ec64171b178d..d0d0df4250e81 100644 --- a/src/services/refactors/moveToNewFile.ts +++ b/src/services/refactors/moveToNewFile.ts @@ -440,6 +440,7 @@ namespace ts.refactor { switch (i.kind) { case SyntaxKind.ImportDeclaration: { const clause = i.importClause; + if (!clause) return undefined; const defaultImport = clause.name && keep(clause.name) ? clause.name : undefined; const namedBindings = clause.namedBindings && filterNamedBindings(clause.namedBindings, keep); return defaultImport || namedBindings diff --git a/tests/cases/fourslash/moveToNewFile.ts b/tests/cases/fourslash/moveToNewFile.ts index cd2bd4ff8d62a..a4d243e4a03f6 100644 --- a/tests/cases/fourslash/moveToNewFile.ts +++ b/tests/cases/fourslash/moveToNewFile.ts @@ -1,6 +1,7 @@ /// // @Filename: /a.ts +////import "./foo"; ////import { a, b, alreadyUnused } from "./other"; ////const p = 0; ////[|const y = p + b;|] @@ -11,6 +12,7 @@ verify.moveToNewFile({ "/a.ts": `import { y } from "./y"; +import "./foo"; import { a, alreadyUnused } from "./other"; export const p = 0; a; y;`,