test/tools/javac/annotations/typeAnnotations/failures/CantAnnotateStaticClass3.java

Tue, 15 Oct 2013 15:57:13 -0700

author
jjg
date
Tue, 15 Oct 2013 15:57:13 -0700
changeset 2134
b0c086cd4520
parent 0
959103a6100f
permissions
-rw-r--r--

8026564: import changes from type-annotations forest
Reviewed-by: jjg
Contributed-by: wdietl@gmail.com, steve.sides@oracle.com

aoqi@0 1 /*
aoqi@0 2 * @test /nodynamiccopyright/
aoqi@0 3 * @bug 8006733 8006775
aoqi@0 4 * @summary Ensure behavior for nested types is correct.
aoqi@0 5 * @author Werner Dietl
aoqi@0 6 * @ignore
aoqi@0 7 * @compile/fail/ref=CantAnnotateStaticClass3.out -XDrawDiagnostics CantAnnotateStaticClass3.java
aoqi@0 8 */
aoqi@0 9
aoqi@0 10 import java.util.List;
aoqi@0 11 import java.util.ArrayList;
aoqi@0 12 import java.util.HashMap;
aoqi@0 13 import java.lang.annotation.*;
aoqi@0 14
aoqi@0 15 class Top {
aoqi@0 16 @Target(ElementType.TYPE_USE)
aoqi@0 17 @interface TA {}
aoqi@0 18
aoqi@0 19 @Target(ElementType.TYPE_USE)
aoqi@0 20 @interface TB {}
aoqi@0 21
aoqi@0 22 @Target(ElementType.TYPE_USE)
aoqi@0 23 @interface TC {}
aoqi@0 24
aoqi@0 25 interface Outer {
aoqi@0 26 class Inner {
aoqi@0 27 // Object o1 = Top.this;
aoqi@0 28 // Object o2 = Outer.this;
aoqi@0 29 Object o3 = this;
aoqi@0 30 }
aoqi@0 31 static class SInner {
aoqi@0 32 // Object o1 = Top.this;
aoqi@0 33 // Object o2 = Outer.this;
aoqi@0 34 Object o3 = this;
aoqi@0 35 }
aoqi@0 36 interface IInner {
aoqi@0 37 // Object o1 = Top.this;
aoqi@0 38 // Object o2 = Outer.this;
aoqi@0 39 // Object o3 = this;
aoqi@0 40 }
aoqi@0 41 }
aoqi@0 42
aoqi@0 43
aoqi@0 44 @TB Outer f1;
aoqi@0 45 @TB Outer.Inner f1a; // err
aoqi@0 46 @TB Outer.SInner f2a; // err
aoqi@0 47 @TB Outer.IInner f3a; // err
aoqi@0 48
aoqi@0 49 Outer. @TC Inner f1b;
aoqi@0 50 Outer. @TC SInner f2b;
aoqi@0 51 Outer. @TC IInner f3b;
aoqi@0 52
aoqi@0 53 @TB Outer. @TC Inner f1c; // err
aoqi@0 54 @TB Outer. @TC SInner f2c; // err
aoqi@0 55 @TB Outer. @TC IInner f3c; // err
aoqi@0 56
aoqi@0 57 @TA Top. @TB Outer g1; // err
aoqi@0 58 @TA Top. @TB Outer.Inner g1a; // err
aoqi@0 59 @TA Top. @TB Outer.SInner g2a; // err
aoqi@0 60 @TA Top. @TB Outer.IInner g3a; // err
aoqi@0 61
aoqi@0 62 @TA Top. Outer. @TC Inner g1b; // err
aoqi@0 63 @TA Top. Outer. @TC SInner g2b; // err
aoqi@0 64 @TA Top. Outer. @TC IInner g3b; // err
aoqi@0 65
aoqi@0 66 @TA Top. @TB Outer. @TC Inner g1c; // err
aoqi@0 67 @TA Top. @TB Outer. @TC SInner g2c; // err
aoqi@0 68 @TA Top. @TB Outer. @TC IInner g3c; // err
aoqi@0 69
aoqi@0 70 @TB Outer f1r() { return null; }
aoqi@0 71
aoqi@0 72 @TB Outer.Inner f1ra() { return null; } // err
aoqi@0 73 @TB Outer.SInner f2ra() { return null; } // err
aoqi@0 74 @TB Outer.IInner f3ra() { return null; } // err
aoqi@0 75
aoqi@0 76 Outer. @TC Inner f1rb() { return null; }
aoqi@0 77 Outer. @TC SInner f2rb() { return null; }
aoqi@0 78 Outer. @TC IInner f3rb() { return null; }
aoqi@0 79
aoqi@0 80 @TB Outer. @TC Inner f1rc() { return null; } // err
aoqi@0 81 @TB Outer. @TC SInner f2rc() { return null; } // err
aoqi@0 82 @TB Outer. @TC IInner f3rc() { return null; } // err
aoqi@0 83
aoqi@0 84 void f1param(@TB Outer p,
aoqi@0 85 @TB Outer.Inner p1, // err
aoqi@0 86 Outer. @TC Inner p2,
aoqi@0 87 @TB Outer. @TC Inner p3) { } // err
aoqi@0 88 void f2param(@TB Outer p,
aoqi@0 89 @TB Outer.SInner p1, // err
aoqi@0 90 Outer. @TC SInner p2,
aoqi@0 91 @TB Outer. @TC SInner p3) { } // err
aoqi@0 92 void f3param(@TB Outer p,
aoqi@0 93 @TB Outer.IInner p1, // err
aoqi@0 94 Outer. @TC IInner p2,
aoqi@0 95 @TB Outer. @TC IInner p3) { } // err
aoqi@0 96
aoqi@0 97 void f1cast(Object o) {
aoqi@0 98 Object l;
aoqi@0 99 l = (@TB Outer) o;
aoqi@0 100 l = (@TB Outer.Inner) o; // err
aoqi@0 101 l = (Outer. @TC Inner) o;
aoqi@0 102 l = (@TB Outer. @TC Inner) o; // err
aoqi@0 103 }
aoqi@0 104 void f2cast(Object o) {
aoqi@0 105 Object l;
aoqi@0 106 l = (@TB Outer) o;
aoqi@0 107 l = (@TB Outer.SInner) o; // err
aoqi@0 108 l = (Outer. @TC SInner) o;
aoqi@0 109 l = (@TB Outer. @TC SInner) o; // err
aoqi@0 110 }
aoqi@0 111 void f3cast(Object o) {
aoqi@0 112 Object l;
aoqi@0 113 l = (@TB Outer) o;
aoqi@0 114 l = (@TB Outer.IInner) o; // err
aoqi@0 115 l = (Outer. @TC IInner) o;
aoqi@0 116 l = (@TB Outer. @TC IInner) o; // err
aoqi@0 117 }
aoqi@0 118
aoqi@0 119 List<@TB Outer> h1;
aoqi@0 120
aoqi@0 121 List<@TB Outer.Inner> h1a; // err
aoqi@0 122 List<@TB Outer.SInner> h2a; // err
aoqi@0 123 List<@TB Outer.IInner> h3a; // err
aoqi@0 124
aoqi@0 125 List<Outer. @TC Inner> h1b;
aoqi@0 126 List<Outer. @TC SInner> h2b;
aoqi@0 127 List<Outer. @TC IInner> h3b;
aoqi@0 128
aoqi@0 129 List<@TB Outer. @TC Inner> h1c; // err
aoqi@0 130 List<@TB Outer. @TC SInner> h2c; // err
aoqi@0 131 List<@TB Outer. @TC IInner> h3c; // err
aoqi@0 132
aoqi@0 133 List<@TA Top. @TB Outer> k1; // err
aoqi@0 134
aoqi@0 135 List<@TA Top. @TB Outer.Inner> k1a; // err
aoqi@0 136 List<@TA Top. @TB Outer.SInner> k2a; // err
aoqi@0 137 List<@TA Top. @TB Outer.IInner> k3a; // err
aoqi@0 138
aoqi@0 139 List<@TA Top. Outer. @TC Inner> k1b; // err
aoqi@0 140 List<@TA Top. Outer. @TC SInner> k2b; // err
aoqi@0 141 List<@TA Top. Outer. @TC IInner> k3b; // err
aoqi@0 142
aoqi@0 143 List<@TA Top. @TB Outer. @TC Inner> k1c; // err
aoqi@0 144 List<@TA Top. @TB Outer. @TC SInner> k2c; // err
aoqi@0 145 List<@TA Top. @TB Outer. @TC IInner> k3c; // err
aoqi@0 146
aoqi@0 147
aoqi@0 148 List<@TB Outer> g1r() { return null; }
aoqi@0 149
aoqi@0 150 List<@TB Outer.Inner> g1ra() { return null; } // err
aoqi@0 151 List<@TB Outer.SInner> g2ra() { return null; } // err
aoqi@0 152 List<@TB Outer.IInner> g3ra() { return null; } // err
aoqi@0 153
aoqi@0 154 List<Outer. @TC Inner> g1rb() { return null; }
aoqi@0 155 List<Outer. @TC SInner> g2rb() { return null; }
aoqi@0 156 List<Outer. @TC IInner> g3rb() { return null; }
aoqi@0 157
aoqi@0 158 List<@TB Outer. @TC Inner> g1rc() { return null; } // err
aoqi@0 159 List<@TB Outer. @TC SInner> g2rc() { return null; } // err
aoqi@0 160 List<@TB Outer. @TC IInner> g3rc() { return null; } // err
aoqi@0 161
aoqi@0 162 void g1param(List<@TB Outer> p,
aoqi@0 163 List<@TB Outer.Inner> p1, // err
aoqi@0 164 List<Outer. @TC Inner> p2,
aoqi@0 165 List<@TB Outer. @TC Inner> p3) { } // err
aoqi@0 166 void g2param(List<@TB Outer> p,
aoqi@0 167 List<@TB Outer.SInner> p1, // err
aoqi@0 168 List<Outer. @TC SInner> p2,
aoqi@0 169 List<@TB Outer. @TC SInner> p3) { } // err
aoqi@0 170 void g3param(List<@TB Outer> p,
aoqi@0 171 List<@TB Outer.IInner> p1, // err
aoqi@0 172 List<Outer. @TC IInner> p2,
aoqi@0 173 List<@TB Outer. @TC IInner> p3) { } // err
aoqi@0 174
aoqi@0 175 void g1new(Object o) {
aoqi@0 176 Object l;
aoqi@0 177 l = new @TB ArrayList<@TB Outer>();
aoqi@0 178 l = new @TB ArrayList<@TB Outer.Inner>(); // err
aoqi@0 179 l = new @TB HashMap<String, Outer. @TC Inner>();
aoqi@0 180 l = new @TB HashMap<String, @TB Outer. Inner>(); // err
aoqi@0 181 l = new @TB HashMap<String, @TB Outer. @TC Inner>(); // err
aoqi@0 182 }
aoqi@0 183 void g2new(Object o) {
aoqi@0 184 Object l;
aoqi@0 185 l = new @TB ArrayList<@TB Outer>();
aoqi@0 186 l = new @TB ArrayList<@TB Outer.SInner>(); // err
aoqi@0 187 l = new @TB HashMap<String, Outer. @TC SInner>();
aoqi@0 188 l = new @TB HashMap<String, @TB Outer. SInner>(); // err
aoqi@0 189 l = new @TB HashMap<String, @TB Outer. @TC SInner>(); // err
aoqi@0 190 }
aoqi@0 191 void g3new(Object o) {
aoqi@0 192 Object l;
aoqi@0 193 l = new @TB ArrayList<@TB Outer>();
aoqi@0 194 l = new @TB ArrayList<@TB Outer.IInner>(); // err
aoqi@0 195 l = new @TB HashMap<String, Outer. @TC IInner>();
aoqi@0 196 l = new @TB HashMap<String, @TB Outer. IInner>(); // err
aoqi@0 197 l = new @TB HashMap<String, @TB Outer. @TC IInner>(); // err
aoqi@0 198 }
aoqi@0 199 void g4new(Object o) {
aoqi@0 200 Object l;
aoqi@0 201 l = new @TB ArrayList<@TA Top. @TB Outer>(); // err
aoqi@0 202 l = new @TB ArrayList<@TA Top. @TB Outer.IInner>(); // err
aoqi@0 203 l = new @TB HashMap<String, @TA Top. Outer. @TC IInner>(); // err
aoqi@0 204 l = new @TB HashMap<String, @TA Top. @TB Outer. IInner>(); // err
aoqi@0 205 l = new @TB HashMap<String, @TA Top. @TB Outer. @TC IInner>(); // err
aoqi@0 206 }
aoqi@0 207 }

mercurial