From 3810c2fe6b345f5ab9fb613421f6d68b573ec2e9 Mon Sep 17 00:00:00 2001 From: Andrew Branch Date: Thu, 2 Apr 2020 08:06:19 -0800 Subject: [PATCH] Fix rename for type symbols imported as a different name (#37745) * Add failing test * Fix getMeaningFromLocation for imports * Only the name of an ImportEqualsDeclaration counts * Commit baseline --- src/services/utilities.ts | 6 +++++- .../reference/renameImportSpecifierPropertyName.baseline | 7 +++++++ .../cases/fourslash/renameImportSpecifierPropertyName.ts | 9 +++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 tests/baselines/reference/renameImportSpecifierPropertyName.baseline create mode 100644 tests/cases/fourslash/renameImportSpecifierPropertyName.ts diff --git a/src/services/utilities.ts b/src/services/utilities.ts index 677e79235d7..0850d44c09a 100644 --- a/src/services/utilities.ts +++ b/src/services/utilities.ts @@ -92,7 +92,11 @@ namespace ts { if (node.kind === SyntaxKind.SourceFile) { return SemanticMeaning.Value; } - else if (node.parent.kind === SyntaxKind.ExportAssignment || node.parent.kind === SyntaxKind.ExternalModuleReference) { + else if (node.parent.kind === SyntaxKind.ExportAssignment + || node.parent.kind === SyntaxKind.ExternalModuleReference + || node.parent.kind === SyntaxKind.ImportSpecifier + || node.parent.kind === SyntaxKind.ImportClause + || isImportEqualsDeclaration(node.parent) && node === node.parent.name) { return SemanticMeaning.All; } else if (isInRightSideOfInternalImportEqualsDeclaration(node)) { diff --git a/tests/baselines/reference/renameImportSpecifierPropertyName.baseline b/tests/baselines/reference/renameImportSpecifierPropertyName.baseline new file mode 100644 index 00000000000..495a8f635b8 --- /dev/null +++ b/tests/baselines/reference/renameImportSpecifierPropertyName.baseline @@ -0,0 +1,7 @@ +/*====== /tests/cases/fourslash/canada.ts ======*/ + +export interface [|RENAME|] {} + +/*====== /tests/cases/fourslash/dry.ts ======*/ + +import { RENAME as Ale } from './canada'; diff --git a/tests/cases/fourslash/renameImportSpecifierPropertyName.ts b/tests/cases/fourslash/renameImportSpecifierPropertyName.ts new file mode 100644 index 00000000000..fa4d13929a0 --- /dev/null +++ b/tests/cases/fourslash/renameImportSpecifierPropertyName.ts @@ -0,0 +1,9 @@ +/// + +// @Filename: canada.ts +////export interface /**/Ginger {} + +// @Filename: dry.ts +////import { Ginger as Ale } from './canada'; + +verify.baselineRename("", {});