diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/NewCodeBuilder.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/NewCodeBuilder.kt index f9b210e405c..bad6cf8f8c6 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/NewCodeBuilder.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/NewCodeBuilder.kt @@ -51,16 +51,17 @@ class NewCodeBuilder(context: NewJ2kConverterContext) { return text + "\n".takeIf { needNewLine }.orEmpty() } - private fun JKNonCodeElementsListOwner.needPreserveSpacesAfterLastCommit() = + private fun JKNonCodeElementsListOwner.needPreserveSpacesAfterLastComment() = this is JKArgument || this is JKParameter || safeAs()?.parent is JKArgument || safeAs()?.parent is JKBinaryExpression + || safeAs()?.parent is JKQualifiedExpression override fun printLeftNonCodeElements(element: JKNonCodeElementsListOwner) { val text = element.leftNonCodeElements .let { - if (element.needPreserveSpacesAfterLastCommit()) it + if (element.needPreserveSpacesAfterLastComment()) it else it.dropWhile { it is JKSpaceElement } }.createText() printer.printWithNoIndent(text) @@ -70,7 +71,7 @@ class NewCodeBuilder(context: NewJ2kConverterContext) { override fun printRightNonCodeElements(element: JKNonCodeElementsListOwner) { val text = element.rightNonCodeElements .let { - if (element.needPreserveSpacesAfterLastCommit()) it + if (element.needPreserveSpacesAfterLastComment()) it else it.dropLastWhile { it is JKSpaceElement } }.createText() printer.printWithNoIndent(text)