diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java | 6 | ||||
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java | 9 |
2 files changed, 14 insertions, 1 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 48ca7e0..19c1943 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java @@ -270,7 +270,11 @@ public class CsharpSerializer implements NodeVisitor { @Override public void visit(CastNode cast) { - throw new UnsupportedOperationException(); + writer.writeSymbol("("); + writeTypeReference(cast.getType()); + writer.writeSymbol(")"); + writer.writeSpace(); + write(cast.getExpression()); } @Override diff --git a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java index 781d00a..b7894c0 100644 --- a/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java +++ b/src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java @@ -10,6 +10,7 @@ import org.zwobble.couscous.types.Types; import static org.junit.Assert.assertEquals; import static org.zwobble.couscous.ast.ArrayNode.array; import static org.zwobble.couscous.ast.AssignmentNode.assign; +import static org.zwobble.couscous.ast.CastNode.cast; import static org.zwobble.couscous.ast.ConstructorCallNode.constructorCall; import static org.zwobble.couscous.ast.ExpressionStatementNode.expressionStatement; import static org.zwobble.couscous.ast.FieldAccessNode.fieldAccess; @@ -190,6 +191,14 @@ public class CsharpSerializerTests { } @Test + public void castIsWrittenWithParenthesisedType() { + String output = serialize(cast( + reference(var(TestIds.ANY_ID, "x", ScalarType.of("X"))), + ScalarType.of("Y"))); + assertEquals("(Y) x", output); + } + + @Test public void returnStatementUsesReturnStatement() { String output = serialize(returns(literal(true))); assertEquals("return true;\n", output); |
