From 21ca83106e2a0a6d3b8526450e6cf31e8095c49c Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 6 Feb 2016 13:42:46 +0000 Subject: Transform arguments when generating primitive C# methods --- .../couscous/backends/csharp/CsharpCodeGenerator.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'src/main/java/org') diff --git a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpCodeGenerator.java b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpCodeGenerator.java index a0db521..5260797 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpCodeGenerator.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpCodeGenerator.java @@ -22,6 +22,7 @@ public class CsharpCodeGenerator { .build(); private final String namespace; + private final NodeTransformer nodeTransformer; public static Node generateCode(Node node, String namespace) { return new CsharpCodeGenerator(namespace).generateCode(node); @@ -29,15 +30,15 @@ public class CsharpCodeGenerator { private CsharpCodeGenerator(String namespace) { this.namespace = namespace; - } - - private Node generateCode(Node node) { - return NodeTransformer.builder() + nodeTransformer = NodeTransformer.builder() .transformType(this::transformType) .transformExpression(this::transformExpression) .transformMethodName(this::transformMethodName) - .build() - .transform(node); + .build(); + } + + private Node generateCode(Node node) { + return nodeTransformer.transform(node); } private TypeName transformType(TypeName type) { @@ -62,13 +63,15 @@ public class CsharpCodeGenerator { @Override public Optional visit(ExpressionNode receiver) { return CsharpPrimitiveMethods.getPrimitiveMethod(receiver.getType(), call.getMethodName()) - .map(generator -> generator.generate(receiver, call.getArguments())); + .map(generator -> generator.generate( + nodeTransformer.transformExpression(receiver), + nodeTransformer.transformExpressions(call.getArguments()))); } @Override public Optional visit(TypeName receiver) { return CsharpPrimitiveMethods.getPrimitiveStaticMethod(receiver, call.getMethodName()) - .map(generator -> generator.generate(call.getArguments())); + .map(generator -> generator.generate(nodeTransformer.transformExpressions(call.getArguments()))); } }); } -- cgit v1.2.3