diff options
Diffstat (limited to 'src/test/java/org')
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java b/src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java index 5f42065..9fe84e6 100644 --- a/src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java +++ b/src/test/java/org/zwobble/couscous/tests/interpreter/EvaluatorTests.java @@ -2,12 +2,10 @@ package org.zwobble.couscous.tests.interpreter; import com.google.common.collect.ImmutableMap; import org.hamcrest.Matcher; +import org.junit.Ignore; import org.junit.Test; import org.zwobble.couscous.ast.*; -import org.zwobble.couscous.interpreter.Environment; -import org.zwobble.couscous.interpreter.JavaProject; -import org.zwobble.couscous.interpreter.MapBackedProject; -import org.zwobble.couscous.interpreter.StackFrameBuilder; +import org.zwobble.couscous.interpreter.*; import org.zwobble.couscous.interpreter.errors.*; import org.zwobble.couscous.interpreter.values.ArrayInterpreterValue; import org.zwobble.couscous.interpreter.values.IntegerInterpreterValue; @@ -41,7 +39,9 @@ import static org.zwobble.couscous.interpreter.values.InterpreterValues.value; import static org.zwobble.couscous.tests.TestIds.ANY_ID; import static org.zwobble.couscous.tests.util.ExtraAsserts.assertThrows; import static org.zwobble.couscous.tests.util.ExtraMatchers.*; +import static org.zwobble.couscous.types.ParameterizedType.parameterizedType; import static org.zwobble.couscous.util.ExtraLists.list; +import static org.zwobble.couscous.util.ExtraMaps.map; public class EvaluatorTests extends BackendEvalTests { @Test @@ -249,6 +249,24 @@ public class EvaluatorTests extends BackendEvalTests { StringInterpreterValue.of("two")))); } + @Test + @Ignore("WIP") + public void typeOfValueCanBeParameterisedType() { + ScalarType rawType = ScalarType.of("Box"); + ClassNode classNode = ClassNode.builder(rawType) + .addTypeParameter("T") + .build(); + Project project = JavaProject.of(list(classNode)); + Environment environment = new Environment(project, Optional.empty(), map()); + ConstructorCallNode call = constructorCall( + parameterizedType(rawType, list(Types.STRING)), + list()); + InterpreterValue value = eval(environment, call); + assertThat( + value.getType().getType(), + equalTo(parameterizedType(rawType, list(Types.STRING)))); + } + private Matcher<InterpreterValue> isArrayInterpreterValue(ScalarType elementType, List<InterpreterValue> elements) { return isInstance( ArrayInterpreterValue.class, |
