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.java31
1 files changed, 29 insertions, 2 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 c898525..0d38a88 100644
--- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
+++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
@@ -1,8 +1,7 @@
package org.zwobble.couscous.backends.csharp;
import org.zwobble.couscous.ast.*;
-import org.zwobble.couscous.ast.types.ScalarType;
-import org.zwobble.couscous.ast.types.Type;
+import org.zwobble.couscous.ast.types.*;
import org.zwobble.couscous.ast.visitors.NodeVisitor;
import org.zwobble.couscous.backends.SourceCodeWriter;
import org.zwobble.couscous.util.Action;
@@ -422,6 +421,34 @@ public class CsharpSerializer implements NodeVisitor {
writer.writeIdentifier(typeReference(type));
return null;
}
+
+ @Override
+ public Void visit(TypeParameter parameter) {
+ writer.writeIdentifier(parameter.getName());
+ return null;
+ }
+
+ @Override
+ public Void visit(ParameterizedType type) {
+ writer.writeIdentifier(typeReference(type.getRawType()));
+ writer.writeSymbol("<");
+ writer.writeWithSeparator(
+ type.getParameters(),
+ parameter -> writeTypeReference(parameter),
+ () -> {
+ writer.writeSymbol(",");
+ writer.writeSpace();
+ }
+ );
+ writer.writeSymbol(">");
+ return null;
+ }
+
+ @Override
+ public Void visit(BoundTypeParameter type) {
+ writeTypeReference(type.getValue());
+ return null;
+ }
});
}