1 /**
2  * @test /nodynamiccopyright/
3  * @bug 6747671 8022567
4  * @summary -Xlint:rawtypes
5  * @compile/ref=T6747671.out -XDrawDiagnostics -Xlint:rawtypes T6747671.java
6  */
7 
8 
9 class T6747671<E> {
10 
11     static class B<X> {}
12 
13     class A<X> {
14         class X {}
15         class Z<Y> {}
16     }
17 
18 
19     A.X x1;//raw warning
20     A.Z z1;//raw warning
21 
22     T6747671.B<Integer> b1;//ok
23     T6747671.B b2;//raw warning
24 
25     A<String>.X x2;//ok
26     A<String>.Z<Integer> z2;//ok
27     A<B>.Z<A<B>> z3;//raw warning (2)
28 
test(Object arg1, B arg2)29     void test(Object arg1, B arg2) {//raw warning
30         boolean b = arg1 instanceof A;//ok
31         Object a = (A)arg1;//ok
32         A a2 = new A() {};//raw warning (2)
33         a2.new Z() {};//raw warning
34     }
35 
36     @TA B @TA[] arr = new @TA B @TA [0];//JDK-8022567: raw warning (2)
37     //todo: 8057688 type annotations in type argument position are lost
38     Class<B[]> classes1;//no warning
39     Class<B>[] classes2;//no warning
40 
41     @java.lang.annotation.Target(java.lang.annotation.ElementType.TYPE_USE)
42     @interface TA { }
43 }
44