From 5003738d29c78b7ffa6fdcdfd9598e812887de9d Mon Sep 17 00:00:00 2001 From: Pavel Kirpichenkov Date: Thu, 21 Jan 2021 14:33:07 +0300 Subject: [PATCH] Fix: use idea caches correctly Instead of using value from cache the first created value was being saved to field and not invalidated later. --- .../idea/caches/project/KotlinStdlibCache.kt | 14 ++++++++------ .../caches/resolve/ResolutionAnchorCacheService.kt | 9 ++++----- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/KotlinStdlibCache.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/KotlinStdlibCache.kt index dde135a3188..da61c5691c5 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/KotlinStdlibCache.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/KotlinStdlibCache.kt @@ -40,13 +40,15 @@ interface KotlinStdlibCache { } class KotlinStdlibCacheImpl(val project: Project) : KotlinStdlibCache { - private val stdlibCache = project.cacheInvalidatingOnRootModifications { - ConcurrentHashMap() - } + private val stdlibCache + get() = project.cacheInvalidatingOnRootModifications { + ConcurrentHashMap() + } - private val stdlibDependencyCache = project.cacheInvalidatingOnRootModifications { - ConcurrentHashMap() - } + private val stdlibDependencyCache + get() = project.cacheInvalidatingOnRootModifications { + ConcurrentHashMap() + } private class LibraryScope( project: Project, diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ResolutionAnchorCacheService.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ResolutionAnchorCacheService.kt index 0b39cd2f301..7fc139458f6 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ResolutionAnchorCacheService.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ResolutionAnchorCacheService.kt @@ -65,14 +65,13 @@ class ResolutionAnchorCacheServiceImpl(val project: Project) : object ResolutionAnchorMappingCacheKey object ResolutionAnchorDependenciesCacheKey - override val resolutionAnchorsForLibraries: Map by lazy { - project.cacheByClassInvalidatingOnRootModifications(ResolutionAnchorMappingCacheKey::class.java) { + override val resolutionAnchorsForLibraries: Map + get() = project.cacheByClassInvalidatingOnRootModifications(ResolutionAnchorMappingCacheKey::class.java) { mapResolutionAnchorForLibraries() } - } - private val resolutionAnchorDependenciesCache: MutableMap> = - project.cacheByClassInvalidatingOnRootModifications(ResolutionAnchorDependenciesCacheKey::class.java) { + private val resolutionAnchorDependenciesCache: MutableMap> + get() = project.cacheByClassInvalidatingOnRootModifications(ResolutionAnchorDependenciesCacheKey::class.java) { ContainerUtil.createConcurrentWeakMap() }