Fri, 27 Sep 2013 10:24:56 +0100
8024497: crash returning this-referencing lambda from default method
Reviewed-by: jjg, rfield
1 /*
2 * @test /nodynamiccopyright/
3 * @bug 8016081 8016178
4 * @summary structural most specific and stuckness
5 * @compile/fail/ref=T8016177g.out -XDrawDiagnostics T8016177g.java
6 */
9 class Test {
11 interface Function<X, Y> {
12 Y m(X x);
13 }
15 interface Box<T> {
16 T get();
17 <R> R map(Function<T,R> f);
18 }
20 static class Person {
21 Person(String name) { }
22 }
24 void print(Object arg) { }
25 void print(String arg) { }
27 int abs(int a) { return 0; }
28 long abs(long a) { return 0; }
29 float abs(float a) { return 0; }
30 double abs(double a) { return 0; }
32 void test() {
33 Box<String> b = null;
34 print(b.map(s -> new Person(s)));
35 int i = abs(b.map(s -> Double.valueOf(s)));
36 }
37 }