[AA] Don't use a weak-value map in KtFirAnalysisSessionProvider

- The values stored in `CachedValue`s are already soft. We don't gain
  any benefit from making the `CachedValue` a weak reference as well.
This commit is contained in:
Marco Pennekamp
2023-05-24 14:16:11 +02:00
committed by Space Team
parent e76692ef8d
commit 9983abea4c
@@ -11,7 +11,7 @@ import com.intellij.psi.util.CachedValue
import com.intellij.psi.util.CachedValueProvider
import com.intellij.psi.util.CachedValuesManager
import com.intellij.util.CachedValueBase
import com.intellij.util.containers.CollectionFactory
import java.util.concurrent.ConcurrentHashMap
import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
@@ -26,8 +26,7 @@ import kotlin.reflect.KClass
@OptIn(KtAnalysisApiInternals::class)
class KtFirAnalysisSessionProvider(project: Project) : KtAnalysisSessionProvider(project) {
private val cache: ConcurrentMap<Pair<KtModule, KClass<out KtLifetimeToken>>, CachedValue<KtAnalysisSession>> =
CollectionFactory.createConcurrentWeakValueMap()
private val cache: ConcurrentMap<Pair<KtModule, KClass<out KtLifetimeToken>>, CachedValue<KtAnalysisSession>> = ConcurrentHashMap()
init {
LowMemoryWatcher.register(::clearCaches, project)