K2: prevent infinite recursion in findJavaSuperClass #KT-55078 Fixed
This commit is contained in:
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.scopes.scopeForSupertype
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.constructClassLikeType
|
import org.jetbrains.kotlin.fir.types.constructClassLikeType
|
||||||
|
import org.jetbrains.kotlin.fir.types.isAny
|
||||||
import org.jetbrains.kotlin.name.StandardClassIds
|
import org.jetbrains.kotlin.name.StandardClassIds
|
||||||
import org.jetbrains.kotlin.utils.DFS
|
import org.jetbrains.kotlin.utils.DFS
|
||||||
|
|
||||||
@@ -157,6 +158,7 @@ object JavaScopeProvider : FirScopeProvider() {
|
|||||||
|
|
||||||
private tailrec fun FirRegularClass.findJavaSuperClass(useSiteSession: FirSession): FirRegularClass? {
|
private tailrec fun FirRegularClass.findJavaSuperClass(useSiteSession: FirSession): FirRegularClass? {
|
||||||
val superClass = superConeTypes.firstNotNullOfOrNull {
|
val superClass = superConeTypes.firstNotNullOfOrNull {
|
||||||
|
if (it.isAny) return@firstNotNullOfOrNull null
|
||||||
(it.lookupTag.toSymbol(useSiteSession)?.fir as? FirRegularClass)?.takeIf { superClass ->
|
(it.lookupTag.toSymbol(useSiteSession)?.fir as? FirRegularClass)?.takeIf { superClass ->
|
||||||
superClass.classKind == ClassKind.CLASS
|
superClass.classKind == ClassKind.CLASS
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user