From 36d6e6dd06b640cde4c125ed4d07d10a851ecda0 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Wed, 10 May 2023 15:37:39 +0200 Subject: [PATCH] K2: prevent infinite recursion in findJavaSuperClass #KT-55078 Fixed --- .../java/src/org/jetbrains/kotlin/fir/java/JavaScopeProvider.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaScopeProvider.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaScopeProvider.kt index 3b312408c6d..fa7df34f3a5 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaScopeProvider.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaScopeProvider.kt @@ -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 }