From c435179450ea15e5608b70d76170c4a510091056 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Tue, 22 May 2018 17:10:56 -0700 Subject: [PATCH] Fix getter of local symbol for export= when it is json module Fixes #24341 --- src/services/importTracker.ts | 3 +++ .../fourslash/findAllReferencesOfJsonModule.ts | 14 ++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 tests/cases/fourslash/findAllReferencesOfJsonModule.ts diff --git a/src/services/importTracker.ts b/src/services/importTracker.ts index 4f9836dfdf641..9bff852ac5924 100644 --- a/src/services/importTracker.ts +++ b/src/services/importTracker.ts @@ -578,6 +578,9 @@ namespace ts.FindAllReferences { else if (isBinaryExpression(decl)) { // `module.exports = class {}` return Debug.assertDefined(decl.right.symbol); } + else if (isSourceFile(decl)) { // json module + return Debug.assertDefined(decl.symbol); + } return Debug.fail(); } diff --git a/tests/cases/fourslash/findAllReferencesOfJsonModule.ts b/tests/cases/fourslash/findAllReferencesOfJsonModule.ts new file mode 100644 index 0000000000000..36f700b09e6c2 --- /dev/null +++ b/tests/cases/fourslash/findAllReferencesOfJsonModule.ts @@ -0,0 +1,14 @@ +/// + +// @resolveJsonModule: true +// @module: commonjs +// @esModuleInterop: true + +// @Filename: /foo.ts +////import [|{| "isWriteAccess": true, "isDefinition": true |}settings|] from "./settings.json"; +////[|settings|]; + +// @Filename: /settings.json +//// {} + +verify.singleReferenceGroup("import settings");