[Commonizer] Metadata comparator: A special path element for FlexibleTypeUpperBound

^KT-62753
This commit is contained in:
Dmitriy Dolovov
2024-02-20 00:32:11 +01:00
committed by Space Team
parent cabd9ad1ec
commit 40af02ca4f
@@ -120,6 +120,10 @@ class MetadataDeclarationsComparator private constructor(private val config: Con
override fun toString() = "TypeArgument #$index"
}
class FlexibleTypeUpperBound(val upperBoundA: KmFlexibleTypeUpperBound, val upperBoundB: KmFlexibleTypeUpperBound) : PathElement {
override fun toString() = "TypeFlexibleUpperBound"
}
class EnumEntry(val entryA: KlibEnumEntry, val entryB: KlibEnumEntry) : PathElement {
override fun toString() = "EnumEntry '${entryA.name}'"
}
@@ -175,6 +179,7 @@ class MetadataDeclarationsComparator private constructor(private val config: Con
EffectExpression(entityA, entityB, optionalIndex)
}
entityA is KlibEnumEntry && entityB is KlibEnumEntry -> EnumEntry(entityA, entityB)
entityA is KmFlexibleTypeUpperBound && entityB is KmFlexibleTypeUpperBound -> FlexibleTypeUpperBound(entityA, entityB)
else -> error("Unknown combination of entities: ${entityA::class.java}, ${entityB::class.java}")
}
}