boolean (PsiCaseLabelElement label) { PsiCaseLabelElementList caseLabelList = tryCast(label.getParent(), PsiCaseLabelElementList.class); if (caseLabelList == null) return false; PsiSwitchLabelStatementBase labelStatement = tryCast(caseLabelList.getParent(), PsiSwitchLabelStatementBase.class); if (labelStatement == null) return false; if (labelStatement instanceof PsiSwitchLabeledRuleStatement) { return ControlFlowUtils.stripBraces(((PsiSwitchLabeledRuleStatement)labelStatement).getBody()) instanceof PsiThrowStatement; } if (labelStatement instanceof PsiSwitchLabelStatement) { PsiElement cur = labelStatement; while(true) { PsiElement next = cur.getNextSibling(); if (!(next instanceof PsiComment) && !(next instanceof PsiWhiteSpace) && !(next instanceof PsiSwitchLabelStatement)) { return next instanceof PsiThrowStatement; } cur = next; } } return false; }