pertinent to applicability: reject nested lambdas if they target non proper type

This commit is contained in:
Anna Kozlova
2015-02-13 13:55:55 +01:00
parent 4c109a6316
commit 925e9d1610
8 changed files with 42 additions and 21 deletions

View File

@@ -1,4 +1,4 @@
<error descr="Multiple non-overriding abstract methods found">@FunctionalInterface</error>
<error descr="Multiple non-overriding abstract methods found in interface Test">@FunctionalInterface</error>
interface Test {
void foo();
void bar();

View File

@@ -36,7 +36,7 @@ class Test2 {
}
{
F f = <error descr="Multiple non-overriding abstract methods found">() -> g()</error>;
F f = <error descr="Multiple non-overriding abstract methods found in interface Test2.F">() -> g()</error>;
}
void g() {}

View File

@@ -8,7 +8,7 @@ public class NotAFIT {
}
void bar() {
foo(<error descr="Multiple non-overriding abstract methods found">() ->{}</error>);
foo(<error descr="Multiple non-overriding abstract methods found in interface NotAFIT.First.A">() ->{}</error>);
}
}
@@ -25,7 +25,7 @@ public class NotAFIT {
}
void bar() {
foo(<error descr="Multiple non-overriding abstract methods found">()->{}</error>);
foo(<error descr="Multiple non-overriding abstract methods found in interface NotAFIT.WithInheritance.B">()->{}</error>);
}
}

View File

@@ -9,3 +9,13 @@ class Test {
return null;
}
}
class Test1 {
{
Supplier<Runnable> x = foo(() -> <error descr="Multiple non-overriding abstract methods found in interface java.util.List">() -> null</error>);
}
static <T> Supplier<T> foo(Supplier<java.util.List<T>> delegate) {
return null;
}
}