From 9ed608b439cfeb80cba9f0cfc060c9a2f84a1955 Mon Sep 17 00:00:00 2001 From: Oleksandr T Date: Tue, 27 Oct 2020 22:22:02 +0200 Subject: [PATCH] fix(41244): ignore synthesized imports (#41267) --- src/services/utilities.ts | 4 +++- ...tFixes_quotePreferenceDouble_importHelpers.ts | 16 ++++++++++++++++ ...tFixes_quotePreferenceSingle_importHelpers.ts | 16 ++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 tests/cases/fourslash/importFixes_quotePreferenceDouble_importHelpers.ts create mode 100644 tests/cases/fourslash/importFixes_quotePreferenceSingle_importHelpers.ts diff --git a/src/services/utilities.ts b/src/services/utilities.ts index 264cad7e557..d63e21d476f 100644 --- a/src/services/utilities.ts +++ b/src/services/utilities.ts @@ -1827,7 +1827,9 @@ namespace ts { return preferences.quotePreference === "single" ? QuotePreference.Single : QuotePreference.Double; } else { - const firstModuleSpecifier = sourceFile.imports && find(sourceFile.imports, isStringLiteral); + // ignore synthetic import added when importHelpers: true + const firstModuleSpecifier = sourceFile.imports && + find(sourceFile.imports, n => isStringLiteral(n) && !nodeIsSynthesized(n.parent)) as StringLiteral; return firstModuleSpecifier ? quotePreferenceFromString(firstModuleSpecifier, sourceFile) : QuotePreference.Double; } } diff --git a/tests/cases/fourslash/importFixes_quotePreferenceDouble_importHelpers.ts b/tests/cases/fourslash/importFixes_quotePreferenceDouble_importHelpers.ts new file mode 100644 index 00000000000..9dec6b13adc --- /dev/null +++ b/tests/cases/fourslash/importFixes_quotePreferenceDouble_importHelpers.ts @@ -0,0 +1,16 @@ +/// + +// @importHelpers: true +// @filename: /a.ts +////export default () => {}; + +// @filename: /b.ts +////export default () => {}; + +// @filename: /test.ts +////import a from "./a"; +////[|b|]; + +goTo.file("/test.ts"); +verify.importFixAtPosition([`import b from "./b"; +b`]); diff --git a/tests/cases/fourslash/importFixes_quotePreferenceSingle_importHelpers.ts b/tests/cases/fourslash/importFixes_quotePreferenceSingle_importHelpers.ts new file mode 100644 index 00000000000..a8097f6a841 --- /dev/null +++ b/tests/cases/fourslash/importFixes_quotePreferenceSingle_importHelpers.ts @@ -0,0 +1,16 @@ +/// + +// @importHelpers: true +// @filename: /a.ts +////export default () => {}; + +// @filename: /b.ts +////export default () => {}; + +// @filename: /test.ts +////import a from './a'; +////[|b|]; + +goTo.file("/test.ts"); +verify.importFixAtPosition([`import b from './b'; +b`]);