1/*
2 * @test /nodynamiccopyright/
3 * @bug 8016081 8016178 8069545 8078024
4 * @summary structural most specific and stuckness
5 * @compile/fail/ref=T8016177g.out -XDrawDiagnostics T8016177g.java
6 */
7
8
9class Test {
10
11    interface Function<X, Y> {
12        Y m(X x);
13    }
14
15    interface Box<T> {
16        T get();
17        <R> R map(Function<T,R> f);
18    }
19
20    static class Person {
21        Person(String name) { }
22    }
23
24    void print(Object arg) { }
25    void print(String arg) { }
26
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; }
31
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}
38