From 01b160e4ccca418410eb566a654bfebe6a0913a2 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 9 Apr 2016 16:10:48 +0100 Subject: Tidy up method call constructors --- .../org/zwobble/couscous/ast/MethodCallNode.java | 20 +++++++------------- .../backends/python/PythonCodeGenerator.java | 1 + 2 files changed, 8 insertions(+), 13 deletions(-) (limited to 'src/main/java') 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 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 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 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 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) -- cgit v1.2.3