test/tools/javac/annotations/typeAnnotations/failures/CantAnnotateStaticClass.java

changeset 1521
71f35e4b93a5
child 1721
abd153854f16
equal deleted inserted replaced
1520:5c956be64b9e 1521:71f35e4b93a5
1 /*
2 * @test /nodynamiccopyright/
3 * @bug 8006733 8006775
4 * @ignore
5 * @summary A static outer class cannot be annotated.
6 * @author Werner Dietl
7 * @compile/fail/ref=CantAnnotateStaticClass.out -XDrawDiagnostics CantAnnotateStaticClass.java
8 */
9
10 import java.util.List;
11 import java.lang.annotation.*;
12
13 class CantAnnotateStaticClass {
14 @Target(ElementType.TYPE_USE)
15 @interface A {}
16
17 static class Outer {
18 class Inner {}
19 }
20
21 // 8 errors:
22 @A Outer.Inner f1;
23 @A Outer.Inner f1r() { return null; }
24 void f1p(@A Outer.Inner p) { }
25 void f1c(Object o) {
26 Object l = (@A Outer.Inner) o;
27 }
28
29 List<@A Outer.Inner> f2;
30 List<@A Outer.Inner> f2r() { return null; }
31 void f2p(List<@A Outer.Inner> p) { }
32 void f2c(Object o) {
33 Object l = (List<@A Outer.Inner>) o;
34 }
35
36 // OK:
37 @A Outer g1;
38 List<@A Outer> g2;
39 Outer. @A Inner g3;
40 List<Outer. @A Inner> g4;
41 }

mercurial