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