From 07b2ff3c18d41d987a8345bfb12393a9ee0ee7cd Mon Sep 17 00:00:00 2001 From: Ilya Matveev Date: Mon, 12 Feb 2018 17:45:30 +0700 Subject: [PATCH] [klib] Print package fq-name --- .../kotlin/cli/klib/PrettyPrinter.kt | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/klib/src/main/kotlin/org/jetbrains/kotlin/cli/klib/PrettyPrinter.kt b/klib/src/main/kotlin/org/jetbrains/kotlin/cli/klib/PrettyPrinter.kt index 43e8989bb67..e4a8cd1e177 100644 --- a/klib/src/main/kotlin/org/jetbrains/kotlin/cli/klib/PrettyPrinter.kt +++ b/klib/src/main/kotlin/org/jetbrains/kotlin/cli/klib/PrettyPrinter.kt @@ -118,21 +118,29 @@ class PackageFragmentPrinter(val packageFragment: KonanLinkData.PackageFragment, get() = !isEnumEntry && !classId.let { it.isLocal || it.isNestedClass } fun print() { + if (packageFragment.isEmpty) { + return + } + TypeTables.push(packageFragment.`package`.typeTable) - // if (packageFragment.hasFqName()) printer.print("package ${packageFragment.fqName}\n") - packageFragment.classes.classesList.forEach {if (it.isTopLevel) printer.println(it.asString()) } - packageFragment.`package`.functionList.forEach { printer.println(it.asString()) } - packageFragment.`package`.propertyList.forEach { printer.println(it.asString()) } + if (packageFragment.hasFqName()) printer.print("package ${packageFragment.fqName}") + val packageBody = StringBuilder().buildBody { + packageFragment.classes.classesList.forEach {if (it.isTopLevel) appendln(it.asString()) } + packageFragment.`package`.functionList.forEach { appendln(it.asString()) } + packageFragment.`package`.propertyList.forEach { appendln(it.asString()) } + } + printer.print(packageBody.toString()) TypeTables.pop() } //-------------------------------------------------------------------------// - private fun StringBuilder.buildBody(body: StringBuilder.() -> Unit) { + private fun StringBuilder.buildBody(body: StringBuilder.() -> Unit): StringBuilder { Indent.push() val result = StringBuilder().apply(body).toString() Indent.pop() append(if (result.isEmpty()) "\n" else " {\n$result$Indent}\n") + return this } //-------------------------------------------------------------------------// @@ -295,9 +303,8 @@ class PackageFragmentPrinter(val packageFragment: KonanLinkData.PackageFragment, //-------------------------------------------------------------------------// - private fun annotationsToString(annotations: List, separator: String = " "): String { - return buildString { annotations.forEach { append(it.asString() + separator) } } - } + private fun annotationsToString(annotations: List, separator: String = " ") = + buildString { annotations.forEach { append(it.asString() + separator) } } //-------------------------------------------------------------------------//