From a0e8824a6deff07ccfe76be813e508d9266ac23e Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 9 Apr 2016 15:08:18 +0100 Subject: C# backend: Support generic method definitions --- .../tests/backends/csharp/CsharpSerializerTests.java | 15 +++++++++++++++ .../couscous/tests/backends/csharp/JavaToCsharpTests.java | 5 ----- 2 files changed, 15 insertions(+), 5 deletions(-) (limited to 'src/test/java/org') diff --git a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java index 52849dc..30b4768 100644 --- a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java +++ b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java @@ -2,6 +2,7 @@ package org.zwobble.couscous.tests.backends.csharp; import org.junit.Test; import org.zwobble.couscous.ast.*; +import org.zwobble.couscous.ast.identifiers.Identifiers; import org.zwobble.couscous.types.ScalarType; import org.zwobble.couscous.backends.csharp.CsharpSerializer; import org.zwobble.couscous.tests.TestIds; @@ -15,6 +16,7 @@ import static org.zwobble.couscous.ast.ConstructorCallNode.constructorCall; import static org.zwobble.couscous.ast.ExpressionStatementNode.expressionStatement; import static org.zwobble.couscous.ast.FieldAccessNode.fieldAccess; import static org.zwobble.couscous.ast.FormalArgumentNode.formalArg; +import static org.zwobble.couscous.ast.FormalTypeParameterNode.formalTypeParameter; import static org.zwobble.couscous.ast.IfStatementNode.ifStatement; import static org.zwobble.couscous.ast.LiteralNode.literal; import static org.zwobble.couscous.ast.LocalVariableDeclarationNode.localVariableDeclaration; @@ -324,6 +326,19 @@ public class CsharpSerializerTests { assertEquals("public static void nothing() {\n return true;\n}\n", output); } + @Test + public void methodWithTypeParameters() { + MethodNode methodNode = MethodNode.staticMethod("nothing") + .typeParameter(formalTypeParameter(Identifiers.method(Identifiers.forType("com.Example.example"), "nothing"), "T")) + .typeParameter(formalTypeParameter(Identifiers.method(Identifiers.forType("com.Example.example"), "nothing"), "U")) + .returns(ScalarType.of("void")) + .build(); + + String output = serialize(methodNode); + + assertEquals("public static void nothing() {\n}\n", output); + } + @Test public void classIsInNamespace() { ClassNode classNode = ClassNode.builder("com.example.Example") 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 b6a0cb7..a585efd 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 @@ -18,11 +18,6 @@ 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 genericMethods() throws Exception { - } - protected PrimitiveValue execProgram( Path directory, ScalarType type, -- cgit v1.2.3