aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-01-13 21:25:06 +0000
committerMichael Williamson <mike@zwobble.org>2016-01-13 21:25:06 +0000
commitc4b49f33c990c53387e8a83a1d84b8a00177c4ac (patch)
treefbf134c8effab9f3e180856fec3ce4c5f195e947 /src/main/java/org
parent9d5cdb693089e98165f9e361fe3db795fc45cc33 (diff)
Use flatMap instead of list append
Diffstat (limited to 'src/main/java/org')
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java
index 0b53784..c9b6d86 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java
@@ -6,7 +6,6 @@ import org.zwobble.couscous.ast.sugar.SwitchCaseNode;
import org.zwobble.couscous.values.BooleanValue;
import org.zwobble.couscous.values.ObjectValues;
-import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
@@ -101,14 +100,16 @@ class JavaStatementReader {
LocalVariableDeclarationNode switchValueAssignment = scope.temporaryVariable(switchValue);
List<Statement> statements = switchStatement.statements();
- List<SwitchCaseNode> cases = new ArrayList<>();
-
- for (List<Statement> tail : tails(statements)) {
- Statement first = tail.get(0);
- if (first.getNodeType() == ASTNode.SWITCH_CASE) {
- cases.add(readSwitchCase((SwitchCase) first, tail(tail)));
- }
- }
+ List<SwitchCaseNode> cases = eagerFlatMap(
+ tails(statements),
+ tail -> {
+ Statement first = tail.get(0);
+ if (first.getNodeType() == ASTNode.SWITCH_CASE) {
+ return list(readSwitchCase((SwitchCase) first, tail(tail)));
+ } else {
+ return list();
+ }
+ });
List<StatementNode> handleDefault = tryFind(cases, currentCase -> currentCase.isDefault())
.transform(currentCase -> currentCase.getStatements())