aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java5
-rw-r--r--src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java9
2 files changed, 14 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 c334334..f635519 100644
--- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
+++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
@@ -399,6 +399,11 @@ public class CsharpSerializer implements NodeVisitor {
writer.writeSymbol(")");
writeBlock(handler.getBody());
}
+ if (!tryStatement.getFinallyBody().isEmpty()) {
+ writer.writeSpace();
+ writer.writeKeyword("finally");
+ writeBlock(tryStatement.getFinallyBody());
+ }
});
}
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 c0b9899..8d4246a 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
@@ -315,6 +315,15 @@ public class CsharpSerializerTests {
}
@Test
+ public void tryStatementCanHaveFinallyBody() {
+ String output = serialize(tryStatement(
+ list(),
+ list(),
+ list(returns(literal(1)))));
+ assertEquals("try {\n} finally {\n return 1;\n}\n", output);
+ }
+
+ @Test
public void methodCanHaveVoidReturnType() {
String output = serialize(MethodNode.staticMethod("nothing")
.returns(ScalarType.of("void"))