aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterTests.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-10-01 21:49:18 +0100
committerMichael Williamson <mike@zwobble.org>2015-10-01 21:49:18 +0100
commit30d2215800deafbdcfb134f1356777ec0139bb7a (patch)
treee687fa289e269bd91ab19b027d6d8a96b9c96b4d /src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterTests.java
parent8187130b8a8aabbcf983e530413d6969141d6da2 (diff)
Use normal method call exec in interpreter entry point
Diffstat (limited to 'src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterTests.java')
-rw-r--r--src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterTests.java24
1 files changed, 4 insertions, 20 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterTests.java b/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterTests.java
index bfdadf8..c764261 100644
--- a/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/interpreter/InterpreterTests.java
@@ -1,9 +1,6 @@
package org.zwobble.couscous.tests.interpreter;
-import java.util.Map;
-
import org.junit.Test;
-import org.zwobble.couscous.Project;
import org.zwobble.couscous.ast.Assignment;
import org.zwobble.couscous.ast.ClassNode;
import org.zwobble.couscous.ast.ExpressionStatementNode;
@@ -13,6 +10,7 @@ import org.zwobble.couscous.ast.MethodNode;
import org.zwobble.couscous.ast.ReturnNode;
import org.zwobble.couscous.interpreter.Interpreter;
import org.zwobble.couscous.interpreter.WrongNumberOfArguments;
+import org.zwobble.couscous.values.ConcreteType;
import org.zwobble.couscous.values.InterpreterValue;
import org.zwobble.couscous.values.StringValue;
@@ -47,7 +45,7 @@ public class InterpreterTests {
@Test
public void canPassValueToMethod() {
- val arg = new FormalArgumentNode(42, "x");
+ val arg = new FormalArgumentNode(42, () -> StringValue.TYPE, "x");
val method = staticMethod("hello")
.argument(arg)
.statement(new ReturnNode(reference(arg)));
@@ -68,7 +66,7 @@ public class InterpreterTests {
@Test
public void canReassignValueToArgument() {
- val arg = new FormalArgumentNode(42, "x");
+ val arg = new FormalArgumentNode(42, () -> StringValue.TYPE, "x");
val method = staticMethod("hello")
.argument(arg)
.statement(new ExpressionStatementNode(new Assignment(reference(arg), LiteralNode.literal("[updated value]"))))
@@ -85,22 +83,8 @@ public class InterpreterTests {
.build();
val className = "com.example.Program";
val interpreter = new Interpreter(new MapBackedProject(ImmutableMap.of(
- className, classNode)));
+ className, ConcreteType.fromNode(classNode))));
return interpreter.run(className, method.getName(), asList(arguments));
}
-
- private static class MapBackedProject implements Project {
- private Map<String, ClassNode> classes;
-
- public MapBackedProject(Map<String, ClassNode> classes) {
- this.classes = classes;
- }
-
- @Override
- public ClassNode findClass(String name) {
- return classes.get(name);
- }
-
- }
}