diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java | 16 | ||||
| -rw-r--r-- | src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java | 9 |
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), |
