final class java.lang.invoke.BoundMethodHandle$SpeciesData extends java.lang.invoke.ClassSpecializer<java.lang.invoke.BoundMethodHandle, java.lang.String, java.lang.invoke.BoundMethodHandle$SpeciesData>.SpeciesData
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: java.lang.invoke.BoundMethodHandle$SpeciesData
super_class: java.lang.invoke.ClassSpecializer$SpeciesData
{
private final java.lang.invoke.BoundMethodHandle$SpeciesData[] extensions;
descriptor: [Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
RuntimeVisibleAnnotations:
jdk.internal.vm.annotation.Stable()
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Ljava/lang/invoke/BoundMethodHandle;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic java.lang.invoke.BoundMethodHandle$SpeciesData.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.lang.invoke.BoundMethodHandle$Specializer, java.lang.String);
descriptor: (Ljava/lang/invoke/BoundMethodHandle$Specializer;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
aload 2
invokespecial java.lang.invoke.ClassSpecializer$SpeciesData.<init>:(Ljava/lang/invoke/ClassSpecializer;Ljava/lang/Object;)V
1: aload 0
getstatic java.lang.invoke.LambdaForm$BasicType.ARG_TYPE_LIMIT:I
anewarray java.lang.invoke.BoundMethodHandle$SpeciesData
putfield java.lang.invoke.BoundMethodHandle$SpeciesData.extensions:[Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
0 3 1 outer Ljava/lang/invoke/BoundMethodHandle$Specializer;
0 3 2 key Ljava/lang/String;
MethodParameters:
Name Flags
outer
key
protected java.lang.String deriveClassName();
descriptor: ()Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.invoke.BoundMethodHandle$SpeciesData.deriveTypeString:()Ljava/lang/String;
astore 1
start local 1 1: aload 1
invokevirtual java.lang.String.isEmpty:()Z
ifeq 3
2: ldc Ljava/lang/invoke/SimpleMethodHandle;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
areturn
3: StackMap locals: java.lang.String
StackMap stack:
new java.lang.StringBuilder
dup
ldc Ljava/lang/invoke/BoundMethodHandle;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "$Species_"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
1 4 1 typeString Ljava/lang/String;
protected java.util.List<java.lang.Class<?>> deriveFieldTypes(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/List;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
aload 1
invokevirtual java.lang.String.length:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 5
3: StackMap locals: java.util.ArrayList int
StackMap stack:
aload 2
aload 1
iload 3
invokevirtual java.lang.String.charAt:(I)C
invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(C)Ljava/lang/invoke/LambdaForm$BasicType;
invokevirtual java.lang.invoke.LambdaForm$BasicType.basicTypeClass:()Ljava/lang/Class;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
4: iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
aload 1
invokevirtual java.lang.String.length:()I
if_icmplt 3
end local 3 6: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
0 7 1 key Ljava/lang/String;
1 7 2 types Ljava/util/ArrayList<Ljava/lang/Class<*>;>;
2 6 3 i I
Signature: (Ljava/lang/String;)Ljava/util/List<Ljava/lang/Class<*>;>;
MethodParameters:
Name Flags
key
protected java.lang.String deriveTypeString();
descriptor: ()Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.invoke.BoundMethodHandle$SpeciesData.key:()Ljava/lang/Object;
checkcast java.lang.String
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
protected java.lang.invoke.MethodHandle deriveTransformHelper(java.lang.invoke.MemberName, int);
descriptor: (Ljava/lang/invoke/MemberName;I)Ljava/lang/invoke/MethodHandle;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 2
getstatic java.lang.invoke.BoundMethodHandle$Specializer.TN_COPY_NO_EXTEND:I
if_icmpne 2
1: aload 0
invokevirtual java.lang.invoke.BoundMethodHandle$SpeciesData.factory:()Ljava/lang/invoke/MethodHandle;
areturn
2: StackMap locals:
StackMap stack:
iload 2
getstatic java.lang.invoke.LambdaForm$BasicType.ARG_TYPE_LIMIT:I
if_icmpge 4
3: aload 0
iload 2
i2b
invokevirtual java.lang.invoke.BoundMethodHandle$SpeciesData.extendWith:(B)Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
invokevirtual java.lang.invoke.BoundMethodHandle$SpeciesData.factory:()Ljava/lang/invoke/MethodHandle;
areturn
4: StackMap locals:
StackMap stack:
ldc "bad transform"
invokestatic java.lang.invoke.MethodHandleStatics.newInternalError:(Ljava/lang/String;)Ljava/lang/InternalError;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
0 5 1 transform Ljava/lang/invoke/MemberName;
0 5 2 whichtm I
MethodParameters:
Name Flags
transform
whichtm
protected <X> java.util.List<X> deriveTransformHelperArguments(java.lang.invoke.MemberName, int, java.util.List<X>, java.util.List<X>);
descriptor: (Ljava/lang/invoke/MemberName;ILjava/util/List;Ljava/util/List;)Ljava/util/List;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic java.lang.invoke.BoundMethodHandle$SpeciesData.$assertionsDisabled:Z
ifne 1
aload 0
aload 1
iload 2
aload 3
aload 4
invokevirtual java.lang.invoke.BoundMethodHandle$SpeciesData.verifyTHAargs:(Ljava/lang/invoke/MemberName;ILjava/util/List;Ljava/util/List;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 3
iconst_2
aload 4
invokeinterface java.util.List.addAll:(ILjava/util/Collection;)Z
pop
2: aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
0 3 1 transform Ljava/lang/invoke/MemberName;
0 3 2 whichtm I
0 3 3 args Ljava/util/List<TX;>;
0 3 4 fields Ljava/util/List<TX;>;
Signature: <X:Ljava/lang/Object;>(Ljava/lang/invoke/MemberName;ILjava/util/List<TX;>;Ljava/util/List<TX;>;)Ljava/util/List<TX;>;
MethodParameters:
Name Flags
transform
whichtm
args
fields
private boolean verifyTHAargs(java.lang.invoke.MemberName, int, java.util.List<?>, java.util.List<?>);
descriptor: (Ljava/lang/invoke/MemberName;ILjava/util/List;Ljava/util/List;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic java.lang.invoke.BoundMethodHandle$SpeciesData.$assertionsDisabled:Z
ifne 1
aload 1
getstatic java.lang.invoke.BoundMethodHandle$Specializer.BMH_TRANSFORMS:Ljava/util/List;
iload 2
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
if_acmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic java.lang.invoke.BoundMethodHandle$SpeciesData.$assertionsDisabled:Z
ifne 2
aload 3
invokeinterface java.util.List.size:()I
aload 1
invokevirtual java.lang.invoke.MemberName.getMethodType:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
if_icmpeq 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
getstatic java.lang.invoke.BoundMethodHandle$SpeciesData.$assertionsDisabled:Z
ifne 3
aload 4
invokeinterface java.util.List.size:()I
aload 0
invokevirtual java.lang.invoke.BoundMethodHandle$SpeciesData.fieldCount:()I
if_icmpeq 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
iload 2
getstatic java.lang.invoke.BoundMethodHandle$Specializer.TN_COPY_NO_EXTEND:I
if_icmpne 5
4: getstatic java.lang.invoke.BoundMethodHandle$SpeciesData.$assertionsDisabled:Z
ifne 10
aload 1
invokevirtual java.lang.invoke.MemberName.getMethodType:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iconst_2
if_icmpeq 10
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
iload 2
getstatic java.lang.invoke.LambdaForm$BasicType.ARG_TYPE_LIMIT:I
if_icmpge 9
6: getstatic java.lang.invoke.BoundMethodHandle$SpeciesData.$assertionsDisabled:Z
ifne 7
aload 1
invokevirtual java.lang.invoke.MemberName.getMethodType:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iconst_3
if_icmpeq 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
iload 2
i2b
invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(B)Ljava/lang/invoke/LambdaForm$BasicType;
astore 5
start local 5 8: getstatic java.lang.invoke.BoundMethodHandle$SpeciesData.$assertionsDisabled:Z
ifne 10
aload 1
invokevirtual java.lang.invoke.MemberName.getParameterTypes:()[Ljava/lang/Class;
iconst_2
aaload
aload 5
invokevirtual java.lang.invoke.LambdaForm$BasicType.basicTypeClass:()Ljava/lang/Class;
if_acmpeq 10
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 5 9: StackMap locals:
StackMap stack:
iconst_0
ireturn
10: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
0 11 1 transform Ljava/lang/invoke/MemberName;
0 11 2 whichtm I
0 11 3 args Ljava/util/List<*>;
0 11 4 fields Ljava/util/List<*>;
8 9 5 type Ljava/lang/invoke/LambdaForm$BasicType;
Signature: (Ljava/lang/invoke/MemberName;ILjava/util/List<*>;Ljava/util/List<*>;)Z
MethodParameters:
Name Flags
transform
whichtm
args
fields
java.lang.invoke.BoundMethodHandle$SpeciesData extendWith(byte);
descriptor: (B)Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
flags: (0x0000)
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield java.lang.invoke.BoundMethodHandle$SpeciesData.extensions:[Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
iload 1
aaload
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
areturn
2: StackMap locals: java.lang.invoke.BoundMethodHandle$SpeciesData
StackMap stack:
getstatic java.lang.invoke.BoundMethodHandle.SPECIALIZER:Ljava/lang/invoke/BoundMethodHandle$Specializer;
new java.lang.StringBuilder
dup
aload 0
invokevirtual java.lang.invoke.BoundMethodHandle$SpeciesData.key:()Ljava/lang/Object;
checkcast java.lang.String
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(B)Ljava/lang/invoke/LambdaForm$BasicType;
invokevirtual java.lang.invoke.LambdaForm$BasicType.basicTypeChar:()C
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.invoke.BoundMethodHandle$Specializer.findSpecies:(Ljava/lang/Object;)Ljava/lang/invoke/ClassSpecializer$SpeciesData;
checkcast java.lang.invoke.BoundMethodHandle$SpeciesData
astore 2
3: aload 0
getfield java.lang.invoke.BoundMethodHandle$SpeciesData.extensions:[Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
iload 1
aload 2
aastore
4: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
0 5 1 typeNum B
1 5 2 sd Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
MethodParameters:
Name Flags
typeNum
protected java.util.List deriveFieldTypes(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/util/List;
flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast java.lang.String
invokevirtual java.lang.invoke.BoundMethodHandle$SpeciesData.deriveFieldTypes:(Ljava/lang/String;)Ljava/util/List;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/invoke/ClassSpecializer<Ljava/lang/invoke/BoundMethodHandle;Ljava/lang/String;Ljava/lang/invoke/BoundMethodHandle$SpeciesData;>.SpeciesData;
SourceFile: "BoundMethodHandle.java"
NestHost: java.lang.invoke.BoundMethodHandle
InnerClasses:
final Specializer = java.lang.invoke.BoundMethodHandle$Specializer of java.lang.invoke.BoundMethodHandle
final SpeciesData = java.lang.invoke.BoundMethodHandle$SpeciesData of java.lang.invoke.BoundMethodHandle
public abstract SpeciesData = java.lang.invoke.ClassSpecializer$SpeciesData of java.lang.invoke.ClassSpecializer
final BasicType = java.lang.invoke.LambdaForm$BasicType of java.lang.invoke.LambdaForm