aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaMethodReferenceReader.java5
-rw-r--r--src/test/java/org/zwobble/couscous/tests/frontends/java/InnerTypeReadingTests.java11
2 files changed, 11 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 4930ee4..75d8162 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/JavaMethodReferenceReader.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaMethodReferenceReader.java
@@ -83,13 +83,10 @@ public class JavaMethodReferenceReader {
} else {
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(),
+ arguments.subList(1, arguments.size()),
type);
} else {
return methodCall(
diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/InnerTypeReadingTests.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/InnerTypeReadingTests.java
index 9901931..8f5c305 100644
--- a/src/test/java/org/zwobble/couscous/tests/frontends/java/InnerTypeReadingTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/InnerTypeReadingTests.java
@@ -48,7 +48,7 @@ public class InnerTypeReadingTests {
}
@Test
- public void expressionInstanceMethodReferenceWithStaticReceiverIsReadAsLambda() {
+ public void expressionInstanceMethodReferenceWithStaticReceiverAndNoArgsIsReadAsLambda() {
assertEquals(
readTypes(generateMethodSource("void",
"java.util.function.Function<String, Integer> function = arg0 -> arg0.length();")),
@@ -57,6 +57,15 @@ public class InnerTypeReadingTests {
}
@Test
+ public void expressionInstanceMethodReferenceWithStaticReceiverAndSomeArgsIsReadAsLambda() {
+ assertEquals(
+ readTypes(generateMethodSource("void",
+ "java.util.function.BiPredicate<Object, Object> function = (arg0, arg1) -> arg0.equals(arg1);")),
+ readTypes(generateMethodSource("void",
+ "java.util.function.BiPredicate<Object, Object> function = Object::equals;")));
+ }
+
+ @Test
public void expressionConstructorReferenceWithStaticReceiverIsReadAsLambda() {
assertEquals(
readTypes(generateMethodSource("void",