aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble')
-rw-r--r--src/main/java/org/zwobble/couscous/ast/MethodCallNode.java4
-rw-r--r--src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java9
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");