aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java')
-rw-r--r--src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java15
1 files changed, 15 insertions, 0 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 036ee39..33187a2 100644
--- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
+++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
@@ -337,6 +337,7 @@ public class CsharpSerializer implements NodeVisitor {
writer.writeKeyword(keyword);
writer.writeSpace();
writer.writeIdentifier(node.getName().getSimpleName());
+ writeTypeParameters(node);
writeSuperTypes(node);
writer.startBlock();
writeBody.run();
@@ -347,6 +348,20 @@ public class CsharpSerializer implements NodeVisitor {
});
}
+ private void writeTypeParameters(TypeNode node) {
+ if (!node.getTypeParameters().isEmpty()) {
+ writer.writeSymbol("<");
+ writer.writeWithSeparator(
+ node.getTypeParameters(),
+ parameter -> writeTypeReference(parameter.getName()),
+ () -> {
+ writer.writeSymbol(",");
+ writer.writeSpace();
+ });
+ writer.writeSymbol(">");
+ }
+ }
+
private void writeSuperTypes(TypeNode node) {
if (!node.getSuperTypes().isEmpty()) {
writer.writeSpace();