[klib] Don't print names of companion objects

This commit is contained in:
Ilya Matveev
2018-02-09 18:56:39 +07:00
committed by ilmat192
parent 4c9e679180
commit ba15ca9998
@@ -114,13 +114,12 @@ class PackageFragmentPrinter(val packageFragment: KonanLinkData.PackageFragment,
nestedClassNameList.forEach { append(nestedClassAsString(it)) } nestedClassNameList.forEach { append(nestedClassAsString(it)) }
} }
// TODO: val/var parameters are printed twice
// TODO: Support nested/inner and sealed classes // TODO: Support nested/inner and sealed classes
private fun ProtoBuf.Class.asString(classes: KonanLinkData.Classes): String { private fun ProtoBuf.Class.asString(classes: KonanLinkData.Classes): String {
if (isEnumEntry) return "" // TODO: Make better if (isEnumEntry) return "" // TODO: Make better
if (hasTypeTable()) TypeTables.push(typeTable) if (hasTypeTable()) TypeTables.push(typeTable)
val result = buildString { val result = buildString {
val className = getName(fqName) val className = if (!isCompanionObject) getName(fqName) else ""
val classKind = Flags.CLASS_KIND.get(flags).asString() val classKind = Flags.CLASS_KIND.get(flags).asString()
val modality = Flags.MODALITY .get(flags).asString() val modality = Flags.MODALITY .get(flags).asString()
val visibility = Flags.VISIBILITY.get(flags).asString() val visibility = Flags.VISIBILITY.get(flags).asString()
@@ -131,7 +130,7 @@ class PackageFragmentPrinter(val packageFragment: KonanLinkData.PackageFragment,
val supertypes = supertypesToString(supertypes(TypeTables.peek())) val supertypes = supertypesToString(supertypes(TypeTables.peek()))
val annotations = annotationsToString(getExtension(KonanSerializerProtocol.classAnnotation), "\n") val annotations = annotationsToString(getExtension(KonanSerializerProtocol.classAnnotation), "\n")
val primaryConstructor = if (!isObject) { val primaryConstructor = if (!isObject && !isCompanionObject) {
primaryConstructor()?.asString(isEnumClass, true) ?: "" primaryConstructor()?.asString(isEnumClass, true) ?: ""
} else { } else {
"" ""
@@ -410,9 +409,11 @@ class PackageFragmentPrinter(val packageFragment: KonanLinkData.PackageFragment,
//-------------------------------------------------------------------------// //-------------------------------------------------------------------------//
private val ProtoBuf.Class.isObject: Boolean private val ProtoBuf.Class.isObject: Boolean
get() = Flags.CLASS_KIND.get(flags).let { get() = Flags.CLASS_KIND.get(flags) == ProtoBuf.Class.Kind.OBJECT
it == ProtoBuf.Class.Kind.OBJECT || it == ProtoBuf.Class.Kind.COMPANION_OBJECT
} private val ProtoBuf.Class.isCompanionObject: Boolean
get() = Flags.CLASS_KIND.get(flags) == ProtoBuf.Class.Kind.COMPANION_OBJECT
private fun ProtoBuf.Class.Kind.asString() = private fun ProtoBuf.Class.Kind.asString() =
when (this) { when (this) {