From ec3e2f7b992c977a276589aec4d8573184559662 Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Tue, 22 Feb 2022 23:11:14 +0300 Subject: [PATCH] FIR. Shadow classifiers from super-type scopes --- .../fir/scopes/impl/AbstractFirUseSiteMemberScope.kt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/AbstractFirUseSiteMemberScope.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/AbstractFirUseSiteMemberScope.kt index b17197f355e..9f84d80873e 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/AbstractFirUseSiteMemberScope.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/AbstractFirUseSiteMemberScope.kt @@ -197,8 +197,14 @@ abstract class AbstractFirUseSiteMemberScope( } override fun processClassifiersByNameWithSubstitution(name: Name, processor: (FirClassifierSymbol<*>, ConeSubstitutor) -> Unit) { - declaredMemberScope.processClassifiersByNameWithSubstitution(name, processor) - supertypeScopeContext.processClassifiersByNameWithSubstitution(name, absentClassifiersFromSupertypes, processor) + var shadowed = false + declaredMemberScope.processClassifiersByNameWithSubstitution(name) { classifier, substitutor -> + shadowed = true + processor(classifier, substitutor) + } + if (!shadowed) { + supertypeScopeContext.processClassifiersByNameWithSubstitution(name, absentClassifiersFromSupertypes, processor) + } } override fun processDeclaredConstructors(processor: (FirConstructorSymbol) -> Unit) {