boolean (@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)); }