fun canUnite()

in src/main/kotlin/git4ideaClasses/IRGitModel.kt [94:112]


    fun canUnite(indices: List<Int>): Boolean {
        if (indices.size < 2) {
            return false
        }
        if (indices.any { rows[it].type == Type.NonUnite.UpdateRef }) return false
        val root =
            when (val element = rows[indices.first()]) {
                is Element.Simple -> return true
                is Element.UniteRoot -> element
                is Element.UniteChild -> element.root
            }
        indices.drop(1).forEach { index ->
            val element = rows[index] as? Element.UniteChild ?: return true
            if (element.root !== root) {
                return true
            }
        }
        return false
    }