[FIR] Add special node for sealed classes

This commit is contained in:
Dmitriy Novozhilov
2019-10-15 14:45:16 +03:00
parent d0089c6747
commit 59fd47bfd0
22 changed files with 313 additions and 43 deletions
@@ -372,15 +372,25 @@ class DeclarationsConverter(
isData = modifiers.isDataClass() && classKind != ClassKind.OBJECT
isInline = modifiers.hasInline()
}
val firClass = FirClassImpl(
null,
session,
className,
status,
classKind,
FirClassSymbol(context.currentClassId)
)
val firClass = if (status.modality == Modality.SEALED) {
FirSealedClassImpl(
null,
session,
className,
status,
classKind,
FirClassSymbol(context.currentClassId)
)
} else {
FirClassImpl(
null,
session,
className,
status,
classKind,
FirClassSymbol(context.currentClassId)
)
}
firClass.annotations += modifiers.annotations
firClass.typeParameters += firTypeParameters
firClass.joinTypeParameters(typeConstraints)