T6939780.java revision 1923:cd9e8cea1b3c
1/* 2 * @test /nodynamiccopyright/ 3 * @bug 6939780 7020044 8009459 8021338 4 * 5 * @summary add a warning to detect diamond sites 6 * @author mcimadamore 7 * @compile/ref=T6939780_7.out -Xlint:-options -source 7 T6939780.java -XDrawDiagnostics -XDfindDiamond 8 * @compile/ref=T6939780_8.out T6939780.java -XDrawDiagnostics -XDfindDiamond 9 * 10 */ 11 12class T6939780 { 13 14 static class Foo<X extends Number> { 15 Foo() {} 16 Foo(X x) {} 17 } 18 19 void testAssign() { 20 Foo<Number> f1 = new Foo<Number>(1); 21 Foo<?> f2 = new Foo<Number>(); 22 Foo<?> f3 = new Foo<Integer>(); 23 Foo<Number> f4 = new Foo<Number>(1) {}; 24 Foo<?> f5 = new Foo<Number>() {}; 25 Foo<?> f6 = new Foo<Integer>() {}; 26 } 27 28 void testMethod() { 29 gn(new Foo<Number>(1)); 30 gw(new Foo<Number>()); 31 gw(new Foo<Integer>()); 32 gn(new Foo<Number>(1) {}); 33 gw(new Foo<Number>() {}); 34 gw(new Foo<Integer>() {}); 35 } 36 37 void gw(Foo<?> fw) { } 38 void gn(Foo<Number> fn) { } 39 40 static class Foo2<X> { 41 X copy(X t) { 42 return t; 43 } 44 } 45 46 void testReciever() { 47 Number s = new Foo2<Number>().copy(0); 48 } 49 50} 51