From 32aff0196961ec28f9975bdc578594b1ab9c56c7 Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Tue, 20 Jan 2015 20:44:06 +0300 Subject: [PATCH] Increase abi version --- .../jetbrains/kotlin/load/java/JvmAbi.java | 3 +- .../stubBuilder/ClassClsStubBuilder.kt | 2 +- .../decompiler/stubBuilder/clsStubBuilding.kt | 31 +------------------ 3 files changed, 3 insertions(+), 33 deletions(-) diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/JvmAbi.java b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/JvmAbi.java index 3cc449275a0..eae2cbb2ebd 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/JvmAbi.java +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/JvmAbi.java @@ -25,8 +25,7 @@ public final class JvmAbi { * This constant is used to identify binary format (class file) versions * If you change class file metadata format and/or naming conventions, please increase this number */ - //TODO: remove clsStubBuilding#sortCallableStubs and this comment when abi version is increased to 20 - public static final int VERSION = 19; + public static final int VERSION = 20; public static final String TRAIT_IMPL_CLASS_NAME = "$TImpl"; public static final String TRAIT_IMPL_SUFFIX = "$" + TRAIT_IMPL_CLASS_NAME; diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/ClassClsStubBuilder.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/ClassClsStubBuilder.kt index 040a6fb7dc9..bc03a69920c 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/ClassClsStubBuilder.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/ClassClsStubBuilder.kt @@ -197,7 +197,7 @@ private class ClassClsStubBuilder( private fun createCallableMemberStubs(classBody: KotlinPlaceHolderStubImpl) { val container = ProtoContainer(classProto, null) - for (callableProto in sortCallableStubs(classProto.getMemberList())) { + for (callableProto in classProto.getMemberList()) { createCallableStub(classBody, callableProto, c, container) } } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/clsStubBuilding.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/clsStubBuilding.kt index d3bf7c5f531..0dd1a63a146 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/clsStubBuilding.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/stubBuilder/clsStubBuilding.kt @@ -58,7 +58,7 @@ fun createPackageFacadeFileStub( ): KotlinFileStubImpl { val fileStub = createFileStub(packageFqName) val container = ProtoContainer(null, packageFqName) - for (callableProto in sortCallableStubs(packageProto.getMemberList())) { + for (callableProto in packageProto.getMemberList()) { createCallableStub(fileStub, callableProto, c, container) } return fileStub @@ -201,32 +201,3 @@ val ProtoBuf.Callable.annotatedCallableKind: AnnotatedCallableKind fun Name.ref() = StringRef.fromString(this.asString()) fun FqName.ref() = StringRef.fromString(this.asString()) - -//NOTE: sorting should be removed when stub version is increased next time -// this workaround is relevant for abi version 19 -// this is needed to avoid building stubs in wrong order for compilers built before 77dd027d690c0fe48abccdea04bfeab871c7c6de was introduced -fun sortCallableStubs(unordered: List): List { - val extensionProperties = arrayListOf() - val nonExtensionProperties = arrayListOf() - val extensionFunctions = arrayListOf() - val nonExtensionFunctions = arrayListOf() - for (callable in unordered) { - val isExtension = callable.hasReceiverType() - when (Flags.CALLABLE_KIND[callable.getFlags()]) { - CallableKind.FUN -> { - if (isExtension) extensionFunctions.add(callable) else nonExtensionFunctions.add(callable) - } - CallableKind.VAL, CallableKind.VAR -> { - if (isExtension) extensionProperties.add(callable) else nonExtensionProperties.add(callable) - } - } - } - val result = ArrayList( - extensionProperties.size() + nonExtensionProperties.size() + extensionFunctions.size() + nonExtensionFunctions.size() - ) - result.addAll(nonExtensionProperties) - result.addAll(extensionProperties) - result.addAll(nonExtensionFunctions) - result.addAll(extensionFunctions) - return result -}