New J2K: Fix printing no semicolon in enum class

This commit is contained in:
Ilya Kirillov
2018-12-18 15:03:13 +03:00
committed by Ilya Kirillov
parent dcf7895314
commit 17b96b8240
@@ -615,8 +615,18 @@ class NewCodeBuilder {
override fun visitClassBody(classBody: JKClassBody) {
val declarationsToPrint = classBody.declarations.filterNot { it is JKKtPrimaryConstructor }
printer.block(multiline = true) {
renderEnumConstants(declarationsToPrint.filterIsInstance())
renderNonEnumClassDeclarations(declarationsToPrint.filterNot { it is JKEnumConstant })
val enumConstants = declarationsToPrint.filterIsInstance<JKEnumConstant>()
val otherDeclarations = declarationsToPrint.filterNot { it is JKEnumConstant }
renderEnumConstants(enumConstants)
if ((classBody.parent as? JKClass)?.classKind == JKClass.ClassKind.ENUM
&& otherDeclarations.isNotEmpty()
) {
printer.printlnWithNoIndent(";")
}
if (enumConstants.isNotEmpty() && otherDeclarations.isNotEmpty()) {
printer.println()
}
renderNonEnumClassDeclarations(otherDeclarations)
}
}