diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-03-31 21:25:22 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-03-31 21:25:22 +0100 |
| commit | bb107372f059eadf3c2f0f576d464e4232f2ca33 (patch) | |
| tree | 6053bb15fd3747d1ffb6f9eda916faaa2f334a2e /src/main/java/org/zwobble/couscous/interpreter/values | |
| parent | c0f18f14d6dd7d8f8ec890fe6d8fd67c4fba7ea3 (diff) | |
Pass around Arguments instead of List<InterpreterValue>
Diffstat (limited to 'src/main/java/org/zwobble/couscous/interpreter/values')
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); |
