in src/main/kotlin/org/jetbrains/objcdiff/reports/buildDiffReport.kt [113:140]
fun verifyMembersOrder(
actualType: ObjCType,
expectedType: ObjCType
): Boolean {
if (actualType is ObjCType.ObjectType && expectedType is ObjCType.ObjectType) {
val actualMembers = actualType.members.map { it.key }
val expectedMembers = expectedType.members.map { it.key }
if (actualMembers.isEmpty() && expectedMembers.isEmpty()) return true
if (actualMembers.isEmpty()) return true
if (expectedMembers.isEmpty()) return true
var a = 0
var e = 0
var actual = actualMembers.getOrNull(a)
var expected = actualMembers.getOrNull(e)
while (actual != null && expected != null) {
if (actual != expected) return false
a++
e++
actual = actualMembers.getOrNull(a)
expected = expectedMembers.getOrNull(a)
}
}
return true
}