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 {
private val stdlibCache = project.cacheInvalidatingOnRootModifications {
ConcurrentHashMap<LibraryInfo, Boolean>()
}
private val stdlibCache
get() = project.cacheInvalidatingOnRootModifications {
ConcurrentHashMap<LibraryInfo, Boolean>()
}
private val stdlibDependencyCache = project.cacheInvalidatingOnRootModifications {
ConcurrentHashMap<LibraryInfo, Boolean>()
}
private val stdlibDependencyCache
get() = project.cacheInvalidatingOnRootModifications {
ConcurrentHashMap<LibraryInfo, Boolean>()
}
private class LibraryScope(
project: Project,
@@ -65,14 +65,13 @@ class ResolutionAnchorCacheServiceImpl(val project: Project) :
object ResolutionAnchorMappingCacheKey
object ResolutionAnchorDependenciesCacheKey
override val resolutionAnchorsForLibraries: Map<LibraryInfo, ModuleSourceInfo> by lazy {
project.cacheByClassInvalidatingOnRootModifications(ResolutionAnchorMappingCacheKey::class.java) {
override val resolutionAnchorsForLibraries: Map<LibraryInfo, ModuleSourceInfo>
get() = project.cacheByClassInvalidatingOnRootModifications(ResolutionAnchorMappingCacheKey::class.java) {
mapResolutionAnchorForLibraries()
}
}
private val resolutionAnchorDependenciesCache: MutableMap<LibraryInfo, Set<ModuleSourceInfo>> =
project.cacheByClassInvalidatingOnRootModifications(ResolutionAnchorDependenciesCacheKey::class.java) {
private val resolutionAnchorDependenciesCache: MutableMap<LibraryInfo, Set<ModuleSourceInfo>>
get() = project.cacheByClassInvalidatingOnRootModifications(ResolutionAnchorDependenciesCacheKey::class.java) {
ContainerUtil.createConcurrentWeakMap()
}