aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org')
-rw-r--r--src/main/java/org/zwobble/couscous/ast/LiteralNode.java2
-rw-r--r--src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java7
2 files changed, 7 insertions, 2 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/LiteralNode.java b/src/main/java/org/zwobble/couscous/ast/LiteralNode.java
index 923bb2f..a76ca80 100644
--- a/src/main/java/org/zwobble/couscous/ast/LiteralNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/LiteralNode.java
@@ -7,6 +7,8 @@ import org.zwobble.couscous.values.*;
import static org.zwobble.couscous.values.PrimitiveValues.value;
public class LiteralNode implements ExpressionNode {
+ public static final ExpressionNode UNIT = literal(PrimitiveValues.UNIT);
+
public static LiteralNode literal(PrimitiveValue value) {
return new LiteralNode(value, value.getType());
}
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 0292320..e47b732 100644
--- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
+++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
@@ -4,6 +4,7 @@ import org.zwobble.couscous.ast.*;
import org.zwobble.couscous.ast.visitors.NodeVisitor;
import org.zwobble.couscous.backends.SourceCodeWriter;
import org.zwobble.couscous.values.PrimitiveValueVisitor;
+import org.zwobble.couscous.values.UnitValue;
import java.util.List;
@@ -176,8 +177,10 @@ public class CsharpSerializer implements NodeVisitor {
public void visit(ReturnNode returnNode) {
writer.writeStatement(() -> {
writer.writeKeyword("return");
- writer.writeSpace();
- write(returnNode.getValue());
+ if (!returnNode.getValue().getType().equals(UnitValue.REF)) {
+ writer.writeSpace();
+ write(returnNode.getValue());
+ }
writer.writeSymbol(";");
});
}