class java.lang.invoke.GenerateJLIClassesHelper
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: java.lang.invoke.GenerateJLIClassesHelper
  super_class: java.lang.Object
{
  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 41
            ldc Ljava/lang/invoke/GenerateJLIClassesHelper;
            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.GenerateJLIClassesHelper.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.invoke.GenerateJLIClassesHelper this
         0: .line 41
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // java.lang.invoke.GenerateJLIClassesHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/invoke/GenerateJLIClassesHelper;

  static byte[] generateBasicFormsClassBytes(java.lang.String);
    descriptor: (Ljava/lang/String;)[B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=11, args_size=1
        start local 0 // java.lang.String className
         0: .line 44
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* forms */
        start local 1 // java.util.ArrayList forms
         1: .line 45
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* names */
        start local 2 // java.util.ArrayList names
         2: .line 46
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* dedupSet */
        start local 3 // java.util.HashSet dedupSet
         3: .line 47
            invokestatic java.lang.invoke.LambdaForm$BasicType.values:()[Ljava/lang/invoke/LambdaForm$BasicType;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 20
      StackMap locals: java.lang.String java.util.ArrayList java.util.ArrayList java.util.HashSet top int int java.lang.invoke.LambdaForm$BasicType[]
      StackMap stack:
         4: aload 7
            iload 5
            aaload
            astore 4 /* type */
        start local 4 // java.lang.invoke.LambdaForm$BasicType type
         5: .line 48
            aload 4 /* type */
            invokestatic java.lang.invoke.LambdaForm.zeroForm:(Ljava/lang/invoke/LambdaForm$BasicType;)Ljava/lang/invoke/LambdaForm;
            astore 8 /* zero */
        start local 8 // java.lang.invoke.LambdaForm zero
         6: .line 49
            new java.lang.StringBuilder
            dup
            aload 8 /* zero */
            getfield java.lang.invoke.LambdaForm.kind:Ljava/lang/invoke/LambdaForm$Kind;
            getfield java.lang.invoke.LambdaForm$Kind.defaultLambdaName:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         7: .line 50
            ldc "_"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* zero */
            invokevirtual java.lang.invoke.LambdaForm.returnType:()Ljava/lang/invoke/LambdaForm$BasicType;
            invokevirtual java.lang.invoke.LambdaForm$BasicType.basicTypeChar:()C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
         8: .line 49
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 9 /* name */
        start local 9 // java.lang.String name
         9: .line 51
            aload 3 /* dedupSet */
            aload 9 /* name */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            ifeq 12
        10: .line 52
            aload 2 /* names */
            aload 9 /* name */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        11: .line 53
            aload 1 /* forms */
            aload 8 /* zero */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        12: .line 56
      StackMap locals: java.lang.String java.util.ArrayList java.util.ArrayList java.util.HashSet java.lang.invoke.LambdaForm$BasicType int int java.lang.invoke.LambdaForm$BasicType[] java.lang.invoke.LambdaForm java.lang.String
      StackMap stack:
            aload 4 /* type */
            invokestatic java.lang.invoke.LambdaForm.identityForm:(Ljava/lang/invoke/LambdaForm$BasicType;)Ljava/lang/invoke/LambdaForm;
            astore 10 /* identity */
        start local 10 // java.lang.invoke.LambdaForm identity
        13: .line 57
            new java.lang.StringBuilder
            dup
            aload 10 /* identity */
            getfield java.lang.invoke.LambdaForm.kind:Ljava/lang/invoke/LambdaForm$Kind;
            getfield java.lang.invoke.LambdaForm$Kind.defaultLambdaName:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        14: .line 58
            ldc "_"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* identity */
            invokevirtual java.lang.invoke.LambdaForm.returnType:()Ljava/lang/invoke/LambdaForm$BasicType;
            invokevirtual java.lang.invoke.LambdaForm$BasicType.basicTypeChar:()C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
        15: .line 57
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 9 /* name */
        16: .line 59
            aload 3 /* dedupSet */
            aload 9 /* name */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            ifeq 19
        17: .line 60
            aload 2 /* names */
            aload 9 /* name */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        18: .line 61
            aload 1 /* forms */
            aload 10 /* identity */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // java.lang.invoke.LambdaForm identity
        end local 9 // java.lang.String name
        end local 8 // java.lang.invoke.LambdaForm zero
        end local 4 // java.lang.invoke.LambdaForm$BasicType type
        19: .line 47
      StackMap locals: java.lang.String java.util.ArrayList java.util.ArrayList java.util.HashSet top int int java.lang.invoke.LambdaForm$BasicType[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        20: iload 5
            iload 6
            if_icmplt 4
        21: .line 64
            aload 0 /* className */
        22: .line 65
            aload 2 /* names */
            iconst_0
            anewarray java.lang.String
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
        23: .line 66
            aload 1 /* forms */
            iconst_0
            anewarray java.lang.invoke.LambdaForm
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.invoke.LambdaForm[]
        24: .line 64
            invokestatic java.lang.invoke.GenerateJLIClassesHelper.generateCodeBytesForLFs:(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/invoke/LambdaForm;)[B
            areturn
        end local 3 // java.util.HashSet dedupSet
        end local 2 // java.util.ArrayList names
        end local 1 // java.util.ArrayList forms
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   25     0  className  Ljava/lang/String;
            1   25     1      forms  Ljava/util/ArrayList<Ljava/lang/invoke/LambdaForm;>;
            2   25     2      names  Ljava/util/ArrayList<Ljava/lang/String;>;
            3   25     3   dedupSet  Ljava/util/HashSet<Ljava/lang/String;>;
            5   19     4       type  Ljava/lang/invoke/LambdaForm$BasicType;
            6   19     8       zero  Ljava/lang/invoke/LambdaForm;
            9   19     9       name  Ljava/lang/String;
           13   19    10   identity  Ljava/lang/invoke/LambdaForm;
    MethodParameters:
           Name  Flags
      className  

  static byte[] generateDirectMethodHandleHolderClassBytes(java.lang.String, java.lang.invoke.MethodType[], int[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/invoke/MethodType;[I)[B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=12, args_size=3
        start local 0 // java.lang.String className
        start local 1 // java.lang.invoke.MethodType[] methodTypes
        start local 2 // int[] types
         0: .line 71
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* forms */
        start local 3 // java.util.ArrayList forms
         1: .line 72
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* names */
        start local 4 // java.util.ArrayList names
         2: .line 73
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 9
         4: .line 75
      StackMap locals: java.util.ArrayList java.util.ArrayList int
      StackMap stack:
            aload 1 /* methodTypes */
            iload 5 /* i */
            aaload
            aload 2 /* types */
            iload 5 /* i */
            iaload
            invokestatic java.lang.invoke.DirectMethodHandle.makePreparedLambdaForm:(Ljava/lang/invoke/MethodType;I)Ljava/lang/invoke/LambdaForm;
         5: .line 74
            astore 6 /* form */
        start local 6 // java.lang.invoke.LambdaForm form
         6: .line 76
            aload 3 /* forms */
            aload 6 /* form */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         7: .line 77
            aload 4 /* names */
            aload 6 /* form */
            getfield java.lang.invoke.LambdaForm.kind:Ljava/lang/invoke/LambdaForm$Kind;
            getfield java.lang.invoke.LambdaForm$Kind.defaultLambdaName:Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.lang.invoke.LambdaForm form
         8: .line 73
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 5 /* i */
            aload 1 /* methodTypes */
            arraylength
            if_icmplt 4
        end local 5 // int i
        10: .line 79
            invokestatic sun.invoke.util.Wrapper.values:()[Lsun/invoke/util/Wrapper;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 30
      StackMap locals: java.lang.String java.lang.invoke.MethodType[] int[] java.util.ArrayList java.util.ArrayList top int int sun.invoke.util.Wrapper[]
      StackMap stack:
        11: aload 8
            iload 6
            aaload
            astore 5 /* wrapper */
        start local 5 // sun.invoke.util.Wrapper wrapper
        12: .line 80
            aload 5 /* wrapper */
            getstatic sun.invoke.util.Wrapper.VOID:Lsun/invoke/util/Wrapper;
            if_acmpne 14
        13: .line 81
            goto 29
        14: .line 83
      StackMap locals: java.lang.String java.lang.invoke.MethodType[] int[] java.util.ArrayList java.util.ArrayList sun.invoke.util.Wrapper int int sun.invoke.util.Wrapper[]
      StackMap stack:
            iconst_0
            istore 9 /* b */
        start local 9 // byte b
        15: goto 28
        16: .line 84
      StackMap locals: int
      StackMap stack:
            aload 5 /* wrapper */
            invokevirtual sun.invoke.util.Wrapper.primitiveType:()Ljava/lang/Class;
            invokestatic java.lang.invoke.DirectMethodHandle.ftypeKind:(Ljava/lang/Class;)I
            istore 10 /* ftype */
        start local 10 // int ftype
        17: .line 86
            iload 9 /* b */
            iconst_0
            iload 10 /* ftype */
            invokestatic java.lang.invoke.DirectMethodHandle.makePreparedFieldLambdaForm:(BZI)Ljava/lang/invoke/LambdaForm;
        18: .line 85
            astore 11 /* form */
        start local 11 // java.lang.invoke.LambdaForm form
        19: .line 87
            aload 11 /* form */
            getfield java.lang.invoke.LambdaForm.kind:Ljava/lang/invoke/LambdaForm$Kind;
            getstatic java.lang.invoke.LambdaForm$Kind.GENERIC:Ljava/lang/invoke/LambdaForm$Kind;
            if_acmpeq 22
        20: .line 88
            aload 3 /* forms */
            aload 11 /* form */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        21: .line 89
            aload 4 /* names */
            aload 11 /* form */
            getfield java.lang.invoke.LambdaForm.kind:Ljava/lang/invoke/LambdaForm$Kind;
            getfield java.lang.invoke.LambdaForm$Kind.defaultLambdaName:Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        22: .line 93
      StackMap locals: int java.lang.invoke.LambdaForm
      StackMap stack:
            iload 9 /* b */
            iconst_1
            iload 10 /* ftype */
            invokestatic java.lang.invoke.DirectMethodHandle.makePreparedFieldLambdaForm:(BZI)Ljava/lang/invoke/LambdaForm;
        23: .line 92
            astore 11 /* form */
        24: .line 94
            aload 11 /* form */
            getfield java.lang.invoke.LambdaForm.kind:Ljava/lang/invoke/LambdaForm$Kind;
            getstatic java.lang.invoke.LambdaForm$Kind.GENERIC:Ljava/lang/invoke/LambdaForm$Kind;
            if_acmpeq 27
        25: .line 95
            aload 3 /* forms */
            aload 11 /* form */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        26: .line 96
            aload 4 /* names */
            aload 11 /* form */
            getfield java.lang.invoke.LambdaForm.kind:Ljava/lang/invoke/LambdaForm$Kind;
            getfield java.lang.invoke.LambdaForm$Kind.defaultLambdaName:Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // java.lang.invoke.LambdaForm form
        end local 10 // int ftype
        27: .line 83
      StackMap locals:
      StackMap stack:
            iload 9 /* b */
            iconst_1
            iadd
            i2b
            istore 9 /* b */
      StackMap locals:
      StackMap stack:
        28: iload 9 /* b */
            bipush 6
            if_icmplt 16
        end local 9 // byte b
        end local 5 // sun.invoke.util.Wrapper wrapper
        29: .line 79
      StackMap locals: java.lang.String java.lang.invoke.MethodType[] int[] java.util.ArrayList java.util.ArrayList top int int sun.invoke.util.Wrapper[]
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        30: iload 6
            iload 7
            if_icmplt 11
        31: .line 100
            aload 0 /* className */
        32: .line 101
            aload 4 /* names */
            iconst_0
            anewarray java.lang.String
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
        33: .line 102
            aload 3 /* forms */
            iconst_0
            anewarray java.lang.invoke.LambdaForm
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.invoke.LambdaForm[]
        34: .line 100
            invokestatic java.lang.invoke.GenerateJLIClassesHelper.generateCodeBytesForLFs:(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/invoke/LambdaForm;)[B
            areturn
        end local 4 // java.util.ArrayList names
        end local 3 // java.util.ArrayList forms
        end local 2 // int[] types
        end local 1 // java.lang.invoke.MethodType[] methodTypes
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   35     0    className  Ljava/lang/String;
            0   35     1  methodTypes  [Ljava/lang/invoke/MethodType;
            0   35     2        types  [I
            1   35     3        forms  Ljava/util/ArrayList<Ljava/lang/invoke/LambdaForm;>;
            2   35     4        names  Ljava/util/ArrayList<Ljava/lang/String;>;
            3   10     5            i  I
            6    8     6         form  Ljava/lang/invoke/LambdaForm;
           12   29     5      wrapper  Lsun/invoke/util/Wrapper;
           15   29     9            b  B
           17   27    10        ftype  I
           19   27    11         form  Ljava/lang/invoke/LambdaForm;
    MethodParameters:
             Name  Flags
      className    
      methodTypes  
      types        

  static byte[] generateDelegatingMethodHandleHolderClassBytes(java.lang.String, java.lang.invoke.MethodType[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/invoke/MethodType;)[B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // java.lang.String className
        start local 1 // java.lang.invoke.MethodType[] methodTypes
         0: .line 108
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 2 /* dedupSet */
        start local 2 // java.util.HashSet dedupSet
         1: .line 109
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* forms */
        start local 3 // java.util.ArrayList forms
         2: .line 110
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* names */
        start local 4 // java.util.ArrayList names
         3: .line 111
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: goto 15
         5: .line 113
      StackMap locals: java.lang.String java.lang.invoke.MethodType[] java.util.HashSet java.util.ArrayList java.util.ArrayList int
      StackMap stack:
            aload 2 /* dedupSet */
            aload 1 /* methodTypes */
            iload 5 /* i */
            aaload
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            ifeq 14
         6: .line 119
            aload 1 /* methodTypes */
            iload 5 /* i */
            aaload
            invokestatic java.lang.invoke.GenerateJLIClassesHelper.makeReinvokerFor:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/LambdaForm;
            astore 6 /* reinvoker */
        start local 6 // java.lang.invoke.LambdaForm reinvoker
         7: .line 120
            aload 3 /* forms */
            aload 6 /* reinvoker */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         8: .line 121
            aload 6 /* reinvoker */
            invokestatic java.lang.invoke.BoundMethodHandle.speciesDataFor:(Ljava/lang/invoke/LambdaForm;)Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
            invokevirtual java.lang.invoke.BoundMethodHandle$SpeciesData.key:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* speciesSig */
        start local 7 // java.lang.String speciesSig
         9: .line 122
            getstatic java.lang.invoke.GenerateJLIClassesHelper.$assertionsDisabled:Z
            ifne 10
            aload 7 /* speciesSig */
            ldc "L"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 123
      StackMap locals: java.lang.invoke.LambdaForm java.lang.String
      StackMap stack:
            aload 4 /* names */
            new java.lang.StringBuilder
            dup
            aload 6 /* reinvoker */
            getfield java.lang.invoke.LambdaForm.kind:Ljava/lang/invoke/LambdaForm$Kind;
            getfield java.lang.invoke.LambdaForm$Kind.defaultLambdaName:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "_"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* speciesSig */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        11: .line 125
            aload 1 /* methodTypes */
            iload 5 /* i */
            aaload
            invokestatic java.lang.invoke.GenerateJLIClassesHelper.makeDelegateFor:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/LambdaForm;
            astore 8 /* delegate */
        start local 8 // java.lang.invoke.LambdaForm delegate
        12: .line 126
            aload 3 /* forms */
            aload 8 /* delegate */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        13: .line 127
            aload 4 /* names */
            aload 8 /* delegate */
            getfield java.lang.invoke.LambdaForm.kind:Ljava/lang/invoke/LambdaForm$Kind;
            getfield java.lang.invoke.LambdaForm$Kind.defaultLambdaName:Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // java.lang.invoke.LambdaForm delegate
        end local 7 // java.lang.String speciesSig
        end local 6 // java.lang.invoke.LambdaForm reinvoker
        14: .line 111
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 5 /* i */
            aload 1 /* methodTypes */
            arraylength
            if_icmplt 5
        end local 5 // int i
        16: .line 130
            aload 0 /* className */
        17: .line 131
            aload 4 /* names */
            iconst_0
            anewarray java.lang.String
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
        18: .line 132
            aload 3 /* forms */
            iconst_0
            anewarray java.lang.invoke.LambdaForm
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.invoke.LambdaForm[]
        19: .line 130
            invokestatic java.lang.invoke.GenerateJLIClassesHelper.generateCodeBytesForLFs:(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/invoke/LambdaForm;)[B
            areturn
        end local 4 // java.util.ArrayList names
        end local 3 // java.util.ArrayList forms
        end local 2 // java.util.HashSet dedupSet
        end local 1 // java.lang.invoke.MethodType[] methodTypes
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   20     0    className  Ljava/lang/String;
            0   20     1  methodTypes  [Ljava/lang/invoke/MethodType;
            1   20     2     dedupSet  Ljava/util/HashSet<Ljava/lang/invoke/MethodType;>;
            2   20     3        forms  Ljava/util/ArrayList<Ljava/lang/invoke/LambdaForm;>;
            3   20     4        names  Ljava/util/ArrayList<Ljava/lang/String;>;
            4   16     5            i  I
            7   14     6    reinvoker  Ljava/lang/invoke/LambdaForm;
            9   14     7   speciesSig  Ljava/lang/String;
           12   14     8     delegate  Ljava/lang/invoke/LambdaForm;
    MethodParameters:
             Name  Flags
      className    
      methodTypes  

  static byte[] generateInvokersHolderClassBytes(java.lang.String, java.lang.invoke.MethodType[], java.lang.invoke.MethodType[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/invoke/MethodType;[Ljava/lang/invoke/MethodType;)[B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=13, args_size=3
        start local 0 // java.lang.String className
        start local 1 // java.lang.invoke.MethodType[] invokerMethodTypes
        start local 2 // java.lang.invoke.MethodType[] callSiteMethodTypes
         0: .line 138
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* dedupSet */
        start local 3 // java.util.HashSet dedupSet
         1: .line 139
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* forms */
        start local 4 // java.util.ArrayList forms
         2: .line 140
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* names */
        start local 5 // java.util.ArrayList names
         3: .line 141
            iconst_4
            newarray 10
            dup
            iconst_0
         4: .line 142
            bipush 10
            iastore
            dup
            iconst_1
         5: .line 143
            bipush 11
            iastore
            dup
            iconst_2
         6: .line 144
            bipush 12
            iastore
            dup
            iconst_3
         7: .line 145
            bipush 13
            iastore
         8: .line 141
            astore 6 /* types */
        start local 6 // int[] types
         9: .line 148
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        10: goto 22
        11: .line 150
      StackMap locals: java.lang.String java.lang.invoke.MethodType[] java.lang.invoke.MethodType[] java.util.HashSet java.util.ArrayList java.util.ArrayList int[] int
      StackMap stack:
            aload 3 /* dedupSet */
            aload 1 /* invokerMethodTypes */
            iload 7 /* i */
            aaload
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            ifeq 21
        12: .line 151
            aload 6 /* types */
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 20
      StackMap locals: java.lang.String java.lang.invoke.MethodType[] java.lang.invoke.MethodType[] java.util.HashSet java.util.ArrayList java.util.ArrayList int[] int top int int int[]
      StackMap stack:
        13: aload 11
            iload 9
            iaload
            istore 8 /* type */
        start local 8 // int type
        14: .line 152
            aload 1 /* invokerMethodTypes */
            iload 7 /* i */
            aaload
        15: .line 153
            iconst_0
            iload 8 /* type */
        16: .line 152
            invokestatic java.lang.invoke.Invokers.invokeHandleForm:(Ljava/lang/invoke/MethodType;ZI)Ljava/lang/invoke/LambdaForm;
            astore 12 /* invokerForm */
        start local 12 // java.lang.invoke.LambdaForm invokerForm
        17: .line 154
            aload 4 /* forms */
            aload 12 /* invokerForm */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        18: .line 155
            aload 5 /* names */
            aload 12 /* invokerForm */
            getfield java.lang.invoke.LambdaForm.kind:Ljava/lang/invoke/LambdaForm$Kind;
            getfield java.lang.invoke.LambdaForm$Kind.defaultLambdaName:Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // java.lang.invoke.LambdaForm invokerForm
        end local 8 // int type
        19: .line 151
            iinc 9 1
      StackMap locals:
      StackMap stack:
        20: iload 9
            iload 10
            if_icmplt 13
        21: .line 148
      StackMap locals: java.lang.String java.lang.invoke.MethodType[] java.lang.invoke.MethodType[] java.util.HashSet java.util.ArrayList java.util.ArrayList int[] int
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 7 /* i */
            aload 1 /* invokerMethodTypes */
            arraylength
            if_icmplt 11
        end local 7 // int i
        23: .line 160
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* dedupSet */
        24: .line 161
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        25: goto 34
        26: .line 163
      StackMap locals:
      StackMap stack:
            aload 3 /* dedupSet */
            aload 2 /* callSiteMethodTypes */
            iload 7 /* i */
            aaload
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            ifeq 33
        27: .line 164
            aload 2 /* callSiteMethodTypes */
            iload 7 /* i */
            aaload
            iconst_1
            invokestatic java.lang.invoke.Invokers.callSiteForm:(Ljava/lang/invoke/MethodType;Z)Ljava/lang/invoke/LambdaForm;
            astore 8 /* callSiteForm */
        start local 8 // java.lang.invoke.LambdaForm callSiteForm
        28: .line 165
            aload 4 /* forms */
            aload 8 /* callSiteForm */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        29: .line 166
            aload 5 /* names */
            aload 8 /* callSiteForm */
            getfield java.lang.invoke.LambdaForm.kind:Ljava/lang/invoke/LambdaForm$Kind;
            getfield java.lang.invoke.LambdaForm$Kind.defaultLambdaName:Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        30: .line 168
            aload 2 /* callSiteMethodTypes */
            iload 7 /* i */
            aaload
            iconst_0
            invokestatic java.lang.invoke.Invokers.callSiteForm:(Ljava/lang/invoke/MethodType;Z)Ljava/lang/invoke/LambdaForm;
            astore 9 /* methodHandleForm */
        start local 9 // java.lang.invoke.LambdaForm methodHandleForm
        31: .line 169
            aload 4 /* forms */
            aload 9 /* methodHandleForm */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        32: .line 170
            aload 5 /* names */
            aload 9 /* methodHandleForm */
            getfield java.lang.invoke.LambdaForm.kind:Ljava/lang/invoke/LambdaForm$Kind;
            getfield java.lang.invoke.LambdaForm$Kind.defaultLambdaName:Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // java.lang.invoke.LambdaForm methodHandleForm
        end local 8 // java.lang.invoke.LambdaForm callSiteForm
        33: .line 161
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        34: iload 7 /* i */
            aload 2 /* callSiteMethodTypes */
            arraylength
            if_icmplt 26
        end local 7 // int i
        35: .line 174
            aload 0 /* className */
        36: .line 175
            aload 5 /* names */
            iconst_0
            anewarray java.lang.String
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
        37: .line 176
            aload 4 /* forms */
            iconst_0
            anewarray java.lang.invoke.LambdaForm
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.invoke.LambdaForm[]
        38: .line 174
            invokestatic java.lang.invoke.GenerateJLIClassesHelper.generateCodeBytesForLFs:(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/invoke/LambdaForm;)[B
            areturn
        end local 6 // int[] types
        end local 5 // java.util.ArrayList names
        end local 4 // java.util.ArrayList forms
        end local 3 // java.util.HashSet dedupSet
        end local 2 // java.lang.invoke.MethodType[] callSiteMethodTypes
        end local 1 // java.lang.invoke.MethodType[] invokerMethodTypes
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   39     0            className  Ljava/lang/String;
            0   39     1   invokerMethodTypes  [Ljava/lang/invoke/MethodType;
            0   39     2  callSiteMethodTypes  [Ljava/lang/invoke/MethodType;
            1   39     3             dedupSet  Ljava/util/HashSet<Ljava/lang/invoke/MethodType;>;
            2   39     4                forms  Ljava/util/ArrayList<Ljava/lang/invoke/LambdaForm;>;
            3   39     5                names  Ljava/util/ArrayList<Ljava/lang/String;>;
            9   39     6                types  [I
           10   23     7                    i  I
           14   19     8                 type  I
           17   19    12          invokerForm  Ljava/lang/invoke/LambdaForm;
           25   35     7                    i  I
           28   33     8         callSiteForm  Ljava/lang/invoke/LambdaForm;
           31   33     9     methodHandleForm  Ljava/lang/invoke/LambdaForm;
    MethodParameters:
                     Name  Flags
      className            
      invokerMethodTypes   
      callSiteMethodTypes  

  private static byte[] generateCodeBytesForLFs(java.lang.String, java.lang.String[], java.lang.invoke.LambdaForm[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/invoke/LambdaForm;)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=3
        start local 0 // java.lang.String className
        start local 1 // java.lang.String[] names
        start local 2 // java.lang.invoke.LambdaForm[] forms
         0: .line 186
            new jdk.internal.org.objectweb.asm.ClassWriter
            dup
            iconst_3
            invokespecial jdk.internal.org.objectweb.asm.ClassWriter.<init>:(I)V
            astore 3 /* cw */
        start local 3 // jdk.internal.org.objectweb.asm.ClassWriter cw
         1: .line 187
            aload 3 /* cw */
            bipush 52
            bipush 50
         2: .line 188
            aload 0 /* className */
            aconst_null
            ldc "java/lang/Object"
            aconst_null
         3: .line 187
            invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.visit:(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
         4: .line 189
            aload 3 /* cw */
            aload 0 /* className */
            aload 0 /* className */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            aconst_null
            invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.visitSource:(Ljava/lang/String;Ljava/lang/String;)V
         5: .line 191
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: goto 11
         7: .line 192
      StackMap locals: jdk.internal.org.objectweb.asm.ClassWriter int
      StackMap stack:
            aload 0 /* className */
            aload 1 /* names */
            iload 4 /* i */
            aaload
            aload 2 /* forms */
            iload 4 /* i */
            aaload
         8: .line 193
            aload 2 /* forms */
            iload 4 /* i */
            aaload
            invokevirtual java.lang.invoke.LambdaForm.methodType:()Ljava/lang/invoke/MethodType;
            aload 3 /* cw */
         9: .line 192
            invokestatic java.lang.invoke.GenerateJLIClassesHelper.addMethod:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/invoke/LambdaForm;Ljava/lang/invoke/MethodType;Ljdk/internal/org/objectweb/asm/ClassWriter;)V
        10: .line 191
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 4 /* i */
            aload 2 /* forms */
            arraylength
            if_icmplt 7
        end local 4 // int i
        12: .line 195
            aload 3 /* cw */
            invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.toByteArray:()[B
            areturn
        end local 3 // jdk.internal.org.objectweb.asm.ClassWriter cw
        end local 2 // java.lang.invoke.LambdaForm[] forms
        end local 1 // java.lang.String[] names
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0  className  Ljava/lang/String;
            0   13     1      names  [Ljava/lang/String;
            0   13     2      forms  [Ljava/lang/invoke/LambdaForm;
            1   13     3         cw  Ljdk/internal/org/objectweb/asm/ClassWriter;
            6   12     4          i  I
    MethodParameters:
           Name  Flags
      className  
      names      
      forms      

  private static void addMethod(java.lang.String, java.lang.String, java.lang.invoke.LambdaForm, java.lang.invoke.MethodType, jdk.internal.org.objectweb.asm.ClassWriter);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/invoke/LambdaForm;Ljava/lang/invoke/MethodType;Ljdk/internal/org/objectweb/asm/ClassWriter;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // java.lang.String className
        start local 1 // java.lang.String methodName
        start local 2 // java.lang.invoke.LambdaForm form
        start local 3 // java.lang.invoke.MethodType type
        start local 4 // jdk.internal.org.objectweb.asm.ClassWriter cw
         0: .line 201
            new java.lang.invoke.InvokerBytecodeGenerator
            dup
            aload 0 /* className */
            aload 1 /* methodName */
            aload 2 /* form */
            aload 3 /* type */
            invokespecial java.lang.invoke.InvokerBytecodeGenerator.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/invoke/LambdaForm;Ljava/lang/invoke/MethodType;)V
         1: .line 200
            astore 5 /* g */
        start local 5 // java.lang.invoke.InvokerBytecodeGenerator g
         2: .line 202
            aload 5 /* g */
            aload 4 /* cw */
            invokevirtual java.lang.invoke.InvokerBytecodeGenerator.setClassWriter:(Ljdk/internal/org/objectweb/asm/ClassWriter;)V
         3: .line 203
            aload 5 /* g */
            invokevirtual java.lang.invoke.InvokerBytecodeGenerator.addMethod:()V
         4: .line 204
            return
        end local 5 // java.lang.invoke.InvokerBytecodeGenerator g
        end local 4 // jdk.internal.org.objectweb.asm.ClassWriter cw
        end local 3 // java.lang.invoke.MethodType type
        end local 2 // java.lang.invoke.LambdaForm form
        end local 1 // java.lang.String methodName
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0   className  Ljava/lang/String;
            0    5     1  methodName  Ljava/lang/String;
            0    5     2        form  Ljava/lang/invoke/LambdaForm;
            0    5     3        type  Ljava/lang/invoke/MethodType;
            0    5     4          cw  Ljdk/internal/org/objectweb/asm/ClassWriter;
            2    5     5           g  Ljava/lang/invoke/InvokerBytecodeGenerator;
    MethodParameters:
            Name  Flags
      className   
      methodName  
      form        
      type        
      cw          

  private static java.lang.invoke.LambdaForm makeReinvokerFor(java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/LambdaForm;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.lang.invoke.MethodType type
         0: .line 207
            aload 0 /* type */
            invokestatic java.lang.invoke.MethodHandles.empty:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 1 /* emptyHandle */
        start local 1 // java.lang.invoke.MethodHandle emptyHandle
         1: .line 208
            aload 1 /* emptyHandle */
         2: .line 209
            bipush 7
         3: .line 210
            invokestatic java.lang.invoke.BoundMethodHandle.speciesData_L:()Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
         4: .line 211
            invokestatic java.lang.invoke.BoundMethodHandle.speciesData_L:()Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
            iconst_0
            invokevirtual java.lang.invoke.BoundMethodHandle$SpeciesData.getterFunction:(I)Ljava/lang/invoke/LambdaForm$NamedFunction;
         5: .line 208
            invokestatic java.lang.invoke.DelegatingMethodHandle.makeReinvokerForm:(Ljava/lang/invoke/MethodHandle;ILjava/lang/Object;Ljava/lang/invoke/LambdaForm$NamedFunction;)Ljava/lang/invoke/LambdaForm;
            areturn
        end local 1 // java.lang.invoke.MethodHandle emptyHandle
        end local 0 // java.lang.invoke.MethodType type
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         type  Ljava/lang/invoke/MethodType;
            1    6     1  emptyHandle  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      type  

  private static java.lang.invoke.LambdaForm makeDelegateFor(java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/LambdaForm;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.lang.invoke.MethodType type
         0: .line 215
            aload 0 /* type */
            invokestatic java.lang.invoke.MethodHandles.empty:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            astore 1 /* handle */
        start local 1 // java.lang.invoke.MethodHandle handle
         1: .line 217
            aload 1 /* handle */
         2: .line 218
            bipush 8
         3: .line 219
            ldc Ljava/lang/invoke/DelegatingMethodHandle;
         4: .line 220
            getstatic java.lang.invoke.DelegatingMethodHandle.NF_getTarget:Ljava/lang/invoke/LambdaForm$NamedFunction;
         5: .line 216
            invokestatic java.lang.invoke.DelegatingMethodHandle.makeReinvokerForm:(Ljava/lang/invoke/MethodHandle;ILjava/lang/Object;Ljava/lang/invoke/LambdaForm$NamedFunction;)Ljava/lang/invoke/LambdaForm;
            areturn
        end local 1 // java.lang.invoke.MethodHandle handle
        end local 0 // java.lang.invoke.MethodType type
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    type  Ljava/lang/invoke/MethodType;
            1    6     1  handle  Ljava/lang/invoke/MethodHandle;
    MethodParameters:
      Name  Flags
      type  

  static java.util.Map$Entry<java.lang.String, byte[]> generateConcreteBMHClassBytes(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Map$Entry;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // java.lang.String types
         0: .line 225
            aload 0 /* types */
            invokevirtual java.lang.String.toCharArray:()[C
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 5
      StackMap locals: java.lang.String top int int char[]
      StackMap stack:
         1: aload 4
            iload 2
            caload
            istore 1 /* c */
        start local 1 // char c
         2: .line 226
            ldc "LIJFD"
            iload 1 /* c */
            invokevirtual java.lang.String.indexOf:(I)I
            ifge 4
         3: .line 227
            new java.lang.IllegalArgumentException
            dup
            ldc "All characters must correspond to a basic field type: LIJFD"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // char c
         4: .line 225
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
         5: iload 2
            iload 3
            if_icmplt 1
         6: .line 231
            getstatic java.lang.invoke.BoundMethodHandle.SPECIALIZER:Ljava/lang/invoke/BoundMethodHandle$Specializer;
            aload 0 /* types */
            invokevirtual java.lang.invoke.BoundMethodHandle$Specializer.findSpecies:(Ljava/lang/Object;)Ljava/lang/invoke/ClassSpecializer$SpeciesData;
            checkcast java.lang.invoke.BoundMethodHandle$SpeciesData
            astore 1 /* species */
        start local 1 // java.lang.invoke.BoundMethodHandle$SpeciesData species
         7: .line 232
            aload 1 /* species */
            invokevirtual java.lang.invoke.BoundMethodHandle$SpeciesData.speciesCode:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 2 /* className */
        start local 2 // java.lang.String className
         8: .line 233
            getstatic java.lang.invoke.BoundMethodHandle.SPECIALIZER:Ljava/lang/invoke/BoundMethodHandle$Specializer;
            invokevirtual java.lang.invoke.BoundMethodHandle$Specializer.factory:()Ljava/lang/invoke/ClassSpecializer$Factory;
            astore 3 /* factory */
        start local 3 // java.lang.invoke.ClassSpecializer$Factory factory
         9: .line 234
            aload 3 /* factory */
            aload 2 /* className */
            aload 1 /* species */
            invokevirtual java.lang.invoke.ClassSpecializer$Factory.generateConcreteSpeciesCodeFile:(Ljava/lang/String;Ljava/lang/invoke/ClassSpecializer$SpeciesData;)[B
            astore 4 /* code */
        start local 4 // byte[] code
        10: .line 235
            aload 2 /* className */
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            aload 4 /* code */
            invokestatic java.util.Map.entry:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map$Entry;
            areturn
        end local 4 // byte[] code
        end local 3 // java.lang.invoke.ClassSpecializer$Factory factory
        end local 2 // java.lang.String className
        end local 1 // java.lang.invoke.BoundMethodHandle$SpeciesData species
        end local 0 // java.lang.String types
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0      types  Ljava/lang/String;
            2    4     1          c  C
            7   11     1    species  Ljava/lang/invoke/BoundMethodHandle$SpeciesData;
            8   11     2  className  Ljava/lang/String;
            9   11     3    factory  Ljava/lang/invoke/ClassSpecializer$Factory;
           10   11     4       code  [B
    Signature: (Ljava/lang/String;)Ljava/util/Map$Entry<Ljava/lang/String;[B>;
    MethodParameters:
       Name  Flags
      types  final
}
SourceFile: "GenerateJLIClassesHelper.java"
InnerClasses:
  final Specializer = java.lang.invoke.BoundMethodHandle$Specializer of java.lang.invoke.BoundMethodHandle
  final SpeciesData = java.lang.invoke.BoundMethodHandle$SpeciesData of java.lang.invoke.BoundMethodHandle
  public Factory = java.lang.invoke.ClassSpecializer$Factory of java.lang.invoke.ClassSpecializer
  public abstract SpeciesData = java.lang.invoke.ClassSpecializer$SpeciesData of java.lang.invoke.ClassSpecializer
  final BasicType = java.lang.invoke.LambdaForm$BasicType of java.lang.invoke.LambdaForm
  final Kind = java.lang.invoke.LambdaForm$Kind of java.lang.invoke.LambdaForm
  NamedFunction = java.lang.invoke.LambdaForm$NamedFunction of java.lang.invoke.LambdaForm
  public abstract Entry = java.util.Map$Entry of java.util.Map