FIR. Shadow classifiers from super-type scopes

This commit is contained in:
Simon Ogorodnik
2022-02-22 23:11:14 +03:00
committed by Space
parent 5ea1c246d7
commit ec3e2f7b99
@@ -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) {