T6939780.java revision 1617:8a78243291ef
1238384Sjkim/*
2238384Sjkim * @test /nodynamiccopyright/
3238384Sjkim * @bug 6939780 7020044 8009459
4238384Sjkim *
5238384Sjkim * @summary  add a warning to detect diamond sites
6238384Sjkim * @author mcimadamore
7238384Sjkim * @compile/ref=T6939780_7.out -Xlint:-options -source 7 T6939780.java -XDrawDiagnostics -XDfindDiamond
8238384Sjkim * @compile/ref=T6939780_8.out T6939780.java -XDrawDiagnostics -XDfindDiamond
9238384Sjkim *
10273399Sdelphij */
11273399Sdelphij
12273399Sdelphijclass T6939780 {
13296341Sdelphij
14296341Sdelphij    static class Foo<X extends Number> {
15238384Sjkim        Foo() {}
16296341Sdelphij        Foo(X x) {}
17296341Sdelphij    }
18296341Sdelphij
19238384Sjkim    void testAssign() {
20296341Sdelphij        Foo<Number> f1 = new Foo<Number>(1);
21296341Sdelphij        Foo<?> f2 = new Foo<Number>();
22296341Sdelphij        Foo<?> f3 = new Foo<Integer>();
23238384Sjkim        Foo<Number> f4 = new Foo<Number>(1) {};
24296341Sdelphij        Foo<?> f5 = new Foo<Number>() {};
25296341Sdelphij        Foo<?> f6 = new Foo<Integer>() {};
26296341Sdelphij    }
27296341Sdelphij
28238384Sjkim    void testMethod() {
29238384Sjkim        gn(new Foo<Number>(1));
30296341Sdelphij        gw(new Foo<Number>());
31296341Sdelphij        gw(new Foo<Integer>());
32238384Sjkim        gn(new Foo<Number>(1) {});
33296341Sdelphij        gw(new Foo<Number>() {});
34296341Sdelphij        gw(new Foo<Integer>() {});
35238384Sjkim    }
36238384Sjkim
37296341Sdelphij    void gw(Foo<?> fw) { }
38296341Sdelphij    void gn(Foo<Number> fn) { }
39296341Sdelphij}
40296341Sdelphij