From 7f6543c1cd2bc60ccc5d5b7cd0922bf8fd6b38bd Mon Sep 17 00:00:00 2001 From: Andrew Branch Date: Wed, 14 Aug 2019 14:17:29 -0700 Subject: [PATCH] Fix export=global auto import exclusion --- src/services/completions.ts | 2 +- .../completionsImport_exportEquals_global.ts | 31 +++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 tests/cases/fourslash/completionsImport_exportEquals_global.ts diff --git a/src/services/completions.ts b/src/services/completions.ts index bf7ff041f2d2d..c7ea7b5a40e71 100644 --- a/src/services/completions.ts +++ b/src/services/completions.ts @@ -1289,7 +1289,7 @@ namespace ts.Completions { if (resolvedModuleSymbol !== moduleSymbol && // Don't add another completion for `export =` of a symbol that's already global. // So in `declare namespace foo {} declare module "foo" { export = foo; }`, there will just be the global completion for `foo`. - some(resolvedModuleSymbol.declarations, d => !!d.getSourceFile().externalModuleIndicator)) { + every(resolvedModuleSymbol.declarations, d => !!d.getSourceFile().externalModuleIndicator)) { symbols.push(resolvedModuleSymbol); symbolToSortTextMap[getSymbolId(resolvedModuleSymbol)] = SortText.AutoImportSuggestions; symbolToOriginInfoMap[getSymbolId(resolvedModuleSymbol)] = { kind: SymbolOriginInfoKind.Export, moduleSymbol, isDefaultExport: false }; diff --git a/tests/cases/fourslash/completionsImport_exportEquals_global.ts b/tests/cases/fourslash/completionsImport_exportEquals_global.ts new file mode 100644 index 0000000000000..7e11b169579fa --- /dev/null +++ b/tests/cases/fourslash/completionsImport_exportEquals_global.ts @@ -0,0 +1,31 @@ +/// + +// @module: es6 + +// @Filename: /console.d.ts +////interface Console {} +////declare var console: Console; +////declare module "console" { +//// export = console; +////} + +// @Filename: /react-native.d.ts +//// import 'console'; +////declare global { +//// interface Console {} +//// var console: Console; +////} + +// @Filename: /a.ts +////conso/**/ + +verify.completions({ + exact: completion.globalsPlus([{ + hasAction: undefined, // asserts that it does *not* have an action + name: "console" + }]), + preferences: { + includeCompletionsForModuleExports: true, + includeInsertTextCompletions: true + } +});