aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/interpreter/values
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-03-31 21:25:22 +0100
committerMichael Williamson <mike@zwobble.org>2016-03-31 21:25:22 +0100
commitbb107372f059eadf3c2f0f576d464e4232f2ca33 (patch)
tree6053bb15fd3747d1ffb6f9eda916faaa2f334a2e /src/main/java/org/zwobble/couscous/interpreter/values
parentc0f18f14d6dd7d8f8ec890fe6d8fd67c4fba7ea3 (diff)
Pass around Arguments instead of List<InterpreterValue>
Diffstat (limited to 'src/main/java/org/zwobble/couscous/interpreter/values')
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/values/InstanceReceiverValue.java5
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/values/ReceiverValue.java5
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/values/StaticReceiverValue.java5
3 files changed, 7 insertions, 8 deletions
diff --git a/src/main/java/org/zwobble/couscous/interpreter/values/InstanceReceiverValue.java b/src/main/java/org/zwobble/couscous/interpreter/values/InstanceReceiverValue.java
index cdc2167..77effc9 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/values/InstanceReceiverValue.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/values/InstanceReceiverValue.java
@@ -1,11 +1,10 @@
package org.zwobble.couscous.interpreter.values;
import org.zwobble.couscous.ast.MethodSignature;
+import org.zwobble.couscous.interpreter.Arguments;
import org.zwobble.couscous.interpreter.Environment;
import org.zwobble.couscous.interpreter.types.InterpreterType;
-import java.util.List;
-
public class InstanceReceiverValue implements ReceiverValue {
private final InterpreterValue value;
@@ -14,7 +13,7 @@ public class InstanceReceiverValue implements ReceiverValue {
}
@Override
- public InterpreterValue callMethod(Environment environment, MethodSignature signature, List<InterpreterValue> arguments) {
+ public InterpreterValue callMethod(Environment environment, MethodSignature signature, Arguments arguments) {
InterpreterType type = value.getType();
return type.callMethod(environment, value, signature, arguments);
}
diff --git a/src/main/java/org/zwobble/couscous/interpreter/values/ReceiverValue.java b/src/main/java/org/zwobble/couscous/interpreter/values/ReceiverValue.java
index 5d6d804..b4c0dbc 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/values/ReceiverValue.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/values/ReceiverValue.java
@@ -1,12 +1,11 @@
package org.zwobble.couscous.interpreter.values;
import org.zwobble.couscous.ast.MethodSignature;
+import org.zwobble.couscous.interpreter.Arguments;
import org.zwobble.couscous.interpreter.Environment;
-import java.util.List;
-
public interface ReceiverValue {
- InterpreterValue callMethod(Environment environment, MethodSignature signature, List<InterpreterValue> arguments);
+ InterpreterValue callMethod(Environment environment, MethodSignature signature, Arguments arguments);
InterpreterValue getField(String fieldName);
void setField(String fieldName, InterpreterValue value);
}
diff --git a/src/main/java/org/zwobble/couscous/interpreter/values/StaticReceiverValue.java b/src/main/java/org/zwobble/couscous/interpreter/values/StaticReceiverValue.java
index deca938..51a1736 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/values/StaticReceiverValue.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/values/StaticReceiverValue.java
@@ -1,6 +1,7 @@
package org.zwobble.couscous.interpreter.values;
import org.zwobble.couscous.ast.MethodSignature;
+import org.zwobble.couscous.interpreter.Arguments;
import org.zwobble.couscous.interpreter.Environment;
import org.zwobble.couscous.interpreter.Executor;
import org.zwobble.couscous.interpreter.types.InterpreterType;
@@ -20,7 +21,7 @@ public class StaticReceiverValue implements ReceiverValue {
}
@Override
- public InterpreterValue callMethod(Environment environment, MethodSignature signature, List<InterpreterValue> arguments) {
+ public InterpreterValue callMethod(Environment environment, MethodSignature signature, Arguments arguments) {
return type.callStaticMethod(environment, signature, arguments);
}
@@ -38,7 +39,7 @@ public class StaticReceiverValue implements ReceiverValue {
Executor.exec(environment, type.getStaticConstructor());
}
- public InterpreterValue callConstructor(Environment environment, Optional<List<Type>> typeParameters, List<InterpreterValue> arguments) {
+ public InterpreterValue callConstructor(Environment environment, Optional<List<Type>> typeParameters, Arguments arguments) {
InterpreterType objectType = typeParameters
.<InterpreterType>map(parameters -> new ParameterizedInterpreterType(type, parameters))
.orElse(type);