test/tools/javac/annotations/typeAnnotations/failures/CantAnnotateStaticClass.java
Print this page
*** 10,27 ****
import java.util.ArrayList;
import java.util.HashMap;
import java.lang.annotation.*;
class Top {
! @Target(ElementType.TYPE_USE)
! @interface TA {}
!
! @Target(ElementType.TYPE_USE)
! @interface TB {}
!
! @Target(ElementType.TYPE_USE)
! @interface TC {}
class Outer {
class Inner {
Object o1 = Top.this;
Object o2 = Outer.this;
--- 10,62 ----
import java.util.ArrayList;
import java.util.HashMap;
import java.lang.annotation.*;
class Top {
! @Target(ElementType.TYPE_USE) @interface TA {}
! @Target(ElementType.TYPE_USE) @interface TB1 {}
! @Target(ElementType.TYPE_USE) @interface TB2 {}
! @Target(ElementType.TYPE_USE) @interface TB3 {}
! @Target(ElementType.TYPE_USE) @interface TB4 {}
! @Target(ElementType.TYPE_USE) @interface TB5 {}
! @Target(ElementType.TYPE_USE) @interface TB6 {}
! @Target(ElementType.TYPE_USE) @interface TB7 {}
! @Target(ElementType.TYPE_USE) @interface TB8 {}
! @Target(ElementType.TYPE_USE) @interface TB9 {}
! @Target(ElementType.TYPE_USE) @interface TB10 {}
! @Target(ElementType.TYPE_USE) @interface TB11 {}
! @Target(ElementType.TYPE_USE) @interface TB12 {}
! @Target(ElementType.TYPE_USE) @interface TB13 {}
! @Target(ElementType.TYPE_USE) @interface TB14 {}
! @Target(ElementType.TYPE_USE) @interface TB15 {}
! @Target(ElementType.TYPE_USE) @interface TB16 {}
! @Target(ElementType.TYPE_USE) @interface TB17 {}
! @Target(ElementType.TYPE_USE) @interface TB18 {}
! @Target(ElementType.TYPE_USE) @interface TB19 {}
! @Target(ElementType.TYPE_USE) @interface TB20 {}
! @Target(ElementType.TYPE_USE) @interface TB21 {}
! @Target(ElementType.TYPE_USE) @interface TB22 {}
! @Target(ElementType.TYPE_USE) @interface TB23 {}
! @Target(ElementType.TYPE_USE) @interface TB24 {}
! @Target(ElementType.TYPE_USE) @interface TB25 {}
! @Target(ElementType.TYPE_USE) @interface TB26 {}
! @Target(ElementType.TYPE_USE) @interface TB27 {}
! @Target(ElementType.TYPE_USE) @interface TB28 {}
! @Target(ElementType.TYPE_USE) @interface TB29 {}
! @Target(ElementType.TYPE_USE) @interface TB30 {}
! @Target(ElementType.TYPE_USE) @interface TB31 {}
! @Target(ElementType.TYPE_USE) @interface TB32 {}
! @Target(ElementType.TYPE_USE) @interface TB33 {}
! @Target(ElementType.TYPE_USE) @interface TB34 {}
! @Target(ElementType.TYPE_USE) @interface TB35 {}
! @Target(ElementType.TYPE_USE) @interface TB36 {}
! @Target(ElementType.TYPE_USE) @interface TB37 {}
! @Target(ElementType.TYPE_USE) @interface TB38 {}
! @Target(ElementType.TYPE_USE) @interface TB39 {}
! @Target(ElementType.TYPE_USE) @interface TB40 {}
! @Target(ElementType.TYPE_USE) @interface TB41 {}
! @Target(ElementType.TYPE_USE) @interface TC {}
class Outer {
class Inner {
Object o1 = Top.this;
Object o2 = Outer.this;
*** 32,96 ****
// interface IInner {}
}
// All combinations are OK
! Top.@TB Outer f1;
! @TB Outer.Inner f1a;
Outer. @TC Inner f1b;
! @TB Outer. @TC Inner f1c;
! @TA Top. @TB Outer f2;
! @TA Top. @TB Outer.Inner f2a;
@TA Top. Outer. @TC Inner f2b;
! @TA Top. @TB Outer. @TC Inner f2c;
! @TB Outer f1r() { return null; }
! @TB Outer.Inner f1ra() { return null; }
Outer. @TC Inner f1rb() { return null; }
! @TB Outer. @TC Inner f1rc() { return null; }
! void f1param(@TB Outer p,
! @TB Outer.Inner p1,
Outer. @TC Inner p2,
! @TB Outer. @TC Inner p3) { }
void f1cast(Object o) {
Object l;
! l = (@TB Outer) o;
! l = (@TB Outer.Inner) o;
l = (Outer. @TC Inner) o;
! l = (@TB Outer. @TC Inner) o;
}
! List<@TB Outer> g1;
! List<@TB Outer.Inner> g1a;
List<Outer. @TC Inner> g1b;
! List<@TB Outer. @TC Inner> g1c;
! List<@TA Top. @TB Outer> g2;
! List<@TA Top. @TB Outer.Inner> g2a;
List<@TA Top. Outer. @TC Inner> g2b;
! List<@TA Top. @TB Outer. @TC Inner> g2c;
! List<@TB Outer> g1r() { return null; }
! List<@TB Outer.Inner> g1ra() { return null; }
List<Outer. @TC Inner> g1rb() { return null; }
! List<@TB Outer. @TC Inner> g1rc() { return null; }
! void g1param(List<@TB Outer> p,
! List<@TB Outer.Inner> p1,
List<Outer. @TC Inner> p2,
! List<@TB Outer. @TC Inner> p3) { }
void g1new(Object o) {
Object l;
! l = new @TB ArrayList<@TB Outer>();
! l = new @TB ArrayList<@TB Outer.Inner>();
! l = new @TB HashMap<String, Outer. @TC Inner>();
! l = new @TB HashMap<String, @TB Outer. Inner>();
! l = new @TB HashMap<String, @TB Outer. @TC Inner>();
! l = new @TB HashMap<String, @TA Top. Outer. @TC Inner>();
! l = new @TB HashMap<String, @TA Top. @TB Outer. Inner>();
! l = new @TB HashMap<String, @TA Top. @TB Outer. @TC Inner>();
}
}
--- 67,131 ----
// interface IInner {}
}
// All combinations are OK
! Top.@TB1 Outer f1;
! @TB2 Outer.Inner f1a;
Outer. @TC Inner f1b;
! @TB3 Outer. @TC Inner f1c;
! @TA Top. @TB4 Outer f2;
! @TA Top. @TB5 Outer.Inner f2a;
@TA Top. Outer. @TC Inner f2b;
! @TA Top. @TB6 Outer. @TC Inner f2c;
! @TB7 Outer f1r() { return null; }
! @TB8 Outer.Inner f1ra() { return null; }
Outer. @TC Inner f1rb() { return null; }
! @TB9 Outer. @TC Inner f1rc() { return null; }
! void f1param(@TB41 Outer p,
! @TB10 Outer.Inner p1,
Outer. @TC Inner p2,
! @TB11 Outer. @TC Inner p3) { }
void f1cast(Object o) {
Object l;
! l = (@TB12 Outer) o;
! l = (@TB13 Outer.Inner) o;
l = (Outer. @TC Inner) o;
! l = (@TB14 Outer. @TC Inner) o;
}
! List<@TB15 Outer> g1;
! List<@TB16 Outer.Inner> g1a;
List<Outer. @TC Inner> g1b;
! List<@TB17 Outer. @TC Inner> g1c;
! List<@TA Top. @TB18 Outer> g2;
! List<@TA Top. @TB19 Outer.Inner> g2a;
List<@TA Top. Outer. @TC Inner> g2b;
! List<@TA Top. @TB20 Outer. @TC Inner> g2c;
! List<@TB21 Outer> g1r() { return null; }
! List<@TB22 Outer.Inner> g1ra() { return null; }
List<Outer. @TC Inner> g1rb() { return null; }
! List<@TB23 Outer. @TC Inner> g1rc() { return null; }
! void g1param(List<@TB24 Outer> p,
! List<@TB25 Outer.Inner> p1,
List<Outer. @TC Inner> p2,
! List<@TB26 Outer. @TC Inner> p3) { }
void g1new(Object o) {
Object l;
! l = new @TB27 ArrayList<@TB28 Outer>();
! l = new @TB29 ArrayList<@TB30 Outer.Inner>();
! l = new @TB31 HashMap<String, Outer. @TC Inner>();
! l = new @TB32 HashMap<String, @TB33 Outer. Inner>();
! l = new @TB34 HashMap<String, @TB35 Outer. @TC Inner>();
! l = new @TB36 HashMap<String, @TA Top. Outer. @TC Inner>();
! l = new @TB37 HashMap<String, @TA Top. @TB38 Outer. Inner>();
! l = new @TB39 HashMap<String, @TA Top. @TB40 Outer. @TC Inner>();
}
}