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
aoqi@0 | 1 | /* |
aoqi@0 | 2 | * @test /nodynamiccopyright/ |
aoqi@0 | 3 | * @bug 8012685 |
aoqi@0 | 4 | * @summary Spurious raw types warning when using unbound method references |
aoqi@0 | 5 | * @compile/fail/ref=MethodReference67.out -Werror -Xlint:rawtypes -XDrawDiagnostics MethodReference67.java |
aoqi@0 | 6 | */ |
aoqi@0 | 7 | import java.util.*; |
aoqi@0 | 8 | |
aoqi@0 | 9 | class MethodReference67 { |
aoqi@0 | 10 | interface Foo<X> { |
aoqi@0 | 11 | void m(List<X> lx, X x); |
aoqi@0 | 12 | } |
aoqi@0 | 13 | |
aoqi@0 | 14 | void test() { |
aoqi@0 | 15 | Foo<String> fs1 = List::add; //no raw warnings here! |
aoqi@0 | 16 | Foo fs2 = List::add; |
aoqi@0 | 17 | } |
aoqi@0 | 18 | } |