From ddb398645b75daa0dcc86a20263c89700bc165f4 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Thu, 16 Aug 2018 12:34:10 +0200 Subject: [PATCH] Reformat modules 'metadata' and 'metadata.jvm', fix some inspections --- .../jvm/deserialization/JvmMemberSignature.kt | 4 +- .../jvm/deserialization/JvmNameResolver.kt | 48 +++++++++---------- .../jvm/deserialization/JvmProtoBufUtil.kt | 24 +++++----- .../jvm/deserialization/ModuleMapping.kt | 22 ++++----- .../jvm/deserialization/utfEncoding.kt | 5 +- .../jvm/serialization/JvmStringTable.kt | 23 ++++----- .../metadata/deserialization/TypeTable.kt | 6 +-- .../metadata/serialization/MutableTable.kt | 24 +++++----- 8 files changed, 74 insertions(+), 82 deletions(-) diff --git a/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/JvmMemberSignature.kt b/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/JvmMemberSignature.kt index 7d61b6d3917..a1c8a68cc70 100644 --- a/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/JvmMemberSignature.kt +++ b/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/JvmMemberSignature.kt @@ -21,9 +21,9 @@ sealed class JvmMemberSignature { } data class Field(override val name: String, override val desc: String) : JvmMemberSignature() { - override fun asString() = name + ":" + desc + override fun asString() = "$name:$desc" } final override fun toString() = asString() abstract fun asString(): String -} \ No newline at end of file +} diff --git a/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/JvmNameResolver.kt b/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/JvmNameResolver.kt index 9e66fa86b0f..efef6db812d 100644 --- a/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/JvmNameResolver.kt +++ b/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/JvmNameResolver.kt @@ -76,36 +76,36 @@ class JvmNameResolver( companion object { val PREDEFINED_STRINGS = listOf( - "kotlin/Any", - "kotlin/Nothing", - "kotlin/Unit", - "kotlin/Throwable", - "kotlin/Number", + "kotlin/Any", + "kotlin/Nothing", + "kotlin/Unit", + "kotlin/Throwable", + "kotlin/Number", - "kotlin/Byte", "kotlin/Double", "kotlin/Float", "kotlin/Int", - "kotlin/Long", "kotlin/Short", "kotlin/Boolean", "kotlin/Char", + "kotlin/Byte", "kotlin/Double", "kotlin/Float", "kotlin/Int", + "kotlin/Long", "kotlin/Short", "kotlin/Boolean", "kotlin/Char", - "kotlin/CharSequence", - "kotlin/String", - "kotlin/Comparable", - "kotlin/Enum", + "kotlin/CharSequence", + "kotlin/String", + "kotlin/Comparable", + "kotlin/Enum", - "kotlin/Array", - "kotlin/ByteArray", "kotlin/DoubleArray", "kotlin/FloatArray", "kotlin/IntArray", - "kotlin/LongArray", "kotlin/ShortArray", "kotlin/BooleanArray", "kotlin/CharArray", + "kotlin/Array", + "kotlin/ByteArray", "kotlin/DoubleArray", "kotlin/FloatArray", "kotlin/IntArray", + "kotlin/LongArray", "kotlin/ShortArray", "kotlin/BooleanArray", "kotlin/CharArray", - "kotlin/Cloneable", - "kotlin/Annotation", + "kotlin/Cloneable", + "kotlin/Annotation", - "kotlin/collections/Iterable", "kotlin/collections/MutableIterable", - "kotlin/collections/Collection", "kotlin/collections/MutableCollection", - "kotlin/collections/List", "kotlin/collections/MutableList", - "kotlin/collections/Set", "kotlin/collections/MutableSet", - "kotlin/collections/Map", "kotlin/collections/MutableMap", - "kotlin/collections/Map.Entry", "kotlin/collections/MutableMap.MutableEntry", + "kotlin/collections/Iterable", "kotlin/collections/MutableIterable", + "kotlin/collections/Collection", "kotlin/collections/MutableCollection", + "kotlin/collections/List", "kotlin/collections/MutableList", + "kotlin/collections/Set", "kotlin/collections/MutableSet", + "kotlin/collections/Map", "kotlin/collections/MutableMap", + "kotlin/collections/Map.Entry", "kotlin/collections/MutableMap.MutableEntry", - "kotlin/collections/Iterator", "kotlin/collections/MutableIterator", - "kotlin/collections/ListIterator", "kotlin/collections/MutableListIterator" + "kotlin/collections/Iterator", "kotlin/collections/MutableIterator", + "kotlin/collections/ListIterator", "kotlin/collections/MutableListIterator" ) private val PREDEFINED_STRINGS_MAP = PREDEFINED_STRINGS.withIndex().associateBy({ it.value }, { it.index }) diff --git a/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/JvmProtoBufUtil.kt b/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/JvmProtoBufUtil.kt index d304315c255..6f0ba580817 100644 --- a/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/JvmProtoBufUtil.kt +++ b/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/JvmProtoBufUtil.kt @@ -61,16 +61,15 @@ object JvmProtoBufUtil { // returns JVM signature in the format: "equals(Ljava/lang/Object;)Z" fun getJvmMethodSignature( - proto: ProtoBuf.Function, - nameResolver: NameResolver, - typeTable: TypeTable + proto: ProtoBuf.Function, + nameResolver: NameResolver, + typeTable: TypeTable ): JvmMemberSignature.Method? { val signature = proto.getExtensionOrNull(JvmProtoBuf.methodSignature) val name = if (signature != null && signature.hasName()) signature.name else proto.name val desc = if (signature != null && signature.hasDesc()) { nameResolver.getString(signature.desc) - } - else { + } else { val parameterTypes = listOfNotNull(proto.receiverType(typeTable)) + proto.valueParameterList.map { it.type(typeTable) } val parametersDesc = parameterTypes.map { mapTypeDefault(it, nameResolver) ?: return null } @@ -82,15 +81,14 @@ object JvmProtoBufUtil { } fun getJvmConstructorSignature( - proto: ProtoBuf.Constructor, - nameResolver: NameResolver, - typeTable: TypeTable + proto: ProtoBuf.Constructor, + nameResolver: NameResolver, + typeTable: TypeTable ): JvmMemberSignature.Method? { val signature = proto.getExtensionOrNull(JvmProtoBuf.constructorSignature) val desc = if (signature != null && signature.hasDesc()) { nameResolver.getString(signature.desc) - } - else { + } else { proto.valueParameterList.map { mapTypeDefault(it.type(typeTable), nameResolver) ?: return null }.joinToString(separator = "", prefix = "(", postfix = ")V") @@ -99,9 +97,9 @@ object JvmProtoBufUtil { } fun getJvmFieldSignature( - proto: ProtoBuf.Property, - nameResolver: NameResolver, - typeTable: TypeTable + proto: ProtoBuf.Property, + nameResolver: NameResolver, + typeTable: TypeTable ): JvmMemberSignature.Field? { val signature = proto.getExtensionOrNull(JvmProtoBuf.propertySignature) ?: return null val field = if (signature.hasField()) signature.field else return null diff --git a/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/ModuleMapping.kt b/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/ModuleMapping.kt index 8a4a0d38534..a3f48539af5 100644 --- a/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/ModuleMapping.kt +++ b/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/ModuleMapping.kt @@ -21,8 +21,7 @@ class ModuleMapping private constructor( override fun toString() = debugName companion object { - @JvmField - val MAPPING_FILE_EXT: String = "kotlin_module" + const val MAPPING_FILE_EXT: String = "kotlin_module" @JvmField val EMPTY: ModuleMapping = ModuleMapping(emptyMap(), BinaryModuleData(emptyList()), "EMPTY") @@ -44,8 +43,7 @@ class ModuleMapping private constructor( val versionNumber = try { IntArray(stream.readInt()) { stream.readInt() } - } - catch (e: IOException) { + } catch (e: IOException) { return CORRUPTED } @@ -67,8 +65,8 @@ class ModuleMapping private constructor( if (isJvmPackageNameSupported) { for ((index, partShortName) in proto.classWithJvmPackageNameShortNameList.withIndex()) { val packageId = proto.classWithJvmPackageNamePackageIdList.getOrNull(index) - ?: proto.classWithJvmPackageNamePackageIdList.lastOrNull() - ?: continue + ?: proto.classWithJvmPackageNamePackageIdList.lastOrNull() + ?: continue val jvmPackageName = moduleProto.jvmPackageNameList.getOrNull(packageId) ?: continue packageParts.addPart(internalNameOf(jvmPackageName, partShortName), null) } @@ -161,8 +159,8 @@ class PackageParts(val packageFqName: String) { // Writes information about package parts which have a different JVM package from the Kotlin package (with the help of @JvmPackageName) private fun JvmModuleProtoBuf.PackageParts.Builder.writePartsOutsidePackage( - parts: List, - packageTableBuilder: JvmModuleProtoBuf.Module.Builder + parts: List, + packageTableBuilder: JvmModuleProtoBuf.Module.Builder ) { val packageIds = mutableListOf() for ((packageInternalName, partsInPackage) in parts.groupBy { it.packageName }.toSortedMap()) { @@ -198,14 +196,14 @@ class PackageParts(val packageFqName: String) { } override fun equals(other: Any?) = - other is PackageParts && - other.packageFqName == packageFqName && other.packageParts == packageParts && other.metadataParts == metadataParts + other is PackageParts && + other.packageFqName == packageFqName && other.packageParts == packageParts && other.metadataParts == metadataParts override fun hashCode() = - (packageFqName.hashCode() * 31 + packageParts.hashCode()) * 31 + metadataParts.hashCode() + (packageFqName.hashCode() * 31 + packageParts.hashCode()) * 31 + metadataParts.hashCode() override fun toString() = - (parts + metadataParts).toString() + (parts + metadataParts).toString() } fun JvmModuleProtoBuf.Module.serializeToByteArray(versionArray: IntArray): ByteArray { diff --git a/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/utfEncoding.kt b/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/utfEncoding.kt index b4b1be0559b..0d018e1cda0 100644 --- a/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/utfEncoding.kt +++ b/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/utfEncoding.kt @@ -35,10 +35,9 @@ fun bytesToStrings(bytes: ByteArray): Array { for (b in bytes) { val c = b.toInt() and 0xFF // 0 <= c <= 255 buffer.append(c.toChar()) - if (0 < b && b <= 127) { + if (b in 1..127) { bytesInBuffer++ - } - else { + } else { bytesInBuffer += 2 } diff --git a/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/serialization/JvmStringTable.kt b/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/serialization/JvmStringTable.kt index d1ef55194c4..a6a81f0a2ed 100644 --- a/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/serialization/JvmStringTable.kt +++ b/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/serialization/JvmStringTable.kt @@ -30,17 +30,16 @@ open class JvmStringTable(nameResolver: JvmNameResolver? = null) : StringTable { } override fun getStringIndex(string: String): Int = - map.getOrPut(string) { - strings.size.apply { - strings.add(string) + map.getOrPut(string) { + strings.size.apply { + strings.add(string) - val lastRecord = records.lastOrNull() - if (lastRecord != null && lastRecord.isTrivial()) { - lastRecord.range = lastRecord.range + 1 - } - else records.add(Record.newBuilder()) - } + val lastRecord = records.lastOrNull() + if (lastRecord != null && lastRecord.isTrivial()) { + lastRecord.range = lastRecord.range + 1 + } else records.add(Record.newBuilder()) } + } private fun Record.Builder.isTrivial(): Boolean { return !hasPredefinedIndex() && !hasOperation() && substringIndexCount == 0 && replaceCharCount == 0 @@ -73,15 +72,13 @@ open class JvmStringTable(nameResolver: JvmNameResolver? = null) : StringTable { // If the class is local or any of its outer class names contains '$', store a literal string if (isLocal || '$' in className) { strings.add(className) - } - else { + } else { val predefinedIndex = JvmNameResolver.getPredefinedStringIndex(className) if (predefinedIndex != null) { record.predefinedIndex = predefinedIndex // TODO: move all records with predefined names to the end and do not write associated strings for them (since they are ignored) strings.add("") - } - else { + } else { record.operation = Record.Operation.DESC_TO_CLASS_ID strings.add("L${className.replace('.', '$')};") } diff --git a/core/metadata/src/org/jetbrains/kotlin/metadata/deserialization/TypeTable.kt b/core/metadata/src/org/jetbrains/kotlin/metadata/deserialization/TypeTable.kt index 0f0ab024606..27406f036a1 100644 --- a/core/metadata/src/org/jetbrains/kotlin/metadata/deserialization/TypeTable.kt +++ b/core/metadata/src/org/jetbrains/kotlin/metadata/deserialization/TypeTable.kt @@ -26,11 +26,9 @@ class TypeTable(typeTable: ProtoBuf.TypeTable) { typeTable.typeList.mapIndexed { i, type -> if (i >= firstNullable) { type.toBuilder().setNullable(true).build() - } - else type + } else type } - } - else originalTypes + } else originalTypes } operator fun get(index: Int) = types[index] diff --git a/core/metadata/src/org/jetbrains/kotlin/metadata/serialization/MutableTable.kt b/core/metadata/src/org/jetbrains/kotlin/metadata/serialization/MutableTable.kt index 424a7294ed2..bc7c94513e7 100644 --- a/core/metadata/src/org/jetbrains/kotlin/metadata/serialization/MutableTable.kt +++ b/core/metadata/src/org/jetbrains/kotlin/metadata/serialization/MutableTable.kt @@ -4,6 +4,7 @@ */ @file:Suppress("FINITE_BOUNDS_VIOLATION_IN_JAVA") + package org.jetbrains.kotlin.metadata.serialization import org.jetbrains.kotlin.metadata.ProtoBuf @@ -20,9 +21,9 @@ private class TableElementWrapper - where Element : GeneratedMessageLite.Builder<*, Element>, - Table : GeneratedMessageLite, - TableBuilder : GeneratedMessageLite.Builder { + where Element : GeneratedMessageLite.Builder<*, Element>, + Table : GeneratedMessageLite, + TableBuilder : GeneratedMessageLite.Builder { private val interner = Interner>() @@ -31,16 +32,16 @@ abstract class MutableTable protected abstract fun addElement(builder: TableBuilder, element: Element) operator fun get(type: Element): Int = - interner.intern(TableElementWrapper(type)) + interner.intern(TableElementWrapper(type)) @Suppress("UNCHECKED_CAST") fun serialize(): Table? = - if (interner.isEmpty) null - else createTableBuilder().apply { - for (obj in interner.allInternedObjects) { - addElement(this, obj.builder) - } - }.build() as Table + if (interner.isEmpty) null + else createTableBuilder().apply { + for (obj in interner.allInternedObjects) { + addElement(this, obj.builder) + } + }.build() as Table } class MutableTypeTable : MutableTable() { @@ -51,7 +52,8 @@ class MutableTypeTable : MutableTable() { +class MutableVersionRequirementTable : + MutableTable() { override fun createTableBuilder(): ProtoBuf.VersionRequirementTable.Builder = ProtoBuf.VersionRequirementTable.newBuilder() override fun addElement(builder: ProtoBuf.VersionRequirementTable.Builder, element: ProtoBuf.VersionRequirement.Builder) {