From ef028bcd08340abee95a35ddf96c356a750fd11a Mon Sep 17 00:00:00 2001 From: TypeScript Bot Date: Thu, 7 May 2020 23:56:14 -0700 Subject: [PATCH] Cherry-pick PR #38377 into release-3.9 (#38386) Component commits: 4baff1b241 moveToNewFile: handle namespace imports too Fixes #35591 Co-authored-by: Eli Barzilay --- src/services/refactors/moveToNewFile.ts | 1 + .../fourslash/moveToNewFile_moveNamedImport.ts | 18 ++++++++++++++++++ .../moveToNewFile_moveNamespaceImport.ts | 18 ++++++++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 tests/cases/fourslash/moveToNewFile_moveNamedImport.ts create mode 100644 tests/cases/fourslash/moveToNewFile_moveNamespaceImport.ts diff --git a/src/services/refactors/moveToNewFile.ts b/src/services/refactors/moveToNewFile.ts index 6a9e8df6bd7..e714315f313 100644 --- a/src/services/refactors/moveToNewFile.ts +++ b/src/services/refactors/moveToNewFile.ts @@ -533,6 +533,7 @@ namespace ts.refactor { case SyntaxKind.ImportEqualsDeclaration: case SyntaxKind.ImportSpecifier: case SyntaxKind.ImportClause: + case SyntaxKind.NamespaceImport: return true; case SyntaxKind.VariableDeclaration: return isVariableDeclarationInImport(decl as VariableDeclaration); diff --git a/tests/cases/fourslash/moveToNewFile_moveNamedImport.ts b/tests/cases/fourslash/moveToNewFile_moveNamedImport.ts new file mode 100644 index 00000000000..63100d05f93 --- /dev/null +++ b/tests/cases/fourslash/moveToNewFile_moveNamedImport.ts @@ -0,0 +1,18 @@ +/// + +// @Filename: /a.ts +////import { foo as oFoo } from './other'; +////[|export const x = oFoo();|] +////export const a = 0; + +verify.moveToNewFile({ + newFileContents: { +"/a.ts": +`export const a = 0;`, + +"/x.ts": +`import { foo as oFoo } from './other'; +export const x = oFoo(); +` + }, +}); diff --git a/tests/cases/fourslash/moveToNewFile_moveNamespaceImport.ts b/tests/cases/fourslash/moveToNewFile_moveNamespaceImport.ts new file mode 100644 index 00000000000..4d5ee7ffbf0 --- /dev/null +++ b/tests/cases/fourslash/moveToNewFile_moveNamespaceImport.ts @@ -0,0 +1,18 @@ +/// + +// @Filename: /a.ts +////import * as o from './other'; +////[|export const x = o.foo();|] +////export const a = 0; + +verify.moveToNewFile({ + newFileContents: { +"/a.ts": +`export const a = 0;`, + +"/x.ts": +`import * as o from './other'; +export const x = o.foo(); +` + }, +});