[FIR] Enhance caches in providers
This commit is contained in:
committed by
Mikhail Glukhikh
parent
f88fafea9d
commit
03c3469a14
+5
-5
@@ -15,12 +15,12 @@ import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
|
||||
abstract class AbstractFirSymbolProvider : FirSymbolProvider() {
|
||||
protected val classCache = mutableMapOf<ClassId, ConeClassLikeSymbol?>()
|
||||
protected val topLevelCallableCache = mutableMapOf<CallableId, List<ConeCallableSymbol>>()
|
||||
protected val packageCache = mutableMapOf<FqName, FqName?>()
|
||||
protected val classCache = HashMap<ClassId, ConeClassLikeSymbol?>()
|
||||
protected val topLevelCallableCache = HashMap<CallableId, List<ConeCallableSymbol>>()
|
||||
protected val packageCache = HashMap<FqName, FqName?>()
|
||||
|
||||
protected inline fun <K, V : Any?> MutableMap<K, V>.lookupCacheOrCalculate(key: K, crossinline l: (K) -> V): V? {
|
||||
return if (key in this.keys) {
|
||||
return if (containsKey(key)) {
|
||||
this[key]
|
||||
} else {
|
||||
val calculated = l(key)
|
||||
@@ -32,7 +32,7 @@ abstract class AbstractFirSymbolProvider : FirSymbolProvider() {
|
||||
protected inline fun <K, V : Any?, T> MutableMap<K, V>.lookupCacheOrCalculateWithPostCompute(
|
||||
key: K, crossinline l: (K) -> Pair<V, T>, postCompute: (V, T) -> Unit
|
||||
): V? {
|
||||
return if (key in this.keys) {
|
||||
return if (containsKey(key)) {
|
||||
this[key]
|
||||
} else {
|
||||
val calculated = l(key)
|
||||
|
||||
Reference in New Issue
Block a user