diff options
| -rw-r--r-- | src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java | 7 | ||||
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java | 7 |
2 files changed, 13 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 d238a5c..64307f4 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java @@ -311,7 +311,12 @@ public class CsharpSerializer implements NodeVisitor { @Override public void visit(ThrowNode throwNode) { - throw new UnsupportedOperationException(); + writer.writeStatement(() -> { + writer.writeKeyword("throw"); + writer.writeSpace(); + write(throwNode.getValue()); + writer.writeSymbol(";"); + }); } @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 6b221ff..1286415 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 @@ -29,6 +29,7 @@ import static org.zwobble.couscous.ast.Operations.not; import static org.zwobble.couscous.ast.ReturnNode.returns; import static org.zwobble.couscous.ast.TernaryConditionalNode.ternaryConditional; import static org.zwobble.couscous.ast.ThisReferenceNode.thisReference; +import static org.zwobble.couscous.ast.ThrowNode.throwNode; import static org.zwobble.couscous.ast.VariableDeclaration.var; import static org.zwobble.couscous.ast.VariableReferenceNode.reference; import static org.zwobble.couscous.ast.WhileNode.whileLoop; @@ -229,6 +230,12 @@ public class CsharpSerializerTests { } @Test + public void throwStatementIncludesValue() { + String output = serialize(throwNode(reference(var(TestIds.ANY_ID, "x", ScalarType.of("X"))))); + assertEquals("throw x;\n", output); + } + + @Test public void expressionStatementWritesExpression() { String output = serialize(expressionStatement(literal(true))); assertEquals("true;\n", output); |
