Mon, 08 Apr 2013 15:57:10 +0100
8009131: Overload: javac should discard methods that lead to errors in lambdas with implicit parameter types
Summary: Lambdas that have errors in their bodies should make enclosing overload resolution fail
Reviewed-by: jjg
1 /*
2 * @test /nodynamiccopyright/
3 * @bug 8003280
4 * @summary Add lambda tests
5 * check that recovery of speculative types is not attempted if receiver is erroneous
6 * @compile/fail/ref=BadRecovery.out -XDrawDiagnostics BadRecovery.java
7 */
8 class BadRecovery {
10 interface SAM1 {
11 void m(Object o);
12 }
14 void m(SAM1 m) { };
16 void test() {
17 m((receiver, t) -> { receiver.someMemberOfReceiver(()->{ Object x = f; }); });
18 }
19 }