@@ -447,7 +447,7 @@ namespace ts {
447
447
let moduleResolutionCache : ModuleResolutionCache ;
448
448
let resolveModuleNamesWorker : ( moduleNames : string [ ] , containingFile : string ) => ResolvedModuleFull [ ] ;
449
449
if ( host . resolveModuleNames ) {
450
- resolveModuleNamesWorker = ( moduleNames , containingFile ) => host . resolveModuleNames ( moduleNames , containingFile ) . map ( resolved => {
450
+ resolveModuleNamesWorker = ( moduleNames , containingFile ) => host . resolveModuleNames ( checkAllDefined ( moduleNames ) , containingFile ) . map ( resolved => {
451
451
// An older host may have omitted extension, in which case we should infer it from the file extension of resolvedFileName.
452
452
if ( ! resolved || ( resolved as ResolvedModuleFull ) . extension !== undefined ) {
453
453
return resolved as ResolvedModuleFull ;
@@ -460,16 +460,16 @@ namespace ts {
460
460
else {
461
461
moduleResolutionCache = createModuleResolutionCache ( currentDirectory , x => host . getCanonicalFileName ( x ) ) ;
462
462
const loader = ( moduleName : string , containingFile : string ) => resolveModuleName ( moduleName , containingFile , options , host , moduleResolutionCache ) . resolvedModule ;
463
- resolveModuleNamesWorker = ( moduleNames , containingFile ) => loadWithLocalCache ( moduleNames , containingFile , loader ) ;
463
+ resolveModuleNamesWorker = ( moduleNames , containingFile ) => loadWithLocalCache ( checkAllDefined ( moduleNames ) , containingFile , loader ) ;
464
464
}
465
465
466
466
let resolveTypeReferenceDirectiveNamesWorker : ( typeDirectiveNames : string [ ] , containingFile : string ) => ResolvedTypeReferenceDirective [ ] ;
467
467
if ( host . resolveTypeReferenceDirectives ) {
468
- resolveTypeReferenceDirectiveNamesWorker = ( typeDirectiveNames , containingFile ) => host . resolveTypeReferenceDirectives ( typeDirectiveNames , containingFile ) ;
468
+ resolveTypeReferenceDirectiveNamesWorker = ( typeDirectiveNames , containingFile ) => host . resolveTypeReferenceDirectives ( checkAllDefined ( typeDirectiveNames ) , containingFile ) ;
469
469
}
470
470
else {
471
471
const loader = ( typesRef : string , containingFile : string ) => resolveTypeReferenceDirective ( typesRef , containingFile , options , host ) . resolvedTypeReferenceDirective ;
472
- resolveTypeReferenceDirectiveNamesWorker = ( typeReferenceDirectiveNames , containingFile ) => loadWithLocalCache ( typeReferenceDirectiveNames , containingFile , loader ) ;
472
+ resolveTypeReferenceDirectiveNamesWorker = ( typeReferenceDirectiveNames , containingFile ) => loadWithLocalCache ( checkAllDefined ( typeReferenceDirectiveNames ) , containingFile , loader ) ;
473
473
}
474
474
475
475
const filesByName = createMap < SourceFile | undefined > ( ) ;
@@ -2127,4 +2127,9 @@ namespace ts {
2127
2127
return options . allowJs ? undefined : Diagnostics . Module_0_was_resolved_to_1_but_allowJs_is_not_set ;
2128
2128
}
2129
2129
}
2130
+
2131
+ function checkAllDefined ( names : string [ ] ) : string [ ] {
2132
+ Debug . assert ( names . every ( name => name !== undefined ) , "A name is undefined." , ( ) => JSON . stringify ( names ) ) ;
2133
+ return names ;
2134
+ }
2130
2135
}
0 commit comments