diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-02-06 13:42:46 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-02-06 13:44:11 +0000 |
| commit | 21ca83106e2a0a6d3b8526450e6cf31e8095c49c (patch) | |
| tree | 113d1e7ad3eadadbb6e2d6aab3421a6ca6b2c188 /src/main/java | |
| parent | 55f2e993d4276f684b5f024a2d41411bc7bc9c9c (diff) | |
Transform arguments when generating primitive C# methods
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/backends/csharp/CsharpCodeGenerator.java | 19 |
1 files changed, 11 insertions, 8 deletions
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<ExpressionNode> 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<ExpressionNode> visit(TypeName receiver) { return CsharpPrimitiveMethods.getPrimitiveStaticMethod(receiver, call.getMethodName()) - .map(generator -> generator.generate(call.getArguments())); + .map(generator -> generator.generate(nodeTransformer.transformExpressions(call.getArguments()))); } }); } |
