[klib] Fix printing classes without a primary constructor

This commit is contained in:
Ilya Matveev
2018-02-09 16:28:24 +07:00
committed by ilmat192
parent fa21659c80
commit f4cb918a1c
@@ -124,7 +124,7 @@ class PackageFragmentPrinter(val packageFragment: KonanLinkData.PackageFragment,
val typeParameters = typeParameterList
.joinToString("<", "> ") { it.asString() }
.let { if (it.isEmpty()) " " else it }
val primaryConstructor = primaryConstructor().asString(isEnumClass, true)
val primaryConstructor = primaryConstructor()?.asString(isEnumClass, true) ?: ""
val supertypes = supertypesToString(supertypeIdList)
val annotations = annotationsToString(getExtension(KonanSerializerProtocol.classAnnotation), "\n")
@@ -353,7 +353,7 @@ class PackageFragmentPrinter(val packageFragment: KonanLinkData.PackageFragment,
//-------------------------------------------------------------------------//
private fun getParentName(id: Int) = qualifiedNameTable.getQualifiedName(id).parentQualifiedName
private fun ProtoBuf.Class.primaryConstructor() = constructorList.first { !Flags.IS_SECONDARY.get(it.flags) }
private fun ProtoBuf.Class.primaryConstructor() = constructorList.firstOrNull { !Flags.IS_SECONDARY.get(it.flags) }
private fun ProtoBuf.Class.secondaryConstructors() = constructorList.filter { Flags.IS_SECONDARY.get(it.flags) }
private val ProtoBuf.Class.isEnumClass: Boolean