class jdk.dynalink.beans.OverloadedMethod
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.dynalink.beans.OverloadedMethod
super_class: java.lang.Object
{
private final java.util.Map<jdk.dynalink.beans.ClassString, java.lang.invoke.MethodHandle> argTypesToMethods;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljdk/dynalink/beans/ClassString;Ljava/lang/invoke/MethodHandle;>;
private final jdk.dynalink.beans.OverloadedDynamicMethod parent;
descriptor: Ljdk/dynalink/beans/OverloadedDynamicMethod;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.ClassLoader callSiteClassLoader;
descriptor: Ljava/lang/ClassLoader;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.invoke.MethodType callSiteType;
descriptor: Ljava/lang/invoke/MethodType;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.invoke.MethodHandle invoker;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.dynalink.linker.LinkerServices linkerServices;
descriptor: Ljdk/dynalink/linker/LinkerServices;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.dynalink.SecureLookupSupplier lookupSupplier;
descriptor: Ljdk/dynalink/SecureLookupSupplier;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.ArrayList<java.lang.invoke.MethodHandle> fixArgMethods;
descriptor: Ljava/util/ArrayList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/ArrayList<Ljava/lang/invoke/MethodHandle;>;
private final java.util.ArrayList<java.lang.invoke.MethodHandle> varArgMethods;
descriptor: Ljava/util/ArrayList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/ArrayList<Ljava/lang/invoke/MethodHandle;>;
private static final java.lang.invoke.MethodHandle SELECT_METHOD;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.MethodHandle THROW_NO_SUCH_METHOD;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.MethodHandle THROW_AMBIGUOUS_METHOD;
descriptor: Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=0, args_size=0
0: invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
ldc "selectMethod"
1: ldc Ljava/lang/invoke/MethodHandle;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc [Ljava/lang/Object;
aastore
2: invokestatic jdk.dynalink.linker.support.Lookup.findOwnSpecial:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
putstatic jdk.dynalink.beans.OverloadedMethod.SELECT_METHOD:Ljava/lang/invoke/MethodHandle;
3: invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
4: ldc "throwNoSuchMethod"
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc [Ljava/lang/Class;
aastore
5: invokestatic jdk.dynalink.linker.support.Lookup.findOwnSpecial:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
putstatic jdk.dynalink.beans.OverloadedMethod.THROW_NO_SUCH_METHOD:Ljava/lang/invoke/MethodHandle;
6: invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
7: ldc "throwAmbiguousMethod"
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc [Ljava/lang/Class;
aastore
dup
iconst_1
ldc Ljava/util/List;
aastore
8: invokestatic jdk.dynalink.linker.support.Lookup.findOwnSpecial:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
putstatic jdk.dynalink.beans.OverloadedMethod.THROW_AMBIGUOUS_METHOD:Ljava/lang/invoke/MethodHandle;
9: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.util.List<java.lang.invoke.MethodHandle>, jdk.dynalink.beans.OverloadedDynamicMethod, java.lang.ClassLoader, java.lang.invoke.MethodType, jdk.dynalink.linker.LinkerServices, jdk.dynalink.SecureLookupSupplier);
descriptor: (Ljava/util/List;Ljdk/dynalink/beans/OverloadedDynamicMethod;Ljava/lang/ClassLoader;Ljava/lang/invoke/MethodType;Ljdk/dynalink/linker/LinkerServices;Ljdk/dynalink/SecureLookupSupplier;)V
flags: (0x0000)
Code:
stack=4, locals=12, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield jdk.dynalink.beans.OverloadedMethod.argTypesToMethods:Ljava/util/Map;
2: aload 0
aload 2
putfield jdk.dynalink.beans.OverloadedMethod.parent:Ljdk/dynalink/beans/OverloadedDynamicMethod;
3: aload 0
aload 3
putfield jdk.dynalink.beans.OverloadedMethod.callSiteClassLoader:Ljava/lang/ClassLoader;
4: aload 1
invokestatic jdk.dynalink.beans.OverloadedMethod.getCommonReturnType:(Ljava/util/List;)Ljava/lang/Class;
astore 7
start local 7 5: aload 0
aload 4
aload 7
invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
putfield jdk.dynalink.beans.OverloadedMethod.callSiteType:Ljava/lang/invoke/MethodType;
6: aload 0
aload 5
putfield jdk.dynalink.beans.OverloadedMethod.linkerServices:Ljdk/dynalink/linker/LinkerServices;
7: aload 0
aload 6
putfield jdk.dynalink.beans.OverloadedMethod.lookupSupplier:Ljdk/dynalink/SecureLookupSupplier;
8: aload 0
new java.util.ArrayList
dup
aload 1
invokeinterface java.util.List.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
putfield jdk.dynalink.beans.OverloadedMethod.fixArgMethods:Ljava/util/ArrayList;
9: aload 0
new java.util.ArrayList
dup
aload 1
invokeinterface java.util.List.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
putfield jdk.dynalink.beans.OverloadedMethod.varArgMethods:Ljava/util/ArrayList;
10: aload 4
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
istore 8
start local 8 11: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 20
StackMap locals: jdk.dynalink.beans.OverloadedMethod java.util.List jdk.dynalink.beans.OverloadedDynamicMethod java.lang.ClassLoader java.lang.invoke.MethodType jdk.dynalink.linker.LinkerServices jdk.dynalink.SecureLookupSupplier java.lang.Class int top java.util.Iterator
StackMap stack:
12: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.invoke.MethodHandle
astore 9
start local 9 13: aload 9
invokevirtual java.lang.invoke.MethodHandle.isVarargsCollector:()Z
ifeq 19
14: aload 9
invokevirtual java.lang.invoke.MethodHandle.asFixedArity:()Ljava/lang/invoke/MethodHandle;
astore 11
start local 11 15: iload 8
aload 11
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
if_icmpne 17
16: aload 0
getfield jdk.dynalink.beans.OverloadedMethod.fixArgMethods:Ljava/util/ArrayList;
aload 11
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
17: StackMap locals: jdk.dynalink.beans.OverloadedMethod java.util.List jdk.dynalink.beans.OverloadedDynamicMethod java.lang.ClassLoader java.lang.invoke.MethodType jdk.dynalink.linker.LinkerServices jdk.dynalink.SecureLookupSupplier java.lang.Class int java.lang.invoke.MethodHandle java.util.Iterator java.lang.invoke.MethodHandle
StackMap stack:
aload 0
getfield jdk.dynalink.beans.OverloadedMethod.varArgMethods:Ljava/util/ArrayList;
aload 9
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 11 18: goto 20
19: StackMap locals:
StackMap stack:
aload 0
getfield jdk.dynalink.beans.OverloadedMethod.fixArgMethods:Ljava/util/ArrayList;
aload 9
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 9 20: StackMap locals: jdk.dynalink.beans.OverloadedMethod java.util.List jdk.dynalink.beans.OverloadedDynamicMethod java.lang.ClassLoader java.lang.invoke.MethodType jdk.dynalink.linker.LinkerServices jdk.dynalink.SecureLookupSupplier java.lang.Class int top java.util.Iterator
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 12
21: aload 0
getfield jdk.dynalink.beans.OverloadedMethod.fixArgMethods:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.trimToSize:()V
22: aload 0
getfield jdk.dynalink.beans.OverloadedMethod.varArgMethods:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.trimToSize:()V
23: getstatic jdk.dynalink.beans.OverloadedMethod.SELECT_METHOD:Ljava/lang/invoke/MethodHandle;
aload 0
invokevirtual java.lang.invoke.MethodHandle.bindTo:(Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
astore 9
start local 9 24: aload 9
iload 8
invokestatic jdk.dynalink.beans.SingleDynamicMethod.collectArguments:(Ljava/lang/invoke/MethodHandle;I)Ljava/lang/invoke/MethodHandle;
25: aload 4
ldc Ljava/lang/invoke/MethodHandle;
invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
26: invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
astore 10
start local 10 27: aload 0
aload 5
28: aload 0
getfield jdk.dynalink.beans.OverloadedMethod.callSiteType:Ljava/lang/invoke/MethodType;
invokestatic java.lang.invoke.MethodHandles.exactInvoker:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
aload 10
29: invokestatic java.lang.invoke.MethodHandles.foldArguments:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
30: aload 4
31: invokeinterface jdk.dynalink.linker.LinkerServices.asTypeLosslessReturn:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
putfield jdk.dynalink.beans.OverloadedMethod.invoker:Ljava/lang/invoke/MethodHandle;
32: return
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 33 0 this Ljdk/dynalink/beans/OverloadedMethod;
0 33 1 methodHandles Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
0 33 2 parent Ljdk/dynalink/beans/OverloadedDynamicMethod;
0 33 3 callSiteClassLoader Ljava/lang/ClassLoader;
0 33 4 callSiteType Ljava/lang/invoke/MethodType;
0 33 5 linkerServices Ljdk/dynalink/linker/LinkerServices;
0 33 6 lookupSupplier Ljdk/dynalink/SecureLookupSupplier;
5 33 7 commonRetType Ljava/lang/Class<*>;
11 33 8 argNum I
13 20 9 mh Ljava/lang/invoke/MethodHandle;
15 18 11 asFixed Ljava/lang/invoke/MethodHandle;
24 33 9 bound Ljava/lang/invoke/MethodHandle;
27 33 10 collecting Ljava/lang/invoke/MethodHandle;
Signature: (Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljdk/dynalink/beans/OverloadedDynamicMethod;Ljava/lang/ClassLoader;Ljava/lang/invoke/MethodType;Ljdk/dynalink/linker/LinkerServices;Ljdk/dynalink/SecureLookupSupplier;)V
MethodParameters:
Name Flags
methodHandles final
parent final
callSiteClassLoader final
callSiteType final
linkerServices final
lookupSupplier final
java.lang.invoke.MethodHandle getInvoker();
descriptor: ()Ljava/lang/invoke/MethodHandle;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.dynalink.beans.OverloadedMethod.invoker:Ljava/lang/invoke/MethodHandle;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/dynalink/beans/OverloadedMethod;
private java.lang.invoke.MethodHandle selectMethod(java.lang.Object[]);
descriptor: ([Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 1
arraylength
anewarray java.lang.Class
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 8
3: StackMap locals: java.lang.Class[] int
StackMap stack:
aload 1
iload 3
aaload
astore 4
start local 4 4: aload 2
iload 3
aload 4
ifnonnull 5
getstatic jdk.dynalink.beans.ClassString.NULL_CLASS:Ljava/lang/Class;
goto 6
StackMap locals: jdk.dynalink.beans.OverloadedMethod java.lang.Object[] java.lang.Class[] int java.lang.Object
StackMap stack: java.lang.Class[] int
5: aload 4
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
StackMap locals: jdk.dynalink.beans.OverloadedMethod java.lang.Object[] java.lang.Class[] int java.lang.Object
StackMap stack: java.lang.Class[] int java.lang.Class
6: aastore
end local 4 7: iinc 3 1
StackMap locals:
StackMap stack:
8: iload 3
aload 2
arraylength
if_icmplt 3
end local 3 9: new jdk.dynalink.beans.ClassString
dup
aload 2
invokespecial jdk.dynalink.beans.ClassString.<init>:([Ljava/lang/Class;)V
astore 3
start local 3 10: aload 0
getfield jdk.dynalink.beans.OverloadedMethod.argTypesToMethods:Ljava/util/Map;
aload 3
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.invoke.MethodHandle
astore 4
start local 4 11: aload 4
ifnonnull 27
12: aload 3
aload 0
getfield jdk.dynalink.beans.OverloadedMethod.fixArgMethods:Ljava/util/ArrayList;
aload 0
getfield jdk.dynalink.beans.OverloadedMethod.linkerServices:Ljdk/dynalink/linker/LinkerServices;
iconst_0
invokevirtual jdk.dynalink.beans.ClassString.getMaximallySpecifics:(Ljava/util/List;Ljdk/dynalink/linker/LinkerServices;Z)Ljava/util/List;
astore 5
start local 5 13: aload 5
invokeinterface java.util.List.isEmpty:()Z
ifeq 15
14: aload 3
aload 0
getfield jdk.dynalink.beans.OverloadedMethod.varArgMethods:Ljava/util/ArrayList;
aload 0
getfield jdk.dynalink.beans.OverloadedMethod.linkerServices:Ljdk/dynalink/linker/LinkerServices;
iconst_1
invokevirtual jdk.dynalink.beans.ClassString.getMaximallySpecifics:(Ljava/util/List;Ljdk/dynalink/linker/LinkerServices;Z)Ljava/util/List;
astore 5
15: StackMap locals: jdk.dynalink.beans.OverloadedMethod java.lang.Object[] java.lang.Class[] jdk.dynalink.beans.ClassString java.lang.invoke.MethodHandle java.util.List
StackMap stack:
aload 5
invokeinterface java.util.List.size:()I
tableswitch { // 0 - 1
0: 16
1: 18
default: 24
}
16: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual jdk.dynalink.beans.OverloadedMethod.getNoSuchMethodThrower:([Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
astore 4
17: goto 25
18: StackMap locals:
StackMap stack:
aload 5
astore 6
start local 6 19: aload 0
getfield jdk.dynalink.beans.OverloadedMethod.linkerServices:Ljdk/dynalink/linker/LinkerServices;
20: aload 0
aload 6
invokedynamic get(Ljdk/dynalink/beans/OverloadedMethod;Ljava/util/List;)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
jdk/dynalink/beans/OverloadedMethod.lambda$0(Ljava/util/List;)Ljava/lang/invoke/MethodHandle; (7)
()Ljava/lang/invoke/MethodHandle;
21: aload 0
getfield jdk.dynalink.beans.OverloadedMethod.lookupSupplier:Ljdk/dynalink/SecureLookupSupplier;
22: invokeinterface jdk.dynalink.linker.LinkerServices.getWithLookup:(Ljava/util/function/Supplier;Ljdk/dynalink/SecureLookupSupplier;)Ljava/lang/Object;
checkcast java.lang.invoke.MethodHandle
astore 4
23: goto 25
end local 6 24: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 5
invokevirtual jdk.dynalink.beans.OverloadedMethod.getAmbiguousMethodThrower:([Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodHandle;
astore 4
25: StackMap locals:
StackMap stack:
aload 3
aload 0
getfield jdk.dynalink.beans.OverloadedMethod.callSiteClassLoader:Ljava/lang/ClassLoader;
invokevirtual jdk.dynalink.beans.ClassString.isVisibleFrom:(Ljava/lang/ClassLoader;)Z
ifeq 27
26: aload 0
getfield jdk.dynalink.beans.OverloadedMethod.argTypesToMethods:Ljava/util/Map;
aload 3
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 27: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Ljdk/dynalink/beans/OverloadedMethod;
0 28 1 args [Ljava/lang/Object;
1 28 2 argTypes [Ljava/lang/Class;
2 9 3 i I
4 7 4 arg Ljava/lang/Object;
10 28 3 classString Ljdk/dynalink/beans/ClassString;
11 28 4 method Ljava/lang/invoke/MethodHandle;
13 27 5 methods Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
19 24 6 fmethods Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
Exceptions:
throws java.lang.NoSuchMethodException
MethodParameters:
Name Flags
args final
private java.lang.invoke.MethodHandle getNoSuchMethodThrower(java.lang.Class<?>[]);
descriptor: ([Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getstatic jdk.dynalink.beans.OverloadedMethod.THROW_NO_SUCH_METHOD:Ljava/lang/invoke/MethodHandle;
iconst_0
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 1
aastore
invokestatic java.lang.invoke.MethodHandles.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
invokevirtual jdk.dynalink.beans.OverloadedMethod.adaptThrower:(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/dynalink/beans/OverloadedMethod;
0 1 1 argTypes [Ljava/lang/Class;
Signature: ([Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
argTypes final
private void throwNoSuchMethod(java.lang.Class<?>[]);
descriptor: ([Ljava/lang/Class;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.dynalink.beans.OverloadedMethod.varArgMethods:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.isEmpty:()Z
ifeq 4
1: new java.lang.NoSuchMethodException
dup
new java.lang.StringBuilder
dup
ldc "None of the fixed arity signatures "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.dynalink.beans.OverloadedMethod.fixArgMethods:Ljava/util/ArrayList;
invokestatic jdk.dynalink.beans.OverloadedMethod.getSignatureList:(Ljava/util/List;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: ldc " of method "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield jdk.dynalink.beans.OverloadedMethod.parent:Ljdk/dynalink/beans/OverloadedDynamicMethod;
invokevirtual jdk.dynalink.beans.OverloadedDynamicMethod.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " match the argument types "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokestatic jdk.dynalink.beans.OverloadedMethod.argTypesString:([Ljava/lang/Class;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokespecial java.lang.NoSuchMethodException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
new java.lang.NoSuchMethodException
dup
new java.lang.StringBuilder
dup
ldc "None of the fixed arity signatures "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.dynalink.beans.OverloadedMethod.fixArgMethods:Ljava/util/ArrayList;
invokestatic jdk.dynalink.beans.OverloadedMethod.getSignatureList:(Ljava/util/List;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: ldc " or the variable arity signatures "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield jdk.dynalink.beans.OverloadedMethod.varArgMethods:Ljava/util/ArrayList;
invokestatic jdk.dynalink.beans.OverloadedMethod.getSignatureList:(Ljava/util/List;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " of the method "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: aload 0
getfield jdk.dynalink.beans.OverloadedMethod.parent:Ljdk/dynalink/beans/OverloadedDynamicMethod;
invokevirtual jdk.dynalink.beans.OverloadedDynamicMethod.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " match the argument types "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokestatic jdk.dynalink.beans.OverloadedMethod.argTypesString:([Ljava/lang/Class;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokespecial java.lang.NoSuchMethodException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/dynalink/beans/OverloadedMethod;
0 8 1 argTypes [Ljava/lang/Class;
Exceptions:
throws java.lang.NoSuchMethodException
Signature: ([Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
argTypes final
private java.lang.invoke.MethodHandle getAmbiguousMethodThrower(java.lang.Class<?>[], java.util.List<java.lang.invoke.MethodHandle>);
descriptor: ([Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodHandle;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getstatic jdk.dynalink.beans.OverloadedMethod.THROW_AMBIGUOUS_METHOD:Ljava/lang/invoke/MethodHandle;
iconst_0
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 1
aastore
dup
iconst_2
aload 2
aastore
invokestatic java.lang.invoke.MethodHandles.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
invokevirtual jdk.dynalink.beans.OverloadedMethod.adaptThrower:(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/dynalink/beans/OverloadedMethod;
0 1 1 argTypes [Ljava/lang/Class;
0 1 2 methods Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
Signature: ([Ljava/lang/Class<*>;Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
argTypes final
methods final
private java.lang.invoke.MethodHandle adaptThrower(java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
iconst_0
aload 0
getfield jdk.dynalink.beans.OverloadedMethod.callSiteType:Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
invokestatic java.lang.invoke.MethodHandles.dropArguments:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
aload 0
getfield jdk.dynalink.beans.OverloadedMethod.callSiteType:Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/dynalink/beans/OverloadedMethod;
0 1 1 rawThrower Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
rawThrower final
private void throwAmbiguousMethod(java.lang.Class<?>[], java.util.List<java.lang.invoke.MethodHandle>);
descriptor: ([Ljava/lang/Class;Ljava/util/List;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.invoke.MethodHandle
invokevirtual java.lang.invoke.MethodHandle.isVarargsCollector:()Z
ifeq 1
ldc "variable"
goto 2
StackMap locals:
StackMap stack:
1: ldc "fixed"
StackMap locals:
StackMap stack: java.lang.String
2: astore 3
start local 3 3: new java.lang.NoSuchMethodException
dup
new java.lang.StringBuilder
dup
ldc "Can't unambiguously select between "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " arity signatures "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
4: aload 2
invokestatic jdk.dynalink.beans.OverloadedMethod.getSignatureList:(Ljava/util/List;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " of the method "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield jdk.dynalink.beans.OverloadedMethod.parent:Ljdk/dynalink/beans/OverloadedDynamicMethod;
invokevirtual jdk.dynalink.beans.OverloadedDynamicMethod.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " for argument types "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: aload 1
invokestatic jdk.dynalink.beans.OverloadedMethod.argTypesString:([Ljava/lang/Class;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokespecial java.lang.NoSuchMethodException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/dynalink/beans/OverloadedMethod;
0 7 1 argTypes [Ljava/lang/Class;
0 7 2 methods Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
3 7 3 arity Ljava/lang/String;
Exceptions:
throws java.lang.NoSuchMethodException
Signature: ([Ljava/lang/Class<*>;Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;)V
MethodParameters:
Name Flags
argTypes final
methods final
private static java.lang.String argTypesString(java.lang.Class<?>[]);
descriptor: ([Ljava/lang/Class;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
bipush 91
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
astore 1
start local 1 1: aload 1
aload 0
iconst_0
invokestatic jdk.dynalink.beans.OverloadedMethod.appendTypes:(Ljava/lang/StringBuilder;[Ljava/lang/Class;Z)V
2: aload 1
bipush 93
invokevirtual java.lang.StringBuilder.append:(C)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 3 0 classes [Ljava/lang/Class;
1 3 1 b Ljava/lang/StringBuilder;
Signature: ([Ljava/lang/Class<*>;)Ljava/lang/String;
MethodParameters:
Name Flags
classes final
private static java.lang.String getSignatureList(java.util.List<java.lang.invoke.MethodHandle>);
descriptor: (Ljava/util/List;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
bipush 91
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
astore 1
start local 1 1: aload 0
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 2
start local 2 2: aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifeq 7
3: aload 1
aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.invoke.MethodHandle
invokestatic jdk.dynalink.beans.OverloadedMethod.appendSig:(Ljava/lang/StringBuilder;Ljava/lang/invoke/MethodHandle;)V
4: goto 6
5: StackMap locals: java.lang.StringBuilder java.util.Iterator
StackMap stack:
aload 1
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.invoke.MethodHandle
invokestatic jdk.dynalink.beans.OverloadedMethod.appendSig:(Ljava/lang/StringBuilder;Ljava/lang/invoke/MethodHandle;)V
6: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
7: StackMap locals:
StackMap stack:
aload 1
bipush 93
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 methods Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
1 8 1 b Ljava/lang/StringBuilder;
2 8 2 it Ljava/util/Iterator<Ljava/lang/invoke/MethodHandle;>;
Signature: (Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;)Ljava/lang/String;
MethodParameters:
Name Flags
methods final
private static void appendSig(java.lang.StringBuilder, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/StringBuilder;Ljava/lang/invoke/MethodHandle;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
bipush 40
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
1: aload 0
aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterArray:()[Ljava/lang/Class;
aload 1
invokevirtual java.lang.invoke.MethodHandle.isVarargsCollector:()Z
invokestatic jdk.dynalink.beans.OverloadedMethod.appendTypes:(Ljava/lang/StringBuilder;[Ljava/lang/Class;Z)V
2: aload 0
bipush 41
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 b Ljava/lang/StringBuilder;
0 4 1 m Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
b final
m final
private static void appendTypes(java.lang.StringBuilder, java.lang.Class<?>[], );
descriptor: (Ljava/lang/StringBuilder;[Ljava/lang/Class;Z)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
arraylength
istore 3
start local 3 1: iload 2
ifne 10
2: iload 3
iconst_1
if_icmple 16
3: aload 0
aload 1
iconst_1
aaload
invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
4: iconst_2
istore 4
start local 4 5: goto 8
6: StackMap locals: int int
StackMap stack:
aload 0
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
iload 4
aaload
invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
7: iinc 4 1
StackMap locals:
StackMap stack:
8: iload 4
iload 3
if_icmplt 6
end local 4 9: goto 16
10: StackMap locals:
StackMap stack:
iconst_1
istore 4
start local 4 11: goto 14
12: StackMap locals: int
StackMap stack:
aload 0
aload 1
iload 4
aaload
invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
13: iinc 4 1
StackMap locals:
StackMap stack:
14: iload 4
iload 3
iconst_1
isub
if_icmplt 12
end local 4 15: aload 0
aload 1
iload 3
iconst_1
isub
aaload
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "..."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
16: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 b Ljava/lang/StringBuilder;
0 17 1 classes [Ljava/lang/Class;
0 17 2 varArg Z
1 17 3 l I
5 9 4 i I
11 15 4 i I
Signature: (Ljava/lang/StringBuilder;[Ljava/lang/Class<*>;Z)V
MethodParameters:
Name Flags
b final
classes final
varArg final
private static java.lang.Class<?> getCommonReturnType(java.util.List<java.lang.invoke.MethodHandle>);
descriptor: (Ljava/util/List;)Ljava/lang/Class;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 1
start local 1 1: aload 1
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.invoke.MethodHandle
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
astore 2
start local 2 2: goto 4
3: StackMap locals: java.util.Iterator java.lang.Class
StackMap stack:
aload 2
aload 1
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.invoke.MethodHandle
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
invokestatic jdk.dynalink.internal.InternalTypeUtilities.getCommonLosslessConversionType:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/Class;
astore 2
4: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
5: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 methodHandles Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
1 6 1 it Ljava/util/Iterator<Ljava/lang/invoke/MethodHandle;>;
2 6 2 retType Ljava/lang/Class<*>;
Signature: (Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
methodHandles final
private java.lang.invoke.MethodHandle lambda$0(java.util.List);
descriptor: (Ljava/util/List;)Ljava/lang/invoke/MethodHandle;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=2, args_size=2
start local 0 0: aload 1
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.invoke.MethodHandle
aload 0
getfield jdk.dynalink.beans.OverloadedMethod.callSiteType:Ljava/lang/invoke/MethodType;
aload 0
getfield jdk.dynalink.beans.OverloadedMethod.linkerServices:Ljdk/dynalink/linker/LinkerServices;
invokestatic jdk.dynalink.beans.SingleDynamicMethod.getInvocation:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;Ljdk/dynalink/linker/LinkerServices;)Ljava/lang/invoke/MethodHandle;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/dynalink/beans/OverloadedMethod;
}
SourceFile: "OverloadedMethod.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles