aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java2
-rw-r--r--src/main/java/org/zwobble/couscous/util/ExtraLists.java18
2 files changed, 19 insertions, 1 deletions
diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
index e6dbe50..fc93345 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
@@ -414,7 +414,7 @@ public class JavaReader {
overrides(method),
override -> !override.equals(methodNode.signature())),
override -> {
- List<FormalArgumentNode> arguments = eagerMap(override.getArguments(), argument -> scope.formalArgument("arg", argument));
+ List<FormalArgumentNode> arguments = eagerMapWithIndex(override.getArguments(), (argument, index) -> scope.formalArgument("arg" + index, argument));
MethodCallNode call = MethodCallNode.methodCall(
thisReference(type),
methodNode.getName(),
diff --git a/src/main/java/org/zwobble/couscous/util/ExtraLists.java b/src/main/java/org/zwobble/couscous/util/ExtraLists.java
index 8485b02..3ee0ce3 100644
--- a/src/main/java/org/zwobble/couscous/util/ExtraLists.java
+++ b/src/main/java/org/zwobble/couscous/util/ExtraLists.java
@@ -85,6 +85,24 @@ public class ExtraLists {
.collect(Collectors.toList());
}
+ public static <T, R> List<R> eagerMapWithIndex(
+ Iterable<T> iterable,
+ FunctionWithIndex<T, R> function)
+ {
+ ImmutableList.Builder<R> builder = ImmutableList.builder();
+ int index = 0;
+ Iterator<T> iterator = iterable.iterator();
+ while (iterator.hasNext()) {
+ builder.add(function.apply(iterator.next(), index));
+ index++;
+ }
+ return builder.build();
+ }
+
+ public interface FunctionWithIndex<T, R> {
+ R apply(T value, int index);
+ }
+
public static <T1, T2, R> List<R> eagerMap(
Iterable<T1> iterable1,
Iterable<T2> iterable2,