/* * @test /nodynamiccopyright/ * @bug 8003280 * @summary Add lambda tests * target type inference in a case where lambda expression returns diamond * @compile/fail/ref=TargetType28.out -XDrawDiagnostics TargetType28.java */ class TargetType28 { static class SuperFoo<X> {} static class Foo<X extends Number> extends SuperFoo<X> {} interface A<X, Y> { SuperFoo<Y> m(X x); } <Z, R> SuperFoo<R> apply(A<Z, R> ax, Z x) { return null; } SuperFoo<String> ls = apply(x-> new Foo<>(), 1); SuperFoo<Integer> li = apply(x-> new Foo<>(), 1); SuperFoo<?> lw = apply(x-> new Foo<>(), 1); }