public class java.lang.invoke.ClassSpecializer$Factory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.lang.invoke.ClassSpecializer$Factory
  super_class: java.lang.Object
{
  private final java.lang.String SPECIES_DATA;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String SPECIES_DATA_SIG;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String SPECIES_DATA_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int SPECIES_DATA_MODS;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List<java.lang.String> TRANSFORM_NAMES;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/lang/String;>;

  private final java.util.List<java.lang.invoke.MethodType> TRANSFORM_TYPES;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/lang/invoke/MethodType;>;

  private final java.util.List<java.lang.Integer> TRANSFORM_MODS;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/lang/Integer;>;

  private static final int ACC_PPP;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  final java.lang.invoke.ClassSpecializer this$0;
    descriptor: Ljava/lang/invoke/ClassSpecializer;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  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 459
            ldc Ljava/lang/invoke/ClassSpecializer;
            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.ClassSpecializer$Factory.$assertionsDisabled:Z
         3: .line 625
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.invoke.ClassSpecializer);
    descriptor: (Ljava/lang/invoke/ClassSpecializer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // java.lang.invoke.ClassSpecializer$Factory this
         0: .line 459
            aload 0 /* this */
            aload 1
            putfield java.lang.invoke.ClassSpecializer$Factory.this$0:Ljava/lang/invoke/ClassSpecializer;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 602
            aload 0 /* this */
            aload 1
            getfield java.lang.invoke.ClassSpecializer.metaType:Ljava/lang/Class;
            invokestatic java.lang.invoke.ClassSpecializer.classBCName:(Ljava/lang/Class;)Ljava/lang/String;
            putfield java.lang.invoke.ClassSpecializer$Factory.SPECIES_DATA:Ljava/lang/String;
         2: .line 603
            aload 0 /* this */
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.SPECIES_DATA:Ljava/lang/String;
            invokestatic java.lang.invoke.ClassSpecializer.classSig:(Ljava/lang/String;)Ljava/lang/String;
            putfield java.lang.invoke.ClassSpecializer$Factory.SPECIES_DATA_SIG:Ljava/lang/String;
         3: .line 604
            aload 0 /* this */
            aload 1
            getfield java.lang.invoke.ClassSpecializer.sdAccessor:Ljava/lang/invoke/MemberName;
            invokevirtual java.lang.invoke.MemberName.getName:()Ljava/lang/String;
            putfield java.lang.invoke.ClassSpecializer$Factory.SPECIES_DATA_NAME:Ljava/lang/String;
         4: .line 605
            aload 0 /* this */
            aload 1
            getfield java.lang.invoke.ClassSpecializer.sdAccessor:Ljava/lang/invoke/MemberName;
            invokevirtual java.lang.invoke.MemberName.getModifiers:()I
            putfield java.lang.invoke.ClassSpecializer$Factory.SPECIES_DATA_MODS:I
         5: .line 611
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* tns */
        start local 2 // java.util.List tns
         6: .line 612
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* tts */
        start local 3 // java.util.List tts
         7: .line 613
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* tms */
        start local 4 // java.util.List tms
         8: .line 614
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         9: goto 16
        10: .line 615
      StackMap locals: java.lang.invoke.ClassSpecializer$Factory java.lang.invoke.ClassSpecializer java.util.List java.util.List java.util.List int
      StackMap stack:
            aload 1
            getfield java.lang.invoke.ClassSpecializer.transformMethods:Ljava/util/List;
            iload 5 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.invoke.MemberName
            astore 6 /* tm */
        start local 6 // java.lang.invoke.MemberName tm
        11: .line 616
            aload 2 /* tns */
            aload 6 /* tm */
            invokevirtual java.lang.invoke.MemberName.getName:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        12: .line 617
            aload 6 /* tm */
            invokevirtual java.lang.invoke.MemberName.getMethodType:()Ljava/lang/invoke/MethodType;
            astore 7 /* tt */
        start local 7 // java.lang.invoke.MethodType tt
        13: .line 618
            aload 3 /* tts */
            aload 7 /* tt */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        14: .line 619
            aload 4 /* tms */
            aload 6 /* tm */
            invokevirtual java.lang.invoke.MemberName.getModifiers:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // java.lang.invoke.MethodType tt
        end local 6 // java.lang.invoke.MemberName tm
        15: .line 614
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 5 /* i */
            aload 1
            getfield java.lang.invoke.ClassSpecializer.transformMethods:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 10
        end local 5 // int i
        17: .line 621
            aload 0 /* this */
            aload 2 /* tns */
            iconst_0
            anewarray java.lang.String
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            invokestatic java.util.List.of:([Ljava/lang/Object;)Ljava/util/List;
            putfield java.lang.invoke.ClassSpecializer$Factory.TRANSFORM_NAMES:Ljava/util/List;
        18: .line 622
            aload 0 /* this */
            aload 3 /* tts */
            iconst_0
            anewarray java.lang.invoke.MethodType
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.invoke.MethodType[]
            invokestatic java.util.List.of:([Ljava/lang/Object;)Ljava/util/List;
            putfield java.lang.invoke.ClassSpecializer$Factory.TRANSFORM_TYPES:Ljava/util/List;
        19: .line 623
            aload 0 /* this */
            aload 4 /* tms */
            iconst_0
            anewarray java.lang.Integer
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.Integer[]
            invokestatic java.util.List.of:([Ljava/lang/Object;)Ljava/util/List;
            putfield java.lang.invoke.ClassSpecializer$Factory.TRANSFORM_MODS:Ljava/util/List;
        end local 4 // java.util.List tms
        end local 3 // java.util.List tts
        end local 2 // java.util.List tns
        20: .line 459
            return
        end local 0 // java.lang.invoke.ClassSpecializer$Factory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   21     0  this  Ljava/lang/invoke/ClassSpecializer$Factory;
            6   20     2   tns  Ljava/util/List<Ljava/lang/String;>;
            7   20     3   tts  Ljava/util/List<Ljava/lang/invoke/MethodType;>;
            8   20     4   tms  Ljava/util/List<Ljava/lang/Integer;>;
            9   17     5     i  I
           11   15     6    tm  Ljava/lang/invoke/MemberName;
           13   15     7    tt  Ljava/lang/invoke/MethodType;
    MethodParameters:
        Name  Flags
      this$0  final

  S loadSpecies();
    descriptor: (Ljava/lang/invoke/ClassSpecializer$SpeciesData;)Ljava/lang/invoke/ClassSpecializer$SpeciesData;
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // java.lang.invoke.ClassSpecializer$Factory this
        start local 1 // java.lang.invoke.ClassSpecializer$SpeciesData speciesData
         0: .line 467
            aload 1 /* speciesData */
            invokevirtual java.lang.invoke.ClassSpecializer$SpeciesData.deriveClassName:()Ljava/lang/String;
            astore 2 /* className */
        start local 2 // java.lang.String className
         1: .line 468
            getstatic java.lang.invoke.ClassSpecializer$Factory.$assertionsDisabled:Z
            ifne 2
            aload 2 /* className */
            bipush 47
            invokevirtual java.lang.String.indexOf:(I)I
            iflt 2
            new java.lang.AssertionError
            dup
            aload 2 /* className */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 469
      StackMap locals: java.lang.String
      StackMap stack:
            aconst_null
            astore 3 /* salvage */
        start local 3 // java.lang.Class salvage
         3: .line 471
            aload 2 /* className */
            invokestatic jdk.internal.loader.BootLoader.loadClassOrNull:(Ljava/lang/String;)Ljava/lang/Class;
            astore 3 /* salvage */
         4: .line 472
            getstatic java.lang.invoke.MethodHandleStatics.TRACE_RESOLVE:Z
            ifeq 10
            aload 3 /* salvage */
            ifnull 10
         5: .line 475
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "[SPECIES_RESOLVE] "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " (salvaged)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         6: .line 477
            goto 10
      StackMap locals: java.lang.invoke.ClassSpecializer$Factory java.lang.invoke.ClassSpecializer$SpeciesData java.lang.String java.lang.Class
      StackMap stack: java.lang.Error
         7: astore 4 /* ex */
        start local 4 // java.lang.Error ex
         8: .line 478
            getstatic java.lang.invoke.MethodHandleStatics.TRACE_RESOLVE:Z
            ifeq 10
         9: .line 479
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "[SPECIES_FRESOLVE] "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " (Error) "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* ex */
            invokevirtual java.lang.Error.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 4 // java.lang.Error ex
        10: .line 483
      StackMap locals:
      StackMap stack:
            aload 3 /* salvage */
            ifnull 15
        11: .line 484
            aload 3 /* salvage */
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.this$0:Ljava/lang/invoke/ClassSpecializer;
            invokevirtual java.lang.invoke.ClassSpecializer.topClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.asSubclass:(Ljava/lang/Class;)Ljava/lang/Class;
            astore 4 /* speciesCode */
        start local 4 // java.lang.Class speciesCode
        12: .line 485
            aload 0 /* this */
            aload 1 /* speciesData */
            aload 4 /* speciesCode */
            invokevirtual java.lang.invoke.ClassSpecializer$Factory.linkSpeciesDataToCode:(Ljava/lang/invoke/ClassSpecializer$SpeciesData;Ljava/lang/Class;)V
        13: .line 486
            aload 0 /* this */
            aload 4 /* speciesCode */
            aload 1 /* speciesData */
            iconst_1
            invokevirtual java.lang.invoke.ClassSpecializer$Factory.linkCodeToSpeciesData:(Ljava/lang/Class;Ljava/lang/invoke/ClassSpecializer$SpeciesData;Z)V
        14: .line 487
            goto 25
        end local 4 // java.lang.Class speciesCode
        15: .line 490
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* className */
            aload 1 /* speciesData */
            invokevirtual java.lang.invoke.ClassSpecializer$Factory.generateConcreteSpeciesCode:(Ljava/lang/String;Ljava/lang/invoke/ClassSpecializer$SpeciesData;)Ljava/lang/Class;
            astore 4 /* speciesCode */
        start local 4 // java.lang.Class speciesCode
        16: .line 491
            getstatic java.lang.invoke.MethodHandleStatics.TRACE_RESOLVE:Z
            ifeq 18
        17: .line 494
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "[SPECIES_RESOLVE] "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " (generated)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        18: .line 497
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* this */
            aload 1 /* speciesData */
            aload 4 /* speciesCode */
            invokevirtual java.lang.invoke.ClassSpecializer$Factory.linkSpeciesDataToCode:(Ljava/lang/invoke/ClassSpecializer$SpeciesData;Ljava/lang/Class;)V
        19: .line 499
            aload 0 /* this */
            aload 4 /* speciesCode */
            aload 1 /* speciesData */
            iconst_0
            invokevirtual java.lang.invoke.ClassSpecializer$Factory.linkCodeToSpeciesData:(Ljava/lang/Class;Ljava/lang/invoke/ClassSpecializer$SpeciesData;Z)V
        20: .line 500
            goto 25
        end local 4 // java.lang.Class speciesCode
      StackMap locals: java.lang.invoke.ClassSpecializer$Factory java.lang.invoke.ClassSpecializer$SpeciesData java.lang.String java.lang.Class
      StackMap stack: java.lang.Error
        21: astore 5 /* ex */
        start local 5 // java.lang.Error ex
        22: .line 501
            getstatic java.lang.invoke.MethodHandleStatics.TRACE_RESOLVE:Z
            ifeq 24
        23: .line 502
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "[SPECIES_RESOLVE] "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " (Error #2)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        24: .line 506
      StackMap locals: java.lang.invoke.ClassSpecializer$Factory java.lang.invoke.ClassSpecializer$SpeciesData java.lang.String java.lang.Class top java.lang.Error
      StackMap stack:
            aload 5 /* ex */
            athrow
        end local 5 // java.lang.Error ex
        start local 4 // java.lang.Class speciesCode
        25: .line 510
      StackMap locals: java.lang.invoke.ClassSpecializer$Factory java.lang.invoke.ClassSpecializer$SpeciesData java.lang.String java.lang.Class java.lang.Class
      StackMap stack:
            aload 1 /* speciesData */
            invokevirtual java.lang.invoke.ClassSpecializer$SpeciesData.isResolved:()Z
            ifne 27
        26: .line 511
            new java.lang.StringBuilder
            dup
            ldc "bad species class linkage for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* speciesData */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newInternalError:(Ljava/lang/String;)Ljava/lang/InternalError;
            athrow
        27: .line 513
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.ClassSpecializer$Factory.$assertionsDisabled:Z
            ifne 28
            aload 1 /* speciesData */
            aload 0 /* this */
            aload 4 /* speciesCode */
            invokevirtual java.lang.invoke.ClassSpecializer$Factory.loadSpeciesDataFromCode:(Ljava/lang/Class;)Ljava/lang/invoke/ClassSpecializer$SpeciesData;
            if_acmpeq 28
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        28: .line 514
      StackMap locals:
      StackMap stack:
            aload 1 /* speciesData */
            areturn
        end local 4 // java.lang.Class speciesCode
        end local 3 // java.lang.Class salvage
        end local 2 // java.lang.String className
        end local 1 // java.lang.invoke.ClassSpecializer$SpeciesData speciesData
        end local 0 // java.lang.invoke.ClassSpecializer$Factory this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   29     0         this  Ljava/lang/invoke/ClassSpecializer$Factory;
            0   29     1  speciesData  TS;
            1   29     2    className  Ljava/lang/String;
            3   29     3      salvage  Ljava/lang/Class<*>;
            8   10     4           ex  Ljava/lang/Error;
           12   15     4  speciesCode  Ljava/lang/Class<+TT;>;
           16   21     4  speciesCode  Ljava/lang/Class<+TT;>;
           25   29     4  speciesCode  Ljava/lang/Class<+TT;>;
           22   25     5           ex  Ljava/lang/Error;
      Exception table:
        from    to  target  type
           3     6       7  Class java.lang.Error
          15    20      21  Class java.lang.Error
    Signature: (TS;)TS;
    MethodParameters:
             Name  Flags
      speciesData  

  java.lang.Class<? extends T> generateConcreteSpeciesCode(java.lang.String, java.lang.invoke.ClassSpecializer<T, K, S>.SpeciesData);
    descriptor: (Ljava/lang/String;Ljava/lang/invoke/ClassSpecializer$SpeciesData;)Ljava/lang/Class;
    flags: (0x0000) 
    Code:
      stack=7, locals=8, args_size=3
        start local 0 // java.lang.invoke.ClassSpecializer$Factory this
        start local 1 // java.lang.String className
        start local 2 // java.lang.invoke.ClassSpecializer$SpeciesData speciesData
         0: .line 575
            aload 0 /* this */
            aload 1 /* className */
            aload 2 /* speciesData */
            invokevirtual java.lang.invoke.ClassSpecializer$Factory.generateConcreteSpeciesCodeFile:(Ljava/lang/String;Ljava/lang/invoke/ClassSpecializer$SpeciesData;)[B
            astore 3 /* classFile */
        start local 3 // byte[] classFile
         1: .line 578
            aload 1 /* className */
            invokestatic java.lang.invoke.ClassSpecializer.classBCName:(Ljava/lang/String;)Ljava/lang/String;
            aload 3 /* classFile */
            invokestatic java.lang.invoke.InvokerBytecodeGenerator.maybeDump:(Ljava/lang/String;[B)V
         2: .line 581
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.this$0:Ljava/lang/invoke/ClassSpecializer;
            invokevirtual java.lang.invoke.ClassSpecializer.topClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 5 /* cl */
        start local 5 // java.lang.ClassLoader cl
         3: .line 582
            aconst_null
            astore 6 /* pd */
        start local 6 // java.security.ProtectionDomain pd
         4: .line 583
            aload 5 /* cl */
            ifnull 7
         5: .line 585
            new java.lang.invoke.ClassSpecializer$Factory$1
            dup
            aload 0 /* this */
            invokespecial java.lang.invoke.ClassSpecializer$Factory$1.<init>:(Ljava/lang/invoke/ClassSpecializer$Factory;)V
         6: .line 584
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.security.ProtectionDomain
            astore 6 /* pd */
         7: .line 593
      StackMap locals: java.lang.invoke.ClassSpecializer$Factory java.lang.String java.lang.invoke.ClassSpecializer$SpeciesData byte[] top java.lang.ClassLoader java.security.ProtectionDomain
      StackMap stack:
            getstatic java.lang.invoke.MethodHandleStatics.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 1 /* className */
            aload 3 /* classFile */
            iconst_0
            aload 3 /* classFile */
            arraylength
            aload 5 /* cl */
            aload 6 /* pd */
            invokevirtual jdk.internal.misc.Unsafe.defineClass:(Ljava/lang/String;[BIILjava/lang/ClassLoader;Ljava/security/ProtectionDomain;)Ljava/lang/Class;
            astore 4 /* speciesCode */
        start local 4 // java.lang.Class speciesCode
         8: .line 594
            goto 11
        end local 4 // java.lang.Class speciesCode
      StackMap locals:
      StackMap stack: java.lang.Exception
         9: astore 7 /* ex */
        start local 7 // java.lang.Exception ex
        10: .line 595
            aload 7 /* ex */
            invokestatic java.lang.invoke.MethodHandleStatics.newInternalError:(Ljava/lang/Exception;)Ljava/lang/InternalError;
            athrow
        end local 7 // java.lang.Exception ex
        start local 4 // java.lang.Class speciesCode
        11: .line 598
      StackMap locals: java.lang.invoke.ClassSpecializer$Factory java.lang.String java.lang.invoke.ClassSpecializer$SpeciesData byte[] java.lang.Class java.lang.ClassLoader java.security.ProtectionDomain
      StackMap stack:
            aload 4 /* speciesCode */
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.this$0:Ljava/lang/invoke/ClassSpecializer;
            invokevirtual java.lang.invoke.ClassSpecializer.topClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.asSubclass:(Ljava/lang/Class;)Ljava/lang/Class;
            areturn
        end local 6 // java.security.ProtectionDomain pd
        end local 5 // java.lang.ClassLoader cl
        end local 4 // java.lang.Class speciesCode
        end local 3 // byte[] classFile
        end local 2 // java.lang.invoke.ClassSpecializer$SpeciesData speciesData
        end local 1 // java.lang.String className
        end local 0 // java.lang.invoke.ClassSpecializer$Factory this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Ljava/lang/invoke/ClassSpecializer$Factory;
            0   12     1    className  Ljava/lang/String;
            0   12     2  speciesData  Ljava/lang/invoke/ClassSpecializer<TT;TK;TS;>.SpeciesData;
            1   12     3    classFile  [B
            8    9     4  speciesCode  Ljava/lang/Class<*>;
           11   12     4  speciesCode  Ljava/lang/Class<*>;
            3   12     5           cl  Ljava/lang/ClassLoader;
            4   12     6           pd  Ljava/security/ProtectionDomain;
           10   11     7           ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           7     8       9  Class java.lang.Exception
    Signature: (Ljava/lang/String;Ljava/lang/invoke/ClassSpecializer<TT;TK;TS;>.SpeciesData;)Ljava/lang/Class<+TT;>;
    MethodParameters:
             Name  Flags
      className    
      speciesData  

  byte[] generateConcreteSpeciesCodeFile(java.lang.String, java.lang.invoke.ClassSpecializer<T, K, S>.SpeciesData);
    descriptor: (Ljava/lang/String;Ljava/lang/invoke/ClassSpecializer$SpeciesData;)[B
    flags: (0x0000) 
    Code:
      stack=7, locals=27, args_size=3
        start local 0 // java.lang.invoke.ClassSpecializer$Factory this
        start local 1 // java.lang.String className0
        start local 2 // java.lang.invoke.ClassSpecializer$SpeciesData speciesData
         0: .line 628
            aload 1 /* className0 */
            invokestatic java.lang.invoke.ClassSpecializer.classBCName:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* className */
        start local 3 // java.lang.String className
         1: .line 629
            aload 2 /* speciesData */
            invokevirtual java.lang.invoke.ClassSpecializer$SpeciesData.deriveSuperClass:()Ljava/lang/Class;
            invokestatic java.lang.invoke.ClassSpecializer.classBCName:(Ljava/lang/Class;)Ljava/lang/String;
            astore 4 /* superClassName */
        start local 4 // java.lang.String superClassName
         2: .line 631
            new jdk.internal.org.objectweb.asm.ClassWriter
            dup
            iconst_3
            invokespecial jdk.internal.org.objectweb.asm.ClassWriter.<init>:(I)V
            astore 5 /* cw */
        start local 5 // jdk.internal.org.objectweb.asm.ClassWriter cw
         3: .line 633
            aload 5 /* cw */
            bipush 50
            bipush 48
            aload 3 /* className */
            aconst_null
            aload 4 /* superClassName */
            aconst_null
            invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.visit:(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
         4: .line 635
            aload 3 /* className */
            aload 3 /* className */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 6 /* sourceFile */
        start local 6 // java.lang.String sourceFile
         5: .line 636
            aload 5 /* cw */
            aload 6 /* sourceFile */
            aconst_null
            invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.visitSource:(Ljava/lang/String;Ljava/lang/String;)V
         6: .line 639
            aload 5 /* cw */
            bipush 8
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.this$0:Ljava/lang/invoke/ClassSpecializer;
            getfield java.lang.invoke.ClassSpecializer.sdFieldName:Ljava/lang/String;
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.SPECIES_DATA_SIG:Ljava/lang/String;
            aconst_null
            aconst_null
            invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.visitField:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)Ljdk/internal/org/objectweb/asm/FieldVisitor;
            astore 7 /* fw */
        start local 7 // jdk.internal.org.objectweb.asm.FieldVisitor fw
         7: .line 640
            aload 7 /* fw */
            ldc "Ljdk/internal/vm/annotation/Stable;"
            iconst_1
            invokevirtual jdk.internal.org.objectweb.asm.FieldVisitor.visitAnnotation:(Ljava/lang/String;Z)Ljdk/internal/org/objectweb/asm/AnnotationVisitor;
            pop
         8: .line 641
            aload 7 /* fw */
            invokevirtual jdk.internal.org.objectweb.asm.FieldVisitor.visitEnd:()V
         9: .line 716
            new java.lang.invoke.ClassSpecializer$Factory$1Var
            dup
            aload 0 /* this */
            iconst_0
            iconst_0
            aload 3 /* className */
            invokespecial java.lang.invoke.ClassSpecializer$Factory$1Var.<init>:(Ljava/lang/invoke/ClassSpecializer$Factory;IILjava/lang/String;)V
            astore 8 /* NO_THIS */
        start local 8 // java.lang.invoke.ClassSpecializer$Factory$1Var NO_THIS
        10: .line 717
            new java.lang.invoke.ClassSpecializer$Factory$1Var
            dup
            aload 0 /* this */
            iconst_0
            iconst_1
            aload 3 /* className */
            invokespecial java.lang.invoke.ClassSpecializer$Factory$1Var.<init>:(Ljava/lang/invoke/ClassSpecializer$Factory;IILjava/lang/String;)V
            astore 9 /* AFTER_THIS */
        start local 9 // java.lang.invoke.ClassSpecializer$Factory$1Var AFTER_THIS
        11: .line 718
            new java.lang.invoke.ClassSpecializer$Factory$1Var
            dup
            aload 0 /* this */
            iconst_0
            iconst_m1
            aload 3 /* className */
            invokespecial java.lang.invoke.ClassSpecializer$Factory$1Var.<init>:(Ljava/lang/invoke/ClassSpecializer$Factory;IILjava/lang/String;)V
            astore 10 /* IN_HEAP */
        start local 10 // java.lang.invoke.ClassSpecializer$Factory$1Var IN_HEAP
        12: .line 721
            aload 2 /* speciesData */
            invokevirtual java.lang.invoke.ClassSpecializer$SpeciesData.fieldTypes:()Ljava/util/List;
            astore 11 /* fieldTypes */
        start local 11 // java.util.List fieldTypes
        13: .line 722
            new java.util.ArrayList
            dup
            aload 11 /* fieldTypes */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 12 /* fields */
        start local 12 // java.util.List fields
        14: .line 724
            aload 10 /* IN_HEAP */
            astore 13 /* nextF */
        start local 13 // java.lang.invoke.ClassSpecializer$Factory$1Var nextF
        15: .line 725
            aload 11 /* fieldTypes */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 15
            goto 20
      StackMap locals: java.lang.invoke.ClassSpecializer$Factory java.lang.String java.lang.invoke.ClassSpecializer$SpeciesData java.lang.String java.lang.String jdk.internal.org.objectweb.asm.ClassWriter java.lang.String jdk.internal.org.objectweb.asm.FieldVisitor java.lang.invoke.ClassSpecializer$Factory$1Var java.lang.invoke.ClassSpecializer$Factory$1Var java.lang.invoke.ClassSpecializer$Factory$1Var java.util.List java.util.List java.lang.invoke.ClassSpecializer$Factory$1Var top java.util.Iterator
      StackMap stack:
        16: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 14 /* ft */
        start local 14 // java.lang.Class ft
        17: .line 726
            aload 0 /* this */
            aload 14 /* ft */
            aload 13 /* nextF */
            invokevirtual java.lang.invoke.ClassSpecializer$Factory$1Var.nextIndex:()I
            invokevirtual java.lang.invoke.ClassSpecializer$Factory.chooseFieldName:(Ljava/lang/Class;I)Ljava/lang/String;
            astore 16 /* fn */
        start local 16 // java.lang.String fn
        18: .line 727
            new java.lang.invoke.ClassSpecializer$Factory$1Var
            dup
            aload 0 /* this */
            aload 16 /* fn */
            aload 14 /* ft */
            aload 13 /* nextF */
            aload 3 /* className */
            invokespecial java.lang.invoke.ClassSpecializer$Factory$1Var.<init>:(Ljava/lang/invoke/ClassSpecializer$Factory;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/invoke/ClassSpecializer$Factory$1Var;Ljava/lang/String;)V
            astore 13 /* nextF */
        19: .line 728
            aload 12 /* fields */
            aload 13 /* nextF */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 16 // java.lang.String fn
        end local 14 // java.lang.Class ft
        20: .line 725
      StackMap locals:
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        end local 13 // java.lang.invoke.ClassSpecializer$Factory$1Var nextF
        21: .line 733
            aload 12 /* fields */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 14
            goto 24
      StackMap locals: java.lang.invoke.ClassSpecializer$Factory java.lang.String java.lang.invoke.ClassSpecializer$SpeciesData java.lang.String java.lang.String jdk.internal.org.objectweb.asm.ClassWriter java.lang.String jdk.internal.org.objectweb.asm.FieldVisitor java.lang.invoke.ClassSpecializer$Factory$1Var java.lang.invoke.ClassSpecializer$Factory$1Var java.lang.invoke.ClassSpecializer$Factory$1Var java.util.List java.util.List top java.util.Iterator
      StackMap stack:
        22: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.invoke.ClassSpecializer$Factory$1Var
            astore 13 /* field */
        start local 13 // java.lang.invoke.ClassSpecializer$Factory$1Var field
        23: .line 734
            aload 5 /* cw */
            bipush 16
            aload 13 /* field */
            getfield java.lang.invoke.ClassSpecializer$Factory$1Var.name:Ljava/lang/String;
            aload 13 /* field */
            getfield java.lang.invoke.ClassSpecializer$Factory$1Var.desc:Ljava/lang/String;
            aconst_null
            aconst_null
            invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.visitField:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)Ljdk/internal/org/objectweb/asm/FieldVisitor;
            invokevirtual jdk.internal.org.objectweb.asm.FieldVisitor.visitEnd:()V
        end local 13 // java.lang.invoke.ClassSpecializer$Factory$1Var field
        24: .line 733
      StackMap locals:
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 22
        25: .line 740
            aload 5 /* cw */
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.SPECIES_DATA_MODS:I
            bipush 7
            iand
            bipush 16
            iadd
        26: .line 741
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.SPECIES_DATA_NAME:Ljava/lang/String;
            new java.lang.StringBuilder
            dup
            ldc "()"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.SPECIES_DATA_SIG:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aconst_null
            aconst_null
        27: .line 740
            invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.visitMethod:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljdk/internal/org/objectweb/asm/MethodVisitor;
            astore 13 /* mv */
        start local 13 // jdk.internal.org.objectweb.asm.MethodVisitor mv
        28: .line 742
            aload 13 /* mv */
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitCode:()V
        29: .line 743
            aload 13 /* mv */
            sipush 178
            aload 3 /* className */
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.this$0:Ljava/lang/invoke/ClassSpecializer;
            getfield java.lang.invoke.ClassSpecializer.sdFieldName:Ljava/lang/String;
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.SPECIES_DATA_SIG:Ljava/lang/String;
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitFieldInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        30: .line 744
            aload 13 /* mv */
            sipush 176
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
        31: .line 745
            aload 13 /* mv */
            iconst_0
            iconst_0
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMaxs:(II)V
        32: .line 746
            aload 13 /* mv */
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitEnd:()V
        33: .line 749
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.this$0:Ljava/lang/invoke/ClassSpecializer;
            invokevirtual java.lang.invoke.ClassSpecializer.baseConstructorType:()Ljava/lang/invoke/MethodType;
            astore 14 /* superCtorType */
        start local 14 // java.lang.invoke.MethodType superCtorType
        34: .line 750
            aload 14 /* superCtorType */
            aload 11 /* fieldTypes */
            invokevirtual java.lang.invoke.MethodType.appendParameterTypes:(Ljava/util/List;)Ljava/lang/invoke/MethodType;
            astore 15 /* thisCtorType */
        start local 15 // java.lang.invoke.MethodType thisCtorType
        35: .line 754
            aload 5 /* cw */
            iconst_2
        36: .line 755
            ldc "<init>"
            aload 15 /* thisCtorType */
            invokestatic java.lang.invoke.ClassSpecializer.methodSig:(Ljava/lang/invoke/MethodType;)Ljava/lang/String;
            aconst_null
            aconst_null
        37: .line 754
            invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.visitMethod:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljdk/internal/org/objectweb/asm/MethodVisitor;
            astore 13 /* mv */
        38: .line 756
            aload 13 /* mv */
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitCode:()V
        39: .line 757
            aload 13 /* mv */
            bipush 25
            iconst_0
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitVarInsn:(II)V
        40: .line 759
            aload 9 /* AFTER_THIS */
            aload 14 /* superCtorType */
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            invokevirtual java.lang.invoke.ClassSpecializer$Factory$1Var.fromTypes:(Ljava/util/List;)Ljava/util/List;
            astore 16 /* ctorArgs */
        start local 16 // java.util.List ctorArgs
        41: .line 760
            aload 16 /* ctorArgs */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 18
            goto 44
      StackMap locals: java.lang.invoke.ClassSpecializer$Factory java.lang.String java.lang.invoke.ClassSpecializer$SpeciesData java.lang.String java.lang.String jdk.internal.org.objectweb.asm.ClassWriter java.lang.String jdk.internal.org.objectweb.asm.FieldVisitor java.lang.invoke.ClassSpecializer$Factory$1Var java.lang.invoke.ClassSpecializer$Factory$1Var java.lang.invoke.ClassSpecializer$Factory$1Var java.util.List java.util.List jdk.internal.org.objectweb.asm.MethodVisitor java.lang.invoke.MethodType java.lang.invoke.MethodType java.util.List top java.util.Iterator
      StackMap stack:
        42: aload 18
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.invoke.ClassSpecializer$Factory$1Var
            astore 17 /* ca */
        start local 17 // java.lang.invoke.ClassSpecializer$Factory$1Var ca
        43: .line 761
            aload 17 /* ca */
            bipush 25
            aload 13 /* mv */
            invokevirtual java.lang.invoke.ClassSpecializer$Factory$1Var.emitVarInstruction:(ILjdk/internal/org/objectweb/asm/MethodVisitor;)V
        end local 17 // java.lang.invoke.ClassSpecializer$Factory$1Var ca
        44: .line 760
      StackMap locals:
      StackMap stack:
            aload 18
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 42
        45: .line 765
            aload 13 /* mv */
            sipush 183
            aload 4 /* superClassName */
        46: .line 766
            ldc "<init>"
            aload 14 /* superCtorType */
            invokestatic java.lang.invoke.ClassSpecializer.methodSig:(Ljava/lang/invoke/MethodType;)Ljava/lang/String;
            iconst_0
        47: .line 765
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
        48: .line 769
            aload 9 /* AFTER_THIS */
            aload 16 /* ctorArgs */
            invokevirtual java.lang.invoke.ClassSpecializer$Factory$1Var.lastOf:(Ljava/util/List;)Ljava/lang/invoke/ClassSpecializer$Factory$1Var;
            astore 17 /* lastFV */
        start local 17 // java.lang.invoke.ClassSpecializer$Factory$1Var lastFV
        49: .line 770
            aload 12 /* fields */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 19
            goto 55
      StackMap locals: java.lang.invoke.ClassSpecializer$Factory java.lang.String java.lang.invoke.ClassSpecializer$SpeciesData java.lang.String java.lang.String jdk.internal.org.objectweb.asm.ClassWriter java.lang.String jdk.internal.org.objectweb.asm.FieldVisitor java.lang.invoke.ClassSpecializer$Factory$1Var java.lang.invoke.ClassSpecializer$Factory$1Var java.lang.invoke.ClassSpecializer$Factory$1Var java.util.List java.util.List jdk.internal.org.objectweb.asm.MethodVisitor java.lang.invoke.MethodType java.lang.invoke.MethodType java.util.List java.lang.invoke.ClassSpecializer$Factory$1Var top java.util.Iterator
      StackMap stack:
        50: aload 19
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.invoke.ClassSpecializer$Factory$1Var
            astore 18 /* f */
        start local 18 // java.lang.invoke.ClassSpecializer$Factory$1Var f
        51: .line 772
            aload 13 /* mv */
            bipush 25
            iconst_0
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitVarInsn:(II)V
        52: .line 773
            new java.lang.invoke.ClassSpecializer$Factory$1Var
            dup
            aload 0 /* this */
            aload 18 /* f */
            getfield java.lang.invoke.ClassSpecializer$Factory$1Var.name:Ljava/lang/String;
            aload 18 /* f */
            getfield java.lang.invoke.ClassSpecializer$Factory$1Var.type:Ljava/lang/Class;
            aload 17 /* lastFV */
            aload 3 /* className */
            invokespecial java.lang.invoke.ClassSpecializer$Factory$1Var.<init>:(Ljava/lang/invoke/ClassSpecializer$Factory;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/invoke/ClassSpecializer$Factory$1Var;Ljava/lang/String;)V
            astore 17 /* lastFV */
        53: .line 774
            aload 17 /* lastFV */
            bipush 25
            aload 13 /* mv */
            invokevirtual java.lang.invoke.ClassSpecializer$Factory$1Var.emitVarInstruction:(ILjdk/internal/org/objectweb/asm/MethodVisitor;)V
        54: .line 775
            aload 18 /* f */
            sipush 181
            aload 13 /* mv */
            invokevirtual java.lang.invoke.ClassSpecializer$Factory$1Var.emitFieldInsn:(ILjdk/internal/org/objectweb/asm/MethodVisitor;)V
        end local 18 // java.lang.invoke.ClassSpecializer$Factory$1Var f
        55: .line 770
      StackMap locals:
      StackMap stack:
            aload 19
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 50
        56: .line 778
            aload 13 /* mv */
            sipush 177
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
        57: .line 779
            aload 13 /* mv */
            iconst_0
            iconst_0
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMaxs:(II)V
        58: .line 780
            aload 13 /* mv */
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitEnd:()V
        end local 17 // java.lang.invoke.ClassSpecializer$Factory$1Var lastFV
        end local 16 // java.util.List ctorArgs
        59: .line 785
            aload 15 /* thisCtorType */
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.this$0:Ljava/lang/invoke/ClassSpecializer;
            invokevirtual java.lang.invoke.ClassSpecializer.topClass:()Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            astore 16 /* ftryType */
        start local 16 // java.lang.invoke.MethodType ftryType
        60: .line 786
            aload 5 /* cw */
            bipush 8
        61: .line 787
            ldc "make"
            aload 16 /* ftryType */
            invokestatic java.lang.invoke.ClassSpecializer.methodSig:(Ljava/lang/invoke/MethodType;)Ljava/lang/String;
            aconst_null
            aconst_null
        62: .line 786
            invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.visitMethod:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljdk/internal/org/objectweb/asm/MethodVisitor;
            astore 13 /* mv */
        63: .line 788
            aload 13 /* mv */
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitCode:()V
        64: .line 790
            aload 13 /* mv */
            sipush 187
            aload 3 /* className */
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitTypeInsn:(ILjava/lang/String;)V
        65: .line 791
            aload 13 /* mv */
            bipush 89
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
        66: .line 793
            aload 8 /* NO_THIS */
            aload 16 /* ftryType */
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            invokevirtual java.lang.invoke.ClassSpecializer$Factory$1Var.fromTypes:(Ljava/util/List;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 18
            goto 69
      StackMap locals: java.lang.invoke.ClassSpecializer$Factory java.lang.String java.lang.invoke.ClassSpecializer$SpeciesData java.lang.String java.lang.String jdk.internal.org.objectweb.asm.ClassWriter java.lang.String jdk.internal.org.objectweb.asm.FieldVisitor java.lang.invoke.ClassSpecializer$Factory$1Var java.lang.invoke.ClassSpecializer$Factory$1Var java.lang.invoke.ClassSpecializer$Factory$1Var java.util.List java.util.List jdk.internal.org.objectweb.asm.MethodVisitor java.lang.invoke.MethodType java.lang.invoke.MethodType java.lang.invoke.MethodType top java.util.Iterator
      StackMap stack:
        67: aload 18
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.invoke.ClassSpecializer$Factory$1Var
            astore 17 /* v */
        start local 17 // java.lang.invoke.ClassSpecializer$Factory$1Var v
        68: .line 794
            aload 17 /* v */
            bipush 25
            aload 13 /* mv */
            invokevirtual java.lang.invoke.ClassSpecializer$Factory$1Var.emitVarInstruction:(ILjdk/internal/org/objectweb/asm/MethodVisitor;)V
        end local 17 // java.lang.invoke.ClassSpecializer$Factory$1Var v
        69: .line 793
      StackMap locals:
      StackMap stack:
            aload 18
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 67
        70: .line 798
            aload 13 /* mv */
            sipush 183
            aload 3 /* className */
        71: .line 799
            ldc "<init>"
            aload 15 /* thisCtorType */
            invokestatic java.lang.invoke.ClassSpecializer.methodSig:(Ljava/lang/invoke/MethodType;)Ljava/lang/String;
            iconst_0
        72: .line 798
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
        73: .line 800
            aload 13 /* mv */
            sipush 176
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
        74: .line 801
            aload 13 /* mv */
            iconst_0
            iconst_0
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMaxs:(II)V
        75: .line 802
            aload 13 /* mv */
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitEnd:()V
        end local 16 // java.lang.invoke.MethodType ftryType
        76: .line 811
            iconst_0
            istore 16 /* whichtm */
        start local 16 // int whichtm
        77: goto 121
        78: .line 812
      StackMap locals: java.lang.invoke.ClassSpecializer$Factory java.lang.String java.lang.invoke.ClassSpecializer$SpeciesData java.lang.String java.lang.String jdk.internal.org.objectweb.asm.ClassWriter java.lang.String jdk.internal.org.objectweb.asm.FieldVisitor java.lang.invoke.ClassSpecializer$Factory$1Var java.lang.invoke.ClassSpecializer$Factory$1Var java.lang.invoke.ClassSpecializer$Factory$1Var java.util.List java.util.List jdk.internal.org.objectweb.asm.MethodVisitor java.lang.invoke.MethodType java.lang.invoke.MethodType int
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.TRANSFORM_NAMES:Ljava/util/List;
            iload 16 /* whichtm */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            astore 17 /* TNAME */
        start local 17 // java.lang.String TNAME
        79: .line 813
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.TRANSFORM_TYPES:Ljava/util/List;
            iload 16 /* whichtm */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.invoke.MethodType
            astore 18 /* TTYPE */
        start local 18 // java.lang.invoke.MethodType TTYPE
        80: .line 814
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.TRANSFORM_MODS:Ljava/util/List;
            iload 16 /* whichtm */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 19 /* TMODS */
        start local 19 // int TMODS
        81: .line 815
            aload 5 /* cw */
            iload 19 /* TMODS */
            bipush 7
            iand
            bipush 16
            ior
        82: .line 816
            aload 17 /* TNAME */
            aload 18 /* TTYPE */
            invokevirtual java.lang.invoke.MethodType.toMethodDescriptorString:()Ljava/lang/String;
            aconst_null
            getstatic java.lang.invoke.ClassSpecializer.E_THROWABLE:[Ljava/lang/String;
        83: .line 815
            invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.visitMethod:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljdk/internal/org/objectweb/asm/MethodVisitor;
            astore 13 /* mv */
        84: .line 817
            aload 13 /* mv */
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitCode:()V
        85: .line 820
            aload 13 /* mv */
            sipush 178
            aload 3 /* className */
        86: .line 821
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.this$0:Ljava/lang/invoke/ClassSpecializer;
            getfield java.lang.invoke.ClassSpecializer.sdFieldName:Ljava/lang/String;
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.SPECIES_DATA_SIG:Ljava/lang/String;
        87: .line 820
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitFieldInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        88: .line 822
            aload 0 /* this */
            iload 16 /* whichtm */
            aload 13 /* mv */
            invokevirtual java.lang.invoke.ClassSpecializer$Factory.emitIntConstant:(ILjdk/internal/org/objectweb/asm/MethodVisitor;)V
        89: .line 823
            aload 13 /* mv */
            sipush 182
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.SPECIES_DATA:Ljava/lang/String;
        90: .line 824
            ldc "transformHelper"
            ldc "(I)Ljava/lang/invoke/MethodHandle;"
            iconst_0
        91: .line 823
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
        92: .line 826
            aload 9 /* AFTER_THIS */
            aload 18 /* TTYPE */
            invokevirtual java.lang.invoke.MethodType.parameterList:()Ljava/util/List;
            invokevirtual java.lang.invoke.ClassSpecializer$Factory$1Var.fromTypes:(Ljava/util/List;)Ljava/util/List;
            astore 20 /* targs */
        start local 20 // java.util.List targs
        93: .line 827
            new java.util.ArrayList
            dup
            aload 12 /* fields */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 21 /* tfields */
        start local 21 // java.util.List tfields
        94: .line 829
            aload 2 /* speciesData */
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.this$0:Ljava/lang/invoke/ClassSpecializer;
            getfield java.lang.invoke.ClassSpecializer.transformMethods:Ljava/util/List;
            iload 16 /* whichtm */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.invoke.MemberName
            iload 16 /* whichtm */
            aload 20 /* targs */
            aload 21 /* tfields */
            invokevirtual java.lang.invoke.ClassSpecializer$SpeciesData.deriveTransformHelperArguments:(Ljava/lang/invoke/MemberName;ILjava/util/List;Ljava/util/List;)Ljava/util/List;
            astore 22 /* helperArgs */
        start local 22 // java.util.List helperArgs
        95: .line 830
            new java.util.ArrayList
            dup
            aload 22 /* helperArgs */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 23 /* helperTypes */
        start local 23 // java.util.List helperTypes
        96: .line 831
            aload 22 /* helperArgs */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 25
            goto 106
      StackMap locals: java.lang.invoke.ClassSpecializer$Factory java.lang.String java.lang.invoke.ClassSpecializer$SpeciesData java.lang.String java.lang.String jdk.internal.org.objectweb.asm.ClassWriter java.lang.String jdk.internal.org.objectweb.asm.FieldVisitor java.lang.invoke.ClassSpecializer$Factory$1Var java.lang.invoke.ClassSpecializer$Factory$1Var java.lang.invoke.ClassSpecializer$Factory$1Var java.util.List java.util.List jdk.internal.org.objectweb.asm.MethodVisitor java.lang.invoke.MethodType java.lang.invoke.MethodType int java.lang.String java.lang.invoke.MethodType int java.util.List java.util.List java.util.List java.util.List top java.util.Iterator
      StackMap stack:
        97: aload 25
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.invoke.ClassSpecializer$Factory$1Var
            astore 24 /* ha */
        start local 24 // java.lang.invoke.ClassSpecializer$Factory$1Var ha
        98: .line 832
            aload 23 /* helperTypes */
            aload 24 /* ha */
            getfield java.lang.invoke.ClassSpecializer$Factory$1Var.basicType:Ljava/lang/invoke/LambdaForm$BasicType;
            invokevirtual java.lang.invoke.LambdaForm$BasicType.basicTypeClass:()Ljava/lang/Class;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        99: .line 833
            aload 24 /* ha */
            invokevirtual java.lang.invoke.ClassSpecializer$Factory$1Var.isInHeap:()Z
            ifeq 104
       100: .line 834
            getstatic java.lang.invoke.ClassSpecializer$Factory.$assertionsDisabled:Z
            ifne 101
            aload 21 /* tfields */
            aload 24 /* ha */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 101
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
       101: .line 835
      StackMap locals: java.lang.invoke.ClassSpecializer$Factory java.lang.String java.lang.invoke.ClassSpecializer$SpeciesData java.lang.String java.lang.String jdk.internal.org.objectweb.asm.ClassWriter java.lang.String jdk.internal.org.objectweb.asm.FieldVisitor java.lang.invoke.ClassSpecializer$Factory$1Var java.lang.invoke.ClassSpecializer$Factory$1Var java.lang.invoke.ClassSpecializer$Factory$1Var java.util.List java.util.List jdk.internal.org.objectweb.asm.MethodVisitor java.lang.invoke.MethodType java.lang.invoke.MethodType int java.lang.String java.lang.invoke.MethodType int java.util.List java.util.List java.util.List java.util.List java.lang.invoke.ClassSpecializer$Factory$1Var java.util.Iterator
      StackMap stack:
            aload 13 /* mv */
            bipush 25
            iconst_0
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitVarInsn:(II)V
       102: .line 836
            aload 24 /* ha */
            sipush 180
            aload 13 /* mv */
            invokevirtual java.lang.invoke.ClassSpecializer$Factory$1Var.emitFieldInsn:(ILjdk/internal/org/objectweb/asm/MethodVisitor;)V
       103: .line 837
            goto 106
       104: .line 838
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.ClassSpecializer$Factory.$assertionsDisabled:Z
            ifne 105
            aload 20 /* targs */
            aload 24 /* ha */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 105
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
       105: .line 839
      StackMap locals:
      StackMap stack:
            aload 24 /* ha */
            bipush 25
            aload 13 /* mv */
            invokevirtual java.lang.invoke.ClassSpecializer$Factory$1Var.emitVarInstruction:(ILjdk/internal/org/objectweb/asm/MethodVisitor;)V
        end local 24 // java.lang.invoke.ClassSpecializer$Factory$1Var ha
       106: .line 831
      StackMap locals: java.lang.invoke.ClassSpecializer$Factory java.lang.String java.lang.invoke.ClassSpecializer$SpeciesData java.lang.String java.lang.String jdk.internal.org.objectweb.asm.ClassWriter java.lang.String jdk.internal.org.objectweb.asm.FieldVisitor java.lang.invoke.ClassSpecializer$Factory$1Var java.lang.invoke.ClassSpecializer$Factory$1Var java.lang.invoke.ClassSpecializer$Factory$1Var java.util.List java.util.List jdk.internal.org.objectweb.asm.MethodVisitor java.lang.invoke.MethodType java.lang.invoke.MethodType int java.lang.String java.lang.invoke.MethodType int java.util.List java.util.List java.util.List java.util.List top java.util.Iterator
      StackMap stack:
            aload 25
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 97
       107: .line 844
            aload 18 /* TTYPE */
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            astore 24 /* rtype */
        start local 24 // java.lang.Class rtype
       108: .line 845
            aload 24 /* rtype */
            invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
            astore 25 /* rbt */
        start local 25 // java.lang.invoke.LambdaForm$BasicType rbt
       109: .line 846
            aload 25 /* rbt */
            invokevirtual java.lang.invoke.LambdaForm$BasicType.basicTypeClass:()Ljava/lang/Class;
            aload 23 /* helperTypes */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodType;
            astore 26 /* invokeBasicType */
        start local 26 // java.lang.invoke.MethodType invokeBasicType
       110: .line 847
            aload 13 /* mv */
            sipush 182
            ldc "java/lang/invoke/MethodHandle"
       111: .line 848
            ldc "invokeBasic"
            aload 26 /* invokeBasicType */
            invokestatic java.lang.invoke.ClassSpecializer.methodSig:(Ljava/lang/invoke/MethodType;)Ljava/lang/String;
            iconst_0
       112: .line 847
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMethodInsn:(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
       113: .line 849
            aload 25 /* rbt */
            getstatic java.lang.invoke.LambdaForm$BasicType.L_TYPE:Ljava/lang/invoke/LambdaForm$BasicType;
            if_acmpne 117
       114: .line 850
            aload 13 /* mv */
            sipush 192
            aload 24 /* rtype */
            invokestatic java.lang.invoke.ClassSpecializer.classBCName:(Ljava/lang/Class;)Ljava/lang/String;
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitTypeInsn:(ILjava/lang/String;)V
       115: .line 851
            aload 13 /* mv */
            sipush 176
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
       116: .line 852
            goto 118
       117: .line 853
      StackMap locals: java.lang.invoke.ClassSpecializer$Factory java.lang.String java.lang.invoke.ClassSpecializer$SpeciesData java.lang.String java.lang.String jdk.internal.org.objectweb.asm.ClassWriter java.lang.String jdk.internal.org.objectweb.asm.FieldVisitor java.lang.invoke.ClassSpecializer$Factory$1Var java.lang.invoke.ClassSpecializer$Factory$1Var java.lang.invoke.ClassSpecializer$Factory$1Var java.util.List java.util.List jdk.internal.org.objectweb.asm.MethodVisitor java.lang.invoke.MethodType java.lang.invoke.MethodType int java.lang.String java.lang.invoke.MethodType int java.util.List java.util.List java.util.List java.util.List java.lang.Class java.lang.invoke.LambdaForm$BasicType java.lang.invoke.MethodType
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "NYI: transform of type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 24 /* rtype */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newInternalError:(Ljava/lang/String;)Ljava/lang/InternalError;
            athrow
       118: .line 855
      StackMap locals:
      StackMap stack:
            aload 13 /* mv */
            iconst_0
            iconst_0
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitMaxs:(II)V
       119: .line 856
            aload 13 /* mv */
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitEnd:()V
        end local 26 // java.lang.invoke.MethodType invokeBasicType
        end local 25 // java.lang.invoke.LambdaForm$BasicType rbt
        end local 24 // java.lang.Class rtype
        end local 23 // java.util.List helperTypes
        end local 22 // java.util.List helperArgs
        end local 21 // java.util.List tfields
        end local 20 // java.util.List targs
        end local 19 // int TMODS
        end local 18 // java.lang.invoke.MethodType TTYPE
        end local 17 // java.lang.String TNAME
       120: .line 811
            iinc 16 /* whichtm */ 1
      StackMap locals: java.lang.invoke.ClassSpecializer$Factory java.lang.String java.lang.invoke.ClassSpecializer$SpeciesData java.lang.String java.lang.String jdk.internal.org.objectweb.asm.ClassWriter java.lang.String jdk.internal.org.objectweb.asm.FieldVisitor java.lang.invoke.ClassSpecializer$Factory$1Var java.lang.invoke.ClassSpecializer$Factory$1Var java.lang.invoke.ClassSpecializer$Factory$1Var java.util.List java.util.List jdk.internal.org.objectweb.asm.MethodVisitor java.lang.invoke.MethodType java.lang.invoke.MethodType int
      StackMap stack:
       121: iload 16 /* whichtm */
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.TRANSFORM_NAMES:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 78
        end local 16 // int whichtm
       122: .line 859
            aload 5 /* cw */
            invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.visitEnd:()V
       123: .line 861
            aload 5 /* cw */
            invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.toByteArray:()[B
            areturn
        end local 15 // java.lang.invoke.MethodType thisCtorType
        end local 14 // java.lang.invoke.MethodType superCtorType
        end local 13 // jdk.internal.org.objectweb.asm.MethodVisitor mv
        end local 12 // java.util.List fields
        end local 11 // java.util.List fieldTypes
        end local 10 // java.lang.invoke.ClassSpecializer$Factory$1Var IN_HEAP
        end local 9 // java.lang.invoke.ClassSpecializer$Factory$1Var AFTER_THIS
        end local 8 // java.lang.invoke.ClassSpecializer$Factory$1Var NO_THIS
        end local 7 // jdk.internal.org.objectweb.asm.FieldVisitor fw
        end local 6 // java.lang.String sourceFile
        end local 5 // jdk.internal.org.objectweb.asm.ClassWriter cw
        end local 4 // java.lang.String superClassName
        end local 3 // java.lang.String className
        end local 2 // java.lang.invoke.ClassSpecializer$SpeciesData speciesData
        end local 1 // java.lang.String className0
        end local 0 // java.lang.invoke.ClassSpecializer$Factory this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0  124     0             this  Ljava/lang/invoke/ClassSpecializer$Factory;
            0  124     1       className0  Ljava/lang/String;
            0  124     2      speciesData  Ljava/lang/invoke/ClassSpecializer<TT;TK;TS;>.SpeciesData;
            1  124     3        className  Ljava/lang/String;
            2  124     4   superClassName  Ljava/lang/String;
            3  124     5               cw  Ljdk/internal/org/objectweb/asm/ClassWriter;
            5  124     6       sourceFile  Ljava/lang/String;
            7  124     7               fw  Ljdk/internal/org/objectweb/asm/FieldVisitor;
           10  124     8          NO_THIS  Ljava/lang/invoke/ClassSpecializer$Factory$1Var;
           11  124     9       AFTER_THIS  Ljava/lang/invoke/ClassSpecializer$Factory$1Var;
           12  124    10          IN_HEAP  Ljava/lang/invoke/ClassSpecializer$Factory$1Var;
           13  124    11       fieldTypes  Ljava/util/List<Ljava/lang/Class<*>;>;
           14  124    12           fields  Ljava/util/List<Ljava/lang/invoke/ClassSpecializer$Factory$1Var;>;
           15   21    13            nextF  Ljava/lang/invoke/ClassSpecializer$Factory$1Var;
           17   20    14               ft  Ljava/lang/Class<*>;
           18   20    16               fn  Ljava/lang/String;
           23   24    13            field  Ljava/lang/invoke/ClassSpecializer$Factory$1Var;
           28  124    13               mv  Ljdk/internal/org/objectweb/asm/MethodVisitor;
           34  124    14    superCtorType  Ljava/lang/invoke/MethodType;
           35  124    15     thisCtorType  Ljava/lang/invoke/MethodType;
           41   59    16         ctorArgs  Ljava/util/List<Ljava/lang/invoke/ClassSpecializer$Factory$1Var;>;
           43   44    17               ca  Ljava/lang/invoke/ClassSpecializer$Factory$1Var;
           49   59    17           lastFV  Ljava/lang/invoke/ClassSpecializer$Factory$1Var;
           51   55    18                f  Ljava/lang/invoke/ClassSpecializer$Factory$1Var;
           60   76    16         ftryType  Ljava/lang/invoke/MethodType;
           68   69    17                v  Ljava/lang/invoke/ClassSpecializer$Factory$1Var;
           77  122    16          whichtm  I
           79  120    17            TNAME  Ljava/lang/String;
           80  120    18            TTYPE  Ljava/lang/invoke/MethodType;
           81  120    19            TMODS  I
           93  120    20            targs  Ljava/util/List<Ljava/lang/invoke/ClassSpecializer$Factory$1Var;>;
           94  120    21          tfields  Ljava/util/List<Ljava/lang/invoke/ClassSpecializer$Factory$1Var;>;
           95  120    22       helperArgs  Ljava/util/List<Ljava/lang/invoke/ClassSpecializer$Factory$1Var;>;
           96  120    23      helperTypes  Ljava/util/List<Ljava/lang/Class<*>;>;
           98  106    24               ha  Ljava/lang/invoke/ClassSpecializer$Factory$1Var;
          108  120    24            rtype  Ljava/lang/Class<*>;
          109  120    25              rbt  Ljava/lang/invoke/LambdaForm$BasicType;
          110  120    26  invokeBasicType  Ljava/lang/invoke/MethodType;
    Signature: (Ljava/lang/String;Ljava/lang/invoke/ClassSpecializer<TT;TK;TS;>.SpeciesData;)[B
    MethodParameters:
             Name  Flags
      className0   
      speciesData  

  private int typeLoadOp(char);
    descriptor: (C)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.invoke.ClassSpecializer$Factory this
        start local 1 // char t
         0: .line 865
            iload 1 /* t */
            tableswitch { // 68 - 76
                   68: 5
                   69: 6
                   70: 4
                   71: 6
                   72: 6
                   73: 2
                   74: 3
                   75: 6
                   76: 1
              default: 6
          }
         1: .line 866
      StackMap locals:
      StackMap stack:
            bipush 25
            ireturn
         2: .line 867
      StackMap locals:
      StackMap stack:
            bipush 21
            ireturn
         3: .line 868
      StackMap locals:
      StackMap stack:
            bipush 22
            ireturn
         4: .line 869
      StackMap locals:
      StackMap stack:
            bipush 23
            ireturn
         5: .line 870
      StackMap locals:
      StackMap stack:
            bipush 24
            ireturn
         6: .line 871
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "unrecognized type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* t */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic java.lang.invoke.MethodHandleStatics.newInternalError:(Ljava/lang/String;)Ljava/lang/InternalError;
            athrow
        end local 1 // char t
        end local 0 // java.lang.invoke.ClassSpecializer$Factory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljava/lang/invoke/ClassSpecializer$Factory;
            0    7     1     t  C
    MethodParameters:
      Name  Flags
      t     

  private void emitIntConstant(int, jdk.internal.org.objectweb.asm.MethodVisitor);
    descriptor: (ILjdk/internal/org/objectweb/asm/MethodVisitor;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.lang.invoke.ClassSpecializer$Factory this
        start local 1 // int con
        start local 2 // jdk.internal.org.objectweb.asm.MethodVisitor mv
         0: .line 876
            iconst_m1
            iload 1 /* con */
            if_icmpgt 2
            iload 1 /* con */
            iconst_5
            if_icmpgt 2
         1: .line 877
            aload 2 /* mv */
            iconst_3
            iload 1 /* con */
            iadd
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitInsn:(I)V
            goto 7
         2: .line 878
      StackMap locals:
      StackMap stack:
            iload 1 /* con */
            iload 1 /* con */
            i2b
            if_icmpne 4
         3: .line 879
            aload 2 /* mv */
            bipush 16
            iload 1 /* con */
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitIntInsn:(II)V
            goto 7
         4: .line 880
      StackMap locals:
      StackMap stack:
            iload 1 /* con */
            iload 1 /* con */
            i2s
            if_icmpne 6
         5: .line 881
            aload 2 /* mv */
            bipush 17
            iload 1 /* con */
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitIntInsn:(II)V
            goto 7
         6: .line 883
      StackMap locals:
      StackMap stack:
            aload 2 /* mv */
            iload 1 /* con */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual jdk.internal.org.objectweb.asm.MethodVisitor.visitLdcInsn:(Ljava/lang/Object;)V
         7: .line 886
      StackMap locals:
      StackMap stack:
            return
        end local 2 // jdk.internal.org.objectweb.asm.MethodVisitor mv
        end local 1 // int con
        end local 0 // java.lang.invoke.ClassSpecializer$Factory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljava/lang/invoke/ClassSpecializer$Factory;
            0    8     1   con  I
            0    8     2    mv  Ljdk/internal/org/objectweb/asm/MethodVisitor;
    MethodParameters:
      Name  Flags
      con   
      mv    

  private java.lang.invoke.MethodHandle findGetter(java.lang.Class<?>, java.util.List<java.lang.Class<?>>, int);
    descriptor: (Ljava/lang/Class;Ljava/util/List;I)Ljava/lang/invoke/MethodHandle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // java.lang.invoke.ClassSpecializer$Factory this
        start local 1 // java.lang.Class speciesCode
        start local 2 // java.util.List types
        start local 3 // int index
         0: .line 893
            aload 2 /* types */
            iload 3 /* index */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Class
            astore 4 /* fieldType */
        start local 4 // java.lang.Class fieldType
         1: .line 894
            aload 0 /* this */
            aload 4 /* fieldType */
            iload 3 /* index */
            invokevirtual java.lang.invoke.ClassSpecializer$Factory.chooseFieldName:(Ljava/lang/Class;I)Ljava/lang/String;
            astore 5 /* fieldName */
        start local 5 // java.lang.String fieldName
         2: .line 896
            getstatic java.lang.invoke.MethodHandles$Lookup.IMPL_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
            aload 1 /* speciesCode */
            aload 5 /* fieldName */
            aload 4 /* fieldType */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findGetter:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
         3: areturn
         4: .line 897
      StackMap locals: java.lang.invoke.ClassSpecializer$Factory java.lang.Class java.util.List int java.lang.Class java.lang.String
      StackMap stack: java.lang.ReflectiveOperationException
            astore 6 /* e */
        start local 6 // java.lang.ReflectiveOperationException e
         5: .line 898
            aload 6 /* e */
            invokestatic java.lang.invoke.MethodHandleStatics.newInternalError:(Ljava/lang/Exception;)Ljava/lang/InternalError;
            athrow
        end local 6 // java.lang.ReflectiveOperationException e
        end local 5 // java.lang.String fieldName
        end local 4 // java.lang.Class fieldType
        end local 3 // int index
        end local 2 // java.util.List types
        end local 1 // java.lang.Class speciesCode
        end local 0 // java.lang.invoke.ClassSpecializer$Factory this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Ljava/lang/invoke/ClassSpecializer$Factory;
            0    6     1  speciesCode  Ljava/lang/Class<*>;
            0    6     2        types  Ljava/util/List<Ljava/lang/Class<*>;>;
            0    6     3        index  I
            1    6     4    fieldType  Ljava/lang/Class<*>;
            2    6     5    fieldName  Ljava/lang/String;
            5    6     6            e  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldException
           2     3       4  Class java.lang.IllegalAccessException
    Signature: (Ljava/lang/Class<*>;Ljava/util/List<Ljava/lang/Class<*>;>;I)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
             Name  Flags
      speciesCode  
      types        
      index        

  private java.util.List<java.lang.invoke.MethodHandle> findGetters(java.lang.Class<?>, java.util.List<java.lang.Class<?>>);
    descriptor: (Ljava/lang/Class;Ljava/util/List;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // java.lang.invoke.ClassSpecializer$Factory this
        start local 1 // java.lang.Class speciesCode
        start local 2 // java.util.List types
         0: .line 903
            aload 2 /* types */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.invoke.MethodHandle
            astore 3 /* mhs */
        start local 3 // java.lang.invoke.MethodHandle[] mhs
         1: .line 904
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 6
         3: .line 905
      StackMap locals: java.lang.invoke.MethodHandle[] int
      StackMap stack:
            aload 3 /* mhs */
            iload 4 /* i */
            aload 0 /* this */
            aload 1 /* speciesCode */
            aload 2 /* types */
            iload 4 /* i */
            invokevirtual java.lang.invoke.ClassSpecializer$Factory.findGetter:(Ljava/lang/Class;Ljava/util/List;I)Ljava/lang/invoke/MethodHandle;
            aastore
         4: .line 906
            getstatic java.lang.invoke.ClassSpecializer$Factory.$assertionsDisabled:Z
            ifne 5
            aload 3 /* mhs */
            iload 4 /* i */
            aaload
            invokevirtual java.lang.invoke.MethodHandle.internalMemberName:()Ljava/lang/invoke/MemberName;
            invokevirtual java.lang.invoke.MemberName.getDeclaringClass:()Ljava/lang/Class;
            aload 1 /* speciesCode */
            if_acmpeq 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 904
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 4 /* i */
            aload 3 /* mhs */
            arraylength
            if_icmplt 3
        end local 4 // int i
         7: .line 908
            aload 3 /* mhs */
            invokestatic java.util.List.of:([Ljava/lang/Object;)Ljava/util/List;
            areturn
        end local 3 // java.lang.invoke.MethodHandle[] mhs
        end local 2 // java.util.List types
        end local 1 // java.lang.Class speciesCode
        end local 0 // java.lang.invoke.ClassSpecializer$Factory this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Ljava/lang/invoke/ClassSpecializer$Factory;
            0    8     1  speciesCode  Ljava/lang/Class<*>;
            0    8     2        types  Ljava/util/List<Ljava/lang/Class<*>;>;
            1    8     3          mhs  [Ljava/lang/invoke/MethodHandle;
            2    7     4            i  I
    Signature: (Ljava/lang/Class<*>;Ljava/util/List<Ljava/lang/Class<*>;>;)Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
    MethodParameters:
             Name  Flags
      speciesCode  
      types        

  private java.util.List<java.lang.invoke.MethodHandle> findFactories(java.lang.Class<? extends T>, java.util.List<java.lang.Class<?>>);
    descriptor: (Ljava/lang/Class;Ljava/util/List;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.lang.invoke.ClassSpecializer$Factory this
        start local 1 // java.lang.Class speciesCode
        start local 2 // java.util.List types
         0: .line 912
            iconst_1
            anewarray java.lang.invoke.MethodHandle
            astore 3 /* mhs */
        start local 3 // java.lang.invoke.MethodHandle[] mhs
         1: .line 913
            aload 3 /* mhs */
            iconst_0
            aload 0 /* this */
            aload 1 /* speciesCode */
            aload 2 /* types */
            invokevirtual java.lang.invoke.ClassSpecializer$Factory.findFactory:(Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodHandle;
            aastore
         2: .line 914
            aload 3 /* mhs */
            invokestatic java.util.List.of:([Ljava/lang/Object;)Ljava/util/List;
            areturn
        end local 3 // java.lang.invoke.MethodHandle[] mhs
        end local 2 // java.util.List types
        end local 1 // java.lang.Class speciesCode
        end local 0 // java.lang.invoke.ClassSpecializer$Factory this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Ljava/lang/invoke/ClassSpecializer$Factory;
            0    3     1  speciesCode  Ljava/lang/Class<+TT;>;
            0    3     2        types  Ljava/util/List<Ljava/lang/Class<*>;>;
            1    3     3          mhs  [Ljava/lang/invoke/MethodHandle;
    Signature: (Ljava/lang/Class<+TT;>;Ljava/util/List<Ljava/lang/Class<*>;>;)Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
    MethodParameters:
             Name  Flags
      speciesCode  
      types        

  java.util.List<java.lang.invoke.LambdaForm$NamedFunction> makeNominalGetters(java.util.List<java.lang.Class<?>>, java.util.List<java.lang.invoke.MethodHandle>);
    descriptor: (Ljava/util/List;Ljava/util/List;)Ljava/util/List;
    flags: (0x0000) 
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // java.lang.invoke.ClassSpecializer$Factory this
        start local 1 // java.util.List types
        start local 2 // java.util.List getters
         0: .line 918
            aload 1 /* types */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.invoke.LambdaForm$NamedFunction
            astore 3 /* nfs */
        start local 3 // java.lang.invoke.LambdaForm$NamedFunction[] nfs
         1: .line 919
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 5
         3: .line 920
      StackMap locals: java.lang.invoke.LambdaForm$NamedFunction[] int
      StackMap stack:
            aload 3 /* nfs */
            iload 4 /* i */
            new java.lang.invoke.LambdaForm$NamedFunction
            dup
            aload 2 /* getters */
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.invoke.MethodHandle
            invokespecial java.lang.invoke.LambdaForm$NamedFunction.<init>:(Ljava/lang/invoke/MethodHandle;)V
            aastore
         4: .line 919
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 4 /* i */
            aload 3 /* nfs */
            arraylength
            if_icmplt 3
        end local 4 // int i
         6: .line 922
            aload 3 /* nfs */
            invokestatic java.util.List.of:([Ljava/lang/Object;)Ljava/util/List;
            areturn
        end local 3 // java.lang.invoke.LambdaForm$NamedFunction[] nfs
        end local 2 // java.util.List getters
        end local 1 // java.util.List types
        end local 0 // java.lang.invoke.ClassSpecializer$Factory this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Ljava/lang/invoke/ClassSpecializer$Factory;
            0    7     1    types  Ljava/util/List<Ljava/lang/Class<*>;>;
            0    7     2  getters  Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;
            1    7     3      nfs  [Ljava/lang/invoke/LambdaForm$NamedFunction;
            2    6     4        i  I
    Signature: (Ljava/util/List<Ljava/lang/Class<*>;>;Ljava/util/List<Ljava/lang/invoke/MethodHandle;>;)Ljava/util/List<Ljava/lang/invoke/LambdaForm$NamedFunction;>;
    MethodParameters:
         Name  Flags
      types    
      getters  

  protected void linkSpeciesDataToCode(java.lang.invoke.ClassSpecializer<T, K, S>.SpeciesData, java.lang.Class<? extends T>);
    descriptor: (Ljava/lang/invoke/ClassSpecializer$SpeciesData;Ljava/lang/Class;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // java.lang.invoke.ClassSpecializer$Factory this
        start local 1 // java.lang.invoke.ClassSpecializer$SpeciesData speciesData
        start local 2 // java.lang.Class speciesCode
         0: .line 930
            aload 1 /* speciesData */
            aload 2 /* speciesCode */
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.this$0:Ljava/lang/invoke/ClassSpecializer;
            getfield java.lang.invoke.ClassSpecializer.topClass:Ljava/lang/Class;
            invokevirtual java.lang.Class.asSubclass:(Ljava/lang/Class;)Ljava/lang/Class;
            putfield java.lang.invoke.ClassSpecializer$SpeciesData.speciesCode:Ljava/lang/Class;
         1: .line 931
            aload 1 /* speciesData */
            getfield java.lang.invoke.ClassSpecializer$SpeciesData.fieldTypes:Ljava/util/List;
            astore 3 /* types */
        start local 3 // java.util.List types
         2: .line 932
            aload 1 /* speciesData */
            aload 0 /* this */
            aload 2 /* speciesCode */
            aload 3 /* types */
            invokevirtual java.lang.invoke.ClassSpecializer$Factory.findFactories:(Ljava/lang/Class;Ljava/util/List;)Ljava/util/List;
            putfield java.lang.invoke.ClassSpecializer$SpeciesData.factories:Ljava/util/List;
         3: .line 933
            aload 1 /* speciesData */
            aload 0 /* this */
            aload 2 /* speciesCode */
            aload 3 /* types */
            invokevirtual java.lang.invoke.ClassSpecializer$Factory.findGetters:(Ljava/lang/Class;Ljava/util/List;)Ljava/util/List;
            putfield java.lang.invoke.ClassSpecializer$SpeciesData.getters:Ljava/util/List;
         4: .line 934
            aload 1 /* speciesData */
            aload 0 /* this */
            aload 3 /* types */
            aload 1 /* speciesData */
            getfield java.lang.invoke.ClassSpecializer$SpeciesData.getters:Ljava/util/List;
            invokevirtual java.lang.invoke.ClassSpecializer$Factory.makeNominalGetters:(Ljava/util/List;Ljava/util/List;)Ljava/util/List;
            putfield java.lang.invoke.ClassSpecializer$SpeciesData.nominalGetters:Ljava/util/List;
         5: .line 935
            return
        end local 3 // java.util.List types
        end local 2 // java.lang.Class speciesCode
        end local 1 // java.lang.invoke.ClassSpecializer$SpeciesData speciesData
        end local 0 // java.lang.invoke.ClassSpecializer$Factory this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Ljava/lang/invoke/ClassSpecializer$Factory;
            0    6     1  speciesData  Ljava/lang/invoke/ClassSpecializer<TT;TK;TS;>.SpeciesData;
            0    6     2  speciesCode  Ljava/lang/Class<+TT;>;
            2    6     3        types  Ljava/util/List<Ljava/lang/Class<*>;>;
    Signature: (Ljava/lang/invoke/ClassSpecializer<TT;TK;TS;>.SpeciesData;Ljava/lang/Class<+TT;>;)V
    MethodParameters:
             Name  Flags
      speciesData  
      speciesCode  

  private java.lang.reflect.Field reflectSDField(java.lang.Class<? extends T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/reflect/Field;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.invoke.ClassSpecializer$Factory this
        start local 1 // java.lang.Class speciesCode
         0: .line 938
            aload 1 /* speciesCode */
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.this$0:Ljava/lang/invoke/ClassSpecializer;
            getfield java.lang.invoke.ClassSpecializer.sdFieldName:Ljava/lang/String;
            invokestatic java.lang.invoke.ClassSpecializer.reflectField:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 2 /* field */
        start local 2 // java.lang.reflect.Field field
         1: .line 939
            getstatic java.lang.invoke.ClassSpecializer$Factory.$assertionsDisabled:Z
            ifne 2
            aload 2 /* field */
            invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.this$0:Ljava/lang/invoke/ClassSpecializer;
            getfield java.lang.invoke.ClassSpecializer.metaType:Ljava/lang/Class;
            if_acmpeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 940
      StackMap locals: java.lang.reflect.Field
      StackMap stack:
            getstatic java.lang.invoke.ClassSpecializer$Factory.$assertionsDisabled:Z
            ifne 3
            aload 2 /* field */
            invokevirtual java.lang.reflect.Field.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifne 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 941
      StackMap locals:
      StackMap stack:
            aload 2 /* field */
            areturn
        end local 2 // java.lang.reflect.Field field
        end local 1 // java.lang.Class speciesCode
        end local 0 // java.lang.invoke.ClassSpecializer$Factory this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Ljava/lang/invoke/ClassSpecializer$Factory;
            0    4     1  speciesCode  Ljava/lang/Class<+TT;>;
            1    4     2        field  Ljava/lang/reflect/Field;
    Signature: (Ljava/lang/Class<+TT;>;)Ljava/lang/reflect/Field;
    MethodParameters:
             Name  Flags
      speciesCode  

  private S readSpeciesDataFromCode(java.lang.Class<? extends T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/ClassSpecializer$SpeciesData;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // java.lang.invoke.ClassSpecializer$Factory this
        start local 1 // java.lang.Class speciesCode
         0: .line 946
            getstatic java.lang.invoke.MethodHandles$Lookup.IMPL_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
            iconst_2
            aload 1 /* speciesCode */
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.this$0:Ljava/lang/invoke/ClassSpecializer;
            getfield java.lang.invoke.ClassSpecializer.sdFieldName:Ljava/lang/String;
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.this$0:Ljava/lang/invoke/ClassSpecializer;
            getfield java.lang.invoke.ClassSpecializer.metaType:Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            astore 2 /* sdField */
        start local 2 // java.lang.invoke.MemberName sdField
         1: .line 947
            aload 2 /* sdField */
            invokestatic java.lang.invoke.MethodHandleNatives.staticFieldBase:(Ljava/lang/invoke/MemberName;)Ljava/lang/Object;
            astore 3 /* base */
        start local 3 // java.lang.Object base
         2: .line 948
            aload 2 /* sdField */
            invokestatic java.lang.invoke.MethodHandleNatives.staticFieldOffset:(Ljava/lang/invoke/MemberName;)J
            lstore 4 /* offset */
        start local 4 // long offset
         3: .line 949
            getstatic java.lang.invoke.MethodHandleStatics.UNSAFE:Ljdk/internal/misc/Unsafe;
            invokevirtual jdk.internal.misc.Unsafe.loadFence:()V
         4: .line 950
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.this$0:Ljava/lang/invoke/ClassSpecializer;
            getfield java.lang.invoke.ClassSpecializer.metaType:Ljava/lang/Class;
            getstatic java.lang.invoke.MethodHandleStatics.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 3 /* base */
            lload 4 /* offset */
            invokevirtual jdk.internal.misc.Unsafe.getObject:(Ljava/lang/Object;J)Ljava/lang/Object;
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.invoke.ClassSpecializer$SpeciesData
         5: areturn
        end local 4 // long offset
        end local 3 // java.lang.Object base
        end local 2 // java.lang.invoke.MemberName sdField
         6: .line 951
      StackMap locals:
      StackMap stack: java.lang.Error
            astore 2 /* err */
        start local 2 // java.lang.Error err
         7: .line 952
            aload 2 /* err */
            athrow
        end local 2 // java.lang.Error err
         8: .line 953
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* ex */
        start local 2 // java.lang.Exception ex
         9: .line 954
            new java.lang.StringBuilder
            dup
            ldc "Failed to load speciesData from speciesCode: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* speciesCode */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* ex */
            invokestatic java.lang.invoke.MethodHandleStatics.newInternalError:(Ljava/lang/String;Ljava/lang/Exception;)Ljava/lang/InternalError;
            athrow
        end local 2 // java.lang.Exception ex
        10: .line 955
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
        11: .line 956
            aload 2 /* t */
            invokestatic java.lang.invoke.MethodHandleStatics.uncaughtException:(Ljava/lang/Throwable;)Ljava/lang/Error;
            athrow
        end local 2 // java.lang.Throwable t
        end local 1 // java.lang.Class speciesCode
        end local 0 // java.lang.invoke.ClassSpecializer$Factory this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Ljava/lang/invoke/ClassSpecializer$Factory;
            0   12     1  speciesCode  Ljava/lang/Class<+TT;>;
            1    6     2      sdField  Ljava/lang/invoke/MemberName;
            2    6     3         base  Ljava/lang/Object;
            3    6     4       offset  J
            7    8     2          err  Ljava/lang/Error;
            9   10     2           ex  Ljava/lang/Exception;
           11   12     2            t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     5       6  Class java.lang.Error
           0     5       8  Class java.lang.Exception
           0     5      10  Class java.lang.Throwable
    Signature: (Ljava/lang/Class<+TT;>;)TS;
    MethodParameters:
             Name  Flags
      speciesCode  

  protected S loadSpeciesDataFromCode(java.lang.Class<? extends T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/ClassSpecializer$SpeciesData;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.invoke.ClassSpecializer$Factory this
        start local 1 // java.lang.Class speciesCode
         0: .line 961
            aload 1 /* speciesCode */
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.this$0:Ljava/lang/invoke/ClassSpecializer;
            invokevirtual java.lang.invoke.ClassSpecializer.topClass:()Ljava/lang/Class;
            if_acmpne 2
         1: .line 962
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.this$0:Ljava/lang/invoke/ClassSpecializer;
            getfield java.lang.invoke.ClassSpecializer.topSpecies:Ljava/lang/invoke/ClassSpecializer$SpeciesData;
            areturn
         2: .line 964
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* speciesCode */
            invokevirtual java.lang.invoke.ClassSpecializer$Factory.readSpeciesDataFromCode:(Ljava/lang/Class;)Ljava/lang/invoke/ClassSpecializer$SpeciesData;
            astore 2 /* result */
        start local 2 // java.lang.invoke.ClassSpecializer$SpeciesData result
         3: .line 965
            aload 2 /* result */
            invokevirtual java.lang.invoke.ClassSpecializer$SpeciesData.outer:()Ljava/lang/invoke/ClassSpecializer;
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.this$0:Ljava/lang/invoke/ClassSpecializer;
            if_acmpeq 5
         4: .line 966
            ldc "wrong class"
            invokestatic java.lang.invoke.MethodHandleStatics.newInternalError:(Ljava/lang/String;)Ljava/lang/InternalError;
            athrow
         5: .line 968
      StackMap locals: java.lang.invoke.ClassSpecializer$SpeciesData
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 2 // java.lang.invoke.ClassSpecializer$SpeciesData result
        end local 1 // java.lang.Class speciesCode
        end local 0 // java.lang.invoke.ClassSpecializer$Factory this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Ljava/lang/invoke/ClassSpecializer$Factory;
            0    6     1  speciesCode  Ljava/lang/Class<+TT;>;
            3    6     2       result  TS;
    Signature: (Ljava/lang/Class<+TT;>;)TS;
    MethodParameters:
             Name  Flags
      speciesCode  

  protected void linkCodeToSpeciesData(java.lang.Class<? extends T>, java.lang.invoke.ClassSpecializer<T, K, S>.SpeciesData, );
    descriptor: (Ljava/lang/Class;Ljava/lang/invoke/ClassSpecializer$SpeciesData;Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // java.lang.invoke.ClassSpecializer$Factory this
        start local 1 // java.lang.Class speciesCode
        start local 2 // java.lang.invoke.ClassSpecializer$SpeciesData speciesData
        start local 3 // boolean salvage
         0: .line 973
            getstatic java.lang.invoke.ClassSpecializer$Factory.$assertionsDisabled:Z
            ifne 3
            aload 0 /* this */
            aload 1 /* speciesCode */
            invokevirtual java.lang.invoke.ClassSpecializer$Factory.readSpeciesDataFromCode:(Ljava/lang/Class;)Ljava/lang/invoke/ClassSpecializer$SpeciesData;
            ifnull 3
         1: .line 974
            iload 3 /* salvage */
            ifeq 2
            aload 0 /* this */
            aload 1 /* speciesCode */
            invokevirtual java.lang.invoke.ClassSpecializer$Factory.readSpeciesDataFromCode:(Ljava/lang/Class;)Ljava/lang/invoke/ClassSpecializer$SpeciesData;
            aload 2 /* speciesData */
            invokevirtual java.lang.invoke.ClassSpecializer$SpeciesData.equals:(Ljava/lang/Object;)Z
            ifne 3
      StackMap locals:
      StackMap stack:
         2: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 976
      StackMap locals:
      StackMap stack:
            getstatic java.lang.invoke.MethodHandles$Lookup.IMPL_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
            iconst_4
            aload 1 /* speciesCode */
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.this$0:Ljava/lang/invoke/ClassSpecializer;
            getfield java.lang.invoke.ClassSpecializer.sdFieldName:Ljava/lang/String;
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.this$0:Ljava/lang/invoke/ClassSpecializer;
            getfield java.lang.invoke.ClassSpecializer.metaType:Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodHandles$Lookup.resolveOrFail:(BLjava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/MemberName;
            astore 4 /* sdField */
        start local 4 // java.lang.invoke.MemberName sdField
         4: .line 977
            aload 4 /* sdField */
            invokestatic java.lang.invoke.MethodHandleNatives.staticFieldBase:(Ljava/lang/invoke/MemberName;)Ljava/lang/Object;
            astore 5 /* base */
        start local 5 // java.lang.Object base
         5: .line 978
            aload 4 /* sdField */
            invokestatic java.lang.invoke.MethodHandleNatives.staticFieldOffset:(Ljava/lang/invoke/MemberName;)J
            lstore 6 /* offset */
        start local 6 // long offset
         6: .line 979
            getstatic java.lang.invoke.MethodHandleStatics.UNSAFE:Ljdk/internal/misc/Unsafe;
            invokevirtual jdk.internal.misc.Unsafe.storeFence:()V
         7: .line 980
            getstatic java.lang.invoke.MethodHandleStatics.UNSAFE:Ljdk/internal/misc/Unsafe;
            aload 5 /* base */
            lload 6 /* offset */
            aload 2 /* speciesData */
            invokevirtual jdk.internal.misc.Unsafe.putObject:(Ljava/lang/Object;JLjava/lang/Object;)V
         8: .line 981
            getstatic java.lang.invoke.MethodHandleStatics.UNSAFE:Ljdk/internal/misc/Unsafe;
            invokevirtual jdk.internal.misc.Unsafe.storeFence:()V
        end local 6 // long offset
        end local 5 // java.lang.Object base
        end local 4 // java.lang.invoke.MemberName sdField
         9: .line 982
            goto 16
      StackMap locals:
      StackMap stack: java.lang.Error
        10: astore 4 /* err */
        start local 4 // java.lang.Error err
        11: .line 983
            aload 4 /* err */
            athrow
        end local 4 // java.lang.Error err
        12: .line 984
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 4 /* ex */
        start local 4 // java.lang.Exception ex
        13: .line 985
            new java.lang.StringBuilder
            dup
            ldc "Failed to link speciesData to speciesCode: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* speciesCode */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 4 /* ex */
            invokestatic java.lang.invoke.MethodHandleStatics.newInternalError:(Ljava/lang/String;Ljava/lang/Exception;)Ljava/lang/InternalError;
            athrow
        end local 4 // java.lang.Exception ex
        14: .line 986
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4 /* t */
        start local 4 // java.lang.Throwable t
        15: .line 987
            aload 4 /* t */
            invokestatic java.lang.invoke.MethodHandleStatics.uncaughtException:(Ljava/lang/Throwable;)Ljava/lang/Error;
            athrow
        end local 4 // java.lang.Throwable t
        16: .line 989
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean salvage
        end local 2 // java.lang.invoke.ClassSpecializer$SpeciesData speciesData
        end local 1 // java.lang.Class speciesCode
        end local 0 // java.lang.invoke.ClassSpecializer$Factory this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   17     0         this  Ljava/lang/invoke/ClassSpecializer$Factory;
            0   17     1  speciesCode  Ljava/lang/Class<+TT;>;
            0   17     2  speciesData  Ljava/lang/invoke/ClassSpecializer<TT;TK;TS;>.SpeciesData;
            0   17     3      salvage  Z
            4    9     4      sdField  Ljava/lang/invoke/MemberName;
            5    9     5         base  Ljava/lang/Object;
            6    9     6       offset  J
           11   12     4          err  Ljava/lang/Error;
           13   14     4           ex  Ljava/lang/Exception;
           15   16     4            t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     9      10  Class java.lang.Error
           0     9      12  Class java.lang.Exception
           0     9      14  Class java.lang.Throwable
    Signature: (Ljava/lang/Class<+TT;>;Ljava/lang/invoke/ClassSpecializer<TT;TK;TS;>.SpeciesData;Z)V
    MethodParameters:
             Name  Flags
      speciesCode  
      speciesData  
      salvage      

  protected java.lang.String chooseFieldName(java.lang.Class<?>, int);
    descriptor: (Ljava/lang/Class;I)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // java.lang.invoke.ClassSpecializer$Factory this
        start local 1 // java.lang.Class type
        start local 2 // int index
         0: .line 998
            aload 1 /* type */
            invokestatic java.lang.invoke.LambdaForm$BasicType.basicType:(Ljava/lang/Class;)Ljava/lang/invoke/LambdaForm$BasicType;
            astore 3 /* bt */
        start local 3 // java.lang.invoke.LambdaForm$BasicType bt
         1: .line 999
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 3 /* bt */
            invokevirtual java.lang.invoke.LambdaForm$BasicType.basicTypeChar:()C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            iload 2 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.invoke.LambdaForm$BasicType bt
        end local 2 // int index
        end local 1 // java.lang.Class type
        end local 0 // java.lang.invoke.ClassSpecializer$Factory this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljava/lang/invoke/ClassSpecializer$Factory;
            0    2     1   type  Ljava/lang/Class<*>;
            0    2     2  index  I
            1    2     3     bt  Ljava/lang/invoke/LambdaForm$BasicType;
    Signature: (Ljava/lang/Class<*>;I)Ljava/lang/String;
    MethodParameters:
       Name  Flags
      type   
      index  

  java.lang.invoke.MethodHandle findFactory(java.lang.Class<? extends T>, java.util.List<java.lang.Class<?>>);
    descriptor: (Ljava/lang/Class;Ljava/util/List;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // java.lang.invoke.ClassSpecializer$Factory this
        start local 1 // java.lang.Class speciesCode
        start local 2 // java.util.List types
         0: .line 1003
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.this$0:Ljava/lang/invoke/ClassSpecializer;
            invokevirtual java.lang.invoke.ClassSpecializer.baseConstructorType:()Ljava/lang/invoke/MethodType;
            aload 0 /* this */
            getfield java.lang.invoke.ClassSpecializer$Factory.this$0:Ljava/lang/invoke/ClassSpecializer;
            invokevirtual java.lang.invoke.ClassSpecializer.topClass:()Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            aload 2 /* types */
            invokevirtual java.lang.invoke.MethodType.appendParameterTypes:(Ljava/util/List;)Ljava/lang/invoke/MethodType;
            astore 3 /* type */
        start local 3 // java.lang.invoke.MethodType type
         1: .line 1005
            getstatic java.lang.invoke.MethodHandles$Lookup.IMPL_LOOKUP:Ljava/lang/invoke/MethodHandles$Lookup;
            aload 1 /* speciesCode */
            ldc "make"
            aload 3 /* type */
            invokevirtual java.lang.invoke.MethodHandles$Lookup.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
         2: areturn
         3: .line 1006
      StackMap locals: java.lang.invoke.ClassSpecializer$Factory java.lang.Class java.util.List java.lang.invoke.MethodType
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
         4: .line 1007
            aload 4 /* e */
            invokestatic java.lang.invoke.MethodHandleStatics.newInternalError:(Ljava/lang/Exception;)Ljava/lang/InternalError;
            athrow
        end local 4 // java.lang.Exception e
        end local 3 // java.lang.invoke.MethodType type
        end local 2 // java.util.List types
        end local 1 // java.lang.Class speciesCode
        end local 0 // java.lang.invoke.ClassSpecializer$Factory this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Ljava/lang/invoke/ClassSpecializer$Factory;
            0    5     1  speciesCode  Ljava/lang/Class<+TT;>;
            0    5     2        types  Ljava/util/List<Ljava/lang/Class<*>;>;
            1    5     3         type  Ljava/lang/invoke/MethodType;
            4    5     4            e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.NoSuchMethodException
           1     2       3  Class java.lang.IllegalAccessException
           1     2       3  Class java.lang.IllegalArgumentException
           1     2       3  Class java.lang.TypeNotPresentException
    Signature: (Ljava/lang/Class<+TT;>;Ljava/util/List<Ljava/lang/Class<*>;>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
             Name  Flags
      speciesCode  
      types        

  static java.lang.invoke.ClassSpecializer access$0(java.lang.invoke.ClassSpecializer$Factory);
    descriptor: (Ljava/lang/invoke/ClassSpecializer$Factory;)Ljava/lang/invoke/ClassSpecializer;
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 459
            aload 0
            getfield java.lang.invoke.ClassSpecializer$Factory.this$0:Ljava/lang/invoke/ClassSpecializer;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "ClassSpecializer.java"
NestHost: java.lang.invoke.ClassSpecializer
InnerClasses:
  public Factory = java.lang.invoke.ClassSpecializer$Factory of java.lang.invoke.ClassSpecializer
  java.lang.invoke.ClassSpecializer$Factory$1
  Var = java.lang.invoke.ClassSpecializer$Factory$1Var
  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
  NamedFunction = java.lang.invoke.LambdaForm$NamedFunction of java.lang.invoke.LambdaForm
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles