T8016177g.java revision 2819:b93a15ac3bde
152419Sjulian/* 252419Sjulian * @test /nodynamiccopyright/ 352419Sjulian * @bug 8016081 8016178 8069545 452419Sjulian * @summary structural most specific and stuckness 559882Sarchie * @compile/fail/ref=T8016177g.out -XDrawDiagnostics T8016177g.java 652419Sjulian */ 752419Sjulian 852419Sjulian 952419Sjulianclass Test { 1052419Sjulian 1152419Sjulian interface Function<X, Y> { 1252419Sjulian Y m(X x); 1352419Sjulian } 1452419Sjulian 1552419Sjulian interface Box<T> { 1652419Sjulian T get(); 1752419Sjulian <R> R map(Function<T,R> f); 1852419Sjulian } 1952419Sjulian 2052419Sjulian static class Person { 2152419Sjulian Person(String name) { } 2252419Sjulian } 2352419Sjulian 2452419Sjulian void print(Object arg) { } 2552419Sjulian void print(String arg) { } 2652419Sjulian 2752419Sjulian int abs(int a) { return 0; } 2852419Sjulian long abs(long a) { return 0; } 2952419Sjulian float abs(float a) { return 0; } 3052419Sjulian double abs(double a) { return 0; } 3152419Sjulian 3252419Sjulian void test() { 3352419Sjulian Box<String> b = null; 3452419Sjulian print(b.map(s -> new Person(s))); 3552419Sjulian int i = abs(b.map(s -> Double.valueOf(s))); 3652419Sjulian } 3752419Sjulian} 3852419Sjulian