Tue, 29 Mar 2016 10:48:49 +0000
8143647: Javac compiles method reference that allows results in an IllegalAccessError
Summary: Lambda implementation method synthesized by javac should not mention inaccessible types.
Reviewed-by: mcimadamore
1 /*
2 * @test /nodynamiccopyright/
3 * @bug 8038182
4 * @summary javac crash with FunctionDescriptorLookupError for invalid functional interface
5 * @compile/fail/ref=CrashFunctionDescriptorExceptionTest.out -XDrawDiagnostics CrashFunctionDescriptorExceptionTest.java
6 */
8 class CrashFunctionDescriptorExceptionTest {
10 @SuppressWarnings("unchecked")
11 void m () {
12 bar((B b) -> {});
13 }
15 <E extends A<E>> void bar(I<E> i) {}
17 class A<E> {}
19 class B<E> extends A<E> {}
21 interface I<E extends A<E>> {
22 void foo(E e);
23 }
24 }