K2: prevent infinite recursion in findJavaSuperClass #KT-55078 Fixed

This commit is contained in:
Mikhail Glukhikh
2023-05-10 15:37:39 +02:00
committed by Space Team
parent 352fd5356e
commit 36d6e6dd06
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.fir.scopes.impl.*
import org.jetbrains.kotlin.fir.scopes.scopeForSupertype
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
import org.jetbrains.kotlin.fir.types.constructClassLikeType
import org.jetbrains.kotlin.fir.types.isAny
import org.jetbrains.kotlin.name.StandardClassIds
import org.jetbrains.kotlin.utils.DFS
@@ -157,6 +158,7 @@ object JavaScopeProvider : FirScopeProvider() {
private tailrec fun FirRegularClass.findJavaSuperClass(useSiteSession: FirSession): FirRegularClass? {
val superClass = superConeTypes.firstNotNullOfOrNull {
if (it.isAny) return@firstNotNullOfOrNull null
(it.lookupTag.toSymbol(useSiteSession)?.fir as? FirRegularClass)?.takeIf { superClass ->
superClass.classKind == ClassKind.CLASS
}