aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/values/MethodValue.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/couscous/values/MethodValue.java')
-rw-r--r--src/main/java/org/zwobble/couscous/values/MethodValue.java11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/main/java/org/zwobble/couscous/values/MethodValue.java b/src/main/java/org/zwobble/couscous/values/MethodValue.java
index fe23f94..df53722 100644
--- a/src/main/java/org/zwobble/couscous/values/MethodValue.java
+++ b/src/main/java/org/zwobble/couscous/values/MethodValue.java
@@ -2,6 +2,7 @@ package org.zwobble.couscous.values;
import java.util.List;
import java.util.function.BiFunction;
+import java.util.function.Supplier;
import org.zwobble.couscous.interpreter.Arguments;
@@ -10,11 +11,17 @@ import lombok.Getter;
import lombok.Value;
@Value
-public class MethodValue<T> {
- List<ConcreteType<?>> argumentTypes;
+public class MethodValue<T> implements Callable {
+ @Getter(value=AccessLevel.NONE)
+ Supplier<List<ConcreteType<?>>> argumentTypes;
@Getter(value=AccessLevel.NONE)
BiFunction<T, Arguments, InterpreterValue> apply;
+ @Override
+ public List<ConcreteType<?>> getArgumentTypes() {
+ return argumentTypes.get();
+ }
+
public InterpreterValue apply(T receiver, Arguments arguments) {
return apply.apply(receiver, arguments);
}