public final class jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin implements jdk.tools.jlink.plugin.Plugin
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin
  super_class: java.lang.Object
{
  private static final java.lang.String NAME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "generate-jli-classes"

  private static final java.lang.String DESCRIPTION;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String DEFAULT_TRACE_FILE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "default_jli_trace.txt"

  private static final java.lang.String DIRECT_HOLDER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java/lang/invoke/DirectMethodHandle$Holder"

  private static final java.lang.String DMH_INVOKE_VIRTUAL;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "invokeVirtual"

  private static final java.lang.String DMH_INVOKE_STATIC;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "invokeStatic"

  private static final java.lang.String DMH_INVOKE_SPECIAL;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "invokeSpecial"

  private static final java.lang.String DMH_NEW_INVOKE_SPECIAL;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "newInvokeSpecial"

  private static final java.lang.String DMH_INVOKE_INTERFACE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "invokeInterface"

  private static final java.lang.String DMH_INVOKE_STATIC_INIT;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "invokeStaticInit"

  private static final java.lang.String DELEGATING_HOLDER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java/lang/invoke/DelegatingMethodHandle$Holder"

  private static final java.lang.String BASIC_FORMS_HOLDER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java/lang/invoke/LambdaForm$Holder"

  private static final java.lang.String INVOKERS_HOLDER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "java/lang/invoke/Invokers$Holder"

  private static final jdk.internal.misc.JavaLangInvokeAccess JLIA;
    descriptor: Ljdk/internal/misc/JavaLangInvokeAccess;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  java.util.Set<java.lang.String> speciesTypes;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  java.util.Set<java.lang.String> invokerTypes;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  java.util.Map<java.lang.String, java.util.Set<java.lang.String>> dmhMethods;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;

  java.lang.String mainArgument;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  private static final java.util.Map<java.lang.String, java.lang.Integer> DMH_METHOD_TYPE_MAP;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;

  private static final java.lang.String DIRECT_METHOD_HOLDER_ENTRY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "/java.base/java/lang/invoke/DirectMethodHandle$Holder.class"

  private static final java.lang.String DELEGATING_METHOD_HOLDER_ENTRY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "/java.base/java/lang/invoke/DelegatingMethodHandle$Holder.class"

  private static final java.lang.String BASIC_FORMS_HOLDER_ENTRY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "/java.base/java/lang/invoke/LambdaForm$Holder.class"

  private static final java.lang.String INVOKERS_HOLDER_ENTRY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "/java.base/java/lang/invoke/Invokers$Holder.class"

  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=12, locals=0, args_size=0
         0: .line 54
            ldc Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.$assertionsDisabled:Z
         3: .line 58
            ldc "generate-jli-classes"
            invokestatic jdk.tools.jlink.internal.plugins.PluginsResourceBundle.getDescription:(Ljava/lang/String;)Ljava/lang/String;
            putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DESCRIPTION:Ljava/lang/String;
         4: .line 75
            invokestatic jdk.internal.misc.SharedSecrets.getJavaLangInvokeAccess:()Ljdk/internal/misc/JavaLangInvokeAccess;
         5: .line 74
            putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
         6: .line 157
            ldc "invokeVirtual"
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
         7: .line 158
            ldc "invokeStatic"
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
         8: .line 159
            ldc "invokeSpecial"
            iconst_2
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
         9: .line 160
            ldc "newInvokeSpecial"
            iconst_3
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        10: .line 161
            ldc "invokeInterface"
            iconst_4
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        11: .line 162
            ldc "invokeStaticInit"
            iconst_5
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        12: .line 156
            invokestatic java.util.Map.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
        13: .line 155
            putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_METHOD_TYPE_MAP:Ljava/util/Map;
        14: .line 411
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
         0: .line 85
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 77
            aload 0 /* this */
            invokestatic java.util.Set.of:()Ljava/util/Set;
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
         2: .line 79
            aload 0 /* this */
            invokestatic java.util.Set.of:()Ljava/util/Set;
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
         3: .line 81
            aload 0 /* this */
            invokestatic java.util.Map.of:()Ljava/util/Map;
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
         4: .line 86
            return
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
         0: .line 90
            ldc "generate-jli-classes"
            areturn
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;

  public java.lang.String getDescription();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
         0: .line 95
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DESCRIPTION:Ljava/lang/String;
            areturn
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;

  public java.util.Set<jdk.tools.jlink.plugin.Plugin$State> getState();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
         0: .line 100
            getstatic jdk.tools.jlink.plugin.Plugin$State.AUTO_ENABLED:Ljdk/tools/jlink/plugin/Plugin$State;
            getstatic jdk.tools.jlink.plugin.Plugin$State.FUNCTIONAL:Ljdk/tools/jlink/plugin/Plugin$State;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;
            areturn
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
    Signature: ()Ljava/util/Set<Ljdk/tools/jlink/plugin/Plugin$State;>;

  public boolean hasArguments();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
         0: .line 105
            iconst_1
            ireturn
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;

  public java.lang.String getArgumentsDescription();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
         0: .line 110
            ldc "generate-jli-classes"
            iconst_0
            anewarray java.lang.Object
            invokestatic jdk.tools.jlink.internal.plugins.PluginsResourceBundle.getArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;

  public static java.util.Set<java.lang.String> defaultSpecies();
    descriptor: ()Ljava/util/Set;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 121
            bipush 27
            anewarray java.lang.String
            dup
            iconst_0
            ldc "LL"
            aastore
            dup
            iconst_1
            ldc "L3"
            aastore
            dup
            iconst_2
            ldc "L4"
            aastore
            dup
            iconst_3
            ldc "L5"
            aastore
            dup
            iconst_4
            ldc "L6"
            aastore
            dup
            iconst_5
            ldc "L7"
            aastore
            dup
            bipush 6
            ldc "L7I"
            aastore
            dup
            bipush 7
         1: .line 122
            ldc "L7II"
            aastore
            dup
            bipush 8
            ldc "L7IIL"
            aastore
            dup
            bipush 9
            ldc "L8"
            aastore
            dup
            bipush 10
            ldc "L9"
            aastore
            dup
            bipush 11
            ldc "L10"
            aastore
            dup
            bipush 12
            ldc "L10I"
            aastore
            dup
            bipush 13
            ldc "L10II"
            aastore
            dup
            bipush 14
            ldc "L10IIL"
            aastore
            dup
            bipush 15
         2: .line 123
            ldc "L11"
            aastore
            dup
            bipush 16
            ldc "L12"
            aastore
            dup
            bipush 17
            ldc "L13"
            aastore
            dup
            bipush 18
            ldc "LI"
            aastore
            dup
            bipush 19
            ldc "D"
            aastore
            dup
            bipush 20
            ldc "L3I"
            aastore
            dup
            bipush 21
            ldc "LIL"
            aastore
            dup
            bipush 22
            ldc "LLI"
            aastore
            dup
            bipush 23
            ldc "LLIL"
            aastore
            dup
            bipush 24
         3: .line 124
            ldc "LILL"
            aastore
            dup
            bipush 25
            ldc "I"
            aastore
            dup
            bipush 26
            ldc "LLILL"
            aastore
         4: .line 121
            invokestatic java.util.Set.of:([Ljava/lang/Object;)Ljava/util/Set;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  private static java.util.Set<java.lang.String> defaultInvokers();
    descriptor: ()Ljava/util/Set;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 131
            ldc "LL_L"
            ldc "LL_I"
            ldc "LILL_I"
            ldc "L6_L"
            invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  private static java.util.Map<java.lang.String, java.util.Set<java.lang.String>> defaultDMHMethods();
    descriptor: ()Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=9, locals=0, args_size=0
         0: .line 139
            ldc "invokeVirtual"
            ldc "L_L"
            ldc "LL_L"
            ldc "LLI_I"
            ldc "L3_V"
            invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
         1: .line 140
            ldc "invokeSpecial"
            bipush 30
            anewarray java.lang.String
            dup
            iconst_0
            ldc "LL_I"
            aastore
            dup
            iconst_1
            ldc "LL_L"
            aastore
            dup
            iconst_2
            ldc "LLF_L"
            aastore
            dup
            iconst_3
            ldc "LLD_L"
            aastore
            dup
            iconst_4
            ldc "L3_L"
            aastore
            dup
            iconst_5
         2: .line 141
            ldc "L4_L"
            aastore
            dup
            bipush 6
            ldc "L5_L"
            aastore
            dup
            bipush 7
            ldc "L6_L"
            aastore
            dup
            bipush 8
            ldc "L7_L"
            aastore
            dup
            bipush 9
            ldc "L8_L"
            aastore
            dup
            bipush 10
            ldc "LLI_I"
            aastore
            dup
            bipush 11
            ldc "LLI_L"
            aastore
            dup
            bipush 12
         3: .line 142
            ldc "LLIL_I"
            aastore
            dup
            bipush 13
            ldc "LLII_I"
            aastore
            dup
            bipush 14
            ldc "LLII_L"
            aastore
            dup
            bipush 15
            ldc "L3I_L"
            aastore
            dup
            bipush 16
            ldc "L3I_I"
            aastore
            dup
            bipush 17
            ldc "LLILI_I"
            aastore
            dup
            bipush 18
         4: .line 143
            ldc "LLIIL_L"
            aastore
            dup
            bipush 19
            ldc "LLIILL_L"
            aastore
            dup
            bipush 20
            ldc "LLIILL_I"
            aastore
            dup
            bipush 21
            ldc "LLIIL_I"
            aastore
            dup
            bipush 22
            ldc "LLILIL_I"
            aastore
            dup
            bipush 23
         5: .line 144
            ldc "LLILILL_I"
            aastore
            dup
            bipush 24
            ldc "LLILII_I"
            aastore
            dup
            bipush 25
            ldc "LLI3_I"
            aastore
            dup
            bipush 26
            ldc "LLI3L_I"
            aastore
            dup
            bipush 27
            ldc "LLI3LL_I"
            aastore
            dup
            bipush 28
         6: .line 145
            ldc "LLI3_L"
            aastore
            dup
            bipush 29
            ldc "LLI4_I"
            aastore
         7: .line 140
            invokestatic java.util.Set.of:([Ljava/lang/Object;)Ljava/util/Set;
         8: .line 146
            ldc "invokeStatic"
            bipush 31
            anewarray java.lang.String
            dup
            iconst_0
            ldc "LII_I"
            aastore
            dup
            iconst_1
            ldc "LIL_I"
            aastore
            dup
            iconst_2
            ldc "LILIL_I"
            aastore
            dup
            iconst_3
            ldc "LILII_I"
            aastore
            dup
            iconst_4
         9: .line 147
            ldc "L_I"
            aastore
            dup
            iconst_5
            ldc "L_L"
            aastore
            dup
            bipush 6
            ldc "L_V"
            aastore
            dup
            bipush 7
            ldc "LD_L"
            aastore
            dup
            bipush 8
            ldc "LF_L"
            aastore
            dup
            bipush 9
            ldc "LI_I"
            aastore
            dup
            bipush 10
            ldc "LII_L"
            aastore
            dup
            bipush 11
            ldc "LLI_L"
            aastore
            dup
            bipush 12
        10: .line 148
            ldc "LL_V"
            aastore
            dup
            bipush 13
            ldc "LL_L"
            aastore
            dup
            bipush 14
            ldc "L3_L"
            aastore
            dup
            bipush 15
            ldc "L4_L"
            aastore
            dup
            bipush 16
            ldc "L5_L"
            aastore
            dup
            bipush 17
            ldc "L6_L"
            aastore
            dup
            bipush 18
            ldc "L7_L"
            aastore
            dup
            bipush 19
        11: .line 149
            ldc "L8_L"
            aastore
            dup
            bipush 20
            ldc "L9_L"
            aastore
            dup
            bipush 21
            ldc "L10_L"
            aastore
            dup
            bipush 22
            ldc "L10I_L"
            aastore
            dup
            bipush 23
            ldc "L10II_L"
            aastore
            dup
            bipush 24
            ldc "L10IIL_L"
            aastore
            dup
            bipush 25
        12: .line 150
            ldc "L11_L"
            aastore
            dup
            bipush 26
            ldc "L12_L"
            aastore
            dup
            bipush 27
            ldc "L13_L"
            aastore
            dup
            bipush 28
            ldc "L14_L"
            aastore
            dup
            bipush 29
            ldc "L14I_L"
            aastore
            dup
            bipush 30
            ldc "L14II_L"
            aastore
        13: .line 146
            invokestatic java.util.Set.of:([Ljava/lang/Object;)Ljava/util/Set;
        14: .line 138
            invokestatic java.util.Map.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;

  public void configure(java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.util.Map config
         0: .line 167
            aload 0 /* this */
            aload 1 /* config */
            ldc "generate-jli-classes"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.mainArgument:Ljava/lang/String;
         1: .line 168
            return
        end local 1 // java.util.Map config
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    2     1  config  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
    MethodParameters:
        Name  Flags
      config  

  public void initialize(jdk.tools.jlink.plugin.ResourcePool);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePool;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // jdk.tools.jlink.plugin.ResourcePool in
         0: .line 172
            aload 0 /* this */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.defaultSpecies:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         1: .line 173
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  jdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin.lambda$0(Ljava/lang/String;)Ljava/lang/String; (6)
                  (Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         2: .line 174
            invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Set
         3: .line 172
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
         4: .line 176
            aload 0 /* this */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.defaultInvokers:()Ljava/util/Set;
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
         5: .line 177
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodTypes:(Ljava/util/Set;)V
         6: .line 179
            aload 0 /* this */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.defaultDMHMethods:()Ljava/util/Map;
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
         7: .line 180
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 10
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePool top java.util.Iterator
      StackMap stack:
         8: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Set
            astore 2 /* dmhMethodTypes */
        start local 2 // java.util.Set dmhMethodTypes
         9: .line 181
            aload 0 /* this */
            aload 2 /* dmhMethodTypes */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodTypes:(Ljava/util/Set;)V
        end local 2 // java.util.Set dmhMethodTypes
        10: .line 180
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        11: .line 186
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.mainArgument:Ljava/lang/String;
            ifnull 12
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.mainArgument:Ljava/lang/String;
            ldc "@"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 30
        12: .line 187
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePool
      StackMap stack:
            aconst_null
            astore 2
            aconst_null
            astore 3
        13: .line 188
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc "default_jli_trace.txt"
            invokevirtual java.lang.Class.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
        14: .line 187
            astore 4 /* traceFile */
        start local 4 // java.io.InputStream traceFile
        15: .line 189
            aload 4 /* traceFile */
            ifnull 22
        16: .line 190
            aload 0 /* this */
        17: .line 191
            new java.io.BufferedReader
            dup
        18: .line 192
            new java.io.InputStreamReader
            dup
            aload 4 /* traceFile */
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
        19: .line 191
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
        20: .line 192
            invokevirtual java.io.BufferedReader.lines:()Ljava/util/stream/Stream;
        21: .line 190
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.readTraceConfig:(Ljava/util/stream/Stream;)V
        22: .line 194
      StackMap locals: java.lang.Throwable java.lang.Throwable java.io.InputStream
      StackMap stack:
            aload 4 /* traceFile */
            ifnull 33
            aload 4 /* traceFile */
            invokevirtual java.io.InputStream.close:()V
            goto 33
      StackMap locals:
      StackMap stack: java.lang.Throwable
        23: astore 2
            aload 4 /* traceFile */
            ifnull 24
            aload 4 /* traceFile */
            invokevirtual java.io.InputStream.close:()V
        end local 4 // java.io.InputStream traceFile
      StackMap locals:
      StackMap stack:
        24: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        25: astore 3
            aload 2
            ifnonnull 26
            aload 3
            astore 2
            goto 27
      StackMap locals:
      StackMap stack:
        26: aload 2
            aload 3
            if_acmpeq 27
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        27: aload 2
            athrow
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePool
      StackMap stack: java.lang.Exception
        28: astore 2 /* e */
        start local 2 // java.lang.Exception e
        29: .line 195
            new jdk.tools.jlink.plugin.PluginException
            dup
            ldc "Couldn't read default_jli_trace.txt"
            aload 2 /* e */
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Exception e
        30: .line 198
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.mainArgument:Ljava/lang/String;
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 2 /* file */
        start local 2 // java.io.File file
        31: .line 199
            aload 2 /* file */
            invokevirtual java.io.File.exists:()Z
            ifeq 33
        32: .line 200
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* file */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.fileLines:(Ljava/io/File;)Ljava/util/stream/Stream;
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.readTraceConfig:(Ljava/util/stream/Stream;)V
        end local 2 // java.io.File file
        33: .line 203
      StackMap locals:
      StackMap stack:
            return
        end local 1 // jdk.tools.jlink.plugin.ResourcePool in
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   34     0            this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   34     1              in  Ljdk/tools/jlink/plugin/ResourcePool;
            9   10     2  dmhMethodTypes  Ljava/util/Set<Ljava/lang/String;>;
           15   24     4       traceFile  Ljava/io/InputStream;
           29   30     2               e  Ljava/lang/Exception;
           31   33     2            file  Ljava/io/File;
      Exception table:
        from    to  target  type
          15    22      23  any
          13    25      25  any
          12    28      28  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      in    

  private void readTraceConfig(java.util.stream.Stream<java.lang.String>);
    descriptor: (Ljava/util/stream/Stream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.util.stream.Stream lines
         0: .line 209
            aload 0 /* this */
            new java.util.TreeSet
            dup
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
            invokespecial java.util.TreeSet.<init>:(Ljava/util/Collection;)V
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
         1: .line 210
            aload 0 /* this */
            new java.util.TreeSet
            dup
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
            invokespecial java.util.TreeSet.<init>:(Ljava/util/Collection;)V
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
         2: .line 211
            new java.util.TreeMap
            dup
            invokespecial java.util.TreeMap.<init>:()V
            astore 2 /* newDMHMethods */
        start local 2 // java.util.TreeMap newDMHMethods
         3: .line 212
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 6
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin java.util.stream.Stream java.util.TreeMap top java.util.Iterator
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 3 /* entry */
        start local 3 // java.util.Map$Entry entry
         5: .line 213
            aload 2 /* newDMHMethods */
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            new java.util.TreeSet
            dup
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Collection
            invokespecial java.util.TreeSet.<init>:(Ljava/util/Collection;)V
            invokevirtual java.util.TreeMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // java.util.Map$Entry entry
         6: .line 212
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 215
            aload 0 /* this */
            aload 2 /* newDMHMethods */
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
         8: .line 216
            aload 1 /* lines */
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  jdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin.lambda$1(Ljava/lang/String;)[Ljava/lang/String; (6)
                  (Ljava/lang/String;)[Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         9: .line 217
            aload 0 /* this */
            invokedynamic accept(Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  jdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin.lambda$2([Ljava/lang/String;)V (7)
                  ([Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        10: .line 245
            return
        end local 2 // java.util.TreeMap newDMHMethods
        end local 1 // java.util.stream.Stream lines
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   11     1          lines  Ljava/util/stream/Stream<Ljava/lang/String;>;
            3   11     2  newDMHMethods  Ljava/util/TreeMap<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
            5    6     3          entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
    Signature: (Ljava/util/stream/Stream<Ljava/lang/String;>;)V
    MethodParameters:
       Name  Flags
      lines  

  private void addDMHMethodType(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.lang.String dmh
        start local 2 // java.lang.String methodType
         0: .line 248
            aload 0 /* this */
            aload 2 /* methodType */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodType:(Ljava/lang/String;)V
         1: .line 249
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
            aload 1 /* dmh */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 3 /* methodTypes */
        start local 3 // java.util.Set methodTypes
         2: .line 250
            aload 3 /* methodTypes */
            ifnonnull 5
         3: .line 251
            new java.util.TreeSet
            dup
            invokespecial java.util.TreeSet.<init>:()V
            astore 3 /* methodTypes */
         4: .line 252
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
            aload 1 /* dmh */
            aload 3 /* methodTypes */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 254
      StackMap locals: java.util.Set
      StackMap stack:
            aload 3 /* methodTypes */
            aload 2 /* methodType */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         6: .line 255
            return
        end local 3 // java.util.Set methodTypes
        end local 2 // java.lang.String methodType
        end local 1 // java.lang.String dmh
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    7     1          dmh  Ljava/lang/String;
            0    7     2   methodType  Ljava/lang/String;
            2    7     3  methodTypes  Ljava/util/Set<Ljava/lang/String;>;
    MethodParameters:
            Name  Flags
      dmh         
      methodType  

  private java.util.stream.Stream<java.lang.String> fileLines(java.io.File);
    descriptor: (Ljava/io/File;)Ljava/util/stream/Stream;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.io.File file
         0: .line 259
            aload 1 /* file */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            invokestatic java.nio.file.Files.lines:(Ljava/nio/file/Path;)Ljava/util/stream/Stream;
         1: areturn
         2: .line 260
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
         3: .line 261
            new jdk.tools.jlink.plugin.PluginException
            dup
            ldc "Couldn't read file"
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.io.File file
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    4     1  file  Ljava/io/File;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    Signature: (Ljava/io/File;)Ljava/util/stream/Stream<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      file  

  private void validateMethodTypes(java.util.Set<java.lang.String>);
    descriptor: (Ljava/util/Set;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.util.Set dmhMethodTypes
         0: .line 266
            aload 1 /* dmhMethodTypes */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 3
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin java.util.Set top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* type */
        start local 2 // java.lang.String type
         2: .line 267
            aload 0 /* this */
            aload 2 /* type */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodType:(Ljava/lang/String;)V
        end local 2 // java.lang.String type
         3: .line 266
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 269
            return
        end local 1 // java.util.Set dmhMethodTypes
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    5     1  dmhMethodTypes  Ljava/util/Set<Ljava/lang/String;>;
            2    3     2            type  Ljava/lang/String;
    Signature: (Ljava/util/Set<Ljava/lang/String;>;)V
    MethodParameters:
                Name  Flags
      dmhMethodTypes  

  private void validateMethodType(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.lang.String type
         0: .line 272
            aload 1 /* type */
            ldc "_"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 2 /* typeParts */
        start local 2 // java.lang.String[] typeParts
         1: .line 274
            aload 2 /* typeParts */
            arraylength
            iconst_2
            if_icmpne 3
            aload 2 /* typeParts */
            iconst_1
            aaload
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpne 3
         2: .line 275
            ldc "LJIFDV"
            aload 2 /* typeParts */
            iconst_1
            aaload
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpne 6
         3: .line 276
      StackMap locals: java.lang.String[]
      StackMap stack:
            new jdk.tools.jlink.plugin.PluginException
            dup
         4: .line 277
            ldc "Method type signature must be of form [LJIFD]*_[LJIFDV]"
         5: .line 276
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 280
      StackMap locals:
      StackMap stack:
            aload 2 /* typeParts */
            iconst_0
            aaload
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.expandSignature:(Ljava/lang/String;)Ljava/lang/String;
            pop
         7: .line 281
            return
        end local 2 // java.lang.String[] typeParts
        end local 1 // java.lang.String type
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    8     1       type  Ljava/lang/String;
            1    8     2  typeParts  [Ljava/lang/String;
    MethodParameters:
      Name  Flags
      type  

  private static void requireBasicType(char);
    descriptor: (C)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // char c
         0: .line 284
            ldc "LIJFD"
            iload 0 /* c */
            invokevirtual java.lang.String.indexOf:(I)I
            ifge 4
         1: .line 285
            new jdk.tools.jlink.plugin.PluginException
            dup
         2: .line 286
            new java.lang.StringBuilder
            dup
            ldc "Character "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            ldc " must correspond to a basic field type: LIJFD"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 285
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 288
      StackMap locals:
      StackMap stack:
            return
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     c  C
    MethodParameters:
      Name  Flags
      c     

  public jdk.tools.jlink.plugin.ResourcePool transform(jdk.tools.jlink.plugin.ResourcePool, jdk.tools.jlink.plugin.ResourcePoolBuilder);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePool;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)Ljdk/tools/jlink/plugin/ResourcePool;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // jdk.tools.jlink.plugin.ResourcePool in
        start local 2 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
         0: .line 292
            aload 0 /* this */
            aload 1 /* in */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.initialize:(Ljdk/tools/jlink/plugin/ResourcePool;)V
         1: .line 294
            aload 1 /* in */
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  jdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin.lambda$3(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljdk/tools/jlink/plugin/ResourcePoolEntry; (6)
                  (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
         2: .line 304
            aload 2 /* out */
         3: .line 294
            invokeinterface jdk.tools.jlink.plugin.ResourcePool.transformAndCopy:(Ljava/util/function/Function;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
         4: .line 307
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
            aload 0 /* this */
            aload 2 /* out */
            invokedynamic accept(Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  jdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin.lambda$4(Ljdk/tools/jlink/plugin/ResourcePoolBuilder;Ljava/lang/String;)V (7)
                  (Ljava/lang/String;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
         5: .line 310
            aload 0 /* this */
            aload 2 /* out */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.generateHolderClasses:(Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
         6: .line 313
            aload 0 /* this */
            aconst_null
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
         7: .line 314
            aload 0 /* this */
            aconst_null
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
         8: .line 315
            aload 0 /* this */
            aconst_null
            putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
         9: .line 317
            aload 2 /* out */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.build:()Ljdk/tools/jlink/plugin/ResourcePool;
            areturn
        end local 2 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
        end local 1 // jdk.tools.jlink.plugin.ResourcePool in
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   10     1    in  Ljdk/tools/jlink/plugin/ResourcePool;
            0   10     2   out  Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
    MethodParameters:
      Name  Flags
      in    
      out   

  private void generateBMHClass(java.lang.String, jdk.tools.jlink.plugin.ResourcePoolBuilder);
    descriptor: (Ljava/lang/String;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.lang.String types
        start local 2 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
         0: .line 325
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
            aload 1 /* types */
            invokeinterface jdk.internal.misc.JavaLangInvokeAccess.generateConcreteBMHClassBytes:(Ljava/lang/String;)Ljava/util/Map$Entry;
         1: .line 324
            astore 3 /* result */
        start local 3 // java.util.Map$Entry result
         2: .line 326
            aload 3 /* result */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* className */
        start local 4 // java.lang.String className
         3: .line 327
            aload 3 /* result */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast byte[]
            astore 5 /* bytes */
        start local 5 // byte[] bytes
         4: .line 331
            new java.lang.StringBuilder
            dup
            ldc "/java.base/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 332
            aload 5 /* bytes */
         6: .line 330
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            astore 6 /* ndata */
        start local 6 // jdk.tools.jlink.plugin.ResourcePoolEntry ndata
         7: .line 333
            aload 2 /* out */
            aload 6 /* ndata */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
        end local 6 // jdk.tools.jlink.plugin.ResourcePoolEntry ndata
        end local 5 // byte[] bytes
        end local 4 // java.lang.String className
        end local 3 // java.util.Map$Entry result
         8: .line 334
            goto 11
      StackMap locals:
      StackMap stack: java.lang.Exception
         9: astore 3 /* ex */
        start local 3 // java.lang.Exception ex
        10: .line 335
            new jdk.tools.jlink.plugin.PluginException
            dup
            aload 3 /* ex */
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.Exception ex
        11: .line 337
      StackMap locals:
      StackMap stack:
            return
        end local 2 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
        end local 1 // java.lang.String types
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   12     1      types  Ljava/lang/String;
            0   12     2        out  Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
            2    8     3     result  Ljava/util/Map$Entry<Ljava/lang/String;[B>;
            3    8     4  className  Ljava/lang/String;
            4    8     5      bytes  [B
            7    8     6      ndata  Ljdk/tools/jlink/plugin/ResourcePoolEntry;
           10   11     3         ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     8       9  Class java.lang.Exception
    MethodParameters:
       Name  Flags
      types  
      out    

  private void generateHolderClasses(jdk.tools.jlink.plugin.ResourcePoolBuilder);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=12, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
         0: .line 340
            iconst_0
            istore 2 /* count */
        start local 2 // int count
         1: .line 341
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Set
            astore 3 /* entry */
        start local 3 // java.util.Set entry
         3: .line 342
            iload 2 /* count */
            aload 3 /* entry */
            invokeinterface java.util.Set.size:()I
            iadd
            istore 2 /* count */
        end local 3 // java.util.Set entry
         4: .line 341
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 344
            iload 2 /* count */
            anewarray java.lang.invoke.MethodType
            astore 3 /* directMethodTypes */
        start local 3 // java.lang.invoke.MethodType[] directMethodTypes
         6: .line 345
            iload 2 /* count */
            newarray 10
            astore 4 /* dmhTypes */
        start local 4 // int[] dmhTypes
         7: .line 346
            iconst_0
            istore 5 /* index */
        start local 5 // int index
         8: .line 347
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 23
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int top java.util.Iterator
      StackMap stack:
         9: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 6 /* entry */
        start local 6 // java.util.Map$Entry entry
        10: .line 348
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* dmhType */
        start local 8 // java.lang.String dmhType
        11: .line 349
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Set
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 22
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.util.Map$Entry java.util.Iterator java.lang.String top java.util.Iterator
      StackMap stack:
        12: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* type */
        start local 9 // java.lang.String type
        13: .line 352
            aload 9 /* type */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.asMethodType:(Ljava/lang/String;)Ljava/lang/invoke/MethodType;
            astore 11 /* mt */
        start local 11 // java.lang.invoke.MethodType mt
        14: .line 353
            aload 11 /* mt */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_1
            if_icmplt 16
        15: .line 354
            aload 11 /* mt */
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpeq 19
        16: .line 355
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String java.util.Iterator java.lang.invoke.MethodType
      StackMap stack:
            new jdk.tools.jlink.plugin.PluginException
            dup
        17: .line 356
            ldc "DMH type parameter must start with L"
        18: .line 355
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 358
      StackMap locals:
      StackMap stack:
            aload 3 /* directMethodTypes */
            iload 5 /* index */
            aload 11 /* mt */
            iconst_0
            iconst_1
            invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
            aastore
        20: .line 359
            aload 4 /* dmhTypes */
            iload 5 /* index */
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_METHOD_TYPE_MAP:Ljava/util/Map;
            aload 8 /* dmhType */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iastore
        21: .line 360
            iinc 5 /* index */ 1
        end local 11 // java.lang.invoke.MethodType mt
        end local 9 // java.lang.String type
        22: .line 349
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.util.Map$Entry java.util.Iterator java.lang.String top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        end local 8 // java.lang.String dmhType
        end local 6 // java.util.Map$Entry entry
        23: .line 347
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        24: .line 363
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            anewarray java.lang.invoke.MethodType
            astore 6 /* invokerMethodTypes */
        start local 6 // java.lang.invoke.MethodType[] invokerMethodTypes
        25: .line 364
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        26: .line 365
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 39
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int top java.util.Iterator
      StackMap stack:
        27: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* invokerType */
        start local 8 // java.lang.String invokerType
        28: .line 368
            aload 8 /* invokerType */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.asMethodType:(Ljava/lang/String;)Ljava/lang/invoke/MethodType;
            astore 10 /* mt */
        start local 10 // java.lang.invoke.MethodType mt
        29: .line 369
            aload 10 /* mt */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_1
            isub
            istore 11 /* lastParam */
        start local 11 // int lastParam
        30: .line 370
            aload 10 /* mt */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_2
            if_icmplt 33
        31: .line 371
            aload 10 /* mt */
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpne 33
        32: .line 372
            aload 10 /* mt */
            iload 11 /* lastParam */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            ldc Ljava/lang/Object;
            if_acmpeq 36
        33: .line 373
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int java.lang.String java.util.Iterator java.lang.invoke.MethodType int
      StackMap stack:
            new jdk.tools.jlink.plugin.PluginException
            dup
        34: .line 374
            ldc "Invoker type parameter must start and end with L"
        35: .line 373
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
            athrow
        36: .line 376
      StackMap locals:
      StackMap stack:
            aload 10 /* mt */
            iload 11 /* lastParam */
            iload 11 /* lastParam */
            iconst_1
            iadd
            invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
            astore 10 /* mt */
        37: .line 377
            aload 6 /* invokerMethodTypes */
            iload 7 /* i */
            aload 10 /* mt */
            iconst_0
            iconst_1
            invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
            aastore
        38: .line 378
            iinc 7 /* i */ 1
        end local 11 // int lastParam
        end local 10 // java.lang.invoke.MethodType mt
        end local 8 // java.lang.String invokerType
        39: .line 365
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 27
        40: .line 381
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
        41: .line 382
            ldc "java/lang/invoke/DirectMethodHandle$Holder"
            aload 3 /* directMethodTypes */
            aload 4 /* dmhTypes */
        42: .line 381
            invokeinterface jdk.internal.misc.JavaLangInvokeAccess.generateDirectMethodHandleHolderClassBytes:(Ljava/lang/String;[Ljava/lang/invoke/MethodType;[I)[B
            astore 8 /* bytes */
        start local 8 // byte[] bytes
        43: .line 384
            ldc "/java.base/java/lang/invoke/DirectMethodHandle$Holder.class"
            aload 8 /* bytes */
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
        44: .line 383
            astore 9 /* ndata */
        start local 9 // jdk.tools.jlink.plugin.ResourcePoolEntry ndata
        45: .line 385
            aload 1 /* out */
            aload 9 /* ndata */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
        46: .line 387
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
        47: .line 388
            ldc "java/lang/invoke/DelegatingMethodHandle$Holder"
            aload 3 /* directMethodTypes */
        48: .line 387
            invokeinterface jdk.internal.misc.JavaLangInvokeAccess.generateDelegatingMethodHandleHolderClassBytes:(Ljava/lang/String;[Ljava/lang/invoke/MethodType;)[B
            astore 8 /* bytes */
        49: .line 389
            ldc "/java.base/java/lang/invoke/DelegatingMethodHandle$Holder.class"
            aload 8 /* bytes */
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            astore 9 /* ndata */
        50: .line 390
            aload 1 /* out */
            aload 9 /* ndata */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
        51: .line 392
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
            ldc "java/lang/invoke/Invokers$Holder"
        52: .line 393
            aload 6 /* invokerMethodTypes */
        53: .line 392
            invokeinterface jdk.internal.misc.JavaLangInvokeAccess.generateInvokersHolderClassBytes:(Ljava/lang/String;[Ljava/lang/invoke/MethodType;)[B
            astore 8 /* bytes */
        54: .line 394
            ldc "/java.base/java/lang/invoke/Invokers$Holder.class"
            aload 8 /* bytes */
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            astore 9 /* ndata */
        55: .line 395
            aload 1 /* out */
            aload 9 /* ndata */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
        56: .line 397
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
            ldc "java/lang/invoke/LambdaForm$Holder"
            invokeinterface jdk.internal.misc.JavaLangInvokeAccess.generateBasicFormsClassBytes:(Ljava/lang/String;)[B
            astore 8 /* bytes */
        57: .line 398
            ldc "/java.base/java/lang/invoke/LambdaForm$Holder.class"
            aload 8 /* bytes */
            invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
            astore 9 /* ndata */
        58: .line 399
            aload 1 /* out */
            aload 9 /* ndata */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
        end local 9 // jdk.tools.jlink.plugin.ResourcePoolEntry ndata
        end local 8 // byte[] bytes
        59: .line 400
            goto 62
      StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int
      StackMap stack: java.lang.Exception
        60: astore 8 /* ex */
        start local 8 // java.lang.Exception ex
        61: .line 401
            new jdk.tools.jlink.plugin.PluginException
            dup
            aload 8 /* ex */
            invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 8 // java.lang.Exception ex
        62: .line 403
      StackMap locals:
      StackMap stack:
            return
        end local 7 // int i
        end local 6 // java.lang.invoke.MethodType[] invokerMethodTypes
        end local 5 // int index
        end local 4 // int[] dmhTypes
        end local 3 // java.lang.invoke.MethodType[] directMethodTypes
        end local 2 // int count
        end local 1 // jdk.tools.jlink.plugin.ResourcePoolBuilder out
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   63     0                this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   63     1                 out  Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
            1   63     2               count  I
            3    4     3               entry  Ljava/util/Set<Ljava/lang/String;>;
            6   63     3   directMethodTypes  [Ljava/lang/invoke/MethodType;
            7   63     4            dmhTypes  [I
            8   63     5               index  I
           10   23     6               entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
           11   23     8             dmhType  Ljava/lang/String;
           13   22     9                type  Ljava/lang/String;
           14   22    11                  mt  Ljava/lang/invoke/MethodType;
           25   63     6  invokerMethodTypes  [Ljava/lang/invoke/MethodType;
           26   63     7                   i  I
           28   39     8         invokerType  Ljava/lang/String;
           29   39    10                  mt  Ljava/lang/invoke/MethodType;
           30   39    11           lastParam  I
           43   59     8               bytes  [B
           45   59     9               ndata  Ljdk/tools/jlink/plugin/ResourcePoolEntry;
           61   62     8                  ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          40    59      60  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      out   

  public static java.lang.String expandSignature(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // java.lang.String signature
         0: .line 415
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 416
            bipush 88
            istore 2 /* last */
        start local 2 // char last
         2: .line 417
            iconst_0
            istore 3 /* count */
        start local 3 // int count
         3: .line 418
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 20
         5: .line 419
      StackMap locals: java.lang.String java.lang.StringBuilder int int int
      StackMap stack:
            aload 0 /* signature */
            iload 4 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 5 /* c */
        start local 5 // char c
         6: .line 420
            iload 5 /* c */
            bipush 48
            if_icmplt 10
            iload 5 /* c */
            bipush 57
            if_icmpgt 10
         7: .line 421
            iload 3 /* count */
            bipush 10
            imul
            istore 3 /* count */
         8: .line 422
            iload 3 /* count */
            iload 5 /* c */
            bipush 48
            isub
            iadd
            istore 3 /* count */
         9: .line 423
            goto 19
        10: .line 424
      StackMap locals: int
      StackMap stack:
            iload 5 /* c */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.requireBasicType:(C)V
        11: .line 425
            iconst_1
            istore 6 /* j */
        start local 6 // int j
        12: goto 15
        13: .line 426
      StackMap locals: int
      StackMap stack:
            aload 1 /* sb */
            iload 2 /* last */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        14: .line 425
            iinc 6 /* j */ 1
      StackMap locals:
      StackMap stack:
        15: iload 6 /* j */
            iload 3 /* count */
            if_icmplt 13
        end local 6 // int j
        16: .line 428
            aload 1 /* sb */
            iload 5 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        17: .line 429
            iload 5 /* c */
            istore 2 /* last */
        18: .line 430
            iconst_0
            istore 3 /* count */
        end local 5 // char c
        19: .line 418
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 4 /* i */
            aload 0 /* signature */
            invokevirtual java.lang.String.length:()I
            if_icmplt 5
        end local 4 // int i
        21: .line 435
            iload 3 /* count */
            iconst_1
            if_icmple 28
        22: .line 436
            iload 2 /* last */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.requireBasicType:(C)V
        23: .line 437
            iconst_1
            istore 4 /* j */
        start local 4 // int j
        24: goto 27
        25: .line 438
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            iload 2 /* last */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        26: .line 437
            iinc 4 /* j */ 1
      StackMap locals:
      StackMap stack:
        27: iload 4 /* j */
            iload 3 /* count */
            if_icmplt 25
        end local 4 // int j
        28: .line 441
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // int count
        end local 2 // char last
        end local 1 // java.lang.StringBuilder sb
        end local 0 // java.lang.String signature
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   29     0  signature  Ljava/lang/String;
            1   29     1         sb  Ljava/lang/StringBuilder;
            2   29     2       last  C
            3   29     3      count  I
            4   21     4          i  I
            6   19     5          c  C
           12   16     6          j  I
           24   28     4          j  I
    MethodParameters:
           Name  Flags
      signature  

  private static java.lang.invoke.MethodType asMethodType(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/invoke/MethodType;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // java.lang.String basicSignatureString
         0: .line 445
            aload 0 /* basicSignatureString */
            ldc "_"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 1 /* parts */
        start local 1 // java.lang.String[] parts
         1: .line 446
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.$assertionsDisabled:Z
            ifne 2
            aload 1 /* parts */
            arraylength
            iconst_2
            if_icmpeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 447
      StackMap locals: java.lang.String[]
      StackMap stack:
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.$assertionsDisabled:Z
            ifne 3
            aload 1 /* parts */
            iconst_1
            aaload
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpeq 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 448
      StackMap locals:
      StackMap stack:
            aload 1 /* parts */
            iconst_0
            aaload
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.expandSignature:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* parameters */
        start local 2 // java.lang.String parameters
         4: .line 449
            aload 1 /* parts */
            iconst_1
            aaload
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.simpleType:(C)Ljava/lang/Class;
            astore 3 /* rtype */
        start local 3 // java.lang.Class rtype
         5: .line 450
            aload 2 /* parameters */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 7
         6: .line 451
            aload 3 /* rtype */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            areturn
         7: .line 453
      StackMap locals: java.lang.String java.lang.Class
      StackMap stack:
            aload 2 /* parameters */
            invokevirtual java.lang.String.length:()I
            anewarray java.lang.Class
            astore 4 /* ptypes */
        start local 4 // java.lang.Class[] ptypes
         8: .line 454
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         9: goto 12
        10: .line 455
      StackMap locals: java.lang.Class[] int
      StackMap stack:
            aload 4 /* ptypes */
            iload 5 /* i */
            aload 2 /* parameters */
            iload 5 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.simpleType:(C)Ljava/lang/Class;
            aastore
        11: .line 454
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 5 /* i */
            aload 4 /* ptypes */
            arraylength
            if_icmplt 10
        end local 5 // int i
        13: .line 457
            aload 3 /* rtype */
            aload 4 /* ptypes */
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            areturn
        end local 4 // java.lang.Class[] ptypes
        end local 3 // java.lang.Class rtype
        end local 2 // java.lang.String parameters
        end local 1 // java.lang.String[] parts
        end local 0 // java.lang.String basicSignatureString
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   14     0  basicSignatureString  Ljava/lang/String;
            1   14     1                 parts  [Ljava/lang/String;
            4   14     2            parameters  Ljava/lang/String;
            5   14     3                 rtype  Ljava/lang/Class<*>;
            8   14     4                ptypes  [Ljava/lang/Class;
            9   13     5                     i  I
    MethodParameters:
                      Name  Flags
      basicSignatureString  

  private static java.lang.Class<?> simpleType(char);
    descriptor: (C)Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // char c
         0: .line 462
            iload 0 /* c */
            tableswitch { // 66 - 90
                   66: 7
                   67: 7
                   68: 2
                   69: 10
                   70: 1
                   71: 10
                   72: 10
                   73: 3
                   74: 5
                   75: 10
                   76: 4
                   77: 10
                   78: 10
                   79: 10
                   80: 10
                   81: 10
                   82: 10
                   83: 7
                   84: 10
                   85: 10
                   86: 6
                   87: 10
                   88: 10
                   89: 10
                   90: 7
              default: 10
          }
         1: .line 464
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            areturn
         2: .line 466
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            areturn
         3: .line 468
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            areturn
         4: .line 470
      StackMap locals:
      StackMap stack:
            ldc Ljava/lang/Object;
            areturn
         5: .line 472
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            areturn
         6: .line 474
      StackMap locals:
      StackMap stack:
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            areturn
         7: .line 479
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not a valid primitive: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
         8: .line 480
            ldc " (use I instead)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 479
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 482
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not a primitive: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // char c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0     c  C
    Signature: (C)Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      c     

  private static java.lang.String lambda$0(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.String type
         0: .line 173
            aload 0 /* type */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.expandSignature:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  type  Ljava/lang/String;

  private static java.lang.String[] lambda$1(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String line
         0: .line 216
            aload 0 /* line */
            ldc " "
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            areturn
        end local 0 // java.lang.String line
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  line  Ljava/lang/String;

  private void lambda$2(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 1 // java.lang.String[] parts
         0: .line 218
            aload 1 /* parts */
            iconst_0
            aaload
            dup
            astore 2
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 2
           -685835729: 1
           -606951941: 2
              default: 18
          }
      StackMap locals: java.lang.String
      StackMap stack:
         1: aload 2
            ldc "[SPECIES_RESOLVE]"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
            goto 18
      StackMap locals:
      StackMap stack:
         2: aload 2
            ldc "[LF_RESOLVE]"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 18
         3: .line 221
      StackMap locals:
      StackMap stack:
            aload 1 /* parts */
            arraylength
            iconst_3
            if_icmpne 18
            aload 1 /* parts */
            iconst_1
            aaload
            ldc "java.lang.invoke.BoundMethodHandle$Species_"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 18
         4: .line 222
            aload 1 /* parts */
            iconst_1
            aaload
            ldc "java.lang.invoke.BoundMethodHandle$Species_"
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 3 /* species */
        start local 3 // java.lang.String species
         5: .line 223
            ldc "L"
            aload 3 /* species */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 18
         6: .line 224
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
            aload 3 /* species */
            invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.expandSignature:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.String species
         7: .line 227
            goto 18
         8: .line 229
      StackMap locals:
      StackMap stack:
            aload 1 /* parts */
            iconst_3
            aaload
            astore 3 /* methodType */
        start local 3 // java.lang.String methodType
         9: .line 230
            aload 0 /* this */
            aload 3 /* methodType */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodType:(Ljava/lang/String;)V
        10: .line 231
            aload 1 /* parts */
            iconst_1
            aaload
            ldc "Invokers"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 13
        11: .line 232
            aload 0 /* this */
            getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
            aload 3 /* methodType */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        12: .line 233
            goto 18
      StackMap locals: java.lang.String
      StackMap stack:
        13: aload 1 /* parts */
            iconst_1
            aaload
            ldc "DirectMethodHandle"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 18
        14: .line 234
            aload 1 /* parts */
            iconst_2
            aaload
            astore 4 /* dmh */
        start local 4 // java.lang.String dmh
        15: .line 237
            getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_METHOD_TYPE_MAP:Ljava/util/Map;
            aload 4 /* dmh */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 18
        16: .line 238
            aload 0 /* this */
            aload 4 /* dmh */
            aload 3 /* methodType */
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.addDMHMethodType:(Ljava/lang/String;Ljava/lang/String;)V
        end local 4 // java.lang.String dmh
        17: .line 241
            goto 18
        end local 3 // java.lang.String methodType
        18: .line 244
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String[] parts
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0   19     1       parts  [Ljava/lang/String;
            5    7     3     species  Ljava/lang/String;
            9   18     3  methodType  Ljava/lang/String;
           15   17     4         dmh  Ljava/lang/String;

  private static jdk.tools.jlink.plugin.ResourcePoolEntry lambda$3(jdk.tools.jlink.plugin.ResourcePoolEntry);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.tools.jlink.plugin.ResourcePoolEntry entry
         0: .line 296
            aload 0 /* entry */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
            ldc "/java.base/java/lang/invoke/DirectMethodHandle$Holder.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
         1: .line 297
            aload 0 /* entry */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
            ldc "/java.base/java/lang/invoke/DelegatingMethodHandle$Holder.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
         2: .line 298
            aload 0 /* entry */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
            ldc "/java.base/java/lang/invoke/Invokers$Holder.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
         3: .line 299
            aload 0 /* entry */
            invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
            ldc "/java.base/java/lang/invoke/LambdaForm$Holder.class"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 300
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         5: .line 302
      StackMap locals:
      StackMap stack:
            aload 0 /* entry */
            areturn
        end local 0 // jdk.tools.jlink.plugin.ResourcePoolEntry entry
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0  entry  Ljdk/tools/jlink/plugin/ResourcePoolEntry;

  private void lambda$4(jdk.tools.jlink.plugin.ResourcePoolBuilder, java.lang.String);
    descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolBuilder;Ljava/lang/String;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
        start local 2 // java.lang.String types
         0: .line 307
            aload 0 /* this */
            aload 2 /* types */
            aload 1
            invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.generateBMHClass:(Ljava/lang/String;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
            return
        end local 2 // java.lang.String types
        end local 0 // jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
            0    1     2  types  Ljava/lang/String;
}
SourceFile: "GenerateJLIClassesPlugin.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public final State = jdk.tools.jlink.plugin.Plugin$State of jdk.tools.jlink.plugin.Plugin