diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-01-13 21:25:06 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-01-13 21:25:06 +0000 |
| commit | c4b49f33c990c53387e8a83a1d84b8a00177c4ac (patch) | |
| tree | fbf134c8effab9f3e180856fec3ce4c5f195e947 /src/main/java | |
| parent | 9d5cdb693089e98165f9e361fe3db795fc45cc33 (diff) | |
Use flatMap instead of list append
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java | 19 |
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()) |
