[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
@@ -87,11 +87,6 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
openBuilder()
}
builder(sealedClass) {
parents += regularClassBuilder
defaultNull("companionObject")
}
builder(anonymousObject) {
parents += classBuilder
}
@@ -46,7 +46,6 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
val classLikeDeclaration = element("ClassLikeDeclaration", Declaration, annotatedDeclaration, statement, symbolOwner)
val klass = element("Class", Declaration, classLikeDeclaration, statement, typeParameterRefsOwner)
val regularClass = element("RegularClass", Declaration, memberDeclaration, typeParameterRefsOwner, klass)
val sealedClass = element("SealedClass", Declaration, regularClass)
val typeAlias = element("TypeAlias", Declaration, classLikeDeclaration, memberDeclaration, typeParametersOwner)
val function = element("Function", Declaration, callableDeclaration, targetElement, typeParameterRefsOwner, statement)
@@ -37,8 +37,6 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
impl(regularClass, "FirClassImpl", regularClassConfig)
impl(sealedClass, config = regularClassConfig)
impl(anonymousObject)
impl(typeAlias)
@@ -253,10 +253,6 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
+controlFlowGraphReferenceField
}
sealedClass.configure {
+fieldList("inheritors", classIdType, withReplace = true)
}
typeAlias.configure {
+typeParameters
parentArg(classLikeDeclaration, "F", typeAlias)