From 17b96b82402eae301696cdaf619cc5f26274534d Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Tue, 18 Dec 2018 15:03:13 +0300 Subject: [PATCH] New J2K: Fix printing no semicolon in enum class --- .../org/jetbrains/kotlin/j2k/NewCodeBuilder.kt | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt index ecb37bbb944..accdcfaa0c3 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt @@ -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() + 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) } }