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 8003280
4 * @summary Add lambda tests
5 * complex case of cyclic type inference (lambda returned where inference var expected)
6 * @compile/fail/ref=TargetType27.out -XDrawDiagnostics TargetType27.java
7 * @compile/fail/ref=TargetType27.out -XDrawDiagnostics -XDcomplexinference TargetType27.java
8 */
10 class TargetType27 {
11 interface F<X, Y> {
12 Y f(X a);
13 }
15 <A, R> F<A, R> m(F<A, R> f) { return null; }
17 void test() {
18 m((String s1) -> (String s2) -> new Integer(1));
19 }
20 }