1 package annotations.tests.classfile.foo: 2 annotation @A: @Retention(value=RUNTIME) @Target(TYPE_USE) 3 4 annotation @B: @Retention(value=RUNTIME) @Target(TYPE_USE) 5 String value 6 7 // annotation @C: @Retention(value=CLASS) @java.lang.annotation.Target(value={TYPE_USE}) 8 annotation @C: @Retention(value=RUNTIME) @Target(TYPE_USE) 9 int fieldA 10 String fieldB 11 12 package annotations.tests.classfile.cases: 13 class TestMethodReturnTypeGenericArray: 14 method test()Ljava/util/List; : 15 return: @annotations.tests.classfile.foo.A 16 17 method test2()Ljava/util/List; : 18 return: @annotations.tests.classfile.foo.B(value="single-depth") 19 inner-type 3, 0 : @annotations.tests.classfile.foo.A 20 21 method test3()[Ljava/lang/String; : 22 return: @annotations.tests.classfile.foo.A 23 inner-type 0, 0 : @annotations.tests.classfile.foo.B(value="on array element") 24 25 method test4()[[Ljava/lang/String; : 26 return: @annotations.tests.classfile.foo.A 27 inner-type 0, 0 : @annotations.tests.classfile.foo.B(value="on") 28 inner-type 0, 0, 0, 0 : @annotations.tests.classfile.foo.B(value="in") 29 30 method test5()Ljava/util/Set; : 31 return: 32 inner-type 3, 0 : @annotations.tests.classfile.foo.A 33 inner-type 3, 0, 0, 0 : @annotations.tests.classfile.foo.B(value="two-deep") 34 35 method test6()Ljava/util/Map; : 36 return: 37 inner-type 3, 0 : @annotations.tests.classfile.foo.B(value="map as key") 38 inner-type 3, 1, 3, 0 : @annotations.tests.classfile.foo.B(value="array of value") 39 inner-type 3, 1, 3, 0, 0, 0 : @annotations.tests.classfile.foo.B(value="inner-most value") 40 inner-type 3, 1 : @annotations.tests.classfile.foo.B(value="set as value") 41 inner-type 3, 0, 3, 0, 0, 0 : @annotations.tests.classfile.foo.B(value="innermost key or key") 42 inner-type 3, 0, 3, 0 : @annotations.tests.classfile.foo.A 43 inner-type 3, 0, 3, 1 : @annotations.tests.classfile.foo.C(fieldA=01, fieldB="value of key") 44 inner-type 3, 0, 3, 1, 3, 0: @annotations.tests.classfile.foo.A 45 46