diff options
Diffstat (limited to 'src/main/java/org/zwobble')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/ast/MethodCallNode.java | 20 | ||||
| -rw-r--r-- | src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java | 1 |
2 files changed, 8 insertions, 13 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/MethodCallNode.java b/src/main/java/org/zwobble/couscous/ast/MethodCallNode.java index 3f9b06b..27e7e14 100644 --- a/src/main/java/org/zwobble/couscous/ast/MethodCallNode.java +++ b/src/main/java/org/zwobble/couscous/ast/MethodCallNode.java @@ -26,9 +26,10 @@ public class MethodCallNode implements ExpressionNode { String className, String methodName, List<ExpressionNode> arguments, + Type returnType, MethodSignature signature) { - return staticMethodCall(ScalarType.of(className), methodName, arguments, signature); + return staticMethodCall(ScalarType.of(className), methodName, arguments, returnType, signature); } public static ExpressionNode staticMethodCall( @@ -44,9 +45,10 @@ public class MethodCallNode implements ExpressionNode { ScalarType className, String methodName, List<ExpressionNode> arguments, + Type returnType, MethodSignature signature) { - return methodCall(staticReceiver(className), methodName, arguments, signature); + return methodCall(staticReceiver(className), methodName, arguments, returnType, signature); } public static MethodCallNode methodCall( @@ -62,9 +64,10 @@ public class MethodCallNode implements ExpressionNode { ExpressionNode receiver, String methodName, List<ExpressionNode> arguments, + Type returnType, MethodSignature signature) { - return methodCall(instanceReceiver(receiver), methodName, arguments, signature); + return methodCall(instanceReceiver(receiver), methodName, arguments, returnType, signature); } public static MethodCallNode methodCall( @@ -78,16 +81,7 @@ public class MethodCallNode implements ExpressionNode { list(), eagerMap(arguments, argument -> argument.getType()), type); - return methodCall(receiver, methodName, arguments, signature); - } - - public static MethodCallNode methodCall( - Receiver receiver, - String methodName, - List<ExpressionNode> arguments, - MethodSignature signature) - { - return new MethodCallNode(receiver, methodName, arguments, signature.getReturnType(), signature); + return methodCall(receiver, methodName, arguments, type, signature); } public static MethodCallNode methodCall( diff --git a/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java b/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java index 4036a85..3fd1ffb 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java +++ b/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java @@ -198,6 +198,7 @@ public class PythonCodeGenerator { thisReference(type), methodNode.getName(), eagerMap(arguments, argument -> reference(argument)), + methodNode.getReturnType(), methodNode.signature()); StatementNode body = override.getReturnType().equals(Types.VOID) |
