@@ -8,7 +8,7 @@ namespace ts {
88 startRecordingFilesWithChangedResolutions ( ) : void ;
99 finishRecordingFilesWithChangedResolutions ( ) : Path [ ] ;
1010
11- resolveModuleNames ( moduleNames : string [ ] , containingFile : string , logChanges : boolean ) : ResolvedModuleFull [ ] ;
11+ resolveModuleNames ( moduleNames : string [ ] , containingFile : string , reusedNames : string [ ] | undefined , logChanges : boolean ) : ResolvedModuleFull [ ] ;
1212 resolveTypeReferenceDirectives ( typeDirectiveNames : string [ ] , containingFile : string ) : ResolvedTypeReferenceDirective [ ] ;
1313
1414 invalidateResolutionOfFile ( filePath : Path ) : void ;
@@ -207,6 +207,7 @@ namespace ts {
207207 perDirectoryCache : Map < Map < T > > ,
208208 loader : ( name : string , containingFile : string , options : CompilerOptions , host : ModuleResolutionHost ) => T ,
209209 getResolutionWithResolvedFileName : GetResolutionWithResolvedFileName < T , R > ,
210+ reusedNames : string [ ] | undefined ,
210211 logChanges : boolean ) : R [ ] {
211212
212213 const path = resolutionHost . toPath ( containingFile ) ;
@@ -253,7 +254,7 @@ namespace ts {
253254
254255 // Stop watching and remove the unused name
255256 resolutionsInFile . forEach ( ( resolution , name ) => {
256- if ( ! seenNamesInFile . has ( name ) ) {
257+ if ( ! seenNamesInFile . has ( name ) && ! contains ( reusedNames , name ) ) {
257258 stopWatchFailedLookupLocationOfResolution ( resolution ) ;
258259 resolutionsInFile . delete ( name ) ;
259260 }
@@ -285,16 +286,16 @@ namespace ts {
285286 typeDirectiveNames , containingFile ,
286287 resolvedTypeReferenceDirectives , perDirectoryResolvedTypeReferenceDirectives ,
287288 resolveTypeReferenceDirective , getResolvedTypeReferenceDirective ,
288- /*logChanges*/ false
289+ /*reusedNames*/ undefined , /* logChanges*/ false
289290 ) ;
290291 }
291292
292- function resolveModuleNames ( moduleNames : string [ ] , containingFile : string , logChanges : boolean ) : ResolvedModuleFull [ ] {
293+ function resolveModuleNames ( moduleNames : string [ ] , containingFile : string , reusedNames : string [ ] | undefined , logChanges : boolean ) : ResolvedModuleFull [ ] {
293294 return resolveNamesWithLocalCache (
294295 moduleNames , containingFile ,
295296 resolvedModuleNames , perDirectoryResolvedModuleNames ,
296297 resolveModuleName , getResolvedModule ,
297- logChanges
298+ reusedNames , logChanges
298299 ) ;
299300 }
300301
0 commit comments