Minor fixes to achieve coincidence with sours code
This commit is contained in:
committed by
KonstantinAnisimov
parent
9b56af8f4b
commit
7165f2edb5
@@ -20,7 +20,6 @@ import org.jetbrains.kotlin.serialization.KonanLinkData
|
|||||||
import org.jetbrains.kotlin.backend.konan.serialization.Base64
|
import org.jetbrains.kotlin.backend.konan.serialization.Base64
|
||||||
import org.jetbrains.kotlin.backend.konan.serialization.parseModuleHeader
|
import org.jetbrains.kotlin.backend.konan.serialization.parseModuleHeader
|
||||||
import org.jetbrains.kotlin.backend.konan.serialization.parsePackageFragment
|
import org.jetbrains.kotlin.backend.konan.serialization.parsePackageFragment
|
||||||
|
|
||||||
import org.jetbrains.kotlin.backend.konan.serialization.KonanSerializerProtocol
|
import org.jetbrains.kotlin.backend.konan.serialization.KonanSerializerProtocol
|
||||||
import org.jetbrains.kotlin.serialization.Flags
|
import org.jetbrains.kotlin.serialization.Flags
|
||||||
import org.jetbrains.kotlin.serialization.ProtoBuf
|
import org.jetbrains.kotlin.serialization.ProtoBuf
|
||||||
@@ -39,8 +38,7 @@ class PrettyPrinter(val library: Base64, val packageLoader: (String) -> Base64)
|
|||||||
get() = moduleHeader.packageFragmentNameList
|
get() = moduleHeader.packageFragmentNameList
|
||||||
|
|
||||||
fun printPackageFragment(fqname: String) {
|
fun printPackageFragment(fqname: String) {
|
||||||
if (fqname.isNotEmpty()) println("package $fqname" )
|
if (fqname.isNotEmpty()) println("\nPackage $fqname\n" )
|
||||||
if (fqname.isNotEmpty()) println("package $fqname" )
|
|
||||||
val fragment = packageFragment(fqname)
|
val fragment = packageFragment(fqname)
|
||||||
PackageFragmentPrinter(fragment, out).print()
|
PackageFragmentPrinter(fragment, out).print()
|
||||||
}
|
}
|
||||||
@@ -70,8 +68,8 @@ class PackageFragmentPrinter(val packageFragment: KonanLinkData.PackageFragment,
|
|||||||
ProtoBuf.Class.Kind.INTERFACE -> printClass(protoClass)
|
ProtoBuf.Class.Kind.INTERFACE -> printClass(protoClass)
|
||||||
ProtoBuf.Class.Kind.ENUM_ENTRY -> printEnum(protoClass)
|
ProtoBuf.Class.Kind.ENUM_ENTRY -> printEnum(protoClass)
|
||||||
ProtoBuf.Class.Kind.ANNOTATION_CLASS -> printClass(protoClass)
|
ProtoBuf.Class.Kind.ANNOTATION_CLASS -> printClass(protoClass)
|
||||||
ProtoBuf.Class.Kind.OBJECT -> printObject(protoClass)
|
ProtoBuf.Class.Kind.OBJECT -> printClass(protoClass)
|
||||||
ProtoBuf.Class.Kind.COMPANION_OBJECT -> printObject(protoClass)
|
ProtoBuf.Class.Kind.COMPANION_OBJECT -> printClass(protoClass)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -208,7 +206,7 @@ class PackageFragmentPrinter(val packageFragment: KonanLinkData.PackageFragment,
|
|||||||
//-------------------------------------------------------------------------//
|
//-------------------------------------------------------------------------//
|
||||||
|
|
||||||
fun supertypesToString(supertypesId: List<Int>): String {
|
fun supertypesToString(supertypesId: List<Int>): String {
|
||||||
val buff = StringBuilder(": ")
|
val buff = StringBuilder(" : ")
|
||||||
supertypesId.dropLast(1).forEach { supertypeId ->
|
supertypesId.dropLast(1).forEach { supertypeId ->
|
||||||
val supertype = typeToString(supertypeId)
|
val supertype = typeToString(supertypeId)
|
||||||
if (supertype != "Any") buff.append("$supertype, ")
|
if (supertype != "Any") buff.append("$supertype, ")
|
||||||
@@ -218,7 +216,7 @@ class PackageFragmentPrinter(val packageFragment: KonanLinkData.PackageFragment,
|
|||||||
if (supertype != "Any") buff.append(supertype)
|
if (supertype != "Any") buff.append(supertype)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (buff.toString() == ": ") return ""
|
if (buff.toString() == " : ") return ""
|
||||||
return buff.toString()
|
return buff.toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -298,8 +296,6 @@ class PackageFragmentPrinter(val packageFragment: KonanLinkData.PackageFragment,
|
|||||||
//-------------------------------------------------------------------------//
|
//-------------------------------------------------------------------------//
|
||||||
|
|
||||||
fun valueParametersToString(valueParameters: List<ProtoBuf.ValueParameter>): String {
|
fun valueParametersToString(valueParameters: List<ProtoBuf.ValueParameter>): String {
|
||||||
if (valueParameters.isEmpty()) return ""
|
|
||||||
|
|
||||||
val buff = StringBuilder("(")
|
val buff = StringBuilder("(")
|
||||||
valueParameters.dropLast(1).forEach { valueParameter ->
|
valueParameters.dropLast(1).forEach { valueParameter ->
|
||||||
val parameter = valueParameterToString(valueParameter)
|
val parameter = valueParameterToString(valueParameter)
|
||||||
@@ -319,10 +315,11 @@ class PackageFragmentPrinter(val packageFragment: KonanLinkData.PackageFragment,
|
|||||||
val type = typeToString(protoValueParameter.typeId)
|
val type = typeToString(protoValueParameter.typeId)
|
||||||
val flags = protoValueParameter.flags
|
val flags = protoValueParameter.flags
|
||||||
val isCrossInline = crossInlineToString(Flags.IS_CROSSINLINE.get(flags))
|
val isCrossInline = crossInlineToString(Flags.IS_CROSSINLINE.get(flags))
|
||||||
|
val visibility = visibilityToString(Flags.VISIBILITY.get(flags))
|
||||||
val protoAnnotations = protoValueParameter.getExtension(KonanSerializerProtocol.parameterAnnotation)
|
val protoAnnotations = protoValueParameter.getExtension(KonanSerializerProtocol.parameterAnnotation)
|
||||||
val annotations = annotationsToString(protoAnnotations)
|
val annotations = annotationsToString(protoAnnotations)
|
||||||
|
|
||||||
return "$annotations$isCrossInline$parameterName: $type"
|
return "$annotations$isCrossInline$visibility$parameterName: $type"
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------//
|
//-------------------------------------------------------------------------//
|
||||||
@@ -330,12 +327,13 @@ class PackageFragmentPrinter(val packageFragment: KonanLinkData.PackageFragment,
|
|||||||
fun constructorValueParameterToString(protoValueParameter: ProtoBuf.ValueParameter): String {
|
fun constructorValueParameterToString(protoValueParameter: ProtoBuf.ValueParameter): String {
|
||||||
val flags = protoValueParameter.flags
|
val flags = protoValueParameter.flags
|
||||||
val isVar = if (Flags.IS_VAR.get(flags)) "var " else "val "
|
val isVar = if (Flags.IS_VAR.get(flags)) "var " else "val "
|
||||||
|
val visibility = visibilityToString(Flags.VISIBILITY.get(flags))
|
||||||
val parameterName = stringTable.getString(protoValueParameter.name)
|
val parameterName = stringTable.getString(protoValueParameter.name)
|
||||||
val type = typeToString(protoValueParameter.typeId)
|
val type = typeToString(protoValueParameter.typeId)
|
||||||
val protoAnnotations = protoValueParameter.getExtension(KonanSerializerProtocol.parameterAnnotation)
|
val protoAnnotations = protoValueParameter.getExtension(KonanSerializerProtocol.parameterAnnotation)
|
||||||
val annotations = annotationsToString(protoAnnotations)
|
val annotations = annotationsToString(protoAnnotations)
|
||||||
|
|
||||||
return "$annotations$isVar$parameterName: $type"
|
return "$annotations$visibility$isVar$parameterName: $type"
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------//
|
//-------------------------------------------------------------------------//
|
||||||
@@ -384,7 +382,7 @@ class PackageFragmentPrinter(val packageFragment: KonanLinkData.PackageFragment,
|
|||||||
|
|
||||||
fun varianceToString(variance: ProtoBuf.TypeParameter.Variance): String {
|
fun varianceToString(variance: ProtoBuf.TypeParameter.Variance): String {
|
||||||
if (variance == ProtoBuf.TypeParameter.Variance.INV) return ""
|
if (variance == ProtoBuf.TypeParameter.Variance.INV) return ""
|
||||||
return variance.toString().toLowerCase()
|
return variance.toString().toLowerCase() + " "
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------//
|
//-------------------------------------------------------------------------//
|
||||||
@@ -487,9 +485,9 @@ class PackageFragmentPrinter(val packageFragment: KonanLinkData.PackageFragment,
|
|||||||
val modality = modalityToString(Flags.MODALITY.get(flags))
|
val modality = modalityToString(Flags.MODALITY.get(flags))
|
||||||
val visibility = visibilityToString(Flags.VISIBILITY.get(flags))
|
val visibility = visibilityToString(Flags.VISIBILITY.get(flags))
|
||||||
|
|
||||||
val buff = StringBuilder()
|
val buff = StringBuilder("$modality$visibility")
|
||||||
when (classKind) {
|
when (classKind) {
|
||||||
ProtoBuf.Class.Kind.CLASS -> buff.append("$visibility${modality}class")
|
ProtoBuf.Class.Kind.CLASS -> buff.append("class")
|
||||||
ProtoBuf.Class.Kind.INTERFACE -> buff.append("interface")
|
ProtoBuf.Class.Kind.INTERFACE -> buff.append("interface")
|
||||||
ProtoBuf.Class.Kind.ANNOTATION_CLASS -> buff.append("annotation")
|
ProtoBuf.Class.Kind.ANNOTATION_CLASS -> buff.append("annotation")
|
||||||
ProtoBuf.Class.Kind.OBJECT -> buff.append("object")
|
ProtoBuf.Class.Kind.OBJECT -> buff.append("object")
|
||||||
|
|||||||
Reference in New Issue
Block a user