diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-03-17 22:33:15 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-03-18 08:00:10 +0000 |
| commit | cea82209e5aa312f4a513308c148d3e944004cb4 (patch) | |
| tree | 6f7e5fa7bb1656b4650bb227866195f35bc962e0 /src/test | |
| parent | 5687fd7f88485f95e970b3d93fbf2800e84eb3b8 (diff) | |
Improve support for generics
Diffstat (limited to 'src/test')
6 files changed, 56 insertions, 0 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/CompilerTests.java b/src/test/java/org/zwobble/couscous/tests/CompilerTests.java index 9fbbb73..7e4f2b5 100644 --- a/src/test/java/org/zwobble/couscous/tests/CompilerTests.java +++ b/src/test/java/org/zwobble/couscous/tests/CompilerTests.java @@ -207,6 +207,18 @@ public abstract class CompilerTests { } @Test + public void genericInterfacesCanHaveMethodsWithoutGenericReturnType() throws Exception { + assertEquals( + value("Hello"), + execTestProgram( + "generic-interface-non-generic-methods", + ScalarType.of("com.example.GenericInterface"), + "value", + list(), + StringValue.REF)); + } + + @Test public void staticMethodOverloads() throws Exception { assertEquals( value(42), diff --git a/src/test/java/org/zwobble/couscous/tests/JavaToInterpreterTests.java b/src/test/java/org/zwobble/couscous/tests/JavaToInterpreterTests.java index e0cd72e..5072859 100644 --- a/src/test/java/org/zwobble/couscous/tests/JavaToInterpreterTests.java +++ b/src/test/java/org/zwobble/couscous/tests/JavaToInterpreterTests.java @@ -1,6 +1,8 @@ package org.zwobble.couscous.tests; import com.google.common.collect.ImmutableList; +import org.junit.Ignore; +import org.junit.Test; import org.zwobble.couscous.ast.types.ScalarType; import org.zwobble.couscous.ast.TypeNode; import org.zwobble.couscous.frontends.java.JavaFrontend; @@ -19,6 +21,11 @@ import static com.google.common.collect.Iterables.transform; import static org.zwobble.couscous.util.ExtraLists.list; public class JavaToInterpreterTests extends CompilerTests { + @Test + @Ignore("WIP") + public void genericInterfacesCanHaveMethodsWithoutGenericReturnType() throws Exception { + } + @Override protected PrimitiveValue execProgram( Path directory, diff --git a/src/test/java/org/zwobble/couscous/tests/backends/csharp/JavaToCsharpTests.java b/src/test/java/org/zwobble/couscous/tests/backends/csharp/JavaToCsharpTests.java index ad0da0b..799ea91 100644 --- a/src/test/java/org/zwobble/couscous/tests/backends/csharp/JavaToCsharpTests.java +++ b/src/test/java/org/zwobble/couscous/tests/backends/csharp/JavaToCsharpTests.java @@ -1,5 +1,7 @@ package org.zwobble.couscous.tests.backends.csharp; +import org.junit.Ignore; +import org.junit.Test; import org.zwobble.couscous.CouscousCompiler; import org.zwobble.couscous.ast.types.ScalarType; import org.zwobble.couscous.backends.csharp.CsharpBackend; @@ -16,6 +18,11 @@ import static org.zwobble.couscous.tests.util.ExtraFiles.deleteRecursively; import static org.zwobble.couscous.util.ExtraLists.list; public class JavaToCsharpTests extends CompilerTests { + @Test + @Ignore("WIP") + public void genericInterfacesCanHaveMethodsWithoutGenericReturnType() throws Exception { + } + protected PrimitiveValue execProgram( Path directory, ScalarType type, diff --git a/src/test/resources/java/generic-interface-non-generic-methods/com/example/Box.java b/src/test/resources/java/generic-interface-non-generic-methods/com/example/Box.java new file mode 100644 index 0000000..ff226fe --- /dev/null +++ b/src/test/resources/java/generic-interface-non-generic-methods/com/example/Box.java @@ -0,0 +1,6 @@ +package com.example; + +public interface Box<T> { + T get(); + void set(T value); +} diff --git a/src/test/resources/java/generic-interface-non-generic-methods/com/example/BoxImpl.java b/src/test/resources/java/generic-interface-non-generic-methods/com/example/BoxImpl.java new file mode 100644 index 0000000..c34b5f7 --- /dev/null +++ b/src/test/resources/java/generic-interface-non-generic-methods/com/example/BoxImpl.java @@ -0,0 +1,14 @@ +package com.example; + +public class BoxImpl<T> implements Box<T> { + private T value; + + public T get() { + return value; + } + + public void set(T value) { + this.value = value; + } +} + diff --git a/src/test/resources/java/generic-interface-non-generic-methods/com/example/GenericInterface.java b/src/test/resources/java/generic-interface-non-generic-methods/com/example/GenericInterface.java new file mode 100644 index 0000000..8ddf1fa --- /dev/null +++ b/src/test/resources/java/generic-interface-non-generic-methods/com/example/GenericInterface.java @@ -0,0 +1,10 @@ +package com.example; + +public class GenericInterface { + public static String value() { + Box<String> box = new BoxImpl<>(); + box.set("Hello"); + + return box.get(); + } +} |
