List<PsiExpression> (@NotNull PsiSwitchExpression switchExpression) { PsiCodeBlock body = switchExpression.getBody(); if (body != null) { List<PsiExpression> result = new ArrayList<>(); PsiStatement[] statements = body.getStatements(); for (PsiStatement statement : statements) { if (statement instanceof PsiSwitchLabeledRuleStatement) { PsiStatement ruleBody = ((PsiSwitchLabeledRuleStatement)statement).getBody(); if (ruleBody instanceof PsiExpressionStatement) { result.add(((PsiExpressionStatement)ruleBody).getExpression()); } else if (ruleBody instanceof PsiBlockStatement) { collectSwitchResultExpressions(result, ruleBody); } } else { collectSwitchResultExpressions(result, statement); } } return result; } return Collections.emptyList(); }