aoqi@0: /* aoqi@0: * @test /nodynamiccopyright/ aoqi@0: * @bug 8016177 8016178 aoqi@0: * @summary structural most specific and stuckness aoqi@0: * @compile/fail/ref=T8016177b.out -XDrawDiagnostics T8016177b.java aoqi@0: */ aoqi@0: class T8016177b { 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: Function id(Function arg) { return null; } aoqi@0: aoqi@0: Function id2(Function arg) { return null; } aoqi@0: ToIntFunction id2(ToIntFunction arg) { return null; } aoqi@0: aoqi@0: aoqi@0: X f(Y arg, Function f) { return null; } aoqi@0: aoqi@0: X f2(Y arg, Function f) { return null; } aoqi@0: X f2(Y arg, ToIntFunction f) { return null; } aoqi@0: aoqi@0: T g(T arg) { return null; } aoqi@0: aoqi@0: void test() { aoqi@0: g(f("hi", id(x->1))); //ok aoqi@0: g(f("hi", id2(x->1))); //ambiguous aoqi@0: g(f2("hi", id(x->1))); //ok aoqi@0: } aoqi@0: }