aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-08-29 15:44:57 +0100
committerMichael Williamson <mike@zwobble.org>2016-08-29 15:44:57 +0100
commit1d80de2bb51d053bf072c991e5c8788a3e64403b (patch)
tree165e9cf969fb1e7872d66a5ff315c06c3649aca0 /src/main/java
parent31c83d816e104ecd27e2aed0bb3cd11ad16759f1 (diff)
Write arrays as native C# arrays
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/zwobble/couscous/backends/csharp/CsharpCodeGenerator.java1
-rw-r--r--src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java20
2 files changed, 15 insertions, 6 deletions
diff --git a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpCodeGenerator.java b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpCodeGenerator.java
index 2245782..3fccce9 100644
--- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpCodeGenerator.java
+++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpCodeGenerator.java
@@ -25,6 +25,7 @@ public class CsharpCodeGenerator {
.put(Types.BOXED_BOOLEAN, ScalarType.of("bool"))
.put(Types.CLASS, ScalarType.of("System.Type"))
.put(Types.VOID, ScalarType.of("void"))
+ .put(Types.ARRAY, Types.ARRAY)
.build();
private final String namespace;
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 3e21f1b..4ddeb7c 100644
--- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
+++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
@@ -20,6 +20,7 @@ import java.util.function.Function;
import static java.util.Arrays.asList;
import static org.zwobble.couscous.util.ExtraIterables.lazyFilter;
+import static org.zwobble.couscous.util.ExtraIterables.only;
import static org.zwobble.couscous.util.ExtraLists.list;
import static org.zwobble.couscous.util.ExtraSets.set;
@@ -686,12 +687,19 @@ public class CsharpSerializer {
@Override
public Void visit(ParameterizedType type) {
- writeTypeReference(type.getRawType());
- writer.writeSymbol("<");
- writer.writeCommaSeparated(
- type.getParameters(),
- parameter -> writeTypeReference(parameter));
- writer.writeSymbol(">");
+ if (type.getRawType().equals(Types.ARRAY)) {
+ writeTypeReference(only(type.getParameters()));
+ writer.writeSymbol("[");
+ writer.writeSymbol("]");
+ } else {
+ writeTypeReference(type.getRawType());
+ writer.writeSymbol("<");
+ writer.writeCommaSeparated(
+ type.getParameters(),
+ parameter -> writeTypeReference(parameter));
+ writer.writeSymbol(">");
+ }
+
return null;
}