| /* |
| * @test /nodynamiccopyright/ |
| * @bug 8023549 |
| * @summary Compiler emitting spurious errors when constructor reference type is inferred and explicit type arguments are supplied |
| * @compile/fail/ref=T8023549.out -XDrawDiagnostics T8023549.java |
| */ |
| |
| public class T8023549 { |
| static class Foo<X> { } |
| |
| interface Supplier<X> { |
| X make(); |
| } |
| |
| interface ExtSupplier<X> extends Supplier<X> { } |
| |
| void m1(Supplier<Foo<String>> sfs) { } |
| |
| void m2(Supplier<Foo<String>> sfs) { } |
| void m2(ExtSupplier<Foo<Integer>> sfs) { } |
| |
| void test() { |
| Supplier<Foo<String>> sfs = Foo::<Number>new; |
| m1(Foo::<Number>new); |
| m2(Foo::<Number>new); |
| } |
| } |