private static boolean branchesAreEquivalent(PsiStatement @NotNull [] thenBranch,
                                               @NotNull List<? extends PsiStatement> statements,
                                               @NotNull EquivalenceChecker equivalence) {
    for (int i = 0, length = statements.size(); i < length; i++) {
      PsiStatement elseStmt = statements.get(i);
      PsiStatement thenStmt = thenBranch[i];
      if (!equivalence.statementsAreEquivalent(thenStmt, elseStmt)) return false;
    }
    return true;
  }
private static boolean branchesAreEquivalent(PsiStatement @NotNull [] thenBranch,
                                               @NotNull List<? extends PsiStatement> statements,
                                               @NotNull EquivalenceChecker equivalence)