fix KT-8648 Exception from incremental compilation

#KT-8648 Fixed

Original commit: e9d7bbf493
This commit is contained in:
Michael Nedzelsky
2015-07-29 13:55:39 +03:00
parent 010d721b38
commit 3a377fbde4
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf
/** This file is generated by org.jetbrains.kotlin.generators.protobuf.GenerateProtoBufCompare. DO NOT MODIFY MANUALLY */
open class ProtoCompareGenerated(private val oldNameResolver: NameResolver, private val newNameResolver: NameResolver) {
private val nameIdMap: MutableMap<Int, Int> = hashMapOf()
private val stringIdMap: MutableMap<Int, Int> = hashMapOf()
private val fqNameIdMap: MutableMap<Int, Int> = hashMapOf()
@@ -152,7 +152,7 @@ open class ProtoCompareGenerated(private val oldNameResolver: NameResolver, priv
if (old.hasFlexibleTypeCapabilitiesId() != new.hasFlexibleTypeCapabilitiesId()) return false
if (old.hasFlexibleTypeCapabilitiesId()) {
if (!checkNameIdEquals(old.flexibleTypeCapabilitiesId, new.flexibleTypeCapabilitiesId)) return false
if (!checkStringIdEquals(old.flexibleTypeCapabilitiesId, new.flexibleTypeCapabilitiesId)) return false
}
if (old.hasFlexibleUpperBound() != new.hasFlexibleUpperBound()) return false
@@ -221,7 +221,7 @@ open class ProtoCompareGenerated(private val oldNameResolver: NameResolver, priv
}
open fun checkEquals(old: JvmProtoBuf.JvmMethodSignature, new: JvmProtoBuf.JvmMethodSignature): Boolean {
if (!checkNameIdEquals(old.name, new.name)) return false
if (!checkStringIdEquals(old.name, new.name)) return false
if (!checkEquals(old.returnType, new.returnType)) return false
@@ -300,7 +300,7 @@ open class ProtoCompareGenerated(private val oldNameResolver: NameResolver, priv
}
open fun checkEquals(old: JvmProtoBuf.JvmFieldSignature, new: JvmProtoBuf.JvmFieldSignature): Boolean {
if (!checkNameIdEquals(old.name, new.name)) return false
if (!checkStringIdEquals(old.name, new.name)) return false
if (!checkEquals(old.type, new.type)) return false
@@ -335,7 +335,7 @@ open class ProtoCompareGenerated(private val oldNameResolver: NameResolver, priv
if (old.hasStringValue() != new.hasStringValue()) return false
if (old.hasStringValue()) {
if (!checkNameIdEquals(old.stringValue, new.stringValue)) return false
if (!checkStringIdEquals(old.stringValue, new.stringValue)) return false
}
if (old.hasClassId() != new.hasClassId()) return false
@@ -500,15 +500,17 @@ open class ProtoCompareGenerated(private val oldNameResolver: NameResolver, priv
fun checkNameIdEquals(old: Int, new: Int): Boolean {
nameIdMap.get(old)?.let { return it == new }
fun checkStringIdEquals(old: Int, new: Int): Boolean {
stringIdMap.get(old)?.let { return it == new }
val oldValue = oldNameResolver.getName(old).asString()
val newValue = newNameResolver.getName(new).asString()
val oldValue = oldNameResolver.stringTable.getString(old)
val newValue = newNameResolver.stringTable.getString(new)
return if (oldValue == newValue) { nameIdMap[old] = new; true } else false
return if (oldValue == newValue) { stringIdMap[old] = new; true } else false
}
fun checkNameIdEquals(old: Int, new: Int): Boolean = checkStringIdEquals(old, new)
fun checkFqNameIdEquals(old: Int, new: Int): Boolean {
fqNameIdMap.get(old)?.let { return it == new }