From 4ead8203952828ffaf16671a64243854de689d18 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Wed, 24 Jul 2019 22:23:20 +0300 Subject: [PATCH] New J2K: correctly print comments for qualified expression --- nj2k/src/org/jetbrains/kotlin/nj2k/NewCodeBuilder.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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)