Drop old enum entries from binary format

Original commit: fc74759231
This commit is contained in:
Alexander Udalov
2015-12-23 22:26:55 +03:00
parent dece44df86
commit 8d1a6b8c9f
3 changed files with 2 additions and 24 deletions
@@ -218,7 +218,7 @@ public class IncrementalCacheImpl(
public fun clearCacheForRemovedClasses(): CompilationResult {
fun <T> T.getNonPrivateNames(nameResolver: NameResolver, vararg members: T.() -> List<MessageLite>) =
fun <T> T.getNonPrivateNames(nameResolver: NameResolver, vararg members: T.() -> List<MessageLite>): Set<String> =
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)
}
@@ -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)
}
@@ -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 -> {