Thu, 25 Jul 2013 14:51:40 +0100
8020843: javac crashes on accessibility check with method reference with typevar receiver
Summary: method reference overload check doesn't walk through type-variable receivers
Reviewed-by: jjg
aoqi@0 | 1 | /* |
aoqi@0 | 2 | * @test /nodynamiccopyright/ |
aoqi@0 | 3 | * @bug 8019480 |
aoqi@0 | 4 | * @summary Javac crashes when method is called on a type-variable receiver from lambda expression |
aoqi@0 | 5 | * @author Maurizio Cimadamore |
aoqi@0 | 6 | * @compile/fail/ref=T8019480.out -XDrawDiagnostics T8019480.java |
aoqi@0 | 7 | */ |
aoqi@0 | 8 | import java.util.*; |
aoqi@0 | 9 | |
aoqi@0 | 10 | class T8019480<U> { |
aoqi@0 | 11 | interface Predicate<T> { |
aoqi@0 | 12 | void m(T t); |
aoqi@0 | 13 | } |
aoqi@0 | 14 | |
aoqi@0 | 15 | interface Stream<T> { |
aoqi@0 | 16 | void forEach(Predicate<T> pt); |
aoqi@0 | 17 | } |
aoqi@0 | 18 | |
aoqi@0 | 19 | void test(U current, Stream<U> stream) { |
aoqi@0 | 20 | List<U> list3 = new ArrayList<>(); |
aoqi@0 | 21 | stream.forEach(i -> list3.add(current.clone())); |
aoqi@0 | 22 | } |
aoqi@0 | 23 | } |