aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-04-09 16:10:48 +0100
committerMichael Williamson <mike@zwobble.org>2016-04-09 16:10:48 +0100
commit01b160e4ccca418410eb566a654bfebe6a0913a2 (patch)
tree3e39a7cd128717f13a72c0522a971e51c7f58b49 /src/main
parenta0e8824a6deff07ccfe76be813e508d9266ac23e (diff)
Tidy up method call constructors
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/zwobble/couscous/ast/MethodCallNode.java20
-rw-r--r--src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java1
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)