FieldTest.java revision 2942:08092deced3f
1156952Sume/*
2156952Sume * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
3156952Sume * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4156952Sume *
5156952Sume * This code is free software; you can redistribute it and/or modify it
6156952Sume * under the terms of the GNU General Public License version 2 only, as
7156952Sume * published by the Free Software Foundation.
8156952Sume *
9156952Sume * This code is distributed in the hope that it will be useful, but WITHOUT
10156952Sume * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11156952Sume * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12156952Sume * version 2 for more details (a copy is included in the LICENSE file that
13156952Sume * accompanied this code).
14156952Sume *
15156952Sume * You should have received a copy of the GNU General Public License version
16156952Sume * 2 along with this work; if not, write to the Free Software Foundation,
17156952Sume * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18156952Sume *
19156952Sume * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20156952Sume * or visit www.oracle.com if you need additional information or have any
21156952Sume * questions.
22156952Sume */
23270838Sume
24156952Sume/*
25156956Sume * @test
26156956Sume * @bug 8049238
27156952Sume * @summary Checks Signature attribute for fields.
28156952Sume * @library /tools/lib /tools/javac/lib ../lib
29156956Sume * @modules jdk.jdeps/com.sun.tools.classfile
30156952Sume *          jdk.compiler/com.sun.tools.javac.api
31156956Sume *          jdk.compiler/com.sun.tools.javac.file
32156952Sume *          jdk.compiler/com.sun.tools.javac.main
33156952Sume * @build TestBase TestResult InMemoryFileManager ToolBox
34156952Sume * @build FieldTest Driver ExpectedSignature ExpectedSignatureContainer
35156952Sume * @run main Driver FieldTest
36156952Sume */
37156952Sume
38156952Sumeimport java.util.Comparator;
39156956Sumeimport java.util.List;
40156952Sumeimport java.util.Map;
41156956Sume
42156952Sume@ExpectedSignature(descriptor = "FieldTest", signature = "<T:Ljava/lang/Object;>Ljava/lang/Object;")
43156952Sumepublic class FieldTest<T> {
44156952Sume
45156952Sume    @ExpectedSignature(descriptor = "typeInList", signature = "Ljava/util/List<TT;>;")
46156956Sume    List<T> typeInList;
47156952Sume
48156952Sume    @ExpectedSignature(descriptor = "boundsType", signature = "Ljava/util/List<Ljava/util/Map<+TT;-TT;>;>;")
49156952Sume    List<Map<? extends T, ? super T>> boundsType;
50156952Sume
51156952Sume    @ExpectedSignature(descriptor = "type", signature = "TT;")
52156956Sume    T type;
53156952Sume
54156952Sume    @ExpectedSignature(descriptor = "typeInArray", signature = "[TT;")
55156952Sume    T[] typeInArray;
56156952Sume
57156952Sume    @ExpectedSignature(descriptor = "byteArrayInList", signature = "Ljava/util/List<[B>;")
58156952Sume    List<byte[]> byteArrayInList;
59156952Sume
60156952Sume    @ExpectedSignature(descriptor = "shortArrayInList", signature = "Ljava/util/List<[S>;")
61156952Sume    List<short[]> shortArrayInList;
62156952Sume
63156952Sume    @ExpectedSignature(descriptor = "intArrayInList", signature = "Ljava/util/List<[I>;")
64156956Sume    List<int[]> intArrayInList;
65156952Sume
66156952Sume    @ExpectedSignature(descriptor = "longArrayInList", signature = "Ljava/util/List<[J>;")
67156952Sume    List<long[]> longArrayInList;
68156952Sume
69156952Sume    @ExpectedSignature(descriptor = "charArrayInList", signature = "Ljava/util/List<[C>;")
70156952Sume    List<char[]> charArrayInList;
71156952Sume
72156952Sume    @ExpectedSignature(descriptor = "booleanArrayInList", signature = "Ljava/util/List<[Z>;")
73156952Sume    List<boolean[]> booleanArrayInList;
74156952Sume
75156952Sume    @ExpectedSignature(descriptor = "floatArrayInList", signature = "Ljava/util/List<[F>;")
76156952Sume    List<float[]> floatArrayInList;
77156952Sume
78156952Sume    @ExpectedSignature(descriptor = "doubleArrayInList", signature = "Ljava/util/List<[D>;")
79156952Sume    List<double[]> doubleArrayInList;
80156952Sume
81156952Sume    @ExpectedSignature(descriptor = "integerInList", signature = "Ljava/util/List<Ljava/lang/Integer;>;")
82156952Sume    List<Integer> integerInList;
83156952Sume
84156952Sume    @ExpectedSignature(descriptor = "typeInMultiArray", signature = "[[TT;")
85156952Sume    T[][] typeInMultiArray;
86156952Sume
87156952Sume    @ExpectedSignature(descriptor = "arrayOfClasses", signature = "[Ljava/util/List<TT;>;")
88156952Sume    List<T>[] arrayOfClasses;
89156952Sume
90156952Sume    @ExpectedSignature(descriptor = "extendsWildCard", signature = "Ljava/util/List<+TT;>;")
91156952Sume    List<? extends T> extendsWildCard;
92156952Sume
93156952Sume    @ExpectedSignature(descriptor = "superWildCard", signature = "Ljava/util/Comparator<-TT;>;")
94156952Sume    Comparator<? super T> superWildCard;
95156952Sume
96156952Sume    @ExpectedSignature(descriptor = "extendsSuperWildCard",
97156952Sume            signature = "Ljava/util/List<+Ljava/util/Comparator<-TT;>;>;")
98156952Sume    List<? extends Comparator<? super T>> extendsSuperWildCard;
99156952Sume
100156952Sume    @ExpectedSignature(descriptor = "wildCard", signature = "Ljava/util/Comparator<*>;")
101156952Sume    Comparator<?> wildCard;
102156952Sume
103156952Sume    @ExpectedSignature(descriptor = "boundsBooleanArray", signature = "Ljava/util/Map<+[Z-[Z>;")
104156952Sume    Map<? extends boolean[], ? super boolean[]> boundsBooleanArray;
105156952Sume
106156952Sume    @ExpectedSignature(descriptor = "boundsByteArray", signature = "Ljava/util/Map<+[B-[B>;")
107156952Sume    Map<? extends byte[], ? super byte[]> boundsByteArray;
108156952Sume
109156952Sume    @ExpectedSignature(descriptor = "boundsShortArray", signature = "Ljava/util/Map<+[S-[S>;")
110156952Sume    Map<? extends short[], ? super short[]> boundsShortArray;
111156952Sume
112156952Sume    @ExpectedSignature(descriptor = "boundsIntArray", signature = "Ljava/util/Map<+[I-[I>;")
113156952Sume    Map<? extends int[], ? super int[]> boundsIntArray;
114156952Sume
115156952Sume    @ExpectedSignature(descriptor = "boundsLongArray", signature = "Ljava/util/Map<+[J-[J>;")
116156952Sume    Map<? extends long[], ? super long[]> boundsLongArray;
117156952Sume
118156952Sume    @ExpectedSignature(descriptor = "boundsCharArray", signature = "Ljava/util/Map<+[C-[C>;")
119156952Sume    Map<? extends char[], ? super char[]> boundsCharArray;
120156952Sume
121156952Sume    @ExpectedSignature(descriptor = "boundsFloatArray", signature = "Ljava/util/Map<+[F-[F>;")
122156952Sume    Map<? extends float[], ? super float[]> boundsFloatArray;
123156952Sume
124156952Sume    @ExpectedSignature(descriptor = "boundsDoubleArray", signature = "Ljava/util/Map<+[D-[D>;")
125156952Sume    Map<? extends double[], ? super double[]> boundsDoubleArray;
126156952Sume
127156952Sume    @ExpectedSignature(descriptor = "boundsObjectArray",
128156952Sume            signature = "Ljava/util/Map<+[Ljava/lang/Object;-[Ljava/lang/Object;>;")
129156952Sume    Map<? extends Object[], ? super Object[]> boundsObjectArray;
130156952Sume
131156952Sume    boolean booleanNoSignatureAttribute;
132156952Sume    byte byteNoSignatureAttribute;
133156952Sume    char charNoSignatureAttribute;
134156952Sume    short shortNoSignatureAttribute;
135156952Sume    int intNoSignatureAttribute;
136156952Sume    long longNoSignatureAttribute;
137156952Sume    float floatNoSignatureAttribute;
138156952Sume    double doubleNoSignatureAttribute;
139156952Sume
140156952Sume    List listNoSignatureAttribute;
141156952Sume
142156952Sume    @ExpectedSignature(descriptor = "staticByteArrayInList", signature = "Ljava/util/List<[B>;")
143156952Sume    static List<byte[]> staticByteArrayInList;
144156952Sume
145156952Sume    @ExpectedSignature(descriptor = "staticShortArrayInList", signature = "Ljava/util/List<[S>;")
146156952Sume    static List<short[]> staticShortArrayInList;
147156952Sume
148156952Sume    @ExpectedSignature(descriptor = "staticIntArrayInList", signature = "Ljava/util/List<[I>;")
149156952Sume    static List<int[]> staticIntArrayInList;
150156952Sume
151156952Sume    @ExpectedSignature(descriptor = "staticLongArrayInList", signature = "Ljava/util/List<[J>;")
152156952Sume    static List<long[]> staticLongArrayInList;
153156952Sume
154156952Sume    @ExpectedSignature(descriptor = "staticCharArrayInList", signature = "Ljava/util/List<[C>;")
155156952Sume    static List<char[]> staticCharArrayInList;
156156952Sume
157156952Sume    @ExpectedSignature(descriptor = "staticBooleanArrayInList", signature = "Ljava/util/List<[Z>;")
158156952Sume    static List<boolean[]> staticBooleanArrayInList;
159156952Sume
160156952Sume    @ExpectedSignature(descriptor = "staticFloatArrayInList", signature = "Ljava/util/List<[F>;")
161156952Sume    static List<float[]> staticFloatArrayInList;
162156952Sume
163156952Sume    @ExpectedSignature(descriptor = "staticDoubleArrayInList", signature = "Ljava/util/List<[D>;")
164156952Sume    static List<double[]> staticDoubleArrayInList;
165156952Sume
166156952Sume    @ExpectedSignature(descriptor = "staticIntegerInList", signature = "Ljava/util/List<Ljava/lang/Integer;>;")
167156952Sume    static List<Integer> staticIntegerInList;
168156952Sume
169156952Sume    @ExpectedSignature(descriptor = "staticWildCard", signature = "Ljava/util/Comparator<*>;")
170156952Sume    static Comparator<?> staticWildCard;
171156952Sume
172156952Sume    @ExpectedSignature(descriptor = "staticBoundsBooleanArray", signature = "Ljava/util/Map<+[Z-[Z>;")
173156952Sume    static Map<? extends boolean[], ? super boolean[]> staticBoundsBooleanArray;
174156952Sume
175156952Sume    @ExpectedSignature(descriptor = "staticBoundsByteArray", signature = "Ljava/util/Map<+[B-[B>;")
176156952Sume    static Map<? extends byte[], ? super byte[]> staticBoundsByteArray;
177156952Sume
178156952Sume    @ExpectedSignature(descriptor = "staticBoundsShortArray", signature = "Ljava/util/Map<+[S-[S>;")
179156952Sume    static Map<? extends short[], ? super short[]> staticBoundsShortArray;
180156952Sume
181156952Sume    @ExpectedSignature(descriptor = "staticBoundsIntArray", signature = "Ljava/util/Map<+[I-[I>;")
182156952Sume    static Map<? extends int[], ? super int[]> staticBoundsIntArray;
183156952Sume
184156952Sume    @ExpectedSignature(descriptor = "staticBoundsLongArray", signature = "Ljava/util/Map<+[J-[J>;")
185156952Sume    static Map<? extends long[], ? super long[]> staticBoundsLongArray;
186156952Sume
187156952Sume    @ExpectedSignature(descriptor = "staticBoundsCharArray", signature = "Ljava/util/Map<+[C-[C>;")
188156952Sume    static Map<? extends char[], ? super char[]> staticBoundsCharArray;
189156952Sume
190156952Sume    @ExpectedSignature(descriptor = "staticBoundsFloatArray", signature = "Ljava/util/Map<+[F-[F>;")
191156952Sume    static Map<? extends float[], ? super float[]> staticBoundsFloatArray;
192156952Sume
193156952Sume    @ExpectedSignature(descriptor = "staticBoundsDoubleArray", signature = "Ljava/util/Map<+[D-[D>;")
194156952Sume    static Map<? extends double[], ? super double[]> staticBoundsDoubleArray;
195156952Sume
196156952Sume    @ExpectedSignature(descriptor = "staticBoundsObjectArray",
197156952Sume            signature = "Ljava/util/Map<+[Ljava/lang/Object;-[Ljava/lang/Object;>;")
198156952Sume    static Map<? extends Object[], ? super Object[]> staticBoundsObjectArray;
199156952Sume
200156952Sume    static boolean staticBooleanNoSignatureAttribute;
201156952Sume    static byte staticByteNoSignatureAttribute;
202156952Sume    static char staticCharNoSignatureAttribute;
203156952Sume    static short staticShortNoSignatureAttribute;
204156952Sume    static int staticIntNoSignatureAttribute;
205156952Sume    static long staticLongNoSignatureAttribute;
206156952Sume    static float staticFloatNoSignatureAttribute;
207156952Sume    static double staticDoubleNoSignatureAttribute;
208156952Sume
209156952Sume    static List staticListNoSignatureAttribute;
210156952Sume}
211156952Sume