@@ -447,7 +447,7 @@ namespace ts {
447447 let moduleResolutionCache : ModuleResolutionCache ;
448448 let resolveModuleNamesWorker : ( moduleNames : string [ ] , containingFile : string ) => ResolvedModuleFull [ ] ;
449449 if ( host . resolveModuleNames ) {
450- resolveModuleNamesWorker = ( moduleNames , containingFile ) => host . resolveModuleNames ( moduleNames , containingFile ) . map ( resolved => {
450+ resolveModuleNamesWorker = ( moduleNames , containingFile ) => host . resolveModuleNames ( checkAllDefined ( moduleNames ) , containingFile ) . map ( resolved => {
451451 // An older host may have omitted extension, in which case we should infer it from the file extension of resolvedFileName.
452452 if ( ! resolved || ( resolved as ResolvedModuleFull ) . extension !== undefined ) {
453453 return resolved as ResolvedModuleFull ;
@@ -460,16 +460,16 @@ namespace ts {
460460 else {
461461 moduleResolutionCache = createModuleResolutionCache ( currentDirectory , x => host . getCanonicalFileName ( x ) ) ;
462462 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 ) ;
464464 }
465465
466466 let resolveTypeReferenceDirectiveNamesWorker : ( typeDirectiveNames : string [ ] , containingFile : string ) => ResolvedTypeReferenceDirective [ ] ;
467467 if ( host . resolveTypeReferenceDirectives ) {
468- resolveTypeReferenceDirectiveNamesWorker = ( typeDirectiveNames , containingFile ) => host . resolveTypeReferenceDirectives ( typeDirectiveNames , containingFile ) ;
468+ resolveTypeReferenceDirectiveNamesWorker = ( typeDirectiveNames , containingFile ) => host . resolveTypeReferenceDirectives ( checkAllDefined ( typeDirectiveNames ) , containingFile ) ;
469469 }
470470 else {
471471 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 ) ;
473473 }
474474
475475 const filesByName = createMap < SourceFile | undefined > ( ) ;
@@ -2127,4 +2127,9 @@ namespace ts {
21272127 return options . allowJs ? undefined : Diagnostics . Module_0_was_resolved_to_1_but_allowJs_is_not_set ;
21282128 }
21292129 }
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+ }
21302135}
0 commit comments