private boolean matchLabelStatement(@NotNull PsiSwitchLabelStatementBase statement1, @NotNull PsiSwitchLabelStatementBase statement2) {
    final PsiCaseLabelElementList labelElementList1 = statement1.getCaseLabelElementList();
    final PsiCaseLabelElementList labelElementList2 = statement2.getCaseLabelElementList();
    if (statement1.isDefaultCase() && !statement2.isDefaultCase()) {
      return false;
    }
    if (labelElementList1 == null) {
      return true;
    }
    final PsiCaseLabelElement[] caseLabelElements =
      (labelElementList2 == null) ? PsiCaseLabelElement.EMPTY_ARRAY : labelElementList2.getElements();
    if (!myMatchingVisitor.matchInAnyOrder(labelElementList1.getElements(), caseLabelElements)) {
      return false;
    }
    final PsiElement[] body = getBody(statement1);
    return body.length == 0 || myMatchingVisitor.matchSequentially(body, getBody(statement2));
  }
private boolean matchLabelStatement(@NotNull PsiSwitchLabelStatementBase statement1, @NotNull PsiSwitchLabelStatementBase statement2)