langtools/test/tools/javac/classfiles/attributes/Signature/ReturnTypeTest.java
changeset 29637 c03745b71c70
child 30730 d3ce7619db2c
equal deleted inserted replaced
29559:47544495db2d 29637:c03745b71c70
       
     1 /*
       
     2  * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
       
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       
     4  *
       
     5  * This code is free software; you can redistribute it and/or modify it
       
     6  * under the terms of the GNU General Public License version 2 only, as
       
     7  * published by the Free Software Foundation.
       
     8  *
       
     9  * This code is distributed in the hope that it will be useful, but WITHOUT
       
    10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
       
    11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
       
    12  * version 2 for more details (a copy is included in the LICENSE file that
       
    13  * accompanied this code).
       
    14  *
       
    15  * You should have received a copy of the GNU General Public License version
       
    16  * 2 along with this work; if not, write to the Free Software Foundation,
       
    17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
       
    18  *
       
    19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
       
    20  * or visit www.oracle.com if you need additional information or have any
       
    21  * questions.
       
    22  */
       
    23 
       
    24 /*
       
    25  * @test
       
    26  * @bug 8049238
       
    27  * @summary Checks Signature attribute for array return type of method.
       
    28  * @library /tools/lib /tools/javac/lib ../lib
       
    29  * @build TestBase TestResult InMemoryFileManager ToolBox
       
    30  * @build ReturnTypeTest Driver ExpectedSignature ExpectedSignatureContainer
       
    31  * @run main Driver ReturnTypeTest
       
    32  */
       
    33 
       
    34 import java.awt.Frame;
       
    35 import java.util.List;
       
    36 import java.util.Map;
       
    37 import java.util.concurrent.Callable;
       
    38 
       
    39 @ExpectedSignature(descriptor = "ReturnTypeTest",
       
    40         signature = "<T:Ljava/awt/Frame;:Ljava/lang/Runnable;:Ljava/util/concurrent/Callable<[TT;>;>Ljava/lang/Object;")
       
    41 public class ReturnTypeTest<T extends Frame & Runnable & Callable<T[]>> {
       
    42 
       
    43     @ExpectedSignature(descriptor = "byteArrayReturnType(java.awt.Frame)",
       
    44             signature = "(TT;)[B")
       
    45     byte[] byteArrayReturnType(T a) {
       
    46         return null;
       
    47     }
       
    48 
       
    49     @ExpectedSignature(descriptor = "shortArrayReturnType(java.awt.Frame)",
       
    50             signature = "(TT;)[S")
       
    51     short[] shortArrayReturnType(T a) {
       
    52         return null;
       
    53     }
       
    54 
       
    55     @ExpectedSignature(descriptor = "charArrayReturnType(java.awt.Frame)",
       
    56             signature = "(TT;)[C")
       
    57     char[] charArrayReturnType(T a) {
       
    58         return null;
       
    59     }
       
    60 
       
    61     @ExpectedSignature(descriptor = "intArrayReturnType(java.awt.Frame)",
       
    62             signature = "(TT;)[I")
       
    63     int[] intArrayReturnType(T a) {
       
    64         return null;
       
    65     }
       
    66 
       
    67     @ExpectedSignature(descriptor = "longArrayReturnType(java.awt.Frame)",
       
    68             signature = "(TT;)[J")
       
    69     long[] longArrayReturnType(T a) {
       
    70         return null;
       
    71     }
       
    72 
       
    73     @ExpectedSignature(descriptor = "booleanArrayReturnType(java.awt.Frame)",
       
    74             signature = "(TT;)[Z")
       
    75     boolean[] booleanArrayReturnType(T a) {
       
    76         return null;
       
    77     }
       
    78 
       
    79     @ExpectedSignature(descriptor = "floatArrayReturnType(java.awt.Frame)",
       
    80             signature = "(TT;)[F")
       
    81     float[] floatArrayReturnType(T a) {
       
    82         return null;
       
    83     }
       
    84 
       
    85     @ExpectedSignature(descriptor = "doubleArrayReturnType(java.awt.Frame)",
       
    86             signature = "(TT;)[D")
       
    87     double[] doubleArrayReturnType(T a) {
       
    88         return null;
       
    89     }
       
    90 
       
    91     @ExpectedSignature(descriptor = "objectArrayReturnType(java.awt.Frame)",
       
    92             signature = "(TT;)[Ljava/lang/Object;")
       
    93     Object[] objectArrayReturnType(T a) {
       
    94         return null;
       
    95     }
       
    96 
       
    97     @ExpectedSignature(descriptor = "staticByteArrayReturnType(java.lang.Object)",
       
    98             signature = "<T:Ljava/lang/Object;>(TT;)[B")
       
    99     static <T> byte[] staticByteArrayReturnType(T a) {
       
   100         return null;
       
   101     }
       
   102 
       
   103     @ExpectedSignature(descriptor = "staticShortArrayReturnType(java.lang.Object)",
       
   104             signature = "<T:Ljava/lang/Object;>(TT;)[S")
       
   105     static <T> short[] staticShortArrayReturnType(T a) {
       
   106         return null;
       
   107     }
       
   108 
       
   109     @ExpectedSignature(descriptor = "staticCharArrayReturnType(java.lang.Object)",
       
   110             signature = "<T:Ljava/lang/Object;>(TT;)[C")
       
   111     static <T> char[] staticCharArrayReturnType(T a) {
       
   112         return null;
       
   113     }
       
   114 
       
   115     @ExpectedSignature(descriptor = "staticIntArrayReturnType(java.lang.Object)",
       
   116             signature = "<T:Ljava/lang/Object;>(TT;)[I")
       
   117     static <T> int[] staticIntArrayReturnType(T a) {
       
   118         return null;
       
   119     }
       
   120 
       
   121     @ExpectedSignature(descriptor = "staticLongArrayReturnType(java.lang.Object)",
       
   122             signature = "<T:Ljava/lang/Object;>(TT;)[J")
       
   123     static <T> long[] staticLongArrayReturnType(T a) {
       
   124         return null;
       
   125     }
       
   126 
       
   127     @ExpectedSignature(descriptor = "staticBooleanArrayReturnType(java.lang.Object)",
       
   128             signature = "<T:Ljava/lang/Object;>(TT;)[Z")
       
   129     static <T> boolean[] staticBooleanArrayReturnType(T a) {
       
   130         return null;
       
   131     }
       
   132 
       
   133     @ExpectedSignature(descriptor = "staticFloatArrayReturnType(java.lang.Object)",
       
   134             signature = "<T:Ljava/lang/Object;>(TT;)[F")
       
   135     static <T> float[] staticFloatArrayReturnType(T a) {
       
   136         return null;
       
   137     }
       
   138 
       
   139     @ExpectedSignature(descriptor = "staticDoubleArrayReturnType(java.lang.Object)",
       
   140             signature = "<T:Ljava/lang/Object;>(TT;)[D")
       
   141     static <T> double[] staticDoubleArrayReturnType(T a) {
       
   142         return null;
       
   143     }
       
   144 
       
   145     @ExpectedSignature(descriptor = "staticObjectArrayReturnType(java.lang.Object)",
       
   146             signature = "<T:Ljava/lang/Object;>(TT;)[Ljava/lang/Object;")
       
   147     static <T> Object[] staticObjectArrayReturnType(T a) {
       
   148         return null;
       
   149     }
       
   150 
       
   151     byte[] byteArrayReturnTypeNoSignatureAttribute() {
       
   152         return null;
       
   153     }
       
   154 
       
   155     short[] shortArrayReturnTypeNoSignatureAttribute() {
       
   156         return null;
       
   157     }
       
   158 
       
   159     char[] charArrayReturnTypeNoSignatureAttribute() {
       
   160         return null;
       
   161     }
       
   162 
       
   163     int[] intArrayReturnTypeNoSignatureAttribute() {
       
   164         return null;
       
   165     }
       
   166 
       
   167     long[] longArrayReturnTypeNoSignatureAttribute() {
       
   168         return null;
       
   169     }
       
   170 
       
   171     boolean[] booleanArrayReturnTypeNoSignatureAttribute() {
       
   172         return null;
       
   173     }
       
   174 
       
   175     float[] floatArrayReturnTypeNoSignatureAttribute() {
       
   176         return null;
       
   177     }
       
   178 
       
   179     double[] doubleArrayReturnTypeNoSignatureAttribute() {
       
   180         return null;
       
   181     }
       
   182 
       
   183     Object[] objectArrayReturnTypeNoSignatureAttribute() {
       
   184         return null;
       
   185     }
       
   186 
       
   187     static byte[] staticByteArrayReturnTypeNoSignatureAttribute() {
       
   188         return null;
       
   189     }
       
   190 
       
   191     static short[] staticShortArrayReturnTypeNoSignatureAttribute() {
       
   192         return null;
       
   193     }
       
   194 
       
   195     static char[] staticCharArrayReturnTypeNoSignatureAttribute() {
       
   196         return null;
       
   197     }
       
   198 
       
   199     static int[] staticIntArrayReturnTypeNoSignatureAttribute() {
       
   200         return null;
       
   201     }
       
   202 
       
   203     static long[] staticLongArrayReturnTypeNoSignatureAttribute() {
       
   204         return null;
       
   205     }
       
   206 
       
   207     static boolean[] staticBooleanArrayReturnTypeNoSignatureAttribute() {
       
   208         return null;
       
   209     }
       
   210 
       
   211     static float[] staticFloatArrayReturnTypeNoSignatureAttribute() {
       
   212         return null;
       
   213     }
       
   214 
       
   215     static double[] staticDoubleArrayReturnTypeNoSignatureAttribute() {
       
   216         return null;
       
   217     }
       
   218 
       
   219     static Object[] staticObjectArrayReturnTypeNoSignatureAttribute() {
       
   220         return null;
       
   221     }
       
   222 
       
   223     @ExpectedSignature(descriptor = "typeReturnType()",
       
   224             signature = "()TT;")
       
   225     T typeReturnType() {
       
   226         return null;
       
   227     }
       
   228 
       
   229     @ExpectedSignature(descriptor = "typeArrayReturnType()",
       
   230             signature = "()[TT;")
       
   231     T[] typeArrayReturnType() {
       
   232         return null;
       
   233     }
       
   234 
       
   235     @ExpectedSignature(descriptor = "extendsReturnType()",
       
   236             signature = "<E:TT;>()TE;")
       
   237     <E extends T> E extendsReturnType() {
       
   238         return null;
       
   239     }
       
   240 
       
   241     @ExpectedSignature(descriptor = "extendsArrayReturnType()",
       
   242             signature = "<E:TT;>()[TE;")
       
   243     <E extends T> E[] extendsArrayReturnType() {
       
   244         return null;
       
   245     }
       
   246 
       
   247     @ExpectedSignature(descriptor = "genericListReturnType()",
       
   248             signature = "()Ljava/util/List<TT;>;")
       
   249     List<T> genericListReturnType() {
       
   250         return null;
       
   251     }
       
   252 
       
   253     @ExpectedSignature(descriptor = "genericListArrayReturnType()",
       
   254             signature = "()[Ljava/util/List<TT;>;")
       
   255     List<T>[] genericListArrayReturnType() {
       
   256         return null;
       
   257     }
       
   258 
       
   259     @ExpectedSignature(descriptor = "extendsBoundReturnType()",
       
   260             signature = "()Ljava/util/List<+TT;>;")
       
   261     List<? extends T> extendsBoundReturnType() {
       
   262         return null;
       
   263     }
       
   264 
       
   265     @ExpectedSignature(descriptor = "extendsBoundArrayReturnType()",
       
   266             signature = "()[Ljava/util/List<+TT;>;")
       
   267     List<? extends T>[] extendsBoundArrayReturnType() {
       
   268         return null;
       
   269     }
       
   270 
       
   271     @ExpectedSignature(descriptor = "superBoundReturnType()",
       
   272             signature = "()Ljava/util/List<-TT;>;")
       
   273     List<? super T> superBoundReturnType() {
       
   274         return null;
       
   275     }
       
   276 
       
   277     @ExpectedSignature(descriptor = "superBoundArrayReturnType()",
       
   278             signature = "()[Ljava/util/List<-TT;>;")
       
   279     List<? super T>[] superBoundArrayReturnType() {
       
   280         return null;
       
   281     }
       
   282 
       
   283     @ExpectedSignature(descriptor = "wildcardReturnType()",
       
   284             signature = "()Ljava/util/Map<**>;")
       
   285     Map<?, ?> wildcardReturnType() {
       
   286         return null;
       
   287     }
       
   288 
       
   289     @ExpectedSignature(descriptor = "wildcardArrayReturnType()",
       
   290             signature = "()[Ljava/util/Map<**>;")
       
   291     Map<?, ?>[] wildcardArrayReturnType() {
       
   292         return null;
       
   293     }
       
   294 
       
   295     @ExpectedSignature(descriptor = "staticTypeReturnType()",
       
   296             signature = "<T:Ljava/lang/Object;>()TT;")
       
   297     static <T> T staticTypeReturnType() {
       
   298         return null;
       
   299     }
       
   300 
       
   301     @ExpectedSignature(descriptor = "staticTypeArrayReturnType()",
       
   302             signature = "<T:Ljava/lang/Object;>()[TT;")
       
   303     static <T> T[] staticTypeArrayReturnType() {
       
   304         return null;
       
   305     }
       
   306 
       
   307     @ExpectedSignature(descriptor = "staticExtendsReturnType()",
       
   308             signature = "<T:Ljava/lang/Object;E:TT;>()TE;")
       
   309     static <T, E extends T> E staticExtendsReturnType() {
       
   310         return null;
       
   311     }
       
   312 
       
   313     @ExpectedSignature(descriptor = "staticExtendsArrayReturnType()",
       
   314             signature = "<T:Ljava/lang/Object;E:TT;>()[TE;")
       
   315     static <T, E extends T> E[] staticExtendsArrayReturnType() {
       
   316         return null;
       
   317     }
       
   318 
       
   319     @ExpectedSignature(descriptor = "staticGenericListReturnType()",
       
   320             signature = "<T:Ljava/lang/Object;>()Ljava/util/List<TT;>;")
       
   321     static <T> List<T> staticGenericListReturnType() {
       
   322         return null;
       
   323     }
       
   324 
       
   325     @ExpectedSignature(descriptor = "staticGenericListArrayReturnType()",
       
   326             signature = "<T:Ljava/lang/Object;>()[Ljava/util/List<TT;>;")
       
   327     static <T> List<T>[] staticGenericListArrayReturnType() {
       
   328         return null;
       
   329     }
       
   330 
       
   331     @ExpectedSignature(descriptor = "staticExtendsBoundReturnType()",
       
   332             signature = "<T:Ljava/lang/Object;>()Ljava/util/List<+TT;>;")
       
   333     static <T> List<? extends T> staticExtendsBoundReturnType() {
       
   334         return null;
       
   335     }
       
   336 
       
   337     @ExpectedSignature(descriptor = "staticExtendsBoundArrayReturnType()",
       
   338             signature = "<T:Ljava/lang/Object;>()[Ljava/util/List<+TT;>;")
       
   339     static <T> List<? extends T>[] staticExtendsBoundArrayReturnType() {
       
   340         return null;
       
   341     }
       
   342 
       
   343     @ExpectedSignature(descriptor = "staticSuperBoundReturnType()",
       
   344             signature = "<T:Ljava/lang/Object;>()Ljava/util/List<-TT;>;")
       
   345     static <T> List<? super T> staticSuperBoundReturnType() {
       
   346         return null;
       
   347     }
       
   348 
       
   349     @ExpectedSignature(descriptor = "staticSuperBoundArrayReturnType()",
       
   350             signature = "<T:Ljava/lang/Object;>()[Ljava/util/List<-TT;>;")
       
   351     static <T> List<? super T>[] staticSuperBoundArrayReturnType() {
       
   352         return null;
       
   353     }
       
   354 
       
   355     @ExpectedSignature(descriptor = "staticWildcardReturnType()",
       
   356             signature = "()Ljava/util/Map<**>;")
       
   357     static Map<?, ?> staticWildcardReturnType() {
       
   358         return null;
       
   359     }
       
   360 
       
   361     @ExpectedSignature(descriptor = "staticWildcardArrayReturnType()",
       
   362             signature = "()[Ljava/util/Map<**>;")
       
   363     static Map<?, ?>[] staticWildcardArrayReturnType() {
       
   364         return null;
       
   365     }
       
   366 
       
   367     List noSignature() {
       
   368         return null;
       
   369     }
       
   370 
       
   371     static List staticNoSignatureAttribute() {
       
   372         return null;
       
   373     }
       
   374 
       
   375     @ExpectedSignature(descriptor = "boundsBooleanArray()",
       
   376             signature = "()Ljava/util/Map<+[Z-[Z>;")
       
   377     Map<? extends boolean[], ? super boolean[]> boundsBooleanArray() {
       
   378         return null;
       
   379     }
       
   380 
       
   381     @ExpectedSignature(descriptor = "boundsByteArray()",
       
   382             signature = "()Ljava/util/Map<+[B-[B>;")
       
   383     Map<? extends byte[], ? super byte[]> boundsByteArray() {
       
   384         return null;
       
   385     }
       
   386 
       
   387     @ExpectedSignature(descriptor = "boundsShortArray()",
       
   388             signature = "()Ljava/util/Map<+[S-[S>;")
       
   389     Map<? extends short[], ? super short[]> boundsShortArray() {
       
   390         return null;
       
   391     }
       
   392 
       
   393     @ExpectedSignature(descriptor = "boundsIntArray()",
       
   394             signature = "()Ljava/util/Map<+[I-[I>;")
       
   395     Map<? extends int[], ? super int[]> boundsIntArray() {
       
   396         return null;
       
   397     }
       
   398 
       
   399     @ExpectedSignature(descriptor = "boundsLongArray()",
       
   400             signature = "()Ljava/util/Map<+[J-[J>;")
       
   401     Map<? extends long[], ? super long[]> boundsLongArray() {
       
   402         return null;
       
   403     }
       
   404 
       
   405     @ExpectedSignature(descriptor = "boundsCharArray()",
       
   406             signature = "()Ljava/util/Map<+[C-[C>;")
       
   407     Map<? extends char[], ? super char[]> boundsCharArray() {
       
   408         return null;
       
   409     }
       
   410 
       
   411     @ExpectedSignature(descriptor = "boundsFloatArray()",
       
   412             signature = "()Ljava/util/Map<+[F-[F>;")
       
   413     Map<? extends float[], ? super float[]> boundsFloatArray() {
       
   414         return null;
       
   415     }
       
   416 
       
   417     @ExpectedSignature(descriptor = "boundsDoubleArray()",
       
   418             signature = "()Ljava/util/Map<+[D-[D>;")
       
   419     Map<? extends double[], ? super double[]> boundsDoubleArray() {
       
   420         return null;
       
   421     }
       
   422 
       
   423     @ExpectedSignature(descriptor = "boundsObjectArray()",
       
   424             signature = "()Ljava/util/Map<+[Ljava/lang/Object;-[Ljava/lang/Object;>;")
       
   425     Map<? extends Object[], ? super Object[]> boundsObjectArray() {
       
   426         return null;
       
   427     }
       
   428 
       
   429     @ExpectedSignature(descriptor = "voidMethod(java.awt.Frame)", signature = "(TT;)V")
       
   430     void voidMethod(T a) {
       
   431     }
       
   432 
       
   433     @ExpectedSignature(descriptor = "byteMethod(java.awt.Frame)", signature = "(TT;)B")
       
   434     byte byteMethod(T a) {
       
   435         return 0;
       
   436     }
       
   437 
       
   438     @ExpectedSignature(descriptor = "shortMethod(java.awt.Frame)", signature = "(TT;)S")
       
   439     short shortMethod(T a) {
       
   440         return 0;
       
   441     }
       
   442 
       
   443     @ExpectedSignature(descriptor = "charMethod(java.awt.Frame)", signature = "(TT;)C")
       
   444     char charMethod(T a) {
       
   445         return 0;
       
   446     }
       
   447 
       
   448     @ExpectedSignature(descriptor = "intMethod(java.awt.Frame)", signature = "(TT;)I")
       
   449     int intMethod(T a) {
       
   450         return 0;
       
   451     }
       
   452 
       
   453     @ExpectedSignature(descriptor = "longMethod(java.awt.Frame)", signature = "(TT;)J")
       
   454     long longMethod(T a) {
       
   455         return 0;
       
   456     }
       
   457 
       
   458     @ExpectedSignature(descriptor = "booleanMethod(java.awt.Frame)", signature = "(TT;)Z")
       
   459     boolean booleanMethod(T a) {
       
   460         return false;
       
   461     }
       
   462 
       
   463     @ExpectedSignature(descriptor = "floatMethod(java.awt.Frame)", signature = "(TT;)F")
       
   464     float floatMethod(T a) {
       
   465         return 0;
       
   466     }
       
   467 
       
   468     @ExpectedSignature(descriptor = "doubleMethod(java.awt.Frame)", signature = "(TT;)D")
       
   469     double doubleMethod(T a) {
       
   470         return 0;
       
   471     }
       
   472 
       
   473     @ExpectedSignature(descriptor = "objectMethod(java.awt.Frame)", signature = "(TT;)Ljava/lang/Object;")
       
   474     Object objectMethod(T a) {
       
   475         return null;
       
   476     }
       
   477 
       
   478     @ExpectedSignature(descriptor = "staticVoidMethod(java.lang.Object)", signature = "<T:Ljava/lang/Object;>(TT;)V")
       
   479     static <T> void staticVoidMethod(T a) {
       
   480     }
       
   481 
       
   482     @ExpectedSignature(descriptor = "staticByteMethod(java.lang.Object)", signature = "<T:Ljava/lang/Object;>(TT;)B")
       
   483     static <T> byte staticByteMethod(T a) {
       
   484         return 0;
       
   485     }
       
   486 
       
   487     @ExpectedSignature(descriptor = "staticShortMethod(java.lang.Object)", signature = "<T:Ljava/lang/Object;>(TT;)S")
       
   488     static <T> short staticShortMethod(T a) {
       
   489         return 0;
       
   490     }
       
   491 
       
   492     @ExpectedSignature(descriptor = "staticCharMethod(java.lang.Object)", signature = "<T:Ljava/lang/Object;>(TT;)C")
       
   493     static <T> char staticCharMethod(T a) {
       
   494         return 0;
       
   495     }
       
   496 
       
   497     @ExpectedSignature(descriptor = "staticIntMethod(java.lang.Object)", signature = "<T:Ljava/lang/Object;>(TT;)I")
       
   498     static <T> int staticIntMethod(T a) {
       
   499         return 0;
       
   500     }
       
   501 
       
   502     @ExpectedSignature(descriptor = "staticLongMethod(java.lang.Object)", signature = "<T:Ljava/lang/Object;>(TT;)J")
       
   503     static <T> long staticLongMethod(T a) {
       
   504         return 0;
       
   505     }
       
   506 
       
   507     @ExpectedSignature(descriptor = "staticBooleanMethod(java.lang.Object)", signature = "<T:Ljava/lang/Object;>(TT;)Z")
       
   508     static <T> boolean staticBooleanMethod(T a) {
       
   509         return false;
       
   510     }
       
   511 
       
   512     @ExpectedSignature(descriptor = "staticFloatMethod(java.lang.Object)", signature = "<T:Ljava/lang/Object;>(TT;)F")
       
   513     static <T> float staticFloatMethod(T a) {
       
   514         return 0;
       
   515     }
       
   516 
       
   517     @ExpectedSignature(descriptor = "staticDoubleMethod(java.lang.Object)", signature = "<T:Ljava/lang/Object;>(TT;)D")
       
   518     static <T> double staticDoubleMethod(T a) {
       
   519         return 0;
       
   520     }
       
   521 
       
   522     @ExpectedSignature(descriptor = "staticObjectMethod(java.lang.Object)",
       
   523             signature = "<T:Ljava/lang/Object;>(TT;)Ljava/lang/Object;")
       
   524     static <T> Object staticObjectMethod(T a) {
       
   525         return null;
       
   526     }
       
   527 
       
   528     void voidReturnTypeNoSignatureAttribute() {
       
   529     }
       
   530 
       
   531     byte byteReturnTypeNoSignatureAttribute() {
       
   532         return 0;
       
   533     }
       
   534 
       
   535     Object objectReturnNoSignatureAttribute() {
       
   536         return null;
       
   537     }
       
   538 
       
   539     static void staticVoidReturnTypeNoSignatureAttribute() {
       
   540     }
       
   541 
       
   542     static byte staticByteReturnTypeNoSignatureAttribute() {
       
   543         return 0;
       
   544     }
       
   545 
       
   546     static Object staticObjectReturnTypeNoSignatureAttribute() {
       
   547         return null;
       
   548     }
       
   549 }