1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/test/tools/javac/annotations/typeAnnotations/failures/CantAnnotateStaticClass.java Wed Jan 23 13:27:24 2013 -0800 1.3 @@ -0,0 +1,41 @@ 1.4 +/* 1.5 + * @test /nodynamiccopyright/ 1.6 + * @bug 8006733 8006775 1.7 + * @ignore 1.8 + * @summary A static outer class cannot be annotated. 1.9 + * @author Werner Dietl 1.10 + * @compile/fail/ref=CantAnnotateStaticClass.out -XDrawDiagnostics CantAnnotateStaticClass.java 1.11 + */ 1.12 + 1.13 +import java.util.List; 1.14 +import java.lang.annotation.*; 1.15 + 1.16 +class CantAnnotateStaticClass { 1.17 + @Target(ElementType.TYPE_USE) 1.18 + @interface A {} 1.19 + 1.20 + static class Outer { 1.21 + class Inner {} 1.22 + } 1.23 + 1.24 + // 8 errors: 1.25 + @A Outer.Inner f1; 1.26 + @A Outer.Inner f1r() { return null; } 1.27 + void f1p(@A Outer.Inner p) { } 1.28 + void f1c(Object o) { 1.29 + Object l = (@A Outer.Inner) o; 1.30 + } 1.31 + 1.32 + List<@A Outer.Inner> f2; 1.33 + List<@A Outer.Inner> f2r() { return null; } 1.34 + void f2p(List<@A Outer.Inner> p) { } 1.35 + void f2c(Object o) { 1.36 + Object l = (List<@A Outer.Inner>) o; 1.37 + } 1.38 + 1.39 + // OK: 1.40 + @A Outer g1; 1.41 + List<@A Outer> g2; 1.42 + Outer. @A Inner g3; 1.43 + List<Outer. @A Inner> g4; 1.44 +}