MostSpecific32.java revision 3469:0bf0d57dfdfa
1243791Sdim/*
2243791Sdim * @test /nodynamiccopyright/
3353358Sdim * @bug 8144767
4353358Sdim * @summary Correct most-specific test when wildcards appear in functional interface type
5353358Sdim * @compile/fail/ref=MostSpecific32.out -XDrawDiagnostics MostSpecific32.java
6243791Sdim */
7243791Sdimclass MostSpecific32 {
8243791Sdim
9243791Sdim    interface A<T> {}
10243791Sdim    interface B<T> extends A<T> {}
11243791Sdim
12243791Sdim    interface F1<S> { A<S> apply(); }
13243791Sdim    interface F2<S> { B<S> apply(); }
14280031Sdim
15280031Sdim    static void m1(F1<? extends Number> f1) {}
16243791Sdim    static void m1(F2<? extends Number> f2) {}
17243791Sdim
18243791Sdim    void test() {
19243791Sdim        m1(() -> null); // B<CAP ext Number> </: A<Number>
20243791Sdim    }
21243791Sdim
22243791Sdim}
23341825Sdim