|
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 } |