From 9a1e5582b605480bb473af110c483f5991eca2db Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Sat, 10 Nov 2018 19:42:09 +0300 Subject: [PATCH] New J2K: Render list separator as function --- j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt index c9c098b3efa..d3a2f9ea5d5 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/NewCodeBuilder.kt @@ -177,12 +177,14 @@ class NewCodeBuilder { ) } + private inline fun renderList(list: List, separator: String = ", ", renderElement: (T) -> Unit) = + renderList(list, { printer.printWithNoIndent(separator) }, renderElement) - private inline fun renderList(list: List, separator: String = ", ", renderElement: (T) -> Unit) { + private inline fun renderList(list: List, separator: () -> Unit, renderElement: (T) -> Unit) { val (head, tail) = list.headTail() head?.let(renderElement) ?: return tail?.forEach { - builder.append(separator) + separator() renderElement(it) } } @@ -343,7 +345,7 @@ class NewCodeBuilder { private fun renderStatementOrBlock(statement: JKStatement, multiline: Boolean = false) { if (statement is JKBlockStatement) { printer.block(multiline) { - statement.block.statements.forEach { it.accept(this) } + statement.block.accept(this) } } else { statement.accept(this)