From 1a9179a52384d73efcff7b48cac70fee91743a72 Mon Sep 17 00:00:00 2001 From: Andy Hanson Date: Fri, 20 Oct 2017 15:26:46 -0700 Subject: [PATCH] For @types installing quickfix, only activate for implicit-any module --- src/services/codefixes/fixCannotFindModule.ts | 1 - tests/cases/fourslash/codeFixCannotFindModule.ts | 11 ++++++++++- .../fourslash/codeFixCannotFindModule_notIfMissing.ts | 11 +++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 tests/cases/fourslash/codeFixCannotFindModule_notIfMissing.ts diff --git a/src/services/codefixes/fixCannotFindModule.ts b/src/services/codefixes/fixCannotFindModule.ts index b7fde9d917ef9..c15ca341cb428 100644 --- a/src/services/codefixes/fixCannotFindModule.ts +++ b/src/services/codefixes/fixCannotFindModule.ts @@ -2,7 +2,6 @@ namespace ts.codefix { registerCodeFix({ errorCodes: [ - Diagnostics.Cannot_find_module_0.code, Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type.code, ], getCodeActions: context => { diff --git a/tests/cases/fourslash/codeFixCannotFindModule.ts b/tests/cases/fourslash/codeFixCannotFindModule.ts index 96e5c201644d1..d0ace09909ef8 100644 --- a/tests/cases/fourslash/codeFixCannotFindModule.ts +++ b/tests/cases/fourslash/codeFixCannotFindModule.ts @@ -1,11 +1,20 @@ /// -////import * as abs from "abs"; +// @moduleResolution: node +// @noImplicitAny: true + +// @Filename: /node_modules/abs/index.js +////not read + +// @Filename: /a.ts +/////**/import * as abs from "abs"; test.setTypesRegistry({ "abs": undefined, }); +goTo.marker(); + verify.codeFixAvailable([{ description: "Install '@types/abs'", commands: [{ diff --git a/tests/cases/fourslash/codeFixCannotFindModule_notIfMissing.ts b/tests/cases/fourslash/codeFixCannotFindModule_notIfMissing.ts new file mode 100644 index 0000000000000..f446c643542fb --- /dev/null +++ b/tests/cases/fourslash/codeFixCannotFindModule_notIfMissing.ts @@ -0,0 +1,11 @@ +/// + +// @Filename: /a.ts +////import * as abs from "abs"; + +test.setTypesRegistry({ + "abs": undefined, +}); + +// We only give the fix for an implicit-any module, not for a missing module. +verify.not.codeFixAvailable();