aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/interpreter
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-04-05 22:51:25 +0100
committerMichael Williamson <mike@zwobble.org>2016-04-05 22:51:25 +0100
commit8fe29f6add04fb9c2dbc3ad1d13d582787aa6e88 (patch)
treeddfaa3d0dd651e2ad26def00119773529677d8b7 /src/main/java/org/zwobble/couscous/interpreter
parent63fc003231e92e8f5ea2af29a04ba5507c212325 (diff)
Add MethodTypeParameter
Diffstat (limited to 'src/main/java/org/zwobble/couscous/interpreter')
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/Interpreter.java1
-rw-r--r--src/main/java/org/zwobble/couscous/interpreter/types/IntrinsicInterpreterType.java5
2 files changed, 4 insertions, 2 deletions
diff --git a/src/main/java/org/zwobble/couscous/interpreter/Interpreter.java b/src/main/java/org/zwobble/couscous/interpreter/Interpreter.java
index a87b203..3df2540 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/Interpreter.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/Interpreter.java
@@ -29,6 +29,7 @@ public class Interpreter {
StaticReceiverValue clazz = environment.findClass(className);
MethodSignature signature = new MethodSignature(
methodName,
+ list(),
eagerMap(arguments, argument -> argument.getType().getType()),
returnType);
return clazz.callMethod(environment, signature, new Arguments(list(), arguments));
diff --git a/src/main/java/org/zwobble/couscous/interpreter/types/IntrinsicInterpreterType.java b/src/main/java/org/zwobble/couscous/interpreter/types/IntrinsicInterpreterType.java
index 01418fa..b53b274 100644
--- a/src/main/java/org/zwobble/couscous/interpreter/types/IntrinsicInterpreterType.java
+++ b/src/main/java/org/zwobble/couscous/interpreter/types/IntrinsicInterpreterType.java
@@ -17,6 +17,7 @@ import java.util.Optional;
import java.util.Set;
import java.util.function.BiFunction;
+import static org.zwobble.couscous.ast.MethodSignature.signature;
import static org.zwobble.couscous.util.Casts.tryCast;
import static org.zwobble.couscous.util.ExtraLists.list;
import static org.zwobble.couscous.util.ExtraSets.set;
@@ -63,7 +64,7 @@ public class IntrinsicInterpreterType implements InterpreterType {
Type returnType,
BiFunction<Environment, MethodCallArguments<T>, InterpreterValue> method)
{
- methods.put(new MethodSignature(name, argumentsTypes, returnType), toMethodValue(argumentsTypes, method));
+ methods.put(signature(name, argumentsTypes, returnType), toMethodValue(argumentsTypes, method));
return this;
}
@@ -82,7 +83,7 @@ public class IntrinsicInterpreterType implements InterpreterType {
Type returnType,
BiFunction<Environment, Arguments, InterpreterValue> method)
{
- staticMethods.put(new MethodSignature(name, argumentsTypes, returnType), new StaticMethodValue(argumentsTypes, method));
+ staticMethods.put(signature(name, argumentsTypes, returnType), new StaticMethodValue(argumentsTypes, method));
return this;
}