[FIR] Get rid of FirSealedClass node

Now list of inheritors is hold in attributes of `FirRegularClass`
This commit is contained in:
Dmitriy Novozhilov
2020-05-26 10:55:48 +03:00
parent 41cdb61ef3
commit 60fd505a9c
25 changed files with 53 additions and 412 deletions
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.fir.resolve.firSymbolProvider
import org.jetbrains.kotlin.fir.resolve.fullyExpandedType
import org.jetbrains.kotlin.fir.resolve.inference.isSuspendFunctionType
import org.jetbrains.kotlin.fir.resolve.toSymbol
import org.jetbrains.kotlin.fir.resolve.transformers.sealedInheritors
import org.jetbrains.kotlin.fir.symbols.StandardClassIds
import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl
import org.jetbrains.kotlin.fir.types.*
@@ -155,8 +156,10 @@ class FirElementSerializer private constructor(
}
}
if (klass is FirSealedClass) {
for (inheritorId in klass.inheritors) {
if (klass is FirRegularClass && klass.modality == Modality.SEALED) {
val inheritors = klass.sealedInheritors
requireNotNull(inheritors)
for (inheritorId in inheritors) {
builder.addSealedSubclassFqName(stringTable.getQualifiedClassNameIndex(inheritorId))
}
}