[FIR] Use proper scope lookup for classifiers

This commit is contained in:
Dmitriy Novozhilov
2023-06-26 14:59:33 +03:00
committed by Space Team
parent 4dafc3b6e6
commit 22b2774ef7
@@ -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)
}