From 28a122e74fa8f76da97625d1581e69afee835b7c Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 28 Feb 2016 14:06:44 +0000 Subject: Write out interface methods --- .../zwobble/couscous/backends/csharp/CsharpSerializer.java | 10 +++++++++- .../couscous/tests/backends/csharp/CsharpSerializerTests.java | 11 +++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java index c8b4254..8a92a51 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java @@ -313,7 +313,15 @@ public class CsharpSerializer implements NodeVisitor { @Override public void visit(InterfaceNode interfaceNode) { writeType(interfaceNode, "interface", () -> { - writeAll(interfaceNode.getMethods()); + interfaceNode.getMethods().forEach(method -> { + writer.writeStatement(() -> { + writeTypeReference(method.getReturnType()); + writer.writeSpace(); + writer.writeIdentifier(method.getName()); + writeFormalArguments(method.getArguments()); + writer.writeSymbol(";"); + }); + }); }); } 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 95df6e4..e766719 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 @@ -5,6 +5,7 @@ import org.zwobble.couscous.ast.*; import org.zwobble.couscous.backends.csharp.CsharpSerializer; import org.zwobble.couscous.tests.TestIds; import org.zwobble.couscous.values.BooleanValue; +import org.zwobble.couscous.values.IntegerValue; import static org.junit.Assert.assertEquals; import static org.zwobble.couscous.ast.AssignmentNode.assign; @@ -312,6 +313,16 @@ public class CsharpSerializerTests { assertEquals("namespace com.example {\n internal interface Example {\n }\n}\n", output); } + @Test + public void interfaceWithMethod() { + MethodNode method = MethodNode.builder("get").isAbstract().returns(IntegerValue.REF).build(); + Node node = declareInterface(TypeName.of("com.example.Example"), set(), list(method)); + + String output = serialize(node); + + assertEquals("namespace com.example {\n internal interface Example {\n int get();\n }\n}\n", output); + } + private String serialize(Node node) { return CsharpSerializer.serialize(node); } -- cgit v1.2.3