Kotlin: Add class modifiers

This commit is contained in:
Ian Lynagh
2021-12-09 15:25:42 +00:00
parent 08bb134022
commit 5342b13cb6
8 changed files with 120 additions and 26 deletions

View File

@@ -707,8 +707,19 @@ class X {
modifiers.forEach { tw.writeHasModifier(modifiable, extractModifier(it)) }
fun extractClassModifiers(c: IrClass, id: Label<out DbClassorinterface>) {
if (c.modality == Modality.ABSTRACT) {
addModifiers(id, "abstract")
when (c.modality) {
Modality.FINAL -> addModifiers(id, "final")
Modality.SEALED -> addModifiers(id, "sealed")
Modality.OPEN -> { } // This is the default
Modality.ABSTRACT -> addModifiers(id, "abstract")
else -> logger.warn(Severity.ErrorSevere, "Unexpected class modality: ${c.modality}")
}
when (c.visibility) {
DescriptorVisibilities.PRIVATE -> addModifiers(id, "private")
DescriptorVisibilities.PROTECTED -> addModifiers(id, "protected")
DescriptorVisibilities.PUBLIC -> addModifiers(id, "public")
DescriptorVisibilities.INTERNAL -> addModifiers(id, "internal")
else -> logger.warn(Severity.ErrorSevere, "Unexpected class visibility: ${c.visibility}")
}
}