[LL API] Refactoring, replace a 'Pair' with a 'ContextKey' data class

This commit is contained in:
Yan Zhulanow
2023-07-31 20:22:32 +09:00
committed by Space Team
parent 8a5cab6831
commit 4fa2a24118
@@ -78,8 +78,11 @@ private class ContextCollectorVisitor(
private val filter: (PsiElement) -> FilterResponse, private val filter: (PsiElement) -> FilterResponse,
private val interceptor: () -> FirElement? private val interceptor: () -> FirElement?
) : FirDefaultVisitorVoid() { ) : FirDefaultVisitorVoid() {
private data class ContextKey(val element: PsiElement, val kind: ContextKind)
operator fun get(element: PsiElement, kind: ContextKind): Context? { operator fun get(element: PsiElement, kind: ContextKind): Context? {
return result[element to kind] val key = ContextKey(element, kind)
return result[key]
} }
private val session: FirSession private val session: FirSession
@@ -94,7 +97,7 @@ private class ContextCollectorVisitor(
private var smartCasts: PersistentMap<FirBasedSymbol<*>, Set<ConeKotlinType>> = persistentHashMapOf() private var smartCasts: PersistentMap<FirBasedSymbol<*>, Set<ConeKotlinType>> = persistentHashMapOf()
private val result = HashMap<Pair<PsiElement, ContextKind>, Context>() private val result = HashMap<ContextKey, Context>()
fun processTarget(target: LLFirResolveTarget) { fun processTarget(target: LLFirResolveTarget) {
target.firFile.accept(this) target.firFile.accept(this)
@@ -115,7 +118,7 @@ private class ContextCollectorVisitor(
return return
} }
val key = Pair(psi, kind) val key = ContextKey(psi, kind)
if (key in result) { if (key in result) {
return return
} }