Do not produce trailing space when rendering root package header

This commit is contained in:
Alexander Udalov
2016-04-21 18:09:09 +03:00
parent dd12c018ca
commit 1b79770121
6 changed files with 23 additions and 15 deletions
@@ -58,7 +58,7 @@ class SignatureDumpingBuilderFactory(
private var firstClassWritten: Boolean = false
override fun close() {
outputStream.append("\n]")
outputStream.append("\n]\n")
outputStream.close()
super.close()
}
@@ -99,7 +99,7 @@ class SignatureDumpingBuilderFactory(
outputStream.append("\t\t").appendNameValue("visibility", it.displayName).append(",\n")
}
}
outputStream.append("\t\t").appendNameValue("class", javaClassName).append(", \n")
outputStream.append("\t\t").appendNameValue("class", javaClassName).append(",\n")
outputStream.append("\t\t").appendQuoted("members").append(": [\n")
signatures.joinTo(outputStream, ",\n") { buildString {
+2 -2
View File
@@ -1,7 +1,7 @@
compiler/testData/cli/jvm/sanitized-name.clash.kt:1:1: error: duplicate JVM class name 'Sanitized_name_clashKt' generated from: package-fragment , Sanitized_name_clashKt
compiler/testData/cli/jvm/sanitized-name.clash.kt:1:1: error: duplicate JVM class name 'Sanitized_name_clashKt' generated from: package-fragment, Sanitized_name_clashKt
class SanitizedNameClash
^
compiler/testData/cli/jvm/sanitized-name.clash.kt:3:1: error: duplicate JVM class name 'Sanitized_name_clashKt' generated from: package-fragment , Sanitized_name_clashKt
compiler/testData/cli/jvm/sanitized-name.clash.kt:3:1: error: duplicate JVM class name 'Sanitized_name_clashKt' generated from: package-fragment, Sanitized_name_clashKt
class Sanitized_name_clashKt
^
COMPILATION_ERROR
@@ -80,7 +80,7 @@
]
},
{
"declaration": "package-fragment ",
"declaration": "package-fragment",
"class": "Part2Kt",
"members": [
{"visibility": "public", "declaration": "fun box(): kotlin.Unit", "name": "box", "desc": "()V"}
@@ -1,6 +1,6 @@
[
{
"declaration": "package-fragment ",
"declaration": "package-fragment",
"class": "MultifileFacade__Part1Kt",
"members": [
{"visibility": "public", "declaration": "val publicVal: kotlin.Int", "name": "publicVal", "desc": "I"},
@@ -18,7 +18,7 @@
{"visibility": "private", "declaration": "var privateVar: kotlin.Any?", "name": "privateVar", "desc": "Ljava/lang/Object;"},
{"visibility": "private", "declaration": "fun <get-privateVar>(): kotlin.Any?", "name": "getPrivateVar$MultifileFacade__Part1Kt", "desc": "()Ljava/lang/Object;"},
{"visibility": "private", "declaration": "fun <set-privateVar>(<set-?>: kotlin.Any?): kotlin.Unit", "name": "setPrivateVar$MultifileFacade__Part1Kt", "desc": "(Ljava/lang/Object;)V"},
{"declaration": "package-fragment ", "name": "<clinit>", "desc": "()V"}
{"declaration": "package-fragment", "name": "<clinit>", "desc": "()V"}
]
},
{
@@ -31,7 +31,7 @@
]
},
{
"declaration": "package-fragment ",
"declaration": "package-fragment",
"class": "MultifileFacade__Part2Kt",
"members": [
{"visibility": "private", "declaration": "const val privateConst: kotlin.Int", "name": "privateConst", "desc": "I"},
@@ -43,7 +43,7 @@
]
},
{
"declaration": "package-fragment ",
"declaration": "package-fragment",
"class": "MultifileFacade",
"members": [
{"visibility": "internal", "declaration": "const val internalConst: kotlin.Int", "name": "internalConst", "desc": "I"},
@@ -9,7 +9,7 @@
]
},
{
"declaration": "package-fragment ",
"declaration": "package-fragment",
"class": "TopLevelMembersKt",
"members": [
{"visibility": "public", "declaration": "val publicVal: kotlin.Int", "name": "publicVal", "desc": "I"},
@@ -38,7 +38,7 @@
{"visibility": "internal", "declaration": "fun internalOverloads(a: kotlin.String = ..., b: kotlin.Long? = ...): kotlin.Unit", "name": "internalOverloads$default", "desc": "(Ljava/lang/String;Ljava/lang/Long;ILjava/lang/Object;)V"},
{"visibility": "internal", "declaration": "fun internalOverloads(a: kotlin.String = ..., b: kotlin.Long? = ...): kotlin.Unit", "name": "internalOverloads", "desc": "(Ljava/lang/String;)V"},
{"visibility": "internal", "declaration": "fun internalOverloads(a: kotlin.String = ..., b: kotlin.Long? = ...): kotlin.Unit", "name": "internalOverloads", "desc": "()V"},
{"declaration": "package-fragment ", "name": "<clinit>", "desc": "()V"},
{"declaration": "package-fragment", "name": "<clinit>", "desc": "()V"},
{"visibility": "private", "declaration": "fun privateFun(x: kotlin.Any?): kotlin.Unit", "name": "access$privateFun", "desc": "(Ljava/lang/Object;)V"},
{"visibility": "private", "declaration": "fun <get-privateVal>(): kotlin.Any?", "name": "access$getPrivateVal$p", "desc": "()Ljava/lang/Object;"},
{"visibility": "private", "declaration": "fun <get-privateVar>(): kotlin.Any?", "name": "access$getPrivateVar$p", "desc": "()Ljava/lang/Object;"},
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.descriptors.annotations.Annotated
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.FqNameUnsafe
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.name.SpecialNames
@@ -888,8 +889,7 @@ internal class DescriptorRendererImpl(
/* OTHER */
private fun renderPackageView(packageView: PackageViewDescriptor, builder: StringBuilder) {
builder.append(renderKeyword("package")).append(" ")
builder.append(renderFqName(packageView.fqName.toUnsafe()))
renderPackageHeader(packageView.fqName, "package", builder)
if (debugMode) {
builder.append(" in context of ")
renderName(packageView.module, builder)
@@ -897,14 +897,22 @@ internal class DescriptorRendererImpl(
}
private fun renderPackageFragment(fragment: PackageFragmentDescriptor, builder: StringBuilder) {
builder.append(renderKeyword("package-fragment")).append(" ")
builder.append(renderFqName(fragment.fqName.toUnsafe()))
renderPackageHeader(fragment.fqName, "package-fragment", builder)
if (debugMode) {
builder.append(" in ")
renderName(fragment.containingDeclaration, builder)
}
}
private fun renderPackageHeader(fqName: FqName, fragmentOrView: String, builder: StringBuilder) {
builder.append(renderKeyword(fragmentOrView))
val fqNameString = renderFqName(fqName.toUnsafe())
if (fqNameString.isNotEmpty()) {
builder.append(" ")
builder.append(fqNameString)
}
}
private fun renderAccessorModifiers(descriptor: PropertyAccessorDescriptor, builder: StringBuilder) {
if (descriptor.isExternal) {
builder.append("external ")