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 }