From 8795b75390ae57ff78b2f54db57ce01b64feed8f Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Wed, 7 Feb 2018 15:36:12 -0800 Subject: [PATCH] Fix #21641, Add indirect location for default imports for synthetic defaults (#21703) (#21746) --- src/services/importTracker.ts | 5 +++++ .../fourslash/esModuleInteropFindAllReferences.ts | 12 ++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 tests/cases/fourslash/esModuleInteropFindAllReferences.ts diff --git a/src/services/importTracker.ts b/src/services/importTracker.ts index d2ce802f177..faeb832350e 100644 --- a/src/services/importTracker.ts +++ b/src/services/importTracker.ts @@ -107,6 +107,11 @@ namespace ts.FindAllReferences { if (namedBindings && namedBindings.kind === SyntaxKind.NamespaceImport) { handleNamespaceImport(direct, namedBindings.name); } + else if (isDefaultImport(direct)) { + const sourceFileLike = getSourceFileLikeForImportDeclaration(direct); + addIndirectUser(sourceFileLike); // Add a check for indirect uses to handle synthetic default imports + directImports.push(direct); + } else { directImports.push(direct); } diff --git a/tests/cases/fourslash/esModuleInteropFindAllReferences.ts b/tests/cases/fourslash/esModuleInteropFindAllReferences.ts new file mode 100644 index 00000000000..9ead793a867 --- /dev/null +++ b/tests/cases/fourslash/esModuleInteropFindAllReferences.ts @@ -0,0 +1,12 @@ +// @esModuleInterop: true + +// @Filename: /abc.d.ts +////declare module "a" { +//// export const [|x|]: number; +////} + +// @Filename: /b.ts +////import * as a from "a"; +////a.[|x|]; + +verify.rangesReferenceEachOther(); \ No newline at end of file