void (PsiSwitchBlock statement) { final PsiCodeBlock body = statement.getBody(); if (body == null) { return; } boolean pendingLabel = false; for (final PsiStatement child : body.getStatements()) { if (child instanceof PsiSwitchLabelStatement) { pendingLabel = !((PsiSwitchLabelStatement)child).isDefaultCase(); } else if (child instanceof PsiSwitchLabeledRuleStatement && !((PsiSwitchLabeledRuleStatement)child).isDefaultCase()) { m_complexity++; } else if (pendingLabel) { m_complexity++; pendingLabel = false; } } }