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

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

author
jjg
date
Tue, 15 Oct 2013 15:57:13 -0700
changeset 2134
b0c086cd4520
child 2167
d2fa3f7e964e
permissions
-rw-r--r--

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

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

mercurial