From 22b2774ef7eb007ab6bc3b3dc25168d1d206f4ad Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Mon, 26 Jun 2023 14:59:33 +0300 Subject: [PATCH] [FIR] Use proper scope lookup for classifiers --- .../mpp/FirExpectActualMatchingContext.kt | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/mpp/FirExpectActualMatchingContext.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/mpp/FirExpectActualMatchingContext.kt index f6bae90a4cf..f9ae3cc207d 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/mpp/FirExpectActualMatchingContext.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/mpp/FirExpectActualMatchingContext.kt @@ -8,7 +8,6 @@ package org.jetbrains.kotlin.fir.resolve.transformers.mpp import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Visibility -import org.jetbrains.kotlin.descriptors.isEnumClass import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.isSubstitutionOrIntersectionOverride @@ -27,7 +26,6 @@ import org.jetbrains.kotlin.types.AbstractTypeChecker import org.jetbrains.kotlin.types.TypeCheckerState import org.jetbrains.kotlin.types.Variance import org.jetbrains.kotlin.types.model.* -import org.jetbrains.kotlin.utils.addIfNotNull import org.jetbrains.kotlin.utils.addToStdlib.UnsafeCastFunction import org.jetbrains.kotlin.utils.addToStdlib.castAll @@ -170,9 +168,13 @@ class FirExpectActualMatchingContext( scope.getMembersTo(this, name) } - // TODO: replace with scope lookup - for (name in symbol.declarationSymbols.mapNotNull { (it as? FirRegularClassSymbol)?.classId?.shortClassName }) { - addIfNotNull(scope.getSingleClassifier(name) as? FirRegularClassSymbol) + for (name in scope.getClassifierNames()) { + scope.processClassifiersByName(name) { + // We should skip nested classes from supertypes here + if (it is FirRegularClassSymbol && it.classId.parentClassId == symbol.classId) { + add(it) + } + } } getConstructorsTo(this, scope) }