Skip to content

Commit 6bb1ff2

Browse files
authored
Merge pull request microsoft#27376 from Microsoft/codeFixCannotFindModule_suggestion_falsePositive
Don't implicit-any diagnostic for json module
2 parents 642803c + 7b1388b commit 6bb1ff2

File tree

3 files changed

+19
-2
lines changed

3 files changed

+19
-2
lines changed

src/compiler/checker.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2270,7 +2270,7 @@ namespace ts {
22702270
const sourceFile = resolvedModule && !resolutionDiagnostic && host.getSourceFile(resolvedModule.resolvedFileName);
22712271
if (sourceFile) {
22722272
if (sourceFile.symbol) {
2273-
if (resolvedModule.isExternalLibraryImport && !extensionIsTS(resolvedModule.extension)) {
2273+
if (resolvedModule.isExternalLibraryImport && !resolutionExtensionIsTSOrJson(resolvedModule.extension)) {
22742274
errorOnImplicitAnyModule(/*isError*/ false, errorNode, resolvedModule, moduleReference);
22752275
}
22762276
// merged symbol is module declaration symbol combined with all augmentations

src/harness/fourslash.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -571,7 +571,8 @@ namespace FourSlash {
571571
public verifyNoErrors() {
572572
ts.forEachKey(this.inputFiles, fileName => {
573573
if (!ts.isAnySupportedFileExtension(fileName)
574-
|| !this.getProgram().getCompilerOptions().allowJs && !ts.extensionIsTS(ts.extensionFromPath(fileName))) return;
574+
|| Harness.getConfigNameFromFileName(fileName)
575+
|| !this.getProgram().getCompilerOptions().allowJs && !ts.resolutionExtensionIsTSOrJson(ts.extensionFromPath(fileName))) return;
575576
const errors = this.getDiagnostics(fileName).filter(e => e.category !== ts.DiagnosticCategory.Suggestion);
576577
if (errors.length) {
577578
this.printErrorLog(/*expectErrors*/ false, errors);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/// <reference path='fourslash.ts' />
2+
3+
// @moduleResolution: node
4+
// @resolveJsonModule: true
5+
// @strict: true
6+
7+
// @Filename: /node_modules/foo/bar.json
8+
////{ "a": 0 }
9+
10+
// @Filename: /a.ts
11+
////import abs = require([|"foo/bar.json"|]);
12+
////abs;
13+
14+
verify.noErrors();
15+
goTo.file("/a.ts");
16+
verify.getSuggestionDiagnostics([]);

0 commit comments

Comments
 (0)