From f916e38015648a412bc90c748dd08a5ef106a48a Mon Sep 17 00:00:00 2001 From: Andy Date: Mon, 23 Oct 2017 13:36:36 -0700 Subject: [PATCH] For @types installing quickfix, only activate for implicit-any module (#19394) --- 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 b7fde9d917e..c15ca341cb4 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 96e5c201644..d0ace09909e 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 00000000000..f446c643542 --- /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();