diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-03-08 11:22:53 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-03-08 11:22:53 +0000 |
| commit | ce9f894f75727c17b3237c3453dacb91d404b32c (patch) | |
| tree | dc764c49a1a4ca4f3b0ada3542435c0054a268b4 /src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java | |
| parent | f276accc32db02896cffc324f55130560df3c282 (diff) | |
Serialize formal type parameters in C# backend
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.java | 15 |
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(); |
