From c4b49f33c990c53387e8a83a1d84b8a00177c4ac Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Wed, 13 Jan 2016 21:25:06 +0000 Subject: Use flatMap instead of list append --- .../couscous/frontends/java/JavaStatementReader.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'src/main/java/org') 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 statements = switchStatement.statements(); - List cases = new ArrayList<>(); - - for (List tail : tails(statements)) { - Statement first = tail.get(0); - if (first.getNodeType() == ASTNode.SWITCH_CASE) { - cases.add(readSwitchCase((SwitchCase) first, tail(tail))); - } - } + List 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 handleDefault = tryFind(cases, currentCase -> currentCase.isDefault()) .transform(currentCase -> currentCase.getStatements()) -- cgit v1.2.3