From 7a69f13fd64620537662532e267a1f1c4e0549ae Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Fri, 14 Jul 2023 09:29:24 +0200 Subject: [PATCH] K2: use unsubstituted scope to search for equals in FirDataFlowAnalyzer #KT-60436 Fixed --- .../kotlin/fir/resolve/dfa/FirDataFlowAnalyzer.kt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/FirDataFlowAnalyzer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/FirDataFlowAnalyzer.kt index b866654c6b6..f5696400806 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/FirDataFlowAnalyzer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/FirDataFlowAnalyzer.kt @@ -28,8 +28,8 @@ import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirAbstractBod import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.resultType import org.jetbrains.kotlin.fir.resolve.transformers.unwrapAnonymousFunctionExpression import org.jetbrains.kotlin.fir.scopes.getFunctions -import org.jetbrains.kotlin.fir.scopes.impl.declaredMemberScope import org.jetbrains.kotlin.fir.scopes.impl.toConeType +import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.types.* @@ -534,9 +534,12 @@ abstract class FirDataFlowAnalyzer( // return true // } - return session.declaredMemberScope(this, memberRequiredPhase = FirResolvePhase.STATUS) - .getFunctions(OperatorNameConventions.EQUALS) - .any { it.fir.isEquals(session) } + return this.unsubstitutedScope( + session, components.scopeSession, withForcedTypeCalculator = false, memberRequiredPhase = FirResolvePhase.STATUS + ).getFunctions(OperatorNameConventions.EQUALS).any { + !it.isSubstitutionOrIntersectionOverride && it.fir.isEquals(session) && + it.dispatchReceiverClassLookupTagOrNull() == this.toLookupTag() + } } // ----------------------------------- Jump -----------------------------------