aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/interpreter/Executor.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/couscous/interpreter/Executor.java')
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/Executor.java6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/main/java/org/zwobble/couscous/interpreter/Executor.java b/src/main/java/org/zwobble/couscous/interpreter/Executor.java
index fcdca98..d85013e 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/Executor.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/Executor.java
@@ -13,6 +13,7 @@ import java.util.stream.Stream;
import static org.zwobble.couscous.ast.structure.NodeStructure.descendantNodesAndSelf;
import static org.zwobble.couscous.interpreter.Evaluator.eval;
import static org.zwobble.couscous.interpreter.Evaluator.evalCondition;
+import static org.zwobble.couscous.util.ExtraIterables.forEach;
public class Executor implements StatementNodeMapper<Optional<InterpreterValue>> {
public static InterpreterValue callMethod(
@@ -53,11 +54,8 @@ public class Executor implements StatementNodeMapper<Optional<InterpreterValue>>
Optional<InterpreterValue> thisValue,
PositionalArguments arguments)
{
- // TODO use map with multiple iterables
StackFrameBuilder stackFrame = new StackFrameBuilder();
- for (int index = 0; index < formalArguments.size(); index++) {
- stackFrame.declare(formalArguments.get(index), arguments.get(index));
- }
+ forEach(formalArguments, arguments, stackFrame::declare);
findDeclarations(statements).forEach(declaration -> stackFrame.declare(declaration));
return environment.withStackFrame(thisValue, stackFrame.build());
}