/* * @test /nodynamiccopyright/ * @bug 6939780 7020044 8009459 8021338 8064365 8062373 * * @summary add a warning to detect diamond sites (including anonymous class instance creation at source >= 9) * @author mcimadamore * @compile/ref=T6939780_7.out -Xlint:-options -source 7 T6939780.java -XDrawDiagnostics -XDfind=diamond * @compile/ref=T6939780_8.out -Xlint:-options -source 8 T6939780.java -XDrawDiagnostics -XDfind=diamond * @compile/ref=T6939780_9.out -Xlint:-options -source 9 T6939780.java -XDrawDiagnostics -XDfind=diamond * */ class T6939780 { static class Foo<X extends Number> { Foo() {} Foo(X x) {} } void testAssign() { Foo<Number> f1 = new Foo<Number>(1); Foo<?> f2 = new Foo<Number>(); Foo<?> f3 = new Foo<Integer>(); Foo<Number> f4 = new Foo<Number>(1) {}; Foo<?> f5 = new Foo<Number>() {}; Foo<?> f6 = new Foo<Integer>() {}; } void testMethod() { gn(new Foo<Number>(1)); gw(new Foo<Number>()); gw(new Foo<Integer>()); gn(new Foo<Number>(1) {}); gw(new Foo<Number>() {}); gw(new Foo<Integer>() {}); } void gw(Foo<?> fw) { } void gn(Foo<Number> fn) { } static class Foo2<X> { X copy(X t) { return t; } } void testReciever() { Number s = new Foo2<Number>().copy(0); } }