Fri, 05 Jul 2013 11:04:22 +0100
8016702: use of ternary operator in lambda expression gives incorrect results
Summary: Constant types erroneously creep in during inference
Reviewed-by: jjg, vromero
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 }