diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/KotlinDeserializedJvmSymbolsProvider.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/KotlinDeserializedJvmSymbolsProvider.kt index 12d14b57009..ab7f0ab23d0 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/KotlinDeserializedJvmSymbolsProvider.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/deserialization/KotlinDeserializedJvmSymbolsProvider.kt @@ -51,7 +51,7 @@ class KotlinDeserializedJvmSymbolsProvider( ) : FirSymbolProvider(session) { private val annotationsLoader = AnnotationsLoader(session) private val typeAliasCache = session.firCachesFactory.createCache(::findAndDeserializeTypeAlias) - private val packagePartsCache = SymbolProviderCache>() + private val packagePartsCache = session.firCachesFactory.createCache(::tryComputePackagePartInfos) private val classCache = session.firCachesFactory.createCacheWithPostCompute( @@ -262,13 +262,15 @@ class KotlinDeserializedJvmSymbolsProvider( } private fun getPackageParts(packageFqName: FqName): Collection { - return packagePartsCache.lookupCacheOrCalculate(packageFqName) { - try { - computePackagePartsInfos(packageFqName) - } catch (e: ProcessCanceledException) { - emptyList() - } - }!! + return packagePartsCache.getValue(packageFqName) + } + + private fun tryComputePackagePartInfos(packageFqName: FqName): List { + return try { + computePackagePartsInfos(packageFqName) + } catch (e: ProcessCanceledException) { + emptyList() + } } override fun getPackage(fqName: FqName): FqName? = null