FIR IDE: do not search for sealed class inheritors on every class resolve
This commit is contained in:
+1
-1
@@ -86,7 +86,7 @@ class FirSealedClassInheritorsProcessor(
|
||||
if (regularClass.modality == Modality.SEALED) {
|
||||
val inheritors = inheritorsMap.remove(regularClass)
|
||||
if (inheritors != null) {
|
||||
regularClass.sealedInheritors = inheritors
|
||||
regularClass.setSealedClassInheritors(inheritors)
|
||||
}
|
||||
}
|
||||
if (inheritorsMap.isEmpty()) return regularClass.compose()
|
||||
|
||||
+1
-1
@@ -313,7 +313,7 @@ private object WhenOnSealedClassExhaustivenessChecker : WhenExhaustivenessChecke
|
||||
return
|
||||
}
|
||||
when {
|
||||
fir.modality == Modality.SEALED -> fir.sealedInheritors?.forEach {
|
||||
fir.modality == Modality.SEALED -> fir.getSealedClassInheritors(session).forEach {
|
||||
val symbol = session.symbolProvider.getClassLikeSymbolByFqName(it) as? FirRegularClassSymbol
|
||||
symbol?.collectAllSubclassesTo(destination, session)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user