langtools/test/tools/javac/classfiles/attributes/Signature/InnerClassTest.java
author jjg
Thu, 31 Mar 2016 15:20:50 -0700
changeset 36778 e04318f39f92
parent 36526 3b41f1c69604
permissions -rw-r--r--
8152897: refactor ToolBox to allow reduced documented dependencies Reviewed-by: vromero
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
29637
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
     1
/*
36778
e04318f39f92 8152897: refactor ToolBox to allow reduced documented dependencies
jjg
parents: 36526
diff changeset
     2
 * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
29637
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
     4
 *
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
     7
 * published by the Free Software Foundation.
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
     8
 *
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    13
 * accompanied this code).
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    14
 *
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    18
 *
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    21
 * questions.
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    22
 */
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    23
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    24
/*
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    25
 * @test
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    26
 * @bug 8049238
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    27
 * @summary Checks Signature attribute for inner classes.
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    28
 * @library /tools/lib /tools/javac/lib ../lib
35359
f04501964016 8148147: Sync up @modules from jigsaw/jake
alanb
parents: 30846
diff changeset
    29
 * @modules jdk.compiler/com.sun.tools.javac.api
30730
d3ce7619db2c 8076543: Add @modules as needed to the langtools tests
akulyakh
parents: 29637
diff changeset
    30
 *          jdk.compiler/com.sun.tools.javac.main
35359
f04501964016 8148147: Sync up @modules from jigsaw/jake
alanb
parents: 30846
diff changeset
    31
 *          jdk.jdeps/com.sun.tools.classfile
36778
e04318f39f92 8152897: refactor ToolBox to allow reduced documented dependencies
jjg
parents: 36526
diff changeset
    32
 * @build toolbox.ToolBox InMemoryFileManager TestResult TestBase
29637
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    33
 * @build InnerClassTest Driver ExpectedSignature ExpectedSignatureContainer
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    34
 * @run main Driver InnerClassTest
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    35
 */
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    36
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    37
import java.util.ArrayList;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    38
import java.util.List;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    39
import java.util.Map;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    40
import java.util.Set;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    41
import java.util.concurrent.Callable;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    42
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    43
@ExpectedSignature(descriptor = "InnerClassTest",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    44
        signature = "<T:Ljava/util/ArrayList<TT;>;:Ljava/lang/Runnable;>Ljava/lang/Object;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    45
@ExpectedSignature(descriptor = "InnerClassTest$1",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    46
        signature = "LInnerClassTest$1Local1;", isAnonymous = true)
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    47
@ExpectedSignature(descriptor = "InnerClassTest$2",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    48
        signature = "LInnerClassTest$1Local2<Ljava/util/ArrayList<TT;>;" +
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    49
                "Ljava/util/Map<Ljava/util/ArrayList<TT;>;Ljava/util/ArrayList<TT;>;>;>;", isAnonymous = true)
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    50
public class InnerClassTest<T extends ArrayList<T> & Runnable> {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    51
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    52
    {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    53
        class Local1 {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    54
            // no Signature attribute
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    55
            Local1() {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    56
            }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    57
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    58
            @ExpectedSignature(descriptor = "genericType", signature = "TT;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    59
            T genericType;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    60
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    61
            @ExpectedSignature(descriptor = "genericTypeArray", signature = "[TT;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    62
            T[] genericTypeArray;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    63
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    64
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    65
        @ExpectedSignature(descriptor = "InnerClassTest$1Local2",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    66
                signature = "<T:Ljava/lang/Object;U::Ljava/util/Map<+TT;-TT;>;>Ljava/lang/Object;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    67
        class Local2<T, U extends Map<? extends T, ? super T>> {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    68
            // no Signature attribute
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    69
            Local2() {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    70
            }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    71
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    72
            @ExpectedSignature(descriptor = "<init>(InnerClassTest, java.lang.Object, java.util.Map)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    73
                    signature = "(TT;TU;)V")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    74
            Local2(T a, U b) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    75
            }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    76
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    77
            @ExpectedSignature(descriptor = "genericMethod(java.lang.Object[])",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    78
                    signature = "([TT;)[TU;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    79
            U[] genericMethod(T...a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    80
                return null;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    81
            }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    82
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    83
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    84
        @ExpectedSignature(descriptor = "InnerClassTest$1Local3",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    85
                signature = "LInnerClassTest$1Local2<Ljava/util/ArrayList<TT;>;" +
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    86
                        "Ljava/util/Map<Ljava/util/ArrayList<TT;>;Ljava/util/ArrayList<TT;>;>;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    87
        class Local3 extends Local2<ArrayList<T>, Map<ArrayList<T>, ArrayList<T>>> {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    88
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    89
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    90
        new Local1() {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    91
            @ExpectedSignature(descriptor = "genericType", signature = "TT;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    92
            T genericType;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    93
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    94
            @ExpectedSignature(descriptor = "genericTypeArray", signature = "[TT;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    95
            T[] genericTypeArray;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    96
        };
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    97
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    98
        new Local2<ArrayList<T>, Map<ArrayList<T>, ArrayList<T>>>() {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    99
        };
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   100
    }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   101
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   102
    @ExpectedSignature(descriptor = "InnerClassTest$InnerClass1",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   103
            signature = "<E:TT;U::Ljava/util/Set<-TE;>;>Ljava/lang/Object;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   104
    class InnerClass1<E extends T, U extends Set<? super E>> {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   105
        @ExpectedSignature(descriptor = "genericTypeArray", signature = "[TT;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   106
        T[] genericTypeArray;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   107
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   108
        @ExpectedSignature(descriptor = "genericListExtendsBound", signature = "Ljava/util/List<+TT;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   109
        List<? extends T> genericListExtendsBound;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   110
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   111
        @ExpectedSignature(descriptor = "genericListSuperBound", signature = "Ljava/util/List<-TU;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   112
        List<? super U> genericListSuperBound;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   113
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   114
        @ExpectedSignature(descriptor = "genericListWildCard", signature = "Ljava/util/List<*>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   115
        List<?> genericListWildCard;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   116
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   117
        @ExpectedSignature(descriptor = "genericListExactType", signature = "Ljava/util/List<Ljava/lang/Integer;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   118
        List<Integer> genericListExactType;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   119
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   120
        @ExpectedSignature(descriptor = "listWithGenericType", signature = "Ljava/util/List<TE;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   121
        List<E> listWithGenericType;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   122
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   123
        List listNoSignatureAttribute;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   124
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   125
        // no Signature attribute
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   126
        InnerClass1(List a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   127
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   128
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   129
        @ExpectedSignature(descriptor = "<init>(InnerClassTest, java.util.ArrayList)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   130
                signature = "(TT;)V")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   131
        InnerClass1(T a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   132
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   133
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   134
        @ExpectedSignature(descriptor = "<init>(InnerClassTest, java.util.ArrayList, java.util.ArrayList)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   135
                signature = "(TT;TE;)V")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   136
        InnerClass1(T a, E b) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   137
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   138
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   139
        @ExpectedSignature(descriptor = "genericMethod(java.util.ArrayList)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   140
                signature = "(TT;)TE;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   141
        E genericMethod(T a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   142
            return null;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   143
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   144
    }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   145
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   146
    @ExpectedSignature(descriptor = "InnerClassTest$InnerInterface",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   147
            signature = "<T:Ljava/lang/Object;>Ljava/lang/Object;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   148
    interface InnerInterface<T> {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   149
        @ExpectedSignature(descriptor = "genericMethod(java.lang.Object)", signature = "(TT;)TT;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   150
        T genericMethod(T a);
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   151
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   152
        @ExpectedSignature(descriptor = "genericListExtendsBound", signature = "Ljava/util/List<+Ljava/lang/Number;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   153
        List<? extends Number> genericListExtendsBound = null;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   154
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   155
        @ExpectedSignature(descriptor = "genericListSuperBound", signature = "Ljava/util/List<-Ljava/lang/Number;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   156
        List<? super Number> genericListSuperBound = null;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   157
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   158
        @ExpectedSignature(descriptor = "genericListWildCard", signature = "Ljava/util/List<*>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   159
        List<?> genericListWildCard = null;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   160
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   161
        @ExpectedSignature(descriptor = "genericListExactType", signature = "Ljava/util/List<Ljava/lang/Integer;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   162
        List<Integer> genericListExactType = null;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   163
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   164
        List listNoSignatureAttribute = null;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   165
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   166
        @ExpectedSignature(descriptor = "genericBoundsMethod1(java.util.List)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   167
                signature = "(Ljava/util/List<-TT;>;)Ljava/util/List<+TT;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   168
        List<? extends T> genericBoundsMethod1(List<? super T> a);
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   169
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   170
        @ExpectedSignature(descriptor = "genericBoundsMethod2(java.util.List)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   171
                signature = "(Ljava/util/List<+TT;>;)Ljava/util/List<-TT;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   172
        List<? super T> genericBoundsMethod2(List<? extends T> a);
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   173
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   174
        @ExpectedSignature(descriptor = "genericWildCardMethod(java.util.Map)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   175
                signature = "(Ljava/util/Map<**>;)Ljava/util/Map<**>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   176
        Map<?, ?> genericWildCardMethod(Map<?, ?> a);
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   177
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   178
        @ExpectedSignature(descriptor = "defaultGenericMethod(java.util.List, java.util.List, java.util.Map)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   179
                signature = "(Ljava/util/List<+TT;>;Ljava/util/List<-TT;>;Ljava/util/Map<**>;)Ljava/util/List<*>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   180
        default List<?> defaultGenericMethod(List<? extends T> list1, List<? super T> list2, Map<?, ?> map) { return null; }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   181
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   182
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   183
        default List defaultNoSignatureAttributeMethod(List list1, List list2, Map list3) { return null; }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   184
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   185
        @ExpectedSignature(descriptor = "staticGenericMethod(java.util.List, java.util.List, java.util.Map)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   186
                signature = "<T::Ljava/lang/Runnable;>(Ljava/util/List<+TT;>;Ljava/util/List<-TT;>;Ljava/util/Map<**>;)Ljava/util/List<*>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   187
        static <T extends Runnable> List<?> staticGenericMethod(List<? extends T> list1, List<? super T> list2, Map<?, ?> map) { return null; }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   188
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   189
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   190
        static List staticNoSignatureAttributeMethod(List list1, List list2, Map list3) { return null; }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   191
    }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   192
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   193
    @ExpectedSignature(descriptor = "InnerClassTest$InnerClass2",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   194
            signature = "LInnerClassTest<TT;>.InnerClass1<TT;Ljava/util/Set<TT;>;>;LInnerClassTest$InnerInterface<TT;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   195
    class InnerClass2 extends InnerClass1<T, Set<T>> implements InnerInterface<T> {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   196
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   197
        // no Signature attribute
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   198
        InnerClass2() {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   199
            super(null);
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   200
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   201
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   202
        @ExpectedSignature(descriptor = "<init>(InnerClassTest, java.util.ArrayList)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   203
                signature = "(TT;)V")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   204
        InnerClass2(T a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   205
            super(a);
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   206
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   207
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   208
        @ExpectedSignature(descriptor = "<init>(InnerClassTest, java.util.ArrayList, java.util.ArrayList)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   209
                signature = "(TT;TT;)V")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   210
        InnerClass2(T a, T b) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   211
            super(a, b);
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   212
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   213
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   214
        @ExpectedSignature(descriptor = "genericMethod(java.util.ArrayList)", signature = "(TT;)TT;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   215
        @Override
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   216
        public T genericMethod(T a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   217
            return null;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   218
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   219
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   220
        @ExpectedSignature(descriptor = "genericBoundsMethod1(java.util.List)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   221
                signature = "(Ljava/util/List<-TT;>;)Ljava/util/List<+TT;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   222
        @Override
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   223
        public List<? extends T> genericBoundsMethod1(List<? super T> a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   224
            return null;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   225
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   226
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   227
        @ExpectedSignature(descriptor = "genericBoundsMethod2(java.util.List)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   228
                signature = "(Ljava/util/List<+TT;>;)Ljava/util/List<-TT;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   229
        @Override
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   230
        public List<? super T> genericBoundsMethod2(List<? extends T> a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   231
            return null;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   232
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   233
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   234
        @ExpectedSignature(descriptor = "genericWildCardMethod(java.util.Map)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   235
                signature = "(Ljava/util/Map<**>;)Ljava/util/Map<**>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   236
        @Override
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   237
        public Map<?, ?> genericWildCardMethod(Map<?, ?> a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   238
            return null;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   239
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   240
    }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   241
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   242
    @ExpectedSignature(descriptor = "InnerClassTest$StaticInnerClass",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   243
            signature = "<T:Ljava/lang/String;E::Ljava/util/Set<TT;>;>" +
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   244
                    "Ljava/lang/Object;LInnerClassTest$InnerInterface<TE;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   245
    static class StaticInnerClass<T extends String, E extends Set<T>> implements InnerInterface<E> {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   246
        // no Signature attribute
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   247
        StaticInnerClass(List a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   248
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   249
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   250
        @ExpectedSignature(descriptor = "<init>(java.lang.Runnable)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   251
                signature = "<E::Ljava/lang/Runnable;>(TE;)V")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   252
        <E extends Runnable> StaticInnerClass(E a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   253
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   254
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   255
        @ExpectedSignature(descriptor = "<init>(java.lang.String)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   256
                signature = "(TT;)V")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   257
        StaticInnerClass(T a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   258
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   259
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   260
        @ExpectedSignature(descriptor = "<init>(java.lang.String, java.util.Set)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   261
                signature = "(TT;TE;)V")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   262
        StaticInnerClass(T a, E b) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   263
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   264
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   265
        @ExpectedSignature(descriptor = "genericListExtendsBound", signature = "Ljava/util/List<+Ljava/lang/Number;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   266
        static List<? extends Number> genericListExtendsBound;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   267
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   268
        @ExpectedSignature(descriptor = "genericListSuperBound", signature = "Ljava/util/List<-Ljava/lang/Number;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   269
        static List<? super Number> genericListSuperBound;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   270
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   271
        @ExpectedSignature(descriptor = "genericListWildCard", signature = "Ljava/util/List<*>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   272
        static List<?> genericListWildCard;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   273
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   274
        @ExpectedSignature(descriptor = "genericListExactType", signature = "Ljava/util/List<Ljava/lang/Integer;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   275
        static List<Integer> genericListExactType;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   276
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   277
        static List listNoSignatureAttribute;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   278
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   279
        @ExpectedSignature(descriptor = "genericMethod(java.util.Set)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   280
                signature = "(TE;)TE;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   281
        @Override
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   282
        public E genericMethod(E a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   283
            return null;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   284
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   285
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   286
        @ExpectedSignature(descriptor = "genericBoundsMethod1(java.util.List)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   287
                signature = "(Ljava/util/List<-TE;>;)Ljava/util/List<+TE;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   288
        @Override
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   289
        public List<? extends E> genericBoundsMethod1(List<? super E> a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   290
            return null;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   291
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   292
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   293
        @ExpectedSignature(descriptor = "genericBoundsMethod2(java.util.List)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   294
                signature = "(Ljava/util/List<+TE;>;)Ljava/util/List<-TE;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   295
        @Override
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   296
        public List<? super E> genericBoundsMethod2(List<? extends E> a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   297
            return null;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   298
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   299
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   300
        @ExpectedSignature(descriptor = "genericWildCardMethod(java.util.Map)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   301
                signature = "(Ljava/util/Map<**>;)Ljava/util/Map<**>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   302
        @Override
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   303
        public Map<?, ?> genericWildCardMethod(Map<?, ?> a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   304
            return null;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   305
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   306
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   307
        @ExpectedSignature(descriptor = "staticGenericMethod(java.lang.Object)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   308
                signature = "<E:Ljava/lang/Object;>(TE;)TE;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   309
        public static <E> E staticGenericMethod(E a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   310
            return null;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   311
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   312
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   313
        @ExpectedSignature(descriptor = "staticGenericBoundsMethod1(java.util.List)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   314
                signature = "<E:Ljava/lang/Object;>(Ljava/util/List<-TE;>;)Ljava/util/List<+TE;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   315
        public static <E> List<? extends E> staticGenericBoundsMethod1(List<? super E> a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   316
            return null;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   317
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   318
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   319
        @ExpectedSignature(descriptor = "staticGenericBoundsMethod2(java.util.List)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   320
                signature = "<E:Ljava/lang/Object;>(Ljava/util/List<+TE;>;)Ljava/util/List<-TE;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   321
        public static <E> List<? super E> staticGenericBoundsMethod2(List<? extends E> a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   322
            return null;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   323
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   324
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   325
        @ExpectedSignature(descriptor = "staticGenericWildCardMethod(java.util.Map)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   326
                signature = "<E:Ljava/lang/Object;>(Ljava/util/Map<**>;)Ljava/util/Map<**>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   327
        public static <E> Map<?, ?> staticGenericWildCardMethod(Map<?, ?> a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   328
            return null;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   329
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   330
    }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   331
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   332
    @ExpectedSignature(descriptor = "InnerClassTest$InnerClass3",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   333
            signature = "Ljava/lang/Object;LInnerClassTest$ExceptionHolder" +
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   334
                    "<Ljava/lang/RuntimeException;>;Ljava/util/concurrent/Callable<Ljava/util/Map<**>;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   335
    public static class InnerClass3 implements  ExceptionHolder<RuntimeException>, Callable<Map<?, ?>> {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   336
        @ExpectedSignature(descriptor = "call()", signature = "()Ljava/util/Map<**>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   337
        @Override
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   338
        public Map<?, ?> call() throws Exception {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   339
            return null;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   340
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   341
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   342
        @Override
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   343
        public void Throw() throws RuntimeException {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   344
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   345
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   346
        @Override
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   347
        public RuntimeException Return() {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   348
            return null;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   349
        }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   350
    }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   351
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   352
    /**
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   353
     * Class is for checking that the Signature attribute is not generated
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   354
     * for overridden methods despite of the appropriate methods in the parent class
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   355
     * have the Signature attribute.
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   356
     */
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   357
    @ExpectedSignature(descriptor = "InnerClassTest$ExceptionHolder",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   358
            signature = "<E:Ljava/lang/Exception;>Ljava/lang/Object;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   359
    interface ExceptionHolder<E extends Exception> {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   360
        @ExpectedSignature(descriptor = "Throw()", signature = "()V^TE;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   361
        void Throw() throws E;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   362
        @ExpectedSignature(descriptor = "Return()", signature = "()TE;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   363
        E Return();
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   364
    }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   365
}