abstract class jdk.dynalink.beans.SingleDynamicMethod extends jdk.dynalink.beans.DynamicMethod
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: jdk.dynalink.beans.SingleDynamicMethod
  super_class: jdk.dynalink.beans.DynamicMethod
{
  private static final java.lang.invoke.MethodHandle CAN_CONVERT_TO;
    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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=0, args_size=0
         0: .line 78
            ldc Ljdk/dynalink/beans/SingleDynamicMethod;
            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 jdk.dynalink.beans.SingleDynamicMethod.$assertionsDisabled:Z
         3: .line 79
            invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
            ldc "canConvertTo"
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            iconst_3
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljdk/dynalink/linker/LinkerServices;
            aastore
            dup
            iconst_1
            ldc Ljava/lang/Class;
            aastore
            dup
            iconst_2
            ldc Ljava/lang/Object;
            aastore
            invokestatic jdk.dynalink.linker.support.Lookup.findOwnStatic:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            putstatic jdk.dynalink.beans.SingleDynamicMethod.CAN_CONVERT_TO:Ljava/lang/invoke/MethodHandle;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.dynalink.beans.SingleDynamicMethod this
        start local 1 // java.lang.String name
         0: .line 82
            aload 0 /* this */
            aload 1 /* name */
            invokespecial jdk.dynalink.beans.DynamicMethod.<init>:(Ljava/lang/String;)V
         1: .line 83
            return
        end local 1 // java.lang.String name
        end local 0 // jdk.dynalink.beans.SingleDynamicMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/dynalink/beans/SingleDynamicMethod;
            0    2     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  final

  abstract boolean isVarArgs();
    descriptor: ()Z
    flags: (0x0400) ACC_ABSTRACT

  abstract java.lang.invoke.MethodType getMethodType();
    descriptor: ()Ljava/lang/invoke/MethodType;
    flags: (0x0400) ACC_ABSTRACT

  abstract java.lang.invoke.MethodHandle getTarget(jdk.dynalink.CallSiteDescriptor);
    descriptor: (Ljdk/dynalink/CallSiteDescriptor;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0400) ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      desc  

  java.lang.invoke.MethodHandle getInvocation(jdk.dynalink.CallSiteDescriptor, jdk.dynalink.linker.LinkerServices);
    descriptor: (Ljdk/dynalink/CallSiteDescriptor;Ljdk/dynalink/linker/LinkerServices;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // jdk.dynalink.beans.SingleDynamicMethod this
        start local 1 // jdk.dynalink.CallSiteDescriptor callSiteDescriptor
        start local 2 // jdk.dynalink.linker.LinkerServices linkerServices
         0: .line 108
            aload 2 /* linkerServices */
            aload 0 /* this */
            aload 1 /* callSiteDescriptor */
            aload 2 /* linkerServices */
            invokedynamic get(Ljdk/dynalink/beans/SingleDynamicMethod;Ljdk/dynalink/CallSiteDescriptor;Ljdk/dynalink/linker/LinkerServices;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  jdk/dynalink/beans/SingleDynamicMethod.lambda$0(Ljdk/dynalink/CallSiteDescriptor;Ljdk/dynalink/linker/LinkerServices;)Ljava/lang/invoke/MethodHandle; (7)
                  ()Ljava/lang/invoke/MethodHandle;
         1: .line 109
            aload 1 /* callSiteDescriptor */
         2: .line 108
            invokeinterface jdk.dynalink.linker.LinkerServices.getWithLookup:(Ljava/util/function/Supplier;Ljdk/dynalink/SecureLookupSupplier;)Ljava/lang/Object;
            checkcast java.lang.invoke.MethodHandle
            areturn
        end local 2 // jdk.dynalink.linker.LinkerServices linkerServices
        end local 1 // jdk.dynalink.CallSiteDescriptor callSiteDescriptor
        end local 0 // jdk.dynalink.beans.SingleDynamicMethod this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    3     0                this  Ljdk/dynalink/beans/SingleDynamicMethod;
            0    3     1  callSiteDescriptor  Ljdk/dynalink/CallSiteDescriptor;
            0    3     2      linkerServices  Ljdk/dynalink/linker/LinkerServices;
    MethodParameters:
                    Name  Flags
      callSiteDescriptor  final
      linkerServices      final

  jdk.dynalink.beans.SingleDynamicMethod getMethodForExactParamTypes(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljdk/dynalink/beans/SingleDynamicMethod;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.dynalink.beans.SingleDynamicMethod this
        start local 1 // java.lang.String paramTypes
         0: .line 114
            aload 1 /* paramTypes */
            aload 0 /* this */
            invokevirtual jdk.dynalink.beans.SingleDynamicMethod.getMethodType:()Ljava/lang/invoke/MethodType;
            invokestatic jdk.dynalink.beans.SingleDynamicMethod.typeMatchesDescription:(Ljava/lang/String;Ljava/lang/invoke/MethodType;)Z
            ifeq 1
            aload 0 /* this */
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: jdk.dynalink.beans.SingleDynamicMethod
         2: areturn
        end local 1 // java.lang.String paramTypes
        end local 0 // jdk.dynalink.beans.SingleDynamicMethod this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Ljdk/dynalink/beans/SingleDynamicMethod;
            0    3     1  paramTypes  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      paramTypes  final

  boolean contains(jdk.dynalink.beans.SingleDynamicMethod);
    descriptor: (Ljdk/dynalink/beans/SingleDynamicMethod;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.dynalink.beans.SingleDynamicMethod this
        start local 1 // jdk.dynalink.beans.SingleDynamicMethod method
         0: .line 119
            aload 0 /* this */
            invokevirtual jdk.dynalink.beans.SingleDynamicMethod.getMethodType:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            aload 1 /* method */
            invokevirtual jdk.dynalink.beans.SingleDynamicMethod.getMethodType:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            invokeinterface java.util.List.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // jdk.dynalink.beans.SingleDynamicMethod method
        end local 0 // jdk.dynalink.beans.SingleDynamicMethod this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljdk/dynalink/beans/SingleDynamicMethod;
            0    1     1  method  Ljdk/dynalink/beans/SingleDynamicMethod;
    MethodParameters:
        Name  Flags
      method  final

  static java.lang.String getMethodNameWithSignature(java.lang.invoke.MethodType, java.lang.String, boolean);
    descriptor: (Ljava/lang/invoke/MethodType;Ljava/lang/String;Z)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // java.lang.invoke.MethodType type
        start local 1 // java.lang.String methodName
        start local 2 // boolean withReturnType
         0: .line 123
            aload 0 /* type */
            invokevirtual java.lang.invoke.MethodType.toString:()Ljava/lang/String;
            astore 3 /* typeStr */
        start local 3 // java.lang.String typeStr
         1: .line 124
            aload 3 /* typeStr */
            bipush 41
            invokevirtual java.lang.String.lastIndexOf:(I)I
            iconst_1
            iadd
            istore 4 /* retTypeIndex */
        start local 4 // int retTypeIndex
         2: .line 125
            aload 3 /* typeStr */
            bipush 44
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_1
            iadd
            istore 5 /* secondParamIndex */
        start local 5 // int secondParamIndex
         3: .line 126
            iload 5 /* secondParamIndex */
            ifne 5
         4: .line 127
            iload 4 /* retTypeIndex */
            iconst_1
            isub
            istore 5 /* secondParamIndex */
         5: .line 129
      StackMap locals: java.lang.String int int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 6 /* b */
        start local 6 // java.lang.StringBuilder b
         6: .line 130
            iload 2 /* withReturnType */
            ifeq 8
         7: .line 131
            aload 6 /* b */
            aload 3 /* typeStr */
            iload 4 /* retTypeIndex */
            aload 3 /* typeStr */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
            bipush 32
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         8: .line 133
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 6 /* b */
            aload 1 /* methodName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 40
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 3 /* typeStr */
            iload 5 /* secondParamIndex */
            iload 4 /* retTypeIndex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 6 // java.lang.StringBuilder b
        end local 5 // int secondParamIndex
        end local 4 // int retTypeIndex
        end local 3 // java.lang.String typeStr
        end local 2 // boolean withReturnType
        end local 1 // java.lang.String methodName
        end local 0 // java.lang.invoke.MethodType type
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              type  Ljava/lang/invoke/MethodType;
            0    9     1        methodName  Ljava/lang/String;
            0    9     2    withReturnType  Z
            1    9     3           typeStr  Ljava/lang/String;
            2    9     4      retTypeIndex  I
            3    9     5  secondParamIndex  I
            6    9     6                 b  Ljava/lang/StringBuilder;
    MethodParameters:
                Name  Flags
      type            final
      methodName      final
      withReturnType  final

  static java.lang.invoke.MethodHandle getInvocation(java.lang.invoke.MethodHandle, java.lang.invoke.MethodType, jdk.dynalink.linker.LinkerServices);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;Ljdk/dynalink/linker/LinkerServices;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=19, args_size=3
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // java.lang.invoke.MethodType callSiteType
        start local 2 // jdk.dynalink.linker.LinkerServices linkerServices
         0: .line 148
            aload 2 /* linkerServices */
            aload 0 /* target */
            invokeinterface jdk.dynalink.linker.LinkerServices.filterInternalObjects:(Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            astore 3 /* filteredTarget */
        start local 3 // java.lang.invoke.MethodHandle filteredTarget
         1: .line 149
            aload 3 /* filteredTarget */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 4 /* methodType */
        start local 4 // java.lang.invoke.MethodType methodType
         2: .line 150
            aload 4 /* methodType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 5 /* paramsLen */
        start local 5 // int paramsLen
         3: .line 151
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.isVarargsCollector:()Z
            istore 6 /* varArgs */
        start local 6 // boolean varArgs
         4: .line 152
            iload 6 /* varArgs */
            ifeq 5
            aload 3 /* filteredTarget */
            invokevirtual java.lang.invoke.MethodHandle.asFixedArity:()Ljava/lang/invoke/MethodHandle;
            goto 6
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodType jdk.dynalink.linker.LinkerServices java.lang.invoke.MethodHandle java.lang.invoke.MethodType int int
      StackMap stack:
         5: aload 3 /* filteredTarget */
      StackMap locals:
      StackMap stack: java.lang.invoke.MethodHandle
         6: astore 7 /* fixTarget */
        start local 7 // java.lang.invoke.MethodHandle fixTarget
         7: .line 153
            iload 6 /* varArgs */
            ifeq 8
            iload 5 /* paramsLen */
            iconst_1
            isub
            goto 9
      StackMap locals: java.lang.invoke.MethodHandle
      StackMap stack:
         8: iload 5 /* paramsLen */
      StackMap locals:
      StackMap stack: int
         9: istore 8 /* fixParamsLen */
        start local 8 // int fixParamsLen
        10: .line 154
            aload 1 /* callSiteType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            istore 9 /* argsLen */
        start local 9 // int argsLen
        11: .line 155
            iload 9 /* argsLen */
            iload 8 /* fixParamsLen */
            if_icmpge 13
        12: .line 157
            aconst_null
            areturn
        13: .line 160
      StackMap locals: int int
      StackMap stack:
            iload 9 /* argsLen */
            iload 8 /* fixParamsLen */
            if_icmpne 21
        14: .line 163
            iload 6 /* varArgs */
            ifeq 19
        15: .line 166
            aload 7 /* fixTarget */
            iload 8 /* fixParamsLen */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        16: .line 167
            aload 4 /* methodType */
            iload 8 /* fixParamsLen */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            iconst_0
        17: .line 166
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            aastore
            invokestatic java.lang.invoke.MethodHandles.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            astore 10 /* matchedMethod */
        start local 10 // java.lang.invoke.MethodHandle matchedMethod
        18: .line 168
            goto 20
        end local 10 // java.lang.invoke.MethodHandle matchedMethod
        19: .line 170
      StackMap locals:
      StackMap stack:
            aload 7 /* fixTarget */
            astore 10 /* matchedMethod */
        start local 10 // java.lang.invoke.MethodHandle matchedMethod
        20: .line 172
      StackMap locals: java.lang.invoke.MethodHandle
      StackMap stack:
            aload 10 /* matchedMethod */
            aload 2 /* linkerServices */
            aload 1 /* callSiteType */
            invokestatic jdk.dynalink.beans.SingleDynamicMethod.createConvertingInvocation:(Ljava/lang/invoke/MethodHandle;Ljdk/dynalink/linker/LinkerServices;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 10 // java.lang.invoke.MethodHandle matchedMethod
        21: .line 176
      StackMap locals:
      StackMap stack:
            iload 6 /* varArgs */
            ifne 23
        22: .line 177
            aconst_null
            areturn
        23: .line 180
      StackMap locals:
      StackMap stack:
            aload 4 /* methodType */
            iload 8 /* fixParamsLen */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            astore 10 /* varArgType */
        start local 10 // java.lang.Class varArgType
        24: .line 183
            iload 9 /* argsLen */
            iload 5 /* paramsLen */
            if_icmpne 62
        25: .line 184
            aload 1 /* callSiteType */
            iload 8 /* fixParamsLen */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            astore 11 /* callSiteLastArgType */
        start local 11 // java.lang.Class callSiteLastArgType
        26: .line 185
            aload 10 /* varArgType */
            aload 11 /* callSiteLastArgType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 30
        27: .line 188
            aload 3 /* filteredTarget */
            aload 2 /* linkerServices */
            aload 1 /* callSiteType */
            invokestatic jdk.dynalink.beans.SingleDynamicMethod.createConvertingInvocation:(Ljava/lang/invoke/MethodHandle;Ljdk/dynalink/linker/LinkerServices;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
        28: .line 189
            aload 11 /* callSiteLastArgType */
        29: .line 188
            invokevirtual java.lang.invoke.MethodHandle.asVarargsCollector:(Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            areturn
        30: .line 195
      StackMap locals: java.lang.Class java.lang.Class
      StackMap stack:
            aload 7 /* fixTarget */
        31: .line 196
            iload 9 /* argsLen */
        32: .line 195
            invokestatic jdk.dynalink.beans.SingleDynamicMethod.collectArguments:(Ljava/lang/invoke/MethodHandle;I)Ljava/lang/invoke/MethodHandle;
        33: .line 196
            aload 2 /* linkerServices */
            aload 1 /* callSiteType */
        34: .line 195
            invokestatic jdk.dynalink.beans.SingleDynamicMethod.createConvertingInvocation:(Ljava/lang/invoke/MethodHandle;Ljdk/dynalink/linker/LinkerServices;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 12 /* varArgCollectingInvocation */
        start local 12 // java.lang.invoke.MethodHandle varArgCollectingInvocation
        35: .line 199
            aload 11 /* callSiteLastArgType */
            aload 10 /* varArgType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            istore 13 /* isAssignableFromArray */
        start local 13 // boolean isAssignableFromArray
        36: .line 201
            aload 2 /* linkerServices */
            aload 11 /* callSiteLastArgType */
            aload 10 /* varArgType */
            invokeinterface jdk.dynalink.linker.LinkerServices.canConvert:(Ljava/lang/Class;Ljava/lang/Class;)Z
            istore 14 /* isCustomConvertible */
        start local 14 // boolean isCustomConvertible
        37: .line 202
            iload 13 /* isAssignableFromArray */
            ifne 39
            iload 14 /* isCustomConvertible */
            ifne 39
        38: .line 206
            aload 12 /* varArgCollectingInvocation */
            areturn
        39: .line 212
      StackMap locals: java.lang.invoke.MethodHandle int int
      StackMap stack:
            aload 7 /* fixTarget */
            iload 8 /* fixParamsLen */
            iconst_1
            anewarray java.lang.invoke.MethodHandle
            dup
            iconst_0
            aload 2 /* linkerServices */
            aload 11 /* callSiteLastArgType */
            aload 10 /* varArgType */
            invokeinterface jdk.dynalink.linker.LinkerServices.getTypeConverter:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            aastore
        40: .line 211
            invokestatic java.lang.invoke.MethodHandles.filterArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
        41: .line 213
            aload 2 /* linkerServices */
            aload 1 /* callSiteType */
        42: .line 211
            invokestatic jdk.dynalink.beans.SingleDynamicMethod.createConvertingInvocation:(Ljava/lang/invoke/MethodHandle;Ljdk/dynalink/linker/LinkerServices;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 15 /* arrayConvertingInvocation */
        start local 15 // java.lang.invoke.MethodHandle arrayConvertingInvocation
        43: .line 217
            getstatic jdk.dynalink.beans.SingleDynamicMethod.CAN_CONVERT_TO:Ljava/lang/invoke/MethodHandle;
            iconst_0
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* linkerServices */
            aastore
            dup
            iconst_1
        44: .line 218
            aload 10 /* varArgType */
            aastore
        45: .line 217
            invokestatic java.lang.invoke.MethodHandles.insertArguments:(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            astore 16 /* canConvertArgToArray */
        start local 16 // java.lang.invoke.MethodHandle canConvertArgToArray
        46: .line 221
            aload 16 /* canConvertArgToArray */
            iconst_0
        47: .line 222
            iload 8 /* fixParamsLen */
            invokestatic java.lang.invoke.MethodType.genericMethodType:(I)Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
        48: .line 221
            invokestatic java.lang.invoke.MethodHandles.dropArguments:(Ljava/lang/invoke/MethodHandle;ILjava/util/List;)Ljava/lang/invoke/MethodHandle;
        49: .line 222
            aload 1 /* callSiteType */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            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;
        50: .line 221
            astore 17 /* canConvertLastArgToArray */
        start local 17 // java.lang.invoke.MethodHandle canConvertLastArgToArray
        51: .line 226
            aload 17 /* canConvertLastArgToArray */
        52: .line 227
            aload 15 /* arrayConvertingInvocation */
            aload 12 /* varArgCollectingInvocation */
        53: .line 226
            invokestatic java.lang.invoke.MethodHandles.guardWithTest:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            astore 18 /* convertToArrayWhenPossible */
        start local 18 // java.lang.invoke.MethodHandle convertToArrayWhenPossible
        54: .line 229
            iload 13 /* isAssignableFromArray */
            ifeq 60
        55: .line 232
            aload 10 /* varArgType */
            iload 8 /* fixParamsLen */
            aload 1 /* callSiteType */
            invokestatic jdk.dynalink.linker.support.Guards.isInstance:(Ljava/lang/Class;ILjava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
        56: .line 234
            aload 7 /* fixTarget */
            aload 2 /* linkerServices */
            aload 1 /* callSiteType */
            invokestatic jdk.dynalink.beans.SingleDynamicMethod.createConvertingInvocation:(Ljava/lang/invoke/MethodHandle;Ljdk/dynalink/linker/LinkerServices;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
        57: .line 237
            iload 14 /* isCustomConvertible */
            ifeq 58
            aload 18 /* convertToArrayWhenPossible */
            goto 59
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodType jdk.dynalink.linker.LinkerServices java.lang.invoke.MethodHandle java.lang.invoke.MethodType int int java.lang.invoke.MethodHandle int int java.lang.Class java.lang.Class java.lang.invoke.MethodHandle int int java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
      StackMap stack: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
        58: aload 12 /* varArgCollectingInvocation */
        59: .line 230
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodType jdk.dynalink.linker.LinkerServices java.lang.invoke.MethodHandle java.lang.invoke.MethodType int int java.lang.invoke.MethodHandle int int java.lang.Class java.lang.Class java.lang.invoke.MethodHandle int int java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
      StackMap stack: java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle java.lang.invoke.MethodHandle
            invokestatic java.lang.invoke.MethodHandles.guardWithTest:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
            areturn
        60: .line 241
      StackMap locals:
      StackMap stack:
            getstatic jdk.dynalink.beans.SingleDynamicMethod.$assertionsDisabled:Z
            ifne 61
            iload 14 /* isCustomConvertible */
            ifne 61
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        61: .line 242
      StackMap locals:
      StackMap stack:
            aload 18 /* convertToArrayWhenPossible */
            areturn
        end local 18 // java.lang.invoke.MethodHandle convertToArrayWhenPossible
        end local 17 // java.lang.invoke.MethodHandle canConvertLastArgToArray
        end local 16 // java.lang.invoke.MethodHandle canConvertArgToArray
        end local 15 // java.lang.invoke.MethodHandle arrayConvertingInvocation
        end local 14 // boolean isCustomConvertible
        end local 13 // boolean isAssignableFromArray
        end local 12 // java.lang.invoke.MethodHandle varArgCollectingInvocation
        end local 11 // java.lang.Class callSiteLastArgType
        62: .line 246
      StackMap locals: java.lang.invoke.MethodHandle java.lang.invoke.MethodType jdk.dynalink.linker.LinkerServices java.lang.invoke.MethodHandle java.lang.invoke.MethodType int int java.lang.invoke.MethodHandle int int java.lang.Class
      StackMap stack:
            aload 7 /* fixTarget */
            iload 9 /* argsLen */
            invokestatic jdk.dynalink.beans.SingleDynamicMethod.collectArguments:(Ljava/lang/invoke/MethodHandle;I)Ljava/lang/invoke/MethodHandle;
            aload 2 /* linkerServices */
            aload 1 /* callSiteType */
            invokestatic jdk.dynalink.beans.SingleDynamicMethod.createConvertingInvocation:(Ljava/lang/invoke/MethodHandle;Ljdk/dynalink/linker/LinkerServices;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 10 // java.lang.Class varArgType
        end local 9 // int argsLen
        end local 8 // int fixParamsLen
        end local 7 // java.lang.invoke.MethodHandle fixTarget
        end local 6 // boolean varArgs
        end local 5 // int paramsLen
        end local 4 // java.lang.invoke.MethodType methodType
        end local 3 // java.lang.invoke.MethodHandle filteredTarget
        end local 2 // jdk.dynalink.linker.LinkerServices linkerServices
        end local 1 // java.lang.invoke.MethodType callSiteType
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   63     0                      target  Ljava/lang/invoke/MethodHandle;
            0   63     1                callSiteType  Ljava/lang/invoke/MethodType;
            0   63     2              linkerServices  Ljdk/dynalink/linker/LinkerServices;
            1   63     3              filteredTarget  Ljava/lang/invoke/MethodHandle;
            2   63     4                  methodType  Ljava/lang/invoke/MethodType;
            3   63     5                   paramsLen  I
            4   63     6                     varArgs  Z
            7   63     7                   fixTarget  Ljava/lang/invoke/MethodHandle;
           10   63     8                fixParamsLen  I
           11   63     9                     argsLen  I
           18   19    10               matchedMethod  Ljava/lang/invoke/MethodHandle;
           20   21    10               matchedMethod  Ljava/lang/invoke/MethodHandle;
           24   63    10                  varArgType  Ljava/lang/Class<*>;
           26   62    11         callSiteLastArgType  Ljava/lang/Class<*>;
           35   62    12  varArgCollectingInvocation  Ljava/lang/invoke/MethodHandle;
           36   62    13       isAssignableFromArray  Z
           37   62    14         isCustomConvertible  Z
           43   62    15   arrayConvertingInvocation  Ljava/lang/invoke/MethodHandle;
           46   62    16        canConvertArgToArray  Ljava/lang/invoke/MethodHandle;
           51   62    17    canConvertLastArgToArray  Ljava/lang/invoke/MethodHandle;
           54   62    18  convertToArrayWhenPossible  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
                Name  Flags
      target          final
      callSiteType    final
      linkerServices  final

  private static boolean canConvertTo(jdk.dynalink.linker.LinkerServices, java.lang.Class<?>, );
    descriptor: (Ljdk/dynalink/linker/LinkerServices;Ljava/lang/Class;Ljava/lang/Object;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.dynalink.linker.LinkerServices linkerServices
        start local 1 // java.lang.Class to
        start local 2 // java.lang.Object obj
         0: .line 251
            aload 2 /* obj */
            ifnonnull 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* linkerServices */
            aload 2 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 1 /* to */
            invokeinterface jdk.dynalink.linker.LinkerServices.canConvert:(Ljava/lang/Class;Ljava/lang/Class;)Z
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 2 // java.lang.Object obj
        end local 1 // java.lang.Class to
        end local 0 // jdk.dynalink.linker.LinkerServices linkerServices
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0  linkerServices  Ljdk/dynalink/linker/LinkerServices;
            0    3     1              to  Ljava/lang/Class<*>;
            0    3     2             obj  Ljava/lang/Object;
    Signature: (Ljdk/dynalink/linker/LinkerServices;Ljava/lang/Class<*>;Ljava/lang/Object;)Z
    MethodParameters:
                Name  Flags
      linkerServices  final
      to              final
      obj             final

  static java.lang.invoke.MethodHandle collectArguments(java.lang.invoke.MethodHandle, int);
    descriptor: (Ljava/lang/invoke/MethodHandle;I)Ljava/lang/invoke/MethodHandle;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // java.lang.invoke.MethodHandle target
        start local 1 // int parameterCount
         0: .line 264
            aload 0 /* target */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            astore 2 /* methodType */
        start local 2 // java.lang.invoke.MethodType methodType
         1: .line 265
            aload 2 /* methodType */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_1
            isub
            istore 3 /* fixParamsLen */
        start local 3 // int fixParamsLen
         2: .line 266
            aload 2 /* methodType */
            iload 3 /* fixParamsLen */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            astore 4 /* arrayType */
        start local 4 // java.lang.Class arrayType
         3: .line 267
            aload 0 /* target */
            aload 4 /* arrayType */
            iload 1 /* parameterCount */
            iload 3 /* fixParamsLen */
            isub
            invokevirtual java.lang.invoke.MethodHandle.asCollector:(Ljava/lang/Class;I)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 4 // java.lang.Class arrayType
        end local 3 // int fixParamsLen
        end local 2 // java.lang.invoke.MethodType methodType
        end local 1 // int parameterCount
        end local 0 // java.lang.invoke.MethodHandle target
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0          target  Ljava/lang/invoke/MethodHandle;
            0    4     1  parameterCount  I
            1    4     2      methodType  Ljava/lang/invoke/MethodType;
            2    4     3    fixParamsLen  I
            3    4     4       arrayType  Ljava/lang/Class<*>;
    MethodParameters:
                Name  Flags
      target          final
      parameterCount  final

  private static java.lang.invoke.MethodHandle createConvertingInvocation(java.lang.invoke.MethodHandle, jdk.dynalink.linker.LinkerServices, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljdk/dynalink/linker/LinkerServices;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.invoke.MethodHandle sizedMethod
        start local 1 // jdk.dynalink.linker.LinkerServices linkerServices
        start local 2 // java.lang.invoke.MethodType callSiteType
         0: .line 272
            aload 1 /* linkerServices */
            aload 0 /* sizedMethod */
            aload 2 /* callSiteType */
            invokeinterface jdk.dynalink.linker.LinkerServices.asTypeLosslessReturn:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // java.lang.invoke.MethodType callSiteType
        end local 1 // jdk.dynalink.linker.LinkerServices linkerServices
        end local 0 // java.lang.invoke.MethodHandle sizedMethod
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0     sizedMethod  Ljava/lang/invoke/MethodHandle;
            0    1     1  linkerServices  Ljdk/dynalink/linker/LinkerServices;
            0    1     2    callSiteType  Ljava/lang/invoke/MethodType;
    MethodParameters:
                Name  Flags
      sizedMethod     final
      linkerServices  final
      callSiteType    final

  private static boolean typeMatchesDescription(java.lang.String, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/String;Ljava/lang/invoke/MethodType;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // java.lang.String paramTypes
        start local 1 // java.lang.invoke.MethodType type
         0: .line 276
            new java.util.StringTokenizer
            dup
            aload 0 /* paramTypes */
            ldc ", "
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 2 /* tok */
        start local 2 // java.util.StringTokenizer tok
         1: .line 277
            iconst_1
            istore 3 /* i */
        start local 3 // int i
         2: goto 6
         3: .line 278
      StackMap locals: java.util.StringTokenizer int
      StackMap stack:
            aload 2 /* tok */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifeq 4
            aload 2 /* tok */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            aload 1 /* type */
            iload 3 /* i */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            invokestatic jdk.dynalink.beans.SingleDynamicMethod.typeNameMatches:(Ljava/lang/String;Ljava/lang/Class;)Z
            ifne 5
         4: .line 279
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         5: .line 277
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 1 /* type */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            if_icmplt 3
        end local 3 // int i
         7: .line 282
            aload 2 /* tok */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifeq 8
            iconst_0
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_1
      StackMap locals:
      StackMap stack: int
         9: ireturn
        end local 2 // java.util.StringTokenizer tok
        end local 1 // java.lang.invoke.MethodType type
        end local 0 // java.lang.String paramTypes
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0  paramTypes  Ljava/lang/String;
            0   10     1        type  Ljava/lang/invoke/MethodType;
            1   10     2         tok  Ljava/util/StringTokenizer;
            2    7     3           i  I
    MethodParameters:
            Name  Flags
      paramTypes  final
      type        final

  private static boolean typeNameMatches(java.lang.String, java.lang.Class<?>);
    descriptor: (Ljava/lang/String;Ljava/lang/Class;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String typeName
        start local 1 // java.lang.Class type
         0: .line 286
            aload 0 /* typeName */
            aload 0 /* typeName */
            bipush 46
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpne 1
            aload 1 /* type */
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            goto 2
      StackMap locals:
      StackMap stack: java.lang.String
         1: aload 1 /* type */
            invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
      StackMap locals: java.lang.String java.lang.Class
      StackMap stack: java.lang.String java.lang.String
         2: invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Class type
        end local 0 // java.lang.String typeName
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0  typeName  Ljava/lang/String;
            0    3     1      type  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/String;Ljava/lang/Class<*>;)Z
    MethodParameters:
          Name  Flags
      typeName  final
      type      final

  private java.lang.invoke.MethodHandle lambda$0(jdk.dynalink.CallSiteDescriptor, jdk.dynalink.linker.LinkerServices);
    descriptor: (Ljdk/dynalink/CallSiteDescriptor;Ljdk/dynalink/linker/LinkerServices;)Ljava/lang/invoke/MethodHandle;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.dynalink.beans.SingleDynamicMethod this
         0: .line 108
            aload 0 /* this */
            aload 1
            invokevirtual jdk.dynalink.beans.SingleDynamicMethod.getTarget:(Ljdk/dynalink/CallSiteDescriptor;)Ljava/lang/invoke/MethodHandle;
         1: .line 109
            aload 1
            invokevirtual jdk.dynalink.CallSiteDescriptor.getMethodType:()Ljava/lang/invoke/MethodType;
            aload 2
         2: .line 108
            invokestatic jdk.dynalink.beans.SingleDynamicMethod.getInvocation:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;Ljdk/dynalink/linker/LinkerServices;)Ljava/lang/invoke/MethodHandle;
         3: .line 109
            areturn
        end local 0 // jdk.dynalink.beans.SingleDynamicMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/dynalink/beans/SingleDynamicMethod;
}
SourceFile: "SingleDynamicMethod.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles