aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-10-12 20:49:32 +0100
committerMichael Williamson <mike@zwobble.org>2015-10-12 20:49:32 +0100
commitc35c7890249860ea38c4f1324c57cde9ae6afe88 (patch)
tree8e0c90538f95efa46556289a27d8795026e697ed /src/main/java/org
parent09c19d4c266ee816d6dd85fe6abe6449cc2018f1 (diff)
Support implicit instance method calls
Diffstat (limited to 'src/main/java/org')
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
index f39428c..9cb6097 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
@@ -156,7 +156,14 @@ public class JavaReader {
private static ExpressionNode readMethodInvocation(MethodInvocation expression) {
val methodName = expression.getName().getIdentifier();
val arguments = readArguments(expression.arguments());
- if (expression.getExpression().getNodeType() == ASTNode.SIMPLE_NAME) {
+ if (expression.getExpression() == null) {
+ val methodBinding = expression.resolveMethodBinding();
+ return MethodCallNode.methodCall(
+ ThisReferenceNode.thisReference(typeOf(methodBinding.getDeclaringClass())),
+ methodName,
+ arguments,
+ typeOf(expression));
+ } else if (expression.getExpression().getNodeType() == ASTNode.SIMPLE_NAME) {
val receiver = expression.getExpression();
return StaticMethodCallNode.staticMethodCall(typeOf(receiver), methodName, arguments);
} else {