final class java.lang.invoke.MethodTypeForm
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: java.lang.invoke.MethodTypeForm
  super_class: java.lang.Object
{
  final int[] argToSlotTable;
    descriptor: [I
    flags: (0x0010) ACC_FINAL

  final int[] slotToArgTable;
    descriptor: [I
    flags: (0x0010) ACC_FINAL

  final long argCounts;
    descriptor: J
    flags: (0x0010) ACC_FINAL

  final long primCounts;
    descriptor: J
    flags: (0x0010) ACC_FINAL

  final java.lang.invoke.MethodType erasedType;
    descriptor: Ljava/lang/invoke/MethodType;
    flags: (0x0010) ACC_FINAL

  final java.lang.invoke.MethodType basicType;
    descriptor: Ljava/lang/invoke/MethodType;
    flags: (0x0010) ACC_FINAL

  final java.lang.ref.SoftReference<java.lang.invoke.MethodHandle>[] methodHandles;
    descriptor: [Ljava/lang/ref/SoftReference;
    flags: (0x0010) ACC_FINAL
    Signature: [Ljava/lang/ref/SoftReference<Ljava/lang/invoke/MethodHandle;>;
    RuntimeVisibleAnnotations: 
      jdk.internal.vm.annotation.Stable()

  static final int MH_BASIC_INV;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final int MH_NF_INV;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int MH_UNINIT_CS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int MH_LIMIT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  final java.lang.ref.SoftReference<java.lang.invoke.LambdaForm>[] lambdaForms;
    descriptor: [Ljava/lang/ref/SoftReference;
    flags: (0x0010) ACC_FINAL
    Signature: [Ljava/lang/ref/SoftReference<Ljava/lang/invoke/LambdaForm;>;
    RuntimeVisibleAnnotations: 
      jdk.internal.vm.annotation.Stable()

  static final int LF_INVVIRTUAL;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static final int LF_INVSTATIC;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  static final int LF_INVSPECIAL;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final int LF_NEWINVSPECIAL;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  static final int LF_INVINTERFACE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  static final int LF_INVSTATIC_INIT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  static final int LF_INTERPRET;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  static final int LF_REBIND;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  static final int LF_DELEGATE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  static final int LF_DELEGATE_BLOCK_INLINING;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 9

  static final int LF_EX_LINKER;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  static final int LF_EX_INVOKER;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 11

  static final int LF_GEN_LINKER;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 12

  static final int LF_GEN_INVOKER;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 13

  static final int LF_CS_LINKER;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 14

  static final int LF_MH_LINKER;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 15

  static final int LF_GWC;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  static final int LF_GWT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 17

  static final int LF_TF;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 18

  static final int LF_LOOP;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 19

  static final int LF_INVSPECIAL_IFC;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 20

  static final int LF_LIMIT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 21

  public static final int NO_CHANGE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int ERASE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int WRAP;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int UNWRAP;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  public static final int INTS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int LONGS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  public static final int RAW_RETURN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 48
            ldc Ljava/lang/invoke/MethodTypeForm;
            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.MethodTypeForm.$assertionsDisabled:Z
         3: .line 337
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.invoke.MethodType erasedType();
    descriptor: ()Ljava/lang/invoke/MethodType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodTypeForm this
         0: .line 95
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.erasedType:Ljava/lang/invoke/MethodType;
            areturn
        end local 0 // java.lang.invoke.MethodTypeForm this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodTypeForm;

  public java.lang.invoke.MethodType basicType();
    descriptor: ()Ljava/lang/invoke/MethodType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodTypeForm this
         0: .line 104
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.basicType:Ljava/lang/invoke/MethodType;
            areturn
        end local 0 // java.lang.invoke.MethodTypeForm this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodTypeForm;

  private boolean assertIsBasicType();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodTypeForm this
         0: .line 109
            getstatic java.lang.invoke.MethodTypeForm.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.erasedType:Ljava/lang/invoke/MethodType;
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.basicType:Ljava/lang/invoke/MethodType;
            if_acmpeq 2
            new java.lang.AssertionError
            dup
         1: .line 110
            new java.lang.StringBuilder
            dup
            ldc "erasedType: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.erasedType:Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " != basicType: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.basicType:Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 111
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 0 // java.lang.invoke.MethodTypeForm this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/lang/invoke/MethodTypeForm;

  public java.lang.invoke.MethodHandle cachedMethodHandle(int);
    descriptor: (I)Ljava/lang/invoke/MethodHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.invoke.MethodTypeForm this
        start local 1 // int which
         0: .line 115
            getstatic java.lang.invoke.MethodTypeForm.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodTypeForm.assertIsBasicType:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 116
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.methodHandles:[Ljava/lang/ref/SoftReference;
            iload 1 /* which */
            aaload
            astore 2 /* entry */
        start local 2 // java.lang.ref.SoftReference entry
         2: .line 117
            aload 2 /* entry */
            ifnull 3
            aload 2 /* entry */
            invokevirtual java.lang.ref.SoftReference.get:()Ljava/lang/Object;
            checkcast java.lang.invoke.MethodHandle
            goto 4
      StackMap locals: java.lang.ref.SoftReference
      StackMap stack:
         3: aconst_null
      StackMap locals:
      StackMap stack: java.lang.invoke.MethodHandle
         4: areturn
        end local 2 // java.lang.ref.SoftReference entry
        end local 1 // int which
        end local 0 // java.lang.invoke.MethodTypeForm this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Ljava/lang/invoke/MethodTypeForm;
            0    5     1  which  I
            2    5     2  entry  Ljava/lang/ref/SoftReference<Ljava/lang/invoke/MethodHandle;>;
    MethodParameters:
       Name  Flags
      which  

  public synchronized java.lang.invoke.MethodHandle setCachedMethodHandle(int, java.lang.invoke.MethodHandle);
    descriptor: (ILjava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // java.lang.invoke.MethodTypeForm this
        start local 1 // int which
        start local 2 // java.lang.invoke.MethodHandle mh
         0: .line 122
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.methodHandles:[Ljava/lang/ref/SoftReference;
            iload 1 /* which */
            aaload
            astore 3 /* entry */
        start local 3 // java.lang.ref.SoftReference entry
         1: .line 123
            aload 3 /* entry */
            ifnull 5
         2: .line 124
            aload 3 /* entry */
            invokevirtual java.lang.ref.SoftReference.get:()Ljava/lang/Object;
            checkcast java.lang.invoke.MethodHandle
            astore 4 /* prev */
        start local 4 // java.lang.invoke.MethodHandle prev
         3: .line 125
            aload 4 /* prev */
            ifnull 5
         4: .line 126
            aload 4 /* prev */
            areturn
        end local 4 // java.lang.invoke.MethodHandle prev
         5: .line 129
      StackMap locals: java.lang.ref.SoftReference
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.methodHandles:[Ljava/lang/ref/SoftReference;
            iload 1 /* which */
            new java.lang.ref.SoftReference
            dup
            aload 2 /* mh */
            invokespecial java.lang.ref.SoftReference.<init>:(Ljava/lang/Object;)V
            aastore
         6: .line 130
            aload 2 /* mh */
            areturn
        end local 3 // java.lang.ref.SoftReference entry
        end local 2 // java.lang.invoke.MethodHandle mh
        end local 1 // int which
        end local 0 // java.lang.invoke.MethodTypeForm this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Ljava/lang/invoke/MethodTypeForm;
            0    7     1  which  I
            0    7     2     mh  Ljava/lang/invoke/MethodHandle;
            1    7     3  entry  Ljava/lang/ref/SoftReference<Ljava/lang/invoke/MethodHandle;>;
            3    5     4   prev  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
       Name  Flags
      which  
      mh     

  public java.lang.invoke.LambdaForm cachedLambdaForm(int);
    descriptor: (I)Ljava/lang/invoke/LambdaForm;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.invoke.MethodTypeForm this
        start local 1 // int which
         0: .line 134
            getstatic java.lang.invoke.MethodTypeForm.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodTypeForm.assertIsBasicType:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 135
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.lambdaForms:[Ljava/lang/ref/SoftReference;
            iload 1 /* which */
            aaload
            astore 2 /* entry */
        start local 2 // java.lang.ref.SoftReference entry
         2: .line 136
            aload 2 /* entry */
            ifnull 3
            aload 2 /* entry */
            invokevirtual java.lang.ref.SoftReference.get:()Ljava/lang/Object;
            checkcast java.lang.invoke.LambdaForm
            goto 4
      StackMap locals: java.lang.ref.SoftReference
      StackMap stack:
         3: aconst_null
      StackMap locals:
      StackMap stack: java.lang.invoke.LambdaForm
         4: areturn
        end local 2 // java.lang.ref.SoftReference entry
        end local 1 // int which
        end local 0 // java.lang.invoke.MethodTypeForm this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Ljava/lang/invoke/MethodTypeForm;
            0    5     1  which  I
            2    5     2  entry  Ljava/lang/ref/SoftReference<Ljava/lang/invoke/LambdaForm;>;
    MethodParameters:
       Name  Flags
      which  

  public synchronized java.lang.invoke.LambdaForm setCachedLambdaForm(int, java.lang.invoke.LambdaForm);
    descriptor: (ILjava/lang/invoke/LambdaForm;)Ljava/lang/invoke/LambdaForm;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // java.lang.invoke.MethodTypeForm this
        start local 1 // int which
        start local 2 // java.lang.invoke.LambdaForm form
         0: .line 141
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.lambdaForms:[Ljava/lang/ref/SoftReference;
            iload 1 /* which */
            aaload
            astore 3 /* entry */
        start local 3 // java.lang.ref.SoftReference entry
         1: .line 142
            aload 3 /* entry */
            ifnull 5
         2: .line 143
            aload 3 /* entry */
            invokevirtual java.lang.ref.SoftReference.get:()Ljava/lang/Object;
            checkcast java.lang.invoke.LambdaForm
            astore 4 /* prev */
        start local 4 // java.lang.invoke.LambdaForm prev
         3: .line 144
            aload 4 /* prev */
            ifnull 5
         4: .line 145
            aload 4 /* prev */
            areturn
        end local 4 // java.lang.invoke.LambdaForm prev
         5: .line 148
      StackMap locals: java.lang.ref.SoftReference
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.lambdaForms:[Ljava/lang/ref/SoftReference;
            iload 1 /* which */
            new java.lang.ref.SoftReference
            dup
            aload 2 /* form */
            invokespecial java.lang.ref.SoftReference.<init>:(Ljava/lang/Object;)V
            aastore
         6: .line 149
            aload 2 /* form */
            areturn
        end local 3 // java.lang.ref.SoftReference entry
        end local 2 // java.lang.invoke.LambdaForm form
        end local 1 // int which
        end local 0 // java.lang.invoke.MethodTypeForm this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Ljava/lang/invoke/MethodTypeForm;
            0    7     1  which  I
            0    7     2   form  Ljava/lang/invoke/LambdaForm;
            1    7     3  entry  Ljava/lang/ref/SoftReference<Ljava/lang/invoke/LambdaForm;>;
            3    5     4   prev  Ljava/lang/invoke/LambdaForm;
    MethodParameters:
       Name  Flags
      which  
      form   

  protected void <init>(java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodType;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=21, args_size=2
        start local 0 // java.lang.invoke.MethodTypeForm this
        start local 1 // java.lang.invoke.MethodType erasedType
         0: .line 158
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 159
            aload 0 /* this */
            aload 1 /* erasedType */
            putfield java.lang.invoke.MethodTypeForm.erasedType:Ljava/lang/invoke/MethodType;
         2: .line 161
            aload 1 /* erasedType */
            invokevirtual java.lang.invoke.MethodType.ptypes:()[Ljava/lang/Class;
            astore 2 /* ptypes */
        start local 2 // java.lang.Class[] ptypes
         3: .line 162
            aload 2 /* ptypes */
            arraylength
            istore 3 /* ptypeCount */
        start local 3 // int ptypeCount
         4: .line 163
            iload 3 /* ptypeCount */
            istore 4 /* pslotCount */
        start local 4 // int pslotCount
         5: .line 164
            iconst_1
            istore 5 /* rtypeCount */
        start local 5 // int rtypeCount
         6: .line 165
            iconst_1
            istore 6 /* rslotCount */
        start local 6 // int rslotCount
         7: .line 167
            aconst_null
            astore 7 /* argToSlotTab */
        start local 7 // int[] argToSlotTab
         8: aconst_null
            astore 8 /* slotToArgTab */
        start local 8 // int[] slotToArgTab
         9: .line 170
            iconst_0
            istore 9 /* pac */
        start local 9 // int pac
        10: iconst_0
            istore 10 /* lac */
        start local 10 // int lac
        11: iconst_0
            istore 11 /* prc */
        start local 11 // int prc
        12: iconst_0
            istore 12 /* lrc */
        start local 12 // int lrc
        13: .line 171
            aload 2 /* ptypes */
            astore 13 /* epts */
        start local 13 // java.lang.Class[] epts
        14: .line 172
            aload 13 /* epts */
            astore 14 /* bpts */
        start local 14 // java.lang.Class[] bpts
        15: .line 173
            iconst_0
            istore 15 /* i */
        start local 15 // int i
        16: goto 27
        17: .line 174
      StackMap locals: java.lang.invoke.MethodTypeForm java.lang.invoke.MethodType java.lang.Class[] int int int int int[] int[] int int int int java.lang.Class[] java.lang.Class[] int
      StackMap stack:
            aload 13 /* epts */
            iload 15 /* i */
            aaload
            astore 16 /* pt */
        start local 16 // java.lang.Class pt
        18: .line 175
            aload 16 /* pt */
            ldc Ljava/lang/Object;
            if_acmpeq 26
        19: .line 176
            iinc 9 /* pac */ 1
        20: .line 177
            aload 16 /* pt */
            invokestatic sun.invoke.util.Wrapper.forPrimitiveType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
            astore 17 /* w */
        start local 17 // sun.invoke.util.Wrapper w
        21: .line 178
            aload 17 /* w */
            invokevirtual sun.invoke.util.Wrapper.isDoubleWord:()Z
            ifeq 22
            iinc 10 /* lac */ 1
        22: .line 179
      StackMap locals: java.lang.Class sun.invoke.util.Wrapper
      StackMap stack:
            aload 17 /* w */
            invokevirtual sun.invoke.util.Wrapper.isSubwordOrInt:()Z
            ifeq 26
            aload 16 /* pt */
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            if_acmpeq 26
        23: .line 180
            aload 14 /* bpts */
            aload 13 /* epts */
            if_acmpne 25
        24: .line 181
            aload 14 /* bpts */
            invokevirtual java.lang.Class[].clone:()Ljava/lang/Object;
            checkcast java.lang.Class[]
            astore 14 /* bpts */
        25: .line 182
      StackMap locals:
      StackMap stack:
            aload 14 /* bpts */
            iload 15 /* i */
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            aastore
        end local 17 // sun.invoke.util.Wrapper w
        end local 16 // java.lang.Class pt
        26: .line 173
      StackMap locals:
      StackMap stack:
            iinc 15 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 15 /* i */
            aload 13 /* epts */
            arraylength
            if_icmplt 17
        end local 15 // int i
        28: .line 186
            iload 4 /* pslotCount */
            iload 10 /* lac */
            iadd
            istore 4 /* pslotCount */
        29: .line 187
            aload 1 /* erasedType */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 15 /* rt */
        start local 15 // java.lang.Class rt
        30: .line 188
            aload 15 /* rt */
            astore 16 /* bt */
        start local 16 // java.lang.Class bt
        31: .line 189
            aload 15 /* rt */
            ldc Ljava/lang/Object;
            if_acmpeq 40
        32: .line 190
            iinc 11 /* prc */ 1
        33: .line 191
            aload 15 /* rt */
            invokestatic sun.invoke.util.Wrapper.forPrimitiveType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
            astore 17 /* w */
        start local 17 // sun.invoke.util.Wrapper w
        34: .line 192
            aload 17 /* w */
            invokevirtual sun.invoke.util.Wrapper.isDoubleWord:()Z
            ifeq 35
            iinc 12 /* lrc */ 1
        35: .line 193
      StackMap locals: java.lang.invoke.MethodTypeForm java.lang.invoke.MethodType java.lang.Class[] int int int int int[] int[] int int int int java.lang.Class[] java.lang.Class[] java.lang.Class java.lang.Class sun.invoke.util.Wrapper
      StackMap stack:
            aload 17 /* w */
            invokevirtual sun.invoke.util.Wrapper.isSubwordOrInt:()Z
            ifeq 37
            aload 15 /* rt */
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            if_acmpeq 37
        36: .line 194
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            astore 16 /* bt */
        37: .line 196
      StackMap locals:
      StackMap stack:
            aload 15 /* rt */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 39
        38: .line 197
            iconst_0
            dup
            istore 6 /* rslotCount */
            istore 5 /* rtypeCount */
            goto 40
        39: .line 199
      StackMap locals:
      StackMap stack:
            iload 6 /* rslotCount */
            iload 12 /* lrc */
            iadd
            istore 6 /* rslotCount */
        end local 17 // sun.invoke.util.Wrapper w
        40: .line 201
      StackMap locals:
      StackMap stack:
            aload 13 /* epts */
            aload 14 /* bpts */
            if_acmpne 43
            aload 16 /* bt */
            aload 15 /* rt */
            if_acmpne 43
        41: .line 202
            aload 0 /* this */
            aload 1 /* erasedType */
            putfield java.lang.invoke.MethodTypeForm.basicType:Ljava/lang/invoke/MethodType;
        42: .line 203
            goto 53
        43: .line 204
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 16 /* bt */
            aload 14 /* bpts */
            iconst_1
            invokestatic java.lang.invoke.MethodType.makeImpl:(Ljava/lang/Class;[Ljava/lang/Class;Z)Ljava/lang/invoke/MethodType;
            putfield java.lang.invoke.MethodTypeForm.basicType:Ljava/lang/invoke/MethodType;
        44: .line 206
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.basicType:Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.form:()Ljava/lang/invoke/MethodTypeForm;
            astore 17 /* that */
        start local 17 // java.lang.invoke.MethodTypeForm that
        45: .line 207
            getstatic java.lang.invoke.MethodTypeForm.$assertionsDisabled:Z
            ifne 46
            aload 0 /* this */
            aload 17 /* that */
            if_acmpne 46
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        46: .line 208
      StackMap locals: java.lang.invoke.MethodTypeForm
      StackMap stack:
            aload 0 /* this */
            aload 17 /* that */
            getfield java.lang.invoke.MethodTypeForm.primCounts:J
            putfield java.lang.invoke.MethodTypeForm.primCounts:J
        47: .line 209
            aload 0 /* this */
            aload 17 /* that */
            getfield java.lang.invoke.MethodTypeForm.argCounts:J
            putfield java.lang.invoke.MethodTypeForm.argCounts:J
        48: .line 210
            aload 0 /* this */
            aload 17 /* that */
            getfield java.lang.invoke.MethodTypeForm.argToSlotTable:[I
            putfield java.lang.invoke.MethodTypeForm.argToSlotTable:[I
        49: .line 211
            aload 0 /* this */
            aload 17 /* that */
            getfield java.lang.invoke.MethodTypeForm.slotToArgTable:[I
            putfield java.lang.invoke.MethodTypeForm.slotToArgTable:[I
        50: .line 212
            aload 0 /* this */
            aconst_null
            putfield java.lang.invoke.MethodTypeForm.methodHandles:[Ljava/lang/ref/SoftReference;
        51: .line 213
            aload 0 /* this */
            aconst_null
            putfield java.lang.invoke.MethodTypeForm.lambdaForms:[Ljava/lang/ref/SoftReference;
        52: .line 214
            return
        end local 17 // java.lang.invoke.MethodTypeForm that
        53: .line 216
      StackMap locals:
      StackMap stack:
            iload 10 /* lac */
            ifeq 69
        54: .line 217
            iload 3 /* ptypeCount */
            iload 10 /* lac */
            iadd
            istore 17 /* slot */
        start local 17 // int slot
        55: .line 218
            iload 17 /* slot */
            iconst_1
            iadd
            newarray 10
            astore 8 /* slotToArgTab */
        56: .line 219
            iconst_1
            iload 3 /* ptypeCount */
            iadd
            newarray 10
            astore 7 /* argToSlotTab */
        57: .line 220
            aload 7 /* argToSlotTab */
            iconst_0
            iload 17 /* slot */
            iastore
        58: .line 221
            iconst_0
            istore 18 /* i */
        start local 18 // int i
        59: goto 67
        60: .line 222
      StackMap locals: int int
      StackMap stack:
            aload 13 /* epts */
            iload 18 /* i */
            aaload
            astore 19 /* pt */
        start local 19 // java.lang.Class pt
        61: .line 223
            aload 19 /* pt */
            invokestatic sun.invoke.util.Wrapper.forBasicType:(Ljava/lang/Class;)Lsun/invoke/util/Wrapper;
            astore 20 /* w */
        start local 20 // sun.invoke.util.Wrapper w
        62: .line 224
            aload 20 /* w */
            invokevirtual sun.invoke.util.Wrapper.isDoubleWord:()Z
            ifeq 63
            iinc 17 /* slot */ -1
        63: .line 225
      StackMap locals: java.lang.Class sun.invoke.util.Wrapper
      StackMap stack:
            iinc 17 /* slot */ -1
        64: .line 226
            aload 8 /* slotToArgTab */
            iload 17 /* slot */
            iload 18 /* i */
            iconst_1
            iadd
            iastore
        65: .line 227
            aload 7 /* argToSlotTab */
            iconst_1
            iload 18 /* i */
            iadd
            iload 17 /* slot */
            iastore
        end local 20 // sun.invoke.util.Wrapper w
        end local 19 // java.lang.Class pt
        66: .line 221
            iinc 18 /* i */ 1
      StackMap locals:
      StackMap stack:
        67: iload 18 /* i */
            aload 13 /* epts */
            arraylength
            if_icmplt 60
        end local 18 // int i
        68: .line 229
            getstatic java.lang.invoke.MethodTypeForm.$assertionsDisabled:Z
            ifne 87
            iload 17 /* slot */
            ifeq 87
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 17 // int slot
        69: .line 230
      StackMap locals:
      StackMap stack:
            iload 9 /* pac */
            ifeq 76
        70: .line 232
            getstatic java.lang.invoke.MethodTypeForm.$assertionsDisabled:Z
            ifne 71
            iload 3 /* ptypeCount */
            iload 4 /* pslotCount */
            if_icmpeq 71
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        71: .line 233
      StackMap locals:
      StackMap stack:
            iload 3 /* ptypeCount */
            invokestatic java.lang.invoke.MethodType.genericMethodType:(I)Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.form:()Ljava/lang/invoke/MethodTypeForm;
            astore 17 /* that */
        start local 17 // java.lang.invoke.MethodTypeForm that
        72: .line 234
            getstatic java.lang.invoke.MethodTypeForm.$assertionsDisabled:Z
            ifne 73
            aload 0 /* this */
            aload 17 /* that */
            if_acmpne 73
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        73: .line 235
      StackMap locals: java.lang.invoke.MethodTypeForm
      StackMap stack:
            aload 17 /* that */
            getfield java.lang.invoke.MethodTypeForm.slotToArgTable:[I
            astore 8 /* slotToArgTab */
        74: .line 236
            aload 17 /* that */
            getfield java.lang.invoke.MethodTypeForm.argToSlotTable:[I
            astore 7 /* argToSlotTab */
        end local 17 // java.lang.invoke.MethodTypeForm that
        75: .line 237
            goto 87
        76: .line 238
      StackMap locals:
      StackMap stack:
            iload 3 /* ptypeCount */
            istore 17 /* slot */
        start local 17 // int slot
        77: .line 239
            iload 17 /* slot */
            iconst_1
            iadd
            newarray 10
            astore 8 /* slotToArgTab */
        78: .line 240
            iconst_1
            iload 3 /* ptypeCount */
            iadd
            newarray 10
            astore 7 /* argToSlotTab */
        79: .line 241
            aload 7 /* argToSlotTab */
            iconst_0
            iload 17 /* slot */
            iastore
        80: .line 242
            iconst_0
            istore 18 /* i */
        start local 18 // int i
        81: goto 86
        82: .line 243
      StackMap locals: int int
      StackMap stack:
            iinc 17 /* slot */ -1
        83: .line 244
            aload 8 /* slotToArgTab */
            iload 17 /* slot */
            iload 18 /* i */
            iconst_1
            iadd
            iastore
        84: .line 245
            aload 7 /* argToSlotTab */
            iconst_1
            iload 18 /* i */
            iadd
            iload 17 /* slot */
            iastore
        85: .line 242
            iinc 18 /* i */ 1
      StackMap locals:
      StackMap stack:
        86: iload 18 /* i */
            iload 3 /* ptypeCount */
            if_icmplt 82
        end local 18 // int i
        end local 17 // int slot
        87: .line 248
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 12 /* lrc */
            iload 11 /* prc */
            iload 10 /* lac */
            iload 9 /* pac */
            invokestatic java.lang.invoke.MethodTypeForm.pack:(IIII)J
            putfield java.lang.invoke.MethodTypeForm.primCounts:J
        88: .line 249
            aload 0 /* this */
            iload 6 /* rslotCount */
            iload 5 /* rtypeCount */
            iload 4 /* pslotCount */
            iload 3 /* ptypeCount */
            invokestatic java.lang.invoke.MethodTypeForm.pack:(IIII)J
            putfield java.lang.invoke.MethodTypeForm.argCounts:J
        89: .line 250
            aload 0 /* this */
            aload 7 /* argToSlotTab */
            putfield java.lang.invoke.MethodTypeForm.argToSlotTable:[I
        90: .line 251
            aload 0 /* this */
            aload 8 /* slotToArgTab */
            putfield java.lang.invoke.MethodTypeForm.slotToArgTable:[I
        91: .line 253
            iload 4 /* pslotCount */
            sipush 256
            if_icmplt 92
            ldc "too many arguments"
            invokestatic java.lang.invoke.MethodHandleStatics.newIllegalArgumentException:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        92: .line 256
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodTypeForm.$assertionsDisabled:Z
            ifne 93
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.basicType:Ljava/lang/invoke/MethodType;
            aload 1 /* erasedType */
            if_acmpeq 93
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        93: .line 257
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 21
            anewarray java.lang.ref.SoftReference
            putfield java.lang.invoke.MethodTypeForm.lambdaForms:[Ljava/lang/ref/SoftReference;
        94: .line 258
            aload 0 /* this */
            iconst_3
            anewarray java.lang.ref.SoftReference
            putfield java.lang.invoke.MethodTypeForm.methodHandles:[Ljava/lang/ref/SoftReference;
        95: .line 259
            return
        end local 16 // java.lang.Class bt
        end local 15 // java.lang.Class rt
        end local 14 // java.lang.Class[] bpts
        end local 13 // java.lang.Class[] epts
        end local 12 // int lrc
        end local 11 // int prc
        end local 10 // int lac
        end local 9 // int pac
        end local 8 // int[] slotToArgTab
        end local 7 // int[] argToSlotTab
        end local 6 // int rslotCount
        end local 5 // int rtypeCount
        end local 4 // int pslotCount
        end local 3 // int ptypeCount
        end local 2 // java.lang.Class[] ptypes
        end local 1 // java.lang.invoke.MethodType erasedType
        end local 0 // java.lang.invoke.MethodTypeForm this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   96     0          this  Ljava/lang/invoke/MethodTypeForm;
            0   96     1    erasedType  Ljava/lang/invoke/MethodType;
            3   96     2        ptypes  [Ljava/lang/Class;
            4   96     3    ptypeCount  I
            5   96     4    pslotCount  I
            6   96     5    rtypeCount  I
            7   96     6    rslotCount  I
            8   96     7  argToSlotTab  [I
            9   96     8  slotToArgTab  [I
           10   96     9           pac  I
           11   96    10           lac  I
           12   96    11           prc  I
           13   96    12           lrc  I
           14   96    13          epts  [Ljava/lang/Class;
           15   96    14          bpts  [Ljava/lang/Class;
           16   28    15             i  I
           18   26    16            pt  Ljava/lang/Class<*>;
           21   26    17             w  Lsun/invoke/util/Wrapper;
           30   96    15            rt  Ljava/lang/Class<*>;
           31   96    16            bt  Ljava/lang/Class<*>;
           34   40    17             w  Lsun/invoke/util/Wrapper;
           45   53    17          that  Ljava/lang/invoke/MethodTypeForm;
           55   69    17          slot  I
           59   68    18             i  I
           61   66    19            pt  Ljava/lang/Class<*>;
           62   66    20             w  Lsun/invoke/util/Wrapper;
           72   75    17          that  Ljava/lang/invoke/MethodTypeForm;
           77   87    17          slot  I
           81   87    18             i  I
    MethodParameters:
            Name  Flags
      erasedType  

  private static long pack(int, int, int, int);
    descriptor: (IIII)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // int a
        start local 1 // int b
        start local 2 // int c
        start local 3 // int d
         0: .line 262
            getstatic java.lang.invoke.MethodTypeForm.$assertionsDisabled:Z
            ifne 1
            iload 0 /* a */
            iload 1 /* b */
            ior
            iload 2 /* c */
            ior
            iload 3 /* d */
            ior
            ldc -65536
            iand
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 263
      StackMap locals:
      StackMap stack:
            iload 0 /* a */
            bipush 16
            ishl
            iload 1 /* b */
            ior
            i2l
            lstore 4 /* hw */
        start local 4 // long hw
         2: iload 2 /* c */
            bipush 16
            ishl
            iload 3 /* d */
            ior
            i2l
            lstore 6 /* lw */
        start local 6 // long lw
         3: .line 264
            lload 4 /* hw */
            bipush 32
            lshl
            lload 6 /* lw */
            lor
            lreturn
        end local 6 // long lw
        end local 4 // long hw
        end local 3 // int d
        end local 2 // int c
        end local 1 // int b
        end local 0 // int a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     a  I
            0    4     1     b  I
            0    4     2     c  I
            0    4     3     d  I
            2    4     4    hw  J
            3    4     6    lw  J
    MethodParameters:
      Name  Flags
      a     
      b     
      c     
      d     

  private static char unpack(long, int);
    descriptor: (JI)C
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // long packed
        start local 2 // int word
         0: .line 267
            getstatic java.lang.invoke.MethodTypeForm.$assertionsDisabled:Z
            ifne 1
            iload 2 /* word */
            iconst_3
            if_icmple 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 268
      StackMap locals:
      StackMap stack:
            lload 0 /* packed */
            iconst_3
            iload 2 /* word */
            isub
            bipush 16
            imul
            lshr
            l2i
            i2c
            ireturn
        end local 2 // int word
        end local 0 // long packed
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  packed  J
            0    2     2    word  I
    MethodParameters:
        Name  Flags
      packed  
      word    

  public int parameterCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodTypeForm this
         0: .line 272
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.argCounts:J
            iconst_3
            invokestatic java.lang.invoke.MethodTypeForm.unpack:(JI)C
            ireturn
        end local 0 // java.lang.invoke.MethodTypeForm this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodTypeForm;

  public int parameterSlotCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodTypeForm this
         0: .line 275
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.argCounts:J
            iconst_2
            invokestatic java.lang.invoke.MethodTypeForm.unpack:(JI)C
            ireturn
        end local 0 // java.lang.invoke.MethodTypeForm this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodTypeForm;

  public int returnCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodTypeForm this
         0: .line 278
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.argCounts:J
            iconst_1
            invokestatic java.lang.invoke.MethodTypeForm.unpack:(JI)C
            ireturn
        end local 0 // java.lang.invoke.MethodTypeForm this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodTypeForm;

  public int returnSlotCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodTypeForm this
         0: .line 281
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.argCounts:J
            iconst_0
            invokestatic java.lang.invoke.MethodTypeForm.unpack:(JI)C
            ireturn
        end local 0 // java.lang.invoke.MethodTypeForm this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodTypeForm;

  public int primitiveParameterCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodTypeForm this
         0: .line 284
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.primCounts:J
            iconst_3
            invokestatic java.lang.invoke.MethodTypeForm.unpack:(JI)C
            ireturn
        end local 0 // java.lang.invoke.MethodTypeForm this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodTypeForm;

  public int longPrimitiveParameterCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodTypeForm this
         0: .line 287
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.primCounts:J
            iconst_2
            invokestatic java.lang.invoke.MethodTypeForm.unpack:(JI)C
            ireturn
        end local 0 // java.lang.invoke.MethodTypeForm this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodTypeForm;

  public int primitiveReturnCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodTypeForm this
         0: .line 290
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.primCounts:J
            iconst_1
            invokestatic java.lang.invoke.MethodTypeForm.unpack:(JI)C
            ireturn
        end local 0 // java.lang.invoke.MethodTypeForm this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodTypeForm;

  public int longPrimitiveReturnCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodTypeForm this
         0: .line 293
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.primCounts:J
            iconst_0
            invokestatic java.lang.invoke.MethodTypeForm.unpack:(JI)C
            ireturn
        end local 0 // java.lang.invoke.MethodTypeForm this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodTypeForm;

  public boolean hasPrimitives();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodTypeForm this
         0: .line 296
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.primCounts:J
            lconst_0
            lcmp
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.invoke.MethodTypeForm this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/invoke/MethodTypeForm;

  public boolean hasNonVoidPrimitives();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodTypeForm this
         0: .line 299
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.primCounts:J
            lconst_0
            lcmp
            ifne 1
            iconst_0
            ireturn
         1: .line 300
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodTypeForm.primitiveParameterCount:()I
            ifeq 2
            iconst_1
            ireturn
         2: .line 301
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodTypeForm.primitiveReturnCount:()I
            ifeq 3
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodTypeForm.returnCount:()I
            ifeq 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 0 // java.lang.invoke.MethodTypeForm this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/lang/invoke/MethodTypeForm;

  public boolean hasLongPrimitives();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodTypeForm this
         0: .line 304
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodTypeForm.longPrimitiveParameterCount:()I
            aload 0 /* this */
            invokevirtual java.lang.invoke.MethodTypeForm.longPrimitiveReturnCount:()I
            ior
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.invoke.MethodTypeForm this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/invoke/MethodTypeForm;

  public int parameterToArgSlot(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodTypeForm this
        start local 1 // int i
         0: .line 307
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.argToSlotTable:[I
            iconst_1
            iload 1 /* i */
            iadd
            iaload
            ireturn
        end local 1 // int i
        end local 0 // java.lang.invoke.MethodTypeForm this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodTypeForm;
            0    1     1     i  I
    MethodParameters:
      Name  Flags
      i     

  public int argSlotToParameter(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodTypeForm this
        start local 1 // int argSlot
         0: .line 313
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.slotToArgTable:[I
            iload 1 /* argSlot */
            iaload
            iconst_1
            isub
            ireturn
        end local 1 // int argSlot
        end local 0 // java.lang.invoke.MethodTypeForm this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Ljava/lang/invoke/MethodTypeForm;
            0    1     1  argSlot  I
    MethodParameters:
         Name  Flags
      argSlot  

  static java.lang.invoke.MethodTypeForm findForm(java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodTypeForm;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.invoke.MethodType mt
         0: .line 317
            aload 0 /* mt */
            iconst_1
            iconst_1
            invokestatic java.lang.invoke.MethodTypeForm.canonicalize:(Ljava/lang/invoke/MethodType;II)Ljava/lang/invoke/MethodType;
            astore 1 /* erased */
        start local 1 // java.lang.invoke.MethodType erased
         1: .line 318
            aload 1 /* erased */
            ifnonnull 3
         2: .line 320
            new java.lang.invoke.MethodTypeForm
            dup
            aload 0 /* mt */
            invokespecial java.lang.invoke.MethodTypeForm.<init>:(Ljava/lang/invoke/MethodType;)V
            areturn
         3: .line 323
      StackMap locals: java.lang.invoke.MethodType
      StackMap stack:
            aload 1 /* erased */
            invokevirtual java.lang.invoke.MethodType.form:()Ljava/lang/invoke/MethodTypeForm;
            areturn
        end local 1 // java.lang.invoke.MethodType erased
        end local 0 // java.lang.invoke.MethodType mt
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0      mt  Ljava/lang/invoke/MethodType;
            1    4     1  erased  Ljava/lang/invoke/MethodType;
    MethodParameters:
      Name  Flags
      mt    

  public static java.lang.invoke.MethodType canonicalize(java.lang.invoke.MethodType, int, int);
    descriptor: (Ljava/lang/invoke/MethodType;II)Ljava/lang/invoke/MethodType;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // java.lang.invoke.MethodType mt
        start local 1 // int howRet
        start local 2 // int howArgs
         0: .line 344
            aload 0 /* mt */
            invokevirtual java.lang.invoke.MethodType.ptypes:()[Ljava/lang/Class;
            astore 3 /* ptypes */
        start local 3 // java.lang.Class[] ptypes
         1: .line 345
            aload 3 /* ptypes */
            iload 2 /* howArgs */
            invokestatic java.lang.invoke.MethodTypeForm.canonicalizeAll:([Ljava/lang/Class;I)[Ljava/lang/Class;
            astore 4 /* ptc */
        start local 4 // java.lang.Class[] ptc
         2: .line 346
            aload 0 /* mt */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 5 /* rtype */
        start local 5 // java.lang.Class rtype
         3: .line 347
            aload 5 /* rtype */
            iload 1 /* howRet */
            invokestatic java.lang.invoke.MethodTypeForm.canonicalize:(Ljava/lang/Class;I)Ljava/lang/Class;
            astore 6 /* rtc */
        start local 6 // java.lang.Class rtc
         4: .line 348
            aload 4 /* ptc */
            ifnonnull 6
            aload 6 /* rtc */
            ifnonnull 6
         5: .line 350
            aconst_null
            areturn
         6: .line 353
      StackMap locals: java.lang.invoke.MethodType int int java.lang.Class[] java.lang.Class[] java.lang.Class java.lang.Class
      StackMap stack:
            aload 6 /* rtc */
            ifnonnull 7
            aload 5 /* rtype */
            astore 6 /* rtc */
         7: .line 354
      StackMap locals:
      StackMap stack:
            aload 4 /* ptc */
            ifnonnull 8
            aload 3 /* ptypes */
            astore 4 /* ptc */
         8: .line 355
      StackMap locals:
      StackMap stack:
            aload 6 /* rtc */
            aload 4 /* ptc */
            iconst_1
            invokestatic java.lang.invoke.MethodType.makeImpl:(Ljava/lang/Class;[Ljava/lang/Class;Z)Ljava/lang/invoke/MethodType;
            areturn
        end local 6 // java.lang.Class rtc
        end local 5 // java.lang.Class rtype
        end local 4 // java.lang.Class[] ptc
        end local 3 // java.lang.Class[] ptypes
        end local 2 // int howArgs
        end local 1 // int howRet
        end local 0 // java.lang.invoke.MethodType mt
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0       mt  Ljava/lang/invoke/MethodType;
            0    9     1   howRet  I
            0    9     2  howArgs  I
            1    9     3   ptypes  [Ljava/lang/Class;
            2    9     4      ptc  [Ljava/lang/Class;
            3    9     5    rtype  Ljava/lang/Class<*>;
            4    9     6      rtc  Ljava/lang/Class<*>;
    MethodParameters:
         Name  Flags
      mt       
      howRet   
      howArgs  

  static java.lang.Class<?> canonicalize(java.lang.Class<?>, int);
    descriptor: (Ljava/lang/Class;I)Ljava/lang/Class;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.Class t
        start local 1 // int how
         0: .line 363
            aload 0 /* t */
            ldc Ljava/lang/Object;
            if_acmpeq 26
         1: .line 365
            aload 0 /* t */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifne 7
         2: .line 366
            iload 1 /* how */
            tableswitch { // 1 - 6
                    1: 5
                    2: 6
                    3: 3
                    4: 6
                    5: 6
                    6: 5
              default: 6
          }
         3: .line 368
      StackMap locals:
      StackMap stack:
            aload 0 /* t */
            invokestatic sun.invoke.util.Wrapper.asPrimitiveType:(Ljava/lang/Class;)Ljava/lang/Class;
            astore 2 /* ct */
        start local 2 // java.lang.Class ct
         4: .line 369
            aload 2 /* ct */
            aload 0 /* t */
            if_acmpeq 26
            aload 2 /* ct */
            areturn
        end local 2 // java.lang.Class ct
         5: .line 373
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Object;
            areturn
         6: .line 375
      StackMap locals:
      StackMap stack:
            goto 26
      StackMap locals:
      StackMap stack:
         7: aload 0 /* t */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 12
         8: .line 377
            iload 1 /* how */
            tableswitch { // 2 - 6
                    2: 10
                    3: 11
                    4: 11
                    5: 11
                    6: 9
              default: 11
          }
         9: .line 379
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            areturn
        10: .line 381
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Void;
            areturn
        11: .line 383
      StackMap locals:
      StackMap stack:
            goto 26
        12: .line 385
      StackMap locals:
      StackMap stack:
            iload 1 /* how */
            tableswitch { // 2 - 6
                    2: 13
                    3: 26
                    4: 14
                    5: 19
                    6: 22
              default: 26
          }
        13: .line 387
      StackMap locals:
      StackMap stack:
            aload 0 /* t */
            invokestatic sun.invoke.util.Wrapper.asWrapperType:(Ljava/lang/Class;)Ljava/lang/Class;
            areturn
        14: .line 389
      StackMap locals:
      StackMap stack:
            aload 0 /* t */
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            if_acmpeq 15
            aload 0 /* t */
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            if_acmpne 16
        15: .line 390
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        16: .line 391
      StackMap locals:
      StackMap stack:
            aload 0 /* t */
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            if_acmpne 18
        17: .line 392
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            areturn
        18: .line 393
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            areturn
        19: .line 395
      StackMap locals:
      StackMap stack:
            aload 0 /* t */
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            if_acmpne 21
        20: .line 396
            aconst_null
            areturn
        21: .line 397
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            areturn
        22: .line 399
      StackMap locals:
      StackMap stack:
            aload 0 /* t */
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            if_acmpeq 24
            aload 0 /* t */
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            if_acmpeq 24
        23: .line 400
            aload 0 /* t */
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            if_acmpeq 24
            aload 0 /* t */
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            if_acmpne 25
        24: .line 401
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        25: .line 403
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            areturn
        26: .line 407
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // int how
        end local 0 // java.lang.Class t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   27     0     t  Ljava/lang/Class<*>;
            0   27     1   how  I
            4    5     2    ct  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;I)Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      t     
      how   

  static java.lang.Class<?>[] canonicalizeAll(java.lang.Class<?>[], int);
    descriptor: ([Ljava/lang/Class;I)[Ljava/lang/Class;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // java.lang.Class[] ts
        start local 1 // int how
         0: .line 414
            aconst_null
            astore 2 /* cs */
        start local 2 // java.lang.Class[] cs
         1: .line 415
            aload 0 /* ts */
            arraylength
            istore 3 /* imax */
        start local 3 // int imax
         2: iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 12
         4: .line 416
      StackMap locals: java.lang.Class[] int int
      StackMap stack:
            aload 0 /* ts */
            iload 4 /* i */
            aaload
            iload 1 /* how */
            invokestatic java.lang.invoke.MethodTypeForm.canonicalize:(Ljava/lang/Class;I)Ljava/lang/Class;
            astore 5 /* c */
        start local 5 // java.lang.Class c
         5: .line 417
            aload 5 /* c */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 7
         6: .line 418
            aconst_null
            astore 5 /* c */
         7: .line 419
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 5 /* c */
            ifnull 11
         8: .line 420
            aload 2 /* cs */
            ifnonnull 10
         9: .line 421
            aload 0 /* ts */
            invokevirtual java.lang.Class[].clone:()Ljava/lang/Object;
            checkcast java.lang.Class[]
            astore 2 /* cs */
        10: .line 422
      StackMap locals:
      StackMap stack:
            aload 2 /* cs */
            iload 4 /* i */
            aload 5 /* c */
            aastore
        end local 5 // java.lang.Class c
        11: .line 415
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 4 /* i */
            iload 3 /* imax */
            if_icmplt 4
        end local 4 // int i
        end local 3 // int imax
        13: .line 425
            aload 2 /* cs */
            areturn
        end local 2 // java.lang.Class[] cs
        end local 1 // int how
        end local 0 // java.lang.Class[] ts
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0    ts  [Ljava/lang/Class;
            0   14     1   how  I
            1   14     2    cs  [Ljava/lang/Class;
            2   13     3  imax  I
            3   13     4     i  I
            5   11     5     c  Ljava/lang/Class<*>;
    Signature: ([Ljava/lang/Class<*>;I)[Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      ts    
      how   

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodTypeForm this
         0: .line 430
            new java.lang.StringBuilder
            dup
            ldc "Form"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield java.lang.invoke.MethodTypeForm.erasedType:Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.invoke.MethodTypeForm this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/MethodTypeForm;
}
SourceFile: "MethodTypeForm.java"