| /* | |
| * @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); | |
| } | |
| } |