[K2/N] KT-57918: Support typealiases in FirClassSymbol<*>.selfOrAnySuperClass()

Merge-request: KT-MR-9529
Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
This commit is contained in:
Vladimir Sukharev
2023-04-11 19:48:07 +00:00
committed by Space Team
parent 98aca55a2a
commit 82589f2506
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.fir.scopes.processAllFunctions
import org.jetbrains.kotlin.fir.scopes.scopeForClass
import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope
import org.jetbrains.kotlin.fir.symbols.SymbolInternals
import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
import org.jetbrains.kotlin.fir.types.classId
@@ -131,7 +132,11 @@ private fun FirClassSymbol<*>.isObjCClass(session: FirSession) = classId.package
private fun FirClassSymbol<*>.selfOrAnySuperClass(session: FirSession, pred: (FirClassSymbol<*>) -> Boolean): Boolean =
DFS.ifAny(
listOf(this),
{ current -> current.resolvedSuperTypes.mapNotNull { it.classId?.toSymbol(session) as? FirClassSymbol } },
{ current ->
current.resolvedSuperTypes.mapNotNull {
(it.classId?.toSymbol(session) as? FirClassLikeSymbol)?.fullyExpandedClass(session)
}
},
pred
)