diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-09-30 20:14:04 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-09-30 20:14:04 +0100 |
| commit | 37968a7c65eaf96ff0ab937f0a7827e0891c8880 (patch) | |
| tree | 5b2122a46752a28741112189d613d8b4c770751f /src/main/java/org/zwobble/couscous/values/MethodValue.java | |
| parent | c1de40d3615a8efc852fd1a12832437ee3ce4318 (diff) | |
Throw error on wrong number of arguments
Diffstat (limited to 'src/main/java/org/zwobble/couscous/values/MethodValue.java')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/values/MethodValue.java | 18 |
1 files changed, 16 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 38ef1d5..fe23f94 100644 --- a/src/main/java/org/zwobble/couscous/values/MethodValue.java +++ b/src/main/java/org/zwobble/couscous/values/MethodValue.java @@ -1,7 +1,21 @@ package org.zwobble.couscous.values; import java.util.List; +import java.util.function.BiFunction; -public interface MethodValue { - InterpreterValue call(List<InterpreterValue> arguments); +import org.zwobble.couscous.interpreter.Arguments; + +import lombok.AccessLevel; +import lombok.Getter; +import lombok.Value; + +@Value +public class MethodValue<T> { + List<ConcreteType<?>> argumentTypes; + @Getter(value=AccessLevel.NONE) + BiFunction<T, Arguments, InterpreterValue> apply; + + public InterpreterValue apply(T receiver, Arguments arguments) { + return apply.apply(receiver, arguments); + } } |
