aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/backends/csharp
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-04-10 20:50:37 +0100
committerMichael Williamson <mike@zwobble.org>2016-04-10 20:50:37 +0100
commit58de7ebb1744bc77f48c1f64645e3a611d1280ac (patch)
treeca0d412cb6be27d4055e16e009f882e8bae61b88 /src/main/java/org/zwobble/couscous/backends/csharp
parent0dde3d8022966762c090687b6945c496eb8a168c (diff)
Write type parameters for interface methods
Diffstat (limited to 'src/main/java/org/zwobble/couscous/backends/csharp')
-rw-r--r--src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java19
1 files changed, 10 insertions, 9 deletions
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 64566b4..4fab81b 100644
--- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
+++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
@@ -398,15 +398,19 @@ public class CsharpSerializer implements NodeVisitor {
writer.writeKeyword("static");
writer.writeSpace();
}
- writeTypeReference(method.getReturnType());
- writer.writeSpace();
- writer.writeIdentifier(method.getName());
- writeFormalTypeParameters(method.getTypeParameters());
- writeFormalArguments(method.getArguments());
+ writeSignature(method);
writeBlock(method.getBody().get());
});
}
+ private void writeSignature(MethodNode method) {
+ writeTypeReference(method.getReturnType());
+ writer.writeSpace();
+ writer.writeIdentifier(method.getName());
+ writeFormalTypeParameters(method.getTypeParameters());
+ writeFormalArguments(method.getArguments());
+ }
+
private void writeFormalTypeParameters(List<FormalTypeParameterNode> typeParameters) {
if (!typeParameters.isEmpty()) {
writer.writeSymbol("<");
@@ -457,10 +461,7 @@ public class CsharpSerializer implements NodeVisitor {
writeType(interfaceNode, "interface", () -> {
interfaceNode.getMethods().forEach(method -> {
writer.writeStatement(() -> {
- writeTypeReference(method.getReturnType());
- writer.writeSpace();
- writer.writeIdentifier(method.getName());
- writeFormalArguments(method.getArguments());
+ writeSignature(method);
writer.writeSymbol(";");
});
});