public final class sun.reflect.annotation.TypeAnnotationParser
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: sun.reflect.annotation.TypeAnnotationParser
super_class: java.lang.Object
{
private static final sun.reflect.annotation.TypeAnnotation[] EMPTY_TYPE_ANNOTATION_ARRAY;
descriptor: [Lsun/reflect/annotation/TypeAnnotation;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte CLASS_TYPE_PARAMETER;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final byte METHOD_TYPE_PARAMETER;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final byte CLASS_EXTENDS;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16
private static final byte CLASS_TYPE_PARAMETER_BOUND;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 17
private static final byte METHOD_TYPE_PARAMETER_BOUND;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 18
private static final byte FIELD;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 19
private static final byte METHOD_RETURN;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 20
private static final byte METHOD_RECEIVER;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 21
private static final byte METHOD_FORMAL_PARAMETER;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 22
private static final byte THROWS;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 23
private static final byte LOCAL_VARIABLE;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 64
private static final byte RESOURCE_VARIABLE;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 65
private static final byte EXCEPTION_PARAMETER;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 66
private static final byte INSTANCEOF;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 67
private static final byte NEW;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 68
private static final byte CONSTRUCTOR_REFERENCE;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 69
private static final byte METHOD_REFERENCE;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 70
private static final byte CAST;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 71
private static final byte CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 72
private static final byte METHOD_INVOCATION_TYPE_ARGUMENT;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 73
private static final byte CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 74
private static final byte METHOD_REFERENCE_TYPE_ARGUMENT;
descriptor: B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 75
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: iconst_0
anewarray sun.reflect.annotation.TypeAnnotation
putstatic sun.reflect.annotation.TypeAnnotationParser.EMPTY_TYPE_ANNOTATION_ARRAY:[Lsun/reflect/annotation/TypeAnnotation;
1: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/reflect/annotation/TypeAnnotationParser;
public static java.lang.reflect.AnnotatedType buildAnnotatedType(byte[], jdk.internal.reflect.ConstantPool, java.lang.reflect.AnnotatedElement, java.lang.Class<?>, java.lang.reflect.Type, sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget);
descriptor: ([BLjdk/internal/reflect/ConstantPool;Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;Ljava/lang/reflect/Type;Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;)Ljava/lang/reflect/AnnotatedType;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=13, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
1: aload 1
aload 2
aload 3
2: invokestatic sun.reflect.annotation.TypeAnnotationParser.parseTypeAnnotations:([BLjdk/internal/reflect/ConstantPool;Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)[Lsun/reflect/annotation/TypeAnnotation;
astore 6
start local 6 3: new java.util.ArrayList
dup
aload 6
arraylength
invokespecial java.util.ArrayList.<init>:(I)V
astore 7
start local 7 4: aload 6
dup
astore 11
arraylength
istore 10
iconst_0
istore 9
goto 10
StackMap locals: byte[] jdk.internal.reflect.ConstantPool java.lang.reflect.AnnotatedElement java.lang.Class java.lang.reflect.Type sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget sun.reflect.annotation.TypeAnnotation[] java.util.List top int int sun.reflect.annotation.TypeAnnotation[]
StackMap stack:
5: aload 11
iload 9
aaload
astore 8
start local 8 6: aload 8
invokevirtual sun.reflect.annotation.TypeAnnotation.getTargetInfo:()Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTargetInfo;
astore 12
start local 12 7: aload 12
invokevirtual sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo.getTarget:()Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
aload 5
if_acmpne 9
8: aload 7
aload 8
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 12 end local 8 9: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
10: iload 9
iload 10
if_icmplt 5
11: aload 7
getstatic sun.reflect.annotation.TypeAnnotationParser.EMPTY_TYPE_ANNOTATION_ARRAY:[Lsun/reflect/annotation/TypeAnnotation;
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast sun.reflect.annotation.TypeAnnotation[]
astore 8
start local 8 12: aload 4
13: aload 4
getstatic sun.reflect.annotation.TypeAnnotation$LocationInfo.BASE_LOCATION:Lsun/reflect/annotation/TypeAnnotation$LocationInfo;
invokestatic sun.reflect.annotation.AnnotatedTypeFactory.nestingForType:(Ljava/lang/reflect/Type;Lsun/reflect/annotation/TypeAnnotation$LocationInfo;)Lsun/reflect/annotation/TypeAnnotation$LocationInfo;
14: aload 8
15: aload 8
16: aload 2
17: invokestatic sun.reflect.annotation.AnnotatedTypeFactory.buildAnnotatedType:(Ljava/lang/reflect/Type;Lsun/reflect/annotation/TypeAnnotation$LocationInfo;[Lsun/reflect/annotation/TypeAnnotation;[Lsun/reflect/annotation/TypeAnnotation;Ljava/lang/reflect/AnnotatedElement;)Ljava/lang/reflect/AnnotatedType;
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 rawAnnotations [B
0 18 1 cp Ljdk/internal/reflect/ConstantPool;
0 18 2 decl Ljava/lang/reflect/AnnotatedElement;
0 18 3 container Ljava/lang/Class<*>;
0 18 4 type Ljava/lang/reflect/Type;
0 18 5 filter Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
3 18 6 tas [Lsun/reflect/annotation/TypeAnnotation;
4 18 7 l Ljava/util/List<Lsun/reflect/annotation/TypeAnnotation;>;
6 9 8 t Lsun/reflect/annotation/TypeAnnotation;
7 9 12 ti Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTargetInfo;
12 18 8 typeAnnotations [Lsun/reflect/annotation/TypeAnnotation;
Signature: ([BLjdk/internal/reflect/ConstantPool;Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class<*>;Ljava/lang/reflect/Type;Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;)Ljava/lang/reflect/AnnotatedType;
MethodParameters:
Name Flags
rawAnnotations
cp
decl
container
type
filter
public static java.lang.reflect.AnnotatedType[] buildAnnotatedTypes(byte[], jdk.internal.reflect.ConstantPool, java.lang.reflect.AnnotatedElement, java.lang.Class<?>, java.lang.reflect.Type[], sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget);
descriptor: ([BLjdk/internal/reflect/ConstantPool;Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;[Ljava/lang/reflect/Type;Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;)[Ljava/lang/reflect/AnnotatedType;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=17, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 4
arraylength
istore 6
start local 6 1: iload 6
anewarray java.lang.reflect.AnnotatedType
astore 7
start local 7 2: aload 7
getstatic sun.reflect.annotation.AnnotatedTypeFactory.EMPTY_ANNOTATED_TYPE:Ljava/lang/reflect/AnnotatedType;
invokestatic java.util.Arrays.fill:([Ljava/lang/Object;Ljava/lang/Object;)V
3: iload 6
anewarray java.util.ArrayList
astore 8
start local 8 4: aload 0
5: aload 1
aload 2
aload 3
6: invokestatic sun.reflect.annotation.TypeAnnotationParser.parseTypeAnnotations:([BLjdk/internal/reflect/ConstantPool;Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)[Lsun/reflect/annotation/TypeAnnotation;
astore 9
start local 9 7: aload 9
dup
astore 13
arraylength
istore 12
iconst_0
istore 11
goto 18
StackMap locals: byte[] jdk.internal.reflect.ConstantPool java.lang.reflect.AnnotatedElement java.lang.Class java.lang.reflect.Type[] sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget int java.lang.reflect.AnnotatedType[] java.util.ArrayList[] sun.reflect.annotation.TypeAnnotation[] top int int sun.reflect.annotation.TypeAnnotation[]
StackMap stack:
8: aload 13
iload 11
aaload
astore 10
start local 10 9: aload 10
invokevirtual sun.reflect.annotation.TypeAnnotation.getTargetInfo:()Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTargetInfo;
astore 14
start local 14 10: aload 14
invokevirtual sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo.getTarget:()Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
aload 5
if_acmpne 17
11: aload 14
invokevirtual sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo.getCount:()I
istore 15
start local 15 12: aload 8
iload 15
aaload
ifnonnull 15
13: new java.util.ArrayList
dup
aload 9
arraylength
invokespecial java.util.ArrayList.<init>:(I)V
astore 16
start local 16 14: aload 8
iload 15
aload 16
aastore
end local 16 15: StackMap locals: byte[] jdk.internal.reflect.ConstantPool java.lang.reflect.AnnotatedElement java.lang.Class java.lang.reflect.Type[] sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget int java.lang.reflect.AnnotatedType[] java.util.ArrayList[] sun.reflect.annotation.TypeAnnotation[] sun.reflect.annotation.TypeAnnotation int int sun.reflect.annotation.TypeAnnotation[] sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo int
StackMap stack:
aload 8
iload 15
aaload
astore 16
start local 16 16: aload 16
aload 10
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 16 end local 15 end local 14 end local 10 17: StackMap locals: byte[] jdk.internal.reflect.ConstantPool java.lang.reflect.AnnotatedElement java.lang.Class java.lang.reflect.Type[] sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget int java.lang.reflect.AnnotatedType[] java.util.ArrayList[] sun.reflect.annotation.TypeAnnotation[] top int int sun.reflect.annotation.TypeAnnotation[]
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
18: iload 11
iload 12
if_icmplt 8
19: iconst_0
istore 10
start local 10 20: aload 2
instanceof java.lang.reflect.Constructor
ifeq 27
21: aload 2
checkcast java.lang.reflect.Constructor
astore 11
start local 11 22: aload 11
invokevirtual java.lang.reflect.Constructor.getDeclaringClass:()Ljava/lang/Class;
astore 12
start local 12 23: aload 12
invokevirtual java.lang.Class.isEnum:()Z
ifne 27
24: aload 12
invokevirtual java.lang.Class.isMemberClass:()Z
ifeq 27
25: aload 12
invokevirtual java.lang.Class.getModifiers:()I
bipush 8
iand
ifne 27
26: iconst_1
istore 10
end local 12 end local 11 27: StackMap locals: byte[] jdk.internal.reflect.ConstantPool java.lang.reflect.AnnotatedElement java.lang.Class java.lang.reflect.Type[] sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget int java.lang.reflect.AnnotatedType[] java.util.ArrayList[] sun.reflect.annotation.TypeAnnotation[] int
StackMap stack:
iconst_0
istore 11
start local 11 28: goto 48
29: StackMap locals: int
StackMap stack:
iload 10
ifeq 35
30: iload 11
ifne 31
aconst_null
goto 32
StackMap locals:
StackMap stack:
31: aload 8
iload 11
iconst_1
isub
aaload
StackMap locals:
StackMap stack: java.util.ArrayList
32: astore 13
start local 13 33: aload 13
astore 12
end local 13 start local 12 34: goto 37
end local 12 35: StackMap locals:
StackMap stack:
aload 8
iload 11
aaload
astore 13
start local 13 36: aload 13
astore 12
end local 13 start local 12 37: StackMap locals: java.util.ArrayList
StackMap stack:
aload 12
ifnull 40
38: aload 12
aload 12
invokevirtual java.util.ArrayList.size:()I
anewarray sun.reflect.annotation.TypeAnnotation
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast sun.reflect.annotation.TypeAnnotation[]
astore 13
start local 13 39: goto 41
end local 13 40: StackMap locals:
StackMap stack:
getstatic sun.reflect.annotation.TypeAnnotationParser.EMPTY_TYPE_ANNOTATION_ARRAY:[Lsun/reflect/annotation/TypeAnnotation;
astore 13
start local 13 41: StackMap locals: sun.reflect.annotation.TypeAnnotation[]
StackMap stack:
aload 7
iload 11
aload 4
iload 11
aaload
42: aload 4
iload 11
aaload
getstatic sun.reflect.annotation.TypeAnnotation$LocationInfo.BASE_LOCATION:Lsun/reflect/annotation/TypeAnnotation$LocationInfo;
invokestatic sun.reflect.annotation.AnnotatedTypeFactory.nestingForType:(Ljava/lang/reflect/Type;Lsun/reflect/annotation/TypeAnnotation$LocationInfo;)Lsun/reflect/annotation/TypeAnnotation$LocationInfo;
43: aload 13
44: aload 13
45: aload 2
46: invokestatic sun.reflect.annotation.AnnotatedTypeFactory.buildAnnotatedType:(Ljava/lang/reflect/Type;Lsun/reflect/annotation/TypeAnnotation$LocationInfo;[Lsun/reflect/annotation/TypeAnnotation;[Lsun/reflect/annotation/TypeAnnotation;Ljava/lang/reflect/AnnotatedElement;)Ljava/lang/reflect/AnnotatedType;
aastore
end local 13 end local 12 47: iinc 11 1
StackMap locals:
StackMap stack:
48: iload 11
iload 6
if_icmplt 29
end local 11 49: aload 7
areturn
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 50 0 rawAnnotations [B
0 50 1 cp Ljdk/internal/reflect/ConstantPool;
0 50 2 decl Ljava/lang/reflect/AnnotatedElement;
0 50 3 container Ljava/lang/Class<*>;
0 50 4 types [Ljava/lang/reflect/Type;
0 50 5 filter Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
1 50 6 size I
2 50 7 result [Ljava/lang/reflect/AnnotatedType;
4 50 8 l [Ljava/util/ArrayList;
7 50 9 tas [Lsun/reflect/annotation/TypeAnnotation;
9 17 10 t Lsun/reflect/annotation/TypeAnnotation;
10 17 14 ti Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTargetInfo;
12 17 15 pos I
14 15 16 tmp Ljava/util/ArrayList<Lsun/reflect/annotation/TypeAnnotation;>;
16 17 16 tmp Ljava/util/ArrayList<Lsun/reflect/annotation/TypeAnnotation;>;
20 50 10 offset Z
22 27 11 ctor Ljava/lang/reflect/Constructor<*>;
23 27 12 declaringClass Ljava/lang/Class<*>;
28 49 11 i I
34 35 12 list Ljava/util/ArrayList<Lsun/reflect/annotation/TypeAnnotation;>;
37 47 12 list Ljava/util/ArrayList<Lsun/reflect/annotation/TypeAnnotation;>;
33 34 13 tmp Ljava/util/ArrayList<Lsun/reflect/annotation/TypeAnnotation;>;
36 37 13 tmp Ljava/util/ArrayList<Lsun/reflect/annotation/TypeAnnotation;>;
39 40 13 typeAnnotations [Lsun/reflect/annotation/TypeAnnotation;
41 47 13 typeAnnotations [Lsun/reflect/annotation/TypeAnnotation;
Signature: ([BLjdk/internal/reflect/ConstantPool;Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class<*>;[Ljava/lang/reflect/Type;Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;)[Ljava/lang/reflect/AnnotatedType;
MethodParameters:
Name Flags
rawAnnotations
cp
decl
container
types
filter
public static java.lang.reflect.AnnotatedType buildAnnotatedSuperclass(byte[], jdk.internal.reflect.ConstantPool, java.lang.Class<?>);
descriptor: ([BLjdk/internal/reflect/ConstantPool;Ljava/lang/Class;)Ljava/lang/reflect/AnnotatedType;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual java.lang.Class.getGenericSuperclass:()Ljava/lang/reflect/Type;
astore 3
start local 3 1: aload 3
ifnonnull 3
2: getstatic sun.reflect.annotation.AnnotatedTypeFactory.EMPTY_ANNOTATED_TYPE:Ljava/lang/reflect/AnnotatedType;
areturn
3: StackMap locals: java.lang.reflect.Type
StackMap stack:
aload 0
4: aload 1
5: aload 2
6: aload 2
7: aload 3
8: getstatic sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget.CLASS_EXTENDS:Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
9: invokestatic sun.reflect.annotation.TypeAnnotationParser.buildAnnotatedType:([BLjdk/internal/reflect/ConstantPool;Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;Ljava/lang/reflect/Type;Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;)Ljava/lang/reflect/AnnotatedType;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 rawAnnotations [B
0 10 1 cp Ljdk/internal/reflect/ConstantPool;
0 10 2 decl Ljava/lang/Class<*>;
1 10 3 supertype Ljava/lang/reflect/Type;
Signature: ([BLjdk/internal/reflect/ConstantPool;Ljava/lang/Class<*>;)Ljava/lang/reflect/AnnotatedType;
MethodParameters:
Name Flags
rawAnnotations
cp
decl
public static java.lang.reflect.AnnotatedType[] buildAnnotatedInterfaces(byte[], jdk.internal.reflect.ConstantPool, java.lang.Class<?>);
descriptor: ([BLjdk/internal/reflect/ConstantPool;Ljava/lang/Class;)[Ljava/lang/reflect/AnnotatedType;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ldc Ljava/lang/Object;
if_acmpeq 4
1: aload 2
invokevirtual java.lang.Class.isArray:()Z
ifne 4
2: aload 2
invokevirtual java.lang.Class.isPrimitive:()Z
ifne 4
3: aload 2
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpne 5
4: StackMap locals:
StackMap stack:
getstatic sun.reflect.annotation.AnnotatedTypeFactory.EMPTY_ANNOTATED_TYPE_ARRAY:[Ljava/lang/reflect/AnnotatedType;
areturn
5: StackMap locals:
StackMap stack:
aload 0
6: aload 1
7: aload 2
8: aload 2
9: aload 2
invokevirtual java.lang.Class.getGenericInterfaces:()[Ljava/lang/reflect/Type;
10: getstatic sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget.CLASS_IMPLEMENTS:Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
11: invokestatic sun.reflect.annotation.TypeAnnotationParser.buildAnnotatedTypes:([BLjdk/internal/reflect/ConstantPool;Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;[Ljava/lang/reflect/Type;Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;)[Ljava/lang/reflect/AnnotatedType;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 rawAnnotations [B
0 12 1 cp Ljdk/internal/reflect/ConstantPool;
0 12 2 decl Ljava/lang/Class<*>;
Signature: ([BLjdk/internal/reflect/ConstantPool;Ljava/lang/Class<*>;)[Ljava/lang/reflect/AnnotatedType;
MethodParameters:
Name Flags
rawAnnotations
cp
decl
public static <D extends java.lang.reflect.GenericDeclaration> java.lang.annotation.Annotation[] parseTypeVariableAnnotations(D, int);
descriptor: (Ljava/lang/reflect/GenericDeclaration;I)[Ljava/lang/annotation/Annotation;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: aload 0
instanceof java.lang.Class
ifeq 4
1: aload 0
checkcast java.lang.Class
astore 2
start local 2 2: getstatic sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget.CLASS_TYPE_PARAMETER:Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
astore 3
start local 3 3: goto 9
end local 3 end local 2 StackMap locals:
StackMap stack:
4: aload 0
instanceof java.lang.reflect.Executable
ifeq 8
5: aload 0
checkcast java.lang.reflect.Executable
astore 2
start local 2 6: getstatic sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget.METHOD_TYPE_PARAMETER:Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
astore 3
start local 3 7: goto 9
end local 3 end local 2 8: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Unknown GenericDeclaration "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "\nthis should not happen."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
start local 2 start local 3 9: StackMap locals: java.lang.reflect.AnnotatedElement sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget
StackMap stack:
aload 2
invokestatic sun.reflect.annotation.TypeAnnotationParser.parseAllTypeAnnotations:(Ljava/lang/reflect/AnnotatedElement;)[Lsun/reflect/annotation/TypeAnnotation;
10: aload 3
11: invokestatic sun.reflect.annotation.TypeAnnotation.filter:([Lsun/reflect/annotation/TypeAnnotation;Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;)Ljava/util/List;
astore 4
start local 4 12: new java.util.ArrayList
dup
aload 4
invokeinterface java.util.List.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 5
start local 5 13: aload 4
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 17
StackMap locals: java.lang.reflect.GenericDeclaration int java.lang.reflect.AnnotatedElement sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget java.util.List java.util.List top java.util.Iterator
StackMap stack:
14: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.reflect.annotation.TypeAnnotation
astore 6
start local 6 15: aload 6
invokevirtual sun.reflect.annotation.TypeAnnotation.getTargetInfo:()Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTargetInfo;
invokevirtual sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo.getCount:()I
iload 1
if_icmpne 17
16: aload 5
aload 6
invokevirtual sun.reflect.annotation.TypeAnnotation.getAnnotation:()Ljava/lang/annotation/Annotation;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 6 17: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 14
18: aload 5
iconst_0
anewarray java.lang.annotation.Annotation
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.annotation.Annotation[]
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 genericDecl TD;
0 19 1 typeVarIndex I
2 4 2 decl Ljava/lang/reflect/AnnotatedElement;
6 8 2 decl Ljava/lang/reflect/AnnotatedElement;
9 19 2 decl Ljava/lang/reflect/AnnotatedElement;
3 4 3 predicate Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
7 8 3 predicate Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
9 19 3 predicate Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
12 19 4 typeVarAnnos Ljava/util/List<Lsun/reflect/annotation/TypeAnnotation;>;
13 19 5 res Ljava/util/List<Ljava/lang/annotation/Annotation;>;
15 17 6 t Lsun/reflect/annotation/TypeAnnotation;
Signature: <D::Ljava/lang/reflect/GenericDeclaration;>(TD;I)[Ljava/lang/annotation/Annotation;
MethodParameters:
Name Flags
genericDecl
typeVarIndex
public static <D extends java.lang.reflect.GenericDeclaration> java.lang.reflect.AnnotatedType[] parseAnnotatedBounds(java.lang.reflect.Type[], D, int);
descriptor: ([Ljava/lang/reflect/Type;Ljava/lang/reflect/GenericDeclaration;I)[Ljava/lang/reflect/AnnotatedType;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
getstatic sun.reflect.annotation.TypeAnnotation$LocationInfo.BASE_LOCATION:Lsun/reflect/annotation/TypeAnnotation$LocationInfo;
invokestatic sun.reflect.annotation.TypeAnnotationParser.parseAnnotatedBounds:([Ljava/lang/reflect/Type;Ljava/lang/reflect/GenericDeclaration;ILsun/reflect/annotation/TypeAnnotation$LocationInfo;)[Ljava/lang/reflect/AnnotatedType;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 bounds [Ljava/lang/reflect/Type;
0 1 1 decl TD;
0 1 2 typeVarIndex I
Signature: <D::Ljava/lang/reflect/GenericDeclaration;>([Ljava/lang/reflect/Type;TD;I)[Ljava/lang/reflect/AnnotatedType;
MethodParameters:
Name Flags
bounds
decl
typeVarIndex
private static <D extends java.lang.reflect.GenericDeclaration> java.lang.reflect.AnnotatedType[] parseAnnotatedBounds(java.lang.reflect.Type[], D, int, sun.reflect.annotation.TypeAnnotation$LocationInfo);
descriptor: ([Ljava/lang/reflect/Type;Ljava/lang/reflect/GenericDeclaration;ILsun/reflect/annotation/TypeAnnotation$LocationInfo;)[Ljava/lang/reflect/AnnotatedType;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokestatic sun.reflect.annotation.TypeAnnotationParser.fetchBounds:(Ljava/lang/reflect/GenericDeclaration;)Ljava/util/List;
astore 4
start local 4 1: aload 0
ifnull 31
2: iconst_0
istore 5
start local 5 3: aload 0
arraylength
anewarray java.lang.reflect.AnnotatedType
astore 6
start local 6 4: aload 0
arraylength
ifle 12
5: aload 0
iconst_0
aaload
astore 7
start local 7 6: aload 7
instanceof java.lang.Class
ifne 9
7: iconst_1
istore 5
8: goto 12
9: StackMap locals: java.lang.reflect.Type[] java.lang.reflect.GenericDeclaration int sun.reflect.annotation.TypeAnnotation$LocationInfo java.util.List int java.lang.reflect.AnnotatedType[] java.lang.reflect.Type
StackMap stack:
aload 7
checkcast java.lang.Class
astore 8
start local 8 10: aload 8
invokevirtual java.lang.Class.isInterface:()Z
ifeq 12
11: iconst_1
istore 5
end local 8 end local 7 12: StackMap locals:
StackMap stack:
iconst_0
istore 7
start local 7 13: goto 29
14: StackMap locals: int
StackMap stack:
new java.util.ArrayList
dup
aload 4
invokeinterface java.util.List.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 8
start local 8 15: aload 4
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 21
StackMap locals: java.lang.reflect.Type[] java.lang.reflect.GenericDeclaration int sun.reflect.annotation.TypeAnnotation$LocationInfo java.util.List int java.lang.reflect.AnnotatedType[] int java.util.List top java.util.Iterator
StackMap stack:
16: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.reflect.annotation.TypeAnnotation
astore 9
start local 9 17: aload 9
invokevirtual sun.reflect.annotation.TypeAnnotation.getTargetInfo:()Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTargetInfo;
astore 11
start local 11 18: aload 11
invokevirtual sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo.getSecondaryIndex:()I
iload 7
iload 5
iadd
if_icmpne 21
19: aload 11
invokevirtual sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo.getCount:()I
iload 2
if_icmpne 21
20: aload 8
aload 9
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 11 end local 9 21: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 16
22: aload 6
iload 7
aload 0
iload 7
aaload
23: aload 0
iload 7
aaload
aload 3
invokestatic sun.reflect.annotation.AnnotatedTypeFactory.nestingForType:(Ljava/lang/reflect/Type;Lsun/reflect/annotation/TypeAnnotation$LocationInfo;)Lsun/reflect/annotation/TypeAnnotation$LocationInfo;
24: aload 8
getstatic sun.reflect.annotation.TypeAnnotationParser.EMPTY_TYPE_ANNOTATION_ARRAY:[Lsun/reflect/annotation/TypeAnnotation;
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast sun.reflect.annotation.TypeAnnotation[]
25: aload 4
getstatic sun.reflect.annotation.TypeAnnotationParser.EMPTY_TYPE_ANNOTATION_ARRAY:[Lsun/reflect/annotation/TypeAnnotation;
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast sun.reflect.annotation.TypeAnnotation[]
26: aload 1
27: invokestatic sun.reflect.annotation.AnnotatedTypeFactory.buildAnnotatedType:(Ljava/lang/reflect/Type;Lsun/reflect/annotation/TypeAnnotation$LocationInfo;[Lsun/reflect/annotation/TypeAnnotation;[Lsun/reflect/annotation/TypeAnnotation;Ljava/lang/reflect/AnnotatedElement;)Ljava/lang/reflect/AnnotatedType;
aastore
end local 8 28: iinc 7 1
StackMap locals: java.lang.reflect.Type[] java.lang.reflect.GenericDeclaration int sun.reflect.annotation.TypeAnnotation$LocationInfo java.util.List int java.lang.reflect.AnnotatedType[] int
StackMap stack:
29: iload 7
aload 0
arraylength
if_icmplt 14
end local 7 30: aload 6
areturn
end local 6 end local 5 31: StackMap locals:
StackMap stack:
iconst_0
anewarray java.lang.reflect.AnnotatedType
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 bounds [Ljava/lang/reflect/Type;
0 32 1 decl TD;
0 32 2 typeVarIndex I
0 32 3 loc Lsun/reflect/annotation/TypeAnnotation$LocationInfo;
1 32 4 candidates Ljava/util/List<Lsun/reflect/annotation/TypeAnnotation;>;
3 31 5 startIndex I
4 31 6 res [Ljava/lang/reflect/AnnotatedType;
6 12 7 b0 Ljava/lang/reflect/Type;
10 12 8 c Ljava/lang/Class<*>;
13 30 7 i I
15 28 8 l Ljava/util/List<Lsun/reflect/annotation/TypeAnnotation;>;
17 21 9 t Lsun/reflect/annotation/TypeAnnotation;
18 21 11 tInfo Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTargetInfo;
Signature: <D::Ljava/lang/reflect/GenericDeclaration;>([Ljava/lang/reflect/Type;TD;ILsun/reflect/annotation/TypeAnnotation$LocationInfo;)[Ljava/lang/reflect/AnnotatedType;
MethodParameters:
Name Flags
bounds
decl
typeVarIndex
loc
private static <D extends java.lang.reflect.GenericDeclaration> java.util.List<sun.reflect.annotation.TypeAnnotation> fetchBounds(D);
descriptor: (Ljava/lang/reflect/GenericDeclaration;)Ljava/util/List;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
instanceof java.lang.Class
ifeq 4
1: getstatic sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget.CLASS_TYPE_PARAMETER_BOUND:Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
astore 2
start local 2 2: aload 0
checkcast java.lang.Class
astore 1
start local 1 3: goto 6
end local 2 end local 1 4: StackMap locals:
StackMap stack:
getstatic sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget.METHOD_TYPE_PARAMETER_BOUND:Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
astore 2
start local 2 5: aload 0
checkcast java.lang.reflect.Executable
astore 1
start local 1 6: StackMap locals: java.lang.reflect.AnnotatedElement sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget
StackMap stack:
aload 1
invokestatic sun.reflect.annotation.TypeAnnotationParser.parseAllTypeAnnotations:(Ljava/lang/reflect/AnnotatedElement;)[Lsun/reflect/annotation/TypeAnnotation;
aload 2
invokestatic sun.reflect.annotation.TypeAnnotation.filter:([Lsun/reflect/annotation/TypeAnnotation;Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;)Ljava/util/List;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 decl TD;
3 4 1 boundsDecl Ljava/lang/reflect/AnnotatedElement;
6 7 1 boundsDecl Ljava/lang/reflect/AnnotatedElement;
2 4 2 target Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
5 7 2 target Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
Signature: <D::Ljava/lang/reflect/GenericDeclaration;>(TD;)Ljava/util/List<Lsun/reflect/annotation/TypeAnnotation;>;
MethodParameters:
Name Flags
decl
static sun.reflect.annotation.TypeAnnotation[] parseAllTypeAnnotations(java.lang.reflect.AnnotatedElement);
descriptor: (Ljava/lang/reflect/AnnotatedElement;)[Lsun/reflect/annotation/TypeAnnotation;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: invokestatic jdk.internal.misc.SharedSecrets.getJavaLangAccess:()Ljdk/internal/misc/JavaLangAccess;
astore 3
start local 3 1: aload 0
instanceof java.lang.Class
ifeq 5
2: aload 0
checkcast java.lang.Class
astore 1
start local 1 3: aload 3
aload 1
invokeinterface jdk.internal.misc.JavaLangAccess.getRawClassTypeAnnotations:(Ljava/lang/Class;)[B
astore 2
start local 2 4: goto 10
end local 2 end local 1 StackMap locals: java.lang.reflect.AnnotatedElement top top jdk.internal.misc.JavaLangAccess
StackMap stack:
5: aload 0
instanceof java.lang.reflect.Executable
ifeq 9
6: aload 0
checkcast java.lang.reflect.Executable
invokevirtual java.lang.reflect.Executable.getDeclaringClass:()Ljava/lang/Class;
astore 1
start local 1 7: aload 3
aload 0
checkcast java.lang.reflect.Executable
invokeinterface jdk.internal.misc.JavaLangAccess.getRawExecutableTypeAnnotations:(Ljava/lang/reflect/Executable;)[B
astore 2
start local 2 8: goto 10
end local 2 end local 1 9: StackMap locals:
StackMap stack:
getstatic sun.reflect.annotation.TypeAnnotationParser.EMPTY_TYPE_ANNOTATION_ARRAY:[Lsun/reflect/annotation/TypeAnnotation;
areturn
start local 1 start local 2 10: StackMap locals: java.lang.reflect.AnnotatedElement java.lang.Class byte[] jdk.internal.misc.JavaLangAccess
StackMap stack:
aload 2
aload 3
aload 1
invokeinterface jdk.internal.misc.JavaLangAccess.getConstantPool:(Ljava/lang/Class;)Ljdk/internal/reflect/ConstantPool;
11: aload 0
aload 1
12: invokestatic sun.reflect.annotation.TypeAnnotationParser.parseTypeAnnotations:([BLjdk/internal/reflect/ConstantPool;Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)[Lsun/reflect/annotation/TypeAnnotation;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 decl Ljava/lang/reflect/AnnotatedElement;
3 5 1 container Ljava/lang/Class<*>;
7 9 1 container Ljava/lang/Class<*>;
10 13 1 container Ljava/lang/Class<*>;
4 5 2 rawBytes [B
8 9 2 rawBytes [B
10 13 2 rawBytes [B
1 13 3 javaLangAccess Ljdk/internal/misc/JavaLangAccess;
MethodParameters:
Name Flags
decl
private static sun.reflect.annotation.TypeAnnotation[] parseTypeAnnotations(byte[], jdk.internal.reflect.ConstantPool, java.lang.reflect.AnnotatedElement, java.lang.Class<?>);
descriptor: ([BLjdk/internal/reflect/ConstantPool;Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)[Lsun/reflect/annotation/TypeAnnotation;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
ifnonnull 2
1: getstatic sun.reflect.annotation.TypeAnnotationParser.EMPTY_TYPE_ANNOTATION_ARRAY:[Lsun/reflect/annotation/TypeAnnotation;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
astore 4
start local 4 3: aload 4
invokevirtual java.nio.ByteBuffer.getShort:()S
ldc 65535
iand
istore 5
start local 5 4: new java.util.ArrayList
dup
iload 5
invokespecial java.util.ArrayList.<init>:(I)V
astore 6
start local 6 5: iconst_0
istore 7
start local 7 6: goto 11
7: StackMap locals: byte[] jdk.internal.reflect.ConstantPool java.lang.reflect.AnnotatedElement java.lang.Class java.nio.ByteBuffer int java.util.List int
StackMap stack:
aload 4
aload 1
aload 2
aload 3
invokestatic sun.reflect.annotation.TypeAnnotationParser.parseTypeAnnotation:(Ljava/nio/ByteBuffer;Ljdk/internal/reflect/ConstantPool;Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Lsun/reflect/annotation/TypeAnnotation;
astore 8
start local 8 8: aload 8
ifnull 10
9: aload 6
aload 8
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 8 10: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
11: iload 7
iload 5
if_icmplt 7
end local 7 12: aload 6
getstatic sun.reflect.annotation.TypeAnnotationParser.EMPTY_TYPE_ANNOTATION_ARRAY:[Lsun/reflect/annotation/TypeAnnotation;
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast sun.reflect.annotation.TypeAnnotation[]
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 rawAnnotations [B
0 13 1 cp Ljdk/internal/reflect/ConstantPool;
0 13 2 baseDecl Ljava/lang/reflect/AnnotatedElement;
0 13 3 container Ljava/lang/Class<*>;
3 13 4 buf Ljava/nio/ByteBuffer;
4 13 5 annotationCount I
5 13 6 typeAnnotations Ljava/util/List<Lsun/reflect/annotation/TypeAnnotation;>;
6 12 7 i I
8 10 8 ta Lsun/reflect/annotation/TypeAnnotation;
Signature: ([BLjdk/internal/reflect/ConstantPool;Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class<*>;)[Lsun/reflect/annotation/TypeAnnotation;
MethodParameters:
Name Flags
rawAnnotations
cp
baseDecl
container
static java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>, java.lang.annotation.Annotation> mapTypeAnnotations(sun.reflect.annotation.TypeAnnotation[]);
descriptor: ([Lsun/reflect/annotation/TypeAnnotation;)Ljava/util/Map;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=9, args_size=1
start local 0 0: new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
1: astore 1
start local 1 2: aload 0
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 12
StackMap locals: sun.reflect.annotation.TypeAnnotation[] java.util.Map top int int sun.reflect.annotation.TypeAnnotation[]
StackMap stack:
3: aload 5
iload 3
aaload
astore 2
start local 2 4: aload 2
invokevirtual sun.reflect.annotation.TypeAnnotation.getAnnotation:()Ljava/lang/annotation/Annotation;
astore 6
start local 6 5: aload 6
ifnull 11
6: aload 6
invokeinterface java.lang.annotation.Annotation.annotationType:()Ljava/lang/Class;
astore 7
start local 7 7: aload 7
invokestatic sun.reflect.annotation.AnnotationType.getInstance:(Ljava/lang/Class;)Lsun/reflect/annotation/AnnotationType;
astore 8
start local 8 8: aload 8
invokevirtual sun.reflect.annotation.AnnotationType.retention:()Ljava/lang/annotation/RetentionPolicy;
getstatic java.lang.annotation.RetentionPolicy.RUNTIME:Ljava/lang/annotation/RetentionPolicy;
if_acmpne 11
9: aload 1
aload 7
aload 6
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
ifnull 11
10: new java.lang.annotation.AnnotationFormatError
dup
new java.lang.StringBuilder
dup
ldc "Duplicate annotation for class: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.annotation.AnnotationFormatError.<init>:(Ljava/lang/String;)V
athrow
end local 8 end local 7 end local 6 end local 2 11: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
12: iload 3
iload 4
if_icmplt 3
13: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 typeAnnos [Lsun/reflect/annotation/TypeAnnotation;
2 14 1 result Ljava/util/Map<Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;Ljava/lang/annotation/Annotation;>;
4 11 2 t Lsun/reflect/annotation/TypeAnnotation;
5 11 6 a Ljava/lang/annotation/Annotation;
7 11 7 klass Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
8 11 8 type Lsun/reflect/annotation/AnnotationType;
Signature: ([Lsun/reflect/annotation/TypeAnnotation;)Ljava/util/Map<Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;Ljava/lang/annotation/Annotation;>;
MethodParameters:
Name Flags
typeAnnos
private static sun.reflect.annotation.TypeAnnotation parseTypeAnnotation(java.nio.ByteBuffer, jdk.internal.reflect.ConstantPool, java.lang.reflect.AnnotatedElement, java.lang.Class<?>);
descriptor: (Ljava/nio/ByteBuffer;Ljdk/internal/reflect/ConstantPool;Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Lsun/reflect/annotation/TypeAnnotation;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokestatic sun.reflect.annotation.TypeAnnotationParser.parseTargetInfo:(Ljava/nio/ByteBuffer;)Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTargetInfo;
astore 4
start local 4 1: aload 0
invokestatic sun.reflect.annotation.TypeAnnotation$LocationInfo.parseLocationInfo:(Ljava/nio/ByteBuffer;)Lsun/reflect/annotation/TypeAnnotation$LocationInfo;
astore 5
start local 5 2: aload 0
aload 1
aload 3
iconst_0
invokestatic sun.reflect.annotation.AnnotationParser.parseAnnotation:(Ljava/nio/ByteBuffer;Ljdk/internal/reflect/ConstantPool;Ljava/lang/Class;Z)Ljava/lang/annotation/Annotation;
astore 6
start local 6 3: aload 4
ifnonnull 5
4: aconst_null
areturn
5: StackMap locals: sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo sun.reflect.annotation.TypeAnnotation$LocationInfo java.lang.annotation.Annotation
StackMap stack:
new sun.reflect.annotation.TypeAnnotation
dup
aload 4
aload 5
aload 6
aload 2
invokespecial sun.reflect.annotation.TypeAnnotation.<init>:(Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTargetInfo;Lsun/reflect/annotation/TypeAnnotation$LocationInfo;Ljava/lang/annotation/Annotation;Ljava/lang/reflect/AnnotatedElement;)V
6: areturn
end local 6 end local 5 end local 4 7: StackMap locals: java.nio.ByteBuffer jdk.internal.reflect.ConstantPool java.lang.reflect.AnnotatedElement java.lang.Class
StackMap stack: java.lang.RuntimeException
astore 4
start local 4 8: new java.lang.annotation.AnnotationFormatError
dup
aload 4
invokespecial java.lang.annotation.AnnotationFormatError.<init>:(Ljava/lang/Throwable;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 buf Ljava/nio/ByteBuffer;
0 9 1 cp Ljdk/internal/reflect/ConstantPool;
0 9 2 baseDecl Ljava/lang/reflect/AnnotatedElement;
0 9 3 container Ljava/lang/Class<*>;
1 7 4 ti Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTargetInfo;
2 7 5 locationInfo Lsun/reflect/annotation/TypeAnnotation$LocationInfo;
3 7 6 a Ljava/lang/annotation/Annotation;
8 9 4 e Ljava/lang/RuntimeException;
Exception table:
from to target type
0 4 7 Class java.lang.IllegalArgumentException
5 6 7 Class java.lang.IllegalArgumentException
0 4 7 Class java.nio.BufferUnderflowException
5 6 7 Class java.nio.BufferUnderflowException
Signature: (Ljava/nio/ByteBuffer;Ljdk/internal/reflect/ConstantPool;Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class<*>;)Lsun/reflect/annotation/TypeAnnotation;
MethodParameters:
Name Flags
buf
cp
baseDecl
container
private static sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo parseTargetInfo(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTargetInfo;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 1
start local 1 1: iload 1
lookupswitch { // 22
0: 2
1: 2
16: 12
17: 20
18: 21
19: 22
20: 23
21: 24
22: 25
23: 29
64: 30
65: 30
66: 39
67: 41
68: 41
69: 41
70: 41
71: 43
72: 43
73: 43
74: 43
75: 43
default: 46
}
2: StackMap locals: int
StackMap stack:
aload 0
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 2
start local 2 3: iload 1
ifne 8
4: new sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo
dup
getstatic sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget.CLASS_TYPE_PARAMETER:Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
5: iload 2
6: invokespecial sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo.<init>:(Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;I)V
astore 3
start local 3 7: goto 11
end local 3 8: StackMap locals: int
StackMap stack:
new sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo
dup
getstatic sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget.METHOD_TYPE_PARAMETER:Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
9: iload 2
10: invokespecial sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo.<init>:(Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;I)V
astore 3
start local 3 11: StackMap locals: sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo
StackMap stack:
aload 3
areturn
end local 3 end local 2 12: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.nio.ByteBuffer.getShort:()S
istore 2
start local 2 13: iload 2
iconst_m1
if_icmpne 15
14: new sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo
dup
getstatic sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget.CLASS_EXTENDS:Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
invokespecial sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo.<init>:(Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;)V
areturn
15: StackMap locals: int
StackMap stack:
iload 2
iflt 46
16: new sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo
dup
getstatic sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget.CLASS_IMPLEMENTS:Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
17: iload 2
18: invokespecial sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo.<init>:(Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;I)V
astore 3
start local 3 19: aload 3
areturn
end local 3 end local 2 20: StackMap locals:
StackMap stack:
getstatic sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget.CLASS_TYPE_PARAMETER_BOUND:Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
aload 0
invokestatic sun.reflect.annotation.TypeAnnotationParser.parse2ByteTarget:(Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;Ljava/nio/ByteBuffer;)Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTargetInfo;
areturn
21: StackMap locals:
StackMap stack:
getstatic sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget.METHOD_TYPE_PARAMETER_BOUND:Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
aload 0
invokestatic sun.reflect.annotation.TypeAnnotationParser.parse2ByteTarget:(Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;Ljava/nio/ByteBuffer;)Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTargetInfo;
areturn
22: StackMap locals:
StackMap stack:
new sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo
dup
getstatic sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget.FIELD:Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
invokespecial sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo.<init>:(Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;)V
areturn
23: StackMap locals:
StackMap stack:
new sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo
dup
getstatic sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget.METHOD_RETURN:Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
invokespecial sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo.<init>:(Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;)V
areturn
24: StackMap locals:
StackMap stack:
new sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo
dup
getstatic sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget.METHOD_RECEIVER:Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
invokespecial sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo.<init>:(Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;)V
areturn
25: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 2
start local 2 26: new sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo
dup
getstatic sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget.METHOD_FORMAL_PARAMETER:Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
27: iload 2
28: invokespecial sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo.<init>:(Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;I)V
areturn
end local 2 29: StackMap locals:
StackMap stack:
getstatic sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget.THROWS:Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
aload 0
invokestatic sun.reflect.annotation.TypeAnnotationParser.parseShortTarget:(Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;Ljava/nio/ByteBuffer;)Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTargetInfo;
areturn
30: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.nio.ByteBuffer.getShort:()S
istore 2
start local 2 31: iconst_0
istore 3
start local 3 32: goto 37
33: StackMap locals: int int
StackMap stack:
aload 0
invokevirtual java.nio.ByteBuffer.getShort:()S
pop
34: aload 0
invokevirtual java.nio.ByteBuffer.getShort:()S
pop
35: aload 0
invokevirtual java.nio.ByteBuffer.getShort:()S
pop
36: iinc 3 1
StackMap locals:
StackMap stack:
37: iload 3
iload 2
if_icmplt 33
end local 3 38: aconst_null
areturn
end local 2 39: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.nio.ByteBuffer.get:()B
pop
40: aconst_null
areturn
41: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.nio.ByteBuffer.getShort:()S
pop
42: aconst_null
areturn
43: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.nio.ByteBuffer.getShort:()S
pop
44: aload 0
invokevirtual java.nio.ByteBuffer.get:()B
pop
45: aconst_null
areturn
46: StackMap locals:
StackMap stack:
new java.lang.annotation.AnnotationFormatError
dup
ldc "Could not parse bytes for type annotations"
invokespecial java.lang.annotation.AnnotationFormatError.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 47 0 buf Ljava/nio/ByteBuffer;
1 47 1 posCode I
3 12 2 index I
7 8 3 res Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTargetInfo;
11 12 3 res Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTargetInfo;
13 20 2 index S
19 20 3 res Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTargetInfo;
26 29 2 index I
31 39 2 length S
32 38 3 i I
MethodParameters:
Name Flags
buf
private static sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo parseShortTarget(sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget, java.nio.ByteBuffer);
descriptor: (Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;Ljava/nio/ByteBuffer;)Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTargetInfo;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.nio.ByteBuffer.getShort:()S
ldc 65535
iand
istore 2
start local 2 1: new sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo
dup
aload 0
iload 2
invokespecial sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo.<init>:(Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;I)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 target Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
0 2 1 buf Ljava/nio/ByteBuffer;
1 2 2 index I
MethodParameters:
Name Flags
target
buf
private static sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo parse2ByteTarget(sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget, java.nio.ByteBuffer);
descriptor: (Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;Ljava/nio/ByteBuffer;)Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTargetInfo;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 2
start local 2 1: aload 1
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 3
start local 3 2: new sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo
dup
aload 0
3: iload 2
4: iload 3
5: invokespecial sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo.<init>:(Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;II)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 target Lsun/reflect/annotation/TypeAnnotation$TypeAnnotationTarget;
0 6 1 buf Ljava/nio/ByteBuffer;
1 6 2 count I
2 6 3 secondaryIndex I
MethodParameters:
Name Flags
target
buf
}
SourceFile: "TypeAnnotationParser.java"
InnerClasses:
public final LocationInfo = sun.reflect.annotation.TypeAnnotation$LocationInfo of sun.reflect.annotation.TypeAnnotation
public final TypeAnnotationTarget = sun.reflect.annotation.TypeAnnotation$TypeAnnotationTarget of sun.reflect.annotation.TypeAnnotation
public final TypeAnnotationTargetInfo = sun.reflect.annotation.TypeAnnotation$TypeAnnotationTargetInfo of sun.reflect.annotation.TypeAnnotation