Analysis FIR: fix isSubClass check for local classes

This commit is contained in:
Ilya Kirillov
2021-12-31 19:50:01 +03:00
parent 1d6d67d0a1
commit b81316738e
@@ -154,15 +154,15 @@ internal class KtFirSymbolDeclarationOverridesProvider(
if (subClass == superClass) return false
return subClass.firRef.withFirByType(ResolveType.ClassSuperTypes) { subClassFir ->
check(subClassFir is FirRegularClass)
check(subClassFir is FirClass)
superClass.firRef.withFir { superClassFir ->
check(superClassFir is FirRegularClass)
check(superClassFir is FirClass)
isSubClassOf(subClassFir, superClassFir, checkDeep)
}
}
}
private fun isSubClassOf(subClass: FirRegularClass, superClass: FirRegularClass, checkDeep: Boolean): Boolean {
private fun isSubClassOf(subClass: FirClass, superClass: FirClass, checkDeep: Boolean): Boolean {
if (subClass.superConeTypes.any { it.toRegularClassSymbol(rootModuleSession) == superClass.symbol }) return true
if (!checkDeep) return false
subClass.superConeTypes.forEach { superType ->