diff options
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/ast/MethodCallNode.java | 4 | ||||
| -rw-r--r-- | src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java | 9 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/MethodCallNode.java b/src/main/java/org/zwobble/couscous/ast/MethodCallNode.java index 7e3675b..c0f2c6f 100644 --- a/src/main/java/org/zwobble/couscous/ast/MethodCallNode.java +++ b/src/main/java/org/zwobble/couscous/ast/MethodCallNode.java @@ -135,6 +135,10 @@ public class MethodCallNode implements ExpressionNode { public String getMethodName() { return methodName; } + + public List<Type> getTypeParameters() { + return typeParameters; + } public List<ExpressionNode> getArguments() { return arguments; 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 d93f2df..194349f 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java @@ -220,9 +220,18 @@ public class CsharpSerializer implements NodeVisitor { write(methodCall.getReceiver()); writer.writeSymbol("."); writer.writeIdentifier(methodCall.getMethodName()); + writeTypeParameters(methodCall.getTypeParameters()); writeArguments(methodCall.getArguments()); } + private void writeTypeParameters(List<Type> typeParameters) { + if (!typeParameters.isEmpty()) { + writer.writeSymbol("<"); + writer.writeCommaSeparated(typeParameters, this::writeTypeReference); + writer.writeSymbol(">"); + } + } + @Override public void visit(ConstructorCallNode call) { writer.writeKeyword("new"); |
