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 a conditonal can't be void
6 * @compile/fail/ref=BadExpressionLambda.out -XDrawDiagnostics BadExpressionLambda.java
7 */
9 class BadExpressionLambda {
11 interface SAM {
12 void invoke();
13 }
15 public static void m() {}
17 void test() {
18 SAM sam1 = () -> m(); //ok
19 SAM sam2 = () -> true ? m() : m(); //not ok
20 }
21 }