fun verifyMembersOrder()

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
}