diff options
Diffstat (limited to 'src/main/java/org')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java | 5 | ||||
| -rw-r--r-- | src/main/java/org/zwobble/couscous/util/Fold.java | 7 |
2 files changed, 9 insertions, 3 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 3ef8a0f..0b53784 100644 --- a/src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java +++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaStatementReader.java @@ -1,6 +1,5 @@ package org.zwobble.couscous.frontends.java; -import com.google.common.collect.Lists; import org.eclipse.jdt.core.dom.*; import org.zwobble.couscous.ast.*; import org.zwobble.couscous.ast.sugar.SwitchCaseNode; @@ -23,7 +22,7 @@ import static org.zwobble.couscous.ast.sugar.SwitchCaseNode.switchCase; import static org.zwobble.couscous.frontends.java.JavaExpressionReader.coerceExpression; import static org.zwobble.couscous.frontends.java.JavaTypes.typeOf; import static org.zwobble.couscous.util.ExtraLists.*; -import static org.zwobble.couscous.util.Fold.foldLeft; +import static org.zwobble.couscous.util.Fold.foldRight; import static org.zwobble.couscous.util.Tails.tail; import static org.zwobble.couscous.util.Tails.tails; import static org.zwobble.couscous.util.UpToAndIncludingIterable.upToAndIncluding; @@ -117,7 +116,7 @@ class JavaStatementReader { return cons( switchValueAssignment, - foldLeft(Lists.reverse(cases), handleDefault, (handle, currentCase) -> + foldRight(cases, handleDefault, (handle, currentCase) -> currentCase.getValue() .map(value -> list(ifStatement( methodCall( diff --git a/src/main/java/org/zwobble/couscous/util/Fold.java b/src/main/java/org/zwobble/couscous/util/Fold.java index 85622ed..e86454e 100644 --- a/src/main/java/org/zwobble/couscous/util/Fold.java +++ b/src/main/java/org/zwobble/couscous/util/Fold.java @@ -1,5 +1,8 @@ package org.zwobble.couscous.util; +import com.google.common.collect.Lists; + +import java.util.List; import java.util.function.BiFunction; public class Fold { @@ -10,4 +13,8 @@ public class Fold { } return value; } + + public static <T, V> V foldRight(List<T> iterable, V initialValue, BiFunction<V, T, V> function) { + return foldLeft(Lists.reverse(iterable), initialValue, function); + } } |
