public class java.lang.invoke.MethodHandles
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: java.lang.invoke.MethodHandles
super_class: java.lang.Object
{
static final java.lang.invoke.MemberName$Factory IMPL_NAMES;
descriptor: Ljava/lang/invoke/MemberName$Factory;
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static final java.security.Permission ACCESS_PERMISSION;
descriptor: Ljava/security/Permission;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.MethodHandle[] IDENTITY_MHS;
descriptor: [Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.invoke.MethodHandle[] ZERO_MHS;
descriptor: [Ljava/lang/invoke/MethodHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$sun$invoke$util$Wrapper;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: ldc Ljava/lang/invoke/MethodHandles;
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.MethodHandles.$assertionsDisabled:Z
3: invokestatic java.lang.invoke.MemberName.getFactory:()Ljava/lang/invoke/MemberName$Factory;
putstatic java.lang.invoke.MethodHandles.IMPL_NAMES:Ljava/lang/invoke/MemberName$Factory;
4: new java.lang.reflect.ReflectPermission
dup
ldc "suppressAccessChecks"
invokespecial java.lang.reflect.ReflectPermission.<init>:(Ljava/lang/String;)V
5: putstatic java.lang.invoke.MethodHandles.ACCESS_PERMISSION:Ljava/security/Permission;
6: bipush 10
anewarray java.lang.invoke.MethodHandle
putstatic java.lang.invoke.MethodHandles.IDENTITY_MHS:[Ljava/lang/invoke/MethodHandle;
7: bipush 10
anewarray java.lang.invoke.MethodHandle
putstatic java.lang.invoke.MethodHandles.ZERO_MHS:[Ljava/lang/invoke/MethodHandle;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
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 Ljava/lang/invoke/MethodHandles;
public static java.lang.invoke.MethodHandles$Lookup lookup();
descriptor: ()Ljava/lang/invoke/MethodHandles$Lookup;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new java.lang.invoke.MethodHandles$Lookup
dup
invokestatic jdk.internal.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
invokespecial java.lang.invoke.MethodHandles$Lookup.<init>:(Ljava/lang/Class;)V
areturn
LocalVariableTable:
Start End Slot Name Signature
RuntimeVisibleAnnotations:
jdk.internal.reflect.CallerSensitive()
jdk.internal.vm.annotation.ForceInline()
private static java.lang.invoke.MethodHandles$Lookup reflected$lookup();
descriptor: ()Ljava/lang/invoke/MethodHandles$Lookup;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: invokestatic jdk.internal.reflect.Reflection.getCallerClass:()Ljava/lang/Class;
astore 0
start local 0 1: aload 0
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
ifnonnull 3
2: new java.lang.StringBuilder
dup
ldc "illegal lookupClass: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
3: StackMap locals: java.lang.Class
StackMap stack:
new java.lang.invoke.MethodHandles$Lookup
dup
aload 0
invokespecial java.lang.invoke.MethodHandles$Lookup.<init>:(Ljava/lang/Class;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 4 0 caller Ljava/lang/Class<*>;
RuntimeVisibleAnnotations:
jdk.internal.reflect.CallerSensitive()
public static java.lang.invoke.MethodHandles$Lookup publicLookup();
descriptor: ()Ljava/lang/invoke/MethodHandles$Lookup;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic java.lang.invoke.MethodHandles$Lookup.PUBLIC_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
areturn
LocalVariableTable:
Start End Slot Name Signature
public static java.lang.invoke.MethodHandles$Lookup privateLookupIn(java.lang.Class<?>, java.lang.invoke.MethodHandles$Lookup);
descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandles$Lookup;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=10, args_size=2
start local 0 start local 1 0: aload 1
getfield java.lang.invoke.MethodHandles$Lookup.allowedModes:I
iconst_m1
if_icmpne 2
1: new java.lang.invoke.MethodHandles$Lookup
dup
aload 0
invokespecial java.lang.invoke.MethodHandles$Lookup.<init>:(Ljava/lang/Class;)V
areturn
2: StackMap locals:
StackMap stack:
invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 2
start local 2 3: aload 2
ifnull 4
aload 2
getstatic java.lang.invoke.MethodHandles.ACCESS_PERMISSION:Ljava/security/Permission;
invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
4: StackMap locals: java.lang.SecurityManager
StackMap stack:
aload 0
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 6
5: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " is a primitive class"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Class.isArray:()Z
ifeq 8
7: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " is an array class"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
bipush 18
istore 3
start local 3 9: aload 1
invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupModes:()I
iload 3
iand
iload 3
if_icmpeq 11
10: new java.lang.IllegalAccessException
dup
ldc "caller does not have PRIVATE and MODULE lookup mode"
invokespecial java.lang.IllegalAccessException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals: int
StackMap stack:
getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
ifne 12
aload 1
invokevirtual java.lang.invoke.MethodHandles$Lookup.previousLookupClass:()Ljava/lang/Class;
ifnull 12
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
12: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
astore 4
start local 4 13: aload 4
invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
astore 5
start local 5 14: aload 0
invokevirtual java.lang.Class.getModule:()Ljava/lang/Module;
astore 6
start local 6 15: aconst_null
astore 7
start local 7 16: bipush 31
istore 8
start local 8 17: aload 6
aload 5
if_acmpeq 31
18: aload 5
aload 6
invokevirtual java.lang.Module.canRead:(Ljava/lang/Module;)Z
ifne 20
19: new java.lang.IllegalAccessException
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " does not read "
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.IllegalAccessException.<init>:(Ljava/lang/String;)V
athrow
20: StackMap locals: java.lang.Class java.lang.invoke.MethodHandles$Lookup java.lang.SecurityManager int java.lang.Class java.lang.Module java.lang.Module java.lang.Class int
StackMap stack:
aload 6
invokevirtual java.lang.Module.isNamed:()Z
ifeq 25
21: aload 0
invokevirtual java.lang.Class.getPackageName:()Ljava/lang/String;
astore 9
start local 9 22: getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
ifne 23
aload 9
invokevirtual java.lang.String.isEmpty:()Z
ifeq 23
new java.lang.AssertionError
dup
ldc "unnamed package cannot be in named module"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
23: StackMap locals: java.lang.String
StackMap stack:
aload 6
aload 9
aload 5
invokevirtual java.lang.Module.isOpen:(Ljava/lang/String;Ljava/lang/Module;)Z
ifne 25
24: new java.lang.IllegalAccessException
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " does not open "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " to "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalAccessException.<init>:(Ljava/lang/String;)V
athrow
end local 9 25: StackMap locals:
StackMap stack:
aload 4
astore 7
26: iload 8
bipush -17
iand
istore 8
27: aload 5
invokevirtual java.lang.Module.isNamed:()Z
ifne 31
aload 6
invokevirtual java.lang.Module.isNamed:()Z
ifeq 31
28: invokestatic jdk.internal.module.IllegalAccessLogger.illegalAccessLogger:()Ljdk/internal/module/IllegalAccessLogger;
astore 9
start local 9 29: aload 9
ifnull 31
30: aload 9
aload 1
aload 0
invokevirtual jdk.internal.module.IllegalAccessLogger.logIfOpenedForIllegalAccess:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/Class;)V
end local 9 31: StackMap locals:
StackMap stack:
aload 0
aload 7
iload 8
invokestatic java.lang.invoke.MethodHandles$Lookup.newLookup:(Ljava/lang/Class;Ljava/lang/Class;I)Ljava/lang/invoke/MethodHandles$Lookup;
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 32 0 targetClass Ljava/lang/Class<*>;
0 32 1 caller Ljava/lang/invoke/MethodHandles$Lookup;
3 32 2 sm Ljava/lang/SecurityManager;
9 32 3 requireAccess I
13 32 4 callerClass Ljava/lang/Class<*>;
14 32 5 callerModule Ljava/lang/Module;
15 32 6 targetModule Ljava/lang/Module;
16 32 7 newPreviousClass Ljava/lang/Class<*>;
17 32 8 newModes I
22 25 9 pn Ljava/lang/String;
29 31 9 logger Ljdk/internal/module/IllegalAccessLogger;
Exceptions:
throws java.lang.IllegalAccessException
Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/invoke/MethodHandles$Lookup;
MethodParameters:
Name Flags
targetClass
caller
public static <T> T classData(java.lang.invoke.MethodHandles$Lookup, java.lang.String, java.lang.Class<T>);
descriptor: (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 2
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: ldc "_"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 4
3: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "name must be \"_\": "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupModes:()I
bipush 64
iand
bipush 64
if_icmpeq 6
5: new java.lang.IllegalAccessException
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " does not have ORIGINAL access"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalAccessException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.invoke.MethodHandles$Lookup.lookupClass:()Ljava/lang/Class;
invokestatic java.lang.invoke.MethodHandleNatives.classData:(Ljava/lang/Class;)Ljava/lang/Object;
astore 3
start local 3 7: aload 3
ifnonnull 8
aconst_null
areturn
8: StackMap locals: java.lang.Object
StackMap stack:
aload 3
aload 2
invokestatic java.lang.invoke.BootstrapMethodInvoker.widenAndCast:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
9: areturn
10: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
start local 4 11: aload 4
athrow
end local 4 12: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
start local 4 13: new java.lang.InternalError
dup
aload 4
invokespecial java.lang.InternalError.<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 14 0 caller Ljava/lang/invoke/MethodHandles$Lookup;
0 14 1 name Ljava/lang/String;
0 14 2 type Ljava/lang/Class<TT;>;
7 14 3 classdata Ljava/lang/Object;
11 12 4 e Ljava/lang/Throwable;
13 14 4 e Ljava/lang/Throwable;
Exception table:
from to target type
8 9 10 Class java.lang.RuntimeException
8 9 10 Class java.lang.Error
8 9 12 Class java.lang.Throwable
Exceptions:
throws java.lang.IllegalAccessException
Signature: <T:Ljava/lang/Object;>(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class<TT;>;)TT;
MethodParameters:
Name Flags
caller
name
type
public static <T> T classDataAt(java.lang.invoke.MethodHandles$Lookup, java.lang.String, java.lang.Class<T>, );
descriptor: (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class;I)Ljava/lang/Object;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
ldc Ljava/util/List;
invokestatic java.lang.invoke.MethodHandles.classData:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
checkcast java.util.List
astore 4
start local 4 1: aload 4
ifnonnull 2
aconst_null
areturn
2: StackMap locals: java.util.List
StackMap stack:
aload 4
iload 3
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
astore 5
start local 5 3: aload 5
aload 2
invokestatic java.lang.invoke.BootstrapMethodInvoker.widenAndCast:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
4: areturn
end local 5 5: StackMap locals:
StackMap stack: java.lang.Throwable
astore 5
start local 5 6: aload 5
athrow
end local 5 7: StackMap locals:
StackMap stack: java.lang.Throwable
astore 5
start local 5 8: new java.lang.InternalError
dup
aload 5
invokespecial java.lang.InternalError.<init>:(Ljava/lang/Throwable;)V
athrow
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 9 0 caller Ljava/lang/invoke/MethodHandles$Lookup;
0 9 1 name Ljava/lang/String;
0 9 2 type Ljava/lang/Class<TT;>;
0 9 3 index I
1 9 4 classdata Ljava/util/List<Ljava/lang/Object;>;
3 5 5 element Ljava/lang/Object;
6 7 5 e Ljava/lang/Throwable;
8 9 5 e Ljava/lang/Throwable;
Exception table:
from to target type
2 4 5 Class java.lang.RuntimeException
2 4 5 Class java.lang.Error
2 4 7 Class java.lang.Throwable
Exceptions:
throws java.lang.IllegalAccessException
Signature: <T:Ljava/lang/Object;>(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class<TT;>;I)TT;
MethodParameters:
Name Flags
caller
name
type
index
public static <T extends java.lang.reflect.Member> T reflectAs(java.lang.Class<T>, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;)Ljava/lang/reflect/Member;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
getstatic java.lang.invoke.MethodHandles.ACCESS_PERMISSION:Ljava/security/Permission;
invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
2: StackMap locals: java.lang.SecurityManager
StackMap stack:
getstatic java.lang.invoke.MethodHandles$Lookup.IMPL_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
astore 3
start local 3 3: aload 3
aload 1
invokevirtual java.lang.invoke.MethodHandles$Lookup.revealDirect:(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandleInfo;
aload 0
aload 3
invokeinterface java.lang.invoke.MethodHandleInfo.reflectAs:(Ljava/lang/Class;Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/reflect/Member;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 expected Ljava/lang/Class<TT;>;
0 4 1 target Ljava/lang/invoke/MethodHandle;
1 4 2 smgr Ljava/lang/SecurityManager;
3 4 3 lookup Ljava/lang/invoke/MethodHandles$Lookup;
Signature: <T::Ljava/lang/reflect/Member;>(Ljava/lang/Class<TT;>;Ljava/lang/invoke/MethodHandle;)TT;
MethodParameters:
Name Flags
expected
target
public static java.lang.invoke.MethodHandle arrayConstructor(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Class.isArray:()Z
ifne 2
1: new java.lang.StringBuilder
dup
ldc "not an array class: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
2: StackMap locals:
StackMap stack:
bipush 11
invokestatic java.lang.invoke.MethodHandleImpl.getConstantHandle:(I)Ljava/lang/invoke/MethodHandle;
3: aload 0
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
invokevirtual java.lang.invoke.MethodHandle.bindTo:(Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
4: astore 1
start local 1 5: aload 1
aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
aload 0
invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)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 6 0 arrayClass Ljava/lang/Class<*>;
5 6 1 ani Ljava/lang/invoke/MethodHandle;
Exceptions:
throws java.lang.IllegalArgumentException
Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
arrayClass
public static java.lang.invoke.MethodHandle arrayLength(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic java.lang.invoke.MethodHandleImpl$ArrayAccess.LENGTH:Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;
invokestatic java.lang.invoke.MethodHandleImpl.makeArrayElementAccessor:(Ljava/lang/Class;Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/invoke/MethodHandle;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 arrayClass Ljava/lang/Class<*>;
Exceptions:
throws java.lang.IllegalArgumentException
Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
arrayClass
public static java.lang.invoke.MethodHandle arrayElementGetter(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic java.lang.invoke.MethodHandleImpl$ArrayAccess.GET:Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;
invokestatic java.lang.invoke.MethodHandleImpl.makeArrayElementAccessor:(Ljava/lang/Class;Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/invoke/MethodHandle;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 arrayClass Ljava/lang/Class<*>;
Exceptions:
throws java.lang.IllegalArgumentException
Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
arrayClass
public static java.lang.invoke.MethodHandle arrayElementSetter(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic java.lang.invoke.MethodHandleImpl$ArrayAccess.SET:Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;
invokestatic java.lang.invoke.MethodHandleImpl.makeArrayElementAccessor:(Ljava/lang/Class;Ljava/lang/invoke/MethodHandleImpl$ArrayAccess;)Ljava/lang/invoke/MethodHandle;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 arrayClass Ljava/lang/Class<*>;
Exceptions:
throws java.lang.IllegalArgumentException
Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
arrayClass
public static java.lang.invoke.VarHandle arrayElementVarHandle(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic java.lang.invoke.VarHandles.makeArrayElementHandle:(Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 arrayClass Ljava/lang/Class<*>;
Exceptions:
throws java.lang.IllegalArgumentException
Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/VarHandle;
MethodParameters:
Name Flags
arrayClass
public static java.lang.invoke.VarHandle byteArrayViewVarHandle(java.lang.Class<?>, java.nio.ByteOrder);
descriptor: (Ljava/lang/Class;Ljava/nio/ByteOrder;)Ljava/lang/invoke/VarHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
2: aload 1
getstatic java.nio.ByteOrder.BIG_ENDIAN:Ljava/nio/ByteOrder;
if_acmpne 3
iconst_1
goto 4
StackMap locals:
StackMap stack: java.lang.Class
3: iconst_0
4: StackMap locals: java.lang.Class java.nio.ByteOrder
StackMap stack: java.lang.Class int
invokestatic java.lang.invoke.VarHandles.byteArrayViewHandle:(Ljava/lang/Class;Z)Ljava/lang/invoke/VarHandle;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 viewArrayClass Ljava/lang/Class<*>;
0 5 1 byteOrder Ljava/nio/ByteOrder;
Exceptions:
throws java.lang.IllegalArgumentException
Signature: (Ljava/lang/Class<*>;Ljava/nio/ByteOrder;)Ljava/lang/invoke/VarHandle;
MethodParameters:
Name Flags
viewArrayClass
byteOrder
public static java.lang.invoke.VarHandle byteBufferViewVarHandle(java.lang.Class<?>, java.nio.ByteOrder);
descriptor: (Ljava/lang/Class;Ljava/nio/ByteOrder;)Ljava/lang/invoke/VarHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
2: aload 1
getstatic java.nio.ByteOrder.BIG_ENDIAN:Ljava/nio/ByteOrder;
if_acmpne 3
iconst_1
goto 4
StackMap locals:
StackMap stack: java.lang.Class
3: iconst_0
4: StackMap locals: java.lang.Class java.nio.ByteOrder
StackMap stack: java.lang.Class int
invokestatic java.lang.invoke.VarHandles.makeByteBufferViewHandle:(Ljava/lang/Class;Z)Ljava/lang/invoke/VarHandle;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 viewArrayClass Ljava/lang/Class<*>;
0 5 1 byteOrder Ljava/nio/ByteOrder;
Exceptions:
throws java.lang.IllegalArgumentException
Signature: (Ljava/lang/Class<*>;Ljava/nio/ByteOrder;)Ljava/lang/invoke/VarHandle;
MethodParameters:
Name Flags
viewArrayClass
byteOrder
public static java.lang.invoke.MethodHandle spreadInvoker(java.lang.invoke.MethodType, int);
descriptor: (Ljava/lang/invoke/MethodType;I)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: iload 1
iflt 1
iload 1
aload 0
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
if_icmple 2
1: StackMap locals:
StackMap stack:
ldc "bad argument count"
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
ldc [Ljava/lang/Object;
iload 1
aload 0
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iload 1
isub
invokevirtual java.lang.invoke.MethodType.asSpreaderType:(Ljava/lang/Class;II)Ljava/lang/invoke/MethodType;
astore 0
3: aload 0
invokevirtual java.lang.invoke.MethodType.invokers:()Ljava/lang/invoke/Invokers;
iload 1
invokevirtual java.lang.invoke.Invokers.spreadInvoker:(I)Ljava/lang/invoke/MethodHandle;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 type Ljava/lang/invoke/MethodType;
0 4 1 leadingArgCount I
MethodParameters:
Name Flags
type
leadingArgCount
public static java.lang.invoke.MethodHandle exactInvoker(java.lang.invoke.MethodType);
descriptor: (Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.invoke.MethodType.invokers:()Ljava/lang/invoke/Invokers;
invokevirtual java.lang.invoke.Invokers.exactInvoker:()Ljava/lang/invoke/MethodHandle;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 type Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
type
public static java.lang.invoke.MethodHandle invoker(java.lang.invoke.MethodType);
descriptor: (Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.invoke.MethodType.invokers:()Ljava/lang/invoke/Invokers;
invokevirtual java.lang.invoke.Invokers.genericInvoker:()Ljava/lang/invoke/MethodHandle;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 type Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
type
public static java.lang.invoke.MethodHandle varHandleExactInvoker(java.lang.invoke.VarHandle$AccessMode, java.lang.invoke.MethodType);
descriptor: (Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.invoke.MethodType.invokers:()Ljava/lang/invoke/Invokers;
aload 0
invokevirtual java.lang.invoke.Invokers.varHandleMethodExactInvoker:(Ljava/lang/invoke/VarHandle$AccessMode;)Ljava/lang/invoke/MethodHandle;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 accessMode Ljava/lang/invoke/VarHandle$AccessMode;
0 1 1 type Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
accessMode
type
public static java.lang.invoke.MethodHandle varHandleInvoker(java.lang.invoke.VarHandle$AccessMode, java.lang.invoke.MethodType);
descriptor: (Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.invoke.MethodType.invokers:()Ljava/lang/invoke/Invokers;
aload 0
invokevirtual java.lang.invoke.Invokers.varHandleMethodInvoker:(Ljava/lang/invoke/VarHandle$AccessMode;)Ljava/lang/invoke/MethodHandle;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 accessMode Ljava/lang/invoke/VarHandle$AccessMode;
0 1 1 type Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
accessMode
type
static java.lang.invoke.MethodHandle basicInvoker(java.lang.invoke.MethodType);
descriptor: (Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.invoke.MethodType.invokers:()Ljava/lang/invoke/Invokers;
invokevirtual java.lang.invoke.Invokers.basicInvoker:()Ljava/lang/invoke/MethodHandle;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 type Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
type
public static java.lang.invoke.MethodHandle explicitCastArguments(java.lang.invoke.MethodHandle, java.lang.invoke.MethodType);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic java.lang.invoke.MethodHandles.explicitCastArgumentsChecks:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)V
1: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 2
start local 2 2: aload 2
aload 1
if_acmpne 3
aload 0
areturn
3: StackMap locals: java.lang.invoke.MethodType
StackMap stack:
aload 2
aload 1
invokevirtual java.lang.invoke.MethodType.explicitCastEquivalentToAsType:(Ljava/lang/invoke/MethodType;)Z
ifeq 5
4: aload 0
invokevirtual java.lang.invoke.MethodHandle.asFixedArity:()Ljava/lang/invoke/MethodHandle;
aload 1
invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
areturn
5: StackMap locals:
StackMap stack:
aload 0
aload 1
iconst_0
invokestatic java.lang.invoke.MethodHandleImpl.makePairwiseConvert:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;Z)Ljava/lang/invoke/MethodHandle;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 target Ljava/lang/invoke/MethodHandle;
0 6 1 newType Ljava/lang/invoke/MethodType;
2 6 2 oldType Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
target
newType
private static void explicitCastArgumentsChecks(java.lang.invoke.MethodHandle, java.lang.invoke.MethodType);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
aload 1
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
if_icmpeq 2
1: new java.lang.invoke.WrongMethodTypeException
dup
new java.lang.StringBuilder
dup
ldc "cannot explicitly cast "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " to "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.invoke.WrongMethodTypeException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 target Ljava/lang/invoke/MethodHandle;
0 3 1 newType Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
target
newType
public static java.lang.invoke.MethodHandle permuteArguments(java.lang.invoke.MethodHandle, java.lang.invoke.MethodType, int[]);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;[I)Ljava/lang/invoke/MethodHandle;
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=6, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual int[].clone:()Ljava/lang/Object;
checkcast int[]
astore 2
1: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 3
start local 3 2: aload 2
aload 1
aload 3
invokestatic java.lang.invoke.MethodHandles.permuteArgumentChecks:([ILjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Z
pop
3: aload 0
invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
astore 4
start local 4 4: aload 4
getfield java.lang.invoke.BoundMethodHandle.form:Ljava/lang/invoke/LambdaForm;
astore 5
start local 5 5: aload 1
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
istore 6
start local 6 6: goto 39
start local 7 7: StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodType int[] java.lang.invoke.MethodType java.lang.invoke.BoundMethodHandle java.lang.invoke.LambdaForm int int
StackMap stack:
iload 7
ifle 26
8: iload 7
istore 8
start local 8 9: iload 8
istore 9
start local 9 10: aload 2
iload 8
iaload
istore 10
start local 10 11: iconst_0
istore 11
start local 11 12: goto 14
start local 12 13: StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodType int[] java.lang.invoke.MethodType java.lang.invoke.BoundMethodHandle java.lang.invoke.LambdaForm int int int int int int int
StackMap stack:
iload 10
iload 12
if_icmple 14
iconst_1
istore 11
end local 12 14: StackMap locals:
StackMap stack:
aload 2
iinc 9 -1
iload 9
iaload
dup
istore 12
start local 12 15: iload 10
if_icmpne 13
end local 12 16: iload 11
ifne 19
17: iload 9
istore 8
18: iload 7
istore 9
19: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.lang.invoke.LambdaForm.editor:()Ljava/lang/invoke/LambdaFormEditor;
iconst_1
iload 8
iadd
iconst_1
iload 9
iadd
invokevirtual java.lang.invoke.LambdaFormEditor.dupArgumentForm:(II)Ljava/lang/invoke/LambdaForm;
astore 5
20: getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
ifne 21
aload 2
iload 8
iaload
aload 2
iload 9
iaload
if_icmpeq 21
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
21: StackMap locals:
StackMap stack:
aload 3
iload 9
iload 9
iconst_1
iadd
invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
astore 3
22: iload 9
iconst_1
iadd
istore 12
start local 12 23: aload 2
iload 12
aload 2
iload 9
aload 2
arraylength
iload 12
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
24: aload 2
aload 2
arraylength
iconst_1
isub
invokestatic java.util.Arrays.copyOf:([II)[I
astore 2
end local 12 end local 11 end local 10 end local 9 end local 8 25: goto 38
26: StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodType int[] java.lang.invoke.MethodType java.lang.invoke.BoundMethodHandle java.lang.invoke.LambdaForm int int
StackMap stack:
iload 7
iconst_m1
ixor
istore 8
start local 8 27: iconst_0
istore 9
start local 9 28: goto 30
29: StackMap locals: int int
StackMap stack:
iinc 9 1
30: StackMap locals:
StackMap stack:
iload 9
aload 2
arraylength
if_icmpge 31
aload 2
iload 9
iaload
iload 8
if_icmplt 29
31: StackMap locals:
StackMap stack:
aload 1
iload 8
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
astore 10
start local 10 32: aload 5
invokevirtual java.lang.invoke.LambdaForm.editor:()Ljava/lang/invoke/LambdaFormEditor;
iconst_1
iload 9
iadd
aload 10
invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
invokevirtual java.lang.invoke.LambdaFormEditor.addArgumentForm:(ILjava/lang/invoke/LambdaForm$BasicType;)Ljava/lang/invoke/LambdaForm;
astore 5
33: aload 3
iload 9
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 10
aastore
invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 3
34: iload 9
iconst_1
iadd
istore 11
start local 11 35: aload 2
aload 2
arraylength
iconst_1
iadd
invokestatic java.util.Arrays.copyOf:([II)[I
astore 2
36: aload 2
iload 9
aload 2
iload 11
aload 2
arraylength
iload 11
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
37: aload 2
iload 9
iload 8
iastore
end local 11 end local 10 end local 9 end local 8 38: StackMap locals:
StackMap stack:
getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
ifne 39
aload 2
aload 1
aload 3
invokestatic java.lang.invoke.MethodHandles.permuteArgumentChecks:([ILjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Z
ifne 39
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 7 39: StackMap locals:
StackMap stack:
aload 2
iload 6
invokestatic java.lang.invoke.MethodHandles.findFirstDupOrDrop:([II)I
dup
istore 7
start local 7 40: ifne 7
end local 7 41: getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
ifne 42
aload 2
arraylength
iload 6
if_icmpeq 42
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
42: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.lang.invoke.LambdaForm.editor:()Ljava/lang/invoke/LambdaFormEditor;
iconst_1
aload 2
invokevirtual java.lang.invoke.LambdaFormEditor.permuteArgumentsForm:(I[I)Ljava/lang/invoke/LambdaForm;
astore 5
43: aload 1
aload 4
invokevirtual java.lang.invoke.BoundMethodHandle.type:()Ljava/lang/invoke/MethodType;
if_acmpne 45
aload 5
aload 4
invokevirtual java.lang.invoke.BoundMethodHandle.internalForm:()Ljava/lang/invoke/LambdaForm;
if_acmpne 45
44: aload 4
areturn
45: StackMap locals:
StackMap stack:
aload 4
aload 1
aload 5
invokevirtual java.lang.invoke.BoundMethodHandle.copyWith:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;)Ljava/lang/invoke/BoundMethodHandle;
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 46 0 target Ljava/lang/invoke/MethodHandle;
0 46 1 newType Ljava/lang/invoke/MethodType;
0 46 2 reorder [I
2 46 3 oldType Ljava/lang/invoke/MethodType;
4 46 4 result Ljava/lang/invoke/BoundMethodHandle;
5 46 5 form Ljava/lang/invoke/LambdaForm;
6 46 6 newArity I
7 39 7 ddIdx I
40 41 7 ddIdx I
9 25 8 srcPos I
10 25 9 dstPos I
11 25 10 dupVal I
12 25 11 killFirst Z
13 14 12 val I
15 16 12 val I
23 25 12 tailPos I
27 38 8 dropVal I
28 38 9 insPos I
32 38 10 ptype Ljava/lang/Class<*>;
35 38 11 tailPos I
MethodParameters:
Name Flags
target
newType
reorder
private static int findFirstDupOrDrop(int[], int);
descriptor: ([II)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=8, args_size=2
start local 0 start local 1 0: iload 1
bipush 63
if_icmpge 22
1: lconst_0
lstore 2
start local 2 2: iconst_0
istore 4
start local 4 3: goto 12
4: StackMap locals: long int
StackMap stack:
aload 0
iload 4
iaload
istore 5
start local 5 5: iload 5
iload 1
if_icmplt 7
6: aload 0
arraylength
ireturn
7: StackMap locals: int
StackMap stack:
lconst_1
iload 5
lshl
lstore 6
start local 6 8: lload 2
lload 6
land
lconst_0
lcmp
ifeq 10
9: iload 4
ireturn
10: StackMap locals: long
StackMap stack:
lload 2
lload 6
lor
lstore 2
end local 6 end local 5 11: iinc 4 1
StackMap locals:
StackMap stack:
12: iload 4
aload 0
arraylength
if_icmplt 4
end local 4 13: lload 2
lconst_1
iload 1
lshl
lconst_1
lsub
lcmp
ifne 16
14: getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
ifne 15
lload 2
ldc -1
lxor
invokestatic java.lang.Long.lowestOneBit:(J)J
invokestatic java.lang.Long.numberOfTrailingZeros:(J)I
iload 1
if_icmpeq 15
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
15: StackMap locals:
StackMap stack:
iconst_0
ireturn
16: StackMap locals:
StackMap stack:
lload 2
ldc -1
lxor
invokestatic java.lang.Long.lowestOneBit:(J)J
lstore 4
start local 4 17: lload 4
invokestatic java.lang.Long.numberOfTrailingZeros:(J)I
istore 6
start local 6 18: getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
ifne 19
iload 6
iload 1
if_icmple 19
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
19: StackMap locals: long int
StackMap stack:
iload 6
iload 1
if_icmpne 21
20: iconst_0
ireturn
21: StackMap locals:
StackMap stack:
iload 6
iconst_m1
ixor
ireturn
end local 6 end local 4 end local 2 22: StackMap locals:
StackMap stack:
new java.util.BitSet
dup
iload 1
invokespecial java.util.BitSet.<init>:(I)V
astore 2
start local 2 23: iconst_0
istore 3
start local 3 24: goto 32
25: StackMap locals: java.util.BitSet int
StackMap stack:
aload 0
iload 3
iaload
istore 4
start local 4 26: iload 4
iload 1
if_icmplt 28
27: aload 0
arraylength
ireturn
28: StackMap locals: int
StackMap stack:
aload 2
iload 4
invokevirtual java.util.BitSet.get:(I)Z
ifeq 30
29: iload 3
ireturn
30: StackMap locals:
StackMap stack:
aload 2
iload 4
invokevirtual java.util.BitSet.set:(I)V
end local 4 31: iinc 3 1
StackMap locals:
StackMap stack:
32: iload 3
aload 0
arraylength
if_icmplt 25
end local 3 33: aload 2
iconst_0
invokevirtual java.util.BitSet.nextClearBit:(I)I
istore 3
start local 3 34: getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
ifne 35
iload 3
iload 1
if_icmple 35
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
35: StackMap locals:
StackMap stack:
iload 3
iload 1
if_icmpne 37
36: iconst_0
ireturn
37: StackMap locals:
StackMap stack:
iload 3
iconst_m1
ixor
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 reorder [I
0 38 1 newArity I
2 22 2 mask J
3 13 4 i I
5 11 5 arg I
8 11 6 bit J
17 22 4 zeroBit J
18 22 6 zeroPos I
23 38 2 mask Ljava/util/BitSet;
24 33 3 i I
26 31 4 arg I
34 38 3 zeroPos I
MethodParameters:
Name Flags
reorder
newArity
static boolean permuteArgumentChecks(int[], java.lang.invoke.MethodType, java.lang.invoke.MethodType);
descriptor: ([ILjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
aload 2
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
if_acmpeq 4
1: ldc "return types do not match"
2: aload 2
aload 1
3: invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
4: StackMap locals:
StackMap stack:
aload 0
arraylength
aload 2
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
if_icmpeq 8
5: ldc "old type parameter count and reorder array length do not match"
6: aload 2
aload 0
invokestatic java.util.Arrays.toString:([I)Ljava/lang/String;
7: invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
8: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
istore 3
start local 3 9: iconst_0
istore 4
start local 4 10: goto 23
11: StackMap locals: int int
StackMap stack:
aload 0
iload 4
iaload
istore 5
start local 5 12: iload 5
iflt 13
iload 5
iload 3
if_icmplt 16
13: StackMap locals: int
StackMap stack:
ldc "index is out of bounds for new type"
14: iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 1
15: invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
16: StackMap locals:
StackMap stack:
aload 1
iload 5
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
astore 6
start local 6 17: aload 2
iload 4
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
astore 7
start local 7 18: aload 6
aload 7
if_acmpeq 22
19: ldc "parameter types do not match after reorder"
20: aload 2
aload 1
21: invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
end local 7 end local 6 end local 5 22: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
23: iload 4
aload 0
arraylength
if_icmplt 11
end local 4 24: iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 reorder [I
0 25 1 newType Ljava/lang/invoke/MethodType;
0 25 2 oldType Ljava/lang/invoke/MethodType;
9 25 3 limit I
10 24 4 j I
12 22 5 i I
17 22 6 src Ljava/lang/Class<*>;
18 22 7 dst Ljava/lang/Class<*>;
MethodParameters:
Name Flags
reorder
newType
oldType
public static java.lang.invoke.MethodHandle constant(java.lang.Class<?>, );
descriptor: (Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 8
1: aload 0
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpne 3
2: ldc "void type"
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
3: StackMap locals:
StackMap stack:
aload 0
invokestatic sun.invoke.util.Wrapper.forPrimitiveType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
astore 2
start local 2 4: aload 2
aload 1
aload 0
invokevirtual sun.invoke.util.Wrapper.convert:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
astore 1
5: aload 2
invokevirtual sun.invoke.util.Wrapper.zero:()Ljava/lang/Object;
aload 1
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 7
6: aload 2
aload 0
invokestatic java.lang.invoke.MethodHandles.zero:(Lsun/invoke/util/Wrapper;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
areturn
7: StackMap locals: sun.invoke.util.Wrapper
StackMap stack:
aload 0
invokestatic java.lang.invoke.MethodHandles.identity:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
iconst_0
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic java.lang.invoke.MethodHandles.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
areturn
end local 2 8: StackMap locals:
StackMap stack:
aload 1
ifnonnull 10
9: getstatic sun.invoke.util.Wrapper.OBJECT:Lsun/invoke/util/Wrapper;
aload 0
invokestatic java.lang.invoke.MethodHandles.zero:(Lsun/invoke/util/Wrapper;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
areturn
10: StackMap locals:
StackMap stack:
aload 0
invokestatic java.lang.invoke.MethodHandles.identity:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
aload 1
invokevirtual java.lang.invoke.MethodHandle.bindTo:(Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 type Ljava/lang/Class<*>;
0 11 1 value Ljava/lang/Object;
4 8 2 w Lsun/invoke/util/Wrapper;
Signature: (Ljava/lang/Class<*>;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
type
value
public static java.lang.invoke.MethodHandle identity(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 1
aload 0
invokestatic sun.invoke.util.Wrapper.forPrimitiveType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
goto 2
StackMap locals:
StackMap stack:
1: getstatic sun.invoke.util.Wrapper.OBJECT:Lsun/invoke/util/Wrapper;
StackMap locals:
StackMap stack: sun.invoke.util.Wrapper
2: astore 1
start local 1 3: aload 1
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
istore 2
start local 2 4: getstatic java.lang.invoke.MethodHandles.IDENTITY_MHS:[Ljava/lang/invoke/MethodHandle;
iload 2
aaload
astore 3
start local 3 5: aload 3
ifnonnull 7
6: getstatic java.lang.invoke.MethodHandles.IDENTITY_MHS:[Ljava/lang/invoke/MethodHandle;
iload 2
aload 1
invokevirtual sun.invoke.util.Wrapper.primitiveType:()Ljava/lang/Class;
invokestatic java.lang.invoke.MethodHandles.makeIdentity:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
invokestatic java.lang.invoke.MethodHandles.setCachedMethodHandle:([Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
astore 3
7: StackMap locals: sun.invoke.util.Wrapper int java.lang.invoke.MethodHandle
StackMap stack:
aload 3
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
aload 0
if_acmpne 9
8: aload 3
areturn
9: StackMap locals:
StackMap stack:
getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
ifne 10
aload 1
getstatic sun.invoke.util.Wrapper.OBJECT:Lsun/invoke/util/Wrapper;
if_acmpeq 10
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
10: StackMap locals:
StackMap stack:
aload 0
invokestatic java.lang.invoke.MethodHandles.makeIdentity:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 type Ljava/lang/Class<*>;
3 11 1 btw Lsun/invoke/util/Wrapper;
4 11 2 pos I
5 11 3 ident Ljava/lang/invoke/MethodHandle;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
type
public static java.lang.invoke.MethodHandle zero(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 2
aload 0
invokestatic sun.invoke.util.Wrapper.forPrimitiveType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
aload 0
invokestatic java.lang.invoke.MethodHandles.zero:(Lsun/invoke/util/Wrapper;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
goto 3
StackMap locals:
StackMap stack:
2: getstatic sun.invoke.util.Wrapper.OBJECT:Lsun/invoke/util/Wrapper;
aload 0
invokestatic java.lang.invoke.MethodHandles.zero:(Lsun/invoke/util/Wrapper;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
StackMap locals:
StackMap stack: java.lang.invoke.MethodHandle
3: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 type Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
type
private static java.lang.invoke.MethodHandle identityOrVoid(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpne 1
aload 0
invokestatic java.lang.invoke.MethodHandles.zero:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
invokestatic java.lang.invoke.MethodHandles.identity:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
StackMap locals:
StackMap stack: java.lang.invoke.MethodHandle
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 type Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
type
public static java.lang.invoke.MethodHandle empty(java.lang.invoke.MethodType);
descriptor: (Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
invokestatic java.lang.invoke.MethodHandles.zero:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
iconst_0
aload 0
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;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 type Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
type
private static java.lang.invoke.MethodHandle makeIdentity(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
aload 0
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 1
start local 1 1: aload 0
invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
invokestatic java.lang.invoke.LambdaForm.identityForm:(Ljava/lang/invoke/LambdaForm$BasicType;)Ljava/lang/invoke/LambdaForm;
astore 2
start local 2 2: aload 1
aload 2
getstatic java.lang.invoke.MethodHandleImpl$Intrinsic.IDENTITY:Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
invokestatic java.lang.invoke.MethodHandleImpl.makeIntrinsic:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/invoke/MethodHandleImpl$Intrinsic;)Ljava/lang/invoke/MethodHandle;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 ptype Ljava/lang/Class<*>;
1 3 1 mtype Ljava/lang/invoke/MethodType;
2 3 2 lform Ljava/lang/invoke/LambdaForm;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
ptype
private static java.lang.invoke.MethodHandle zero(sun.invoke.util.Wrapper, java.lang.Class<?>);
descriptor: (Lsun/invoke/util/Wrapper;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
istore 2
start local 2 1: getstatic java.lang.invoke.MethodHandles.ZERO_MHS:[Ljava/lang/invoke/MethodHandle;
iload 2
aaload
astore 3
start local 3 2: aload 3
ifnonnull 4
3: getstatic java.lang.invoke.MethodHandles.ZERO_MHS:[Ljava/lang/invoke/MethodHandle;
iload 2
aload 0
invokevirtual sun.invoke.util.Wrapper.primitiveType:()Ljava/lang/Class;
invokestatic java.lang.invoke.MethodHandles.makeZero:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
invokestatic java.lang.invoke.MethodHandles.setCachedMethodHandle:([Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
astore 3
4: StackMap locals: int java.lang.invoke.MethodHandle
StackMap stack:
aload 3
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
aload 1
if_acmpne 6
5: aload 3
areturn
6: StackMap locals:
StackMap stack:
getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
ifne 7
aload 0
getstatic sun.invoke.util.Wrapper.OBJECT:Lsun/invoke/util/Wrapper;
if_acmpeq 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
aload 1
invokestatic java.lang.invoke.MethodHandles.makeZero:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 btw Lsun/invoke/util/Wrapper;
0 8 1 rtype Ljava/lang/Class<*>;
1 8 2 pos I
2 8 3 zero Ljava/lang/invoke/MethodHandle;
Signature: (Lsun/invoke/util/Wrapper;Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
btw
rtype
private static java.lang.invoke.MethodHandle makeZero(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 1
start local 1 1: aload 0
invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
invokestatic java.lang.invoke.LambdaForm.zeroForm:(Ljava/lang/invoke/LambdaForm$BasicType;)Ljava/lang/invoke/LambdaForm;
astore 2
start local 2 2: aload 1
aload 2
getstatic java.lang.invoke.MethodHandleImpl$Intrinsic.ZERO:Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
invokestatic java.lang.invoke.MethodHandleImpl.makeIntrinsic:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/invoke/MethodHandleImpl$Intrinsic;)Ljava/lang/invoke/MethodHandle;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 rtype Ljava/lang/Class<*>;
1 3 1 mtype Ljava/lang/invoke/MethodType;
2 3 2 lform Ljava/lang/invoke/LambdaForm;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
rtype
private static synchronized java.lang.invoke.MethodHandle setCachedMethodHandle(java.lang.invoke.MethodHandle[], int, java.lang.invoke.MethodHandle);
descriptor: ([Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
aaload
astore 3
start local 3 1: aload 3
ifnull 2
aload 3
areturn
2: StackMap locals: java.lang.invoke.MethodHandle
StackMap stack:
aload 0
iload 1
aload 2
dup_x2
aastore
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 cache [Ljava/lang/invoke/MethodHandle;
0 3 1 pos I
0 3 2 value Ljava/lang/invoke/MethodHandle;
1 3 3 prev Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
cache
pos
value
public static java.lang.invoke.MethodHandle insertArguments(java.lang.invoke.MethodHandle, int, java.lang.Object[]);
descriptor: (Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=4, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 2
arraylength
istore 3
start local 3 1: aload 0
iload 3
iload 1
invokestatic java.lang.invoke.MethodHandles.insertArgumentsChecks:(Ljava/lang/invoke/MethodHandle;II)[Ljava/lang/Class;
astore 4
start local 4 2: iload 3
ifne 3
aload 0
areturn
3: StackMap locals: int java.lang.Class[]
StackMap stack:
aload 0
invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
astore 5
start local 5 4: iconst_0
istore 6
start local 6 5: goto 14
6: StackMap locals: java.lang.invoke.BoundMethodHandle int
StackMap stack:
aload 2
iload 6
aaload
astore 7
start local 7 7: aload 4
iload 1
iload 6
iadd
aaload
astore 8
start local 8 8: aload 8
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 11
9: aload 5
iload 1
aload 8
aload 7
invokestatic java.lang.invoke.MethodHandles.insertArgumentPrimitive:(Ljava/lang/invoke/BoundMethodHandle;ILjava/lang/Class;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
astore 5
10: goto 13
11: StackMap locals: java.lang.Object java.lang.Class
StackMap stack:
aload 8
aload 7
invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
astore 7
12: aload 5
iload 1
aload 7
invokevirtual java.lang.invoke.BoundMethodHandle.bindArgumentL:(ILjava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
astore 5
end local 8 end local 7 13: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
14: iload 6
iload 3
if_icmplt 6
end local 6 15: aload 5
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 16 0 target Ljava/lang/invoke/MethodHandle;
0 16 1 pos I
0 16 2 values [Ljava/lang/Object;
1 16 3 insCount I
2 16 4 ptypes [Ljava/lang/Class;
4 16 5 result Ljava/lang/invoke/BoundMethodHandle;
5 15 6 i I
7 13 7 value Ljava/lang/Object;
8 13 8 ptype Ljava/lang/Class<*>;
MethodParameters:
Name Flags
target
pos
values
private static java.lang.invoke.BoundMethodHandle insertArgumentPrimitive(java.lang.invoke.BoundMethodHandle, int, java.lang.Class<?>, );
descriptor: (Ljava/lang/invoke/BoundMethodHandle;ILjava/lang/Class;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokestatic sun.invoke.util.Wrapper.forPrimitiveType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
astore 4
start local 4 1: aload 4
aload 3
aload 2
invokevirtual sun.invoke.util.Wrapper.convert:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
astore 3
2: invokestatic java.lang.invoke.MethodHandles.$SWITCH_TABLE$sun$invoke$util$Wrapper:()[I
aload 4
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
iaload
tableswitch { // 5 - 8
5: 3
6: 4
7: 5
8: 6
default: 7
}
3: StackMap locals: sun.invoke.util.Wrapper
StackMap stack:
aload 0
iload 1
aload 3
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
invokevirtual java.lang.invoke.BoundMethodHandle.bindArgumentI:(II)Ljava/lang/invoke/BoundMethodHandle;
areturn
4: StackMap locals:
StackMap stack:
aload 0
iload 1
aload 3
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
invokevirtual java.lang.invoke.BoundMethodHandle.bindArgumentJ:(IJ)Ljava/lang/invoke/BoundMethodHandle;
areturn
5: StackMap locals:
StackMap stack:
aload 0
iload 1
aload 3
checkcast java.lang.Float
invokevirtual java.lang.Float.floatValue:()F
invokevirtual java.lang.invoke.BoundMethodHandle.bindArgumentF:(IF)Ljava/lang/invoke/BoundMethodHandle;
areturn
6: StackMap locals:
StackMap stack:
aload 0
iload 1
aload 3
checkcast java.lang.Double
invokevirtual java.lang.Double.doubleValue:()D
invokevirtual java.lang.invoke.BoundMethodHandle.bindArgumentD:(ID)Ljava/lang/invoke/BoundMethodHandle;
areturn
7: StackMap locals:
StackMap stack:
aload 0
iload 1
aload 3
invokestatic sun.invoke.util.ValueConversions.widenSubword:(Ljava/lang/Object;)I
invokevirtual java.lang.invoke.BoundMethodHandle.bindArgumentI:(II)Ljava/lang/invoke/BoundMethodHandle;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 result Ljava/lang/invoke/BoundMethodHandle;
0 8 1 pos I
0 8 2 ptype Ljava/lang/Class<*>;
0 8 3 value Ljava/lang/Object;
1 8 4 w Lsun/invoke/util/Wrapper;
Signature: (Ljava/lang/invoke/BoundMethodHandle;ILjava/lang/Class<*>;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
MethodParameters:
Name Flags
result
pos
ptype
value
private static java.lang.Class<?>[] insertArgumentsChecks(java.lang.invoke.MethodHandle, int, int);
descriptor: (Ljava/lang/invoke/MethodHandle;II)[Ljava/lang/Class;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 3
start local 3 1: aload 3
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
istore 4
start local 4 2: iload 4
iload 1
isub
istore 5
start local 5 3: iload 5
ifge 5
4: ldc "too many values to insert"
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
5: StackMap locals: java.lang.invoke.MethodType int int
StackMap stack:
iload 2
iflt 6
iload 2
iload 5
if_icmple 7
6: StackMap locals:
StackMap stack:
ldc "no argument type to append"
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
7: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.invoke.MethodType.ptypes:()[Ljava/lang/Class;
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 8 0 target Ljava/lang/invoke/MethodHandle;
0 8 1 insCount I
0 8 2 pos I
1 8 3 oldType Ljava/lang/invoke/MethodType;
2 8 4 outargs I
3 8 5 inargs I
Exceptions:
throws java.lang.RuntimeException
Signature: (Ljava/lang/invoke/MethodHandle;II)[Ljava/lang/Class<*>;
MethodParameters:
Name Flags
target
insCount
pos
public static java.lang.invoke.MethodHandle dropArguments(java.lang.invoke.MethodHandle, int, java.util.List<java.lang.Class<?>>);
descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
aload 2
invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
invokestatic java.lang.invoke.MethodHandles.copyTypes:([Ljava/lang/Object;)Ljava/util/List;
invokestatic java.lang.invoke.MethodHandles.dropArguments0:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 target Ljava/lang/invoke/MethodHandle;
0 1 1 pos I
0 1 2 valueTypes Ljava/util/List<Ljava/lang/Class<*>;>;
Signature: (Ljava/lang/invoke/MethodHandle;ILjava/util/List<Ljava/lang/Class<*>;>;)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
target
pos
valueTypes
private static java.util.List<java.lang.Class<?>> copyTypes([]);
descriptor: ([Ljava/lang/Object;)Ljava/util/List;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
aload 0
arraylength
ldc [Ljava/lang/Class;
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;ILjava/lang/Class;)[Ljava/lang/Object;
checkcast java.lang.Class[]
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 array [Ljava/lang/Object;
Signature: ([Ljava/lang/Object;)Ljava/util/List<Ljava/lang/Class<*>;>;
MethodParameters:
Name Flags
array
private static java.lang.invoke.MethodHandle dropArguments0(java.lang.invoke.MethodHandle, int, java.util.List<java.lang.Class<?>>);
descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 3
start local 3 1: aload 3
iload 1
aload 2
invokestatic java.lang.invoke.MethodHandles.dropArgumentChecks:(Ljava/lang/invoke/MethodType;ILjava/util/List;)I
istore 4
start local 4 2: aload 3
iload 1
aload 2
invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(ILjava/util/List;)Ljava/lang/invoke/MethodType;
astore 5
start local 5 3: iload 4
ifne 4
aload 0
areturn
4: StackMap locals: java.lang.invoke.MethodType int java.lang.invoke.MethodType
StackMap stack:
aload 0
invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
astore 6
start local 6 5: aload 6
getfield java.lang.invoke.BoundMethodHandle.form:Ljava/lang/invoke/LambdaForm;
astore 7
start local 7 6: iconst_1
iload 1
iadd
istore 8
start local 8 7: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 10
StackMap locals: java.lang.invoke.MethodHandle int java.util.List java.lang.invoke.MethodType int java.lang.invoke.MethodType java.lang.invoke.BoundMethodHandle java.lang.invoke.LambdaForm int top java.util.Iterator
StackMap stack:
8: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Class
astore 9
start local 9 9: aload 7
invokevirtual java.lang.invoke.LambdaForm.editor:()Ljava/lang/invoke/LambdaFormEditor;
iload 8
iinc 8 1
aload 9
invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
invokevirtual java.lang.invoke.LambdaFormEditor.addArgumentForm:(ILjava/lang/invoke/LambdaForm$BasicType;)Ljava/lang/invoke/LambdaForm;
astore 7
end local 9 10: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
11: aload 6
aload 5
aload 7
invokevirtual java.lang.invoke.BoundMethodHandle.copyWith:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;)Ljava/lang/invoke/BoundMethodHandle;
astore 6
12: aload 6
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 13 0 target Ljava/lang/invoke/MethodHandle;
0 13 1 pos I
0 13 2 valueTypes Ljava/util/List<Ljava/lang/Class<*>;>;
1 13 3 oldType Ljava/lang/invoke/MethodType;
2 13 4 dropped I
3 13 5 newType Ljava/lang/invoke/MethodType;
5 13 6 result Ljava/lang/invoke/BoundMethodHandle;
6 13 7 lform Ljava/lang/invoke/LambdaForm;
7 13 8 insertFormArg I
9 10 9 ptype Ljava/lang/Class<*>;
Signature: (Ljava/lang/invoke/MethodHandle;ILjava/util/List<Ljava/lang/Class<*>;>;)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
target
pos
valueTypes
private static int dropArgumentChecks(java.lang.invoke.MethodType, int, java.util.List<java.lang.Class<?>>);
descriptor: (Ljava/lang/invoke/MethodType;ILjava/util/List;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface java.util.List.size:()I
istore 3
start local 3 1: iload 3
invokestatic java.lang.invoke.MethodType.checkSlotCount:(I)V
2: aload 0
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
istore 4
start local 4 3: iload 4
iload 3
iadd
istore 5
start local 5 4: iload 1
iflt 5
iload 1
iload 4
if_icmple 8
5: StackMap locals: int int int
StackMap stack:
new java.lang.StringBuilder
dup
ldc "no argument type to remove"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
6: iconst_5
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
aload 2
aastore
dup
iconst_3
iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_4
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
7: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
8: StackMap locals:
StackMap stack:
iload 3
ireturn
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 9 0 oldType Ljava/lang/invoke/MethodType;
0 9 1 pos I
0 9 2 valueTypes Ljava/util/List<Ljava/lang/Class<*>;>;
1 9 3 dropped I
3 9 4 outargs I
4 9 5 inargs I
Signature: (Ljava/lang/invoke/MethodType;ILjava/util/List<Ljava/lang/Class<*>;>;)I
MethodParameters:
Name Flags
oldType
pos
valueTypes
public static java.lang.invoke.MethodHandle dropArguments(java.lang.invoke.MethodHandle, int, java.lang.Class<?>[]);
descriptor: (Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
aload 2
invokestatic java.lang.invoke.MethodHandles.copyTypes:([Ljava/lang/Object;)Ljava/util/List;
invokestatic java.lang.invoke.MethodHandles.dropArguments0:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 target Ljava/lang/invoke/MethodHandle;
0 1 1 pos I
0 1 2 valueTypes [Ljava/lang/Class;
Signature: (Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
target
pos
valueTypes
private static java.lang.invoke.MethodHandle dropArgumentsToMatch(java.lang.invoke.MethodHandle, int, java.util.List<java.lang.Class<?>>, int, boolean);
descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/util/List;IZ)Ljava/lang/invoke/MethodHandle;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=10, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
invokestatic java.lang.invoke.MethodHandles.copyTypes:([Ljava/lang/Object;)Ljava/util/List;
astore 2
1: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
astore 5
start local 5 2: aload 5
invokeinterface java.util.List.size:()I
istore 6
start local 6 3: iload 1
ifeq 8
4: iload 1
iflt 5
iload 1
iload 6
if_icmple 6
5: StackMap locals: java.util.List int
StackMap stack:
ldc "illegal skip"
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 0
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
6: StackMap locals:
StackMap stack:
aload 5
iload 1
iload 6
invokeinterface java.util.List.subList:(II)Ljava/util/List;
astore 5
7: iload 6
iload 1
isub
istore 6
8: StackMap locals:
StackMap stack:
aload 2
astore 7
start local 7 9: aload 7
invokeinterface java.util.List.size:()I
istore 8
start local 8 10: iload 3
ifeq 16
11: iload 3
iflt 12
iload 3
iload 8
if_icmple 13
12: StackMap locals: java.util.List int
StackMap stack:
ldc "illegal pos"
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 2
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
13: StackMap locals:
StackMap stack:
aload 7
iload 3
iload 8
invokeinterface java.util.List.subList:(II)Ljava/util/List;
astore 7
14: iload 8
iload 3
isub
istore 8
15: getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
ifne 16
aload 7
invokeinterface java.util.List.size:()I
iload 8
if_icmpeq 16
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
16: StackMap locals:
StackMap stack:
iload 6
iload 8
if_icmpgt 17
aload 5
aload 7
iconst_0
iload 6
invokeinterface java.util.List.subList:(II)Ljava/util/List;
invokeinterface java.util.List.equals:(Ljava/lang/Object;)Z
ifne 20
17: StackMap locals:
StackMap stack:
iload 4
ifeq 19
18: aconst_null
areturn
19: StackMap locals:
StackMap stack:
ldc "argument lists do not match"
aload 5
aload 2
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
20: StackMap locals:
StackMap stack:
aload 7
iload 6
iload 8
invokeinterface java.util.List.subList:(II)Ljava/util/List;
astore 7
21: iload 8
iload 6
isub
istore 8
22: getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
ifne 23
aload 7
invokeinterface java.util.List.size:()I
iload 8
if_icmpeq 23
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
23: StackMap locals:
StackMap stack:
aload 0
astore 9
start local 9 24: iload 8
ifle 26
25: aload 9
iload 1
iload 6
iadd
aload 7
invokestatic java.lang.invoke.MethodHandles.dropArguments0:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
astore 9
26: StackMap locals: java.lang.invoke.MethodHandle
StackMap stack:
iload 3
ifle 28
27: aload 9
iload 1
aload 2
iconst_0
iload 3
invokeinterface java.util.List.subList:(II)Ljava/util/List;
invokestatic java.lang.invoke.MethodHandles.dropArguments0:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
astore 9
28: StackMap locals:
StackMap stack:
aload 9
areturn
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 29 0 target Ljava/lang/invoke/MethodHandle;
0 29 1 skip I
0 29 2 newTypes Ljava/util/List<Ljava/lang/Class<*>;>;
0 29 3 pos I
0 29 4 nullOnFailure Z
2 29 5 oldTypes Ljava/util/List<Ljava/lang/Class<*>;>;
3 29 6 match I
9 29 7 addTypes Ljava/util/List<Ljava/lang/Class<*>;>;
10 29 8 add I
24 29 9 adapter Ljava/lang/invoke/MethodHandle;
Signature: (Ljava/lang/invoke/MethodHandle;ILjava/util/List<Ljava/lang/Class<*>;>;IZ)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
target
skip
newTypes
pos
nullOnFailure
public static java.lang.invoke.MethodHandle dropArgumentsToMatch(java.lang.invoke.MethodHandle, int, java.util.List<java.lang.Class<?>>, int);
descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/util/List;I)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 2
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 0
iload 1
aload 2
iload 3
iconst_0
invokestatic java.lang.invoke.MethodHandles.dropArgumentsToMatch:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;IZ)Ljava/lang/invoke/MethodHandle;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 target Ljava/lang/invoke/MethodHandle;
0 3 1 skip I
0 3 2 newTypes Ljava/util/List<Ljava/lang/Class<*>;>;
0 3 3 pos I
Signature: (Ljava/lang/invoke/MethodHandle;ILjava/util/List<Ljava/lang/Class<*>;>;I)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
target
skip
newTypes
pos
public static java.lang.invoke.MethodHandle dropReturn(java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=6, args_size=1
start local 0 0: aload 0
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 1
start local 1 2: aload 1
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
astore 2
start local 2 3: aload 2
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpne 5
4: aload 0
areturn
5: StackMap locals: java.lang.invoke.MethodType java.lang.Class
StackMap stack:
aload 1
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 3
start local 3 6: aload 0
invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
astore 4
start local 4 7: aload 4
invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
getstatic java.lang.invoke.LambdaForm$BasicType.V_TYPE:Ljava/lang/invoke/LambdaForm$BasicType;
iconst_1
invokevirtual java.lang.invoke.LambdaFormEditor.filterReturnForm:(Ljava/lang/invoke/LambdaForm$BasicType;Z)Ljava/lang/invoke/LambdaForm;
astore 5
start local 5 8: aload 4
aload 3
aload 5
invokevirtual java.lang.invoke.BoundMethodHandle.copyWith:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;)Ljava/lang/invoke/BoundMethodHandle;
astore 4
9: aload 4
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 10 0 target Ljava/lang/invoke/MethodHandle;
2 10 1 oldType Ljava/lang/invoke/MethodType;
3 10 2 oldReturnType Ljava/lang/Class<*>;
6 10 3 newType Ljava/lang/invoke/MethodType;
7 10 4 result Ljava/lang/invoke/BoundMethodHandle;
8 10 5 lform Ljava/lang/invoke/LambdaForm;
MethodParameters:
Name Flags
target
public static java.lang.invoke.MethodHandle filterArguments(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle[]);
descriptor: (Ljava/lang/invoke/MethodHandle;I[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=4, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
aload 2
invokestatic java.lang.invoke.MethodHandles.filterArgumentsCheckArity:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/invoke/MethodHandle;)V
1: aload 0
astore 3
start local 3 2: iconst_0
istore 4
start local 4 3: aload 2
arraylength
newarray 10
astore 5
start local 5 4: aconst_null
astore 6
start local 6 5: aload 2
arraylength
iconst_1
isub
istore 7
start local 7 6: goto 20
7: StackMap locals: java.lang.invoke.MethodHandle int java.lang.invoke.MethodHandle[] java.lang.invoke.MethodHandle int int[] java.lang.invoke.MethodHandle int
StackMap stack:
aload 2
iload 7
aaload
astore 8
start local 8 8: aload 8
ifnonnull 9
goto 19
9: StackMap locals: java.lang.invoke.MethodHandle
StackMap stack:
aload 6
aload 8
if_acmpeq 17
10: aload 6
ifnull 15
11: iload 4
iconst_1
if_icmple 14
12: aload 3
aload 6
aload 5
iload 4
invokestatic java.util.Arrays.copyOf:([II)[I
invokestatic java.lang.invoke.MethodHandles.filterRepeatedArgument:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;[I)Ljava/lang/invoke/MethodHandle;
astore 3
13: goto 15
14: StackMap locals:
StackMap stack:
aload 3
aload 5
iconst_0
iaload
iconst_1
isub
aload 6
invokestatic java.lang.invoke.MethodHandles.filterArgument:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
astore 3
15: StackMap locals:
StackMap stack:
aload 8
astore 6
16: iconst_0
istore 4
17: StackMap locals:
StackMap stack:
aload 0
iload 1
iload 7
iadd
aload 8
invokestatic java.lang.invoke.MethodHandles.filterArgumentChecks:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)V
18: aload 5
iload 4
iinc 4 1
iload 1
iload 7
iadd
iconst_1
iadd
iastore
end local 8 19: StackMap locals:
StackMap stack:
iinc 7 -1
StackMap locals:
StackMap stack:
20: iload 7
ifge 7
end local 7 21: iload 4
iconst_1
if_icmple 24
22: aload 3
aload 6
aload 5
iload 4
invokestatic java.util.Arrays.copyOf:([II)[I
invokestatic java.lang.invoke.MethodHandles.filterRepeatedArgument:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;[I)Ljava/lang/invoke/MethodHandle;
astore 3
23: goto 26
StackMap locals:
StackMap stack:
24: iload 4
iconst_1
if_icmpne 26
25: aload 3
aload 5
iconst_0
iaload
iconst_1
isub
aload 6
invokestatic java.lang.invoke.MethodHandles.filterArgument:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
astore 3
26: StackMap locals:
StackMap stack:
aload 3
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 27 0 target Ljava/lang/invoke/MethodHandle;
0 27 1 pos I
0 27 2 filters [Ljava/lang/invoke/MethodHandle;
2 27 3 adapter Ljava/lang/invoke/MethodHandle;
3 27 4 index I
4 27 5 positions [I
5 27 6 filter Ljava/lang/invoke/MethodHandle;
6 21 7 i I
8 19 8 newFilter Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
target
pos
filters
private static java.lang.invoke.MethodHandle filterRepeatedArgument(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, int[]);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;[I)Ljava/lang/invoke/MethodHandle;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=12, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 3
start local 3 1: aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 4
start local 4 2: aload 0
invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
astore 5
start local 5 3: aload 4
iconst_0
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
astore 6
start local 6 4: aload 3
invokevirtual java.lang.invoke.MethodType.ptypes:()[Ljava/lang/Class;
invokevirtual java.lang.Class[].clone:()Ljava/lang/Object;
checkcast java.lang.Class[]
astore 7
start local 7 5: aload 2
dup
astore 11
arraylength
istore 10
iconst_0
istore 9
goto 9
StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle int[] java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.invoke.BoundMethodHandle java.lang.Class java.lang.Class[] top int int int[]
StackMap stack:
6: aload 11
iload 9
iaload
istore 8
start local 8 7: aload 7
iload 8
iconst_1
isub
aload 6
aastore
end local 8 8: iinc 9 1
StackMap locals:
StackMap stack:
9: iload 9
iload 10
if_icmplt 6
10: aload 3
invokevirtual java.lang.invoke.MethodType.rtype:()Ljava/lang/Class;
aload 7
iconst_1
invokestatic java.lang.invoke.MethodType.makeImpl:(Ljava/lang/Class;[Ljava/lang/Class;Z)Ljava/lang/invoke/MethodType;
astore 8
start local 8 11: aload 5
invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
aload 6
invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
aload 2
invokevirtual java.lang.invoke.LambdaFormEditor.filterRepeatedArgumentForm:(Ljava/lang/invoke/LambdaForm$BasicType;[I)Ljava/lang/invoke/LambdaForm;
astore 9
start local 9 12: aload 5
aload 8
aload 9
aload 1
invokevirtual java.lang.invoke.BoundMethodHandle.copyWithExtendL:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
areturn
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 13 0 adapter Ljava/lang/invoke/MethodHandle;
0 13 1 filter Ljava/lang/invoke/MethodHandle;
0 13 2 positions [I
1 13 3 targetType Ljava/lang/invoke/MethodType;
2 13 4 filterType Ljava/lang/invoke/MethodType;
3 13 5 result Ljava/lang/invoke/BoundMethodHandle;
4 13 6 newParamType Ljava/lang/Class<*>;
5 13 7 ptypes [Ljava/lang/Class;
7 8 8 pos I
11 13 8 newType Ljava/lang/invoke/MethodType;
12 13 9 lform Ljava/lang/invoke/LambdaForm;
MethodParameters:
Name Flags
adapter
filter
positions
static java.lang.invoke.MethodHandle filterArgument(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
aload 2
invokestatic java.lang.invoke.MethodHandles.filterArgumentChecks:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)V
1: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 3
start local 3 2: aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 4
start local 4 3: aload 0
invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
astore 5
start local 5 4: aload 4
iconst_0
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
astore 6
start local 6 5: aload 5
invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
iconst_1
iload 1
iadd
aload 6
invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
invokevirtual java.lang.invoke.LambdaFormEditor.filterArgumentForm:(ILjava/lang/invoke/LambdaForm$BasicType;)Ljava/lang/invoke/LambdaForm;
astore 7
start local 7 6: aload 3
iload 1
aload 6
invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 8
start local 8 7: aload 5
aload 8
aload 7
aload 2
invokevirtual java.lang.invoke.BoundMethodHandle.copyWithExtendL:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
astore 5
8: aload 5
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 9 0 target Ljava/lang/invoke/MethodHandle;
0 9 1 pos I
0 9 2 filter Ljava/lang/invoke/MethodHandle;
2 9 3 targetType Ljava/lang/invoke/MethodType;
3 9 4 filterType Ljava/lang/invoke/MethodType;
4 9 5 result Ljava/lang/invoke/BoundMethodHandle;
5 9 6 newParamType Ljava/lang/Class<*>;
6 9 7 lform Ljava/lang/invoke/LambdaForm;
7 9 8 newType Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
target
pos
filter
private static void filterArgumentsCheckArity(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle[]);
descriptor: (Ljava/lang/invoke/MethodHandle;I[Ljava/lang/invoke/MethodHandle;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 3
start local 3 1: aload 3
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
istore 4
start local 4 2: iload 1
aload 2
arraylength
iadd
iload 4
if_icmple 4
3: ldc "too many filters"
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
4: StackMap locals: java.lang.invoke.MethodType int
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 target Ljava/lang/invoke/MethodHandle;
0 5 1 pos I
0 5 2 filters [Ljava/lang/invoke/MethodHandle;
1 5 3 targetType Ljava/lang/invoke/MethodType;
2 5 4 maxPos I
MethodParameters:
Name Flags
target
pos
filters
private static void filterArgumentChecks(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 3
start local 3 1: aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 4
start local 4 2: aload 4
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iconst_1
if_icmpne 4
3: aload 4
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
aload 3
iload 1
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
if_acmpeq 5
4: StackMap locals: java.lang.invoke.MethodType java.lang.invoke.MethodType
StackMap stack:
ldc "target and filter types do not match"
aload 3
aload 4
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
5: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 target Ljava/lang/invoke/MethodHandle;
0 6 1 pos I
0 6 2 filter Ljava/lang/invoke/MethodHandle;
1 6 3 targetType Ljava/lang/invoke/MethodType;
2 6 4 filterType Ljava/lang/invoke/MethodType;
Exceptions:
throws java.lang.RuntimeException
MethodParameters:
Name Flags
target
pos
filter
public static java.lang.invoke.MethodHandle collectArguments(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
aload 2
invokestatic java.lang.invoke.MethodHandles.collectArgumentsChecks:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
astore 3
start local 3 1: aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 4
start local 4 2: aload 0
invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
astore 5
start local 5 3: aload 4
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
invokevirtual java.lang.Class.isArray:()Z
ifeq 7
aload 2
invokevirtual java.lang.invoke.MethodHandle.intrinsicName:()Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
getstatic java.lang.invoke.MethodHandleImpl$Intrinsic.NEW_ARRAY:Ljava/lang/invoke/MethodHandleImpl$Intrinsic;
if_acmpne 7
4: aload 5
invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
iconst_1
iload 1
iadd
aload 2
invokevirtual java.lang.invoke.LambdaFormEditor.collectArgumentArrayForm:(ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/LambdaForm;
astore 6
start local 6 5: aload 6
ifnull 7
6: aload 5
aload 3
aload 6
invokevirtual java.lang.invoke.BoundMethodHandle.copyWith:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;)Ljava/lang/invoke/BoundMethodHandle;
areturn
end local 6 7: StackMap locals: java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.invoke.BoundMethodHandle
StackMap stack:
aload 5
invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
iconst_1
iload 1
iadd
aload 4
invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.LambdaFormEditor.collectArgumentsForm:(ILjava/lang/invoke/MethodType;)Ljava/lang/invoke/LambdaForm;
astore 6
start local 6 8: aload 5
aload 3
aload 6
aload 2
invokevirtual java.lang.invoke.BoundMethodHandle.copyWithExtendL:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
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 9 0 target Ljava/lang/invoke/MethodHandle;
0 9 1 pos I
0 9 2 filter Ljava/lang/invoke/MethodHandle;
1 9 3 newType Ljava/lang/invoke/MethodType;
2 9 4 collectorType Ljava/lang/invoke/MethodType;
3 9 5 result Ljava/lang/invoke/BoundMethodHandle;
5 7 6 lform Ljava/lang/invoke/LambdaForm;
8 9 6 lform Ljava/lang/invoke/LambdaForm;
MethodParameters:
Name Flags
target
pos
filter
private static java.lang.invoke.MethodType collectArgumentsChecks(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 3
start local 3 1: aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 4
start local 4 2: aload 4
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
astore 5
start local 5 3: aload 4
invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
astore 6
start local 6 4: aload 5
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpne 6
5: aload 3
iload 1
aload 6
invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(ILjava/util/List;)Ljava/lang/invoke/MethodType;
areturn
6: StackMap locals: java.lang.invoke.MethodHandle int java.lang.invoke.MethodHandle java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.Class java.util.List
StackMap stack:
aload 5
aload 3
iload 1
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
if_acmpeq 8
7: ldc "target and filter types do not match"
aload 3
aload 4
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
8: StackMap locals:
StackMap stack:
aload 3
iload 1
iload 1
iconst_1
iadd
invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
iload 1
aload 6
invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(ILjava/util/List;)Ljava/lang/invoke/MethodType;
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 9 0 target Ljava/lang/invoke/MethodHandle;
0 9 1 pos I
0 9 2 filter Ljava/lang/invoke/MethodHandle;
1 9 3 targetType Ljava/lang/invoke/MethodType;
2 9 4 filterType Ljava/lang/invoke/MethodType;
3 9 5 rtype Ljava/lang/Class<*>;
4 9 6 filterArgs Ljava/util/List<Ljava/lang/Class<*>;>;
Exceptions:
throws java.lang.RuntimeException
MethodParameters:
Name Flags
target
pos
filter
public static java.lang.invoke.MethodHandle filterReturnValue(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 2
start local 2 1: aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 3
start local 3 2: aload 2
aload 3
invokestatic java.lang.invoke.MethodHandles.filterReturnValueChecks:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)V
3: aload 0
invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
astore 4
start local 4 4: aload 3
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
astore 5
start local 5 5: aload 4
invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
aload 5
iconst_0
invokevirtual java.lang.invoke.LambdaFormEditor.filterReturnForm:(Ljava/lang/invoke/LambdaForm$BasicType;Z)Ljava/lang/invoke/LambdaForm;
astore 6
start local 6 6: aload 2
aload 3
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 7
start local 7 7: aload 4
aload 7
aload 6
aload 1
invokevirtual java.lang.invoke.BoundMethodHandle.copyWithExtendL:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
astore 4
8: aload 4
areturn
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 9 0 target Ljava/lang/invoke/MethodHandle;
0 9 1 filter Ljava/lang/invoke/MethodHandle;
1 9 2 targetType Ljava/lang/invoke/MethodType;
2 9 3 filterType Ljava/lang/invoke/MethodType;
4 9 4 result Ljava/lang/invoke/BoundMethodHandle;
5 9 5 rtype Ljava/lang/invoke/LambdaForm$BasicType;
6 9 6 lform Ljava/lang/invoke/LambdaForm;
7 9 7 newType Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
target
filter
private static void filterReturnValueChecks(java.lang.invoke.MethodType, java.lang.invoke.MethodType);
descriptor: (Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
astore 2
start local 2 1: aload 1
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
istore 3
start local 3 2: iload 3
ifne 4
3: aload 2
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpeq 6
goto 5
4: StackMap locals: java.lang.Class int
StackMap stack:
aload 2
aload 1
iconst_0
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
if_acmpne 5
iload 3
iconst_1
if_icmpeq 6
5: StackMap locals:
StackMap stack:
ldc "target and filter types do not match"
aload 0
aload 1
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
6: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 targetType Ljava/lang/invoke/MethodType;
0 7 1 filterType Ljava/lang/invoke/MethodType;
1 7 2 rtype Ljava/lang/Class<*>;
2 7 3 filterValues I
Exceptions:
throws java.lang.RuntimeException
MethodParameters:
Name Flags
targetType
filterType
static java.lang.invoke.MethodHandle collectReturnValue(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=8, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 2
start local 2 1: aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 3
start local 3 2: aload 0
invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
astore 4
start local 4 3: aload 4
invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
aload 3
invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.LambdaFormEditor.collectReturnValueForm:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/LambdaForm;
astore 5
start local 5 4: aload 2
aload 3
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 6
start local 6 5: aload 3
invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
invokeinterface java.util.List.size:()I
iconst_1
if_icmple 11
6: iconst_0
istore 7
start local 7 7: goto 10
8: StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.invoke.BoundMethodHandle java.lang.invoke.LambdaForm java.lang.invoke.MethodType int
StackMap stack:
aload 6
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 3
iload 7
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
aastore
invokevirtual java.lang.invoke.MethodType.appendParameterTypes:([Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 6
9: iinc 7 1
StackMap locals:
StackMap stack:
10: iload 7
aload 3
invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
invokeinterface java.util.List.size:()I
iconst_1
isub
if_icmplt 8
end local 7 11: StackMap locals:
StackMap stack:
aload 4
aload 6
aload 5
aload 1
invokevirtual java.lang.invoke.BoundMethodHandle.copyWithExtendL:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
astore 4
12: aload 4
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 target Ljava/lang/invoke/MethodHandle;
0 13 1 filter Ljava/lang/invoke/MethodHandle;
1 13 2 targetType Ljava/lang/invoke/MethodType;
2 13 3 filterType Ljava/lang/invoke/MethodType;
3 13 4 result Ljava/lang/invoke/BoundMethodHandle;
4 13 5 lform Ljava/lang/invoke/LambdaForm;
5 13 6 newType Ljava/lang/invoke/MethodType;
7 11 7 i I
MethodParameters:
Name Flags
target
filter
public static java.lang.invoke.MethodHandle foldArguments(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iconst_0
aload 1
invokestatic java.lang.invoke.MethodHandles.foldArguments:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 target Ljava/lang/invoke/MethodHandle;
0 1 1 combiner Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
target
combiner
public static java.lang.invoke.MethodHandle foldArguments(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 3
start local 3 1: aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 4
start local 4 2: iload 1
aload 3
aload 4
invokestatic java.lang.invoke.MethodHandles.foldArgumentChecks:(ILjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Ljava/lang/Class;
astore 5
start local 5 3: aload 0
invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
astore 6
start local 6 4: aload 5
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpne 5
iconst_1
goto 6
StackMap locals: java.lang.invoke.MethodHandle int java.lang.invoke.MethodHandle java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.Class java.lang.invoke.BoundMethodHandle
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: istore 7
start local 7 7: aload 6
invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
iconst_1
iload 1
iadd
iload 7
aload 4
invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.LambdaFormEditor.foldArgumentsForm:(IZLjava/lang/invoke/MethodType;)Ljava/lang/invoke/LambdaForm;
astore 8
start local 8 8: aload 3
astore 9
start local 9 9: iload 7
ifne 11
10: aload 9
iload 1
iload 1
iconst_1
iadd
invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
astore 9
11: StackMap locals: int java.lang.invoke.LambdaForm java.lang.invoke.MethodType
StackMap stack:
aload 6
aload 9
aload 8
aload 2
invokevirtual java.lang.invoke.BoundMethodHandle.copyWithExtendL:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
astore 6
12: aload 6
areturn
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 13 0 target Ljava/lang/invoke/MethodHandle;
0 13 1 pos I
0 13 2 combiner Ljava/lang/invoke/MethodHandle;
1 13 3 targetType Ljava/lang/invoke/MethodType;
2 13 4 combinerType Ljava/lang/invoke/MethodType;
3 13 5 rtype Ljava/lang/Class<*>;
4 13 6 result Ljava/lang/invoke/BoundMethodHandle;
7 13 7 dropResult Z
8 13 8 lform Ljava/lang/invoke/LambdaForm;
9 13 9 newType Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
target
pos
combiner
private static java.lang.Class<?> foldArgumentChecks(int, java.lang.invoke.MethodType, java.lang.invoke.MethodType);
descriptor: (ILjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Ljava/lang/Class;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
istore 3
start local 3 1: aload 2
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
astore 4
start local 4 2: aload 4
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpne 3
iconst_0
goto 4
StackMap locals: int java.lang.Class
StackMap stack:
3: iconst_1
StackMap locals:
StackMap stack: int
4: istore 5
start local 5 5: iload 0
iload 5
iadd
istore 6
start local 6 6: aload 1
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iload 6
iload 3
iadd
if_icmplt 7
iconst_1
goto 8
StackMap locals: int int
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: istore 7
start local 7 9: iload 7
ifeq 17
10: iconst_0
istore 8
start local 8 11: goto 16
12: StackMap locals: int int
StackMap stack:
aload 2
iload 8
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
aload 1
iload 8
iload 6
iadd
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
if_acmpeq 15
13: iconst_0
istore 7
14: goto 17
15: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
16: iload 8
iload 3
if_icmplt 12
end local 8 17: StackMap locals:
StackMap stack:
iload 7
ifeq 19
iload 5
ifeq 19
aload 2
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
aload 1
iload 0
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
if_acmpeq 19
18: iconst_0
istore 7
19: StackMap locals:
StackMap stack:
iload 7
ifne 21
20: ldc "target and combiner types"
aload 1
aload 2
invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
21: StackMap locals:
StackMap stack:
aload 4
areturn
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 22 0 foldPos I
0 22 1 targetType Ljava/lang/invoke/MethodType;
0 22 2 combinerType Ljava/lang/invoke/MethodType;
1 22 3 foldArgs I
2 22 4 rtype Ljava/lang/Class<*>;
5 22 5 foldVals I
6 22 6 afterInsertPos I
9 22 7 ok Z
11 17 8 i I
Signature: (ILjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
foldPos
targetType
combinerType
static java.lang.invoke.MethodHandle filterArgumentsWithCombiner(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle, int[]);
descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;[I)Ljava/lang/invoke/MethodHandle;
flags: (0x0088) ACC_STATIC, ACC_VARARGS
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_1
aload 0
iload 1
aload 2
aload 3
invokestatic java.lang.invoke.MethodHandles.argumentsWithCombiner:(ZLjava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;[I)Ljava/lang/invoke/MethodHandle;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 target Ljava/lang/invoke/MethodHandle;
0 1 1 position I
0 1 2 combiner Ljava/lang/invoke/MethodHandle;
0 1 3 argPositions [I
MethodParameters:
Name Flags
target
position
combiner
argPositions
static java.lang.invoke.MethodHandle foldArgumentsWithCombiner(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle, int[]);
descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;[I)Ljava/lang/invoke/MethodHandle;
flags: (0x0088) ACC_STATIC, ACC_VARARGS
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
aload 0
iload 1
aload 2
aload 3
invokestatic java.lang.invoke.MethodHandles.argumentsWithCombiner:(ZLjava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;[I)Ljava/lang/invoke/MethodHandle;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 target Ljava/lang/invoke/MethodHandle;
0 1 1 position I
0 1 2 combiner Ljava/lang/invoke/MethodHandle;
0 1 3 argPositions [I
MethodParameters:
Name Flags
target
position
combiner
argPositions
private static java.lang.invoke.MethodHandle argumentsWithCombiner(boolean, java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodHandle, int[]);
descriptor: (ZLjava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;[I)Ljava/lang/invoke/MethodHandle;
flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
Code:
stack=5, locals=12, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 5
start local 5 1: aload 3
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 6
start local 6 2: iload 2
iload 0
aload 5
aload 6
aload 4
invokestatic java.lang.invoke.MethodHandles.argumentsWithCombinerChecks:(IZLjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;[I)Ljava/lang/Class;
astore 7
start local 7 3: aload 1
invokevirtual java.lang.invoke.MethodHandle.rebind:()Ljava/lang/invoke/BoundMethodHandle;
astore 8
start local 8 4: aload 5
astore 9
start local 9 5: iload 0
ifeq 8
6: aload 8
invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
iconst_1
iload 2
iadd
aload 6
invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
aload 4
invokevirtual java.lang.invoke.LambdaFormEditor.filterArgumentsForm:(ILjava/lang/invoke/MethodType;[I)Ljava/lang/invoke/LambdaForm;
astore 10
start local 10 7: goto 14
end local 10 8: StackMap locals: int java.lang.invoke.MethodHandle int java.lang.invoke.MethodHandle int[] java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.Class java.lang.invoke.BoundMethodHandle java.lang.invoke.MethodType
StackMap stack:
aload 7
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpne 9
iconst_1
goto 10
StackMap locals:
StackMap stack:
9: iconst_0
StackMap locals:
StackMap stack: int
10: istore 11
start local 11 11: aload 8
invokevirtual java.lang.invoke.BoundMethodHandle.editor:()Ljava/lang/invoke/LambdaFormEditor;
iconst_1
iload 2
iadd
iload 11
aload 6
invokevirtual java.lang.invoke.MethodType.basicType:()Ljava/lang/invoke/MethodType;
aload 4
invokevirtual java.lang.invoke.LambdaFormEditor.foldArgumentsForm:(IZLjava/lang/invoke/MethodType;[I)Ljava/lang/invoke/LambdaForm;
astore 10
start local 10 12: iload 11
ifne 14
13: aload 9
iload 2
iload 2
iconst_1
iadd
invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
astore 9
end local 11 14: StackMap locals: java.lang.invoke.LambdaForm
StackMap stack:
aload 8
aload 9
aload 10
aload 3
invokevirtual java.lang.invoke.BoundMethodHandle.copyWithExtendL:(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/LambdaForm;Ljava/lang/Object;)Ljava/lang/invoke/BoundMethodHandle;
astore 8
15: aload 8
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 16 0 filter Z
0 16 1 target Ljava/lang/invoke/MethodHandle;
0 16 2 position I
0 16 3 combiner Ljava/lang/invoke/MethodHandle;
0 16 4 argPositions [I
1 16 5 targetType Ljava/lang/invoke/MethodType;
2 16 6 combinerType Ljava/lang/invoke/MethodType;
3 16 7 rtype Ljava/lang/Class<*>;
4 16 8 result Ljava/lang/invoke/BoundMethodHandle;
5 16 9 newType Ljava/lang/invoke/MethodType;
7 8 10 lform Ljava/lang/invoke/LambdaForm;
12 16 10 lform Ljava/lang/invoke/LambdaForm;
11 14 11 dropResult Z
MethodParameters:
Name Flags
filter
target
position
combiner
argPositions
private static java.lang.Class<?> argumentsWithCombinerChecks(int, boolean, java.lang.invoke.MethodType, java.lang.invoke.MethodType, int[]);
descriptor: (IZLjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;[I)Ljava/lang/Class;
flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
Code:
stack=3, locals=9, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 3
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
istore 5
start local 5 1: aload 4
arraylength
iload 5
if_icmpeq 3
2: ldc "combiner and argument map must be equal size"
aload 3
aload 4
arraylength
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
3: StackMap locals: int
StackMap stack:
aload 3
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
astore 6
start local 6 4: iconst_0
istore 7
start local 7 5: goto 15
6: StackMap locals: java.lang.Class int
StackMap stack:
aload 4
iload 7
iaload
istore 8
start local 8 7: iload 8
iflt 8
iload 8
aload 2
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
if_icmple 9
8: StackMap locals: int
StackMap stack:
ldc "arg outside of target parameterRange"
aload 2
iload 8
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
9: StackMap locals:
StackMap stack:
aload 3
iload 7
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
aload 2
iload 8
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
if_acmpeq 14
10: new java.lang.StringBuilder
dup
ldc "target argument type at position "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 8
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
11: ldc " must match combiner argument type at index "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 7
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
12: ldc " -> "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ", map: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokestatic java.util.Arrays.toString:([I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
13: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 8 14: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
15: iload 7
iload 5
if_icmplt 6
end local 7 16: iload 1
ifeq 18
aload 3
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
aload 2
iload 0
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
if_acmpeq 18
17: ldc "target and combiner types"
aload 2
aload 3
invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
18: StackMap locals:
StackMap stack:
aload 6
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 19 0 position I
0 19 1 filter Z
0 19 2 targetType Ljava/lang/invoke/MethodType;
0 19 3 combinerType Ljava/lang/invoke/MethodType;
0 19 4 argPos [I
1 19 5 combinerArgs I
4 19 6 rtype Ljava/lang/Class<*>;
5 16 7 i I
7 14 8 arg I
Signature: (IZLjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;[I)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
position
filter
targetType
combinerType
argPos
public static java.lang.invoke.MethodHandle guardWithTest(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 3
start local 3 1: aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 4
start local 4 2: aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 5
start local 5 3: aload 4
aload 5
invokevirtual java.lang.invoke.MethodType.equals:(Ljava/lang/Object;)Z
ifne 5
4: ldc "target and fallback types"
aload 4
aload 5
invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
5: StackMap locals: java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.invoke.MethodType
StackMap stack:
aload 3
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
if_acmpeq 7
6: new java.lang.StringBuilder
dup
ldc "guard type is not a predicate "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
7: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
astore 6
start local 6 8: aload 0
iconst_0
aload 6
iconst_0
iconst_1
invokestatic java.lang.invoke.MethodHandles.dropArgumentsToMatch:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;IZ)Ljava/lang/invoke/MethodHandle;
astore 0
9: aload 0
ifnonnull 11
10: ldc "target and test types"
aload 4
aload 3
invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
11: StackMap locals: java.util.List
StackMap stack:
aload 0
aload 1
aload 2
invokestatic java.lang.invoke.MethodHandleImpl.makeGuardWithTest:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
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 12 0 test Ljava/lang/invoke/MethodHandle;
0 12 1 target Ljava/lang/invoke/MethodHandle;
0 12 2 fallback Ljava/lang/invoke/MethodHandle;
1 12 3 gtype Ljava/lang/invoke/MethodType;
2 12 4 ttype Ljava/lang/invoke/MethodType;
3 12 5 ftype Ljava/lang/invoke/MethodType;
8 12 6 targs Ljava/util/List<Ljava/lang/Class<*>;>;
MethodParameters:
Name Flags
test
target
fallback
static <T> java.lang.RuntimeException misMatchedTypes(java.lang.String, T, T);
descriptor: (Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.StringBuilder
dup
aload 0
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " must match: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " != "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 what Ljava/lang/String;
0 1 1 t1 TT;
0 1 2 t2 TT;
Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;TT;TT;)Ljava/lang/RuntimeException;
MethodParameters:
Name Flags
what
t1
t2
public static java.lang.invoke.MethodHandle catchException(java.lang.invoke.MethodHandle, java.lang.Class<? extends java.lang.Throwable>, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 3
start local 3 1: aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 4
start local 4 2: ldc Ljava/lang/Throwable;
aload 1
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 4
3: new java.lang.ClassCastException
dup
aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: java.lang.invoke.MethodType java.lang.invoke.MethodType
StackMap stack:
aload 4
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iconst_1
if_icmplt 6
5: aload 4
iconst_0
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
aload 1
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 7
6: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "handler does not accept exception type "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
7: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
aload 3
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
if_acmpeq 9
8: ldc "target and handler return types"
aload 3
aload 4
invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
9: StackMap locals:
StackMap stack:
aload 2
iconst_1
aload 3
invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
iconst_0
iconst_1
invokestatic java.lang.invoke.MethodHandles.dropArgumentsToMatch:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;IZ)Ljava/lang/invoke/MethodHandle;
astore 2
10: aload 2
ifnonnull 12
11: ldc "target and handler types"
aload 3
aload 4
invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
12: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokestatic java.lang.invoke.MethodHandleImpl.makeGuardWithCatch:(Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 target Ljava/lang/invoke/MethodHandle;
0 13 1 exType Ljava/lang/Class<+Ljava/lang/Throwable;>;
0 13 2 handler Ljava/lang/invoke/MethodHandle;
1 13 3 ttype Ljava/lang/invoke/MethodType;
2 13 4 htype Ljava/lang/invoke/MethodType;
Signature: (Ljava/lang/invoke/MethodHandle;Ljava/lang/Class<+Ljava/lang/Throwable;>;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
target
exType
handler
public static java.lang.invoke.MethodHandle throwException(java.lang.Class<?>, java.lang.Class<? extends java.lang.Throwable>);
descriptor: (Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: ldc Ljava/lang/Throwable;
aload 1
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 2
1: new java.lang.ClassCastException
dup
aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
invokestatic java.lang.invoke.MethodHandleImpl.throwException:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 returnType Ljava/lang/Class<*>;
0 3 1 exType Ljava/lang/Class<+Ljava/lang/Throwable;>;
Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<+Ljava/lang/Throwable;>;)Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
returnType
exType
public static java.lang.invoke.MethodHandle loop(java.lang.invoke.MethodHandle[][]);
descriptor: ([[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=6, locals=16, args_size=1
start local 0 0: aload 0
invokestatic java.lang.invoke.MethodHandles.loopChecks0:([[Ljava/lang/invoke/MethodHandle;)V
1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 2: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 3: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 4: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 4
start local 4 5: aload 0
invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
invokedynamic test()Ljava/util/function/Predicate;
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;)Z
java/lang/invoke/MethodHandles.lambda$0([Ljava/lang/invoke/MethodHandle;)Z (6)
([Ljava/lang/invoke/MethodHandle;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
aload 1
aload 2
aload 3
aload 4
invokedynamic accept(Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)Ljava/util/function/Consumer;
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;)V
java/lang/invoke/MethodHandles.lambda$2(Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;[Ljava/lang/invoke/MethodHandle;)V (6)
([Ljava/lang/invoke/MethodHandle;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
6: getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
ifne 7
iconst_4
anewarray java.util.List
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 2
aastore
dup
iconst_2
aload 3
aastore
dup
iconst_3
aload 4
aastore
invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
java/util/List.size()I (9 itf)
(Ljava/util/List;)Ljava/lang/Integer;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
invokeinterface java.util.stream.Stream.distinct:()Ljava/util/stream/Stream;
invokeinterface java.util.stream.Stream.count:()J
lconst_1
lcmp
ifeq 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: StackMap locals: java.lang.invoke.MethodHandle[][] java.util.List java.util.List java.util.List java.util.List
StackMap stack:
aload 1
invokeinterface java.util.List.size:()I
istore 5
start local 5 8: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 6
start local 6 9: iconst_0
istore 7
start local 7 10: goto 24
11: StackMap locals: int java.util.List int
StackMap stack:
aload 1
iload 7
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.invoke.MethodHandle
astore 8
start local 8 12: aload 2
iload 7
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.invoke.MethodHandle
astore 9
start local 9 13: aload 8
ifnonnull 16
aload 9
ifnonnull 16
14: aload 6
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
15: goto 23
StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
StackMap stack:
16: aload 8
ifnull 20
aload 9
ifnull 20
17: iload 7
aload 8
aload 9
invokestatic java.lang.invoke.MethodHandles.loopChecks1a:(ILjava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
18: aload 6
aload 8
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
19: goto 23
20: StackMap locals:
StackMap stack:
aload 6
aload 8
ifnonnull 21
aload 9
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
goto 22
StackMap locals:
StackMap stack: java.util.List
21: aload 8
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
StackMap locals: java.lang.invoke.MethodHandle[][] java.util.List java.util.List java.util.List java.util.List int java.util.List int java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
StackMap stack: java.util.List java.lang.Class
22: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 9 end local 8 23: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
24: iload 7
iload 5
if_icmplt 11
end local 7 25: aload 6
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
invokedynamic test()Ljava/util/function/Predicate;
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;)Z
java/lang/invoke/MethodHandles.lambda$4(Ljava/lang/Class;)Z (6)
(Ljava/lang/Class;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
26: invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.util.List
27: astore 7
start local 7 28: aload 1
aload 2
aload 3
aload 4
aload 7
invokeinterface java.util.List.size:()I
invokestatic java.lang.invoke.MethodHandles.buildCommonSuffix:(Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;I)Ljava/util/List;
astore 8
start local 8 29: aload 1
aload 8
invokestatic java.lang.invoke.MethodHandles.loopChecks1b:(Ljava/util/List;Ljava/util/List;)V
30: aload 4
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
invokedynamic test()Ljava/util/function/Predicate;
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;)Z
java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
(Ljava/lang/invoke/MethodHandle;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
java/lang/invoke/MethodHandle.type()Ljava/lang/invoke/MethodType; (5)
(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
31: invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
java/lang/invoke/MethodType.returnType()Ljava/lang/Class; (5)
(Ljava/lang/invoke/MethodType;)Ljava/lang/Class;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
32: astore 9
start local 9 33: aload 9
invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Class
astore 10
start local 10 34: aload 3
aload 4
aload 10
invokestatic java.lang.invoke.MethodHandles.loopChecks1cd:(Ljava/util/List;Ljava/util/List;Ljava/lang/Class;)V
35: new java.util.ArrayList
dup
aload 7
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 11
start local 11 36: aload 11
aload 8
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
37: aload 2
aload 3
aload 4
aload 11
invokestatic java.lang.invoke.MethodHandles.loopChecks2:(Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V
38: iconst_0
istore 12
start local 12 39: goto 50
40: StackMap locals: java.lang.invoke.MethodHandle[][] java.util.List java.util.List java.util.List java.util.List int java.util.List java.util.List java.util.List java.util.stream.Stream java.lang.Class java.util.List int
StackMap stack:
aload 6
iload 12
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.Class
astore 13
start local 13 41: aload 1
iload 12
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
ifnonnull 43
42: aload 1
iload 12
aload 13
aload 8
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
invokestatic java.lang.invoke.MethodHandles.empty:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
43: StackMap locals: java.lang.Class
StackMap stack:
aload 2
iload 12
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
ifnonnull 45
44: aload 2
iload 12
aload 13
invokestatic java.lang.invoke.MethodHandles.identityOrVoid:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
iconst_0
aload 11
iload 12
invokestatic java.lang.invoke.MethodHandles.dropArgumentsToMatch:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;I)Ljava/lang/invoke/MethodHandle;
invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
45: StackMap locals:
StackMap stack:
aload 3
iload 12
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
ifnonnull 47
46: aload 3
iload 12
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokestatic java.lang.invoke.MethodHandles.constant:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
iconst_0
aload 11
invokestatic java.lang.invoke.MethodHandles.dropArguments0:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
47: StackMap locals:
StackMap stack:
aload 4
iload 12
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
ifnonnull 49
48: aload 4
iload 12
aload 13
aload 11
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
invokestatic java.lang.invoke.MethodHandles.empty:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
end local 13 49: StackMap locals:
StackMap stack:
iinc 12 1
StackMap locals:
StackMap stack:
50: iload 12
iload 5
if_icmplt 40
end local 12 51: aload 1
aload 8
invokestatic java.lang.invoke.MethodHandles.fillParameterTypes:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;
invokestatic java.lang.invoke.MethodHandles.fixArities:(Ljava/util/List;)Ljava/util/List;
astore 12
start local 12 52: aload 2
aload 11
invokestatic java.lang.invoke.MethodHandles.fillParameterTypes:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;
invokestatic java.lang.invoke.MethodHandles.fixArities:(Ljava/util/List;)Ljava/util/List;
astore 13
start local 13 53: aload 3
aload 11
invokestatic java.lang.invoke.MethodHandles.fillParameterTypes:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;
invokestatic java.lang.invoke.MethodHandles.fixArities:(Ljava/util/List;)Ljava/util/List;
astore 14
start local 14 54: aload 4
aload 11
invokestatic java.lang.invoke.MethodHandles.fillParameterTypes:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;
invokestatic java.lang.invoke.MethodHandles.fixArities:(Ljava/util/List;)Ljava/util/List;
astore 15
start local 15 55: getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
ifne 57
aload 12
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
java/lang/invoke/MethodHandle.type()Ljava/lang/invoke/MethodType; (5)
(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
java/lang/invoke/MethodType.parameterList()Ljava/util/List; (5)
(Ljava/lang/invoke/MethodType;)Ljava/util/List;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
56: aload 8
invokedynamic test(Ljava/util/List;)Ljava/util/function/Predicate;
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;)Z
java/lang/invoke/MethodHandles.lambda$10(Ljava/util/List;Ljava/util/List;)Z (6)
(Ljava/util/List;)Z
invokeinterface java.util.stream.Stream.allMatch:(Ljava/util/function/Predicate;)Z
ifne 57
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
57: StackMap locals: java.lang.invoke.MethodHandle[][] java.util.List java.util.List java.util.List java.util.List int java.util.List java.util.List java.util.List java.util.stream.Stream java.lang.Class java.util.List java.util.List java.util.List java.util.List java.util.List
StackMap stack:
getstatic java.lang.invoke.MethodHandles.$assertionsDisabled:Z
ifne 59
iconst_3
anewarray java.util.List
dup
iconst_0
aload 13
aastore
dup
iconst_1
aload 14
aastore
dup
iconst_2
aload 15
aastore
invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
java/util/Collection.stream()Ljava/util/stream/Stream; (9 itf)
(Ljava/util/List;)Ljava/util/stream/Stream;
invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
java/lang/invoke/MethodHandle.type()Ljava/lang/invoke/MethodType; (5)
(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
java/lang/invoke/MethodType.parameterList()Ljava/util/List; (5)
(Ljava/lang/invoke/MethodType;)Ljava/util/List;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
58: aload 11
invokedynamic test(Ljava/util/List;)Ljava/util/function/Predicate;
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;)Z
java/lang/invoke/MethodHandles.lambda$14(Ljava/util/List;Ljava/util/List;)Z (6)
(Ljava/util/List;)Z
invokeinterface java.util.stream.Stream.allMatch:(Ljava/util/function/Predicate;)Z
ifne 59
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
59: StackMap locals:
StackMap stack:
aload 10
aload 8
aload 12
aload 13
aload 14
aload 15
invokestatic java.lang.invoke.MethodHandleImpl.makeLoop:(Ljava/lang/Class;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)Ljava/lang/invoke/MethodHandle;
areturn
end local 15 end local 14 end local 13 end local 12 end local 11 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 60 0 clauses [[Ljava/lang/invoke/MethodHandle;
2 60 1 init Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
3 60 2 step Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
4 60 3 pred Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
5 60 4 fini Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
8 60 5 nclauses I
9 60 6 iterationVariableTypes Ljava/util/List<Ljava/lang/Class<*>;>;
10 25 7 i I
12 23 8 in Ljava/lang/invoke/MethodHandle;
13 23 9 st Ljava/lang/invoke/MethodHandle;
28 60 7 commonPrefix Ljava/util/List<Ljava/lang/Class<*>;>;
29 60 8 commonSuffix Ljava/util/List<Ljava/lang/Class<*>;>;
33 60 9 cstream Ljava/util/stream/Stream<Ljava/lang/Class<*>;>;
34 60 10 loopReturnType Ljava/lang/Class<*>;
36 60 11 commonParameterSequence Ljava/util/List<Ljava/lang/Class<*>;>;
39 51 12 i I
41 49 13 t Ljava/lang/Class<*>;
52 60 12 finit Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
53 60 13 fstep Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
54 60 14 fpred Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
55 60 15 ffini Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
MethodParameters:
Name Flags
clauses
private static void loopChecks0(java.lang.invoke.MethodHandle[][]);
descriptor: ([[Ljava/lang/invoke/MethodHandle;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ifnull 1
aload 0
arraylength
ifne 2
1: StackMap locals:
StackMap stack:
ldc "null or no clauses passed"
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
invokedynamic test()Ljava/util/function/Predicate;
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;)Z
java/util/Objects.isNull(Ljava/lang/Object;)Z (6)
([Ljava/lang/invoke/MethodHandle;)Z
invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
ifeq 4
3: ldc "null clauses are not allowed"
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
4: StackMap locals:
StackMap stack:
aload 0
invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
invokedynamic test()Ljava/util/function/Predicate;
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;)Z
java/lang/invoke/MethodHandles.lambda$16([Ljava/lang/invoke/MethodHandle;)Z (6)
([Ljava/lang/invoke/MethodHandle;)Z
invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
ifeq 6
5: ldc "All loop clauses must be represented as MethodHandle arrays with at most 4 elements."
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 clauses [[Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
clauses
private static void loopChecks1a(int, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
descriptor: (ILjava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
if_acmpeq 4
1: new java.lang.StringBuilder
dup
ldc "clause "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ": init and step return types"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
2: aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
3: invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
4: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 i I
0 5 1 in Ljava/lang/invoke/MethodHandle;
0 5 2 st Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
i
in
st
private static java.util.List<java.lang.Class<?>> longestParameterList(java.util.stream.Stream<java.lang.invoke.MethodHandle>, int);
descriptor: (Ljava/util/stream/Stream;I)Ljava/util/List;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: invokestatic java.util.List.of:()Ljava/util/List;
astore 2
start local 2 1: aload 0
invokedynamic test()Ljava/util/function/Predicate;
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;)Z
java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
(Ljava/lang/invoke/MethodHandle;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
2: invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
java/lang/invoke/MethodHandle.type()Ljava/lang/invoke/MethodType; (5)
(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
3: iload 1
invokedynamic test(I)Ljava/util/function/Predicate;
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;)Z
java/lang/invoke/MethodHandles.lambda$19(ILjava/lang/invoke/MethodType;)Z (6)
(Ljava/lang/invoke/MethodType;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
4: invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
java/lang/invoke/MethodType.parameterList()Ljava/util/List; (5)
(Ljava/lang/invoke/MethodType;)Ljava/util/List;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
5: invokedynamic apply()Ljava/util/function/BinaryOperator;
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;Ljava/lang/Object;)Ljava/lang/Object;
java/lang/invoke/MethodHandles.lambda$21(Ljava/util/List;Ljava/util/List;)Ljava/util/List; (6)
(Ljava/util/List;Ljava/util/List;)Ljava/util/List;
invokeinterface java.util.stream.Stream.reduce:(Ljava/util/function/BinaryOperator;)Ljava/util/Optional;
aload 2
invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
6: astore 3
start local 3 7: aload 3
invokeinterface java.util.List.size:()I
ifne 8
aload 2
goto 9
StackMap locals: java.util.List java.util.List
StackMap stack:
8: aload 3
iload 1
aload 3
invokeinterface java.util.List.size:()I
invokeinterface java.util.List.subList:(II)Ljava/util/List;
StackMap locals:
StackMap stack: java.util.List
9: areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 mhs Ljava/util/stream/Stream<Ljava/lang/invoke/MethodHandle;>;
0 10 1 skipSize I
1 10 2 empty Ljava/util/List<Ljava/lang/Class<*>;>;
7 10 3 longest Ljava/util/List<Ljava/lang/Class<*>;>;
Signature: (Ljava/util/stream/Stream<Ljava/lang/invoke/MethodHandle;>;I)Ljava/util/List<Ljava/lang/Class<*>;>;
MethodParameters:
Name Flags
mhs
skipSize
private static java.util.List<java.lang.Class<?>> longestParameterList(java.util.List<java.util.List<java.lang.Class<?>>>);
descriptor: (Ljava/util/List;)Ljava/util/List;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic java.util.List.of:()Ljava/util/List;
astore 1
start local 1 1: aload 0
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/BinaryOperator;
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;Ljava/lang/Object;)Ljava/lang/Object;
java/lang/invoke/MethodHandles.lambda$22(Ljava/util/List;Ljava/util/List;)Ljava/util/List; (6)
(Ljava/util/List;Ljava/util/List;)Ljava/util/List;
invokeinterface java.util.stream.Stream.reduce:(Ljava/util/function/BinaryOperator;)Ljava/util/Optional;
aload 1
invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 lists Ljava/util/List<Ljava/util/List<Ljava/lang/Class<*>;>;>;
1 2 1 empty Ljava/util/List<Ljava/lang/Class<*>;>;
Signature: (Ljava/util/List<Ljava/util/List<Ljava/lang/Class<*>;>;>;)Ljava/util/List<Ljava/lang/Class<*>;>;
MethodParameters:
Name Flags
lists
private static java.util.List<java.lang.Class<?>> buildCommonSuffix(java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.invoke.MethodHandle>, int);
descriptor: (Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;I)Ljava/util/List;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iconst_3
anewarray java.util.List
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 2
aastore
dup
iconst_2
aload 3
aastore
invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
java/util/Collection.stream()Ljava/util/stream/Stream; (9 itf)
(Ljava/util/List;)Ljava/util/stream/Stream;
invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
iload 4
invokestatic java.lang.invoke.MethodHandles.longestParameterList:(Ljava/util/stream/Stream;I)Ljava/util/List;
astore 5
start local 5 1: aload 0
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
iconst_0
invokestatic java.lang.invoke.MethodHandles.longestParameterList:(Ljava/util/stream/Stream;I)Ljava/util/List;
astore 6
start local 6 2: iconst_2
anewarray java.util.List
dup
iconst_0
aload 5
aastore
dup
iconst_1
aload 6
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokestatic java.lang.invoke.MethodHandles.longestParameterList:(Ljava/util/List;)Ljava/util/List;
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 3 0 init Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
0 3 1 step Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
0 3 2 pred Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
0 3 3 fini Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
0 3 4 cpSize I
1 3 5 longest1 Ljava/util/List<Ljava/lang/Class<*>;>;
2 3 6 longest2 Ljava/util/List<Ljava/lang/Class<*>;>;
Signature: (Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;I)Ljava/util/List<Ljava/lang/Class<*>;>;
MethodParameters:
Name Flags
init
step
pred
fini
cpSize
private static void loopChecks1b(java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.Class<?>>);
descriptor: (Ljava/util/List;Ljava/util/List;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
invokedynamic test()Ljava/util/function/Predicate;
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;)Z
java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
(Ljava/lang/invoke/MethodHandle;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
java/lang/invoke/MethodHandle.type()Ljava/lang/invoke/MethodType; (5)
(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
1: aload 1
invokedynamic test(Ljava/util/List;)Ljava/util/function/Predicate;
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;)Z
java/lang/invoke/MethodHandles.lambda$26(Ljava/util/List;Ljava/lang/invoke/MethodType;)Z (6)
(Ljava/lang/invoke/MethodType;)Z
invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
ifeq 5
2: new java.lang.StringBuilder
dup
ldc "found non-effectively identical init parameter type lists: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
3: ldc " (common suffix: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
4: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 init Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
0 6 1 commonSuffix Ljava/util/List<Ljava/lang/Class<*>;>;
Signature: (Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/Class<*>;>;)V
MethodParameters:
Name Flags
init
commonSuffix
private static void loopChecks1cd(java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.invoke.MethodHandle>, java.lang.Class<?>);
descriptor: (Ljava/util/List;Ljava/util/List;Ljava/lang/Class;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
invokedynamic test()Ljava/util/function/Predicate;
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;)Z
java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
(Ljava/lang/invoke/MethodHandle;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
java/lang/invoke/MethodHandle.type()Ljava/lang/invoke/MethodType; (5)
(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
java/lang/invoke/MethodType.returnType()Ljava/lang/Class; (5)
(Ljava/lang/invoke/MethodType;)Ljava/lang/Class;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
1: aload 2
invokedynamic test(Ljava/lang/Class;)Ljava/util/function/Predicate;
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;)Z
java/lang/invoke/MethodHandles.lambda$30(Ljava/lang/Class;Ljava/lang/Class;)Z (6)
(Ljava/lang/Class;)Z
invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
ifeq 5
2: new java.lang.StringBuilder
dup
ldc "found non-identical finalizer return types: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " (return type: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
4: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
5: StackMap locals:
StackMap stack:
aload 0
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
invokedynamic test()Ljava/util/function/Predicate;
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;)Z
java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
(Ljava/lang/invoke/MethodHandle;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
invokevirtual java.util.Optional.isPresent:()Z
ifne 7
6: ldc "no predicate found"
aload 0
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
7: StackMap locals:
StackMap stack:
aload 0
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
invokedynamic test()Ljava/util/function/Predicate;
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;)Z
java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
(Ljava/lang/invoke/MethodHandle;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
java/lang/invoke/MethodHandle.type()Ljava/lang/invoke/MethodType; (5)
(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
java/lang/invoke/MethodType.returnType()Ljava/lang/Class; (5)
(Ljava/lang/invoke/MethodType;)Ljava/lang/Class;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
8: invokedynamic test()Ljava/util/function/Predicate;
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;)Z
java/lang/invoke/MethodHandles.lambda$35(Ljava/lang/Class;)Z (6)
(Ljava/lang/Class;)Z
invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
ifeq 10
9: ldc "predicates must have boolean return type"
aload 0
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
10: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 pred Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
0 11 1 fini Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
0 11 2 loopReturnType Ljava/lang/Class<*>;
Signature: (Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
pred
fini
loopReturnType
private static void loopChecks2(java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.Class<?>>);
descriptor: (Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_3
anewarray java.util.List
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 1
aastore
dup
iconst_2
aload 2
aastore
invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
java/util/Collection.stream()Ljava/util/stream/Stream; (9 itf)
(Ljava/util/List;)Ljava/util/stream/Stream;
invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
invokedynamic test()Ljava/util/function/Predicate;
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;)Z
java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
(Ljava/lang/invoke/MethodHandle;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
java/lang/invoke/MethodHandle.type()Ljava/lang/invoke/MethodType; (5)
(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
1: aload 3
invokedynamic test(Ljava/util/List;)Ljava/util/function/Predicate;
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;)Z
java/lang/invoke/MethodHandles.lambda$39(Ljava/util/List;Ljava/lang/invoke/MethodType;)Z (6)
(Ljava/lang/invoke/MethodType;)Z
invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
ifeq 5
2: new java.lang.StringBuilder
dup
ldc "found non-effectively identical parameter type lists:\nstep: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
3: ldc "\npred: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "\nfini: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " (common parameter sequence: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
4: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
5: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 step Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
0 6 1 pred Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
0 6 2 fini Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
0 6 3 commonParameterSequence Ljava/util/List<Ljava/lang/Class<*>;>;
Signature: (Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/Class<*>;>;)V
MethodParameters:
Name Flags
step
pred
fini
commonParameterSequence
private static java.util.List<java.lang.invoke.MethodHandle> fillParameterTypes(java.util.List<java.lang.invoke.MethodHandle>, java.util.List<java.lang.Class<?>>);
descriptor: (Ljava/util/List;Ljava/util/List;)Ljava/util/List;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
aload 1
invokedynamic apply(Ljava/util/List;)Ljava/util/function/Function;
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;)Ljava/lang/Object;
java/lang/invoke/MethodHandles.lambda$40(Ljava/util/List;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle; (6)
(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
1: invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.util.List
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 hs Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
0 3 1 targetParams Ljava/util/List<Ljava/lang/Class<*>;>;
Signature: (Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;Ljava/util/List<Ljava/lang/Class<*>;>;)Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
MethodParameters:
Name Flags
hs
targetParams final
private static java.util.List<java.lang.invoke.MethodHandle> fixArities(java.util.List<java.lang.invoke.MethodHandle>);
descriptor: (Ljava/util/List;)Ljava/util/List;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/Function;
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;)Ljava/lang/Object;
java/lang/invoke/MethodHandle.asFixedArity()Ljava/lang/invoke/MethodHandle; (5)
(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.util.List
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 hs Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
Signature: (Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;)Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
MethodParameters:
Name Flags
hs
public static java.lang.invoke.MethodHandle whileLoop(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokestatic java.lang.invoke.MethodHandles.whileLoopChecks:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
1: aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
invokestatic java.lang.invoke.MethodHandles.identityOrVoid:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
astore 3
start local 3 2: iconst_4
anewarray java.lang.invoke.MethodHandle
dup
iconst_2
aload 1
aastore
dup
iconst_3
aload 3
aastore
astore 4
start local 4 3: iconst_2
anewarray java.lang.invoke.MethodHandle
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 2
aastore
astore 5
start local 5 4: iconst_2
anewarray java.lang.invoke.MethodHandle[]
dup
iconst_0
aload 4
aastore
dup
iconst_1
aload 5
aastore
invokestatic java.lang.invoke.MethodHandles.loop:([[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
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 5 0 init Ljava/lang/invoke/MethodHandle;
0 5 1 pred Ljava/lang/invoke/MethodHandle;
0 5 2 body Ljava/lang/invoke/MethodHandle;
2 5 3 fini Ljava/lang/invoke/MethodHandle;
3 5 4 checkExit [Ljava/lang/invoke/MethodHandle;
4 5 5 varBody [Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
init
pred
body
public static java.lang.invoke.MethodHandle doWhileLoop(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
aload 1
invokestatic java.lang.invoke.MethodHandles.whileLoopChecks:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
1: aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
invokestatic java.lang.invoke.MethodHandles.identityOrVoid:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
astore 3
start local 3 2: iconst_4
anewarray java.lang.invoke.MethodHandle
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 1
aastore
dup
iconst_2
aload 2
aastore
dup
iconst_3
aload 3
aastore
astore 4
start local 4 3: iconst_1
anewarray java.lang.invoke.MethodHandle[]
dup
iconst_0
aload 4
aastore
invokestatic java.lang.invoke.MethodHandles.loop:([[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 init Ljava/lang/invoke/MethodHandle;
0 4 1 body Ljava/lang/invoke/MethodHandle;
0 4 2 pred Ljava/lang/invoke/MethodHandle;
2 4 3 fini Ljava/lang/invoke/MethodHandle;
3 4 4 clause [Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
init
body
pred
private static void whileLoopChecks(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 2
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 3
start local 3 3: aload 3
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
astore 4
start local 4 4: aload 3
invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
astore 5
start local 5 5: aload 5
astore 6
start local 6 6: aload 4
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpeq 11
7: aload 5
invokeinterface java.util.List.size:()I
ifeq 8
aload 5
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
aload 4
if_acmpeq 10
8: StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodType java.lang.Class java.util.List java.util.List
StackMap stack:
aload 3
iconst_0
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 4
aastore
invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 7
start local 7 9: ldc "body function"
aload 3
aload 7
invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
end local 7 10: StackMap locals:
StackMap stack:
aload 5
iconst_1
aload 5
invokeinterface java.util.List.size:()I
invokeinterface java.util.List.subList:(II)Ljava/util/List;
astore 6
11: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 7
start local 7 12: aload 7
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
if_acmpne 14
13: aload 7
iconst_0
aload 5
invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
ifne 15
14: StackMap locals: java.lang.invoke.MethodType
StackMap stack:
ldc "loop predicate"
aload 7
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
aload 5
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
15: StackMap locals:
StackMap stack:
aload 0
ifnull 20
16: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 8
start local 8 17: aload 8
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
aload 4
if_acmpne 19
18: aload 8
iconst_0
aload 6
invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
ifne 20
19: StackMap locals: java.lang.invoke.MethodType
StackMap stack:
ldc "loop initializer"
aload 8
aload 4
aload 6
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
end local 8 20: StackMap locals:
StackMap stack:
return
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 21 0 init Ljava/lang/invoke/MethodHandle;
0 21 1 pred Ljava/lang/invoke/MethodHandle;
0 21 2 body Ljava/lang/invoke/MethodHandle;
3 21 3 bodyType Ljava/lang/invoke/MethodType;
4 21 4 returnType Ljava/lang/Class<*>;
5 21 5 innerList Ljava/util/List<Ljava/lang/Class<*>;>;
6 21 6 outerList Ljava/util/List<Ljava/lang/Class<*>;>;
9 10 7 expected Ljava/lang/invoke/MethodType;
12 21 7 predType Ljava/lang/invoke/MethodType;
17 20 8 initType Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
init
pred
body
public static java.lang.invoke.MethodHandle countedLoop(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
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
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokestatic java.lang.invoke.MethodHandles.empty:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
aload 0
aload 1
aload 2
invokestatic java.lang.invoke.MethodHandles.countedLoop:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;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 iterations Ljava/lang/invoke/MethodHandle;
0 1 1 init Ljava/lang/invoke/MethodHandle;
0 1 2 body Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
iterations
init
body
public static java.lang.invoke.MethodHandle countedLoop(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
invokestatic java.lang.invoke.MethodHandles.countedLoopChecks:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
1: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
astore 4
start local 4 2: aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
pop
3: aload 3
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
astore 5
start local 5 4: bipush 7
invokestatic java.lang.invoke.MethodHandleImpl.getConstantHandle:(I)Ljava/lang/invoke/MethodHandle;
astore 6
start local 6 5: bipush 6
invokestatic java.lang.invoke.MethodHandleImpl.getConstantHandle:(I)Ljava/lang/invoke/MethodHandle;
astore 7
start local 7 6: aconst_null
astore 8
start local 8 7: aload 5
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpeq 11
8: aload 6
iconst_1
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 5
aastore
invokestatic java.lang.invoke.MethodHandles.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
astore 6
9: aload 7
iconst_1
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 5
aastore
invokestatic java.lang.invoke.MethodHandles.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
astore 7
10: aload 5
invokestatic java.lang.invoke.MethodHandles.identity:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
iconst_0
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 4
aastore
invokestatic java.lang.invoke.MethodHandles.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
astore 8
11: StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.Class java.lang.Class java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
StackMap stack:
aload 3
iconst_0
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 4
aastore
invokestatic java.lang.invoke.MethodHandles.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
astore 3
12: iconst_4
anewarray java.lang.invoke.MethodHandle
dup
iconst_0
aload 1
aastore
dup
iconst_2
aload 7
aastore
dup
iconst_3
aload 8
aastore
astore 9
start local 9 13: iconst_2
anewarray java.lang.invoke.MethodHandle
dup
iconst_0
aload 2
aastore
dup
iconst_1
aload 3
aastore
astore 10
start local 10 14: iconst_2
anewarray java.lang.invoke.MethodHandle
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 6
aastore
astore 11
start local 11 15: iconst_3
anewarray java.lang.invoke.MethodHandle[]
dup
iconst_0
aload 9
aastore
dup
iconst_1
aload 10
aastore
dup
iconst_2
aload 11
aastore
invokestatic java.lang.invoke.MethodHandles.loop:([[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
end local 11 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 16 0 start Ljava/lang/invoke/MethodHandle;
0 16 1 end Ljava/lang/invoke/MethodHandle;
0 16 2 init Ljava/lang/invoke/MethodHandle;
0 16 3 body Ljava/lang/invoke/MethodHandle;
2 16 4 counterType Ljava/lang/Class<*>;
4 16 5 returnType Ljava/lang/Class<*>;
5 16 6 incr Ljava/lang/invoke/MethodHandle;
6 16 7 pred Ljava/lang/invoke/MethodHandle;
7 16 8 retv Ljava/lang/invoke/MethodHandle;
13 16 9 loopLimit [Ljava/lang/invoke/MethodHandle;
14 16 10 bodyClause [Ljava/lang/invoke/MethodHandle;
15 16 11 indexVar [Ljava/lang/invoke/MethodHandle;
MethodParameters:
Name Flags
start
end
init
body
private static void countedLoopChecks(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=12, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 3
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
astore 4
start local 4 4: aload 4
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
if_acmpeq 7
5: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 5
start local 5 6: ldc "start function"
aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
aload 5
invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
end local 5 7: StackMap locals: java.lang.Class
StackMap stack:
aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
aload 4
if_acmpeq 10
8: aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
aload 4
invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 5
start local 5 9: ldc "end function"
aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
aload 5
invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
end local 5 10: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 5
start local 5 11: aload 5
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
astore 6
start local 6 12: aload 5
invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
astore 7
start local 7 13: aload 6
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpne 14
iconst_0
goto 15
StackMap locals: java.lang.invoke.MethodType java.lang.Class java.util.List
StackMap stack:
14: iconst_1
StackMap locals:
StackMap stack: int
15: istore 8
start local 8 16: iload 8
ifeq 19
aload 7
invokeinterface java.util.List.size:()I
ifeq 17
aload 7
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
aload 6
if_acmpeq 19
17: StackMap locals: int
StackMap stack:
aload 5
iconst_0
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 6
aastore
invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 9
start local 9 18: ldc "body function"
aload 5
aload 9
invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
end local 9 19: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.List.size:()I
iload 8
if_icmple 20
aload 7
iload 8
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
aload 4
if_acmpeq 22
20: StackMap locals:
StackMap stack:
aload 5
iload 8
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 4
aastore
invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 9
start local 9 21: ldc "body function"
aload 5
aload 9
invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
end local 9 22: StackMap locals:
StackMap stack:
aload 7
iload 8
iconst_1
iadd
aload 7
invokeinterface java.util.List.size:()I
invokeinterface java.util.List.subList:(II)Ljava/util/List;
astore 9
start local 9 23: aload 9
invokeinterface java.util.List.isEmpty:()Z
ifeq 26
24: aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
astore 9
25: aload 5
iload 8
iconst_1
iadd
aload 9
invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(ILjava/util/List;)Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
astore 7
26: StackMap locals: java.util.List
StackMap stack:
aload 4
aload 9
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
astore 10
start local 10 27: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
iconst_0
aload 9
invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
ifne 29
28: ldc "start parameter types"
aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
aload 10
invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
29: StackMap locals: java.lang.invoke.MethodType
StackMap stack:
aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
if_acmpeq 32
30: aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
iconst_0
aload 9
invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
ifne 32
31: ldc "end parameter types"
aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
aload 10
invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
32: StackMap locals:
StackMap stack:
aload 2
ifnull 37
33: aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 11
start local 11 34: aload 11
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
aload 6
if_acmpne 36
35: aload 11
iconst_0
aload 9
invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
ifne 37
36: StackMap locals: java.lang.invoke.MethodType
StackMap stack:
ldc "loop initializer"
aload 11
aload 6
aload 9
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
end local 11 37: StackMap locals:
StackMap stack:
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 38 0 start Ljava/lang/invoke/MethodHandle;
0 38 1 end Ljava/lang/invoke/MethodHandle;
0 38 2 init Ljava/lang/invoke/MethodHandle;
0 38 3 body Ljava/lang/invoke/MethodHandle;
4 38 4 counterType Ljava/lang/Class<*>;
6 7 5 expected Ljava/lang/invoke/MethodType;
9 10 5 expected Ljava/lang/invoke/MethodType;
11 38 5 bodyType Ljava/lang/invoke/MethodType;
12 38 6 returnType Ljava/lang/Class<*>;
13 38 7 innerList Ljava/util/List<Ljava/lang/Class<*>;>;
16 38 8 vsize I
18 19 9 expected Ljava/lang/invoke/MethodType;
21 22 9 expected Ljava/lang/invoke/MethodType;
23 38 9 outerList Ljava/util/List<Ljava/lang/Class<*>;>;
27 38 10 expected Ljava/lang/invoke/MethodType;
34 37 11 initType Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
start
end
init
body
public static java.lang.invoke.MethodHandle iteratedLoop(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokestatic java.lang.invoke.MethodHandles.iteratedLoopChecks:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/Class;
astore 3
start local 3 1: aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
astore 4
start local 4 2: bipush 9
invokestatic java.lang.invoke.MethodHandleImpl.getConstantHandle:(I)Ljava/lang/invoke/MethodHandle;
astore 5
start local 5 3: bipush 10
invokestatic java.lang.invoke.MethodHandleImpl.getConstantHandle:(I)Ljava/lang/invoke/MethodHandle;
astore 6
start local 6 4: aload 0
ifnonnull 8
5: bipush 8
invokestatic java.lang.invoke.MethodHandleImpl.getConstantHandle:(I)Ljava/lang/invoke/MethodHandle;
astore 7
start local 7 6: aload 7
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
iconst_0
aload 3
invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 9
start local 9 7: goto 10
end local 9 end local 7 8: StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.Class java.lang.Class java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
StackMap stack:
aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
ldc Ljava/util/Iterator;
invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 9
start local 9 9: aload 0
astore 7
start local 7 10: StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.Class java.lang.Class java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle top java.lang.invoke.MethodType
StackMap stack:
aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
aload 4
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpne 11
iconst_0
goto 12
StackMap locals:
StackMap stack: java.lang.invoke.MethodType
11: iconst_1
StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.Class java.lang.Class java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle top java.lang.invoke.MethodType
StackMap stack: java.lang.invoke.MethodType int
12: invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
astore 10
start local 10 13: aload 6
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
aload 10
invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 11
start local 11 14: aload 7
aload 9
invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
astore 7
15: aload 6
aload 11
invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
astore 8
start local 8 16: goto 19
end local 8 StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.Class java.lang.Class java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle top java.lang.invoke.MethodType java.lang.Class java.lang.invoke.MethodType
StackMap stack: java.lang.invoke.WrongMethodTypeException
17: astore 12
start local 12 18: new java.lang.IllegalArgumentException
dup
aload 12
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 12 end local 11 end local 10 end local 9 start local 8 19: StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.Class java.lang.Class java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
StackMap stack:
aconst_null
astore 9
start local 9 20: aload 2
astore 10
start local 10 21: aload 4
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpeq 24
22: aload 4
invokestatic java.lang.invoke.MethodHandles.identity:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
iconst_0
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/util/Iterator;
aastore
invokestatic java.lang.invoke.MethodHandles.dropArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
astore 9
23: aload 2
iconst_0
iconst_1
invokestatic java.lang.invoke.MethodHandles.swapArguments:(Ljava/lang/invoke/MethodHandle;II)Ljava/lang/invoke/MethodHandle;
astore 10
24: StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
StackMap stack:
iconst_4
anewarray java.lang.invoke.MethodHandle
dup
iconst_0
aload 7
aastore
dup
iconst_2
aload 5
aastore
dup
iconst_3
aload 9
aastore
astore 11
start local 11 25: iconst_2
anewarray java.lang.invoke.MethodHandle
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 10
iconst_0
aload 8
invokestatic java.lang.invoke.MethodHandles.filterArgument:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
aastore
astore 12
start local 12 26: iconst_2
anewarray java.lang.invoke.MethodHandle[]
dup
iconst_0
aload 11
aastore
dup
iconst_1
aload 12
aastore
invokestatic java.lang.invoke.MethodHandles.loop:([[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
areturn
end local 12 end local 11 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 27 0 iterator Ljava/lang/invoke/MethodHandle;
0 27 1 init Ljava/lang/invoke/MethodHandle;
0 27 2 body Ljava/lang/invoke/MethodHandle;
1 27 3 iterableType Ljava/lang/Class<*>;
2 27 4 returnType Ljava/lang/Class<*>;
3 27 5 hasNext Ljava/lang/invoke/MethodHandle;
4 27 6 nextRaw Ljava/lang/invoke/MethodHandle;
6 8 7 startIter Ljava/lang/invoke/MethodHandle;
10 27 7 startIter Ljava/lang/invoke/MethodHandle;
16 17 8 nextVal Ljava/lang/invoke/MethodHandle;
19 27 8 nextVal Ljava/lang/invoke/MethodHandle;
7 8 9 iteratorType Ljava/lang/invoke/MethodType;
9 19 9 iteratorType Ljava/lang/invoke/MethodType;
13 19 10 ttype Ljava/lang/Class<*>;
14 19 11 nextValType Ljava/lang/invoke/MethodType;
18 19 12 ex Ljava/lang/invoke/WrongMethodTypeException;
20 27 9 retv Ljava/lang/invoke/MethodHandle;
21 27 10 step Ljava/lang/invoke/MethodHandle;
25 27 11 iterVar [Ljava/lang/invoke/MethodHandle;
26 27 12 bodyClause [Ljava/lang/invoke/MethodHandle;
Exception table:
from to target type
14 16 17 Class java.lang.invoke.WrongMethodTypeException
MethodParameters:
Name Flags
iterator
init
body
private static java.lang.Class<?> iteratedLoopChecks(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/Class;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 2
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 3
start local 3 2: aload 3
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
astore 4
start local 4 3: aload 3
invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
astore 5
start local 5 4: aload 4
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpne 5
iconst_0
goto 6
StackMap locals: java.lang.invoke.MethodType java.lang.Class java.util.List
StackMap stack:
5: iconst_1
StackMap locals:
StackMap stack: int
6: istore 6
start local 6 7: iload 6
ifeq 10
aload 5
invokeinterface java.util.List.size:()I
ifeq 8
aload 5
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
aload 4
if_acmpeq 10
8: StackMap locals: int
StackMap stack:
aload 3
iconst_0
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 4
aastore
invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 7
start local 7 9: ldc "body function"
aload 3
aload 7
invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
end local 7 10: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.List.size:()I
iload 6
if_icmpgt 13
11: aload 3
iload 6
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
invokevirtual java.lang.invoke.MethodType.insertParameterTypes:(I[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 7
start local 7 12: ldc "body function"
aload 3
aload 7
invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
end local 7 13: StackMap locals:
StackMap stack:
aload 5
iload 6
iconst_1
iadd
aload 5
invokeinterface java.util.List.size:()I
invokeinterface java.util.List.subList:(II)Ljava/util/List;
astore 7
start local 7 14: aconst_null
astore 8
start local 8 15: aload 0
ifnull 24
16: aload 7
invokeinterface java.util.List.isEmpty:()Z
ifeq 18
17: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
astore 7
18: StackMap locals: java.util.List java.lang.Class
StackMap stack:
aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 9
start local 9 19: ldc Ljava/util/Iterator;
aload 9
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 21
20: ldc "iteratedLoop first argument must have Iterator return type"
invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
21: StackMap locals: java.lang.invoke.MethodType
StackMap stack:
aload 9
iconst_0
aload 7
invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
ifne 32
22: aload 9
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
aload 7
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
astore 10
start local 10 23: ldc "iterator parameters"
aload 9
aload 10
invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
end local 10 end local 9 24: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.List.isEmpty:()Z
ifeq 28
25: iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Iterable;
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
astore 7
26: ldc Ljava/lang/Iterable;
astore 8
27: goto 32
28: StackMap locals:
StackMap stack:
aload 7
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.Class
astore 8
29: ldc Ljava/lang/Iterable;
aload 8
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 32
30: new java.lang.StringBuilder
dup
ldc "inferred first loop argument must inherit from Iterable: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
31: invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
32: StackMap locals:
StackMap stack:
aload 1
ifnull 37
33: aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 9
start local 9 34: aload 9
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
aload 4
if_acmpne 36
35: aload 9
iconst_0
aload 7
invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
ifne 37
36: StackMap locals: java.lang.invoke.MethodType
StackMap stack:
ldc "loop initializer"
aload 9
aload 4
aload 7
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
end local 9 37: StackMap locals:
StackMap stack:
aload 8
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 38 0 iterator Ljava/lang/invoke/MethodHandle;
0 38 1 init Ljava/lang/invoke/MethodHandle;
0 38 2 body Ljava/lang/invoke/MethodHandle;
2 38 3 bodyType Ljava/lang/invoke/MethodType;
3 38 4 returnType Ljava/lang/Class<*>;
4 38 5 internalParamList Ljava/util/List<Ljava/lang/Class<*>;>;
7 38 6 vsize I
9 10 7 expected Ljava/lang/invoke/MethodType;
12 13 7 expected Ljava/lang/invoke/MethodType;
14 38 7 externalParamList Ljava/util/List<Ljava/lang/Class<*>;>;
15 38 8 iterableType Ljava/lang/Class<*>;
19 24 9 itype Ljava/lang/invoke/MethodType;
23 24 10 expected Ljava/lang/invoke/MethodType;
34 37 9 initType Ljava/lang/invoke/MethodType;
Signature: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
iterator
init
body
static java.lang.invoke.MethodHandle swapArguments(java.lang.invoke.MethodHandle, int, int);
descriptor: (Ljava/lang/invoke/MethodHandle;II)Ljava/lang/invoke/MethodHandle;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
istore 3
start local 3 1: iload 3
newarray 10
astore 4
start local 4 2: iconst_0
istore 5
start local 5 3: goto 5
StackMap locals: int int[] int
StackMap stack:
4: aload 4
iload 5
iload 5
iastore
iinc 5 1
StackMap locals:
StackMap stack:
5: iload 5
iload 3
if_icmplt 4
end local 5 6: aload 4
iload 1
iload 2
iastore
aload 4
iload 2
iload 1
iastore
7: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterArray:()[Ljava/lang/Class;
astore 5
start local 5 8: aload 5
iload 1
aaload
astore 6
start local 6 9: aload 5
iload 1
aload 5
iload 2
aaload
aastore
aload 5
iload 2
aload 6
aastore
10: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
aload 5
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
astore 7
start local 7 11: aload 0
aload 7
aload 4
invokestatic java.lang.invoke.MethodHandles.permuteArguments:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;[I)Ljava/lang/invoke/MethodHandle;
areturn
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 12 0 mh Ljava/lang/invoke/MethodHandle;
0 12 1 i I
0 12 2 j I
1 12 3 arity I
2 12 4 order [I
3 6 5 k I
8 12 5 types [Ljava/lang/Class;
9 12 6 ti Ljava/lang/Class<*>;
11 12 7 swapType Ljava/lang/invoke/MethodType;
MethodParameters:
Name Flags
mh
i
j
public static java.lang.invoke.MethodHandle tryFinally(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
astore 2
start local 2 1: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
astore 3
start local 3 2: aload 0
aload 1
invokestatic java.lang.invoke.MethodHandles.tryFinallyChecks:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
3: aload 1
aload 3
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpne 4
iconst_1
goto 5
StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.util.List java.lang.Class
StackMap stack: java.lang.invoke.MethodHandle
4: iconst_2
StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.util.List java.lang.Class
StackMap stack: java.lang.invoke.MethodHandle int
5: aload 2
iconst_0
invokestatic java.lang.invoke.MethodHandles.dropArgumentsToMatch:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;I)Ljava/lang/invoke/MethodHandle;
astore 1
6: aload 1
aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
iconst_0
ldc Ljava/lang/Throwable;
invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
astore 1
7: aload 0
invokevirtual java.lang.invoke.MethodHandle.asFixedArity:()Ljava/lang/invoke/MethodHandle;
aload 1
invokevirtual java.lang.invoke.MethodHandle.asFixedArity:()Ljava/lang/invoke/MethodHandle;
aload 3
aload 2
invokestatic java.lang.invoke.MethodHandleImpl.makeTryFinally:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodHandle;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 target Ljava/lang/invoke/MethodHandle;
0 8 1 cleanup Ljava/lang/invoke/MethodHandle;
1 8 2 targetParamTypes Ljava/util/List<Ljava/lang/Class<*>;>;
2 8 3 rtype Ljava/lang/Class<*>;
MethodParameters:
Name Flags
target
cleanup
private static void tryFinallyChecks(java.lang.invoke.MethodHandle, java.lang.invoke.MethodHandle);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
astore 2
start local 2 1: aload 2
aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
if_acmpeq 3
2: ldc "target and return types"
aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
aload 2
invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
3: StackMap locals: java.lang.Class
StackMap stack:
aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
astore 3
start local 3 4: ldc Ljava/lang/Throwable;
aload 3
iconst_0
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifne 6
5: ldc "cleanup first argument and Throwable"
aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
ldc Ljava/lang/Throwable;
invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
6: StackMap locals: java.lang.invoke.MethodType
StackMap stack:
aload 2
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpeq 8
aload 3
iconst_1
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
aload 2
if_acmpeq 8
7: ldc "cleanup second argument and target return type"
aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
aload 2
invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
8: StackMap locals:
StackMap stack:
aload 2
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpne 9
iconst_1
goto 10
StackMap locals:
StackMap stack:
9: iconst_2
StackMap locals:
StackMap stack: int
10: istore 4
start local 4 11: aload 3
iload 4
aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
ifne 15
12: ldc "cleanup parameters after (Throwable,result) and target parameter list prefix"
13: aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
aload 0
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
14: invokestatic java.lang.invoke.MethodHandles.misMatchedTypes:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
athrow
15: StackMap locals: int
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 target Ljava/lang/invoke/MethodHandle;
0 16 1 cleanup Ljava/lang/invoke/MethodHandle;
1 16 2 rtype Ljava/lang/Class<*>;
4 16 3 cleanupType Ljava/lang/invoke/MethodType;
11 16 4 cleanupArgIndex I
MethodParameters:
Name Flags
target
cleanup
static int[] $SWITCH_TABLE$sun$invoke$util$Wrapper();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic java.lang.invoke.MethodHandles.$SWITCH_TABLE$sun$invoke$util$Wrapper:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic sun.invoke.util.Wrapper.values:()[Lsun/invoke/util/Wrapper;
arraylength
newarray 10
astore 0
2: aload 0
getstatic sun.invoke.util.Wrapper.BOOLEAN:Lsun/invoke/util/Wrapper;
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
iconst_1
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic sun.invoke.util.Wrapper.BYTE:Lsun/invoke/util/Wrapper;
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
iconst_2
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic sun.invoke.util.Wrapper.CHAR:Lsun/invoke/util/Wrapper;
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
iconst_4
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic sun.invoke.util.Wrapper.DOUBLE:Lsun/invoke/util/Wrapper;
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
bipush 8
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic sun.invoke.util.Wrapper.FLOAT:Lsun/invoke/util/Wrapper;
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
bipush 7
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic sun.invoke.util.Wrapper.INT:Lsun/invoke/util/Wrapper;
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
iconst_5
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
getstatic sun.invoke.util.Wrapper.LONG:Lsun/invoke/util/Wrapper;
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
bipush 6
iastore
21: goto 23
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
22: pop
StackMap locals:
StackMap stack:
23: aload 0
getstatic sun.invoke.util.Wrapper.OBJECT:Lsun/invoke/util/Wrapper;
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
bipush 9
iastore
24: goto 26
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
25: pop
StackMap locals:
StackMap stack:
26: aload 0
getstatic sun.invoke.util.Wrapper.SHORT:Lsun/invoke/util/Wrapper;
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
iconst_3
iastore
27: goto 29
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
28: pop
StackMap locals:
StackMap stack:
29: aload 0
getstatic sun.invoke.util.Wrapper.VOID:Lsun/invoke/util/Wrapper;
invokevirtual sun.invoke.util.Wrapper.ordinal:()I
bipush 10
iastore
30: goto 32
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
31: pop
StackMap locals:
StackMap stack:
32: aload 0
dup
putstatic java.lang.invoke.MethodHandles.$SWITCH_TABLE$sun$invoke$util$Wrapper:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
17 18 19 Class java.lang.NoSuchFieldError
20 21 22 Class java.lang.NoSuchFieldError
23 24 25 Class java.lang.NoSuchFieldError
26 27 28 Class java.lang.NoSuchFieldError
29 30 31 Class java.lang.NoSuchFieldError
private static boolean lambda$0(java.lang.invoke.MethodHandle[]);
descriptor: ([Ljava/lang/invoke/MethodHandle;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
invokedynamic test()Ljava/util/function/Predicate;
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;)Z
java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
(Ljava/lang/invoke/MethodHandle;)Z
invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 c [Ljava/lang/invoke/MethodHandle;
private static void lambda$2(java.util.List, java.util.List, java.util.List, java.util.List, java.lang.invoke.MethodHandle[]);
descriptor: (Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;[Ljava/lang/invoke/MethodHandle;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=5, args_size=5
start local 4 0: aload 0
aload 4
iconst_0
aaload
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
1: aload 1
aload 4
arraylength
iconst_1
if_icmpgt 2
aconst_null
goto 3
StackMap locals:
StackMap stack: java.util.List
2: aload 4
iconst_1
aaload
StackMap locals: java.util.List java.util.List java.util.List java.util.List java.lang.invoke.MethodHandle[]
StackMap stack: java.util.List java.lang.invoke.MethodHandle
3: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
4: aload 2
aload 4
arraylength
iconst_2
if_icmpgt 5
aconst_null
goto 6
StackMap locals:
StackMap stack: java.util.List
5: aload 4
iconst_2
aaload
StackMap locals: java.util.List java.util.List java.util.List java.util.List java.lang.invoke.MethodHandle[]
StackMap stack: java.util.List java.lang.invoke.MethodHandle
6: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
7: aload 3
aload 4
arraylength
iconst_3
if_icmpgt 8
aconst_null
goto 9
StackMap locals:
StackMap stack: java.util.List
8: aload 4
iconst_3
aaload
StackMap locals: java.util.List java.util.List java.util.List java.util.List java.lang.invoke.MethodHandle[]
StackMap stack: java.util.List java.lang.invoke.MethodHandle
9: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
10: return
end local 4 LocalVariableTable:
Start End Slot Name Signature
0 11 4 clause [Ljava/lang/invoke/MethodHandle;
private static boolean lambda$4(java.lang.Class);
descriptor: (Ljava/lang/Class;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpeq 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 t Ljava/lang/Class<*>;
private static boolean lambda$10(java.util.List, java.util.List);
descriptor: (Ljava/util/List;Ljava/util/List;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 1
aload 0
invokeinterface java.util.List.equals:(Ljava/lang/Object;)Z
ireturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 pl Ljava/util/List<Ljava/lang/Class<*>;>;
private static boolean lambda$14(java.util.List, java.util.List);
descriptor: (Ljava/util/List;Ljava/util/List;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 1
aload 0
invokeinterface java.util.List.equals:(Ljava/lang/Object;)Z
ireturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 pl Ljava/util/List<Ljava/lang/Class<*>;>;
private static boolean lambda$16(java.lang.invoke.MethodHandle[]);
descriptor: ([Ljava/lang/invoke/MethodHandle;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
arraylength
iconst_4
if_icmple 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 c [Ljava/lang/invoke/MethodHandle;
private static boolean lambda$19(int, java.lang.invoke.MethodType);
descriptor: (ILjava/lang/invoke/MethodType;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 1
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iload 0
if_icmple 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 3 1 t Ljava/lang/invoke/MethodType;
private static java.util.List lambda$21(java.util.List, java.util.List);
descriptor: (Ljava/util/List;Ljava/util/List;)Ljava/util/List;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface java.util.List.size:()I
aload 1
invokeinterface java.util.List.size:()I
if_icmplt 1
aload 0
goto 2
StackMap locals:
StackMap stack:
1: aload 1
StackMap locals:
StackMap stack: java.util.List
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 p Ljava/util/List<Ljava/lang/Class<*>;>;
0 3 1 q Ljava/util/List<Ljava/lang/Class<*>;>;
private static java.util.List lambda$22(java.util.List, java.util.List);
descriptor: (Ljava/util/List;Ljava/util/List;)Ljava/util/List;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface java.util.List.size:()I
aload 1
invokeinterface java.util.List.size:()I
if_icmplt 1
aload 0
goto 2
StackMap locals:
StackMap stack:
1: aload 1
StackMap locals:
StackMap stack: java.util.List
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 p Ljava/util/List<Ljava/lang/Class<*>;>;
0 3 1 q Ljava/util/List<Ljava/lang/Class<*>;>;
private static boolean lambda$26(java.util.List, java.lang.invoke.MethodType);
descriptor: (Ljava/util/List;Ljava/lang/invoke/MethodType;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=2, args_size=2
start local 1 0: aload 1
iconst_0
aload 0
invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 3 1 t Ljava/lang/invoke/MethodType;
private static boolean lambda$30(java.lang.Class, java.lang.Class);
descriptor: (Ljava/lang/Class;Ljava/lang/Class;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 1
aload 0
if_acmpeq 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 3 1 t Ljava/lang/Class<Ljava/lang/Object;>;
private static boolean lambda$35(java.lang.Class);
descriptor: (Ljava/lang/Class;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
if_acmpeq 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 t Ljava/lang/Class<Ljava/lang/Object;>;
private static boolean lambda$39(java.util.List, java.lang.invoke.MethodType);
descriptor: (Ljava/util/List;Ljava/lang/invoke/MethodType;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=2, args_size=2
start local 1 0: aload 1
iconst_0
aload 0
invokevirtual java.lang.invoke.MethodType.effectivelyIdenticalParameters:(ILjava/util/List;)Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 3 1 t Ljava/lang/invoke/MethodType;
private static java.lang.invoke.MethodHandle lambda$40(java.util.List, java.lang.invoke.MethodHandle);
descriptor: (Ljava/util/List;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=5, locals=4, args_size=2
start local 1 0: aload 1
invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
istore 2
start local 2 1: aload 0
invokeinterface java.util.List.size:()I
istore 3
start local 3 2: iload 2
iload 3
if_icmpge 3
aload 1
iload 2
aload 0
iload 2
iload 3
invokeinterface java.util.List.subList:(II)Ljava/util/List;
invokestatic java.lang.invoke.MethodHandles.dropArguments0:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
goto 4
StackMap locals: int int
StackMap stack:
3: aload 1
StackMap locals:
StackMap stack: java.lang.invoke.MethodHandle
4: areturn
end local 3 end local 2 end local 1 LocalVariableTable:
Start End Slot Name Signature
0 5 1 h Ljava/lang/invoke/MethodHandle;
1 5 2 pc I
2 5 3 tpsize I
}
SourceFile: "MethodHandles.java"
NestMembers:
java.lang.invoke.MethodHandles$Lookup java.lang.invoke.MethodHandles$Lookup$ClassDefiner java.lang.invoke.MethodHandles$Lookup$ClassFile java.lang.invoke.MethodHandles$Lookup$ClassOption
InnerClasses:
final BasicType = java.lang.invoke.LambdaForm$BasicType of java.lang.invoke.LambdaForm
Factory = java.lang.invoke.MemberName$Factory of java.lang.invoke.MemberName
final ArrayAccess = java.lang.invoke.MethodHandleImpl$ArrayAccess of java.lang.invoke.MethodHandleImpl
final Intrinsic = java.lang.invoke.MethodHandleImpl$Intrinsic of java.lang.invoke.MethodHandleImpl
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public final AccessMode = java.lang.invoke.VarHandle$AccessMode of java.lang.invoke.VarHandle