1 /*
   2  * @test /nodynamiccopyright/
   3  * @bug 8006733 8006775
   4  * @ignore 8013409: test failures for type annotations
   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 }