aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/interpreter/Executor.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-28 14:45:56 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-28 14:45:56 +0000
commitea417d7c4d430d4bb6fcce14e64ffda82f475805 (patch)
treeeddfd9b3374610a7b1b1f0af86d7a1e9374e8eb8 /src/main/java/org/zwobble/couscous/interpreter/Executor.java
parent9600fba4a61e2e42da2221c1ec15e2a20072afa8 (diff)
Extract forEach over two iterabes
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());
}