/* * Copyright (c) 2015, 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.jdeps/com.sun.tools.classfile * jdk.compiler/com.sun.tools.javac.api * jdk.compiler/com.sun.tools.javac.file * jdk.compiler/com.sun.tools.javac.main * @build TestBase TestResult InMemoryFileManager ToolBox * @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 = "Ljava/lang/Object;") public class FieldTest { @ExpectedSignature(descriptor = "typeInList", signature = "Ljava/util/List;") List typeInList; @ExpectedSignature(descriptor = "boundsType", signature = "Ljava/util/List;>;") List> boundsType; @ExpectedSignature(descriptor = "type", signature = "TT;") T type; @ExpectedSignature(descriptor = "typeInArray", signature = "[TT;") T[] typeInArray; @ExpectedSignature(descriptor = "byteArrayInList", signature = "Ljava/util/List<[B>;") List byteArrayInList; @ExpectedSignature(descriptor = "shortArrayInList", signature = "Ljava/util/List<[S>;") List shortArrayInList; @ExpectedSignature(descriptor = "intArrayInList", signature = "Ljava/util/List<[I>;") List intArrayInList; @ExpectedSignature(descriptor = "longArrayInList", signature = "Ljava/util/List<[J>;") List longArrayInList; @ExpectedSignature(descriptor = "charArrayInList", signature = "Ljava/util/List<[C>;") List charArrayInList; @ExpectedSignature(descriptor = "booleanArrayInList", signature = "Ljava/util/List<[Z>;") List booleanArrayInList; @ExpectedSignature(descriptor = "floatArrayInList", signature = "Ljava/util/List<[F>;") List floatArrayInList; @ExpectedSignature(descriptor = "doubleArrayInList", signature = "Ljava/util/List<[D>;") List doubleArrayInList; @ExpectedSignature(descriptor = "integerInList", signature = "Ljava/util/List;") List integerInList; @ExpectedSignature(descriptor = "typeInMultiArray", signature = "[[TT;") T[][] typeInMultiArray; @ExpectedSignature(descriptor = "arrayOfClasses", signature = "[Ljava/util/List;") List[] arrayOfClasses; @ExpectedSignature(descriptor = "extendsWildCard", signature = "Ljava/util/List<+TT;>;") List extendsWildCard; @ExpectedSignature(descriptor = "superWildCard", signature = "Ljava/util/Comparator<-TT;>;") Comparator superWildCard; @ExpectedSignature(descriptor = "extendsSuperWildCard", signature = "Ljava/util/List<+Ljava/util/Comparator<-TT;>;>;") List> extendsSuperWildCard; @ExpectedSignature(descriptor = "wildCard", signature = "Ljava/util/Comparator<*>;") Comparator wildCard; @ExpectedSignature(descriptor = "boundsBooleanArray", signature = "Ljava/util/Map<+[Z-[Z>;") Map boundsBooleanArray; @ExpectedSignature(descriptor = "boundsByteArray", signature = "Ljava/util/Map<+[B-[B>;") Map boundsByteArray; @ExpectedSignature(descriptor = "boundsShortArray", signature = "Ljava/util/Map<+[S-[S>;") Map boundsShortArray; @ExpectedSignature(descriptor = "boundsIntArray", signature = "Ljava/util/Map<+[I-[I>;") Map boundsIntArray; @ExpectedSignature(descriptor = "boundsLongArray", signature = "Ljava/util/Map<+[J-[J>;") Map boundsLongArray; @ExpectedSignature(descriptor = "boundsCharArray", signature = "Ljava/util/Map<+[C-[C>;") Map boundsCharArray; @ExpectedSignature(descriptor = "boundsFloatArray", signature = "Ljava/util/Map<+[F-[F>;") Map boundsFloatArray; @ExpectedSignature(descriptor = "boundsDoubleArray", signature = "Ljava/util/Map<+[D-[D>;") Map boundsDoubleArray; @ExpectedSignature(descriptor = "boundsObjectArray", signature = "Ljava/util/Map<+[Ljava/lang/Object;-[Ljava/lang/Object;>;") Map 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 staticByteArrayInList; @ExpectedSignature(descriptor = "staticShortArrayInList", signature = "Ljava/util/List<[S>;") static List staticShortArrayInList; @ExpectedSignature(descriptor = "staticIntArrayInList", signature = "Ljava/util/List<[I>;") static List staticIntArrayInList; @ExpectedSignature(descriptor = "staticLongArrayInList", signature = "Ljava/util/List<[J>;") static List staticLongArrayInList; @ExpectedSignature(descriptor = "staticCharArrayInList", signature = "Ljava/util/List<[C>;") static List staticCharArrayInList; @ExpectedSignature(descriptor = "staticBooleanArrayInList", signature = "Ljava/util/List<[Z>;") static List staticBooleanArrayInList; @ExpectedSignature(descriptor = "staticFloatArrayInList", signature = "Ljava/util/List<[F>;") static List staticFloatArrayInList; @ExpectedSignature(descriptor = "staticDoubleArrayInList", signature = "Ljava/util/List<[D>;") static List staticDoubleArrayInList; @ExpectedSignature(descriptor = "staticIntegerInList", signature = "Ljava/util/List;") static List staticIntegerInList; @ExpectedSignature(descriptor = "staticWildCard", signature = "Ljava/util/Comparator<*>;") static Comparator staticWildCard; @ExpectedSignature(descriptor = "staticBoundsBooleanArray", signature = "Ljava/util/Map<+[Z-[Z>;") static Map staticBoundsBooleanArray; @ExpectedSignature(descriptor = "staticBoundsByteArray", signature = "Ljava/util/Map<+[B-[B>;") static Map staticBoundsByteArray; @ExpectedSignature(descriptor = "staticBoundsShortArray", signature = "Ljava/util/Map<+[S-[S>;") static Map staticBoundsShortArray; @ExpectedSignature(descriptor = "staticBoundsIntArray", signature = "Ljava/util/Map<+[I-[I>;") static Map staticBoundsIntArray; @ExpectedSignature(descriptor = "staticBoundsLongArray", signature = "Ljava/util/Map<+[J-[J>;") static Map staticBoundsLongArray; @ExpectedSignature(descriptor = "staticBoundsCharArray", signature = "Ljava/util/Map<+[C-[C>;") static Map staticBoundsCharArray; @ExpectedSignature(descriptor = "staticBoundsFloatArray", signature = "Ljava/util/Map<+[F-[F>;") static Map staticBoundsFloatArray; @ExpectedSignature(descriptor = "staticBoundsDoubleArray", signature = "Ljava/util/Map<+[D-[D>;") static Map staticBoundsDoubleArray; @ExpectedSignature(descriptor = "staticBoundsObjectArray", signature = "Ljava/util/Map<+[Ljava/lang/Object;-[Ljava/lang/Object;>;") static Map 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; }