blob: 4eb555382c1ba9eb279376e96615980f33d38d86 [file] [log] [blame]
/*
* Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
* @test
* @bug 8049238
* @summary Checks Signature attribute for fields.
* @library /tools/lib /tools/javac/lib ../lib
* @modules jdk.compiler/com.sun.tools.javac.api
* jdk.compiler/com.sun.tools.javac.main
* jdk.jdeps/com.sun.tools.classfile
* @build toolbox.ToolBox InMemoryFileManager TestResult TestBase
* @build FieldTest Driver ExpectedSignature ExpectedSignatureContainer
* @run main Driver FieldTest
*/
import java.util.Comparator;
import java.util.List;
import java.util.Map;
@ExpectedSignature(descriptor = "FieldTest", signature = "<T:Ljava/lang/Object;>Ljava/lang/Object;")
public class FieldTest<T> {
@ExpectedSignature(descriptor = "typeInList", signature = "Ljava/util/List<TT;>;")
List<T> typeInList;
@ExpectedSignature(descriptor = "boundsType", signature = "Ljava/util/List<Ljava/util/Map<+TT;-TT;>;>;")
List<Map<? extends T, ? super T>> boundsType;
@ExpectedSignature(descriptor = "type", signature = "TT;")
T type;
@ExpectedSignature(descriptor = "typeInArray", signature = "[TT;")
T[] typeInArray;
@ExpectedSignature(descriptor = "byteArrayInList", signature = "Ljava/util/List<[B>;")
List<byte[]> byteArrayInList;
@ExpectedSignature(descriptor = "shortArrayInList", signature = "Ljava/util/List<[S>;")
List<short[]> shortArrayInList;
@ExpectedSignature(descriptor = "intArrayInList", signature = "Ljava/util/List<[I>;")
List<int[]> intArrayInList;
@ExpectedSignature(descriptor = "longArrayInList", signature = "Ljava/util/List<[J>;")
List<long[]> longArrayInList;
@ExpectedSignature(descriptor = "charArrayInList", signature = "Ljava/util/List<[C>;")
List<char[]> charArrayInList;
@ExpectedSignature(descriptor = "booleanArrayInList", signature = "Ljava/util/List<[Z>;")
List<boolean[]> booleanArrayInList;
@ExpectedSignature(descriptor = "floatArrayInList", signature = "Ljava/util/List<[F>;")
List<float[]> floatArrayInList;
@ExpectedSignature(descriptor = "doubleArrayInList", signature = "Ljava/util/List<[D>;")
List<double[]> doubleArrayInList;
@ExpectedSignature(descriptor = "integerInList", signature = "Ljava/util/List<Ljava/lang/Integer;>;")
List<Integer> integerInList;
@ExpectedSignature(descriptor = "typeInMultiArray", signature = "[[TT;")
T[][] typeInMultiArray;
@ExpectedSignature(descriptor = "arrayOfClasses", signature = "[Ljava/util/List<TT;>;")
List<T>[] arrayOfClasses;
@ExpectedSignature(descriptor = "extendsWildCard", signature = "Ljava/util/List<+TT;>;")
List<? extends T> extendsWildCard;
@ExpectedSignature(descriptor = "superWildCard", signature = "Ljava/util/Comparator<-TT;>;")
Comparator<? super T> superWildCard;
@ExpectedSignature(descriptor = "extendsSuperWildCard",
signature = "Ljava/util/List<+Ljava/util/Comparator<-TT;>;>;")
List<? extends Comparator<? super T>> extendsSuperWildCard;
@ExpectedSignature(descriptor = "wildCard", signature = "Ljava/util/Comparator<*>;")
Comparator<?> wildCard;
@ExpectedSignature(descriptor = "boundsBooleanArray", signature = "Ljava/util/Map<+[Z-[Z>;")
Map<? extends boolean[], ? super boolean[]> boundsBooleanArray;
@ExpectedSignature(descriptor = "boundsByteArray", signature = "Ljava/util/Map<+[B-[B>;")
Map<? extends byte[], ? super byte[]> boundsByteArray;
@ExpectedSignature(descriptor = "boundsShortArray", signature = "Ljava/util/Map<+[S-[S>;")
Map<? extends short[], ? super short[]> boundsShortArray;
@ExpectedSignature(descriptor = "boundsIntArray", signature = "Ljava/util/Map<+[I-[I>;")
Map<? extends int[], ? super int[]> boundsIntArray;
@ExpectedSignature(descriptor = "boundsLongArray", signature = "Ljava/util/Map<+[J-[J>;")
Map<? extends long[], ? super long[]> boundsLongArray;
@ExpectedSignature(descriptor = "boundsCharArray", signature = "Ljava/util/Map<+[C-[C>;")
Map<? extends char[], ? super char[]> boundsCharArray;
@ExpectedSignature(descriptor = "boundsFloatArray", signature = "Ljava/util/Map<+[F-[F>;")
Map<? extends float[], ? super float[]> boundsFloatArray;
@ExpectedSignature(descriptor = "boundsDoubleArray", signature = "Ljava/util/Map<+[D-[D>;")
Map<? extends double[], ? super double[]> boundsDoubleArray;
@ExpectedSignature(descriptor = "boundsObjectArray",
signature = "Ljava/util/Map<+[Ljava/lang/Object;-[Ljava/lang/Object;>;")
Map<? extends Object[], ? super Object[]> boundsObjectArray;
boolean booleanNoSignatureAttribute;
byte byteNoSignatureAttribute;
char charNoSignatureAttribute;
short shortNoSignatureAttribute;
int intNoSignatureAttribute;
long longNoSignatureAttribute;
float floatNoSignatureAttribute;
double doubleNoSignatureAttribute;
List listNoSignatureAttribute;
@ExpectedSignature(descriptor = "staticByteArrayInList", signature = "Ljava/util/List<[B>;")
static List<byte[]> staticByteArrayInList;
@ExpectedSignature(descriptor = "staticShortArrayInList", signature = "Ljava/util/List<[S>;")
static List<short[]> staticShortArrayInList;
@ExpectedSignature(descriptor = "staticIntArrayInList", signature = "Ljava/util/List<[I>;")
static List<int[]> staticIntArrayInList;
@ExpectedSignature(descriptor = "staticLongArrayInList", signature = "Ljava/util/List<[J>;")
static List<long[]> staticLongArrayInList;
@ExpectedSignature(descriptor = "staticCharArrayInList", signature = "Ljava/util/List<[C>;")
static List<char[]> staticCharArrayInList;
@ExpectedSignature(descriptor = "staticBooleanArrayInList", signature = "Ljava/util/List<[Z>;")
static List<boolean[]> staticBooleanArrayInList;
@ExpectedSignature(descriptor = "staticFloatArrayInList", signature = "Ljava/util/List<[F>;")
static List<float[]> staticFloatArrayInList;
@ExpectedSignature(descriptor = "staticDoubleArrayInList", signature = "Ljava/util/List<[D>;")
static List<double[]> staticDoubleArrayInList;
@ExpectedSignature(descriptor = "staticIntegerInList", signature = "Ljava/util/List<Ljava/lang/Integer;>;")
static List<Integer> staticIntegerInList;
@ExpectedSignature(descriptor = "staticWildCard", signature = "Ljava/util/Comparator<*>;")
static Comparator<?> staticWildCard;
@ExpectedSignature(descriptor = "staticBoundsBooleanArray", signature = "Ljava/util/Map<+[Z-[Z>;")
static Map<? extends boolean[], ? super boolean[]> staticBoundsBooleanArray;
@ExpectedSignature(descriptor = "staticBoundsByteArray", signature = "Ljava/util/Map<+[B-[B>;")
static Map<? extends byte[], ? super byte[]> staticBoundsByteArray;
@ExpectedSignature(descriptor = "staticBoundsShortArray", signature = "Ljava/util/Map<+[S-[S>;")
static Map<? extends short[], ? super short[]> staticBoundsShortArray;
@ExpectedSignature(descriptor = "staticBoundsIntArray", signature = "Ljava/util/Map<+[I-[I>;")
static Map<? extends int[], ? super int[]> staticBoundsIntArray;
@ExpectedSignature(descriptor = "staticBoundsLongArray", signature = "Ljava/util/Map<+[J-[J>;")
static Map<? extends long[], ? super long[]> staticBoundsLongArray;
@ExpectedSignature(descriptor = "staticBoundsCharArray", signature = "Ljava/util/Map<+[C-[C>;")
static Map<? extends char[], ? super char[]> staticBoundsCharArray;
@ExpectedSignature(descriptor = "staticBoundsFloatArray", signature = "Ljava/util/Map<+[F-[F>;")
static Map<? extends float[], ? super float[]> staticBoundsFloatArray;
@ExpectedSignature(descriptor = "staticBoundsDoubleArray", signature = "Ljava/util/Map<+[D-[D>;")
static Map<? extends double[], ? super double[]> staticBoundsDoubleArray;
@ExpectedSignature(descriptor = "staticBoundsObjectArray",
signature = "Ljava/util/Map<+[Ljava/lang/Object;-[Ljava/lang/Object;>;")
static Map<? extends Object[], ? super Object[]> staticBoundsObjectArray;
static boolean staticBooleanNoSignatureAttribute;
static byte staticByteNoSignatureAttribute;
static char staticCharNoSignatureAttribute;
static short staticShortNoSignatureAttribute;
static int staticIntNoSignatureAttribute;
static long staticLongNoSignatureAttribute;
static float staticFloatNoSignatureAttribute;
static double staticDoubleNoSignatureAttribute;
static List staticListNoSignatureAttribute;
}