void (@NotNull GrCaseSection caseSection) { for (GrExpression value : caseSection.getExpressions()) { if (value != null) { value.accept(this); } } final GrStatement[] statements = caseSection.getStatements(); //infer 'may be return' position int i; //noinspection StatementWithEmptyBody for (i = statements.length - 1; i >= 0 && statements[i] instanceof GrBreakStatement; i--) { } for (int j = 0; j < statements.length; j++) { GrStatement statement = statements[j]; statement.accept(this); if (j == i) handlePossibleReturn(statement); } if (statements.length > 0) { handlePossibleYield(statements[statements.length - 1]); } if (myHead != null) { addPendingEdge(caseSection, myHead); } if (caseSection.getArrow() != null) { // arrow-style switch expressions are not fall-through var parent = caseSection.getParent(); if (parent instanceof GrSwitchElement) { readdPendingEdge((GroovyPsiElement)parent); } interruptFlow(); } }