diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/ContextCollector.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/ContextCollector.kt index 78da3bc8296..345f164cf6f 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/ContextCollector.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/ContextCollector.kt @@ -78,8 +78,11 @@ private class ContextCollectorVisitor( private val filter: (PsiElement) -> FilterResponse, private val interceptor: () -> FirElement? ) : FirDefaultVisitorVoid() { + private data class ContextKey(val element: PsiElement, val kind: ContextKind) + 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 @@ -94,7 +97,7 @@ private class ContextCollectorVisitor( private var smartCasts: PersistentMap, Set> = persistentHashMapOf() - private val result = HashMap, Context>() + private val result = HashMap() fun processTarget(target: LLFirResolveTarget) { target.firFile.accept(this) @@ -115,7 +118,7 @@ private class ContextCollectorVisitor( return } - val key = Pair(psi, kind) + val key = ContextKey(psi, kind) if (key in result) { return }