mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-23 07:07:09 -05:00
Correctly use ownMap from module resolution cache (#43986)
* Test showing the moduleResolutionCache reset issue with tsc --b --w * Fix incorrect usage of ownMap by making it function returning ownMap instead of constant value
This commit is contained in:
@@ -504,7 +504,7 @@ namespace ts {
|
||||
|
||||
/*@internal*/
|
||||
export interface CacheWithRedirects<T> {
|
||||
ownMap: ESMap<string, T>;
|
||||
getOwnMap: () => ESMap<string, T>;
|
||||
redirectsMap: ESMap<Path, ESMap<string, T>>;
|
||||
getOrCreateMapOfCacheRedirects(redirectedReference: ResolvedProjectReference | undefined): ESMap<string, T>;
|
||||
clear(): void;
|
||||
@@ -517,7 +517,7 @@ namespace ts {
|
||||
let ownMap: ESMap<string, T> = new Map();
|
||||
const redirectsMap = new Map<Path, ESMap<string, T>>();
|
||||
return {
|
||||
ownMap,
|
||||
getOwnMap,
|
||||
redirectsMap,
|
||||
getOrCreateMapOfCacheRedirects,
|
||||
clear,
|
||||
@@ -525,6 +525,10 @@ namespace ts {
|
||||
setOwnMap
|
||||
};
|
||||
|
||||
function getOwnMap() {
|
||||
return ownMap;
|
||||
}
|
||||
|
||||
function setOwnOptions(newOptions: CompilerOptions) {
|
||||
options = newOptions;
|
||||
}
|
||||
@@ -586,10 +590,10 @@ namespace ts {
|
||||
if (directoryToModuleNameMap.redirectsMap.size === 0) {
|
||||
// The own map will be for projectCompilerOptions
|
||||
Debug.assert(!moduleNameToDirectoryMap || moduleNameToDirectoryMap.redirectsMap.size === 0);
|
||||
Debug.assert(directoryToModuleNameMap.ownMap.size === 0);
|
||||
Debug.assert(!moduleNameToDirectoryMap || moduleNameToDirectoryMap.ownMap.size === 0);
|
||||
directoryToModuleNameMap.redirectsMap.set(options.configFile.path, directoryToModuleNameMap.ownMap);
|
||||
moduleNameToDirectoryMap?.redirectsMap.set(options.configFile.path, moduleNameToDirectoryMap.ownMap);
|
||||
Debug.assert(directoryToModuleNameMap.getOwnMap().size === 0);
|
||||
Debug.assert(!moduleNameToDirectoryMap || moduleNameToDirectoryMap.getOwnMap().size === 0);
|
||||
directoryToModuleNameMap.redirectsMap.set(options.configFile.path, directoryToModuleNameMap.getOwnMap());
|
||||
moduleNameToDirectoryMap?.redirectsMap.set(options.configFile.path, moduleNameToDirectoryMap.getOwnMap());
|
||||
}
|
||||
else {
|
||||
// Set correct own map
|
||||
|
||||
Reference in New Issue
Block a user