aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java16
-rw-r--r--src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java9
2 files changed, 18 insertions, 7 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 19c1943..13c3756 100644
--- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
+++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
@@ -337,14 +337,16 @@ public class CsharpSerializer implements NodeVisitor {
writeBlock(ifStatement.getTrueBranch());
- writer.writeSpace();
- writer.writeKeyword("else");
-
- if (ifStatement.getFalseBranch().size() == 1 && ifStatement.getFalseBranch().get(0) instanceof IfStatementNode) {
+ if (!ifStatement.getFalseBranch().isEmpty()) {
writer.writeSpace();
- writeIfContent((IfStatementNode) ifStatement.getFalseBranch().get(0));
- } else {
- writeBlock(ifStatement.getFalseBranch());
+ writer.writeKeyword("else");
+
+ if (ifStatement.getFalseBranch().size() == 1 && ifStatement.getFalseBranch().get(0) instanceof IfStatementNode) {
+ writer.writeSpace();
+ writeIfContent((IfStatementNode) ifStatement.getFalseBranch().get(0));
+ } else {
+ writeBlock(ifStatement.getFalseBranch());
+ }
}
}
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 b7894c0..a2f838f 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
@@ -246,6 +246,15 @@ public class CsharpSerializerTests {
}
@Test
+ public void elseBranchIsNotGeneratedIfEmpty() {
+ String output = serialize(ifStatement(
+ literal(true),
+ list(returns(literal(1))),
+ list()));
+ assertEquals("if (true) {\n return 1;\n}\n", output);
+ }
+
+ @Test
public void elseIfBranchesDontCauseNesting() {
String output = serialize(ifStatement(
literal(true),