FIR: use FirCachesFactory for package parts cache in KotlinDeserializedJvmSymbolsProvider
This commit is contained in:
+10
-8
@@ -51,7 +51,7 @@ class KotlinDeserializedJvmSymbolsProvider(
|
|||||||
) : FirSymbolProvider(session) {
|
) : FirSymbolProvider(session) {
|
||||||
private val annotationsLoader = AnnotationsLoader(session)
|
private val annotationsLoader = AnnotationsLoader(session)
|
||||||
private val typeAliasCache = session.firCachesFactory.createCache(::findAndDeserializeTypeAlias)
|
private val typeAliasCache = session.firCachesFactory.createCache(::findAndDeserializeTypeAlias)
|
||||||
private val packagePartsCache = SymbolProviderCache<FqName, Collection<PackagePartsCacheData>>()
|
private val packagePartsCache = session.firCachesFactory.createCache(::tryComputePackagePartInfos)
|
||||||
|
|
||||||
private val classCache =
|
private val classCache =
|
||||||
session.firCachesFactory.createCacheWithPostCompute<ClassId, FirRegularClassSymbol?, FirDeserializationContext?, KotlinClassFinder.Result.KotlinClass?>(
|
session.firCachesFactory.createCacheWithPostCompute<ClassId, FirRegularClassSymbol?, FirDeserializationContext?, KotlinClassFinder.Result.KotlinClass?>(
|
||||||
@@ -262,13 +262,15 @@ class KotlinDeserializedJvmSymbolsProvider(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun getPackageParts(packageFqName: FqName): Collection<PackagePartsCacheData> {
|
private fun getPackageParts(packageFqName: FqName): Collection<PackagePartsCacheData> {
|
||||||
return packagePartsCache.lookupCacheOrCalculate(packageFqName) {
|
return packagePartsCache.getValue(packageFqName)
|
||||||
try {
|
}
|
||||||
computePackagePartsInfos(packageFqName)
|
|
||||||
} catch (e: ProcessCanceledException) {
|
private fun tryComputePackagePartInfos(packageFqName: FqName): List<PackagePartsCacheData> {
|
||||||
emptyList()
|
return try {
|
||||||
}
|
computePackagePartsInfos(packageFqName)
|
||||||
}!!
|
} catch (e: ProcessCanceledException) {
|
||||||
|
emptyList()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getPackage(fqName: FqName): FqName? = null
|
override fun getPackage(fqName: FqName): FqName? = null
|
||||||
|
|||||||
Reference in New Issue
Block a user