langtools/test/tools/javac/annotations/typeAnnotations/failures/CantAnnotateStaticClass.java
changeset 15385 ee1eebe7e210
child 17544 80db48a54a9f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/failures/CantAnnotateStaticClass.java	Wed Jan 23 13:27:24 2013 -0800
@@ -0,0 +1,41 @@
+/*
+ * @test /nodynamiccopyright/
+ * @bug 8006733 8006775
+ * @ignore
+ * @summary A static outer class cannot be annotated.
+ * @author Werner Dietl
+ * @compile/fail/ref=CantAnnotateStaticClass.out -XDrawDiagnostics CantAnnotateStaticClass.java
+ */
+
+import java.util.List;
+import java.lang.annotation.*;
+
+class CantAnnotateStaticClass {
+    @Target(ElementType.TYPE_USE)
+    @interface A {}
+
+    static class Outer {
+        class Inner {}
+    }
+
+    // 8 errors:
+    @A Outer.Inner f1;
+    @A Outer.Inner f1r() { return null; }
+    void f1p(@A Outer.Inner p) { }
+    void f1c(Object o) {
+        Object l = (@A Outer.Inner) o;
+    }
+
+    List<@A Outer.Inner> f2;
+    List<@A Outer.Inner> f2r() { return null; }
+    void f2p(List<@A Outer.Inner> p) { }
+    void f2c(Object o) {
+        Object l = (List<@A Outer.Inner>) o;
+    }
+
+    // OK:
+    @A Outer g1;
+    List<@A Outer> g2;
+    Outer. @A Inner g3;
+    List<Outer. @A Inner> g4;
+}