diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 2639be7f16c..e772c2f0057 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -25929,7 +25929,7 @@ namespace ts { // populate reverse mapping: file path -> type reference directive that was resolved to this file fileToDirective = createMap(); resolvedTypeReferenceDirectives.forEach((resolvedDirective, key) => { - if (!resolvedDirective) { + if (!resolvedDirective || !resolvedDirective.resolvedFileName) { return; } const file = host.getSourceFile(resolvedDirective.resolvedFileName); diff --git a/src/compiler/moduleNameResolver.ts b/src/compiler/moduleNameResolver.ts index e9f73e9ebfe..a203b2bfaba 100644 --- a/src/compiler/moduleNameResolver.ts +++ b/src/compiler/moduleNameResolver.ts @@ -794,6 +794,7 @@ namespace ts { if (traceEnabled) { trace(host, Diagnostics.Resolving_real_path_for_0_result_1, path, real); } + Debug.assert(host.fileExists(real), `${path} linked to nonexistent file ${real}`); // tslint:disable-line return real; } diff --git a/src/compiler/types.ts b/src/compiler/types.ts index d7f14f729f2..801d44e2012 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -2779,7 +2779,7 @@ namespace ts { getCompilerOptions(): CompilerOptions; getSourceFiles(): ReadonlyArray; - getSourceFile(fileName: string): SourceFile; + getSourceFile(fileName: string): SourceFile | undefined; getResolvedTypeReferenceDirectives(): ReadonlyMap; }