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.java15
-rw-r--r--src/test/java/org/zwobble/couscous/tests/backends/csharp/CsharpSerializerTests.java11
2 files changed, 13 insertions, 13 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 187a44a..662a018 100644
--- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
+++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java
@@ -139,23 +139,12 @@ public class CsharpSerializer implements NodeVisitor {
@Override
public void visit(InstanceReceiver receiver) {
- receiver.accept(new Receiver.Mapper<Void>() {
- @Override
- public Void visit(ExpressionNode receiver) {
- write(receiver);
- return null;
- }
-
- @Override
- public Void visit(TypeName receiver) {
- throw new UnsupportedOperationException();
- }
- });
+ write(receiver.getExpression());
}
@Override
public void visit(StaticReceiver receiver) {
- throw new UnsupportedOperationException();
+ writeTypeReference(receiver.getType());
}
@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 377712c..4e2bf65 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
@@ -10,6 +10,7 @@ import static org.zwobble.couscous.ast.ConstructorCallNode.constructorCall;
import static org.zwobble.couscous.ast.FormalArgumentNode.formalArg;
import static org.zwobble.couscous.ast.LiteralNode.literal;
import static org.zwobble.couscous.ast.MethodCallNode.methodCall;
+import static org.zwobble.couscous.ast.MethodCallNode.staticMethodCall;
import static org.zwobble.couscous.ast.ReturnNode.returns;
import static org.zwobble.couscous.ast.TernaryConditionalNode.ternaryConditional;
import static org.zwobble.couscous.ast.VariableDeclaration.var;
@@ -57,6 +58,16 @@ public class CsharpSerializerTests {
}
@Test
+ public void staticMethodCallWithNoArgumentsWritesStaticReceiver() {
+ String output = serialize(staticMethodCall(
+ TypeName.of("X"),
+ "y",
+ list(),
+ TypeName.of("Y")));
+ assertEquals("Couscous.X.y()", output);
+ }
+
+ @Test
public void methodCallWithNoArgumentsWritesReceiver() {
String output = serialize(methodCall(
reference(var(TestIds.ANY_ID, "x", TypeName.of("X"))),