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.java4
-rw-r--r--src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java10
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 1d05081..e66d114 100644
--- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
+++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
@@ -133,7 +133,9 @@ public class CsharpSerializer implements NodeVisitor {
@Override
public void visit(FieldAccessNode fieldAccess) {
- throw new UnsupportedOperationException();
+ write(fieldAccess.getLeft());
+ writer.writeSymbol(".");
+ writer.writeIdentifier(fieldAccess.getFieldName());
}
@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 2ca2917..95696c7 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
@@ -7,6 +7,7 @@ import org.zwobble.couscous.tests.TestIds;
import static org.junit.Assert.assertEquals;
import static org.zwobble.couscous.ast.ConstructorCallNode.constructorCall;
+import static org.zwobble.couscous.ast.FieldAccessNode.fieldAccess;
import static org.zwobble.couscous.ast.FormalArgumentNode.formalArg;
import static org.zwobble.couscous.ast.LiteralNode.literal;
import static org.zwobble.couscous.ast.MethodCallNode.methodCall;
@@ -104,6 +105,15 @@ public class CsharpSerializerTests {
}
@Test
+ public void fieldAccessSeparatesReceiverAndNameWithDot() {
+ String output = serialize(fieldAccess(
+ reference(var(TestIds.ANY_ID, "x", TypeName.of("X"))),
+ "y",
+ TypeName.of("Y")));
+ assertEquals("x.y", output);
+ }
+
+ @Test
public void returnStatementUsesReturnStatement() {
String output = serialize(returns(literal(true)));
assertEquals("return true;", output);