aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-04-10 20:44:51 +0100
committerMichael Williamson <mike@zwobble.org>2016-04-10 20:44:51 +0100
commit0dde3d8022966762c090687b6945c496eb8a168c (patch)
treee884788c9ed8466e88b1002c166ab31e901ce0e3 /src/main/java/org/zwobble
parentbc72e3b1a1c07f0c6efbb54867de412abd9480ef (diff)
Add reading of reference to zero-arg methods
Diffstat (limited to 'src/main/java/org/zwobble')
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaMethodReferenceReader.java22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaMethodReferenceReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaMethodReferenceReader.java
index db88310..4930ee4 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/JavaMethodReferenceReader.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaMethodReferenceReader.java
@@ -81,11 +81,23 @@ public class JavaMethodReferenceReader {
arguments,
type);
} else {
- return methodCall(
- javaReader.readExpressionWithoutBoxing(scope, expression.getExpression()),
- methodName,
- arguments,
- type);
+ Expression left = expression.getExpression();
+ if (left instanceof SimpleName && ((SimpleName) left).resolveBinding().getKind() == IBinding.TYPE) {
+ if (arguments.size() != 1) {
+ throw new UnsupportedOperationException();
+ }
+ return methodCall(
+ arguments.get(0),
+ methodName,
+ list(),
+ type);
+ } else {
+ return methodCall(
+ javaReader.readExpressionWithoutBoxing(scope, left),
+ methodName,
+ arguments,
+ type);
+ }
}
}
}