langtools/test/tools/javac/classfiles/attributes/Signature/InnerClassTest.java
author mchung
Wed, 27 May 2015 13:25:18 -0700
changeset 30846 2b3f379840f0
parent 30730 d3ce7619db2c
child 35359 f04501964016
permissions -rw-r--r--
8074432: Move jdeps and javap to jdk.jdeps module Reviewed-by: jjg, alanb, erikj
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
29637
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
     1
/*
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
     2
 * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
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
30846
2b3f379840f0 8074432: Move jdeps and javap to jdk.jdeps module
mchung
parents: 30730
diff changeset
    29
 * @modules jdk.jdeps/com.sun.tools.classfile
30730
d3ce7619db2c 8076543: Add @modules as needed to the langtools tests
akulyakh
parents: 29637
diff changeset
    30
 *          jdk.compiler/com.sun.tools.javac.api
d3ce7619db2c 8076543: Add @modules as needed to the langtools tests
akulyakh
parents: 29637
diff changeset
    31
 *          jdk.compiler/com.sun.tools.javac.file
d3ce7619db2c 8076543: Add @modules as needed to the langtools tests
akulyakh
parents: 29637
diff changeset
    32
 *          jdk.compiler/com.sun.tools.javac.main
29637
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    33
 * @build TestBase TestResult InMemoryFileManager ToolBox
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    34
 * @build InnerClassTest Driver ExpectedSignature ExpectedSignatureContainer
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    35
 * @run main Driver InnerClassTest
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    38
import java.util.ArrayList;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    39
import java.util.List;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    40
import java.util.Map;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    41
import java.util.Set;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    42
import java.util.concurrent.Callable;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    43
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    44
@ExpectedSignature(descriptor = "InnerClassTest",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    45
        signature = "<T:Ljava/util/ArrayList<TT;>;:Ljava/lang/Runnable;>Ljava/lang/Object;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    46
@ExpectedSignature(descriptor = "InnerClassTest$1",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    47
        signature = "LInnerClassTest$1Local1;", isAnonymous = true)
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    48
@ExpectedSignature(descriptor = "InnerClassTest$2",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    49
        signature = "LInnerClassTest$1Local2<Ljava/util/ArrayList<TT;>;" +
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    50
                "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
    51
public class InnerClassTest<T extends ArrayList<T> & Runnable> {
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
    {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    54
        class Local1 {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    55
            // no Signature attribute
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    56
            Local1() {
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    59
            @ExpectedSignature(descriptor = "genericType", signature = "TT;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    60
            T genericType;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    61
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    62
            @ExpectedSignature(descriptor = "genericTypeArray", signature = "[TT;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    63
            T[] genericTypeArray;
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    66
        @ExpectedSignature(descriptor = "InnerClassTest$1Local2",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    67
                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
    68
        class Local2<T, U extends Map<? extends T, ? super T>> {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    69
            // no Signature attribute
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    70
            Local2() {
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    73
            @ExpectedSignature(descriptor = "<init>(InnerClassTest, java.lang.Object, java.util.Map)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    74
                    signature = "(TT;TU;)V")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    75
            Local2(T a, U b) {
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    78
            @ExpectedSignature(descriptor = "genericMethod(java.lang.Object[])",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    79
                    signature = "([TT;)[TU;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    80
            U[] genericMethod(T...a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    81
                return null;
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    85
        @ExpectedSignature(descriptor = "InnerClassTest$1Local3",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    86
                signature = "LInnerClassTest$1Local2<Ljava/util/ArrayList<TT;>;" +
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    87
                        "Ljava/util/Map<Ljava/util/ArrayList<TT;>;Ljava/util/ArrayList<TT;>;>;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    88
        class Local3 extends Local2<ArrayList<T>, Map<ArrayList<T>, ArrayList<T>>> {
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    91
        new Local1() {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    92
            @ExpectedSignature(descriptor = "genericType", signature = "TT;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    93
            T genericType;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    94
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    95
            @ExpectedSignature(descriptor = "genericTypeArray", signature = "[TT;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    96
            T[] genericTypeArray;
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
    99
        new Local2<ArrayList<T>, Map<ArrayList<T>, ArrayList<T>>>() {
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   103
    @ExpectedSignature(descriptor = "InnerClassTest$InnerClass1",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   104
            signature = "<E:TT;U::Ljava/util/Set<-TE;>;>Ljava/lang/Object;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   105
    class InnerClass1<E extends T, U extends Set<? super E>> {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   106
        @ExpectedSignature(descriptor = "genericTypeArray", signature = "[TT;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   107
        T[] genericTypeArray;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   108
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   109
        @ExpectedSignature(descriptor = "genericListExtendsBound", signature = "Ljava/util/List<+TT;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   110
        List<? extends T> genericListExtendsBound;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   111
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   112
        @ExpectedSignature(descriptor = "genericListSuperBound", signature = "Ljava/util/List<-TU;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   113
        List<? super U> genericListSuperBound;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   114
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   115
        @ExpectedSignature(descriptor = "genericListWildCard", signature = "Ljava/util/List<*>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   116
        List<?> genericListWildCard;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   117
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   118
        @ExpectedSignature(descriptor = "genericListExactType", signature = "Ljava/util/List<Ljava/lang/Integer;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   119
        List<Integer> genericListExactType;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   120
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   121
        @ExpectedSignature(descriptor = "listWithGenericType", signature = "Ljava/util/List<TE;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   122
        List<E> listWithGenericType;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   123
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   124
        List listNoSignatureAttribute;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   125
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   126
        // no Signature attribute
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   127
        InnerClass1(List a) {
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   130
        @ExpectedSignature(descriptor = "<init>(InnerClassTest, java.util.ArrayList)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   131
                signature = "(TT;)V")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   132
        InnerClass1(T a) {
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   135
        @ExpectedSignature(descriptor = "<init>(InnerClassTest, java.util.ArrayList, java.util.ArrayList)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   136
                signature = "(TT;TE;)V")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   137
        InnerClass1(T a, E b) {
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   140
        @ExpectedSignature(descriptor = "genericMethod(java.util.ArrayList)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   141
                signature = "(TT;)TE;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   142
        E genericMethod(T a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   143
            return null;
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   147
    @ExpectedSignature(descriptor = "InnerClassTest$InnerInterface",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   148
            signature = "<T:Ljava/lang/Object;>Ljava/lang/Object;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   149
    interface InnerInterface<T> {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   150
        @ExpectedSignature(descriptor = "genericMethod(java.lang.Object)", signature = "(TT;)TT;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   151
        T genericMethod(T a);
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   152
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   153
        @ExpectedSignature(descriptor = "genericListExtendsBound", signature = "Ljava/util/List<+Ljava/lang/Number;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   154
        List<? extends Number> genericListExtendsBound = null;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   155
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   156
        @ExpectedSignature(descriptor = "genericListSuperBound", signature = "Ljava/util/List<-Ljava/lang/Number;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   157
        List<? super Number> genericListSuperBound = null;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   158
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   159
        @ExpectedSignature(descriptor = "genericListWildCard", signature = "Ljava/util/List<*>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   160
        List<?> genericListWildCard = null;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   161
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   162
        @ExpectedSignature(descriptor = "genericListExactType", signature = "Ljava/util/List<Ljava/lang/Integer;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   163
        List<Integer> genericListExactType = null;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   164
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   165
        List listNoSignatureAttribute = null;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   166
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   167
        @ExpectedSignature(descriptor = "genericBoundsMethod1(java.util.List)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   168
                signature = "(Ljava/util/List<-TT;>;)Ljava/util/List<+TT;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   169
        List<? extends T> genericBoundsMethod1(List<? super T> a);
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   170
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   171
        @ExpectedSignature(descriptor = "genericBoundsMethod2(java.util.List)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   172
                signature = "(Ljava/util/List<+TT;>;)Ljava/util/List<-TT;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   173
        List<? super T> genericBoundsMethod2(List<? extends T> a);
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   174
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   175
        @ExpectedSignature(descriptor = "genericWildCardMethod(java.util.Map)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   176
                signature = "(Ljava/util/Map<**>;)Ljava/util/Map<**>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   177
        Map<?, ?> genericWildCardMethod(Map<?, ?> a);
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   178
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   179
        @ExpectedSignature(descriptor = "defaultGenericMethod(java.util.List, java.util.List, java.util.Map)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   180
                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
   181
        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
   182
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   183
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   184
        default List defaultNoSignatureAttributeMethod(List list1, List list2, Map list3) { return null; }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   185
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   186
        @ExpectedSignature(descriptor = "staticGenericMethod(java.util.List, java.util.List, java.util.Map)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   187
                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
   188
        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
   189
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   190
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   191
        static List staticNoSignatureAttributeMethod(List list1, List list2, Map list3) { return null; }
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   194
    @ExpectedSignature(descriptor = "InnerClassTest$InnerClass2",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   195
            signature = "LInnerClassTest<TT;>.InnerClass1<TT;Ljava/util/Set<TT;>;>;LInnerClassTest$InnerInterface<TT;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   196
    class InnerClass2 extends InnerClass1<T, Set<T>> implements InnerInterface<T> {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   197
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   198
        // no Signature attribute
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   199
        InnerClass2() {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   200
            super(null);
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   203
        @ExpectedSignature(descriptor = "<init>(InnerClassTest, java.util.ArrayList)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   204
                signature = "(TT;)V")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   205
        InnerClass2(T a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   206
            super(a);
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   209
        @ExpectedSignature(descriptor = "<init>(InnerClassTest, java.util.ArrayList, java.util.ArrayList)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   210
                signature = "(TT;TT;)V")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   211
        InnerClass2(T a, T b) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   212
            super(a, b);
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   215
        @ExpectedSignature(descriptor = "genericMethod(java.util.ArrayList)", signature = "(TT;)TT;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   216
        @Override
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   217
        public T genericMethod(T a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   218
            return null;
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   221
        @ExpectedSignature(descriptor = "genericBoundsMethod1(java.util.List)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   222
                signature = "(Ljava/util/List<-TT;>;)Ljava/util/List<+TT;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   223
        @Override
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   224
        public List<? extends T> genericBoundsMethod1(List<? super T> a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   225
            return null;
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   228
        @ExpectedSignature(descriptor = "genericBoundsMethod2(java.util.List)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   229
                signature = "(Ljava/util/List<+TT;>;)Ljava/util/List<-TT;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   230
        @Override
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   231
        public List<? super T> genericBoundsMethod2(List<? extends T> a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   232
            return null;
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   235
        @ExpectedSignature(descriptor = "genericWildCardMethod(java.util.Map)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   236
                signature = "(Ljava/util/Map<**>;)Ljava/util/Map<**>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   237
        @Override
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   238
        public Map<?, ?> genericWildCardMethod(Map<?, ?> a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   239
            return null;
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   243
    @ExpectedSignature(descriptor = "InnerClassTest$StaticInnerClass",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   244
            signature = "<T:Ljava/lang/String;E::Ljava/util/Set<TT;>;>" +
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   245
                    "Ljava/lang/Object;LInnerClassTest$InnerInterface<TE;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   246
    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
   247
        // no Signature attribute
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   248
        StaticInnerClass(List a) {
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   251
        @ExpectedSignature(descriptor = "<init>(java.lang.Runnable)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   252
                signature = "<E::Ljava/lang/Runnable;>(TE;)V")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   253
        <E extends Runnable> StaticInnerClass(E a) {
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   256
        @ExpectedSignature(descriptor = "<init>(java.lang.String)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   257
                signature = "(TT;)V")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   258
        StaticInnerClass(T a) {
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   261
        @ExpectedSignature(descriptor = "<init>(java.lang.String, java.util.Set)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   262
                signature = "(TT;TE;)V")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   263
        StaticInnerClass(T a, E b) {
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   266
        @ExpectedSignature(descriptor = "genericListExtendsBound", signature = "Ljava/util/List<+Ljava/lang/Number;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   267
        static List<? extends Number> genericListExtendsBound;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   268
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   269
        @ExpectedSignature(descriptor = "genericListSuperBound", signature = "Ljava/util/List<-Ljava/lang/Number;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   270
        static List<? super Number> genericListSuperBound;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   271
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   272
        @ExpectedSignature(descriptor = "genericListWildCard", signature = "Ljava/util/List<*>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   273
        static List<?> genericListWildCard;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   274
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   275
        @ExpectedSignature(descriptor = "genericListExactType", signature = "Ljava/util/List<Ljava/lang/Integer;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   276
        static List<Integer> genericListExactType;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   277
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   278
        static List listNoSignatureAttribute;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   279
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   280
        @ExpectedSignature(descriptor = "genericMethod(java.util.Set)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   281
                signature = "(TE;)TE;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   282
        @Override
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   283
        public E genericMethod(E a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   284
            return null;
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   287
        @ExpectedSignature(descriptor = "genericBoundsMethod1(java.util.List)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   288
                signature = "(Ljava/util/List<-TE;>;)Ljava/util/List<+TE;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   289
        @Override
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   290
        public List<? extends E> genericBoundsMethod1(List<? super E> a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   291
            return null;
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   294
        @ExpectedSignature(descriptor = "genericBoundsMethod2(java.util.List)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   295
                signature = "(Ljava/util/List<+TE;>;)Ljava/util/List<-TE;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   296
        @Override
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   297
        public List<? super E> genericBoundsMethod2(List<? extends E> a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   298
            return null;
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   301
        @ExpectedSignature(descriptor = "genericWildCardMethod(java.util.Map)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   302
                signature = "(Ljava/util/Map<**>;)Ljava/util/Map<**>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   303
        @Override
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   304
        public Map<?, ?> genericWildCardMethod(Map<?, ?> a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   305
            return null;
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   308
        @ExpectedSignature(descriptor = "staticGenericMethod(java.lang.Object)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   309
                signature = "<E:Ljava/lang/Object;>(TE;)TE;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   310
        public static <E> E staticGenericMethod(E a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   311
            return null;
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   314
        @ExpectedSignature(descriptor = "staticGenericBoundsMethod1(java.util.List)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   315
                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
   316
        public static <E> List<? extends E> staticGenericBoundsMethod1(List<? super E> a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   317
            return null;
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   320
        @ExpectedSignature(descriptor = "staticGenericBoundsMethod2(java.util.List)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   321
                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
   322
        public static <E> List<? super E> staticGenericBoundsMethod2(List<? extends E> a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   323
            return null;
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   326
        @ExpectedSignature(descriptor = "staticGenericWildCardMethod(java.util.Map)",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   327
                signature = "<E:Ljava/lang/Object;>(Ljava/util/Map<**>;)Ljava/util/Map<**>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   328
        public static <E> Map<?, ?> staticGenericWildCardMethod(Map<?, ?> a) {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   329
            return null;
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   333
    @ExpectedSignature(descriptor = "InnerClassTest$InnerClass3",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   334
            signature = "Ljava/lang/Object;LInnerClassTest$ExceptionHolder" +
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   335
                    "<Ljava/lang/RuntimeException;>;Ljava/util/concurrent/Callable<Ljava/util/Map<**>;>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   336
    public static class InnerClass3 implements  ExceptionHolder<RuntimeException>, Callable<Map<?, ?>> {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   337
        @ExpectedSignature(descriptor = "call()", signature = "()Ljava/util/Map<**>;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   338
        @Override
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   339
        public Map<?, ?> call() throws Exception {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   340
            return null;
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   343
        @Override
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   344
        public void Throw() throws RuntimeException {
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
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   347
        @Override
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   348
        public RuntimeException Return() {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   349
            return null;
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
    /**
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   354
     * Class is for checking that the Signature attribute is not generated
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   355
     * for overridden methods despite of the appropriate methods in the parent class
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   356
     * have the Signature attribute.
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   357
     */
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   358
    @ExpectedSignature(descriptor = "InnerClassTest$ExceptionHolder",
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   359
            signature = "<E:Ljava/lang/Exception;>Ljava/lang/Object;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   360
    interface ExceptionHolder<E extends Exception> {
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   361
        @ExpectedSignature(descriptor = "Throw()", signature = "()V^TE;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   362
        void Throw() throws E;
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   363
        @ExpectedSignature(descriptor = "Return()", signature = "()TE;")
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   364
        E Return();
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   365
    }
c03745b71c70 8049238: Implement classfile tests for Signature attribute
aeremeev
parents:
diff changeset
   366
}