aoqi@0: /* aoqi@0: * @test /nodynamiccopyright/ aoqi@0: * @bug 8016177 8016178 aoqi@0: * @summary structural most specific and stuckness aoqi@0: * @compile/fail/ref=T8016177a.out -XDrawDiagnostics T8016177a.java aoqi@0: */ aoqi@0: import java.util.List; aoqi@0: aoqi@0: class T8016177a { aoqi@0: aoqi@0: interface ToIntFunction { aoqi@0: int m(X x); aoqi@0: } aoqi@0: aoqi@0: interface Function { aoqi@0: Y m(X x); aoqi@0: } aoqi@0: aoqi@0: void m1(List s, Function f) { } aoqi@0: void m1(List s, ToIntFunction f) { } aoqi@0: aoqi@0: List m2(List s, Function f) { return null; } aoqi@0: List m2(List s, ToIntFunction f) { return null; } aoqi@0: aoqi@0: List m3(List s, Function f) { return null; } aoqi@0: List m3(List s, ToIntFunction f) { return null; } aoqi@0: aoqi@0: List m4(List s, Function f) { return null; } aoqi@0: List m4(List s, ToIntFunction f) { return null; } aoqi@0: aoqi@0: List m5(List s, Function f) { return null; } aoqi@0: List m5(List s, ToIntFunction f) { return null; } aoqi@0: aoqi@0: List m6(List s, Function f) { return null; } aoqi@0: List m6(List s, ToIntFunction f) { return null; } aoqi@0: aoqi@0: void test(List ss) { aoqi@0: m1(ss, s->s.length()); //ambiguous aoqi@0: m2(ss, s->s.length()); //ambiguous aoqi@0: m3(ss, s->s.length()); //ambiguous aoqi@0: m4(ss, s->s.length()); //ambiguous aoqi@0: m5(ss, s->s.length()); //ambiguous aoqi@0: m6(ss, s->s.length()); //ambiguous aoqi@0: } aoqi@0: }