Fix: use idea caches correctly

Instead of using value from cache the first created value
was being saved to field and not invalidated later.
This commit is contained in:
Pavel Kirpichenkov
2021-01-21 14:33:07 +03:00
parent 87c6b6bffc
commit 5003738d29
2 changed files with 12 additions and 11 deletions
@@ -40,13 +40,15 @@ interface KotlinStdlibCache {
} }
class KotlinStdlibCacheImpl(val project: Project) : KotlinStdlibCache { class KotlinStdlibCacheImpl(val project: Project) : KotlinStdlibCache {
private val stdlibCache = project.cacheInvalidatingOnRootModifications { private val stdlibCache
ConcurrentHashMap<LibraryInfo, Boolean>() get() = project.cacheInvalidatingOnRootModifications {
} ConcurrentHashMap<LibraryInfo, Boolean>()
}
private val stdlibDependencyCache = project.cacheInvalidatingOnRootModifications { private val stdlibDependencyCache
ConcurrentHashMap<LibraryInfo, Boolean>() get() = project.cacheInvalidatingOnRootModifications {
} ConcurrentHashMap<LibraryInfo, Boolean>()
}
private class LibraryScope( private class LibraryScope(
project: Project, project: Project,
@@ -65,14 +65,13 @@ class ResolutionAnchorCacheServiceImpl(val project: Project) :
object ResolutionAnchorMappingCacheKey object ResolutionAnchorMappingCacheKey
object ResolutionAnchorDependenciesCacheKey object ResolutionAnchorDependenciesCacheKey
override val resolutionAnchorsForLibraries: Map<LibraryInfo, ModuleSourceInfo> by lazy { override val resolutionAnchorsForLibraries: Map<LibraryInfo, ModuleSourceInfo>
project.cacheByClassInvalidatingOnRootModifications(ResolutionAnchorMappingCacheKey::class.java) { get() = project.cacheByClassInvalidatingOnRootModifications(ResolutionAnchorMappingCacheKey::class.java) {
mapResolutionAnchorForLibraries() mapResolutionAnchorForLibraries()
} }
}
private val resolutionAnchorDependenciesCache: MutableMap<LibraryInfo, Set<ModuleSourceInfo>> = private val resolutionAnchorDependenciesCache: MutableMap<LibraryInfo, Set<ModuleSourceInfo>>
project.cacheByClassInvalidatingOnRootModifications(ResolutionAnchorDependenciesCacheKey::class.java) { get() = project.cacheByClassInvalidatingOnRootModifications(ResolutionAnchorDependenciesCacheKey::class.java) {
ContainerUtil.createConcurrentWeakMap() ContainerUtil.createConcurrentWeakMap()
} }