From 8d1a6b8c9ff307a0ae2faa5f9c703b83615ff634 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 23 Dec 2015 22:26:55 +0300 Subject: [PATCH] Drop old enum entries from binary format Original commit: fc74759231c4d54c710f2e3402e767a5f1facbcc --- .../jps/incremental/IncrementalCacheImpl.kt | 5 ++--- .../jps/incremental/ProtoCompareGenerated.kt | 19 ------------------- .../jps/incremental/protoDifferenceUtils.kt | 2 -- 3 files changed, 2 insertions(+), 24 deletions(-) diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCacheImpl.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCacheImpl.kt index 653f7494278..ebcd3394391 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCacheImpl.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/IncrementalCacheImpl.kt @@ -218,7 +218,7 @@ public class IncrementalCacheImpl( public fun clearCacheForRemovedClasses(): CompilationResult { - fun T.getNonPrivateNames(nameResolver: NameResolver, vararg members: T.() -> List) = + fun T.getNonPrivateNames(nameResolver: NameResolver, vararg members: T.() -> List): Set = members.flatMap { this.it().filterNot { it.isPrivate }.names(nameResolver) }.toSet() fun createChangeInfo(className: JvmClassName): ChangeInfo? { @@ -248,8 +248,7 @@ public class IncrementalCacheImpl( ProtoBuf.Class::getConstructorList, ProtoBuf.Class::getFunctionList, ProtoBuf.Class::getPropertyList - ) + - classData.classProto.enumEntryNameList.map { classData.nameResolver.getString(it) }.toSet() + ) + classData.classProto.enumEntryList.map { classData.nameResolver.getString(it.name) } ChangeInfo.Removed(className.fqNameForClassNameWithoutDollars, memberNames) } diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/ProtoCompareGenerated.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/ProtoCompareGenerated.kt index 1ab985461c7..ac285dc6624 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/ProtoCompareGenerated.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/ProtoCompareGenerated.kt @@ -94,8 +94,6 @@ open class ProtoCompareGenerated(public val oldNameResolver: NameResolver, publi if (!checkEqualsClassProperty(old, new)) return false - if (!checkEqualsClassEnumEntryName(old, new)) return false - if (!checkEqualsClassEnumEntry(old, new)) return false if (old.hasTypeTable() != new.hasTypeTable()) return false @@ -122,7 +120,6 @@ open class ProtoCompareGenerated(public val oldNameResolver: NameResolver, publi CONSTRUCTOR_LIST, FUNCTION_LIST, PROPERTY_LIST, - ENUM_ENTRY_NAME_LIST, ENUM_ENTRY_LIST, TYPE_TABLE, CLASS_ANNOTATION_LIST @@ -157,8 +154,6 @@ open class ProtoCompareGenerated(public val oldNameResolver: NameResolver, publi if (!checkEqualsClassProperty(old, new)) result.add(ProtoBufClassKind.PROPERTY_LIST) - if (!checkEqualsClassEnumEntryName(old, new)) result.add(ProtoBufClassKind.ENUM_ENTRY_NAME_LIST) - if (!checkEqualsClassEnumEntry(old, new)) result.add(ProtoBufClassKind.ENUM_ENTRY_LIST) if (old.hasTypeTable() != new.hasTypeTable()) result.add(ProtoBufClassKind.TYPE_TABLE) @@ -673,16 +668,6 @@ open class ProtoCompareGenerated(public val oldNameResolver: NameResolver, publi return true } - open fun checkEqualsClassEnumEntryName(old: ProtoBuf.Class, new: ProtoBuf.Class): Boolean { - if (old.enumEntryNameCount != new.enumEntryNameCount) return false - - for(i in 0..old.enumEntryNameCount - 1) { - if (!checkStringEquals(old.getEnumEntryName(i), new.getEnumEntryName(i))) return false - } - - return true - } - open fun checkEqualsClassEnumEntry(old: ProtoBuf.Class, new: ProtoBuf.Class): Boolean { if (old.enumEntryCount != new.enumEntryCount) return false @@ -883,10 +868,6 @@ public fun ProtoBuf.Class.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: ( hashCode = 31 * hashCode + getProperty(i).hashCode(stringIndexes, fqNameIndexes) } - for(i in 0..enumEntryNameCount - 1) { - hashCode = 31 * hashCode + stringIndexes(getEnumEntryName(i)) - } - for(i in 0..enumEntryCount - 1) { hashCode = 31 * hashCode + getEnumEntry(i).hashCode(stringIndexes, fqNameIndexes) } diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/protoDifferenceUtils.kt b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/protoDifferenceUtils.kt index 6581f60fadb..32e59dc71ed 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/protoDifferenceUtils.kt +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/incremental/protoDifferenceUtils.kt @@ -206,8 +206,6 @@ private class DifferenceCalculatorForClass(oldData: ProtoMapValue, newData: Prot names.addAll(calcDifferenceForNonPrivateMembers(ProtoBuf.Class::getFunctionList)) ProtoBufClassKind.PROPERTY_LIST -> names.addAll(calcDifferenceForNonPrivateMembers(ProtoBuf.Class::getPropertyList)) - ProtoBufClassKind.ENUM_ENTRY_NAME_LIST -> - names.addAll(calcDifferenceForNames(oldProto.enumEntryNameList, newProto.enumEntryNameList)) ProtoBufClassKind.ENUM_ENTRY_LIST -> names.addAll(calcDifferenceForNames(oldProto.enumEntryList.map { it.name }, newProto.enumEntryList.map { it.name })) ProtoBufClassKind.TYPE_TABLE -> {