|
36 | 36 | import org.codehaus.groovy.ast.stmt.TryCatchStatement;
|
37 | 37 |
|
38 | 38 | import java.util.ArrayList;
|
| 39 | +import java.util.Iterator; |
39 | 40 | import java.util.List;
|
40 | 41 | import java.util.Objects;
|
41 | 42 |
|
@@ -100,9 +101,6 @@ public void visitMethod(final MethodNode node) {
|
100 | 101 |
|
101 | 102 | private Statement addReturnsIfNeeded(final Statement statement, final VariableScope scope) {
|
102 | 103 | if (statement instanceof ReturnStatement || statement instanceof ThrowStatement
|
103 |
| - // GRECLIPSE add -- GROOVY-9373 |
104 |
| - || statement instanceof EmptyStatement |
105 |
| - // GRECLIPSE end |
106 | 104 | || statement instanceof BytecodeSequence) {
|
107 | 105 | return statement;
|
108 | 106 | }
|
@@ -142,11 +140,23 @@ private Statement addReturnsIfNeeded(final Statement statement, final VariableSc
|
142 | 140 |
|
143 | 141 | if (statement instanceof SwitchStatement) {
|
144 | 142 | SwitchStatement switchStatement = (SwitchStatement) statement;
|
| 143 | + /* GRECLIPSE edit -- GROOVY-4727, GROOVY-9896 |
145 | 144 | for (CaseStatement caseStatement : switchStatement.getCaseStatements()) {
|
146 | 145 | Statement code = adjustSwitchCaseCode(caseStatement.getCode(), scope, false);
|
147 | 146 | if (doAdd) caseStatement.setCode(code);
|
148 | 147 | }
|
149 | 148 | Statement defaultStatement = adjustSwitchCaseCode(switchStatement.getDefaultStatement(), scope, true);
|
| 149 | + */ |
| 150 | + Statement defaultStatement = switchStatement.getDefaultStatement(); |
| 151 | + List<CaseStatement> caseStatements = switchStatement.getCaseStatements(); |
| 152 | + for (Iterator<CaseStatement> it = caseStatements.iterator(); it.hasNext();) { |
| 153 | + CaseStatement caseStatement = it.next(); |
| 154 | + Statement code = adjustSwitchCaseCode(caseStatement.getCode(), scope, |
| 155 | + defaultStatement == EmptyStatement.INSTANCE && !it.hasNext()); |
| 156 | + if (doAdd) caseStatement.setCode(code); |
| 157 | + } |
| 158 | + defaultStatement = adjustSwitchCaseCode(defaultStatement, scope, true); |
| 159 | + // GRECLIPSE end |
150 | 160 | if (doAdd) switchStatement.setDefaultStatement(defaultStatement);
|
151 | 161 | return switchStatement;
|
152 | 162 | }
|
|
0 commit comments